[Catalog-sig] PyPI's external packages

M.-A. Lemburg mal at egenix.com
Mon May 16 11:44:55 CEST 2011

Tres Seaver wrote:
> On 05/13/2011 01:12 PM, exarkun at twistedmatrix.com wrote:
>> On 03:21 pm, merwok at netwok.org wrote:
>>> Le 12/05/2011 21:04, exarkun at twistedmatrix.com a ýcrit :
>>>> On 03:57 pm, ziade.tarek at gmail.com wrote:
>>>>> [...]
>>>>> I'll definitely do something in distutils2 but maybe someone has a
>>>>> better idea ?
>>>> Make it easier to upload packages to PyPI.  For example, [...]
>>>> make "upload" work even if the package files exist on
>>>> the filesystem somewhere already.
>>> You 19re referring to the fact that  1Cupload 1D won 19t push files already
>>> present in dist/, right?
>> More or less, yes.
>>> I don 19t know whether this was a design choice
>>> of Martin or merely done for code simplicity, but currently the command
>>> will only push files that are products of a command run from the same
>>> command line, e.g.  1Csdist upload 1D.  If you run  1Csdist and then  1Csdist
>>> upload 1D, is the sdist recreated even though there have been no changes
>>> to the files?
>> Yes, the sdist is recreated.
>>> If no, having to run  1Csdist upload 1D is not inefficient, and makes you 
>>> be
>>> explicit about the files you want to push, which is IMO good.  Do you 
>>> agree?
>>> If yes, I think it 19s a bug.
>> I'm not concerned about the efficiency, though.  I'm concerned about the 
>> quality of the build.  I want to generate a release, *test it*, and then 
>> upload it.  Being forced to generate it and upload it at the same time 
>> gets in the way of this.
> ISTM that if you run 'python setup.py sdist' a second time and get a
> different result (without changing any included files), then you have a
> built-in quality problem *in your setup.py.*

Just to clarify: creating an sdist really only means copying
over the files from the MANIFEST into a temporary dir and then
running tar or zip on the temporary directory. You can tell
distutils to keep the temporary dir around by using the --keep-temp
option on sdist. This will reduce the operation to just running
the archiver on the temp dir again.

The same can be done for bdist_* commands by having distutils
skip the build process.

Since I don't see how such trivial operations can affect the
quality of the code, the discussion sounds a bit artificial :-)

Note that if you want to do full testing of a release, you'll
have to download the package from PyPI and then run the tests
on the downloaded archive to be sure that things work - everything
else is just preparation for this final run :-)

Marc-Andre Lemburg

Professional Python Services directly from the Source  (#1, May 16 2011)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
2011-06-20: EuroPython 2011, Florence, Italy               35 days to go

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::

   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611

More information about the Catalog-SIG mailing list