Ticket #1074: add-zetuptoolz-txt.dpatch

File add-zetuptoolz-txt.dpatch, 101.5 KB (added by davidsarah, at 2010-07-31T09:26:12Z)

Add zetuptoolz.txt documenting changes made by the fork

Line 
1Sat Jul 31 10:08:37 GMT Daylight Time 2010  david-sarah@jacaranda.org
2  * Add zetuptoolz.txt documenting changes made by the fork.
3
4New patches:
5
6[Add zetuptoolz.txt documenting changes made by the fork.
7david-sarah@jacaranda.org**20100731090837
8 Ignore-this: e896f782ae614c1c6e2f31b336bc1a16
9] addfile ./zetuptoolz.txt
10hunk ./zetuptoolz.txt 1
11+This is the "zetuptoolz" fork of setuptools. This version is forked from
12+setuptools trunk r80621 (which is current as of 2010-08-31), with the following
13+differences:
14+
15+
16+ * Zooko's patches for the following bugs and features have been applied:
17+
18+     <http://bugs.python.org/setuptools/issue17>
19+     "easy_install will install a package that is already there"
20+
21+     <http://bugs.python.org/setuptools/issue54>
22+     "be more like distutils with regard to --prefix="
23+
24+     <http://bugs.python.org/setuptools/issue53>
25+     "respect the PYTHONPATH"
26+
27+
28+ * The following patch to setuptools introduced bugs, and has been reverted
29+   in zetuptoolz:
30+
31+    $ svn log -r 45514
32+    ------------------------------------------------------------------------
33+    r45514 | phillip.eby | 2006-04-18 04:03:16 +0100 (Tue, 18 Apr 2006) | 9 lines
34+
35+    Backport pkgutil, pydoc, and doctest from the 2.5 trunk to setuptools
36+    0.7 trunk.  (Sideport?)  Setuptools 0.7 will install these in place of
37+    the 2.3/2.4 versions (at least of pydoc and doctest) to let them work
38+    properly with eggs.  pkg_resources now depends on the 2.5 pkgutil, which
39+    is included here as _pkgutil, to work around the fact that some system
40+    packagers will install setuptools without overriding the stdlib modules.
41+    But users who install their own setuptools will get them, and the system
42+    packaged people probably don't need them.
43+    ------------------------------------------------------------------------
44+
45+
46+ * The scripts written by zetuptoolz have the following extra line:
47+
48+     # generated by zetuptoolz <version number>
49+
50+   after the header.
51+
52+
53+ * Windows-specific changes (native Python):
54+
55+   Python distributions may have command-line or GUI scripts.
56+   On Windows, setuptools creates an executable wrapper to run each
57+   script. zetuptools uses a different approach that does not require
58+   an .exe wrapper. It writes approximately the same script file that
59+   is used on other platforms, but with a .pyscript extension.
60+   It also writes a shell-script wrapper (without any extension) that
61+   is only used when the command is run from a Cygwin shell.
62+
63+   Some of the advantages of this approach are:
64+
65+    * Unicode arguments are preserved (although the program will
66+      need to use some Windows-specific code to get at them in
67+      current versions of Python);
68+    * it works correctly on 64-bit Windows;
69+    * the zetuptoolz distribution need not contain either any
70+      binary executables, or any C code that needs to be compiled.
71+
72+   See setuptools\tests\win_script_wrapper.txt for further details.
73+
74+   Installing or building any distribution on Windows will automatically
75+   associate .pyscript with the native Python interpreter for the current
76+   user. It will also add .pyscript and .pyw to the PATHEXT variable for
77+   the current user, which is needed to allow scripts to be run without
78+   typing any extension.
79+
80+   There is an additional setup.py command that can be used to perform
81+   these steps separately (which isn't normally needed, but might be
82+   useful for debugging):
83+
84+     python setup.py scriptsetup
85+
86+   Adding the --allusers option, i.e.
87+
88+     python setup.py scriptsetup --allusers
89+
90+   will make the .pyscript association and changes to the PATHEXT variable
91+   for all users of this Windows installation, except those that have it
92+   overridden in their per-user environment. In this case setup.py must be
93+   run with Administrator privileges, e.g. from a Command Prompt whose
94+   shortcut has been set to run as Administrator.
95
96Context:
97
98[setuptools/sandbox.py: Fix a problem with sandbox swapping 'open' and 'file' builtins. Support sandbox access to os.devnull. Equivalent to change in setuptools svn revision 80621 (2010-04-29).
99david-sarah@jacaranda.org**20100731025037
100 Ignore-this: 36c0c6788fd65bf87e681c15072c721f
101] 
102[merge changes and remove unused import
103zooko@zooko.com**20100523175508
104 Ignore-this: adbcb7e313eb9d9bdcae2fe7f3dbbe6f
105] 
106[Fix wrong keyword argument for specifying test tunner to unittest
107phillip.eby**20100312184011
108 Ignore-this: fbdaecd6c31ed8ee9dc809ecfffdc5ac
109] 
110[Yet another Sourceforge download fix
111phillip.eby**20100201163817
112 Ignore-this: 2ffaaf67be7073140918fc7b8a291015
113] 
114[Fix incorrect error message/traceback when no download
115phillip.eby**20091105155809
116 Ignore-this: 3311bc52a624fe9b71144e9ade5152d3
117 is found.
118] 
119[Fix for issue 88
120phillip.eby**20091028170953
121 Ignore-this: 2869fb03fe37ee5c67f93304ea4ece74
122] 
123[Fix the elusive "double upload bdist_wininst" bug
124phillip.eby**20091019214636
125 Ignore-this: c659bd76108f664448892933a0854376
126] 
127[Fix lost launcher changes, string.split().
128phillip.eby**20091019210206
129 Ignore-this: a232501033c73ebabb57920e21ce26a3
130] 
131[Add a better link to the files
132phillip.eby**20091014025059
133 Ignore-this: 3a11d77458ee07d65fcc89be710a7246
134] 
135[Fixes for Windwos 64 and Vista UAC errors
136phillip.eby**20091012202033
137 Ignore-this: 8075132bffa551a7b104790b174306b8
138] 
139[Major updates and fixes include:
140phillip.eby**20091012195846
141 Ignore-this: 221fc598c157bb09110610c61606e477
142 
143 * Fix for the Python 2.6.3 build_ext API change
144 * Support for the most recent Sourceforge download link insanity
145 * Support for SVN 1.6
146 * Stop crashing on certain types of HTTP error
147 * Stop re-trying URLs that already failed retrieval once
148 * Fixes for various dependency management problems such as looping
149   builds, re-downloading packages already present on sys.path (but not
150   in a registered "site" directory), and randomly preferring local -f
151   packages over local installed packages
152 * Prevent lots of spurious "already imported from another path" warnings
153   (e.g. when pkg_resources is imported late)
154 * Ensure C libraries (as opposed to extensions) are also built when
155   doing bdist_egg
156 * Fixed running the "test" command under Python 2.6+
157 
158 Other changes:
159 * Misc. documentation fixes
160 * Improved Jython support
161 * Fewer warnings under Python 2.6+
162 * Warn when 'packages' uses paths instead of package names (because it
163   causes other problems, like spurious "already imported" warnings)
164 * Stop using /usr/bin/sw_vers on Mac OS (replaced w/'platform' module
165   calls)
166 
167 Note: This is NOT a merge from Distribute; upon review, many of the
168 tracker-submitted patches used as a basis for forking were incorrect,
169 incomplete, introduced new bugs, or were not addressing the root
170 causes.  (E.g., one of the changes in this patch fixes three superficially
171 unrelated issues in the setuptools bug tracker.)  Careful review will be
172 required if you  want to merge this work back into Distribute.
173] 
174[Fixes for Windwos 64 and Vista UAC errors
175phillip.eby**20091012202033
176 Ignore-this: d09ca72d9c23a001579fb5bf84a28f9f
177] 
178[VERSION=0.6c14dev
179zooko@zooko.com**20090724121405
180 Ignore-this: 412b004941e16aceb5a343bdb9099f62
181] 
182[add cli.exe and gui.exe
183zooko@zooko.com**20090724121235
184 Ignore-this: 1eccf7f75a87956daed9668c5481aaa0
185] 
186[setup: VERSION=0.6c13
187zooko@zooko.com**20090703214638
188 Ignore-this: ee8d7e9c97e932f271fd65bd5a9274b8
189] 
190[manually undo the patch "Backport pkgutil, pydoc, and doctest from the 2.5 trunk to setuptools."
191zooko@zooko.com**20090703214517
192 Ignore-this: 993ea673533b35a6967682667d87e46d
193] 
194[Automatically add instdir to all_site_dirs, and go ahead and write a site.py even if it isn't on the PYTHONPATH.
195zooko@zooko.com**20090205150048
196 Ignore-this: 7717d45de7ea00d11ec3752507d7135a
197 This is to support the use case of installing with --prefix into a directory that isn't on the PYTHONPATH, and then adding it to the PYTHONPATH and running.
198 Some people who are in the habit of using PYTHONPATH like this prefer to pass the PYTHONPATH explicitly at the beginning of each command-line, like this:
199 
200 $ PYTHONPATH=./support/lib/python2.5/site-packages python ./docoolthing.py
201 
202 instead of by setting a persistent environment variable in their shell, like this:
203 
204 $ export PYTHONPATH=./support/lib/python2.5/site-packages
205 $ python ./docoolthing.py
206 
207 This is the topic of http://bugs.python.org/setuptools/issue54
208 
209] 
210[add sys.path to the index to search for easy_install
211zooko@zooko.com**20090203004109
212 Ignore-this: eac7b84940c5c290ec5f1a8931576606
213] 
214[hand built egg, renamed to not specify py2.5, added cli.exe and gui.exe, and about to add _pkgutil.py
215zooko@zooko.com**20081025151204
216 Ignore-this: a4b1837fa6429dcffa4996b129a19352
217] 
218[change exception into warning when target install dir isn't pth-capable
219zooko@zooko.com**20081115190501
220 Ignore-this: 5965276b28210180712c5370954cd550
221 This eases the common use case of "./setup.py install --prefix=foo"
222 followed by some other mechanism to make sure that ./foo/... is
223 importable, and makes setuptools behave more like distutils in this regard.
224 
225] 
226[try to mkdir the install directory
227zooko@zooko.com**20081115190420
228 Ignore-this: 4454e4a559e4114de0d96ac5b351e2ad
229 This eases the common use case of "./setup.py install --prefix=somedir"
230 and makes setuptools behave more like distutils in this case.
231] 
232[leave the PYTHONPATH dirs at the front of the sys.path
233zooko@zooko.com**20081115185932
234 Ignore-this: 494791a9f73bdf3ebf08657e6d7d98fb
235 This is in accordance with
236 http://www.python.org/doc/2.5.2/inst/search-path.html , which says "The
237 PYTHONPATH variable can be set to a list of paths that will be added to
238 the beginning of sys.path.", and it resolves an objection many people
239 have which impels them to ban setuptools from systems they administrate.
240 
241] 
242[call it 0.6c10dev
243zooko@zooko.com**20081025122705
244 Ignore-this: 48835c56f9a7015c829480e160b74e01
245] 
246[Keep site directories (e.g. site-packages) from being included in
247phillip.eby**20080924172009
248 .pth files.
249] 
250[Fix for http://bugs.python.org/setuptools/issue39
251phillip.eby**20080924170535] 
252[Doc typo fix
253phillip.eby**20080924165637] 
254[Fix for http://bugs.python.org/setuptools/issue47 - more md5 usage
255phillip.eby**20080924165229] 
256[Fix for http://bugs.python.org/setuptools/issue27 (Jython shebang
257phillip.eby**20080924164220
258 lines)
259] 
260[Fix for http://bugs.python.org/setuptools/issue37 - missing
261phillip.eby**20080911154326
262 __loader__ running under Google App Engine.
263] 
264[Added 'test_runner'.  (Note: this is a new feature and should not
265phillip.eby**20080821215416
266 be backported to the 0.6 branch.)
267] 
268[Ensure that _full_name is set on all shared libs before extensions
269phillip.eby**20080821213758
270 are checked for shared lib usage.  (problem reported by Andi Vajda)
271] 
272[Fix for http://bugs.python.org/setuptools/issue34
273phillip.eby**20080821192547] 
274[Fix for http://bugs.python.org/setuptools/issue9
275phillip.eby**20080821191924] 
276[Fix for http://bugs.python.org/setuptools/issue29
277phillip.eby**20080821190929] 
278[Fix for http://bugs.python.org/setuptools/issue11
279phillip.eby**20080821185402] 
280[Candidate fix for http://bugs.python.org/setuptools/issue20
281phillip.eby**20080821184159] 
282[Fix for http://bugs.python.org/setuptools/issue31
283phillip.eby**20080821183437] 
284[Fix for http://bugs.python.org/setuptools/issue16
285phillip.eby**20080821181703] 
286[Fix for http://bugs.python.org/setuptools/issue5
287phillip.eby**20080821175952] 
288[Fix for http://bugs.python.org/setuptools/issue7
289phillip.eby**20080821175532] 
290[Enhanced error message per http://bugs.python.org/setuptools/issue28
291phillip.eby**20080821174725] 
292[Fix for http://bugs.python.org/setuptools/issue23
293phillip.eby**20080821174205] 
294[Misc. documentation updates/fixes
295phillip.eby**20080821172042] 
296[More SVN 1.5 fixing
297phillip.eby**20080724211623] 
298[Support subversion 1.5
299phillip.eby**20080716135651] 
300[Support installing pywin32 as an egg, albeit without registering
301phillip.eby**20080310162225
302 COM support, shortcuts, etc.
303] 
304[Fixed issues with empty resource names for resource_listdir et al.
305phillip.eby**20080215234944] 
306[Fixed missing import
307phillip.eby**20080215234919] 
308[Warn if a namespace package is declared, but its parent
309phillip.eby**20080214211714
310 package is not.
311] 
312[Support upgrading existing setuptools when run from a setup.py
313phillip.eby**20080214193528
314 script (but not during easy_install, unfortunately).
315] 
316[Fix interactions between the various "require" options,
317phillip.eby**20080119024651
318 so that downloads aren't repeated and needed eggs are
319 always installed, even if they were downloaded to the
320 setup directory already.
321] 
322[chmod/test cleanups and Jython support.
323phillip.eby**20080118214709] 
324[Update Pyrex/swig_sources workaround for newer Pyrex versions
325phillip.eby**20080115175223] 
326[Fix not picking up dependency links from recursive dependencies.
327phillip.eby**20080115174417] 
328[Fix gui.exe launcher issue reported by Alexander Michael and Robin Dunn.
329phillip.eby**20080103234438] 
330[Fix dependency on Python 2.5
331phillip.eby**20071026022031] 
332[Prevent --help-commands and other junk from showing under
333phillip.eby**20071008114807
334 Python 2.5 when running "easy_install" directly.
335] 
336[Fix cross-platform line-end problem with SOURCES.txt: distutils
337phillip.eby**20070926170339
338 doesn't expect manifest files to be shipped across platforms.
339] 
340[Remove all references to the Cheese Shop, and switch to using
341phillip.eby**20070904155318
342 the new PyPI "/simple" REST API.
343] 
344[Fix import problems with system-installed nested namespace packages,
345phillip.eby**20070904040757
346 due to the parent package not having the child package as an attribute.
347] 
348[Fix precedence issue between .egg and .egg-info packages
349phillip.eby**20070904035125
350 when both are installed in site-packages.
351] 
352[Fix downloading from ftp: URLs (which don't have a content-type).
353phillip.eby**20070824031432] 
354[Fix a problem with the findall() fix.  :(
355phillip.eby**20070712173106] 
356[Fix distutils.filelist.findall() crashing on broken symlinks.  Fix
357phillip.eby**20070711173402
358 egg_info failures on new, uncommitted SVN directories.
359] 
360[Misc. fixes:
361phillip.eby**20070531172056
362 
363 * Don't treat directories with a '.' in the name as packages
364 * Don't include ez_setup in find_packages()
365 * HTML-decode URLs scraped from web pages (d'oh!)
366 * Fix cache dir defaults on Windows when multiple env vars used
367 * Doc updates
368] 
369[Setting svn:eol properties everywhere where they weren't set yet.
370guido.van.rossum**20070425195151] 
371[Changed setuptools.package_index.PackageIndex.open_url to include the
372jim.fulton**20070309161241
373 url in the exception.
374] 
375[Fix problem activating dependencies for tests
376phillip.eby**20070302012227] 
377[Fix "test" command possibly failing if an older version of the project
378phillip.eby**20070224220920
379 being tested is installed on sys.path ahead of the test source directory.
380] 
381[Add --local-snapshots-ok flag, to allow building eggs from projects
382phillip.eby**20070223202729
383 installed using "setup.py develop".
384] 
385[Get rid of 'sets' module usage under Python 2.4+, so that no warnings
386phillip.eby**20070223192457
387 are issued by Python 2.6.
388] 
389[Indicate when dependency processing is finished, so that you can tell
390phillip.eby**20070223192254
391 which dependencies go with what.  (Suggested by Ian Bicking)
392] 
393[Respect possible entry point override of 'easy_install' command.
394phillip.eby**20070220224540] 
395[Fix error if script contains null byte.
396phillip.eby**20070217175345] 
397[Internals updated for relative .egg-link support
398phillip.eby**20070215193702] 
399[Support .egg-link paths being relative
400phillip.eby**20070215193508] 
401[Add --egg-path option to force .egg-link files to use relative paths
402phillip.eby**20070215191941
403 (allowing them to be shared across platforms on a networked drive).
404] 
405[Ensure extracted libraries have correct permissions on Posix systems
406phillip.eby**20070208200816
407 (e.g. Cygwin, which is where I found the problem.)
408] 
409[Match Python 2.5 pydoc
410phillip.eby**20070206125526] 
411[Fix script language detection so that scripts built on Windows are
412phillip.eby**20070201195949
413 correctly identified as still being Python code!
414] 
415[Fixed mangling line endings when an old-style source script came from
416phillip.eby**20070201185706
417 Windows.
418] 
419[Fix #! parsing problems w/whitespace in quoted strings or at the end
420phillip.eby**20070124205726
421 of the #! line.
422] 
423[If a page can't be spidered, warn and ignore rather than aborting.
424phillip.eby**20070124153900] 
425[Fix "bashism" in eggsecutable header.
426phillip.eby**20070124152212] 
427[Incorporate README fix from 0.6 branch.
428phillip.eby**20070124152148] 
429[Workaround for Python 2.5 distutils bug: when bdist_wininst files are
430phillip.eby**20070109192242
431 uploaded, they are marked as suitable for "any" Python version, even if
432 an explicit --target-version was specified.  (This needs to be fixed in
433 the distutils too.)
434] 
435[Fix not making Cygwin .dll's executable when installing in non-zip-safe
436phillip.eby**20070109185723
437 mode.
438] 
439[Argh, again.
440phillip.eby**20070109182136] 
441[Backport from branch.
442phillip.eby**20070109181432] 
443[Don't double-upload .exe files under Python 2.5.  :(
444phillip.eby**20070109180831] 
445[Formatting fixes for README
446phillip.eby**20070109175934] 
447[Fix not generating correct .pth for parent namespace packages when
448phillip.eby**20070105181531
449 installing --single-version-externally-managed.
450] 
451[Add Basic Auth support for http URLs with embedded credentials.  If an
452phillip.eby**20061230160314
453 authenticated page contains links to the same protocol and host, those
454 links should inherit the same credentials.
455] 
456[Fix os.open() sandboxing code that refused anything but read-only access.
457phillip.eby**20061230030609] 
458[Switch default package-index to cheeseshop.python.org, and make
459phillip.eby**20061229175025
460 setuptools' home page its cheeseshop page.
461] 
462[Whoops; dupes were already taken care of elsewhere.
463phillip.eby**20061229174103] 
464[Overhaul Windows script wrappers to support bdist_wininst better. 
465phillip.eby**20061229173314
466 Scripts installed with bdist_wininst will always use #!python.exe or
467 #!pythonw.exe as the executable name, and the wrappers will look for the
468 executable in the script's parent directory.  Since bdist_wininst
469 scripts are installed to Python2X/Scripts, this will look for
470 Python2X/python.exe.  Scripts installed by easy_install, however, will
471 still use an absolute executable path.  Also fixed: some egg<->exe
472 roundtripping issues, and script #! lines on Windows can now have an
473 arbitrary number of arguments following the Python exe name, and the 
474 exe name is quoted if necessary, following the MS command line parsing
475 rules.
476] 
477[Partial support for cross-platform generation of bdist_wininst .exe's.
478phillip.eby**20061229012949
479 Unfortunately, bdist_wininst doesn't fix up #! lines, so python.exe or
480 pythonw.exe have to be on PATH for generated scripts to work.  This
481 could probably be fixed up with a post-install script, but that's a
482 job for another day.
483] 
484[Work around a distutils bdist_wininst bug: if the user has specified an
485phillip.eby**20061229005834
486 --install-lib via a configuration file, the path is hardcoded into the
487 .exe file in place of PLATLIB/ or PURELIB/.  (This bug should also be
488 fixed in distutils' bdist_wininst!)
489] 
490[Fix import problem for bdist_rpm w/Python<2.5
491phillip.eby**20061229004032] 
492[Removed all special support for Sourceforge mirrors, since SF finally
493phillip.eby**20061229003104
494 replaced their crazy mirror system with something sane.
495] 
496[New installation instructions and credits
497phillip.eby**20061229000623] 
498[Fix problem w/' ' in sys.executable on Windows.
499phillip.eby**20061201033900] 
500[Fixed not allowing os.open() of paths outside the sandbox, even if they
501phillip.eby**20061024182935
502 are opened read-only (e.g. /dev/urandom).
503] 
504[Use cross-platform relative paths in .pth if target is anywhere inside the
505phillip.eby**20060929192410
506 .pth file's directory.
507] 
508[Fix problem generating "eggsecutable" header if dist/ dir doesn't exst yet.
509phillip.eby**20060928044752] 
510[Allow explicit selection of Sourceforge mirror(s) with --sf-mirror, and
511phillip.eby**20060927015648
512 further refine download/retry algorithm.
513] 
514[Should've used distutils.log.warn instead of warnings.warn
515phillip.eby**20060926201505] 
516[Handle empty revision numbers in SVN 1.4 "entries" format
517phillip.eby**20060926161741] 
518[Fix SF download problems when server returns HTML instead of a 404.  Use
519phillip.eby**20060925212419
520 sf-mirrors.telecommunity.com as a fallback to get SF mirror info if the
521 first dl.sourceforge.net attempt doesn't work.
522] 
523[Fix "dev" versions being considered newer than release candidates.  :(
524phillip.eby**20060925175846] 
525[Add support for "eggsecutable" headers: a /bin/sh script that is prepended
526phillip.eby**20060922000356
527 to an .egg file to allow it to be run as a script on Unix-ish platforms.
528 (This is mainly so that setuptools itself can have a single-file installer
529 on Unix, without doing multiple downloads, dealing with firewalls, etc.)
530] 
531[Fix broken imports.
532phillip.eby**20060921222831] 
533[Fix bdist_wininst files not being uploaded by "upload"
534phillip.eby**20060921221340] 
535[Support uploading bdist_rpm files on older Python versions (2.3/2.4)
536phillip.eby**20060921215859] 
537[Fix easy_install not recognizing win32.exe files that include a custom bitmap.
538phillip.eby**20060921205907] 
539[Retain 2.3/2.4 compatibility as well...
540phillip.eby**20060920202057] 
541[Python 2.5 compatibility fix
542phillip.eby**20060920201100] 
543[Support svn 1.4 working copy format
544phillip.eby**20060917161854] 
545[Prevent deprecation warnings coming from generated scripts when
546phillip.eby**20060906205428
547 sys.executable contains non-ASCII characters.
548] 
549[Make "setup.py develop" of a setuptools-using project install
550phillip.eby**20060906195435
551 setuptools, if needed, instead of only downloading the egg.
552] 
553[Don't check installation directory writability and site/.pth setup when
554phillip.eby**20060906194339
555 using --editable.
556] 
557[Support setuptools .egg being in current directory when bootstrapping on
558phillip.eby**20060906181013
559 an offline machine.  Output what version/location is conflicting when a
560 newer version of setuptools is requested.
561] 
562[Added quoting of script arguments and extended the quoting logic to
563jim.fulton**20060822194248
564 handle embedded quotes.
565 
566 Added support for passing a single argument on the shebang line to
567 pass things like -O and -i.
568 
569 Fixed bug in handling trailing whitespace in Python command.
570] 
571[Fix wrong Mac OS X installation paths.
572phillip.eby**20060813174259] 
573[Sync pkgutil from trunk
574phillip.eby**20060728235814] 
575[Fix a problem with eggs specified directly on PYTHONPATH on
576phillip.eby**20060721165418
577 case-insensitive filesystems possibly not showing up in the default
578 working set.
579] 
580[Update MD5 matching for current PyPI code.  :(
581phillip.eby**20060720204649] 
582[Identify the setuptools version as part of the User-Agent string when
583phillip.eby**20060720203727
584 spidering pages or downloading files.
585] 
586[Make sdist-from-sdist builds keep the exact same version number, even if
587phillip.eby**20060718164942
588 --tag-date was used to build the original sdist.
589] 
590[Edit an sdist's setup.cfg to include any egg_info options that were used
591phillip.eby**20060718163207
592 to build it.
593] 
594[Restored support for extra_path when using backward compatibility mode.
595phillip.eby**20060718155946] 
596[Fix three problems reported by Bob Ippolito and Jim Fulton
597phillip.eby**20060714233215] 
598[Fix doubled --tag-build option.
599phillip.eby**20060711194919] 
600[Fix doc typo
601phillip.eby**20060711194829] 
602[Don't warn about possible misspelling if we know that a project with
603phillip.eby**20060711182341
604 that name does in fact exist.
605] 
606[Crosslink "Creating your own package index" to the new docs.
607phillip.eby**20060711011451] 
608[Add documentation for package index "API" (layout/content rules)
609phillip.eby**20060711011215] 
610[Reduce screenscraping required for a package index.  Homepage and
611phillip.eby**20060711000616
612 download URLs can now be marked with 'rel="download"' and
613 'rel="homepage"' respectively, and the 'Index of Packages' string is no
614 longer required.  Since PyPI doesn't yet support rel="" attributes, the
615 old "<th>"-matching code remains, as does the MD5 scraping.
616] 
617[Allow use of file:// URLs for --index-url.
618phillip.eby**20060710225403] 
619[Fix not recognizing HTML 404 pages from package indexes.
620phillip.eby**20060710215412] 
621[Ensure that sys.path_importer_cache is updated when an existing zipfile
622phillip.eby**20060710212514
623 or directory is deleted.
624] 
625[Don't warn about missing README(.txt) unless creating an sdist
626phillip.eby**20060710211427] 
627[Tweak docs for subversion release stuff to make better use of new
628phillip.eby**20060710204533
629 options.
630] 
631[Update aliases for easier release using new options
632phillip.eby**20060710203858] 
633[Add --no-date and --no-svn-revision options to make creating release
634phillip.eby**20060710203345
635 snapshots easier.
636] 
637[Fix "register" command not necessarily reflecting build tags.
638phillip.eby**20060710200448] 
639[Include more detailed version ranges spec, and make Requirement.specs a
640phillip.eby**20060710195406
641 public/documented attribute.
642] 
643[Fix broken error message for socket error during upload.
644phillip.eby**20060710194835] 
645[Fix ftp:// directory listing URLs from causing a crash when used in the
646phillip.eby**20060620211924
647 URL or Download URL slot on PyPI.
648] 
649[Implement detection of non-Python scripts, as described in
650phillip.eby**20060615201616
651 http://mail.python.org/pipermail/distutils-sig/2006-June/006359.html
652] 
653[Allow .py files found by the include_package_data option to be
654phillip.eby**20060609182428
655 automatically included.  Remove duplicate data file matches if both
656 include_package_data and package_data are used to refer to the same
657 files.
658] 
659[Fix mysterious errors during initial setuptools install, caused by
660phillip.eby**20060609175510
661 ez_setup trying to run easy_install twice, due to a code fallthru
662 after deleting the egg from which it's running.
663] 
664[Fix sometimes not detecting local packages installed outside of "site"
665phillip.eby**20060609164203
666 directories.
667] 
668[Fix local --find-links eggs not being copied except with --always-copy.
669phillip.eby**20060607200552] 
670[Fix bdist_egg not including files in .egg-info subdirectories.
671phillip.eby**20060607193220] 
672[Clarify the limitations of get_provider(packagename)
673phillip.eby**20060607183701] 
674[Fix a duplicate path insertion bug on case-insensitive filesystems,
675phillip.eby**20060607182702
676 found by Markku Mielityinen.
677] 
678[Fix a problem w/relative path generation if you install an egg whose
679phillip.eby**20060530175627
680 name begins with 'import'.
681] 
682[Don't make things warnings that aren't; update info text for
683phillip.eby**20060526190328
684 --multi-version.
685] 
686[Don't install or update a ``site.py`` patch when installing to a
687phillip.eby**20060523190927
688 ``PYTHONPATH`` directory with ``--multi-version``, unless an
689 ``easy-install.pth`` file is already in use there.
690] 
691[Merge doc update from 0.6b1
692phillip.eby**20060523190645] 
693[Remove outdated MD5 signatures
694phillip.eby**20060523190613] 
695[Better ambiguity management: accept #egg name/version even if processing
696phillip.eby**20060512221619
697 what appears to be a correctly-named distutils file, and ignore .egg
698 files with no '-', since valid Python .egg files always have a version
699 number (but Scheme eggs often don't).
700] 
701[Python 2.5 supports -m w/zipped modules, and Python 2.3 has no -m, so
702phillip.eby**20060428181218
703 there's no need to treat script modules as zip-unsafe unless we're
704 running 2.4 exactly.
705] 
706[Remove out-of-date info about zipfile analysis
707phillip.eby**20060428180407] 
708[Fix entry point parsing when a standalone module name has whitespace
709phillip.eby**20060427180244
710 between it and the extras.
711] 
712[Forgot to document script wrappers
713phillip.eby**20060426001053] 
714[Add "internals" documentation describing file formats, sys.path
715phillip.eby**20060425223207
716 manipulation, zip file issues, file naming, etc., mostly by reference to
717 other documentation and a few distutils-sig posts.
718] 
719[Catch 'module' names in internal module name list as well.
720phillip.eby**20060424205018] 
721[Strip 'module' from the end of compiled extension modules when computing
722phillip.eby**20060424202232
723 the name of a .py loader/wrapper.  Python's import machinery ignores
724 this suffix when searching for an extension module.
725] 
726[Recognize 'U' as a valid read-only mode for open()
727phillip.eby**20060421173855] 
728[Ignore bdist_dumb distributions when looking for downloads.
729phillip.eby**20060421170643] 
730[Support file:// links to directories in --find-links, so that
731phillip.eby**20060419001858
732 easy_install can build packages from local source checkouts.
733] 
734[Backport whitespace normalization from 2.5 trunk.
735phillip.eby**20060419001321] 
736[Split ``get_platform()`` into ``get_supported_platform()`` and
737phillip.eby**20060418152706
738 ``get_build_platform()`` to work around a Mac versioning problem that caused
739 the behavior of ``compatible_platforms()`` to be platform specific.
740] 
741[Handle being run via -m with no __file__ if done from a zipfile in
742phillip.eby**20060418042518
743 Python 2.5.
744] 
745[Changes to the experimental 'Feature' feature to be compatible with
746phillip.eby**20060418034051
747 Python 2.5 distutils, so the tests don't bomb under 2.5
748] 
749[Make errors __repr__ the same as the default exception repr in Python
750phillip.eby**20060418032910
751 2.5, so doctests will work right.  :(
752] 
753[Move api_tests.txt file to tests subpackage for easier integration
754phillip.eby**20060418030838
755 w/stdlib test suites.
756] 
757[Backport pkgutil, pydoc, and doctest from the 2.5 trunk to setuptools
758phillip.eby**20060418030316
759 0.7 trunk.  (Sideport?)  Setuptools 0.7 will install these in place of
760 the 2.3/2.4 versions (at least of pydoc and doctest) to let them work
761 properly with eggs.  pkg_resources now depends on the 2.5 pkgutil, which
762 is included here as _pkgutil, to work around the fact that some system
763 packagers will install setuptools without overriding the stdlib modules. 
764 But users who install their own setuptools will get them, and the system
765 packaged people probably don't need them.
766] 
767[Trap absolute paths given as package_dirs, which foul up things terribly.
768phillip.eby**20060415053216] 
769[First round of prepping setuptools for inclusion in Python 2.5: move
770phillip.eby**20060414193838
771 site.py to setuptools/site-patch.py; reinstate 'python -m easy_install'
772 support; use distutils' "upload" command when running under 2.5.
773] 
774[Namespace package doc tweaks.
775phillip.eby**20060414191737] 
776[Don't eagerly import namespace packages.  This was the big reason for
777phillip.eby**20060414191324
778 branching to 0.7 now, as I wanted this wart gone before anything went
779 into Python 2.5.  But it's gone now, yay!
780] 
781[Bump trunk version # to 0.7a1.dev, and clear out old version history
782phillip.eby**20060414181050
783 from release notes.
784] 
785[Added automatic retry for Sourceforge mirrors.  The new download process is
786phillip.eby**20060409202549
787 to first just try dl.sourceforge.net, then randomly select mirror IPs and
788 remove ones that fail, until something works.  The removed IPs stay removed
789 for the remainder of the run.
790] 
791[Bump version to 0.6a12dev...  but hopefully it will in fact be 0.6b1.
792phillip.eby**20060330003843] 
793[Misc. doc formatting/phrasing corrections
794phillip.eby**20060330000010] 
795[0.6a11 release
796phillip.eby**20060329235925] 
797[Fix typo
798phillip.eby**20060329234035] 
799[Added ``test_loader`` keyword to support custom test loaders.
800phillip.eby**20060329233241] 
801[More docs for .py#egg and ``dependency_links``
802phillip.eby**20060329230916] 
803[Added ``setuptools.file_finders`` entry point group to allow implementing
804phillip.eby**20060329222338
805 revision control plugins.
806] 
807[Added ``--identity`` option to ``upload`` command.
808phillip.eby**20060329214501] 
809[Added ``ExtractionError`` and ``ResourceManager.extraction_error()`` so that
810phillip.eby**20060329211122
811 cache permission problems get a more user-friendly explanation of the
812 problem, and so that programs can catch and handle extraction errors if they
813 need to.
814] 
815[Fix a problem with the test loader finding the bundled doctest's
816phillip.eby**20060329210943
817 TestCase subclasses and trying to run them, too.
818] 
819[Implement dependency_links feature, courtesy of Tres Seaver's rough
820phillip.eby**20060329192355
821 draft of a patch.
822] 
823[Support complex .pth files in win32.exe->.egg conversion; this addition
824phillip.eby**20060329054140
825 lets easy_install handle pywin32...  well, almost.  You still have to
826 deal with the "system" DLLs yourself.
827] 
828[Fall back to a reasonable default Sourceforge address if the machine is
829phillip.eby**20060328230658
830 unable to obtain the mirror IP list via DNS.
831] 
832[Enhanced test loader to scan packages as well as modules, and call
833phillip.eby**20060328224057
834 ``additional_tests()`` if present to get non-unittest tests.
835] 
836[Support Python 2.5, which now includes its own install_egg_info command.
837phillip.eby**20060328190752] 
838[Eliminate spurious warnings due to case-insensitive file systems
839phillip.eby**20060328170706] 
840[Fix ZipImportError when overwriting a zipfile with the same name/version
841phillip.eby**20060324174902
842 but different contents.
843] 
844[Remove use of obsolete --ignore-conflicts-at-my-risk option
845phillip.eby**20060324174817] 
846[Ensure SOURCES.txt references itself even the first time it is generated
847phillip.eby**20060324173452
848 (i.e., when it didn't exist prior to egg_info being run).
849] 
850[Don't generate a loader .py file in .egg file for extensions that aren't
851phillip.eby**20060321190455
852 actually built.  This prevents problems w/customized setups that make
853 some extensions optional (e.g. scipy.distutils).
854] 
855[Use relative paths in ``.pth`` files when eggs are being installed to the
856phillip.eby**20060320230622
857 same directory as the ``.pth`` file.  This maximizes portability of the
858 target directory when building applications that contain eggs.
859] 
860[Added ``easy_install-N.N`` script(s) for convenience when using multiple
861phillip.eby**20060320222838
862 Python versions.
863] 
864[Fix a problem with fetch() method backward compatibility.
865phillip.eby**20060317180554] 
866[Tweak the nspkg.pth hack to avoid creating a module if there *is* an
867phillip.eby**20060317171619
868 __init__.py installed.  It may be that this should check for .pyc/.pyo,
869 but system packagers don't normally remove them.
870] 
871[Support namespace packages in conjunction with system packagers, by omitting
872phillip.eby**20060317165723
873 the installation of any ``__init__.py`` files for namespace packages, and
874 adding a special ``.pth`` file to create a working package in ``sys.modules``.
875 
876] 
877[Preserve timestamps and permissions when "unpacking" (copying) a
878phillip.eby**20060317155205
879 directory tree.
880] 
881[Added automatic handling of installation conflicts.  Eggs are now shifted to
882phillip.eby**20060311003909
883 the front of sys.path, in an order consistent with where they came from,
884 making EasyInstall seamlessly co-operate with system package managers.
885 
886 The ``--delete-conflicting`` and ``--ignore-conflicts-at-my-risk`` options
887 are now no longer necessary, and will generate warnings at the end of a
888 run if you use them.
889] 
890[Record recent changes in the release notes.
891phillip.eby**20060304000222] 
892[Made ``--single-version-externally-managed`` automatic when ``--root`` is
893phillip.eby**20060304000020
894 used, so that most system packagers won't require special support for
895 setuptools.
896] 
897[Don't recurse into subdirectories when scanning --find-links
898phillip.eby**20060303235100] 
899[Fix setup_requires/tests_require/etc. not using setup.cfg or other
900phillip.eby**20060228212253
901 config files for option defaults.
902] 
903[When installing setup_requires/tests_require packages, use
904phillip.eby**20060228205927
905 --multi-version so that '.' doesn't have to support .pth files.
906] 
907[Prevent failed attempts at removing MANIFEST.in from masking errors that
908phillip.eby**20060221224458
909 occur while reading it.
910] 
911[bump version #
912phillip.eby**20060221224416] 
913[Misc. doc fixes
914phillip.eby**20060215151028] 
915[0.6a10 release
916phillip.eby**20060214210108] 
917[Minor tweak to installation report, and add in a hook for later
918phillip.eby**20060214205434
919 displaying the "extras" that can be added to a package.
920] 
921[Fix a Windows problem when the Python executable is in a directory with
922phillip.eby**20060214190756
923 a ' ' in its name.
924] 
925[Added the ``extras`` attribute to ``Distribution``, the ``find_plugins()``
926phillip.eby**20060214190504
927 method to ``WorkingSet``, and the ``__add__()`` and ``__iadd__()`` methods
928 to ``Environment``.
929] 
930[Don't compress eggs on Python 2.3, as a possible workaround for 64-bit
931phillip.eby**20060213213550
932 zipimport bug.
933] 
934[Added exhaustive testing of the install directory, including a spawn test
935phillip.eby**20060213180947
936 for ``.pth`` file support, and directory writability/existence checks.  This
937 should virtually eliminate the need to set or configure ``--site-dirs``.
938] 
939[Fixed duplication of scripts inside .egg files
940phillip.eby**20060213173242] 
941[Expanded download message so people know what file to get, if they're
942phillip.eby**20060212233908
943 going to have to fetch it by hand due to restricted or nonexistent
944 network access.
945] 
946[Workaround for packages that think 'version' is a number.
947phillip.eby**20060212193217] 
948[Misc. doc additions: callback exception handling, and an assortment of
949phillip.eby**20060212192029
950 tips and techniques for using easy_install.
951] 
952[Fixed the annoying ``--help-commands`` wart, albeit in a most
953phillip.eby**20060210222348
954 unfortunately kludgy fashion.
955] 
956[--prefix support for even more do-what-I-meanishness.  :)
957phillip.eby**20060210220427] 
958[Implemented DWIM for PYTHONPATH.  That is, ez_setup and easy_install
959phillip.eby**20060210210912
960 should now "just work" if you're using a PYTHONPATH target, and if it
961 can't "just work", you get helpful instructions and doc links.
962] 
963[New version of site.py hack, for better compatibility with distros that
964phillip.eby**20060210014904
965 patch the stdlib site.py.  This version runs the stdlib site.py, then
966 tries to hack sys.path back to something resembling what the old version
967 did.  Unfortunately, this is complex since site.py and .pth files can
968 munge the path in rather arbitrary ways, and the initial setup of
969 sys.path is dependent on the platform and Python version.  This code has
970 been tested on Linux, cygwin, and Windows Python, versions 2.2, 2.3, and
971 2.4 (although not all versions on all platforms), and appears to perform
972 as intended.
973] 
974[Ugh.  Rereading the Fedora patch shows my previous hack won't actually
975phillip.eby**20060210013424
976 accomplish anything useful.  This one should, but it needs testing by
977 someone who actually has a Fedora 64-bit x86 setup.
978] 
979[Oops, bad indentation.
980phillip.eby**20060210012622] 
981[Tweak site_dirs detection so that distros with weird layouts (e.g.
982phillip.eby**20060210012520
983 /usr/lib64 patches on 64-bit Fedora) will have a better chance of
984 working "out of the box".
985] 
986[The ``--find-links`` option previously scanned all supplied URLs and
987phillip.eby**20060208054654
988 directories as early as possible, but now only directories and direct
989 archive links are scanned immediately.  URLs are not retrieved unless a
990 package search was already going to go online due to a package not being
991 available locally, or due to the use of the ``--update`` or ``-U``
992 option.  Also, fixed the ``develop`` command ignoring ``--find-links``.
993] 
994[The ``--always-copy`` option now skips "system" and "development" eggs
995phillip.eby**20060207164341
996 since they can't be reliably copied.  Note that this may cause EasyInstall
997 to choose an older version of a package than what you expected, or it may
998 cause downloading and installation of a fresh version of what's already
999 installed.
1000] 
1001[Added ``Distribution.clone()`` method, and keyword argument support to
1002phillip.eby**20060207164055
1003 other ``Distribution`` constructors.  Added the ``DEVELOP_DIST``
1004 precedence, and automatically assign it to eggs using ``.egg-info``
1005 format.
1006] 
1007[Implement more Mac OS X version handling stuff requested by Bob
1008phillip.eby**20060207133650
1009 Ippolito.
1010] 
1011[Honor get_platform() for Mac OS X if it starts with 'macosx-'
1012phillip.eby**20060204000325] 
1013[Fix missing import.
1014phillip.eby**20060127164759] 
1015[Expand ``$variables`` used in the ``--site-dirs``, ``--build-directory``,
1016phillip.eby**20060126220807
1017 ``--install-dir``, and ``--script-dir`` options, whether on the command
1018 line or in configuration files.
1019] 
1020[Randomly select a SourceForge mirror IP for each download, to work
1021phillip.eby**20060123162916
1022 around too-aggressive DNS caches on some platforms, that could otherwise
1023 result in a stuck bad IP.
1024] 
1025[Fix typo.
1026phillip.eby**20060122222244] 
1027[Scrape-proof Sourceforge mirror processing!
1028phillip.eby**20060117195659] 
1029[Fix editing error (reported by Ian Bicking).
1030phillip.eby**20060117184756] 
1031[More sourceforge changes.  :(
1032phillip.eby**20060117184446] 
1033[Tweak build configuration for OS X, based on suggestions from Michael
1034phillip.eby**20060114193455
1035 Twomey on the distutils-sig.  (It looks like we may also need to add an
1036 '-install_name' or some such to the library link step.)
1037] 
1038[Attempt to define some reasonable flags for OS X linker.
1039phillip.eby**20060114013413] 
1040[Fix broken import
1041phillip.eby**20060114001318] 
1042[Don't keep the stub .py file around, just the .pyc/.pyo.  Don't write
1043phillip.eby**20060114001203
1044 a stub to the source tree if it would overwrite an existing .py file.
1045] 
1046[Ensure installed stubs get compiled, even if there are no "pure" modules
1047phillip.eby**20060113235242
1048 present.  Also, don't bother compiling the stub prior to installation.
1049] 
1050[Write stub files correctly for build_ext --inplace
1051phillip.eby**20060113233255] 
1052[Implement LD_LIBRARY_PATH workaround stub loader
1053phillip.eby**20060113231656] 
1054[Don't write .py stubs except for actual extensions that don't already
1055phillip.eby**20060113223257
1056 have them.
1057] 
1058[Oops.
1059phillip.eby**20060113215905] 
1060[Add experimental code for wrapping relocatable shared libraries on
1061phillip.eby**20060113215712
1062 platforms that support the 'dl' module.
1063] 
1064[EasyInstall can now download bare ``.py`` files and wrap them in an egg,
1065phillip.eby**20060110040054
1066 as long as you include an ``#egg=name-version`` suffix on the URL, or if
1067 the ``.py`` file is listed as the "Download URL" on the project's PyPI
1068 page.  This allows third parties to "package" trivial Python modules
1069 just by linking to them (e.g. from within their own PyPI page or
1070 download links page).
1071 
1072] 
1073[``safe_name()`` now allows dots in project names, and there is a new
1074phillip.eby**20060110034922
1075 ``to_filename()`` function that escapes project names and versions for
1076 safe use in constructing egg filenames from a Distribution object's
1077 metadata.
1078 
1079 Note that allowing dots may now cause problems for projects with '.' in
1080 the name that were previously installed, since such projects had to be
1081 spelled with a '-' before.  The '-' name will no longer match the '.'
1082 project, and there is no real room for backward compatibility here.  :(
1083] 
1084[PyPI searches now use the exact spelling of requirements specified on
1085phillip.eby**20060107001958
1086 the command line or in a project's ``install_requires``.  Previously, a
1087 normalized form of the name was used, which could lead to unnecessary
1088 full-index searches when a project's name had an underscore (``_``)
1089 in it.
1090] 
1091[SharedLibrary -> Library.  For now, Windows libs get built as shared,
1092phillip.eby**20060106195736
1093 and other platforms get static.  :(
1094] 
1095[Remove debug print left in by mistake.
1096phillip.eby**20060105233042] 
1097[First draft of shared library build support.  See tests/shlib_test
1098phillip.eby**20060105231421
1099 for a trivial example.  This has only been tested on Windows with
1100 a MinGW compiler, and the Mac OS support isn't finished.  Testing
1101 w/other platforms+compilers would be helpful.
1102] 
1103[Bump version number to start the 0.6a10dev cycle.
1104phillip.eby**20060105000157] 
1105[0.6a9 release
1106phillip.eby**20060104175552] 
1107[Make it clearer that Requirement.parse() is the only way for users
1108phillip.eby**20060103231020
1109 to create correct Requirement instances.
1110] 
1111[Tweak windows environment variable doc, per user feedback.
1112phillip.eby**20060103213522] 
1113[Allow most commands to work with an existing .egg-info directory w/a '-'
1114phillip.eby**20051230163542
1115 in it, but warn about it and refuse to run "develop" until the existing
1116 directory is renamed.  This should allow older source distributions and
1117 checkouts to keep working with 0.6a9.
1118] 
1119[Fix unescaped '-' in .egg-info directory names.  Note that this means
1120phillip.eby**20051230161135
1121 you must rename any existing .egg-info directory inside a project that
1122 has a '-' in it!
1123] 
1124[Make the install_scripts command respect the "build_scripts -e"
1125phillip.eby**20051226192141
1126 option when installing generated scripts using the
1127 --single-version-externally-managed option.
1128] 
1129[Fix typo.  :(
1130phillip.eby**20051220171831] 
1131[Fix "legacy mode" trying to install scripts when there are none.
1132phillip.eby**20051220163129] 
1133[Changes so that upgrading an existing setuptools to a development
1134phillip.eby**20051220162150
1135 version doesn't lose its entry points by using the already-installed
1136 setuptools as a basis for generating them.
1137] 
1138[Incorporate Bob Ippolito's corrections to Mac OS X instructions.
1139phillip.eby**20051218170702] 
1140[Add notes about bdist_msi, bdist_nsi, and bdist_deb formats'
1141phillip.eby**20051216204910
1142 compatibility with setuptools.
1143] 
1144[Added "What Your Users Should Know" section, telling package developers
1145phillip.eby**20051216201501
1146 what information they should give to their users about dependencies,
1147 network access, system packaging, and other common questions or
1148 concerns.
1149] 
1150[Fix bdist_dumb support to use .egg-info instead of .egg format.
1151phillip.eby**20051216193721] 
1152[Overhaul installation docs to address frequently asked questions
1153phillip.eby**20051216184656
1154 and problems, and to document additional approaches to dealing with
1155 custom install locations.  Also, added a note about the parameters
1156 of ``use_setuptools()`` so that persons needing to distribute e.g.
1157 an in-development version of setuptools can do so.
1158] 
1159[Modify resource extraction to bypass sandbox control so that egg
1160phillip.eby**20051215194903
1161 extraction during setup runs is not restricted.
1162] 
1163[Make install_egg_info track every file it installs, not just the
1164phillip.eby**20051215181112
1165 directory it installs to.
1166] 
1167[Improve startup performance when sys.path contains a lot of eggs, by
1168phillip.eby**20051215181010
1169 caching normalized versions of path entries.  It appears that
1170 normalizing paths using os.path.realpath is extremely expensive on
1171 at least Windows.  Caching cuts the overhead by around 30X.
1172] 
1173[Added the ``exclude_package_data`` keyword to ``setup()``, allowing you
1174phillip.eby**20051215024503
1175 to trim back files included via the ``package_data`` and
1176 ``include_package_data`` options.
1177] 
1178[Support full roundtrip translation of eggs to and from ``bdist_wininst``
1179phillip.eby**20051214234722
1180 format.  Running ``bdist_wininst`` on a setuptools-based package wraps the
1181 egg in an .exe that will safely install it as an egg (i.e., with metadata
1182 and entry-point wrapper scripts), and ``easy_install`` can turn the .exe
1183 back into an ``.egg`` file or directory and install it as such.
1184 
1185 At this point, it should also be possible to "system package" any egg,
1186 complete with wrapper scripts, and at least bdist_wininst works now.
1187 More testing is needed for at least bdist_dumb and bdist_rpm.
1188] 
1189[Refactor script wrapper generation into a separate function so that it
1190phillip.eby**20051214225641
1191 can be used by the future install_scripts command to install entry point
1192 scripts in "legacy" mode.
1193] 
1194[Basic roundtripping support between bdist_wininst and eggs.  EasyInstall
1195phillip.eby**20051214204936
1196 will now recognize when a bdist_wininst .exe wraps a .egg-info style
1197 package, and reconstitute it correctly, maintaining the original zip
1198 safety flag, if applicable.  This still needs support for entrypoint
1199 scripts, though, as does the install_scripts command.
1200] 
1201[Oops.
1202phillip.eby**20051214182628] 
1203[Added a ``--single-version-externally-managed`` option to the ``install``
1204phillip.eby**20051214181011
1205 command so that you can more easily wrap a "flat" egg in a system package.
1206 Enhanced ``bdist_rpm`` so that it installs single-version eggs that
1207 don't rely on a ``.pth`` file.  The ``--no-egg`` option has been removed,
1208 since all RPMs are now built in a more backwards-compatible format.
1209 
1210 Some work is now needed for easy_install to recognize bdist_wininst
1211 .exe's that wrap these new flat eggs, as currently the .egg-info will
1212 not be recognized.
1213] 
1214[Added an internal ``install_egg_info`` command to use as part of old-style
1215phillip.eby**20051214173730
1216 ``install`` operations, that installs an ``.egg-info`` directory with the
1217 package.  This is a preliminary step to implementing "install
1218 --single-version-externally-managed" for use with bdist_* commands and
1219 Debian.
1220] 
1221[Changed ``parse_version()`` to remove dashes before pre-release tags, so
1222phillip.eby**20051206174136
1223 that ``0.2-rc1`` is considered an *older* version than ``0.2``, and is equal
1224 to ``0.2rc1``.  The idea that a dash *always* meant a post-release version
1225 was highly non-intuitive to setuptools users and Python developers, who
1226 seem to want to use ``-rc`` version numbers a lot.
1227 
1228] 
1229[Added an ``unpack_directory()`` driver to ``setuptools.archive_util``, so
1230phillip.eby**20051206031248
1231 that you can process a directory tree through a processing filter as if
1232 it were a zipfile or tarfile.
1233] 
1234[Remove unneeded code that slipped into last commit.
1235phillip.eby**20051206031122] 
1236[Added support for ``.egg-info`` files or directories with version/platform
1237phillip.eby**20051206010227
1238 information embedded in the filename, so that system packagers have the
1239 option of including ``PKG-INFO`` files to indicate the presence of a
1240 system-installed egg, without needing to use ``.egg`` directories, zipfiles,
1241 or ``.pth`` manipulation.
1242 
1243] 
1244[Made all commands that use ``easy_install`` respect its configuration
1245phillip.eby**20051201014539
1246 options, as this was causing some problems with ``setup.py install``
1247 ignoring global site-dirs settings.
1248] 
1249[Misc. doc enhancements
1250phillip.eby**20051201011803] 
1251[If more than one URL appears to describe the exact same distribution, prefer
1252phillip.eby**20051126185935
1253 the shortest one.  This helps to avoid "table of contents" CGI URLs like the
1254 ones on effbot.org.
1255] 
1256[Added ``tests_require`` keyword to ``setup()``, so that e.g. packages
1257phillip.eby**20051119203840
1258 requiring ``nose`` to run unit tests can make this dependency optional
1259 unless the ``test`` command is run.
1260] 
1261[Kludges to make building packages with '-' in their version work with
1262phillip.eby**20051119193629
1263 bdist_rpm.  This still doesn't address the issue of building RPMs that
1264 don't effectively install as multi-version eggs, but at least now
1265 building RPMs for development eggs is possible.
1266] 
1267[Added warning for namespace packages with missing ``declare_namespace()``,
1268phillip.eby**20051118172947
1269 updated docs for new policy/implementation, and explain the reasons
1270 for the change and what to do about it.
1271] 
1272[Fixed ``.pth`` file processing picking up nested eggs (i.e. ones inside
1273phillip.eby**20051118150050
1274 "baskets") when they weren't explicitly listed in the ``.pth`` file.
1275] 
1276[Add tutorial section on choosing project version numbers that
1277phillip.eby**20051118143125
1278 will work well with automated tools based on pkg_resources.
1279] 
1280[Fix .svn exclude pattern for non-Windows platforms.
1281phillip.eby**20051118131533] 
1282[Fixed ``--tag-svn-revision`` not working when run from a source
1283phillip.eby**20051118112950
1284 distribution.
1285] 
1286[Added the ``include_package_data`` keyword to ``setup()``, allowing you to
1287phillip.eby**20051118043731
1288 automatically include any package data listed in revision control or
1289 ``MANIFEST.in``.  Now projects can manage their data files and source
1290 manifests without having to maintain two ways to express the same file
1291 list.  Yay!
1292] 
1293[The ``sdist`` command no longer uses the traditional ``MANIFEST`` file to
1294phillip.eby**20051118034516
1295 create source distributions.  ``MANIFEST.in`` is still read and processed,
1296 as are the standard defaults and pruning.  But the manifest is built inside
1297 the project's ``.egg-info`` directory as ``SOURCES.txt``, and it is rebuilt
1298 every time the ``egg_info`` command is run.
1299] 
1300[Build a SOURCES.txt manifest file in .egg-info, that can then be included in
1301phillip.eby**20051118031307
1302 sdist distributions to support building an sdist from an sdist (which the
1303 bdist_rpm command requires).  This will also be the basis for enhanced
1304 package data support, that will allow optionally using the manifest to
1305 identify package data files instead of having separate manual identification
1306 of the data files.
1307] 
1308[Bump version number to begin the 0.6a9 developent cycle
1309phillip.eby**20051118022208] 
1310[Don't raise an error when an invalid (unfinished) distribution is found
1311phillip.eby**20051118020730
1312 unless absolutely necessary.  Warn about skipping invalid/unfinished eggs
1313 when building an Environment.
1314] 
1315[Quote arguments to python.exe (including python's path) to avoid
1316phillip.eby**20051117030133
1317 problems when Python (or a script) is installed in a directory
1318 whose name contains spaces.  :(
1319] 
1320[0.6a8 final.
1321phillip.eby**20051116191808] 
1322[Update for SourceForge's changed mirror page formats
1323phillip.eby**20051116184305] 
1324[Fixed a problem with nested namespace packages (e.g. ``peak.util``) not
1325phillip.eby**20051113010833
1326 being set as an attribute of their parent package.
1327] 
1328[Record case-insensitivity fix.
1329phillip.eby**20051109033043] 
1330[Document shared library autodetection
1331phillip.eby**20051109032857] 
1332[Detect .dll, .so, .dylib and .pyd files that might have
1333phillip.eby**20051109032334
1334 been included in a project as data files rather than as
1335 Python extensions. 
1336] 
1337[Normalize items in sys.path when determining where to insert
1338phillip.eby**20051109030230
1339 a new item.
1340] 
1341[Fix rmtree() brokenness with Python 2.4 by breaking down and copying
1342phillip.eby**20051105163236
1343 shutil.rmtree from 2.4 directly into easy_install.py.
1344] 
1345[Fixed some problems with fresh checkouts of projects that don't include
1346phillip.eby**20051105055026
1347 ``.egg-info/PKG-INFO`` under revision control and put the project's source
1348 code directly in the project directory.  If such a package had any
1349 requirements that get processed before the ``egg_info`` command can be run,
1350 the setup scripts would fail with a "Missing 'Version:' header and/or
1351 PKG-INFO file" error, because the egg runtime interpreted the unbuilt
1352 metadata in a directory on ``sys.path`` (i.e. the current directory) as
1353 being a corrupted egg.  Setuptools now monkeypatches the distribution
1354 metadata cache to pretend that the egg has valid version information, until
1355 it has a chance to make it actually be so (via the ``egg_info`` command).
1356 
1357] 
1358[Made ``egg_info --tag-svn-revision`` fall back to extracting the
1359phillip.eby**20051104053822
1360 revision number from ``PKG-INFO`` in case it is being run on a
1361 source distribution of a snapshot taken from a Subversion-based
1362 project.  That is, if a project builds an sdist with
1363 --tag-svn-revision in setup.cfg, then the built sdist will
1364 create binaries with the same version number as the checkout
1365 that was used to create the sdist.
1366] 
1367[Reduce the number of redundant host blocking warnings by not
1368phillip.eby**20051104031844
1369 retrying the same previously-blocked URLs.
1370] 
1371[Made ``develop`` command accept all the same options as ``easy_install``,
1372phillip.eby**20051104030830
1373 and use the ``easy_install`` command's configuration settings as defaults.
1374] 
1375[Workaround for broken DISTUTILS_DEBUG output.
1376phillip.eby**20051104030652] 
1377[Document best practices for managing continuous releases with
1378phillip.eby**20051104022934
1379 Subversion, #egg links, --tag-svn-revision, etc., to reflect the
1380 community experience with the tools to date.
1381] 
1382[* Improved runtime conflict warning message to identify a line in the user's
1383phillip.eby**20051104015325
1384   program, rather than flagging the ``warn()`` call in ``pkg_resources``.
1385 
1386 * Avoid giving runtime conflict warnings for namespace packages, even if they
1387   were declared by a different package than the one currently being activated.
1388] 
1389[Fixed some problems building extensions when Pyrex was installed, especially
1390phillip.eby**20051103035542
1391 with Python 2.4 and/or packages using SWIG.
1392] 
1393[Handle non-requirement installs correctly for dependency processing
1394phillip.eby**20051103035206
1395 (e.g. "setup.py install", or "easy_install somefile/someurl").
1396] 
1397[Fix some Subversion-related problems reported by John J. Lee:
1398phillip.eby**20051103032844
1399 
1400 * Fixed not installing dependencies for some packages fetched via Subversion
1401 
1402 * Fixed dependency installation with ``--always-copy`` not using the same
1403   dependency resolution procedure as other operations.
1404 
1405 * Fixed not fully removing temporary directories on Windows, if a Subversion
1406   checkout left read-only files behind
1407 
1408] 
1409[Switch setuptools to use 'dev-rNNNN' version tags by default, and configure
1410phillip.eby**20051103023426
1411 so that people can use 'ez_setup.py setuptools==dev' to fetch the latest
1412 in-development version.
1413] 
1414[Fixed a problem with ``WorkingSet.resolve()`` that prevented version
1415phillip.eby**20051103022449
1416 conflicts from being detected at runtime.  (As reported by Ian Bicking.)
1417] 
1418[Oops, this was part of 0.6a7 too.
1419phillip.eby**20051102235821] 
1420[Fix documentation typos, and note that Python 2.4 is required on 64-bit
1421phillip.eby**20051102235744
1422 platforms (due to a bugfix in zipimport.c that was never backported to
1423 the 2.3 branch).
1424] 
1425[0.6a7 bugfix release
1426phillip.eby**20051102235534] 
1427[Fixed a problem extracting zipped files on Windows, when the egg in
1428pje**20051022190744
1429 question has had changed contents but still has the same version number.
1430] 
1431[Added "--allow-hosts" option to restrict downloading and spidering to
1432pje**20051019030035
1433 a specified list of server glob patterns.
1434] 
1435[Hurray!  Our first dependency processing bug!  This is cool because it
1436pje**20051018040846
1437 means that people are finally doing enough things with setuptools to
1438 have real-life version conflict scenarios.  Luckily, the fix is trivial:
1439 use breadth-first instead of depth-first dependency processing, which I
1440 thought we were already doing anyway, but weren't.  And we were giving
1441 precedence to already-installed packages, which means upgrades didn't
1442 work so well.
1443] 
1444[Prep for 0.6a6 release.
1445pje**20051017024439] 
1446[Fix a typo in patched site.py.
1447pje**20051017023900] 
1448[Significantly enhanced support and docs for "non-root" installation,
1449pje**20051017022639
1450 including both "virtual" and PYTHONPATH-based installs.  The activation
1451 precedence of distributions has also changed so that PYTHONPATH-based
1452 non-root installs can include eggs that override system-defined packages
1453 (whether managed or unmanaged).  This version should eliminate most
1454 common installation complaints from non-root Python users.
1455 Note: this version includes a hacked 'site.py' to support processing
1456 .pth files in directories that come *before* site-packages on sys.path.
1457 However, because of its placement, it should only come into play when
1458 a user puts the setuptools .egg file *directly* on PYTHONPATH, so it
1459 doesn't affect "virtual" or "root" installations.  It's strictly to
1460 provide support for luddites who refuse to give up their
1461 existing non-root PYTHONPATH setup unless you pry it from their cold,
1462 dead hands.  :)
1463] 
1464[Fix problem with Windows console scripts conflicting with module names,
1465pje**20051016204530
1466 thereby confusing the import process.  Scripts are now generated with a
1467 suffix of the form '-script.py' to avoid conflicts.  (The .exe's are still
1468 generated without the '-script' part, so you don't have to type it.)
1469 Thanks to Matthew R. Scott for reporting the problem.
1470] 
1471[Implement --no-deps option, add link to Ian Bicking's non-root Python
1472pje**20051016174211
1473 builder script.
1474] 
1475[0.6a5 brown bag bug fix release.
1476pje**20050929170543] 
1477[Bugfixes.  :(
1478pje**20050929164955] 
1479[0.6a4 bugfix release.
1480pje**20050926004600] 
1481[Ensure that WorkingSet.resolve() (and therefore require() as well)
1482pje**20050926003535
1483 returns a list of the relevant distributions, even if they are found in
1484 the working set rather than the environment.  This fixes some problems
1485 in the 0.6a3 release.
1486] 
1487[0.6a3 release.
1488pje**20050924214059] 
1489[Support generating .pyw/.exe wrappers for Windows GUI scripts, and
1490pje**20050924202957
1491 "normal" #! wrappers for GUI scripts on other platforms.
1492] 
1493[Fix a problem with inconsistent quoting of "extras", reported by Ian
1494pje**20050924194828
1495 Bicking on the distutils-sig.
1496] 
1497[Add release notes for changes made today.
1498pje**20050924194520] 
1499[Fix a bug parsing #egg links reported by Ben Bangert on the distutils-sig.
1500pje**20050924194427] 
1501[Implement smart version conflict resolution for scripts, so that
1502pje**20050924175822
1503 installed applications will not have their eggs overridden by packages
1504 installed locally on sys.path.  This should also make things work a bit
1505 better for "traditional" non-root Python setups on Unixy operating
1506 systems.  See:
1507 
1508 http://mail.python.org/pipermail/distutils-sig/2005-September/005164.html
1509 
1510 for more details.
1511] 
1512[Improve backward compatibility, so that users running easy_install.py or
1513pje**20050924172856
1514 python -m easy_install get a clearer error message.
1515] 
1516[Fix typo.  Add setup for include/python2.X directory in non-root install
1517pje**20050924143043
1518 instructions.
1519] 
1520[setuptools 0.6a2 release
1521pje**20050918040238] 
1522[Added support to solve the infamous "we want .py on Windows, no
1523pje**20050917011302
1524 extension elsewhere" problem, while also bypassing the need for PATHEXT
1525 on Windows, and in fact the need to even write script files at all, for
1526 any platform.  Instead, you define "entry points" in your setup script,
1527 in this case the names of the scripts you want (without extensions) and
1528 the functions that should be imported and run to implement the scripts.
1529 Setuptools will then generate platform-appropriate script files at
1530 install time, including an .exe wrapper when installing on Windows.
1531] 
1532[Fixed cheeseshop URL.
1533pje**20050917001837] 
1534[Fix another typo
1535pje**20050914164507] 
1536[Update cheeseshop URL, fix typo.
1537pje**20050914164123] 
1538[0.6a1 release of setuptools.
1539pje**20050914033349] 
1540[Correctly handle URL fragments in --find-links.
1541pje**20050914032810] 
1542[Release 0.6a1c2.
1543pje**20050903050112] 
1544[Add release note about bdist_rpm --no-egg option
1545pje**20050903045310] 
1546[Added support for old-style RPMs (i.e. non-egg RPMs)
1547pje**20050903045127] 
1548[Ensure wrapper scripts are included in output file record; this is
1549pje**20050903045005
1550 especially important for RPMs with scripts.
1551] 
1552[Make sure that script target directory exists.  Ordinarily it should, but
1553pje**20050903043718
1554 some bdist_* targets install to a pseudo-root where stuff might not exist.
1555] 
1556[Fix typo in symlink handling code.
1557pje**20050903040403] 
1558[Work around a problem with SuSE Linux's patched install_lib command, by
1559pje**20050903032054
1560 figuring out the extension paths without its help.  :(
1561] 
1562[More minor doc tweaks.
1563pje**20050823134550] 
1564[Minor doc tweaks, and add release note about symlink support.
1565pje**20050823134220] 
1566[D'oh!  os.path.islink is available on all platforms.  Also, ensure that we
1567pje**20050823133452
1568 do directory tree removals only if isdir() and not islink(), and use
1569 unlink() in all other cases.
1570] 
1571[Simplify non-root install process and improve Mac OS docs for it.  Support
1572pje**20050823132442
1573 .pth files and legacy packages possibly being symlinks, and ensure that
1574 overwrites don't follow the symlink.
1575] 
1576[Make easy_install --record strip the RPM root when building RPMs, and have
1577pje**20050822134010
1578 bdist_egg ignore the RPM root when building an egg.  This version now can
1579 actually run bdist_rpm to completion, although the resulting RPM will
1580 install an egg without a corresponding .pth file.
1581] 
1582[Remove broken example.
1583pje**20050822035342] 
1584[Bump release version to 0.6a1.  Fix a minor cosmetic issue on certain
1585pje**20050822035019
1586 ez_setup installs.
1587] 
1588[Give pkg_resources its own revision history; add some notes on today's
1589pje**20050822034020
1590 fixes and enhancements.
1591] 
1592[More documentation enhancements.
1593pje**20050822032827] 
1594[Add detailed instructions for non-root installation using PYTHONHOME.
1595pje**20050822031458] 
1596[Add release note about the new MD5 validation feature.
1597pje**20050822011705] 
1598[Implemented md5 validation for PyPI and for URLs with a "#md5=..." anchor.
1599pje**20050822011314] 
1600[Add hardcoded md5 checking to ez_setup.  Also, don't delay and display
1601pje**20050822003547
1602 banner if ez_setup is run as a command-line script, since its whole purpose
1603 in that case is to download setuptools.  Running "ez_setup.py --md5update
1604 FILE [FILE...]" will update the internal md5 checksum dictionary with new
1605 or changed distributions.  You should only do this if you are a setuptools
1606 maintainer, however!
1607] 
1608[Fix a problem running build_ext -i w/no extensions.
1609pje**20050822003248] 
1610[Display a download warning in ez_setup, so that people won't be caught
1611pje**20050821235554
1612 off-guard by the setuptools download (which only occurs if setuptools isn't
1613 locally available, of course).
1614] 
1615[Fix problem w/bdist_rpm and setuptools, reported by Walter Doerwald.  I
1616pje**20050821233340
1617 was trying to have setuptools fix distutils' broken filename handling that
1618 assumes people haven't put punctuation in their distribution names,
1619 including '-' (which prevents unambiguous parsing of distribution names).
1620 However, bdist_rpm's attempt to guess a source distribution's filename
1621 isn't compatible with this fix, without making other changes.  I decided
1622 therefore to drop the fixes for the sake of backward compatibility, but
1623 monkeypatch bdist_rpm so that it runs "egg_info" first, to ensure that any
1624 --tag-svn-revision or other tagging options take effect.
1625] 
1626[Make "build_ext --inplace" work sanely w/multiple Python versions and
1627pje**20050821225957
1628 platforms, by ensuring that the in-place extensions are the right ones for
1629 the currently-running Python, even if they are newer than their sources.
1630 (This, like so many other setuptools fixes and enhancements, should
1631 probably be backported into the distutils as well, although it would have
1632 to be implemented a bit differently.)
1633] 
1634[Thanks to Richard Jones, we no longer need to fake out PyPI with a '.zip'
1635pje**20050821221212
1636 extension for eggs.
1637] 
1638[Parse .svn/entries directly instead of using 'svn info' to obtain a
1639pje**20050821214939
1640 revision number.  (Christopher Lenz reported that svn info's output is
1641 different in non-English locales.)
1642] 
1643[Fix namespace packages not getting fixed up when the eggs are zipped and
1644pje**20050819010153
1645 loaded late (i.e. via require).  Thanks to Walter Doerwald for the bug
1646 report.
1647] 
1648[Auto-generate namespace __init__.py files for packages without them.  This
1649pje**20050814211745
1650 is a workaround for packages like 'll-color', which are distributed without
1651 'll/__init__.py', to avoid overwriting ll-core's copy of ll/__init__.py.
1652 This allows existing packages that use this sort of kludging to be treated
1653 as a crude namespace package, as long as the "real" __init__.py also
1654 calls declare_namespace().
1655] 
1656[Minor refactoring of code that checks a distribution's contents.
1657pje**20050814211446] 
1658[Add experimental support for merging non-empty namespace packages.  This
1659pje**20050814210133
1660 lets you have one distribution containing a non-empty __init__.py for the
1661 package, as long as you call 'declare_namespace()' from that __init__.py
1662 and all other __init__.py files for the namespace package, and do *not*
1663 declare it as a namespace package in setup() (so that it won't be
1664 automatically imported if it's on sys.path, the way empty namespace
1665 packages are.)
1666] 
1667[Fix a bug introduced by removing the Environment.get() method.
1668pje**20050814204649] 
1669[On second thought, don't.  :(  Walter Doerwald's situation isn't really
1670pje**20050814201856
1671 compatible with namespace packages, even if I do manage to hack up a way
1672 to make it work.
1673] 
1674[Allow distributing an empty namespace package.
1675pje**20050814201628] 
1676[Fix some reST formatting problems and other issues discovered during a
1677pje**20050814174807
1678 quick review.
1679] 
1680[Document "Distribution" objects.  Now the API reference is complete, and I
1681pje**20050814173015
1682 just need to write the Overview and Developer's Guide sections so that most
1683 people won't have to actually *read* the API reference.  :)
1684] 
1685[Documentation for namespace packages, working sets, and supporting custom
1686pje**20050814060837
1687 PEP 302 importers.  Once the "Distribution" class is documented, this will
1688 be a complete API reference for pkg_resources.
1689] 
1690[Make "run_script" a method of WorkingSet objects, thereby removing a global
1691pje**20050814060320
1692 coupling.
1693] 
1694[Document the "Environment" class, and simplify its API.
1695pje**20050814014538] 
1696[Document "Requirement" objects.
1697pje**20050814003728] 
1698[Added docs for main EntryPoint APIs, and cleaned up the API itself a bit.
1699pje**20050813230408
1700 Also fixed a few bugs.
1701] 
1702[Fixed breakage of bdist_* commands that call the 'install' command.
1703pje**20050811145854] 
1704[Fix bugs reported by Ian Bicking, Walter Doerwald, and Vincenzo Di Massa.
1705pje**20050811003737] 
1706[Fix a bug introduced by making split_sections() not lowercase section
1707pje**20050809155039
1708 headings.
1709] 
1710[Document resource and metadata access APIs.
1711pje**20050807205410] 
1712[Add docs for exceptions, and for much of the ResourceManager API.
1713pje**20050807055237] 
1714[Document utility routines.  Made ``split_sections()`` not lowercase its
1715pje**20050807045044
1716 section headers any more, since e.g. entry point group names are
1717 case-sensitive.
1718] 
1719[Renamed AvailableDistributions -> Environment.  Add sketch of pkg_resources
1720pje**20050807010336
1721 manual outline.
1722] 
1723[Allow distutils extensions to define new kinds of metadata that can be
1724pje**20050806211750
1725 written to EGG-INFO.  Extensible applications and frameworks can thus make
1726 it possible for plugin projects to supply setup() metadata that can then
1727 be used by the application or framework.
1728] 
1729[Fix WorkingSet yielding the same distribution more than once if more than
1730pje**20050806205401
1731 one path entry points to it.
1732] 
1733[Got rid of the no-longer meaningful "depends" command.  Consolidated the
1734pje**20050806192949
1735 replacement of the "install" command so that installation is always via
1736 easy_install, but doesn't use the previous kludgy intereception technique.
1737 Allow ``extra_path`` to be set, but ignore it, so that when easy_install
1738 wraps a package that uses it, there won't be any confusion as to the
1739 desired installation location.
1740] 
1741[Enhanced setuptools infrastructure to support distutils extensions that
1742pje**20050806184628
1743 can be plugged in at setup() time to define new setup() arguments or
1744 distutils commands.  This allows modularization and reuse of distutils
1745 extensions in a way that was previously not possible.
1746] 
1747[Allow specifying an environment and/or installer for entry-point loading.
1748pje**20050806175658
1749 This will be used by setuptools to automatically install eggs that may be
1750 needed as part of a build process, or to invoke a particular command.
1751] 
1752[Change dependency processing algorithm for less redundancy in the common
1753pje**20050806175455
1754 case, and more thoroughness in the --always-copy case.
1755] 
1756[Fix wrongly including files that Subversion has marked deleted.
1757pje**20050806162644] 
1758[Performance boosts: don't create environment during require()/resolve()
1759pje**20050806023052
1760 if all requirements can be met with items already in the working set.
1761 Don't eagerly determine whether a path is a directory.  Avoid redundant
1762 path operations, etc.  These changes dropped the test suite runtime from
1763 over 3.4 seconds to around .34 seconds.
1764] 
1765[Fix a problem with zip paths reported by Ashley Walsh.
1766pje**20050803131850] 
1767[Misc. bugs reported by Ian Bicking and Ashley Walsh.
1768pje**20050731163118] 
1769[Misc. bug fixes and doc additions.  Add 'iter_entry_points()' API.
1770pje**20050725031251] 
1771[Implement "entry points" for dynamic discovery of drivers and plugins.
1772pje**20050724224706
1773 Change setuptools to discover setup commands using an entry point group
1774 called "distutils.commands".  Thanks to Ian Bicking for the suggestion that
1775 led to designing this super-cool feature.
1776] 
1777[Fix eager resource extraction. Add eager_resources setup() argument.  Add
1778pje**20050724175927
1779 support for obtaining project-level resources by making get_provider()
1780 accept Requirement objects.
1781] 
1782[Fix a regression; this code was changed in order to avoid being fooled by
1783pje**20050724055107
1784 incompatible eggs that might have ended up in the distribution directory,
1785 but the "fixed" code was broken.
1786] 
1787[Implement --editable option, which allows you to just download and extract
1788pje**20050724024144
1789 (or check out from Subversion) one or more source distributions, without
1790 actually building or installing them (or their dependencies).
1791] 
1792[Fixed the setup script sandbox facility not recognizing certain paths as
1793pje**20050724023820
1794 valid on case-insensitive platforms.
1795] 
1796[Improved backward compatibility of Mac OS platform string changes, thanks
1797pje**20050721161134
1798 to more help from Kevin Dangoor.
1799] 
1800[Tweak Mac OS platform string based on Mac SIG feedback: remove "micro"
1801pje**20050721045050
1802 version number, and map "PowerPC" and "Power_Macintosh" to "ppc".
1803] 
1804[Added support for handling MacOS platform information in ``.egg``
1805pje**20050721011131
1806 filenames, based on a contribution by Kevin Dangoor.  (NOTE: this may make
1807 eggs compiled for OS X with older versions of setuptools unusable!  If you
1808 have eggs whose file/directory names end with ``-darwin-*.egg``, you will
1809 probably need to rename them to ``-macosx-*.egg``, substituting your
1810 current Mac OS version for the darwin kernel version in the version number.
1811 Or, you can just delete and reinstall the problematic eggs.)
1812] 
1813[Make 'test' command work correctly with the 0.6 WorkingSet class.
1814pje**20050721005107] 
1815[Fixed installing extra ``.pyc`` or ``.pyo`` files for scripts with ``.py``
1816pje**20050721004945
1817 extensions.
1818] 
1819[Catch a few missed terminology changes.
1820pje**20050718022814] 
1821[Massive API refactoring; see setuptools.txt changelog for details.  Also,
1822pje**20050718020630
1823 add ``#egg=project-version`` link support, and docs on how to make your
1824 package available for EasyInstall to find.
1825] 
1826[Massive API refactoring; see setuptools.txt changelog for details.  Also,
1827pje**20050718013945
1828 add ``#egg=project-version`` link support, and docs on how to make your
1829 package available for EasyInstall to find.
1830] 
1831[The ``path`` attribute of ``Distribution`` objects is now ``location``,
1832pje**20050717195438
1833 because it isn't necessarily a filesystem path (and hasn't been for some
1834 time now).  ``Distribution`` objects now have an ``as_requirement()``
1835 method that returns a ``Requirement`` for the distribution's project name
1836 and version.
1837] 
1838[``Distribution`` objects now implement the ``IResourceProvider`` and
1839pje**20050717190115
1840 ``IMetadataProvider`` interfaces, so you don't need to reference the (no
1841 longer available) ``metadata`` attribute to get at these interfaces.
1842] 
1843[Renamings for consistent terminology; distributions and requirements now
1844pje**20050717044242
1845 both have 'project_name' attributes, instead of one having 'name' and the
1846 other 'distname'.  Requirements no longer have 'options', they have
1847 'extras'.  This is the beginning of the terminology/architecture
1848 refactoring described at:
1849 
1850 http://mail.python.org/pipermail/distutils-sig/2005-June/004652.html
1851] 
1852[Added ``--site-dirs`` option to allow adding custom "site" directories.
1853pje**20050716215750
1854 Made ``easy-install.pth`` work in platform-specific alternate site
1855 directories (e.g. ``~/Library/Python/2.x/site-packages``).
1856] 
1857[Fixed some problems using ``pkg_resources`` w/PEP 302 loaders other than
1858pje**20050716172535
1859 ``zipimport``.  Fixed ``pkg_resources.resource_exists()`` not working
1860 correctly.
1861] 
1862[Fix only detecting the revision number of the setup directory, not the
1863pje**20050716164302
1864 highest revision number for the project as a whole.
1865] 
1866[prep for 0.5a13 release
1867pje**20050716161729] 
1868[Fix a problem extracting resources from nested packages.
1869pje**20050715041137] 
1870[Fix formatting error.
1871pje**20050715041012] 
1872[Prep for 0.5a12 release; update docs.
1873pje**20050713001000] 
1874[Updated extraction/cache mechanism for zipped resources to avoid inter-
1875pje**20050713000925
1876 process and inter-thread races during extraction.  The default cache
1877 location can now be set via the ``PYTHON_EGGS_CACHE`` environment variable,
1878 and the default Windows cache is now a ``Python-Eggs`` subdirectory of the
1879 current user's "Application Data" directory, if the ``PYTHON_EGGS_CACHE``
1880 variable isn't set.
1881] 
1882[Update zip-safety scanner to check for modules that might be used as
1883pje**20050712234322
1884 ``python -m`` scripts.  Misc. fixes for win32.exe support, including
1885 changes to support Python 2.4's changed ``bdist_wininst`` format.
1886] 
1887[Fixed not being able to use python -m easy_install.
1888pje**20050712232232] 
1889[Add a message explaining that you can use -U setuptools to reinstall or
1890pje**20050712232206
1891 upgrade setuptools.
1892] 
1893[Fix breakage of the "develop" command that was caused by the addition of
1894pje**20050712160900
1895 ``--always-unzip`` to the ``easy_install`` command.  Bump version for bug
1896 fix release.
1897] 
1898[Drop links to the Windows installer; it was installing an "unmanaged"
1899pje**20050712053458
1900 version of setuptools!
1901] 
1902[Bump version #.
1903pje**20050712053205] 
1904[Fix bugs and implement features reported/requested by folks on the
1905pje**20050712053136
1906 Distutils-SIG.
1907] 
1908[Update to 0.5a9, add zip_safe flag, and fix a doc error.
1909pje**20050711042157] 
1910[Enhanced "zip safety" analysis (including scan of win32.exe's) and have
1911pje**20050711041248
1912 EasyInstall act on zip safety flags.  Add a lot more docs for setuptools.
1913] 
1914[First-pass implementation of zippability analysis; scans for impure
1915pje**20050710162426
1916 distribution or use of __file__/__path__ and selected 'inspect' operations.
1917 Currently, the analysis is a bit overconservative; when the runtime is more
1918 robust, it should probably allow extensions to be zipped by default.
1919] 
1920[Implement ``namespace_packages`` keyword to ``setup()``.  Added keyword
1921pje**20050710154308
1922 summary to setuptools doc.  Begin work on ``zip_safe`` flag.
1923] 
1924[Add an example of using the new "directory w/setup.py" feature
1925pje**20050710152412] 
1926[EasyInstall now builds eggs in a temporary directory alongside the setup
1927pje**20050710052944
1928 script it's running.  This avoids it getting confused by projects with
1929 non-standard distribution locations, and projects that may have various
1930 eggs already sitting in their distribution directory.  It should probably
1931 also do something like this for the build directory to ensure a clean,
1932 fresh build, but it seems like overkill, since it only affects local
1933 projects, not stuff that EasyInstall downloaded in the first place.
1934] 
1935[Allow EasyInstall to accept a directory containing a setup script as one
1936pje**20050710050631
1937 of its arguments.  Fix swapped short option names for --bdist-dir and
1938 --dist-dir in bdist_egg.
1939] 
1940[Detect and handle conflicts with "unmanaged" packages when installing
1941pje**20050710044931
1942 packages managed by EasyInstall.  Also, add an option to exclude source
1943 files from .egg distributions.
1944] 
1945[Added command reference to documentation.
1946pje**20050709162723] 
1947[Changed --tag-svn-revision to include an "r" in front of the revision
1948pje**20050709162554
1949 number for better readability.
1950] 
1951[Remove old-style requirements from setup.py, to avoid confusing people who
1952pje**20050709042738
1953 look to it for an example of setuptools use.
1954] 
1955[Add informative comment when uploading eggs, to help distinguish them from
1956pje**20050709042621
1957 source archives.
1958] 
1959[Fix typos in option specs for bdist_egg.
1960pje**20050709042549] 
1961[Added ``exclude=patternlist`` option to ``setuptools.find_packages()``
1962pje**20050709042438] 
1963[Include ``svn:externals`` directories in source distributions as well as
1964pje**20050709042122
1965 normal subversion-controlled files and directories.
1966] 
1967[Doc and other updates for 0.5a8 release.  Add project aliases for source
1968pje**20050708155205
1969 and binary register+upload.
1970] 
1971[Delete empty sections when their last option is deleted.
1972pje**20050708155032] 
1973[Cleaner argument quoting in command aliases.
1974pje**20050708154953] 
1975[Partial first draft documentation for setuptools.  Split revision history
1976pje**20050708151314
1977 between setuptools and easy_install docs.  Pull project's long_description
1978 from the documentation, for a more informative PyPI project page.
1979] 
1980[Restructured the 'alias' command to take arguments instead of options, and
1981pje**20050708151119
1982 to display the definition of the named alias or of all aliases.
1983] 
1984[Fix a couple of command descriptions.
1985pje**20050708051120] 
1986[Added support for defining command aliases in distutils configuration
1987pje**20050708050923
1988 files, under the "[aliases]" section.  To prevent recursion and to allow
1989 aliases to call the command of the same name, a given alias can be expanded
1990 only once per command-line invocation.  You can define new aliases with the
1991 "alias" command, either for the local, global, or per-user configuration.
1992] 
1993[* Added "rotate" command to delete old distribution files, given a set of
1994pje**20050708044820
1995 patterns to match and the number of files to keep.  (Keeps the most
1996 recently-modified distribution files matching each pattern.)
1997 
1998 * Added "saveopts" command that saves all command-line options for the
1999 current invocation to the local, global, or per-user configuration file.
2000 Useful for setting defaults without having to hand-edit a configuration
2001 file.
2002 
2003 * Added a "setopt" command that sets a single option in a specified
2004 distutils configuration file.
2005] 
2006[The "egg_info" command now always sets the distribution metadata to "safe"
2007pje**20050708044558
2008 forms of the distribution name and version, so that distribution files will
2009 be generated with parseable names (i.e., ones that don't include '-' in the
2010 name or version).  Also, this means that if you use the various ``--tag``
2011 options of "egg_info", any distributions generated will use the tags in the
2012 version, not just egg distributions.
2013] 
2014[Fix problems upgrading an already-installed setuptools version.
2015pje**20050707163831] 
2016[Add upload support to setuptools, and make default downloads of setuptools
2017pje**20050707162843
2018 come from PyPI/python.org rather than from telecommunity.com.  Bump to
2019 version 0.5a7.
2020] 
2021[Bump release version
2022pje**20050707021014] 
2023[Update revision history.
2024pje**20050707020556] 
2025[Beefed up the "sdist" command so that if you don't have a MANIFEST.in, it
2026pje**20050707020325
2027 will include all files under revision control (CVS or Subversion) in the
2028 current directory, and it will regenerate the list every time you create a
2029 source distribution, not just when you tell it to.  This should make the
2030 default "do what you mean" more often than the distutils' default behavior
2031 did, while still retaining the old behavior in the presence of MANIFEST.in.
2032] 
2033[Slightly changed the format of the generated version when you use
2034pje**20050707020154
2035 ``--tag-build`` on the "egg_info" command, so that you can make tagged
2036 revisions compare *lower* than the version specified in setup.py (e.g. by
2037 using ``--tag-build=dev``).
2038] 
2039[Don't modify .pth files when in --dry-run/-n mode.
2040pje**20050707015759] 
2041[Fix for .py scripts that might be imported (e.g. the "py" library's hideous
2042pje**20050707015357
2043 '_findpy.py' hack.)
2044] 
2045[Backward-compatibility fix, so ez_setup can upgrade older versions of
2046pje**20050707015221
2047 setuptools.
2048] 
2049[Add a note about interaction between exemaker and easy_install
2050pje**20050707015146] 
2051[Bump version to 0.5a5.
2052pje**20050706034704] 
2053[Added ``develop`` command to ``setuptools``-based packages.  This command
2054pje**20050706034616
2055 installs an ``.egg-link`` pointing to the package's source directory, and
2056 script wrappers that ``execfile()`` the source versions of the package's
2057 scripts.  This lets you put your development checkout(s) on sys.path
2058 without having to actually install them.  (To uninstall the link, use
2059 use ``setup.py develop --uninstall``.)
2060] 
2061[Made ``easy_install`` a standard ``setuptools`` command, moving it from
2062pje**20050706021048
2063 the ``easy_install`` module to ``setuptools.command.easy_install``.  Note
2064 that if you were importing or extending it, you must now change your
2065 imports accordingly.  ``easy_install.py`` is still installed as a script,
2066 but not as a module.
2067] 
2068[Enhanced the ``test`` command so that it doesn't install the package, but
2069pje**20050706015408
2070 instead builds any C extensions in-place, updates the ``.egg-info``
2071 metadata, adds the source directory to ``sys.path``, and runs the tests
2072 directly on the source.  This avoids an "unmanaged" installation of the
2073 package to ``site-packages`` or elsewhere.  (Also, fix a breaking test of
2074 older dependency support; this should probably be removed altogether, as
2075 long as nobody's using it.)
2076] 
2077[Added ``egg_info`` command to ``setuptools``-based packages.  This command
2078pje**20050706013741
2079 just creates or updates the "projectname.egg-info" directory, without
2080 building an egg.  It's used by the ``bdist_egg`` command now, and will be
2081 used by the ``test`` and ``develop`` commands later on.
2082] 
2083[Fix a problem using bdist_egg with non-setuptools distributions.
2084pje**20050704184541] 
2085[Fix typo
2086pje**20050704184502] 
2087[Add missing download links
2088pje**20050704184426] 
2089[EasyInstall/setuptools 0.5a4: significant new features, including automatic
2090pje**20050627003103
2091 installation of dependencies, the ability to specify dependencies in a
2092 setup script, and several new options to control EasyInstall's behavior.
2093] 
2094[0.5a3 bugfix release
2095pje**20050625193306] 
2096[Fix stupid typos.
2097pje**20050615023910] 
2098[Add support for installing from .win32.exe's created by distutils (by
2099pje**20050615022348
2100 converting them to eggs).  Bump version to 0.5a1.
2101] 
2102[Add bootstrap installation support that "hitches a ride" on other packages
2103pje**20050615021942
2104 being installed via the normal distutils "setup.py install".  Also, don't
2105 repeatedly download the setuptools egg if it's already in the target
2106 location.
2107] 
2108[Fix incorrect sorting of packages by string version instead of parsed
2109pje**20050615021603
2110 version info.  Don't set a default Python version for distribution
2111 objects.  Add enum for binary distributions (like bdist_wininst).
2112] 
2113[Make write_stub() a function, so easy_install can use it too.
2114pje**20050615021249] 
2115[Enhance unpack_* utilities to allow on-the-fly redirection of where files
2116pje**20050615021109
2117 are extracted to.
2118] 
2119[Bump version # for release.
2120pje**20050614154844] 
2121[Add support for quiet/verbose/dry-run/optimize flags.
2122pje**20050614153032] 
2123[Fix more zipped-egg directory resource bugs reported by Ryan Tomayko.
2124pje**20050614152941] 
2125[Support downloading packages that were uploaded to PyPI (by scanning all
2126pje**20050614124635
2127 links on package pages, not just the homepage/download links).
2128] 
2129[Fix typos found by Ryan Tomayko.
2130pje**20050614124443] 
2131[Oops, forgot to bump a version number.
2132pje**20050614013119] 
2133[Update to version 0.4a3
2134pje**20050614012959] 
2135[Fix missing '__file__' when running scripts.
2136pje**20050614012844] 
2137[Cosmetic improvements to progress messages.
2138pje**20050614012712] 
2139[Add lots of progress messages, so people know what the package search is
2140pje**20050614012626
2141 doing.
2142] 
2143[Fix a bug in resource_isdir(), introduced in 0.4a2.  Add str/repr of
2144pje**20050614012548
2145 Distribution objects.
2146] 
2147[Add 'ez_setup' bootstrap installer.  Prep for 0.4a2 release.
2148pje**20050612214734] 
2149[Add script installation support.  Use distutils' exceptions for option
2150pje**20050612192645
2151 errors.  Include Python version in setuptools' egg name for compatibility
2152 w/installs via easy_install.  Add isdir/listdir facilities for metadata,
2153 along with support for running scripts from eggs.
2154] 
2155[Restructure easy_install as a distutils "Command" object, so that it can
2156pje**20050612154954
2157 access the distutils configuration and logging infrastructure, and can
2158 "inherit" options from a distutils setup script that wants to use it to
2159 install its own dependencies.
2160] 
2161[Move package index/downloading stuff to setuptools.package_index module.
2162pje**20050612034407] 
2163[Rebalance responsibilities between PackageIndex, Installer, and main() so
2164pje**20050612030753
2165 that PackageIndex handles all downloading of any kind, Installers can be
2166 reused for multiple packages, and main() manages temporary directories and
2167 all communication between PackageIndex and Installer.  Also, change
2168 run_setup to take an argument sequence, because later we will probably need
2169 other arguments to control other aspects of run_setup's behavior.
2170] 
2171[Split setup-running and archive-extraction utilities into separate modules,
2172pje**20050612011234
2173 for easy use by tools other than EasyInstall.
2174] 
2175[Package scripts under EGG-INFO/scripts.  Refactor subcommand invocations
2176pje**20050607044151
2177 for less duplication and greater clarity.
2178] 
2179[Update distribution metadata so 'setup.py register' works; add 'extra_path'
2180pje**20050606033048
2181 so that setuptools can install itself in egg form.
2182] 
2183[Update docs for PyPI support, prep for 0.4a1 release
2184pje**20050605215541] 
2185[Implement PyPI screenscraping for EasyInstall.  Fix a bug in requirement
2186pje**20050605213351
2187 version checking.  Document new options for screen scraping.
2188] 
2189[Add "safe_name" and "safe_version" functions to allow sanitizing of
2190pje**20050605185937
2191 distribution names and versions in arbitrary packages that might be built
2192 using EasyInstall.
2193] 
2194[Partial support for autolocation of packages via link harvesting.  Still
2195pje**20050605012430
2196 needs a little work to get PyPI support working, and automatic dependency
2197 resolution.  But for now you can do:
2198 
2199     easy_install -s http://example.com/download.html SomePackage
2200 
2201 And easy_install will find the best-looking download link on the page for
2202 instaling SomePackage.
2203] 
2204[Make ``AvailableDistributions`` keep track of the desired platform/python.
2205pje**20050605012009
2206 Add a ``can_add()`` method that indicates whether a distribution matches
2207 the collection's desired platform and Python version.  Fix a bug in
2208 ``Distribution.from_filename()`` when the filename has no Python version.
2209] 
2210[Updated for v0.3a4
2211pje**20050605004811] 
2212[Add support for prioritized sorting of distributions by distribution type,
2213pje**20050605004736
2214 to assist easy_install in indexing packages from PyPI.
2215] 
2216[Fix a minor problem with -b option, and prep for 0.3a4 release.
2217pje**20050604213513] 
2218[Add support for resource isdir/listdir operations.  Support directory
2219pje**20050604211819
2220 extraction and "egg baskets" for .zips.  Add import locking for namespace
2221 package manipulation routines.
2222] 
2223[Release 0.3a3
2224pje**20050531003454] 
2225[Ditch outdated TODO file, move docs to a new 'EasyInstall.txt' file.  Fix
2226pje**20050531002445
2227 installation report for .egg files/directories.
2228] 
2229[Add option to allow specifying a download/extract/build directory, which
2230pje**20050530235233
2231 will be kept after installation completes.  Added an "installation report"
2232 that tells you how to use 'require()' to activate a particular package
2233 version.  Installer.install_eggs() now returns a list of Distribution
2234 objects for the eggs it found and installed, so that the command-line tool
2235 can print an installation report for each one.
2236] 
2237[Ensure that the distribution name written to PKG-INFO is the same as the
2238pje**20050530232210
2239 name you'll use in 'require()' operations for that distribution.
2240] 
2241[Add setup script "sandboxing" -- abort a setup script if it tries to write
2242pje**20050530232034
2243 to the filesystem outside of the installer's temporary directory.  This is
2244 accomplished by temporarily replacing 'os.*' functions and the 'open'
2245 builtin with path-validation wrappers.
2246] 
2247[Reorganize bdist_egg's handling of 'install_data' to better deal with the
2248pje**20050530064601
2249 various kludges legacy packages are using to install data in their package
2250 directories.  Some use absolute paths in 'distribution.data_files', while
2251 others create various subclasses of 'install_data', each with their own
2252 way of finding out what directory to use!  So 'bdist_egg' now does all its
2253 'install_lib' activity before 'install_data', and pokes the desired build
2254 directory into a wide variety of places, so that all of the known kludges
2255 so far will work correctly.  It also checks for absolute paths in
2256 'data_files' (carefully working around other packages' 'data_files'
2257 kludges!) and converts them back to relative ones, if they are subpaths of
2258 site-packages.
2259 
2260 Clearly, we need to get the word out about 'package_files' in Python 2.4
2261 and above, and suggest using 'setuptools' for Python 2.3.
2262] 
2263[Add SourceForge download support, graciously contributed by Ian Bicking.
2264pje**20050530033750
2265 Also, move some more imports to the top.
2266] 
2267[Bump version to 0.3a2 for release
2268pje**20050529221430] 
2269[Add subversion support, loosely based on an implementation by Ian Bicking.
2270pje**20050529220846
2271 EasyInstall now recognizes both 'svn' URLs (including 'svn+ssh' et al), and
2272 notices when it connects to an HTTP server that's actually a subversion
2273 repository.  In either case it does a subversion checkout of the package.
2274 Also, fixed a bug on platforms with os.samefile().
2275] 
2276[Added options to alter eggs' version number by tagging with the subversion
2277pje**20050529220539
2278 revision number, date, and/or a custom tag.  This should make it easier for
2279 people to produce e.g. automated nightly builds of eggs.
2280] 
2281[Add support for using Installer subclasses, especially ones with support
2282pje**20050529071343
2283 for searching a package database.
2284] 
2285[Oddly enough, some setup.py files actually check __name__=='__main__'
2286pje**20050529064114] 
2287[Correctly recognize .egg files that are already on sys.path (or whatever
2288pje**20050529052059
2289 path AvailableDistributions is scanning)
2290] 
2291[Handle distributions with ' ' in their names
2292pje**20050529051959] 
2293[Add link to Python Eggs page in doc; fix a problem with non-standard source
2294pje**20050529013601
2295 distros (where setup.py is in the archive root).
2296] 
2297[Remove exemaker spew from easy_install.py
2298pje**20050529001825] 
2299[Add "easy_install" script that downloads distutils source (or .egg files)
2300pje**20050529001722
2301 and builds and installs them as eggs, with support for managing .pth files.
2302 Built distributions are installed in individual subdirectories, so you can
2303 either add the directory to a .pth (automatically done by default), or you
2304 can use pkg_resources.require() to manage your dependencies explicitly.
2305 Because each distribution is in its own directory (or .egg file),
2306 uninstallation and clean upgrades are trivial, without the aid of any sort
2307 of package manager.
2308] 
2309[Add experimental 'install_data' support to 'bdist_egg'.  The most common
2310pje**20050528230559
2311 distutils custom command hack in the field is to make 'install_data'
2312 put data in with the target packages by changing the --install-data to
2313 match --install-lib, so this should let bdist_egg work with more packages
2314 "out of the box".
2315] 
2316[Fix some typos and a missing import
2317pje**20050525032232] 
2318[Implement draft support for namespace packages, both declaring them
2319pje**20050525030653
2320 initially and fixing them up when new eggs are added to sys.path.  At the
2321 moment, all namespace packages are fixed up whenever any new egg is added
2322 to sys.path, but this might not scale well if there are lots of eggs and
2323 lots of namespace packages.  Perhaps we should limit namespace fixups to
2324 namespace packages explicitly declared in the egg?
2325] 
2326[Support registering distribution finders for arbitrary PEP 302 importer
2327pje**20050525005039
2328 types, so that the directory scanner isn't a hardcoded case.
2329] 
2330[Implement a draft version of 'find_distributions()' with hardcoded support
2331pje**20050524011524
2332 for packed and unpacked .egg files and .egg-info dirs.  This will need to
2333 be refactored later to support registering adapters for arbitrary PEP 302
2334 importers, so that it can deal with non-filesystem sys.path entries.
2335 
2336 In the meantime, however, this means that 'require()' now works and that
2337 intrepid souls may now witness the power of this fully operational battle
2338 station...
2339] 
2340[Make AvailableDistributions check distributions for Python version
2341pje**20050523021752
2342 compatibility as well as platform compatibility.  Rename get_distro_source
2343 to 'find_distributions', and get rid of intermediate distro-source objects.
2344] 
2345[Add a rough draft of Distribution.install_on(), to let others experiment
2346pje**20050523020042
2347 with 'require()' before the "official" version is complete.
2348] 
2349[Add tests for AvailableDistributions().resolve().  This effectively
2350pje**20050523015627
2351 completes the core dependency resolution engine; all we need now is a way
2352 to turn sys.path entries into "distribution sources" that can list
2353 Distribution objects for inclusion in an instance of
2354 AvailableDistributions, and the 'require("SomePkg>=2.7")' API will be
2355 usable.
2356] 
2357[Added support for specifying options on requirements, so that a package's
2358pje**20050522202847
2359 optional dependencies can be included when processing nested dependencies.
2360 Next up: tests for the resolve() algorithm.
2361] 
2362[Distribution metadata parsing: distribution objects can now extract their
2363pje**20050522194022
2364 version from PKG-INFO and their dependencies from depends.txt, including
2365 optional dependencies.
2366] 
2367[Refine dependency resolution algorithm so it won't take exponential time,
2368pje**20050522181700
2369 or bomb on cyclic dependencies.  (But it's still an untested sketch.)
2370 Added list of things that need to be implemented before dependency
2371 resolution can actually work.  Added tests for lower-level parts of the
2372 dependency resolution system, and a hook to support subclasses doing
2373 automatic download of needed dependencies.
2374] 
2375[Add basic "Requirement" class that can tell whether a distribution or
2376pje**20050521214257
2377 version meets its version requirements.
2378] 
2379[Added "AvailableDistributions" class that finds and indexes usable
2380pje**20050403185221
2381 distributions; this replaces the previous "iter_distributions()" API.
2382 Added basic platform support to Distribution and AvailableDistributions so
2383 that platform-independent distros as well as local platform-compatible
2384 distros are acceptable.  The actual platform scheme is currently delegated
2385 to distutils.util.get_platform(), but needs to be replaced with a better
2386 scheme of some kind, especially for OS X.
2387] 
2388[Remove setuptools_boot.py, as it can now be trivially replaced by including
2389pje**20050403172338
2390 a setuptools .egg file in your source distribution, and adding it to
2391 sys.path in your setup.py.
2392] 
2393[Fix handling of -/_ so that they are canonicalized to '-' when doing name
2394pje**20050403012108
2395 or version comparisons, but rendered as '_' in egg filenames.
2396] 
2397[Add a "Distribution" object that wraps a sys.path entry with metadata, and
2398pje**20050403004658
2399 can extract its name/version/pythonversion/platform if built from a .egg
2400 filename.  Later, distributions will be able to add themselves to sys.path
2401 and request that their dependencies be added as well.  Also, added some
2402 real-life version test cases supplied by jemfinch.
2403] 
2404[Add a simple version parser that combines the pre-release smarts of
2405pje**20050402233113
2406 distutils' StrictVersion, with the flexibility of LooseVersion.  It also
2407 deals heuristically with common concepts like alpha/beta/candidate/rc
2408 and pre/preview, as well as '-' and 'pl' branching schemes.
2409] 
2410[Rough draft of version requirement parser.  Make bdist_egg look for a
2411pje**20050402024321
2412 distname.egg-info directory instead of EGG-INFO.in; this will be used later
2413 to support development of egg-distributed packages that an application
2414 under development expects to 'require()'.  (Thanks to Fred Drake for
2415 pointing out this use case, and Bob Ippolito for helping me figure out how
2416 to support it, although the runtime support doesn't actually exist yet.)
2417] 
2418[Back out the addition of bogus 'if __name__=="__main__"' block; the One
2419pje**20050401212849
2420 Obvious Way to test setuptools is to run 'setup.py test', because that also
2421 provides an integration test for the 'test' command.
2422] 
2423[Specify and implement # comments in get_metadata_lines
2424etrepum**20050324202919
2425 A few more PEP 8 formatting fixes for pkg_resources
2426] 
2427[import StringIO at module level
2428etrepum**20050324192654] 
2429[Reformat pkg_resources in PEP 8 style
2430etrepum**20050324192153] 
2431[Add a working pkg_resources implementation that handles extraction and
2432pje**20050323004252
2433 basic support for non-egg resources.  Still a lot to do, but this version
2434 is capable of not only extracting and running C extensions, it can even
2435 find its own runtime (pkg_resources) if it's included in the egg.
2436] 
2437[Fix bootstrap loader so extracted files don't have to be on sys.path.
2438pje**20050322185559] 
2439[Create stub loaders for C extensions, so that the actual dynamic library
2440pje**20050322001503
2441 can be extracted from the egg.
2442] 
2443[Allow user-supplied metadata from EGG-INFO.in directory (directory name can
2444pje**20050321204157
2445 be overridden with a command-line option).
2446] 
2447[Add python version to egg filename.
2448pje**20050321201233] 
2449[Add 'bdist_egg' command/format to allow creating "Python Eggs" (see
2450pje**20050321195046
2451 http://peak.telecommunity.com/DevCenter/PythonEggs for details).  This
2452 version only supports pure libraries and does not support user-defined
2453 metadata.  But it's sufficient to make .egg files that can be placed on
2454 PYTHONPATH and used.
2455] 
2456[remove blank line pollution
2457fdrake**20040617203744] 
2458[fix to make things continue to work when we're *not* running under
2459fdrake**20040615190003
2460 Python 2.4; this was broken by my earlier change to avoid stomping on
2461 Python 2.4's build_py command
2462] 
2463[Deal with the distutils on the head; package_data may already be supported.
2464fdrake**20040614141534
2465 In this case, setuptools need not override the build_py command.
2466] 
2467[remove excess blank lines, and apply whitespace more in line with the Python
2468fdrake**20040405202153
2469 style guidelines in PEP 8
2470] 
2471[- remove trailing blank lines
2472fdrake**20040405200245
2473 - use whitespace according to the Python style guide
2474] 
2475[remove trailing blank line
2476fdrake**20040405195911] 
2477[Compute command line that should be passed to child setup scripts.
2478pje**20040322011231
2479 Warn user if unsupported options are supplied, and cancel unless
2480 'depends -i' (aka '--ignore-extra-args') was used.
2481] 
2482[Flesh out 'depends' command to display dependencies' status, and halt if
2483pje**20040320205212
2484 all requirements aren't met.  (Also, check planned install location for
2485 the dependencies, as well as checking sys.path.)  Also:
2486 
2487 * Allow 'Feature()' objects to include 'Require()' objects, so that
2488   dependencies can be optional
2489 
2490 * 'Require()' objects can set a homepage, whose URL will be displayed by
2491   the 'depends' command if the dependency needs to be installed.
2492 
2493 * Misc. fixes/refactoring of version validation to properly handle
2494   "unknown" versions, and to decouple version fetching from version
2495   checking.
2496 
2497 * Updated TODO to remove various completed items.
2498] 
2499[Initial checkin of setuptools 0.0.1.
2500pje**20040319205314] 
2501Patch bundle hash:
250289b41a4c9a850b276527fd8d894e3f36442511f9