Project:Python

For users

 * Implementations
 * python-exec script wrapper
 * PYTHON_TARGETS variable

For developers

 * Conversion guide for python.eclass packages
 * Eclass API change history
 * eclasses
 * distutils-r1
 * python-r1
 * python-any-r1
 * python-single-r1
 * python-utils-r1
 * twisted-r1
 * Interoperability with other eclasses
 * scons-utils integration
 * waf-utils integration
 * Eclass design rationale
 * pypy-bin build instructions
 * Test suites
 * Virtual packages
 * USE flags on Python implementations
 * Adding and Removing Python implementations to/from PYTHON_COMPAT
 * Wheels packages
 * Strict aliasing issues (-fno-strict-aliasing)
 * Dependencies on Python packages (and Python)
 * Namespace packages
 * Byte compiling Python modules
 * Other issues
 * Sphinx race conditions (e.g. FileExistsError: [Errno 17] File exists ...)
 * gpyutils output

Adding packages
Anyone may add Python packages to the repository, however there are a couple of requirements if you want the Python project team to maintain them:


 * 1) The package must be a dependency of an existing package maintained by the Python team in the tree.
 * 2) The package is a Python library with a significant level of demand from developers or users.

In either case, please ping a member of the Python team before adding the python project to the packages file.

For all added packages, the ebuild must define test phase if the upstream has some tests and they are not thoroughly broken by design.

Stabilizing packages
Stable request bugs may be created if the package already has stable keywords, or upon request.

Please do not stabilize packages with no stable keywords without some reason for doing so. Stabilizing packages increases the workload on both the Python team and arch teams, and this should be weighed against the value of having an ebuild with stable keywords.

ALLARCHES
Packages which are not platform-dependent may be stabilized according to the ALLARCHES policy, where a single arch tester may stabilize the package for all arches at once without testing on each individually.

Determining if the package is platform-dependent may be tricky, but here are some guidelines:


 * Most pure-Python packages may be considered platform-independent if they do not depend on architecture-specific values or functionality.
 * Packages which compile and install extension modules should be considered platform-dependent since they invoke the system toolchain.