From 504349a1e43b7ce6afcca336beb68d39a7c7fd48 Mon Sep 17 00:00:00 2001 From: David Goodger Date: Fri, 5 Aug 2005 00:16:49 +0000 Subject: [PATCH] light editing pass --- pep-0347.txt | 165 +++++++++++++++++++++++++++++---------------------- 1 file changed, 95 insertions(+), 70 deletions(-) diff --git a/pep-0347.txt b/pep-0347.txt index e267e02f3..6ca191d96 100644 --- a/pep-0347.txt +++ b/pep-0347.txt @@ -15,140 +15,165 @@ Abstract ======== The Python source code is currently managed in a CVS repository on -sourceforge.net. This PEP proposes to move it to a subversion repository -on svn.python.org. +sourceforge.net. This PEP proposes to move it to a subversion +repository on svn.python.org. + Rationale ========= -This change has two aspects: moving from CVS to subversion, and -moving from SourceForge to python.org. For each, a rationale will -be given. +This change has two aspects: moving from CVS to subversion, and moving +from SourceForge to python.org. For each, a rationale will be given. + 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, - while keeping the history of these files. +CVS has a number of limitations that have been elimintation by +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 files) through global revision numbers. + - support for offline diffs, which is useful when creating patches. + Moving to python.org -------------------- + 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 -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 -introducing a second, read-only CVS server for anonymous access. -This server is regularly synchronized, but behind the the read-write -CVS repository between synchronizations. As a result, users without -commit access can see recent changes to the repository only with -a delay. +introducing a second, read-only CVS server for anonymous access. This +server is regularly synchronized, but lags behind the the read-write +CVS repository between synchronizations. As a result, users without +commit access can see recent changes to the repository only after a +delay. On python.org, it would be possible to make the repository accessible for anonymous access. + Migration Procedure =================== To move the Python CVS repository, the following steps need to be -executed. The steps are elaborated in more detail in the next -sections. +executed. The steps are elaborated upon in the following 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 SourceForge closed. + 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. -5. Publish the repositories for write access for all committers, - and anonymous read access. + +4. Convert the CVS repository into two Subversion repositories, one + for Distutils and one for Python. + +5. Publish the repositories with write access for committers, and + read-only anonymous access. + 6. Disable CVS access on SF. + Assign Passwords -================ +---------------- Currently, access to Subversion on svn.python.org uses WebDAV over -https, using basic authentication. For this to work, authorized -users need to provide a password. This mechanism should be used, -atleast initially, for the Python CVS as well, since various committers -also have a username/password pair for the www SVN repository already. +https, using basic authentication. For this to work, authorized users +need to provide a password. This mechanism should be used, at least +initially, for the Python CVS as well, since various committers also +have a username/password pair for the www SVN repository already. Alternatives to password-based access include: - 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. -- Subversion over WebDAV, using SSL client certificates. This - would work, but would require to administrate a certificate - authority. + +- Subversion over WebDAV, using SSL client certificates. This would + work, but would require to administrate a certificate authority. + Downloading the CVS Repository -============================== +------------------------------ 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 -============================= +----------------------------- -The Python CVS repository contains two modules: distutils and -python. Keeping them together will produce quite long repository -URLs, so it is more convenient if the Python CVS and the distutils -CVS are converted into two separate repositories. +The Python CVS repository contains two modules: distutils and python. +Keeping them together will produce quite long repository URLs, so it +is more convenient if the Python CVS and the Distutils CVS are +converted into two separate repositories. -As the repository format, fsfs should be used (requires Subversion 1.1). -fsfs has the advantage of being more backup-friendly, as it allows to -backup a repository incrementally, without requiring to run any dump -commands. +Fsfs should be used as the repository format (requires Subversion +1.1). Fsfs has the advantage of being more backup-friendly, as it +allows incremental repository backups, without requiring any dump +commands to be run. -The conversion should be done using cvs2svn utility, available e.g. -in the cvs2svn Debian package. The command for converting the Python -repository is +The conversion should be done using the cvs2svn utility, available +e.g. in the cvs2svn Debian package. The command for converting the +Python repository is :: -cvs2svn -q --encoding=latin1 --force-branch=cnri-16-start ---force-branch=descr-branch --force-branch=release152p1-patches ---force-tag=r16b1 --fs-type=fsfs -s py.svn.new python/python + cvs2svn -q --encoding=latin1 --force-branch=cnri-16-start \ + --force-branch=descr-branch --force-branch=release152p1-patches \ + --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 -http://www.dcl.hpi.uni-potsdam.de/python/ -http://www.dcl.hpi.uni-potsdam.de/distutils/ + | http://www.dcl.hpi.uni-potsdam.de/python/ + | http://www.dcl.hpi.uni-potsdam.de/distutils/ + Publish the Repositories -======================== +------------------------ The repositories should be published at https://svn.python.org/python -and https://svn.python.org/distutils. Read-write should be granted -through basic authentication to all current SF committers; read-only -access should be granted anonymously. As an option, websvn (available -e.g. from the Debian websvn package) could be provided. +and https://svn.python.org/distutils. Read-write access should be +granted through basic authentication to all current SF committers; +read-only anonymous access should also be granted. As an option, +websvn (available e.g. from the Debian websvn package) could be +provided. The current SF project admins should get write access to the password file, in order to create or delete new users. + Disable CVS -=========== +----------- -It appears that CVS cannot be disabled entirely. Only the user interface -can be removed from the project page; the repository itself remains -available. If desired, write access to the python and distutils modules -can be disabled through a commitinfo entry. +It appears that CVS cannot be disabled entirely. Only the user +interface can be removed from the project page; the repository itself +remains available. If desired, write access to the python and +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: