Hi, We normally put development eggs under version control while people are working on them. However, when they are installed (by buildout, in our case, but I assume "python setup.py develop" is similar), a <package>.egg-info directory is created. Putting this under version control seems problematic, because developers tend to get conflicts in PKG-INFO and similar files. Thus, I tend to set svn ignores on the whole directory. People have to re-do the develop egg installation locally anyway. However, when using Paster with local commands, it writes a paster_plugins.txt file to the egg-info which doesn't seem to be re-created when I re-run buildout (again, I assume "python setup.py develop" would behave in the same way). That means that for Paster local commands to continue to work, I have to set ignores on almost everything in the egg-info directory, but not that file, which is cumbersome and error prone. Am I missing something here? What's the best strategy for putting develop eggs under version control? Is this an issue with Paster or with eggs in general? I'm assuming other things that extend the egg-info would have similar problems. Cheers, Martin -- Author of `Professional Plone Development`, a book for developers who want to work with Plone. See http://martinaspeli.net/plone-book
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Martin Aspeli wrote:
Hi,
We normally put development eggs under version control while people are working on them. However, when they are installed (by buildout, in our case, but I assume "python setup.py develop" is similar), a <package>.egg-info directory is created.
Putting this under version control seems problematic, because developers tend to get conflicts in PKG-INFO and similar files. Thus, I tend to set svn ignores on the whole directory. People have to re-do the develop egg installation locally anyway.
However, when using Paster with local commands, it writes a paster_plugins.txt file to the egg-info which doesn't seem to be re-created when I re-run buildout (again, I assume "python setup.py develop" would behave in the same way). That means that for Paster local commands to continue to work, I have to set ignores on almost everything in the egg-info directory, but not that file, which is cumbersome and error prone.
Am I missing something here? What's the best strategy for putting develop eggs under version control? Is this an issue with Paster or with eggs in general? I'm assuming other things that extend the egg-info would have similar problems.
IMNSHO, anything in the .egg-info directory should be considered a derived file, and therefore NOT placed under version control (we don't check in .o / .so / .dll files either). If some tool can't recreate the files it needs on demand in that directory, that would be a bug in that tool (or perhaps the mode in which it is invoked). Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHwfa7+gerLs4ltQ4RAhUtAJ90mPKhAPJq9jR/nL6ficFZf0dFagCgjw95 D7/1MTffTOShB20sn/ca3Hw= =WCSa -----END PGP SIGNATURE-----
Tres Seaver wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Martin Aspeli wrote:
Hi,
We normally put development eggs under version control while people are working on them. However, when they are installed (by buildout, in our case, but I assume "python setup.py develop" is similar), a <package>.egg-info directory is created.
Putting this under version control seems problematic, because developers tend to get conflicts in PKG-INFO and similar files. Thus, I tend to set svn ignores on the whole directory. People have to re-do the develop egg installation locally anyway.
However, when using Paster with local commands, it writes a paster_plugins.txt file to the egg-info which doesn't seem to be re-created when I re-run buildout (again, I assume "python setup.py develop" would behave in the same way). That means that for Paster local commands to continue to work, I have to set ignores on almost everything in the egg-info directory, but not that file, which is cumbersome and error prone.
Am I missing something here? What's the best strategy for putting develop eggs under version control? Is this an issue with Paster or with eggs in general? I'm assuming other things that extend the egg-info would have similar problems.
IMNSHO, anything in the .egg-info directory should be considered a derived file, and therefore NOT placed under version control (we don't check in .o / .so / .dll files either). If some tool can't recreate the files it needs on demand in that directory, that would be a bug in that tool (or perhaps the mode in which it is invoked).
That was my impression too. If that's a safe assumption to make, then we can continue to say that *.egg-info goes in svn:ignores. I can't figure out from http://pythonpaste.org/script/developer.html how the files are supposed to be created though. Wiping egg-info and re-running buildout certainly doesn't re-create it. Martin -- Author of `Professional Plone Development`, a book for developers who want to work with Plone. See http://martinaspeli.net/plone-book
Martin Aspeli wrote:
That was my impression too. If that's a safe assumption to make, then we can continue to say that *.egg-info goes in svn:ignores.
I can't figure out from http://pythonpaste.org/script/developer.html how the files are supposed to be created though. Wiping egg-info and re-running buildout certainly doesn't re-create it.
paster create normally adds the .egg-info directory, but ignores all the Setuptools-created files, and some Paste packages (including paster create) add files in that directory. I won't say that's a good idea, and I probably wouldn't go in this direction if starting from scratch... putting just one or two files under version control, but ignoring the rest, is quite awkward. I usually set svn:ignore in the egg-info directory to *, and then you can still opt-in specific files if you want to (or I leave egg-info out of version control entirely). Ian
At 05:59 PM 2/24/2008 -0500, Tres Seaver wrote:
IMNSHO, anything in the .egg-info directory should be considered a derived file, and therefore NOT placed under version control (we don't check in .o / .so / .dll files either). If some tool can't recreate the files it needs on demand in that directory, that would be a bug in that tool (or perhaps the mode in which it is invoked).
Your NSHO is incorrect for many projects. Setuptools itself has some .egg-info files under revision control, for example, because they are needed to bootstrap setuptools itself. Other projects have metadata whose official source is under .egg-info. The EggTranslations library used by Chandler, for example, puts i18n/l10n resource files under .egg-info, and as such they are tracked by revision control.
participants (4)
-
Ian Bicking
-
Martin Aspeli
-
Phillip J. Eby
-
Tres Seaver