light editing pass

This commit is contained in:
David Goodger 2005-08-05 00:16:49 +00:00
parent 9dbc639443
commit 504349a1e4
1 changed files with 95 additions and 70 deletions

View File

@ -15,140 +15,165 @@ Abstract
======== ========
The Python source code is currently managed in a CVS repository on The Python source code is currently managed in a CVS repository on
sourceforge.net. This PEP proposes to move it to a subversion repository sourceforge.net. This PEP proposes to move it to a subversion
on svn.python.org. repository on svn.python.org.
Rationale Rationale
========= =========
This change has two aspects: moving from CVS to subversion, and This change has two aspects: moving from CVS to subversion, and moving
moving from SourceForge to python.org. For each, a rationale will from SourceForge to python.org. For each, a rationale will be given.
be given.
Moving to Subversion Moving to Subversion
-------------------- --------------------
CVS has a number of limitations that have been elimintation by
Subversion. For the development of Python, the most notable improvements
are:
- ability to rename files and directories, and to remove directories, CVS has a number of limitations that have been elimintation by
while keeping the history of these files. Subversion. For the development of Python, the most notable
improvements are:
- the ability to rename files and directories, and to remove
directories, while keeping the history of these files.
- support for change sets (sets of correlated changes to multiple - support for change sets (sets of correlated changes to multiple
files) through global revision numbers. files) through global revision numbers.
- support for offline diffs, which is useful when creating patches. - support for offline diffs, which is useful when creating patches.
Moving to python.org Moving to python.org
-------------------- --------------------
SourceForge has kindly provided an important infrastructure for the SourceForge has kindly provided an important infrastructure for the
past years. Unfortunately, the attention that SF received has also past years. Unfortunately, the attention that SF received has also
caused repeated overload situations in the past, to which the SF caused repeated overload situations in the past, to which the SF
operators could not always respond in a timely manner. In particular, operators could not always respond in a timely manner. In particular,
for CVS, they had to reduce the load on the primary CVS server by for CVS, they had to reduce the load on the primary CVS server by
introducing a second, read-only CVS server for anonymous access. introducing a second, read-only CVS server for anonymous access. This
This server is regularly synchronized, but behind the the read-write server is regularly synchronized, but lags behind the the read-write
CVS repository between synchronizations. As a result, users without CVS repository between synchronizations. As a result, users without
commit access can see recent changes to the repository only with commit access can see recent changes to the repository only after a
a delay. delay.
On python.org, it would be possible to make the repository accessible On python.org, it would be possible to make the repository accessible
for anonymous access. for anonymous access.
Migration Procedure Migration Procedure
=================== ===================
To move the Python CVS repository, the following steps need to be To move the Python CVS repository, the following steps need to be
executed. The steps are elaborated in more detail in the next executed. The steps are elaborated upon in the following sections.
sections.
1. Assign passwords for all current committers for use on
svn.python.org. User names on SF and svn.python.org should be
identical, unless some committer requests a different user name.
1. Assign passwords for all current committers for use on svn.python.org.
User names on SF and svn.python.org should be identical, unless some
committer requests a different user name.
2. At the beginning of the migration, announce that the repository on 2. At the beginning of the migration, announce that the repository on
SourceForge closed. SourceForge closed.
3. 24 hours after the last commit, download the CVS repository. 3. 24 hours after the last commit, download the CVS repository.
4. Convert the CVS repository into two subversion repositories,
one for distutils and one for Python. 4. Convert the CVS repository into two Subversion repositories, one
5. Publish the repositories for write access for all committers, for Distutils and one for Python.
and anonymous read access.
5. Publish the repositories with write access for committers, and
read-only anonymous access.
6. Disable CVS access on SF. 6. Disable CVS access on SF.
Assign Passwords Assign Passwords
================ ----------------
Currently, access to Subversion on svn.python.org uses WebDAV over Currently, access to Subversion on svn.python.org uses WebDAV over
https, using basic authentication. For this to work, authorized https, using basic authentication. For this to work, authorized users
users need to provide a password. This mechanism should be used, need to provide a password. This mechanism should be used, at least
atleast initially, for the Python CVS as well, since various committers initially, for the Python CVS as well, since various committers also
also have a username/password pair for the www SVN repository already. have a username/password pair for the www SVN repository already.
Alternatives to password-based access include: Alternatives to password-based access include:
- Subversion over SSH, using SSH key pairs. This would require - Subversion over SSH, using SSH key pairs. This would require
to give committers accounts on the machine, which currently is committers to be given accounts on the machine, which currently is
ruled out by the administration policy of svn.python.org. ruled out by the administration policy of svn.python.org.
- Subversion over WebDAV, using SSL client certificates. This
would work, but would require to administrate a certificate - Subversion over WebDAV, using SSL client certificates. This would
authority. work, but would require to administrate a certificate authority.
Downloading the CVS Repository Downloading the CVS Repository
============================== ------------------------------
The CVS repository can be downloaded from The CVS repository can be downloaded from
http://cvs.sourceforge.net/cvstarballs/python-cvsroot.tar.bz2 http://cvs.sourceforge.net/cvstarballs/python-cvsroot.tar.bz2
Since this tarball is generated only once a day, some time must pass
after the repository freeze before the tarball can be picked up. It
should be verified that the last commit, as recorded on the
python-commits mailing list, is indeed included in the tarball.
Since this tarball is generated only once a day, some time after
the repository freeze must pass before the tarball can be picked
up. It should be verified that the last commit, as recorded on
the python-commits mailing list, is indeed included in the tarball.
Converting the CVS Repository Converting the CVS Repository
============================= -----------------------------
The Python CVS repository contains two modules: distutils and The Python CVS repository contains two modules: distutils and python.
python. Keeping them together will produce quite long repository Keeping them together will produce quite long repository URLs, so it
URLs, so it is more convenient if the Python CVS and the distutils is more convenient if the Python CVS and the Distutils CVS are
CVS are converted into two separate repositories. converted into two separate repositories.
As the repository format, fsfs should be used (requires Subversion 1.1). Fsfs should be used as the repository format (requires Subversion
fsfs has the advantage of being more backup-friendly, as it allows to 1.1). Fsfs has the advantage of being more backup-friendly, as it
backup a repository incrementally, without requiring to run any dump allows incremental repository backups, without requiring any dump
commands. commands to be run.
The conversion should be done using cvs2svn utility, available e.g. The conversion should be done using the cvs2svn utility, available
in the cvs2svn Debian package. The command for converting the Python e.g. in the cvs2svn Debian package. The command for converting the
repository is Python repository is ::
cvs2svn -q --encoding=latin1 --force-branch=cnri-16-start cvs2svn -q --encoding=latin1 --force-branch=cnri-16-start \
--force-branch=descr-branch --force-branch=release152p1-patches --force-branch=descr-branch --force-branch=release152p1-patches \
--force-tag=r16b1 --fs-type=fsfs -s py.svn.new python/python --force-tag=r16b1 --fs-type=fsfs -s py.svn.new python/python
The command to convert the distutils repository is The command to convert the distutils repository is ::
cvs2svn -q --encoding=latin1 --fs-type=fsfs -s dist.svn.new python/distutils cvs2svn -q --encoding=latin1 --fs-type=fsfs -s dist.svn.new python/distutils
Sample results of this conversion are available at Sample results of this conversion are available at
http://www.dcl.hpi.uni-potsdam.de/python/ | http://www.dcl.hpi.uni-potsdam.de/python/
http://www.dcl.hpi.uni-potsdam.de/distutils/ | http://www.dcl.hpi.uni-potsdam.de/distutils/
Publish the Repositories Publish the Repositories
======================== ------------------------
The repositories should be published at https://svn.python.org/python The repositories should be published at https://svn.python.org/python
and https://svn.python.org/distutils. Read-write should be granted and https://svn.python.org/distutils. Read-write access should be
through basic authentication to all current SF committers; read-only granted through basic authentication to all current SF committers;
access should be granted anonymously. As an option, websvn (available read-only anonymous access should also be granted. As an option,
e.g. from the Debian websvn package) could be provided. websvn (available e.g. from the Debian websvn package) could be
provided.
The current SF project admins should get write access to the password The current SF project admins should get write access to the password
file, in order to create or delete new users. file, in order to create or delete new users.
Disable CVS Disable CVS
=========== -----------
It appears that CVS cannot be disabled entirely. Only the user interface It appears that CVS cannot be disabled entirely. Only the user
can be removed from the project page; the repository itself remains interface can be removed from the project page; the repository itself
available. If desired, write access to the python and distutils modules remains available. If desired, write access to the python and
can be disabled through a commitinfo entry. distutils modules can be disabled through a CVS commitinfo entry.
..
Local Variables:
mode: indented-text
indent-tabs-mode: nil
sentence-end-double-space: t
fill-column: 70
End: