[csw-maintainers] Python 3.x

Maciej (Matchek) Bliziński maciej at opencsw.org
Sun Aug 4 13:23:32 CEST 2013


2013/8/2 Yann Rouillard <yann at pleiades.fr.eu.org>:
> Can you remind me why pyc compilation on post-install has be ruled out ?

Additional complexity during package installation. It's generally
better to put the complexity on the package build side and keep the
installation as simple as possible.

> As I see it, there a not a ton of possibilies, either:
>
>   1. we rebuild pyc on postinstall of module packages and interpreter
> package, to be sure that a pyc always exists whatever the module and the
> interpreter,
>
>   2. we ship the pyc in the CSWpy3- packages and we rebuild every python
> package when we deliver a new version of the python interpreter so that it
> includes
>
>   3. we only care about one specific version of python which we consider our
> default. Every CSWpy3- package must provide a pyc for this interpreter. When
> we release a new python interpreter, every package can begin to include the
> pyc when they are rebuilt. We consider ok that a module package doesn't ship
> a pyc package for a non default interpreter.
>       The day we change the default python interpreter, we have to make sure
> every package ships a pyc for the new default version.
>
>   4. we use CSWpy33-, CSWpy34- prefixed packages that ship the pyc files and
> we have to build the new set of CSWpy3X- packages each time there is a new
> release of the python interpreter.
>
>
> I think:
>      - 3. should be avoided if possible (why ship module with slower load
> time if we can do otherwise),
>     -  2 is maybe not so difficult thanks to the gar build system (but
> beware of package that don't build anymore because the build environment
> changed),
>      - 4 maybe also not be so difficult thanks to gar but it doesn't meet
> the consensus of having CSWpy3- prefixed package,
>      - 1. seems feasible without so much hassle.
>
> So 1. seems the easiest way, so why don't we go with it ? Is there some
> drawbacks I missed ?

Option 1 is easy on some levels and not too easy on other levels. If
we want to support *.pyc files for all 3.x interpreters, we'll need to
implement necessary logic. For example, if you install a new
interpreter version, the postinstall script will need to byte-compile
all the installed CSWpy3- packages.

Maciej


More information about the maintainers mailing list