[Python-checkins] python/nondist/peps pep-0301.txt,1.3,1.4
akuchling@users.sourceforge.net
akuchling@users.sourceforge.net
Wed, 20 Nov 2002 14:08:51 -0800
Update of /cvsroot/python/python/nondist/peps
In directory sc8-pr-cvs1:/tmp/cvs-serv15620
Modified Files:
pep-0301.txt
Log Message:
Updated version of the PEP from Richard Jones.
(Barry, David: this is more recent that the version sent to the PEP editors.
You can forget about the version you've already received.)
Index: pep-0301.txt
===================================================================
RCS file: /cvsroot/python/python/nondist/peps/pep-0301.txt,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** pep-0301.txt 18 Nov 2002 02:02:43 -0000 1.3
--- pep-0301.txt 20 Nov 2002 22:08:48 -0000 1.4
***************
*** 70,74 ****
The specification takes three parts, the `web interface`_, the
`Distutils register command`_ and the `Distutils Trove
! categorisation`_.
--- 70,74 ----
The specification takes three parts, the `web interface`_, the
`Distutils register command`_ and the `Distutils Trove
! classification`_.
***************
*** 103,107 ****
"name" and "version" fields are mandatory, as they uniquely identify
an entry in the index. **Submit** will automatically determine
! whether to create a new entry or updating an existing entry. The
metadata is checked for correctness where appropriate - specifically
the Trove discriminators are compared with the allowed set. An
--- 103,107 ----
"name" and "version" fields are mandatory, as they uniquely identify
an entry in the index. **Submit** will automatically determine
! whether to create a new entry or update an existing entry. The
metadata is checked for correctness where appropriate - specifically
the Trove discriminators are compared with the allowed set. An
***************
*** 128,151 ****
Registration will be a three-step process, involving:
! 1. User submission of details via the Distutils *register* command,
2. Index server sending email to the user's email address with a URL
to visit to confirm registration with a random one-time key, and
3. User visits URL with the key and confirms registration.
- Several user Roles will exist, generally revolving around a
- particular package name:
-
- Owner
- Owns a package name, may assign Maintainer Role for that name. The
- first user to register information about a package is deemed Owner
- of the package name. The Admin user may change this if necessary.
- May submit updates for the package name.
-
- Maintainer
- Can submit and update info for a particular package name.
-
- Admin
- Can assign Owner Role and edit user details.
-
**roles**
An interface for changing user Role assignments.
--- 128,137 ----
Registration will be a three-step process, involving:
! 1. User submission of details via the Distutils *register* command
! or through the web,
2. Index server sending email to the user's email address with a URL
to visit to confirm registration with a random one-time key, and
3. User visits URL with the key and confirms registration.
**roles**
An interface for changing user Role assignments.
***************
*** 171,174 ****
--- 157,219 ----
===== ============== ================================================
+ User Roles
+ ----------
+
+ Three user Roles will be assignable to users:
+
+ Owner
+ Owns a package name, may assign Maintainer Role for that name. The
+ first user to register information about a package is deemed Owner
+ of the package name. The Admin user may change this if necessary.
+ May submit updates for the package name.
+
+ Maintainer
+ Can submit and update info for a particular package name.
+
+ Admin
+ Can assign Owner Role and edit user details. Not specific to a
+ package name.
+
+
+ Index Storage (Schema)
+ ----------------------
+
+ The index is stored in a set of relational database tables:
+
+ **packages**
+ Lists package names and holds package-level metadata (currently
+ just the stable release version)
+
+ **releases**
+ Each package has an entry in **releases** for each version of the
+ package that is released. A row holds the bulk of the information
+ given in the package's PKG-INFO file. There is one row for each
+ package (*name*, *version*).
+
+ **trove_discriminators**
+ Lists the Trove discriminator text and assigns each one a unique
+ ID.
+
+ **release_discriminators**
+ Each entry maps a package (*name*, *version*) to a *discriminator_id*.
+ We map to releases instead of packages because the set of
+ discriminators may change between releases.
+
+ **journals**
+ Holds information about changes to package information in the
+ index. Changes to the **packages**, **releases**, **roles**,
+ and **release_discriminators** tables are listed here by
+ package *name* and *version* if the change is release-specific.
+
+ **users**
+ Holds our user database - user name, email address and password.
+
+ **roles**
+ Maps *user_name* and *role_name* to a *package_name*.
+
+ An additional table, **rego_otk** holds the One Time Keys generated
+ during registration and is not interesting in the scope of the index
+ itself.
+
Distutils *register* Command
***************
*** 186,190 ****
On systems where the ``$HOME`` environment variable is set, the user
will be prompted at exit to save their username/password to a file
! in their ``$HOME`` directory in the file ``.pythonpackagerc``.
Notification of changes to a package entry will be sent to all users
--- 231,235 ----
On systems where the ``$HOME`` environment variable is set, the user
will be prompted at exit to save their username/password to a file
! in their ``$HOME`` directory in the file ``.pypirc``.
Notification of changes to a package entry will be sent to all users
***************
*** 200,204 ****
! Distutils Trove Categorisation
------------------------------
--- 245,249 ----
! Distutils Trove Classification
------------------------------
***************
*** 213,223 ****
classifiers = [
'Development Status :: 4 - Beta',
! 'Environment :: Console (Text Based)',
'Environment :: Web Environment',
'Intended Audience :: End Users/Desktop',
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
! 'License :: OSI Approved :: Python License',
! 'Operating System :: MacOS X',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
--- 258,268 ----
classifiers = [
'Development Status :: 4 - Beta',
! 'Environment :: Console',
'Environment :: Web Environment',
'Intended Audience :: End Users/Desktop',
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
! 'License :: OSI Approved :: Python Software Foundation License',
! 'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
***************
*** 243,256 ****
The list of classification values on the module index has been merged
from FreshMeat and SourceForge (with their permission). This list
! will be made available through the web interface as a text list which
! may then be copied to the ``setup.py`` file. The *register* command's
! ``--verify`` option will also check classifiers values.
Unfortunately, the addition of the "classifiers" property is not
backwards-compatible. A setup.py file using it will not work under
! Python 2.1.3. It is hoped that a bugfix release of Python 2.2 will
! relax the argument checking of the setup() command to allow new
! keywords, even if they're not actually used. It is preferable that
! a warning be produced, rather than a show-stopping error.
--- 288,318 ----
The list of classification values on the module index has been merged
from FreshMeat and SourceForge (with their permission). This list
! will be made available both through the web interface and through the
! *regsiter* command's ``--list-classifiers`` option as a text list
! which may then be copied to the ``setup.py`` file. The *register*
! command's ``--verify`` option will check classifiers values against
! the server's list.
Unfortunately, the addition of the "classifiers" property is not
backwards-compatible. A setup.py file using it will not work under
! Python 2.1.3. It is hoped that a bugfix release of Python 2.2 (most
! likely 2.2.3) will relax the argument checking of the setup() command
! to allow new keywords, even if they're not actually used. It is
! preferable that a warning be produced, rather than a show-stopping
! error. The use of the new keyword should be discouraged in situations
! where the package is advertised as being compatible with python
! versions earlier than 2.2.3 or 2.3.
!
! In the PKG-INFO, the classifiers list items will appear as individual
! ``Classifier:`` entries::
!
! Name: roundup
! Version: 0.5.2
! Classifier: Development Status :: 4 - Beta
! Classifier: Environment :: Console (Text Based)
! .
! .
! Classifier: Topic :: Software Development :: Bug Tracking
! Url: http://sourceforge.net/projects/roundup/
***************
*** 266,282 ****
http://www.amk.ca/cgi-bin/pypi.cgi
! ===== ===================================================
Done Feature
! ===== ===================================================
! Y Submission
! Y Index
! Y Display
! Y Search
! Y User registration
! Y User verification
! Y Password reset
! Y Admin interfaces for user/package maintenance
! N Trove
! ===== ===================================================
In the two days of the 22nd and 23rd October 2002, after the first
--- 328,343 ----
http://www.amk.ca/cgi-bin/pypi.cgi
! ===== =============================================================
Done Feature
! ===== =============================================================
! Y Submission via *register* command (register.py module)
! Y Web interface
! Y Handling of the *classifiers* setup() keyword (dist.py.patch)
! Y Patch Python 2.2.3 to relax keyword argument checks in the
! distutils setup() function
! N Patch Python 2.3 to apply the dist.py.patch
! N Library reference documentation of the *register* command and
! additional *classifiers* keyword
! ===== =============================================================
In the two days of the 22nd and 23rd October 2002, after the first
***************
*** 286,289 ****
--- 347,351 ----
+
Rejected Proposals
==================
***************
*** 320,324 ****
(http://pause.cpan.org/)
! .. [6] PEP 243, Module Repository Upload Mechanism
(http://www.python.org/peps/pep-0243.html)
--- 382,386 ----
(http://pause.cpan.org/)
! . [6] PEP 243, Module Repository Upload Mechanism
(http://www.python.org/peps/pep-0243.html)
***************
*** 358,360 ****
fill-column: 70
End:
-
--- 420,421 ----