Ticket #1074: zetuptoolz.dpatch

File zetuptoolz.dpatch, 161.1 KB (added by davidsarah, at 2010-07-31T09:22:10Z)

Changes to handling of scripts on Windows: get rid of .exe wrappers and use .pyscript/.pyw files instead. (Note: this patch is to zetuptoolz trunk, not Tahoe.)

Line 
1Sat Jul 31 10:00:14 GMT Daylight Time 2010  david-sarah@jacaranda.org
2  * Changes to handling of scripts on Windows: get rid of .exe wrappers and use .pyscript/.pyw files instead.
3
4New patches:
5
6[Changes to handling of scripts on Windows: get rid of .exe wrappers and use .pyscript/.pyw files instead.
7david-sarah@jacaranda.org**20100731090014
8 Ignore-this: 388569f1be1002641bb928a812ebe28a
9] hunk ./README.txt 1
10-===============================
11-Installing and Using Setuptools
12-===============================
13+======================
14+This is not Setuptools
15+======================
16 
17hunk ./README.txt 5
18-.. contents:: **Table of Contents**
19+This is the ``zetuptoolz`` fork of setuptools, which is used to install
20+`Tahoe-LAFS`_. It has a `darcs source repository`_ and `issue tracker`_.
21 
22hunk ./README.txt 8
23+For a list of differences between this fork and setuptools, see zetuptoolz.txt.
24 
25hunk ./README.txt 10
26--------------------------
27-Installation Instructions
28--------------------------
29+Note that, to avoid interfering with any setuptools installation, zetuptoolz
30+does not install a script called ``easy_install``. There is an ``easy_install_z``
31+script, but that is intended only for developers to test differences between
32+setuptools and zetuptoolz.
33 
34hunk ./README.txt 15
35-Windows
36-=======
37+.. _Tahoe-LAFS: http://tahoe-lafs.org/
38+.. _darcs source repository: http://tahoe-lafs.org/source/zetuptoolz/trunk
39+.. _issue tracker: http://tahoe-lafs.org/trac/zetuptoolz
40 
41hunk ./README.txt 19
42-Install setuptools using the provided ``.exe`` installer.  If you've previously
43-installed older versions of setuptools, please delete all ``setuptools*.egg``
44-and ``setuptools.pth`` files from your system's ``site-packages`` directory
45-(and any other ``sys.path`` directories) FIRST.
46-
47-If you are upgrading a previous version of setuptools that was installed using
48-an ``.exe`` installer, please be sure to also *uninstall that older version*
49-via your system's "Add/Remove Programs" feature, BEFORE installing the newer
50-version.
51-
52-Once installation is complete, you will find an ``easy_install.exe`` program in
53-your Python ``Scripts`` subdirectory.  Be sure to add this directory to your
54-``PATH`` environment variable, if you haven't already done so.
55-
56-
57-RPM-Based Systems
58-=================
59-
60-Install setuptools using the provided source RPM.  The included ``.spec`` file
61-assumes you are installing using the default ``python`` executable, and is not
62-specific to a particular Python version.  The ``easy_install`` executable will
63-be installed to a system ``bin`` directory such as ``/usr/bin``.
64-
65-If you wish to install to a location other than the default Python
66-installation's default ``site-packages`` directory (and ``$prefix/bin`` for
67-scripts), please use the ``.egg``-based installation approach described in the
68-following section.
69-
70-
71-Cygwin, Mac OS X, Linux, Other
72-==============================
73-
74-1. Download the appropriate egg for your version of Python (e.g.
75-   ``setuptools-0.6c9-py2.4.egg``).  Do NOT rename it.
76-
77-2. Run it as if it were a shell script, e.g. ``sh setuptools-0.6c9-py2.4.egg``.
78-   Setuptools will install itself using the matching version of Python (e.g.
79-   ``python2.4``), and will place the ``easy_install`` executable in the
80-   default location for installing Python scripts (as determined by the
81-   standard distutils configuration files, or by the Python installation).
82-
83-If you want to install setuptools to somewhere other than ``site-packages`` or
84-your default distutils installation locations for libraries and scripts, you
85-may include EasyInstall command-line options such as ``--prefix``,
86-``--install-dir``, and so on, following the ``.egg`` filename on the same
87-command line.  For example::
88-
89-    sh setuptools-0.6c9-py2.4.egg --prefix=~
90-
91-You can use ``--help`` to get a full options list, but we recommend consulting
92-the `EasyInstall manual`_ for detailed instructions, especially `the section
93-on custom installation locations`_.
94-
95-.. _EasyInstall manual: http://peak.telecommunity.com/DevCenter/EasyInstall
96-.. _the section on custom installation locations: http://peak.telecommunity.com/DevCenter/EasyInstall#custom-installation-locations
97-
98-
99-Cygwin Note
100------------
101-
102-If you are trying to install setuptools for the **Windows** version of Python
103-(as opposed to the Cygwin version that lives in ``/usr/bin``), you must make
104-sure that an appropriate executable (``python2.3``, ``python2.4``, or
105-``python2.5``) is on your **Cygwin** ``PATH`` when invoking the egg.  For
106-example, doing the following at a Cygwin bash prompt will install setuptools
107-for the **Windows** Python found at ``C:\\Python24``::
108-
109-    ln -s /cygdrive/c/Python24/python.exe python2.4
110-    PATH=.:$PATH sh setuptools-0.6c9-py2.4.egg
111-    rm python2.4
112-
113-
114-Downloads
115-=========
116-
117-All setuptools downloads can be found at `the project's home page in the Python
118-Package Index`_.  Scroll to the very bottom of the page to find the links.
119-
120-.. _the project's home page in the Python Package Index: http://pypi.python.org/pypi/setuptools#files
121-
122-In addition to the PyPI downloads, the development version of ``setuptools``   
123-is available from the `Python SVN sandbox`_, and in-development versions of the
124-`0.6 branch`_ are available as well.
125-
126-.. _0.6 branch: http://svn.python.org/projects/sandbox/branches/setuptools-0.6/#egg=setuptools-dev06
127-
128-.. _Python SVN sandbox: http://svn.python.org/projects/sandbox/trunk/setuptools/#egg=setuptools-dev
129 
130 --------------------------------
131 Using Setuptools and EasyInstall
132binary ./cli.exe
133oldhex
134*4d5a90000300000004000000ffff0000b800000000000000400000000000000000000000000000
135*000000000000000000000000000000000000000000800000000e1fba0e00b409cd21b8014ccd21
136*546869732070726f6772616d2063616e6e6f742062652072756e20696e20444f53206d6f64652e
137*0d0d0a2400000000000000504500004c01050049c7b7450000000000000000e0000f030b010238
138*000e00000008000000020000701200000010000000200000000040000010000000020000040000
139*000100000004000000000000000060000000040000ef6c00000300000000002000001000000000
140*1000001000000000000010000000000000000000000000500000d4030000000000000000000000
141*000000000000000000000000000000000000000000000000000000000000000000000000000000
142*000000000000000000000000000000000000000000000000000000000000000000000000000000
143*000000000000000000000000000000000000000000000000002e74657874000000f00c00000010
144*0000000e000000040000000000000000000000000000200000602e646174610000003000000000
145*2000000002000000120000000000000000000000000000400000c02e7264617461000050000000
146*003000000002000000140000000000000000000000000000400000402e62737300000000600000
147*00004000000000000000000000000000000000000000000000800000c02e69646174610000d403
148*0000005000000004000000160000000000000000000000000000400000c0000000000000000000
149*000000000000000000000000000000000000000000000000000000000000000000000000000000
150*000000000000000000000000000000000000000000000000000000000000000000000000000000
151*000000000000000000000000000000000000000000000000000000000000000000000000000000
152*000000000000000000000000000000000000000000000000000000000000000000000000000000
153*000000000000000000000000000000000000000000000000000000000000000000000000000000
154*000000000000000000000000000000000000000000000000000000000000000000000000000000
155*000000000000000000000000000000000000000000000000000000000000000000000000000000
156*000000000000000000000000000000000000000000000000000000000000000000000000000000
157*000000000000000000000000000000000000000000000000000000000000000000000000000000
158*000000000000000000000000000000000000000000000000000000000000000000000000000000
159*000000000000000000000000000000000000000000000000000000000000000000000000000000
160*000000000000000000005589e583ec18895df88b450831db8975fc8b0031f68b003d910000c077
161*433d8d0000c0725bbe01000000c704240800000031d289542404e8740b000083f801747a85c074
162*0ec7042408000000ffd0bbffffffff89d88b75fc8b5df889ec5dc204003d940000c074c2774a3d
163*930000c074b489d88b75fc8b5df889ec5dc20400903d050000c0745b3d1d0000c075c5c7042404
164*00000031f689742404e8100b000083f801746a85c074aac7042404000000ffd0eb9a3d960000c0
165*ebd1c7042408000000b80100000089442404e8e00a000085f60f8476ffffffe863090000e96cff
166*ffffc704240b00000031c089442404e8bc0a000083f801743085c00f8452ffffffc704240b0000
167*00ffd0e93fffffffc7042404000000b901000000894c2404e88c0a0000e925ffffffc704240b00
168*0000b80100000089442404e8720a0000e90bffffff8db6000000008dbc27000000005589e55383
169*ec24c7042400104000e8fd0a000083ec04e8d5080000c745f8000000008d45f889442410a10020
170*4000c70424044040008944240c8d45f489442408b80040400089442404e8420a0000a110404000
171*85c07459a3102040008b151c51400085d20f858b00000083fae0741fa11040400089442404a11c
172*5140008b4030890424e8f80900008b151c51400083fac0741da11040400089442404a11c514000
173*8b4050890424e8d40900008d742600e8bb0900008b15102040008910e8fe07000083e4f0e88609
174*00008b0089442408a10040400089442404a104404000890424e8ba06000089c3e853090000891c
175*24e82b0a000089442404a11c5140008b4010890424e8770900008b151c514000e956ffffff8db6
176*000000008dbf000000005589e583ec08c7042401000000ff1514514000e8c8feffff908db42600
177*0000005589e583ec08c7042402000000ff1514514000e8a8feffff908db42600000000558b0d30
178*51400089e55dffe18d742600558b0d2451400089e55dffe1909090905589e583ec188b450c8944
179*24088b450889442404a11c51400083c040890424e85c090000b802000000c9c35589e557565383
180*ec0c8b750889f7fcb9ffffffffb000f2aef7d18d79ffc7442404010000008d443f03890424e814
181*0900008945f0c6002289c242b900000000bb0000000039f97d33803c1e5c750341eb1e803c1e22
182*751385c97e09c6025c424985c97ff7c6025c42eb05b9000000000fb6041e8802424339fb7ccd85
183*c97e09c6025c424985c97ff7c60222c64201008b45f083c40c5b5e5f5dc35589e5565383ec10c7
184*44240808000000c7442404000000008b4508890424e8c808000083ec0c89c6b80000000085f674
185*3ec744240401000000c7042404010000e86608000089c385c07417c74424080401000089442404
186*893424e89c08000083ec0c893424e8a108000083ec0489d88d65f85b5e5dc35589e557565381ec
187*4c0400008b75088d5e010fb61684d2741380fa2f7504c643ff5c0fb6034388c284c075ed8d85d8
188*fcffff894424108d85d8fdffff8944240c8d85d8feffff894424088d45d889442404893424e8cc
189*070000807dd800750980bdd8feffff5c750d893424e81affffffe9990000008d85d8fcffff8944
190*24108d85d8fdffff8944240c8d9dd8feffff895c24088d45d8894424048b450c890424e8800700
191*0089dffcb9ffffffffb000f2aef7d18d5c19fe803b5c75064b803b5c74198d85d8feffff89c239
192*d8770dc603004b803b5c740439da76f3c7442410000000008974240c8d85d8feffff894424088d
193*45d8894424048d9dc8fbffff891c24e80f070000891c24e87cfeffff81c44c0400005b5e5f5dc3
194*5589e557565383ec1c8b5d0889dffcb9ffffffffb000f2aef7d149c744240404000000890c24e8
195*f10600008945f089debf00000000c745e8000000008b450cc700000000008b55f0891aeb01430f
196*be03890424e89406000085c075f00fb603438845ef84c074150fbec0890424e87a06000085c074
197*47837de800754185ff7407c6065c464f75f9c60600468b550c8b024089028b55f0893482807def
198*00750589d0eb65430fbe03890424e83d06000085c075f0803b0075a48b45f0eb4b807def5c7503
199*47eb96807def22751bf7c7010000007511837de8000f94c00fb6c08945e8c645ef00d1ff85ff74
200*07c6065c464f75f9807def000f8460ffffff0fb645ef880646e954ffffff83c41c5b5e5f5dc355
201*89e557565381ec2c020000c7442408000100008d9de8fdffff895c2404c7042400000000e83206
202*000083ec0c89dffcb9ffffffffb000f2aef7d18d7419ff39f37314803e2e740f89d8c606004e39
203*f07305803e2e75f3c606008db5e8fdffff89f7fcb9ffffffffb000f2aef7d149c7040e2d736372
204*c7440e046970742e66c7440e087079c6440e0a00c744240400000000893424e8a204000089c383
205*f8ff751589742404c7042400304000e8ebfbffffe9c50100008db5e8feffffc744240800010000
206*89742404890424e85c04000001c6891c24e8420400008dbde7feffff4739f7730f803f00740a80
207*3f0a7405803f0d75ecc607008db5e8feffffbf10304000b902000000fcf3a60f97c20f92c038c2
208*7425c785e8feffff23217079c785ecfeffff74686f6ec785f0feffff2e657865c685f4feffff00
209*8d85e4fdffff894424048d85eafeffff890424e89ffdffff8985dcfdffff8d85e8fdffff894424
210*048b95dcfdffff8b02890424e866fcffff89c785c0751d8b95dcfdffff8b0289442404c7042414
211*304000e80dfbffffe9e7000000c7442404040000008b45080385e4fdffff40890424e85e040000
212*8985e0fdffff893c24e80bfbffff8b95e0fdffff890289d383c304be010000003bb5e4fdffff7d
213*1f8b95dcfdffff8b04b2890424e8e0faffff890383c304463bb5e4fdffff7ce18d85e8fdffff89
214*0424e8c4faffff890383c304be010000003b75087d198b550c8b04b2890424e8a7faffff890383
215*c304463b75087ce7c70300000000837d1000742a8b85e0fdffff894424048d9de8feffff891c24
216*e8bd020000895c2404c7042436304000e83dfaffffeb1a8b95e0fdffff89542408897c2404c704
217*2400000000e8810200008d65f45b5e5f5dc35589e55383ec14e82d03000089c3e836030000c744
218*2408000000008b13895424048b00890424e852fdffff83c4145b5dc2100090909090909055b810
219*00000089e55383ec6483e4f0e8fc010000e8d7010000e8a203000089c38d45a8890424e8a50300
220*0083ec0485db7506e99d000000430fb60b80f9200f94c080f9090f94c209d0a80175ea80f92274
221*3e80f9200f95c031d280f9090f95c285d0744c8db6000000008dbf0000000084c9743c430fb60b
222*80f9200f95c031d280f9090f95c285d075e6eb248d742600430fb60b80f9220f95c031d284c90f
223*95c285d075eb80f92274668db60000000080f9200f94c080f9090f94c2eb1089f6430fb6033c20
224*0f94c23c090f94c009d0a80175ecc7042400000000e80003000083ec04f645d401ba0a00000074
225*040fb755d88954240c31d2895c240889542404890424e8bffeffff83ec108b5dfcc9c3430fb60b
226*eb9a9090909090909090909055b95030400089e5eb148db6000000008b51048b0183c108018200
227*00400081f95030400072ea5dc390909090909090905589e5dbe35dc39090909090909090905589
228*e583ec08a1202040008338007417ff108b15202040008d42048b5204a32020400085d275e9c9c3
229*8db426000000005589e55383ec04a1e01c400083f8ff742985c089c3741389f68dbc2700000000
230*ff149de01c40004b75f6c70424501a4000e8faf7ffff595b5dc331c0833de41c400000eb0a408b
231*1c85e41c400085db75f4ebbe8db6000000008dbc270000000055a12040400089e585c074045dc3
232*89f65db801000000a320404000eb839090905189e183c1083d00100000721081e9001000008309
233*002d00100000ebe929c183090089e089cc8b088b4004ffe0909090ff25f4504000909000000000
234*00000000ff25e850400090900000000000000000ff25e450400090900000000000000000ff25f0
235*50400090900000000000000000ff25ec50400090900000000000000000ff251451400090900000
236*000000000000ff251851400090900000000000000000ff250c51400090900000000000000000ff
237*254051400090900000000000000000ff251051400090900000000000000000ff25285140009090
238*0000000000000000ff250051400090900000000000000000ff2508514000909000000000000000
239*00ff250451400090900000000000000000ff253c51400090900000000000000000ff2520514000
240*90900000000000000000ff252c51400090900000000000000000ff253451400090900000000000
241*000000ff253851400090900000000000000000ff256851400090900000000000000000ff254c51
242*400090900000000000000000ff256451400090900000000000000000ff25585140009090000000
243*0000000000ff255051400090900000000000000000ff255451400090900000000000000000ff25
244*6051400090900000000000000000ff255c51400090900000000000000000ffffffff00000000ff
245*ffffff000000000000000000000000000000000000000000000000000000000000000000000000
246*000000000000000000000000000000000000000000000000000000000000000000000000000000
247*000000000000000000000000000000000000000000000000000000000000000000000000000000
248*000000000000000000000000000000000000000000000000000000000000000000000000000000
249*000000000000000000000000000000000000000000000000000000000000000000000000000000
250*000000000000000000000000000000000000000000000000000000000000000000000000000000
251*000000000000000000000000000000000000000000000000000000000000000000000000000000
252*000000000000ffffffff00000000000000000000000000400000000000000000000000000000ec
253*1c4000000000000000000000000000000000000000000000000000000000000000000000000000
254*000000000000000000000000000000000000000000000000000000000000000000000000000000
255*000000000000000000000000000000000000000000000000000000000000000000000000000000
256*000000000000000000000000000000000000000000000000000000000000000000000000000000
257*000000000000000000000000000000000000000000000000000000000000000000000000000000
258*000000000000000000000000000000000000000000000000000000000000000000000000000000
259*000000000000000000000000000000000000000000000000000000000000000000000000000000
260*000000000000000000000000000000000000000000000000000000000000000000000000000000
261*000000000000000000000000000000000000000000000000000000000000000000000000000000
262*000000000000000000000000000000000000000000000000000000000000000000000000000000
263*000000000000000000000000000000000000000000000000000000000000000000000000000000
264*000000000000000000000000000000000000000000000000000000000000000000000000000000
265*000000000000000000000043616e6e6f74206f70656e2025730a002321000043616e6e6f742066
266*696e6420507974686f6e2065786563757461626c652025730a00436f756c64206e6f7420657865
267*632025730000000000000000000000000000000000000000000000000000000000000000000000
268*000000000000000000000000000000000000000000000000000000000000000000000000000000
269*000000000000000000000000000000000000000000000000000000000000000000000000000000
270*000000000000000000000000000000000000000000000000000000000000000000000000000000
271*000000000000000000000000000000000000000000000000000000000000000000000000000000
272*000000000000000000000000000000000000000000000000000000000000000000000000000000
273*000000000000000000000000000000000000000000000000000000000000000000000000000000
274*000000000000000000000000000000000000000000000000000000000000000000000000000000
275*000000000000000000000000000000000000000000000000000000000000000000000000000000
276*000000000000000000000000000000000000000000000000000000000000000000000000000000
277*000000000000000000000000000000000000000000000000000000000000000000000000000000
278*0000000000000000000000000000000054500000000000000000000048530000e4500000705000
279*0000000000000000009853000000510000bc5000000000000000000000c45300004c5100000000
280*00000000000000000000000000000000000000000000705100007c510000885100009051000098
281*5100000000000000000000a4510000b4510000c4510000d4510000e4510000f451000008520000
282*145200001c520000285200003452000040520000505200005c5200006852000074520000805200
283*0000000000000000008c5200009c520000ac520000c0520000d8520000ec520000005300001453
284*00000000000000000000705100007c5100008851000090510000985100000000000000000000a4
285*510000b4510000c4510000d4510000e4510000f451000008520000145200001c52000028520000
286*3452000040520000505200005c52000068520000745200008052000000000000000000008c5200
287*009c520000ac520000c0520000d8520000ec52000000530000145300000000000006005f636c6f
288*73650000000012005f6578656376000000003a005f6f70656e0040005f72656164004b005f7370
289*61776e7600000027005f5f6765746d61696e617267730031005f5f705f5f5f6172676300000000
290*32005f5f705f5f5f61726776000000003c005f5f705f5f656e7669726f6e00003e005f5f705f5f
291*666d6f64650000000050005f5f7365745f6170705f747970650000000079005f63657869740000
292*0000e9005f696f6200001f015f6d616b6570617468005e015f6f6e6578697400000084015f7365
293*746d6f6465000092015f73706c697470617468000000001c026174657869740000000021026361
294*6c6c6f63000000003902667072696e74660000005a026973737061636500000090027369676e61
295*6c000000009b004578697450726f63657373000000d500467265654c696272617279000000ec00
296*476574436f6d6d616e644c696e65410000004d014765744d6f64756c6546696c654e616d654100
297*0000004f014765744d6f64756c6548616e646c65410000800147657453746172747570496e666f
298*410000000b024c6f61644c69627261727945784100000000df02536574556e68616e646c656445
299*7863657074696f6e46696c74657200000000500000005000000050000000500000005000006d73
300*766372742e646c6c00001450000014500000145000001450000014500000145000001450000014
301*500000145000001450000014500000145000001450000014500000145000001450000014500000
302*6d73766372742e646c6c0000285000002850000028500000285000002850000028500000285000
303*00285000004b45524e454c33322e646c6c00000000000000000000000000000000000000000000
304*0000000000000000000000000000000000000000000000000000
305newhex
306*
307rmfile ./cli.exe
308hunk ./ez_setup.py 17
309 This file can also be run as a script to install or upgrade setuptools.
310 """
311 import sys
312-DEFAULT_VERSION = "0.6c14dev"
313+
314+print >>sys.stderr, """
315+Warning: This script is unmaintained in the zetuptoolz fork.
316+It uses a default download location from which zetuptoolz is not actually available.
317+"""
318+
319+DEFAULT_VERSION = "0.6c16dev"
320 DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
321 
322 md5_data = {
323binary ./gui.exe
324oldhex
325*4d5a90000300000004000000ffff0000b800000000000000400000000000000000000000000000
326*000000000000000000000000000000000000000000800000000e1fba0e00b409cd21b8014ccd21
327*546869732070726f6772616d2063616e6e6f742062652072756e20696e20444f53206d6f64652e
328*0d0d0a2400000000000000504500004c0105002e737d470000000000000000e0000f030b010238
329*001000000008000000020000801200000010000000200000000040000010000000020000040000
330*00010000000400000000000000006000000004000010cd00000200000000002000001000000000
331*1000001000000000000010000000000000000000000000500000d4030000000000000000000000
332*000000000000000000000000000000000000000000000000000000000000000000000000000000
333*000000000000000000000000000000000000000000000000000000000000000000000000000000
334*000000000000000000000000000000000000000000000000002e74657874000000400e00000010
335*00000010000000040000000000000000000000000000200000602e646174610000003000000000
336*2000000002000000140000000000000000000000000000400000c02e7264617461000050000000
337*003000000002000000160000000000000000000000000000400000402e62737300000000700000
338*00004000000000000000000000000000000000000000000000800000c02e69646174610000d403
339*0000005000000004000000180000000000000000000000000000400000c0000000000000000000
340*000000000000000000000000000000000000000000000000000000000000000000000000000000
341*000000000000000000000000000000000000000000000000000000000000000000000000000000
342*000000000000000000000000000000000000000000000000000000000000000000000000000000
343*000000000000000000000000000000000000000000000000000000000000000000000000000000
344*000000000000000000000000000000000000000000000000000000000000000000000000000000
345*000000000000000000000000000000000000000000000000000000000000000000000000000000
346*000000000000000000000000000000000000000000000000000000000000000000000000000000
347*000000000000000000000000000000000000000000000000000000000000000000000000000000
348*000000000000000000000000000000000000000000000000000000000000000000000000000000
349*000000000000000000000000000000000000000000000000000000000000000000000000000000
350*000000000000000000000000000000000000000000000000000000000000000000000000000000
351*000000000000000000005589e583ec18895df88b550831db8975fc8b0231f68b003d910000c077
352*433d8d0000c0725bbe01000000c704240800000031d289542404e8c40c000083f801747a85c074
353*0ec7042408000000ffd0bbffffffff89d88b75fc8b5df889ec5dc204003d940000c074c2774a3d
354*930000c074b489d88b75fc8b5df889ec5dc20400903d050000c0745b3d1d0000c075c5c7042404
355*00000031f689742404e8600c000083f801746a85c074aac7042404000000ffd0eb9a3d960000c0
356*ebd1c7042408000000b901000000894c2404e8300c000085f60f8476ffffffe8630a0000e96cff
357*ffffc704240b00000031c9894c2404e80c0c000083f801743085c00f8452ffffffc704240b0000
358*00ffd0e93fffffffc7042404000000b80100000089442404e8dc0b0000e925ffffffc704240b00
359*0000bb01000000895c2404e8c20b0000e90bffffff8db6000000008dbc27000000005589e55383
360*ec248d5df8c7042400104000e84a0c000083ec04e8d2080000e8cd090000c745f800000000b800
361*4040008d55f4895c24108b0d002040008944240489542408894c240cc7042404404000e88c0b00
362*00a11040400085c07463a3102040008b151c51400085d20f859600000083fae07420a110404000
363*894424048b1d1c5140008b4b30890c24e8410b00008b151c51400083fac074268b1d1040400089
364*5c24048b0d1c5140008b5150891424e81b0b00008d7426008dbc2700000000e8fb0a00008b1d10
365*2040008918e8ee07000083e4f0e8c60a00008b08894c24088b150040400089542404a104404000
366*890424e8a906000089c3e8920a0000891c24e86a0b0000894424048b151c5140008b4210890424
367*e8b50a00008b151c514000e94affffff8d76008dbc27000000005589e583ec08c7042401000000
368*ff1514514000e8b8feffff908db426000000005589e583ec08c7042402000000ff1514514000e8
369*98feffff908db42600000000558b0d3051400089e55dffe18d742600558b0d2451400089e55dff
370*e1909090905589e583ec188b450c894424088b450889442404a11c51400083c040890424e89c0a
371*0000b802000000c9c35589e557565383ec0c8b750889f7fcb9ffffffffb000f2aef7d18d79ffc7
372*442404010000008d443f03890424e8540a00008945f0c6002289c242b900000000bb0000000039
373*f97d33803c1e5c750341eb1e803c1e22751385c97e09c6025c424985c97ff7c6025c42eb05b900
374*0000000fb6041e8802424339fb7ccd85c97e09c6025c424985c97ff7c60222c64201008b45f083
375*c40c5b5e5f5dc35589e5565383ec10c744240808000000c7442404000000008b4508890424e808
376*0a000083ec0c89c6b80000000085f6743ec744240401000000c7042404010000e8a609000089c3
377*85c07417c74424080401000089442404893424e8dc09000083ec0c893424e8e109000083ec0489
378*d88d65f85b5e5dc35589e557565381ec4c0400008b75088d5e010fb61684d2741380fa2f7504c6
379*43ff5c0fb6034388c284c075ed8d85d8fcffff894424108d85d8fdffff8944240c8d85d8feffff
380*894424088d45d889442404893424e80c090000807dd800750980bdd8feffff5c750d893424e81a
381*ffffffe9990000008d85d8fcffff894424108d85d8fdffff8944240c8d9dd8feffff895c24088d
382*45d8894424048b450c890424e8c008000089dffcb9ffffffffb000f2aef7d18d5c19fe803b5c75
383*064b803b5c74198d85d8feffff89c239d8770dc603004b803b5c740439da76f3c7442410000000
384*008974240c8d85d8feffff894424088d45d8894424048d9dc8fbffff891c24e84f080000891c24
385*e87cfeffff81c44c0400005b5e5f5dc35589e557565383ec1c8b5d0889dffcb9ffffffffb000f2
386*aef7d149c744240404000000890c24e8310800008945f089debf00000000c745e8000000008b45
387*0cc700000000008b55f0891aeb01430fbe03890424e8d407000085c075f00fb603438845ef84c0
388*74150fbec0890424e8ba07000085c07447837de800754185ff7407c6065c464f75f9c60600468b
389*550c8b024089028b55f0893482807def00750589d0eb65430fbe03890424e87d07000085c075f0
390*803b0075a48b45f0eb4b807def5c750347eb96807def22751bf7c7010000007511837de8000f94
391*c00fb6c08945e8c645ef00d1ff85ff7407c6065c464f75f9807def000f8460ffffff0fb645ef88
392*0646e954ffffff83c41c5b5e5f5dc35589e557565381ec2c020000c7442408000100008d9de8fd
393*ffff895c2404c7042400000000e87207000083ec0c89dffcb9ffffffffb000f2aef7d18d7419ff
394*39f37314803e2e740f89d8c606004e39f07305803e2e75f3c606008db5e8fdffff89f7fcb9ffff
395*ffffb000f2aef7d149c7040e2d736372c7440e046970742ec7440e0870797700c7442404000000
396*00893424e8e605000089c383f8ff751589742404c7042400304000e8effbffffe9bf0100008db5
397*e8feffffc74424080001000089742404890424e8a005000001c6891c24e8860500008dbde7feff
398*ff4739f7730f803f00740a803f0a7405803f0d75ecc607008db5e8feffffbf10304000b9020000
399*00fcf3a60f97c20f92c038c27425c785e8feffff23217079c785ecfeffff74686f6ec785f0feff
400*ff2e657865c685f4feffff008d85e4fdffff894424048d85eafeffff890424e8a3fdffff8985dc
401*fdffff8d85e8fdffff894424048b95dcfdffff8b02890424e86afcffff89c785c0751d8b95dcfd
402*ffff8b0289442404c7042414304000e811fbffffe9e1000000c7442404040000008b45080385e4
403*fdffff40890424e8a20500008985e0fdffff893c24e80ffbffff8b95e0fdffff890289d383c304
404*be010000003bb5e4fdffff7d1f8b95dcfdffff8b04b2890424e8e4faffff890383c304463bb5e4
405*fdffff7ce18d85e8fdffff890424e8c8faffff890383c304be010000003b75087d198b550c8b04
406*b2890424e8abfaffff890383c304463b75087ce7c70300000000837d100074248b85e0fdffff89
407*442404893c24e807040000897c2404c7042436304000e847faffffeb1a8b95e0fdffff89542408
408*897c2404c7042400000000e8cb0300008d65f45b5e5f5dc35589e55383ec14e87704000089c3e8
409*80040000c7442408010000008b13895424048b00890424e85cfdffff83c4145b5dc2100055b810
410*00000089e55383ec6483e4f0e84c030000e8d7020000e8f204000089c38d45a8890424e8f50400
411*0083ec0485db7506e99f000000430fb60b80f9200f94c080f9090f94c209d0a80175ea80f92274
412*3e80f9200f95c031d280f9090f95c285d0744c8db6000000008dbf0000000084c9743c430fb60b
413*80f9200f95c031d280f9090f95c285d075e6eb248d742600430fb60b80f9220f95c031d284c90f
414*95c285d075eb80f92274688db60000000080f9200f94c080f9090f94c2eb126690430fb60b80f9
415*200f94c280f9090f94c009d0a80175eac7042400000000e84e04000083ec04f645d401ba0a0000
416*0074040fb755d8895c240831db895c24048954240c890424e8c3feffff83ec108b5dfcc9c3430f
417*b60beb98909090909090909055b95030400089e5eb148db6000000008b51048b0183c108018200
418*00400081f95030400072ea5dc390909090909090905589e5539c9c5889c23500002000509d9c58
419*9d31d0a9000020000f84c000000031c00fa285c00f84b4000000b8010000000fa2f6c6010f85a7
420*00000089d381e3008000006685db7407830d2040400002f7c2000080007407830d2040400004f7
421*c2000000017407830d2040400008f7c2000000027407830d204040001081e2000000047407830d
422*2040400020f6c1017407830d2040400040f6c520740a810d2040400080000000b8000000800fa2
423*3d00000080762bb8010000800fa2a12040400089c181c90001000081e200000040741e0d000300
424*00a320404000908d7426005b5dc3830d2040400001e94dffffff5b890d204040005dc390909090
425*909090905589e5dbe35dc39090909090909090905589e583ec08a1202040008338007417ff108b
426*0d202040008b51048d4104a32020400085d275e9c9c38db426000000005589e55383ec04a1301e
427*400083f8ff742985c089c3741389f68dbc2700000000ff149d301e40004b75f6c70424501b4000
428*e80af7ffff595b5dc331c0833d341e400000eb0a408b1c85341e400085db75f4ebbe8db6000000
429*008dbc27000000005589e55383ec048b1d3040400085db7535a1301e4000b901000000890d3040
430*400083f8ff742485c089c3740e8d742600ff149d301e40004b75f6c70424501b4000e89af6ffff
431*585b5dc331c0833d341e400000eb0a408b1485341e400085d275f4ebc390909090909090909090
432*9090905189e183c1083d00100000721081e9001000008309002d00100000ebe929c183090089e0
433*89cc8b088b4004ffe0909090ff25f450400090900000000000000000ff25e85040009090000000
434*0000000000ff25e450400090900000000000000000ff25f050400090900000000000000000ff25
435*ec50400090900000000000000000ff251451400090900000000000000000ff2518514000909000
436*00000000000000ff250c51400090900000000000000000ff254051400090900000000000000000
437*ff251051400090900000000000000000ff252851400090900000000000000000ff250051400090
438*900000000000000000ff250851400090900000000000000000ff25045140009090000000000000
439*0000ff253c51400090900000000000000000ff252051400090900000000000000000ff252c5140
440*0090900000000000000000ff253451400090900000000000000000ff2538514000909000000000
441*00000000ff256851400090900000000000000000ff254c51400090900000000000000000ff2564
442*51400090900000000000000000ff255851400090900000000000000000ff255051400090900000
443*000000000000ff255451400090900000000000000000ff256051400090900000000000000000ff
444*255c51400090900000000000000000ffffffff00000000ffffffff000000000000000000000000
445*000000000000000000000000000000000000000000000000000000000000000000000000000000
446*000000000000000000000000000000000000000000000000000000000000000000000000000000
447*000000000000000000000000000000000000000000000000000000000000000000000000000000
448*000000000000000000000000000000000000000000000000000000000000000000000000000000
449*000000000000000000000000000000000000000000000000000000000000000000000000000000
450*000000000000000000000000000000000000000000000000000000000000000000000000000000
451*000000000000000000000000000000000000000000000000000000000000000000000000000000
452*000000000000000000000000000000000000000000000000000000000000000000000000000000
453*000000000000000000000000000000000000000000000000000000000000000000000000000000
454*000000000000000000000000000000000000000000000000000000000000000000000000000000
455*000000000000000000000000000000000000000000000000000000000000000000000000000000
456*0000000000000000000000ffffffff000000000000000000000000004000000000000000000000
457*000000003c1e400000000000000000000000000000000000000000000000000000000000000000
458*000000000000000000000000000000000000000000000000000000000000000000000000000000
459*000000000000000000000000000000000000000000000000000000000000000000000000000000
460*000000000000000000000000000000000000000000000000000000000000000000000000000000
461*000000000000000000000000000000000000000000000000000000000000000000000000000000
462*000000000000000000000000000000000000000000000000000000000000000000000000000000
463*000000000000000000000000000000000000000000000000000000000000000000000000000000
464*000000000000000000000000000000000000000000000000000000000000000000000000000000
465*000000000000000000000000000000000000000000000000000000000000000000000000000000
466*000000000000000000000000000000000000000000000000000000000000000000000000000000
467*000000000000000000000000000000000000000000000000000000000000000000000000000000
468*000000000000000000000000000000000000000000000000000000000000000000000000000000
469*0000000000000000000000000000000043616e6e6f74206f70656e2025730a002321000043616e
470*6e6f742066696e6420507974686f6e2065786563757461626c652025730a00436f756c64206e6f
471*742065786563202573000000000000000000000000000000000000000000000000000000000000
472*000000000000000000000000000000000000000000000000000000000000000000000000000000
473*000000000000000000000000000000000000000000000000000000000000000000000000000000
474*000000000000000000000000000000000000000000000000000000000000000000000000000000
475*000000000000000000000000000000000000000000000000000000000000000000000000000000
476*000000000000000000000000000000000000000000000000000000000000000000000000000000
477*000000000000000000000000000000000000000000000000000000000000000000000000000000
478*000000000000000000000000000000000000000000000000000000000000000000000000000000
479*000000000000000000000000000000000000000000000000000000000000000000000000000000
480*000000000000000000000000000000000000000000000000000000000000000000000000000000
481*000000000000000000000000000000000000000000000000000000000000000000000000000000
482*00000000000000000000000000000000000000000054500000000000000000000048530000e450
483*00007050000000000000000000009853000000510000bc5000000000000000000000c45300004c
484*510000000000000000000000000000000000000000000000000000705100007c51000088510000
485*90510000985100000000000000000000a4510000b4510000c4510000d4510000e4510000f45100
486*0008520000145200001c520000285200003452000040520000505200005c520000685200007452
487*00008052000000000000000000008c5200009c520000ac520000c0520000d8520000ec52000000
488*530000145300000000000000000000705100007c51000088510000905100009851000000000000
489*00000000a4510000b4510000c4510000d4510000e4510000f451000008520000145200001c5200
490*00285200003452000040520000505200005c520000685200007452000080520000000000000000
491*00008c5200009c520000ac520000c0520000d8520000ec52000000530000145300000000000006
492*005f636c6f73650000000012005f6578656376000000003a005f6f70656e0040005f7265616400
493*4b005f737061776e7600000027005f5f6765746d61696e617267730031005f5f705f5f5f617267
494*630000000032005f5f705f5f5f61726776000000003c005f5f705f5f656e7669726f6e00003e00
495*5f5f705f5f666d6f64650000000050005f5f7365745f6170705f747970650000000079005f6365
496*78697400000000e9005f696f6200001f015f6d616b6570617468005e015f6f6e65786974000000
497*84015f7365746d6f6465000092015f73706c697470617468000000001c02617465786974000000
498*00210263616c6c6f63000000003902667072696e74660000005a02697373706163650000009002
499*7369676e616c000000009b004578697450726f63657373000000d500467265654c696272617279
500*000000ec00476574436f6d6d616e644c696e65410000004d014765744d6f64756c6546696c654e
501*616d6541000000004f014765744d6f64756c6548616e646c654100008001476574537461727475
502*70496e666f410000000b024c6f61644c69627261727945784100000000e002536574556e68616e
503*646c6564457863657074696f6e46696c7465720000000050000000500000005000000050000000
504*5000006d73766372742e646c6c0000145000001450000014500000145000001450000014500000
505*145000001450000014500000145000001450000014500000145000001450000014500000145000
506*00145000006d73766372742e646c6c000028500000285000002850000028500000285000002850
507*000028500000285000004b45524e454c33322e646c6c0000000000000000000000000000000000
508*00000000000000000000000000000000000000000000000000000000000000
509newhex
510*
511rmfile ./gui.exe
512hunk ./launcher.c 1
513-/*  Setuptools Script Launcher for Windows
514-
515-    This is a stub executable for Windows that functions somewhat like
516-    Effbot's "exemaker", in that it runs a script with the same name but
517-    a .py extension, using information from a #! line.  It differs in that
518-    it spawns the actual Python executable, rather than attempting to
519-    hook into the Python DLL.  This means that the script will run with
520-    sys.executable set to the Python executable, where exemaker ends up with
521-    sys.executable pointing to itself.  (Which means it won't work if you try
522-    to run another Python process using sys.executable.)
523-
524-    To build/rebuild with mingw32, do this in the setuptools project directory:
525-
526-       gcc -DGUI=0           -mno-cygwin -O -s -o setuptools/cli.exe launcher.c
527-       gcc -DGUI=1 -mwindows -mno-cygwin -O -s -o setuptools/gui.exe launcher.c
528-
529-    It links to msvcrt.dll, but this shouldn't be a problem since it doesn't
530-    actually run Python in the same process.  Note that using 'exec' instead
531-    of 'spawn' doesn't work, because on Windows this leads to the Python
532-    executable running in the *background*, attached to the same console
533-    window, meaning you get a command prompt back *before* Python even finishes
534-    starting.  So, we have to use spawnv() and wait for Python to exit before
535-    continuing.  :(
536-*/
537-
538-#include <stdlib.h>
539-#include <stdio.h>
540-#include <unistd.h>
541-#include <fcntl.h>
542-#include "windows.h"
543-
544-int fail(char *format, char *data) {
545-    /* Print error message to stderr and return 2 */
546-    fprintf(stderr, format, data);
547-    return 2;
548-}
549-
550-
551-
552-
553-
554-char *quoted(char *data) {
555-    int i, ln = strlen(data), nb;
556-
557-    /* We allocate twice as much space as needed to deal with worse-case
558-       of having to escape everything. */
559-    char *result = calloc(ln*2+3, sizeof(char));
560-    char *presult = result;
561-
562-    *presult++ = '"';
563-    for (nb=0, i=0; i < ln; i++)
564-      {
565-        if (data[i] == '\\')
566-          nb += 1;
567-        else if (data[i] == '"')
568-          {
569-            for (; nb > 0; nb--)
570-              *presult++ = '\\';
571-            *presult++ = '\\';
572-          }
573-        else
574-          nb = 0;
575-        *presult++ = data[i];
576-      }
577-
578-    for (; nb > 0; nb--)        /* Deal w trailing slashes */
579-      *presult++ = '\\';
580-
581-    *presult++ = '"';
582-    *presult++ = 0;
583-    return result;
584-}
585-
586-
587-
588-
589-
590-
591-
592-
593-
594-
595-char *loadable_exe(char *exename) {
596-    /* HINSTANCE hPython;  DLL handle for python executable */
597-    char *result;
598-
599-    /* hPython = LoadLibraryEx(exename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
600-    if (!hPython) return NULL; */
601-
602-    /* Return the absolute filename for spawnv */
603-    result = calloc(MAX_PATH, sizeof(char));
604-    strncpy(result, exename, MAX_PATH);
605-    /*if (result) GetModuleFileName(hPython, result, MAX_PATH);
606-
607-    FreeLibrary(hPython); */
608-    return result;
609-}
610-
611-
612-char *find_exe(char *exename, char *script) {
613-    char drive[_MAX_DRIVE], dir[_MAX_DIR], fname[_MAX_FNAME], ext[_MAX_EXT];
614-    char path[_MAX_PATH], c, *result;
615-
616-    /* convert slashes to backslashes for uniform search below */
617-    result = exename;
618-    while (c = *result++) if (c=='/') result[-1] = '\\';
619-
620-    _splitpath(exename, drive, dir, fname, ext);
621-    if (drive[0] || dir[0]=='\\') {
622-        return loadable_exe(exename);   /* absolute path, use directly */
623-    }
624-    /* Use the script's parent directory, which should be the Python home
625-       (This should only be used for bdist_wininst-installed scripts, because
626-        easy_install-ed scripts use the absolute path to python[w].exe
627-    */
628-    _splitpath(script, drive, dir, fname, ext);
629-    result = dir + strlen(dir) -1;
630-    if (*result == '\\') result--;
631-    while (*result != '\\' && result>=dir) *result-- = 0;
632-    _makepath(path, drive, dir, exename, NULL);
633-    return loadable_exe(path);
634-}
635-
636-
637-char **parse_argv(char *cmdline, int *argc)
638-{
639-    /* Parse a command line in-place using MS C rules */
640-
641-    char **result = calloc(strlen(cmdline), sizeof(char *));
642-    char *output = cmdline;
643-    char c;
644-    int nb = 0;
645-    int iq = 0;
646-    *argc = 0;
647-
648-    result[0] = output;
649-    while (isspace(*cmdline)) cmdline++;   /* skip leading spaces */
650-
651-    do {
652-        c = *cmdline++;
653-        if (!c || (isspace(c) && !iq)) {
654-            while (nb) {*output++ = '\\'; nb--; }
655-            *output++ = 0;
656-            result[++*argc] = output;
657-            if (!c) return result;
658-            while (isspace(*cmdline)) cmdline++;  /* skip leading spaces */
659-            if (!*cmdline) return result;  /* avoid empty arg if trailing ws */
660-            continue;
661-        }
662-        if (c == '\\')
663-            ++nb;   /* count \'s */
664-        else {
665-            if (c == '"') {
666-                if (!(nb & 1)) { iq = !iq; c = 0; }  /* skip " unless odd # of \ */
667-                nb = nb >> 1;   /* cut \'s in half */
668-            }
669-            while (nb) {*output++ = '\\'; nb--; }
670-            if (c) *output++ = c;
671-        }
672-    } while (1);
673-}
674-
675-
676-
677-
678-int run(int argc, char **argv, int is_gui) {
679-
680-    char python[256];   /* python executable's filename*/
681-    char *pyopt;        /* Python option */
682-    char script[256];   /* the script's filename */
683-
684-    int scriptf;        /* file descriptor for script file */
685-
686-    char **newargs, **newargsp, **parsedargs; /* argument array for exec */
687-    char *ptr, *end;    /* working pointers for string manipulation */
688-    int i, parsedargc;              /* loop counter */
689-
690-    /* compute script name from our .exe name*/
691-    GetModuleFileName(NULL, script, sizeof(script));
692-    end = script + strlen(script);
693-    while( end>script && *end != '.')
694-        *end-- = '\0';
695-    *end-- = '\0';
696-    strcat(script, (GUI ? "-script.pyw" : "-script.py"));
697-
698-    /* figure out the target python executable */
699-
700-    scriptf = open(script, O_RDONLY);
701-    if (scriptf == -1) {
702-        return fail("Cannot open %s\n", script);
703-    }
704-    end = python + read(scriptf, python, sizeof(python));
705-    close(scriptf);
706-
707-    ptr = python-1;
708-    while(++ptr < end && *ptr && *ptr!='\n' && *ptr!='\r') {;}
709-
710-    *ptr-- = '\0';
711-
712-    if (strncmp(python, "#!", 2)) {
713-        /* default to python.exe if no #! header */
714-        strcpy(python, "#!python.exe");
715-    }
716-
717-    parsedargs = parse_argv(python+2, &parsedargc);
718-
719-    /* Using spawnv() can fail strangely if you e.g. find the Cygwin
720-       Python, so we'll make sure Windows can find and load it */
721-
722-    ptr = find_exe(parsedargs[0], script);
723-    if (!ptr) {
724-        return fail("Cannot find Python executable %s\n", parsedargs[0]);
725-    }
726-
727-    /* printf("Python executable: %s\n", ptr); */
728-
729-    /* Argument array needs to be
730-       parsedargc + argc, plus 1 for null sentinel */
731-
732-    newargs = (char **)calloc(parsedargc + argc + 1, sizeof(char *));
733-    newargsp = newargs;
734-
735-    *newargsp++ = quoted(ptr);
736-    for (i = 1; i<parsedargc; i++) *newargsp++ = quoted(parsedargs[i]);
737-
738-    *newargsp++ = quoted(script);
739-    for (i = 1; i < argc; i++)     *newargsp++ = quoted(argv[i]);
740-
741-    *newargsp++ = NULL;
742-
743-    /* printf("args 0: %s\nargs 1: %s\n", newargs[0], newargs[1]); */
744-
745-    if (is_gui) {
746-        /* Use exec, we don't need to wait for the GUI to finish */
747-        execv(ptr, (const char * const *)(newargs));
748-        return fail("Could not exec %s", ptr);   /* shouldn't get here! */
749-    }
750-
751-    /* We *do* need to wait for a CLI to finish, so use spawn */
752-    return spawnv(P_WAIT, ptr, (const char * const *)(newargs));
753-}
754-
755-
756-int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpCmd, int nShow) {
757-    return run(__argc, __argv, GUI);
758-}
759-
760rmfile ./launcher.c
761hunk ./setup.py 10
762 execfile(convert_path('setuptools/command/__init__.py'), d)
763 
764 SETUP_COMMANDS = d['__all__']
765-VERSION = "0.6c14dev"
766+VERSION = "0.6c16"
767 
768 from setuptools import setup, find_packages
769 import sys
770hunk ./setup.py 20
771     name="setuptools",
772     version=VERSION,
773     description="Download, build, install, upgrade, and uninstall Python "
774-        "packages -- easily!",
775+        "packages -- easily!  (zetuptoolz fork)",
776     author="Phillip J. Eby",
777     author_email="distutils-sig@python.org",
778     license="PSF or ZPL",
779hunk ./setup.py 29
780     url = "http://pypi.python.org/pypi/setuptools",
781     test_suite = 'setuptools.tests',
782     packages = find_packages(),
783-    package_data = {'setuptools':['*.exe','site-patch.py']},
784+    package_data = {'setuptools':['site-patch.py']},
785 
786     py_modules = ['pkg_resources','easy_install'],
787     zip_safe = (sys.version>="2.5"),   # <2.5 needs unzipped for -m to work
788hunk ./setup.py 66
789             "dependency_links.txt = setuptools.command.egg_info:overwrite_arg",
790         ],
791         "console_scripts": [
792-             "easy_install = setuptools.command.easy_install:main",
793-             "easy_install-%s = setuptools.command.easy_install:main"
794+             "easy_install_z = setuptools.command.easy_install:main",
795+             "easy_install_z-%s = setuptools.command.easy_install:main"
796                 % sys.version[:3]
797         ],
798         "setuptools.file_finders":
799hunk ./setuptools.egg-info/entry_points.txt 7
800 develop = setuptools.command.develop:develop
801 setopt = setuptools.command.setopt:setopt
802 build_py = setuptools.command.build_py:build_py
803+scriptsetup = setuptools.command.scriptsetup:scriptsetup
804 saveopts = setuptools.command.saveopts:saveopts
805 egg_info = setuptools.command.egg_info:egg_info
806 register = setuptools.command.register:register
807hunk ./setuptools.egg-info/entry_points.txt 34
808 depends.txt = setuptools.command.egg_info:warn_depends_obsolete
809 
810 [console_scripts]
811-easy_install = setuptools.command.easy_install:main
812-easy_install-2.5 = setuptools.command.easy_install:main
813+easy_install_z-2.6 = setuptools.command.easy_install:main
814+easy_install_z = setuptools.command.easy_install:main
815 
816 [setuptools.file_finders]
817 svn_cvs = setuptools.command.sdist:_default_revctrl
818hunk ./setuptools/__init__.py 10
819 from distutils.util import convert_path
820 import os.path
821 
822-__version__ = '0.7a1'
823+__version__ = '0.6c16dev'
824 __all__ = [
825     'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require',
826     'find_packages'
827hunk ./setuptools/command/__init__.py 5
828     'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop',
829     'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts',
830     'sdist', 'setopt', 'test', 'upload', 'install_egg_info', 'install_scripts',
831-    'register', 'bdist_wininst',
832+    'register', 'bdist_wininst', 'scriptsetup',
833 ]
834 
835 import sys
836hunk ./setuptools/command/build_py.py 22
837         if 'data_files' in self.__dict__: del self.__dict__['data_files']
838 
839     def run(self):
840+        self.old_run()
841+        if sys.platform == "win32":
842+            from setuptools.command.scriptsetup import do_scriptsetup
843+            do_scriptsetup()
844+
845+    def old_run(self):
846         """Build modules, packages, and copy data files to build directory"""
847         if not self.py_modules and not self.packages:
848             return
849hunk ./setuptools/command/easy_install.py 15
850 import sys, os.path, zipimport, shutil, tempfile, zipfile, re, stat, random
851 from glob import glob
852 from setuptools import Command
853+from setuptools import __version__ as setuptools_version
854 from setuptools.sandbox import run_setup
855 from distutils import log, dir_util
856 from distutils.sysconfig import get_python_lib
857hunk ./setuptools/command/easy_install.py 577
858 
859     def install_wrapper_scripts(self, dist):
860         if not self.exclude_scripts:
861-            for args in get_script_args(dist):
862+            for args in get_script_args(dist, script_dir=self.script_dir):
863                 self.write_script(*args)
864 
865 
866hunk ./setuptools/command/easy_install.py 1568
867     return executable
868 
869 
870-def get_script_args(dist, executable=sys_executable, wininst=False):
871+def get_script_args(dist, executable=sys_executable, wininst=False, script_dir=None):
872     """Yield write_script() argument tuples for a distribution's entrypoints"""
873     spec = str(dist.as_requirement())
874     header = get_script_header("", executable, wininst)
875hunk ./setuptools/command/easy_install.py 1572
876+    generated_by = "# generated by zetuptoolz %s" % (setuptools_version,)
877+
878     for group in 'console_scripts', 'gui_scripts':
879hunk ./setuptools/command/easy_install.py 1575
880-        for name,ep in dist.get_entry_map(group).items():
881-            script_text = (
882+        for name, ep in dist.get_entry_map(group).items():
883+            script_head, script_tail = ((
884                 "# EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r\n"
885hunk ./setuptools/command/easy_install.py 1578
886+                "%(generated_by)s\n"
887                 "__requires__ = %(spec)r\n"
888                 "import sys\n"
889                 "from pkg_resources import load_entry_point\n"
890hunk ./setuptools/command/easy_install.py 1583
891                 "\n"
892+            ) % locals(), (
893                 "sys.exit(\n"
894                 "   load_entry_point(%(spec)r, %(group)r, %(name)r)()\n"
895                 ")\n"
896hunk ./setuptools/command/easy_install.py 1587
897-            ) % locals()
898-            if sys.platform=='win32' or wininst:
899-                # On Windows/wininst, add a .py extension and an .exe launcher
900+            ) % locals())
901+
902+            if wininst or sys.platform == "win32":
903+                # On Windows/wininst, add a .py[w] extension. Delete any existing
904+                # -script.py[w], .exe, and .exe.manifest.
905                 if group=='gui_scripts':
906hunk ./setuptools/command/easy_install.py 1593
907-                    ext, launcher = '-script.pyw', 'gui.exe'
908-                    old = ['.pyw']
909-                    new_header = re.sub('(?i)python.exe','pythonw.exe',header)
910+                    ext = '.pyw'
911+                    old = ['','.pyw','-script.pyw','.exe','.exe.manifest']
912+                    which_python = 'pythonw.exe'
913+                    new_header = re.sub('(?i)python.exe', which_python, header)
914                 else:
915hunk ./setuptools/command/easy_install.py 1598
916-                    ext, launcher = '-script.py', 'cli.exe'
917-                    old = ['.py','.pyc','.pyo']
918-                    new_header = re.sub('(?i)pythonw.exe','python.exe',header)
919+                    ext = '.pyscript'
920+                    old = ['','.pyscript','.py','.pyc','.pyo','-script.py','.exe','.exe.manifest']
921+                    which_python = 'python.exe'
922+                    new_header = re.sub('(?i)pythonw.exe', which_python, header)
923 
924hunk ./setuptools/command/easy_install.py 1603
925-                if os.path.exists(new_header[2:-1]) or sys.platform!='win32':
926+                len_ext = len(ext)
927+                script_head += (
928+                    "# If this script doesn't work for you, make sure that the %(ext)s\n"
929+                    "# extension is included in the PATHEXT environment variable, and is\n"
930+                    "# associated with %(which_python)s in the registry.\n"
931+                    "\n"
932+                    "if sys.argv[0].endswith(%(ext)r):\n"
933+                    "    sys.argv[0] = sys.argv[0][:-%(len_ext)r]\n"
934+                    "\n"
935+                ) % locals()
936+
937+                if os.path.exists(new_header[2:-1]) or sys.platform != 'win32':
938                     hdr = new_header
939                 else:
940                     hdr = header
941hunk ./setuptools/command/easy_install.py 1618
942-                yield (name+ext, hdr+script_text, 't', [name+x for x in old])
943-                yield (
944-                    name+'.exe', resource_string('setuptools', launcher),
945-                    'b') # write in binary mode
946-                yield (name+'.exe.manifest', _launcher_manifest % (name,), 't')
947-            else:
948-                # On other platforms, we assume the right thing to do is to
949-                # just write the stub with no extension.
950-                yield (name, header+script_text)
951-
952-_launcher_manifest = """
953-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
954-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
955- <assemblyIdentity version="1.0.0.0"
956- processorArchitecture="X86"
957- name="%s.exe"
958- type="win32"/>
959-
960- <!-- Identify the application security requirements. -->
961- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
962- <security>
963- <requestedPrivileges>
964- <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
965- </requestedPrivileges>
966- </security>
967- </trustInfo>
968-</assembly>"""
969-
970-
971-
972-
973-
974-
975-
976-
977-
978-
979-
980-
981-
982-
983-
984-
985-
986-
987-
988+                yield (name+ext, hdr + script_head + script_tail, 't', [name+x for x in old])
989 
990hunk ./setuptools/command/easy_install.py 1620
991+                # Also write a shell script that runs the .pyscript, for cygwin.
992+                #
993+                # We can't use a Python script, because the Python interpreter that we want
994+                # to use is the native Windows one, which won't understand a cygwin path.
995+                # Windows paths written with forward slashes are universally understood
996+                # (by native Python, cygwin Python, and bash), so we'll use 'cygpath -m' to
997+                # get the directory from which the script was run in that form. This makes
998+                # the cygwin script and .pyscript position-independent, provided they are
999+                # in the same directory.
1000 
1001hunk ./setuptools/command/easy_install.py 1630
1002+                def quote_path(s):
1003+                    return "\\'".join("'" + p.replace('\\', '/') + "'" for p in s.split("'"))
1004 
1005hunk ./setuptools/command/easy_install.py 1633
1006+                pyscript = quote_path("/"+name+ext)
1007+                python_path = quote_path(sys.executable)
1008+                shell_script_text = (
1009+                    '#!/bin/sh\n'
1010+                    '%(generated_by)s\n'
1011+                    '\n'
1012+                    'ScriptDir=`cygpath -m "$0/.."`\n'
1013+                    '%(python_path)s "${ScriptDir}"%(pyscript)s "$@"\n'
1014+                ) % locals()
1015+                yield (name, shell_script_text, 'b')
1016+            else:
1017+                # On other platforms, we assume the right thing to do is to
1018+                # just write the stub with no extension.
1019+                yield (name, header + script_head + script_tail)
1020 
1021 
1022 def rmtree(path, ignore_errors=False, onerror=auto_chmod):
1023hunk ./setuptools/command/install.py 52
1024         self.path_file = None
1025         self.extra_dirs = ''
1026 
1027-
1028     def run(self):
1029hunk ./setuptools/command/install.py 53
1030+        self.old_run()
1031+        if sys.platform == "win32":
1032+            from setuptools.command.scriptsetup import do_scriptsetup
1033+            do_scriptsetup()
1034+
1035+    def old_run(self):
1036         # Explicit request for old-style install?  Just do it
1037         if self.old_and_unmanageable or self.single_version_externally_managed:
1038             return _install.run(self)
1039hunk ./setuptools/command/install.py 83
1040         else:
1041             self.do_egg_install()
1042 
1043-
1044-
1045-
1046-
1047-
1048     def do_egg_install(self):
1049 
1050         easy_install = self.distribution.get_command_class('easy_install')
1051hunk ./setuptools/tests/win_script_wrapper.txt 1
1052-Python Script Wrapper for Windows
1053-=================================
1054+Python Scripts on Windows
1055+=========================
1056 
1057hunk ./setuptools/tests/win_script_wrapper.txt 4
1058-setuptools includes wrappers for Python scripts that allows them to be
1059-executed like regular windows programs.  There are 2 wrappers, once
1060-for command-line programs, cli.exe, and one for graphica programs,
1061-gui.exe.  These programs are almost identical, function pretty much
1062-the same way, and are generated from the same source file.  The
1063-wrapper programs are used by copying them to the directory containing
1064-the script they are to wrap and with the same name as the script they
1065-are to wrap.  In the rest of this document, we'll give an example that
1066-will illustrate this.
1067+zetuptoolz can install Python scripts in such a way that they can be
1068+run from a Windows Command Prompt, a Cygwin shell, or a Windows shortcut.
1069+It implements this in a different way to setuptools (which used .exe
1070+wrappers as described at
1071+<http://svn.python.org/projects/sandbox/trunk/setuptools/setuptools/tests/win_script_wrapper.txt>).
1072 
1073hunk ./setuptools/tests/win_script_wrapper.txt 10
1074-Let's create a simple script, foo-script.py:
1075+There are two kinds of scripts -- command-line and graphical.
1076+Command-line scripts have a .pyscript extension, which should be
1077+associated with python.exe. Graphical scripts have a .pyw extension,
1078+which should be associated with pythonw.exe. The .pyscript and .pyw
1079+extensions should be listed in the PATHEXT environment variable.
1080 
1081hunk ./setuptools/tests/win_script_wrapper.txt 16
1082-    >>> import os, sys, tempfile
1083-    >>> from setuptools.command.easy_install import nt_quote_arg
1084-    >>> sample_directory = tempfile.mkdtemp()
1085-    >>> open(os.path.join(sample_directory, 'foo-script.py'), 'w').write(
1086-    ... """#!%(python_exe)s
1087-    ... import sys
1088-    ... input = repr(sys.stdin.read())
1089-    ... print sys.argv[0][-14:]
1090-    ... print sys.argv[1:]
1091-    ... print input
1092-    ... if __debug__:
1093-    ...     print 'non-optimized'
1094-    ... """ % dict(python_exe=nt_quote_arg(sys.executable)))
1095+The reason for introducing a new .pyscript extension is to work around
1096+a problem with naming conflicts between modules and scripts. When Python
1097+runs a script file, it adds the parent directory of that file to the
1098+start of the sys.path. So any scripts in that directory that have the
1099+same name as a module, will shadow the module and be imported in
1100+preference to it. This would particularly be a problem when running scripts
1101+installed to <pythondir>\Scripts. Using a .pyscript extension still
1102+allows the script to be run, but prevents it from being unintentionally
1103+imported.
1104 
1105hunk ./setuptools/tests/win_script_wrapper.txt 26
1106-Note that the script starts with a Unix-style '#!' line saying which
1107-Python executable to run.  The wrapper will use this to find the
1108-correct Python executable.
1109+First let's install zetuptoolz (we could also just build it):
1110 
1111hunk ./setuptools/tests/win_script_wrapper.txt 28
1112-We'll also copy cli.exe to the sample-directory with the name foo.exe:
1113+    C:\> cd path\to\zetuptoolz
1114 
1115hunk ./setuptools/tests/win_script_wrapper.txt 30
1116-    >>> import pkg_resources
1117-    >>> open(os.path.join(sample_directory, 'foo.exe'), 'wb').write(
1118-    ...     pkg_resources.resource_string('setuptools', 'cli.exe')
1119-    ...     )
1120+    C:\path\to\zetuptoolz> python setup.py install
1121+    ...
1122+    Setting up environment to run scripts...
1123+    Done: associate the .pyscript extension with Python.File.
1124+    Done: add .pyscript to the user environment variable PATHEXT.
1125+    Done: add .pyw to the user environment variable PATHEXT.
1126 
1127hunk ./setuptools/tests/win_script_wrapper.txt 37
1128-When the copy of cli.exe, foo.exe in this example, runs, it examines
1129-the path name it was run with and computes a Python script path name
1130-by removing the '.exe' suffic and adding the '-script.py' suffix. (For
1131-GUI programs, the suffix '-script-pyw' is added.)  This is why we
1132-named out script the way we did.  Now we can run out script by running
1133-the wrapper:
1134+    Changes have been made to the persistent environment, but not
1135+    in this Command Prompt. Running installed Python scripts will
1136+    only work from new Command Prompts opened from now on.
1137 
1138hunk ./setuptools/tests/win_script_wrapper.txt 41
1139-    >>> import os
1140-    >>> input, output = os.popen4('"'+nt_quote_arg(os.path.join(sample_directory, 'foo.exe'))
1141-    ...               + r' arg1 "arg 2" "arg \"2\\\"" "arg 4\\" "arg5 a\\b"')
1142-    >>> input.write('hello\nworld\n')
1143-    >>> input.close()
1144-    >>> print output.read(),
1145-    \foo-script.py
1146-    ['arg1', 'arg 2', 'arg "2\\"', 'arg 4\\', 'arg5 a\\\\b']
1147-    'hello\nworld\n'
1148-    non-optimized
1149+If you had built or installed it or a previous version (since 0.6c16dev)
1150+before, this would have said something like:
1151 
1152hunk ./setuptools/tests/win_script_wrapper.txt 44
1153-This example was a little pathological in that it exercised windows
1154-(MS C runtime) quoting rules:
1155+    Setting up environment to run scripts...
1156+    Already done: associate the .pyscript extension with Python.File.
1157+    Already done: add .pyscript to the user environment variable PATHEXT.
1158+    Already done: add .pyw to the user environment variable PATHEXT.
1159 
1160hunk ./setuptools/tests/win_script_wrapper.txt 49
1161-- Strings containing spaces are surrounded by double quotes.
1162+(In fact zetuptoolz will re-check that the .pyscript association and
1163+PATHEXT variable are set up correctly when you build or install *any*
1164+distribution with it.)
1165 
1166hunk ./setuptools/tests/win_script_wrapper.txt 53
1167-- Double quotes in strings need to be escaped by preceding them with
1168-  back slashes.
1169+A zetuptoolz-created command-line script -- say mycmd.pyscript -- typically
1170+looks something like this:
1171 
1172hunk ./setuptools/tests/win_script_wrapper.txt 56
1173-- One or more backslashes preceding double quotes quotes need to be
1174-  escaped by preceding each of them them with back slashes.
1175+    #!c:\Python26\python.exe
1176+    # EASY-INSTALL-ENTRY-SCRIPT: 'application==1.0','console_scripts','mycmd'
1177+    # generated by zetuptoolz 0.6c16dev
1178+    __requires__ = 'application==1.0'
1179+    import sys, site
1180+    from pkg_resources import load_entry_point
1181 
1182hunk ./setuptools/tests/win_script_wrapper.txt 63
1183+    # If this script doesn't work for you, make sure that the .pyscript
1184+    # extension is included in the PATHEXT environment variable, and is
1185+    # associated with python.exe in the registry.
1186 
1187hunk ./setuptools/tests/win_script_wrapper.txt 67
1188-Specifying Python Command-line Options
1189---------------------------------------
1190+    if sys.argv[0].endswith('.pyscript'):
1191+        sys.argv[0] = sys.argv[0][:-9]
1192 
1193hunk ./setuptools/tests/win_script_wrapper.txt 70
1194-You can specify a single argument on the '#!' line.  This can be used
1195-to specify Python options like -O, to run in optimized mode or -i
1196-to start the interactive interpreter.  You can combine multiple
1197-options as usual. For example, to run in optimized mode and
1198-enter the interpreter after running the script, you could use -Oi:
1199+    sys.exit(
1200+      load_entry_point('application==1.0', 'console_scripts', 'mycmd')()
1201+    )
1202 
1203hunk ./setuptools/tests/win_script_wrapper.txt 74
1204-    >>> open(os.path.join(sample_directory, 'foo-script.py'), 'w').write(
1205-    ... """#!%(python_exe)s  -Oi 
1206-    ... import sys
1207-    ... input = repr(sys.stdin.read())
1208-    ... print sys.argv[0][-14:]
1209-    ... print sys.argv[1:]
1210-    ... print input
1211-    ... if __debug__:
1212-    ...     print 'non-optimized'
1213-    ... sys.ps1 = '---'
1214-    ... """ % dict(python_exe=nt_quote_arg(sys.executable)))
1215+(The Unix-style '#!' line isn't really necessary; in fact it will be
1216+ignored if we run this from a Command Prompt, although it may help if the
1217+user is using a Unix-style shell.)
1218 
1219hunk ./setuptools/tests/win_script_wrapper.txt 78
1220-    >>> input, output = os.popen4(nt_quote_arg(os.path.join(sample_directory, 'foo.exe')))
1221-    >>> input.close()
1222-    >>> print output.read(),
1223-    \foo-script.py
1224-    []
1225-    ''
1226-    ---
1227+Suppose that 'mycmd' just prints out sys.argv. In that case, if we run it
1228+we'll get:
1229 
1230hunk ./setuptools/tests/win_script_wrapper.txt 81
1231-Testing the GUI Version
1232------------------------
1233+    C:\> mycmd.pyscript arg1 "arg 2" "arg \"2\\\"" "arg 4\" "still4 arg5\b"
1234+    ['arg1', 'arg 2', 'arg "2\\"', 'arg 4" still4', 'arg5\\b']
1235 
1236hunk ./setuptools/tests/win_script_wrapper.txt 84
1237-Now let's test the GUI version with the simple scipt, bar-script.py:
1238+Omitting the .pyscript extension has the same effect:
1239 
1240hunk ./setuptools/tests/win_script_wrapper.txt 86
1241-    >>> import os, sys, tempfile
1242-    >>> from setuptools.command.easy_install import nt_quote_arg
1243-    >>> sample_directory = tempfile.mkdtemp()
1244-    >>> open(os.path.join(sample_directory, 'bar-script.pyw'), 'w').write(
1245-    ... """#!%(python_exe)s
1246-    ... import sys
1247-    ... open(sys.argv[1], 'wb').write(repr(sys.argv[2]))
1248-    ... """ % dict(python_exe=nt_quote_arg(sys.executable)))
1249+    C:\> mycmd arg1 "arg 2" "arg \"2\\\"" "arg 4\" "still4 arg5\b"
1250+    ['arg1', 'arg 2', 'arg "2\\"', 'arg 4" still4', 'arg5\\b']
1251 
1252hunk ./setuptools/tests/win_script_wrapper.txt 89
1253-We'll also copy gui.exe to the sample-directory with the name bar.exe:
1254+Note that the arguments are parsed only by cmd.exe, ensuring exact
1255+compatibility with Windows quoting conventions.
1256 
1257hunk ./setuptools/tests/win_script_wrapper.txt 92
1258-    >>> import pkg_resources
1259-    >>> open(os.path.join(sample_directory, 'bar.exe'), 'wb').write(
1260-    ...     pkg_resources.resource_string('setuptools', 'gui.exe')
1261-    ...     )
1262+Unicode arguments to the script are preserved. However, they cannot be read
1263+from sys.argv due to <http://bugs.python.org/issue2128> (a workaround is
1264+given there).
1265 
1266hunk ./setuptools/tests/win_script_wrapper.txt 96
1267-Finally, we'll run the script and check the result:
1268+GUI scripts work in an identical way, but use the .pyw extension and are
1269+associated with pythonw.exe.
1270 
1271hunk ./setuptools/tests/win_script_wrapper.txt 99
1272-    >>> import os
1273-    >>> input, output = os.popen4('"'+nt_quote_arg(os.path.join(sample_directory, 'bar.exe'))
1274-    ...               + r' "%s" "Test Argument"' % os.path.join(sample_directory, 'test_output.txt'))
1275-    >>> input.close()
1276-    >>> print output.read()
1277-    <BLANKLINE>
1278-    >>> print open(os.path.join(sample_directory, 'test_output.txt'), 'rb').read()
1279-    'Test Argument'
1280 
1281hunk ./setuptools/tests/win_script_wrapper.txt 100
1282+Cygwin shell
1283+------------
1284 
1285hunk ./setuptools/tests/win_script_wrapper.txt 103
1286-We're done with the sample_directory:
1287-
1288-    >>> import shutil
1289-    >>> shutil.rmtree(sample_directory)
1290+When running a script from the Windows Command Prompt, or other Windows
1291+shells that honour PATHEXT, the .pyscript wrapper is sufficient. However,
1292+the Cygwin bash shell does not honour PATHEXT.
1293 
1294hunk ./setuptools/tests/win_script_wrapper.txt 107
1295+So that Cygwin shell users do not have to type the .pyscript extension,
1296+we also write a shell script (with no extension and a "#!/bin/sh" shebang
1297+line) alongside the .pyscript file. This script invokes the Python interpreter
1298+(normally the one that ran easy_install, or "python.exe" in the case of a
1299+cross-installation for a Windows target), giving the .pyscript name and
1300+passing on its own arguments.
1301
1302Context:
1303
1304[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).
1305david-sarah@jacaranda.org**20100731025037
1306 Ignore-this: 36c0c6788fd65bf87e681c15072c721f
1307] 
1308[merge changes and remove unused import
1309zooko@zooko.com**20100523175508
1310 Ignore-this: adbcb7e313eb9d9bdcae2fe7f3dbbe6f
1311] 
1312[Fix wrong keyword argument for specifying test tunner to unittest
1313phillip.eby**20100312184011
1314 Ignore-this: fbdaecd6c31ed8ee9dc809ecfffdc5ac
1315] 
1316[Yet another Sourceforge download fix
1317phillip.eby**20100201163817
1318 Ignore-this: 2ffaaf67be7073140918fc7b8a291015
1319] 
1320[Fix incorrect error message/traceback when no download
1321phillip.eby**20091105155809
1322 Ignore-this: 3311bc52a624fe9b71144e9ade5152d3
1323 is found.
1324] 
1325[Fix for issue 88
1326phillip.eby**20091028170953
1327 Ignore-this: 2869fb03fe37ee5c67f93304ea4ece74
1328] 
1329[Fix the elusive "double upload bdist_wininst" bug
1330phillip.eby**20091019214636
1331 Ignore-this: c659bd76108f664448892933a0854376
1332] 
1333[Fix lost launcher changes, string.split().
1334phillip.eby**20091019210206
1335 Ignore-this: a232501033c73ebabb57920e21ce26a3
1336] 
1337[Add a better link to the files
1338phillip.eby**20091014025059
1339 Ignore-this: 3a11d77458ee07d65fcc89be710a7246
1340] 
1341[Fixes for Windwos 64 and Vista UAC errors
1342phillip.eby**20091012202033
1343 Ignore-this: 8075132bffa551a7b104790b174306b8
1344] 
1345[Major updates and fixes include:
1346phillip.eby**20091012195846
1347 Ignore-this: 221fc598c157bb09110610c61606e477
1348 
1349 * Fix for the Python 2.6.3 build_ext API change
1350 * Support for the most recent Sourceforge download link insanity
1351 * Support for SVN 1.6
1352 * Stop crashing on certain types of HTTP error
1353 * Stop re-trying URLs that already failed retrieval once
1354 * Fixes for various dependency management problems such as looping
1355   builds, re-downloading packages already present on sys.path (but not
1356   in a registered "site" directory), and randomly preferring local -f
1357   packages over local installed packages
1358 * Prevent lots of spurious "already imported from another path" warnings
1359   (e.g. when pkg_resources is imported late)
1360 * Ensure C libraries (as opposed to extensions) are also built when
1361   doing bdist_egg
1362 * Fixed running the "test" command under Python 2.6+
1363 
1364 Other changes:
1365 * Misc. documentation fixes
1366 * Improved Jython support
1367 * Fewer warnings under Python 2.6+
1368 * Warn when 'packages' uses paths instead of package names (because it
1369   causes other problems, like spurious "already imported" warnings)
1370 * Stop using /usr/bin/sw_vers on Mac OS (replaced w/'platform' module
1371   calls)
1372 
1373 Note: This is NOT a merge from Distribute; upon review, many of the
1374 tracker-submitted patches used as a basis for forking were incorrect,
1375 incomplete, introduced new bugs, or were not addressing the root
1376 causes.  (E.g., one of the changes in this patch fixes three superficially
1377 unrelated issues in the setuptools bug tracker.)  Careful review will be
1378 required if you  want to merge this work back into Distribute.
1379] 
1380[Fixes for Windwos 64 and Vista UAC errors
1381phillip.eby**20091012202033
1382 Ignore-this: d09ca72d9c23a001579fb5bf84a28f9f
1383] 
1384[VERSION=0.6c14dev
1385zooko@zooko.com**20090724121405
1386 Ignore-this: 412b004941e16aceb5a343bdb9099f62
1387] 
1388[add cli.exe and gui.exe
1389zooko@zooko.com**20090724121235
1390 Ignore-this: 1eccf7f75a87956daed9668c5481aaa0
1391] 
1392[setup: VERSION=0.6c13
1393zooko@zooko.com**20090703214638
1394 Ignore-this: ee8d7e9c97e932f271fd65bd5a9274b8
1395] 
1396[manually undo the patch "Backport pkgutil, pydoc, and doctest from the 2.5 trunk to setuptools."
1397zooko@zooko.com**20090703214517
1398 Ignore-this: 993ea673533b35a6967682667d87e46d
1399] 
1400[Automatically add instdir to all_site_dirs, and go ahead and write a site.py even if it isn't on the PYTHONPATH.
1401zooko@zooko.com**20090205150048
1402 Ignore-this: 7717d45de7ea00d11ec3752507d7135a
1403 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.
1404 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:
1405 
1406 $ PYTHONPATH=./support/lib/python2.5/site-packages python ./docoolthing.py
1407 
1408 instead of by setting a persistent environment variable in their shell, like this:
1409 
1410 $ export PYTHONPATH=./support/lib/python2.5/site-packages
1411 $ python ./docoolthing.py
1412 
1413 This is the topic of http://bugs.python.org/setuptools/issue54
1414 
1415] 
1416[add sys.path to the index to search for easy_install
1417zooko@zooko.com**20090203004109
1418 Ignore-this: eac7b84940c5c290ec5f1a8931576606
1419] 
1420[hand built egg, renamed to not specify py2.5, added cli.exe and gui.exe, and about to add _pkgutil.py
1421zooko@zooko.com**20081025151204
1422 Ignore-this: a4b1837fa6429dcffa4996b129a19352
1423] 
1424[change exception into warning when target install dir isn't pth-capable
1425zooko@zooko.com**20081115190501
1426 Ignore-this: 5965276b28210180712c5370954cd550
1427 This eases the common use case of "./setup.py install --prefix=foo"
1428 followed by some other mechanism to make sure that ./foo/... is
1429 importable, and makes setuptools behave more like distutils in this regard.
1430 
1431] 
1432[try to mkdir the install directory
1433zooko@zooko.com**20081115190420
1434 Ignore-this: 4454e4a559e4114de0d96ac5b351e2ad
1435 This eases the common use case of "./setup.py install --prefix=somedir"
1436 and makes setuptools behave more like distutils in this case.
1437] 
1438[leave the PYTHONPATH dirs at the front of the sys.path
1439zooko@zooko.com**20081115185932
1440 Ignore-this: 494791a9f73bdf3ebf08657e6d7d98fb
1441 This is in accordance with
1442 http://www.python.org/doc/2.5.2/inst/search-path.html , which says "The
1443 PYTHONPATH variable can be set to a list of paths that will be added to
1444 the beginning of sys.path.", and it resolves an objection many people
1445 have which impels them to ban setuptools from systems they administrate.
1446 
1447] 
1448[call it 0.6c10dev
1449zooko@zooko.com**20081025122705
1450 Ignore-this: 48835c56f9a7015c829480e160b74e01
1451] 
1452[Keep site directories (e.g. site-packages) from being included in
1453phillip.eby**20080924172009
1454 .pth files.
1455] 
1456[Fix for http://bugs.python.org/setuptools/issue39
1457phillip.eby**20080924170535] 
1458[Doc typo fix
1459phillip.eby**20080924165637] 
1460[Fix for http://bugs.python.org/setuptools/issue47 - more md5 usage
1461phillip.eby**20080924165229] 
1462[Fix for http://bugs.python.org/setuptools/issue27 (Jython shebang
1463phillip.eby**20080924164220
1464 lines)
1465] 
1466[Fix for http://bugs.python.org/setuptools/issue37 - missing
1467phillip.eby**20080911154326
1468 __loader__ running under Google App Engine.
1469] 
1470[Added 'test_runner'.  (Note: this is a new feature and should not
1471phillip.eby**20080821215416
1472 be backported to the 0.6 branch.)
1473] 
1474[Ensure that _full_name is set on all shared libs before extensions
1475phillip.eby**20080821213758
1476 are checked for shared lib usage.  (problem reported by Andi Vajda)
1477] 
1478[Fix for http://bugs.python.org/setuptools/issue34
1479phillip.eby**20080821192547] 
1480[Fix for http://bugs.python.org/setuptools/issue9
1481phillip.eby**20080821191924] 
1482[Fix for http://bugs.python.org/setuptools/issue29
1483phillip.eby**20080821190929] 
1484[Fix for http://bugs.python.org/setuptools/issue11
1485phillip.eby**20080821185402] 
1486[Candidate fix for http://bugs.python.org/setuptools/issue20
1487phillip.eby**20080821184159] 
1488[Fix for http://bugs.python.org/setuptools/issue31
1489phillip.eby**20080821183437] 
1490[Fix for http://bugs.python.org/setuptools/issue16
1491phillip.eby**20080821181703] 
1492[Fix for http://bugs.python.org/setuptools/issue5
1493phillip.eby**20080821175952] 
1494[Fix for http://bugs.python.org/setuptools/issue7
1495phillip.eby**20080821175532] 
1496[Enhanced error message per http://bugs.python.org/setuptools/issue28
1497phillip.eby**20080821174725] 
1498[Fix for http://bugs.python.org/setuptools/issue23
1499phillip.eby**20080821174205] 
1500[Misc. documentation updates/fixes
1501phillip.eby**20080821172042] 
1502[More SVN 1.5 fixing
1503phillip.eby**20080724211623] 
1504[Support subversion 1.5
1505phillip.eby**20080716135651] 
1506[Support installing pywin32 as an egg, albeit without registering
1507phillip.eby**20080310162225
1508 COM support, shortcuts, etc.
1509] 
1510[Fixed issues with empty resource names for resource_listdir et al.
1511phillip.eby**20080215234944] 
1512[Fixed missing import
1513phillip.eby**20080215234919] 
1514[Warn if a namespace package is declared, but its parent
1515phillip.eby**20080214211714
1516 package is not.
1517] 
1518[Support upgrading existing setuptools when run from a setup.py
1519phillip.eby**20080214193528
1520 script (but not during easy_install, unfortunately).
1521] 
1522[Fix interactions between the various "require" options,
1523phillip.eby**20080119024651
1524 so that downloads aren't repeated and needed eggs are
1525 always installed, even if they were downloaded to the
1526 setup directory already.
1527] 
1528[chmod/test cleanups and Jython support.
1529phillip.eby**20080118214709] 
1530[Update Pyrex/swig_sources workaround for newer Pyrex versions
1531phillip.eby**20080115175223] 
1532[Fix not picking up dependency links from recursive dependencies.
1533phillip.eby**20080115174417] 
1534[Fix gui.exe launcher issue reported by Alexander Michael and Robin Dunn.
1535phillip.eby**20080103234438] 
1536[Fix dependency on Python 2.5
1537phillip.eby**20071026022031] 
1538[Prevent --help-commands and other junk from showing under
1539phillip.eby**20071008114807
1540 Python 2.5 when running "easy_install" directly.
1541] 
1542[Fix cross-platform line-end problem with SOURCES.txt: distutils
1543phillip.eby**20070926170339
1544 doesn't expect manifest files to be shipped across platforms.
1545] 
1546[Remove all references to the Cheese Shop, and switch to using
1547phillip.eby**20070904155318
1548 the new PyPI "/simple" REST API.
1549] 
1550[Fix import problems with system-installed nested namespace packages,
1551phillip.eby**20070904040757
1552 due to the parent package not having the child package as an attribute.
1553] 
1554[Fix precedence issue between .egg and .egg-info packages
1555phillip.eby**20070904035125
1556 when both are installed in site-packages.
1557] 
1558[Fix downloading from ftp: URLs (which don't have a content-type).
1559phillip.eby**20070824031432] 
1560[Fix a problem with the findall() fix.  :(
1561phillip.eby**20070712173106] 
1562[Fix distutils.filelist.findall() crashing on broken symlinks.  Fix
1563phillip.eby**20070711173402
1564 egg_info failures on new, uncommitted SVN directories.
1565] 
1566[Misc. fixes:
1567phillip.eby**20070531172056
1568 
1569 * Don't treat directories with a '.' in the name as packages
1570 * Don't include ez_setup in find_packages()
1571 * HTML-decode URLs scraped from web pages (d'oh!)
1572 * Fix cache dir defaults on Windows when multiple env vars used
1573 * Doc updates
1574] 
1575[Setting svn:eol properties everywhere where they weren't set yet.
1576guido.van.rossum**20070425195151] 
1577[Changed setuptools.package_index.PackageIndex.open_url to include the
1578jim.fulton**20070309161241
1579 url in the exception.
1580] 
1581[Fix problem activating dependencies for tests
1582phillip.eby**20070302012227] 
1583[Fix "test" command possibly failing if an older version of the project
1584phillip.eby**20070224220920
1585 being tested is installed on sys.path ahead of the test source directory.
1586] 
1587[Add --local-snapshots-ok flag, to allow building eggs from projects
1588phillip.eby**20070223202729
1589 installed using "setup.py develop".
1590] 
1591[Get rid of 'sets' module usage under Python 2.4+, so that no warnings
1592phillip.eby**20070223192457
1593 are issued by Python 2.6.
1594] 
1595[Indicate when dependency processing is finished, so that you can tell
1596phillip.eby**20070223192254
1597 which dependencies go with what.  (Suggested by Ian Bicking)
1598] 
1599[Respect possible entry point override of 'easy_install' command.
1600phillip.eby**20070220224540] 
1601[Fix error if script contains null byte.
1602phillip.eby**20070217175345] 
1603[Internals updated for relative .egg-link support
1604phillip.eby**20070215193702] 
1605[Support .egg-link paths being relative
1606phillip.eby**20070215193508] 
1607[Add --egg-path option to force .egg-link files to use relative paths
1608phillip.eby**20070215191941
1609 (allowing them to be shared across platforms on a networked drive).
1610] 
1611[Ensure extracted libraries have correct permissions on Posix systems
1612phillip.eby**20070208200816
1613 (e.g. Cygwin, which is where I found the problem.)
1614] 
1615[Match Python 2.5 pydoc
1616phillip.eby**20070206125526] 
1617[Fix script language detection so that scripts built on Windows are
1618phillip.eby**20070201195949
1619 correctly identified as still being Python code!
1620] 
1621[Fixed mangling line endings when an old-style source script came from
1622phillip.eby**20070201185706
1623 Windows.
1624] 
1625[Fix #! parsing problems w/whitespace in quoted strings or at the end
1626phillip.eby**20070124205726
1627 of the #! line.
1628] 
1629[If a page can't be spidered, warn and ignore rather than aborting.
1630phillip.eby**20070124153900] 
1631[Fix "bashism" in eggsecutable header.
1632phillip.eby**20070124152212] 
1633[Incorporate README fix from 0.6 branch.
1634phillip.eby**20070124152148] 
1635[Workaround for Python 2.5 distutils bug: when bdist_wininst files are
1636phillip.eby**20070109192242
1637 uploaded, they are marked as suitable for "any" Python version, even if
1638 an explicit --target-version was specified.  (This needs to be fixed in
1639 the distutils too.)
1640] 
1641[Fix not making Cygwin .dll's executable when installing in non-zip-safe
1642phillip.eby**20070109185723
1643 mode.
1644] 
1645[Argh, again.
1646phillip.eby**20070109182136] 
1647[Backport from branch.
1648phillip.eby**20070109181432] 
1649[Don't double-upload .exe files under Python 2.5.  :(
1650phillip.eby**20070109180831] 
1651[Formatting fixes for README
1652phillip.eby**20070109175934] 
1653[Fix not generating correct .pth for parent namespace packages when
1654phillip.eby**20070105181531
1655 installing --single-version-externally-managed.
1656] 
1657[Add Basic Auth support for http URLs with embedded credentials.  If an
1658phillip.eby**20061230160314
1659 authenticated page contains links to the same protocol and host, those
1660 links should inherit the same credentials.
1661] 
1662[Fix os.open() sandboxing code that refused anything but read-only access.
1663phillip.eby**20061230030609] 
1664[Switch default package-index to cheeseshop.python.org, and make
1665phillip.eby**20061229175025
1666 setuptools' home page its cheeseshop page.
1667] 
1668[Whoops; dupes were already taken care of elsewhere.
1669phillip.eby**20061229174103] 
1670[Overhaul Windows script wrappers to support bdist_wininst better. 
1671phillip.eby**20061229173314
1672 Scripts installed with bdist_wininst will always use #!python.exe or
1673 #!pythonw.exe as the executable name, and the wrappers will look for the
1674 executable in the script's parent directory.  Since bdist_wininst
1675 scripts are installed to Python2X/Scripts, this will look for
1676 Python2X/python.exe.  Scripts installed by easy_install, however, will
1677 still use an absolute executable path.  Also fixed: some egg<->exe
1678 roundtripping issues, and script #! lines on Windows can now have an
1679 arbitrary number of arguments following the Python exe name, and the 
1680 exe name is quoted if necessary, following the MS command line parsing
1681 rules.
1682] 
1683[Partial support for cross-platform generation of bdist_wininst .exe's.
1684phillip.eby**20061229012949
1685 Unfortunately, bdist_wininst doesn't fix up #! lines, so python.exe or
1686 pythonw.exe have to be on PATH for generated scripts to work.  This
1687 could probably be fixed up with a post-install script, but that's a
1688 job for another day.
1689] 
1690[Work around a distutils bdist_wininst bug: if the user has specified an
1691phillip.eby**20061229005834
1692 --install-lib via a configuration file, the path is hardcoded into the
1693 .exe file in place of PLATLIB/ or PURELIB/.  (This bug should also be
1694 fixed in distutils' bdist_wininst!)
1695] 
1696[Fix import problem for bdist_rpm w/Python<2.5
1697phillip.eby**20061229004032] 
1698[Removed all special support for Sourceforge mirrors, since SF finally
1699phillip.eby**20061229003104
1700 replaced their crazy mirror system with something sane.
1701] 
1702[New installation instructions and credits
1703phillip.eby**20061229000623] 
1704[Fix problem w/' ' in sys.executable on Windows.
1705phillip.eby**20061201033900] 
1706[Fixed not allowing os.open() of paths outside the sandbox, even if they
1707phillip.eby**20061024182935
1708 are opened read-only (e.g. /dev/urandom).
1709] 
1710[Use cross-platform relative paths in .pth if target is anywhere inside the
1711phillip.eby**20060929192410
1712 .pth file's directory.
1713] 
1714[Fix problem generating "eggsecutable" header if dist/ dir doesn't exst yet.
1715phillip.eby**20060928044752] 
1716[Allow explicit selection of Sourceforge mirror(s) with --sf-mirror, and
1717phillip.eby**20060927015648
1718 further refine download/retry algorithm.
1719] 
1720[Should've used distutils.log.warn instead of warnings.warn
1721phillip.eby**20060926201505] 
1722[Handle empty revision numbers in SVN 1.4 "entries" format
1723phillip.eby**20060926161741] 
1724[Fix SF download problems when server returns HTML instead of a 404.  Use
1725phillip.eby**20060925212419
1726 sf-mirrors.telecommunity.com as a fallback to get SF mirror info if the
1727 first dl.sourceforge.net attempt doesn't work.
1728] 
1729[Fix "dev" versions being considered newer than release candidates.  :(
1730phillip.eby**20060925175846] 
1731[Add support for "eggsecutable" headers: a /bin/sh script that is prepended
1732phillip.eby**20060922000356
1733 to an .egg file to allow it to be run as a script on Unix-ish platforms.
1734 (This is mainly so that setuptools itself can have a single-file installer
1735 on Unix, without doing multiple downloads, dealing with firewalls, etc.)
1736] 
1737[Fix broken imports.
1738phillip.eby**20060921222831] 
1739[Fix bdist_wininst files not being uploaded by "upload"
1740phillip.eby**20060921221340] 
1741[Support uploading bdist_rpm files on older Python versions (2.3/2.4)
1742phillip.eby**20060921215859] 
1743[Fix easy_install not recognizing win32.exe files that include a custom bitmap.
1744phillip.eby**20060921205907] 
1745[Retain 2.3/2.4 compatibility as well...
1746phillip.eby**20060920202057] 
1747[Python 2.5 compatibility fix
1748phillip.eby**20060920201100] 
1749[Support svn 1.4 working copy format
1750phillip.eby**20060917161854] 
1751[Prevent deprecation warnings coming from generated scripts when
1752phillip.eby**20060906205428
1753 sys.executable contains non-ASCII characters.
1754] 
1755[Make "setup.py develop" of a setuptools-using project install
1756phillip.eby**20060906195435
1757 setuptools, if needed, instead of only downloading the egg.
1758] 
1759[Don't check installation directory writability and site/.pth setup when
1760phillip.eby**20060906194339
1761 using --editable.
1762] 
1763[Support setuptools .egg being in current directory when bootstrapping on
1764phillip.eby**20060906181013
1765 an offline machine.  Output what version/location is conflicting when a
1766 newer version of setuptools is requested.
1767] 
1768[Added quoting of script arguments and extended the quoting logic to
1769jim.fulton**20060822194248
1770 handle embedded quotes.
1771 
1772 Added support for passing a single argument on the shebang line to
1773 pass things like -O and -i.
1774 
1775 Fixed bug in handling trailing whitespace in Python command.
1776] 
1777[Fix wrong Mac OS X installation paths.
1778phillip.eby**20060813174259] 
1779[Sync pkgutil from trunk
1780phillip.eby**20060728235814] 
1781[Fix a problem with eggs specified directly on PYTHONPATH on
1782phillip.eby**20060721165418
1783 case-insensitive filesystems possibly not showing up in the default
1784 working set.
1785] 
1786[Update MD5 matching for current PyPI code.  :(
1787phillip.eby**20060720204649] 
1788[Identify the setuptools version as part of the User-Agent string when
1789phillip.eby**20060720203727
1790 spidering pages or downloading files.
1791] 
1792[Make sdist-from-sdist builds keep the exact same version number, even if
1793phillip.eby**20060718164942
1794 --tag-date was used to build the original sdist.
1795] 
1796[Edit an sdist's setup.cfg to include any egg_info options that were used
1797phillip.eby**20060718163207
1798 to build it.
1799] 
1800[Restored support for extra_path when using backward compatibility mode.
1801phillip.eby**20060718155946] 
1802[Fix three problems reported by Bob Ippolito and Jim Fulton
1803phillip.eby**20060714233215] 
1804[Fix doubled --tag-build option.
1805phillip.eby**20060711194919] 
1806[Fix doc typo
1807phillip.eby**20060711194829] 
1808[Don't warn about possible misspelling if we know that a project with
1809phillip.eby**20060711182341
1810 that name does in fact exist.
1811] 
1812[Crosslink "Creating your own package index" to the new docs.
1813phillip.eby**20060711011451] 
1814[Add documentation for package index "API" (layout/content rules)
1815phillip.eby**20060711011215] 
1816[Reduce screenscraping required for a package index.  Homepage and
1817phillip.eby**20060711000616
1818 download URLs can now be marked with 'rel="download"' and
1819 'rel="homepage"' respectively, and the 'Index of Packages' string is no
1820 longer required.  Since PyPI doesn't yet support rel="" attributes, the
1821 old "<th>"-matching code remains, as does the MD5 scraping.
1822] 
1823[Allow use of file:// URLs for --index-url.
1824phillip.eby**20060710225403] 
1825[Fix not recognizing HTML 404 pages from package indexes.
1826phillip.eby**20060710215412] 
1827[Ensure that sys.path_importer_cache is updated when an existing zipfile
1828phillip.eby**20060710212514
1829 or directory is deleted.
1830] 
1831[Don't warn about missing README(.txt) unless creating an sdist
1832phillip.eby**20060710211427] 
1833[Tweak docs for subversion release stuff to make better use of new
1834phillip.eby**20060710204533
1835 options.
1836] 
1837[Update aliases for easier release using new options
1838phillip.eby**20060710203858] 
1839[Add --no-date and --no-svn-revision options to make creating release
1840phillip.eby**20060710203345
1841 snapshots easier.
1842] 
1843[Fix "register" command not necessarily reflecting build tags.
1844phillip.eby**20060710200448] 
1845[Include more detailed version ranges spec, and make Requirement.specs a
1846phillip.eby**20060710195406
1847 public/documented attribute.
1848] 
1849[Fix broken error message for socket error during upload.
1850phillip.eby**20060710194835] 
1851[Fix ftp:// directory listing URLs from causing a crash when used in the
1852phillip.eby**20060620211924
1853 URL or Download URL slot on PyPI.
1854] 
1855[Implement detection of non-Python scripts, as described in
1856phillip.eby**20060615201616
1857 http://mail.python.org/pipermail/distutils-sig/2006-June/006359.html
1858] 
1859[Allow .py files found by the include_package_data option to be
1860phillip.eby**20060609182428
1861 automatically included.  Remove duplicate data file matches if both
1862 include_package_data and package_data are used to refer to the same
1863 files.
1864] 
1865[Fix mysterious errors during initial setuptools install, caused by
1866phillip.eby**20060609175510
1867 ez_setup trying to run easy_install twice, due to a code fallthru
1868 after deleting the egg from which it's running.
1869] 
1870[Fix sometimes not detecting local packages installed outside of "site"
1871phillip.eby**20060609164203
1872 directories.
1873] 
1874[Fix local --find-links eggs not being copied except with --always-copy.
1875phillip.eby**20060607200552] 
1876[Fix bdist_egg not including files in .egg-info subdirectories.
1877phillip.eby**20060607193220] 
1878[Clarify the limitations of get_provider(packagename)
1879phillip.eby**20060607183701] 
1880[Fix a duplicate path insertion bug on case-insensitive filesystems,
1881phillip.eby**20060607182702
1882 found by Markku Mielityinen.
1883] 
1884[Fix a problem w/relative path generation if you install an egg whose
1885phillip.eby**20060530175627
1886 name begins with 'import'.
1887] 
1888[Don't make things warnings that aren't; update info text for
1889phillip.eby**20060526190328
1890 --multi-version.
1891] 
1892[Don't install or update a ``site.py`` patch when installing to a
1893phillip.eby**20060523190927
1894 ``PYTHONPATH`` directory with ``--multi-version``, unless an
1895 ``easy-install.pth`` file is already in use there.
1896] 
1897[Merge doc update from 0.6b1
1898phillip.eby**20060523190645] 
1899[Remove outdated MD5 signatures
1900phillip.eby**20060523190613] 
1901[Better ambiguity management: accept #egg name/version even if processing
1902phillip.eby**20060512221619
1903 what appears to be a correctly-named distutils file, and ignore .egg
1904 files with no '-', since valid Python .egg files always have a version
1905 number (but Scheme eggs often don't).
1906] 
1907[Python 2.5 supports -m w/zipped modules, and Python 2.3 has no -m, so
1908phillip.eby**20060428181218
1909 there's no need to treat script modules as zip-unsafe unless we're
1910 running 2.4 exactly.
1911] 
1912[Remove out-of-date info about zipfile analysis
1913phillip.eby**20060428180407] 
1914[Fix entry point parsing when a standalone module name has whitespace
1915phillip.eby**20060427180244
1916 between it and the extras.
1917] 
1918[Forgot to document script wrappers
1919phillip.eby**20060426001053] 
1920[Add "internals" documentation describing file formats, sys.path
1921phillip.eby**20060425223207
1922 manipulation, zip file issues, file naming, etc., mostly by reference to
1923 other documentation and a few distutils-sig posts.
1924] 
1925[Catch 'module' names in internal module name list as well.
1926phillip.eby**20060424205018] 
1927[Strip 'module' from the end of compiled extension modules when computing
1928phillip.eby**20060424202232
1929 the name of a .py loader/wrapper.  Python's import machinery ignores
1930 this suffix when searching for an extension module.
1931] 
1932[Recognize 'U' as a valid read-only mode for open()
1933phillip.eby**20060421173855] 
1934[Ignore bdist_dumb distributions when looking for downloads.
1935phillip.eby**20060421170643] 
1936[Support file:// links to directories in --find-links, so that
1937phillip.eby**20060419001858
1938 easy_install can build packages from local source checkouts.
1939] 
1940[Backport whitespace normalization from 2.5 trunk.
1941phillip.eby**20060419001321] 
1942[Split ``get_platform()`` into ``get_supported_platform()`` and
1943phillip.eby**20060418152706
1944 ``get_build_platform()`` to work around a Mac versioning problem that caused
1945 the behavior of ``compatible_platforms()`` to be platform specific.
1946] 
1947[Handle being run via -m with no __file__ if done from a zipfile in
1948phillip.eby**20060418042518
1949 Python 2.5.
1950] 
1951[Changes to the experimental 'Feature' feature to be compatible with
1952phillip.eby**20060418034051
1953 Python 2.5 distutils, so the tests don't bomb under 2.5
1954] 
1955[Make errors __repr__ the same as the default exception repr in Python
1956phillip.eby**20060418032910
1957 2.5, so doctests will work right.  :(
1958] 
1959[Move api_tests.txt file to tests subpackage for easier integration
1960phillip.eby**20060418030838
1961 w/stdlib test suites.
1962] 
1963[Backport pkgutil, pydoc, and doctest from the 2.5 trunk to setuptools
1964phillip.eby**20060418030316
1965 0.7 trunk.  (Sideport?)  Setuptools 0.7 will install these in place of
1966 the 2.3/2.4 versions (at least of pydoc and doctest) to let them work
1967 properly with eggs.  pkg_resources now depends on the 2.5 pkgutil, which
1968 is included here as _pkgutil, to work around the fact that some system
1969 packagers will install setuptools without overriding the stdlib modules. 
1970 But users who install their own setuptools will get them, and the system
1971 packaged people probably don't need them.
1972] 
1973[Trap absolute paths given as package_dirs, which foul up things terribly.
1974phillip.eby**20060415053216] 
1975[First round of prepping setuptools for inclusion in Python 2.5: move
1976phillip.eby**20060414193838
1977 site.py to setuptools/site-patch.py; reinstate 'python -m easy_install'
1978 support; use distutils' "upload" command when running under 2.5.
1979] 
1980[Namespace package doc tweaks.
1981phillip.eby**20060414191737] 
1982[Don't eagerly import namespace packages.  This was the big reason for
1983phillip.eby**20060414191324
1984 branching to 0.7 now, as I wanted this wart gone before anything went
1985 into Python 2.5.  But it's gone now, yay!
1986] 
1987[Bump trunk version # to 0.7a1.dev, and clear out old version history
1988phillip.eby**20060414181050
1989 from release notes.
1990] 
1991[Added automatic retry for Sourceforge mirrors.  The new download process is
1992phillip.eby**20060409202549
1993 to first just try dl.sourceforge.net, then randomly select mirror IPs and
1994 remove ones that fail, until something works.  The removed IPs stay removed
1995 for the remainder of the run.
1996] 
1997[Bump version to 0.6a12dev...  but hopefully it will in fact be 0.6b1.
1998phillip.eby**20060330003843] 
1999[Misc. doc formatting/phrasing corrections
2000phillip.eby**20060330000010] 
2001[0.6a11 release
2002phillip.eby**20060329235925] 
2003[Fix typo
2004phillip.eby**20060329234035] 
2005[Added ``test_loader`` keyword to support custom test loaders.
2006phillip.eby**20060329233241] 
2007[More docs for .py#egg and ``dependency_links``
2008phillip.eby**20060329230916] 
2009[Added ``setuptools.file_finders`` entry point group to allow implementing
2010phillip.eby**20060329222338
2011 revision control plugins.
2012] 
2013[Added ``--identity`` option to ``upload`` command.
2014phillip.eby**20060329214501] 
2015[Added ``ExtractionError`` and ``ResourceManager.extraction_error()`` so that
2016phillip.eby**20060329211122
2017 cache permission problems get a more user-friendly explanation of the
2018 problem, and so that programs can catch and handle extraction errors if they
2019 need to.
2020] 
2021[Fix a problem with the test loader finding the bundled doctest's
2022phillip.eby**20060329210943
2023 TestCase subclasses and trying to run them, too.
2024] 
2025[Implement dependency_links feature, courtesy of Tres Seaver's rough
2026phillip.eby**20060329192355
2027 draft of a patch.
2028] 
2029[Support complex .pth files in win32.exe->.egg conversion; this addition
2030phillip.eby**20060329054140
2031 lets easy_install handle pywin32...  well, almost.  You still have to
2032 deal with the "system" DLLs yourself.
2033] 
2034[Fall back to a reasonable default Sourceforge address if the machine is
2035phillip.eby**20060328230658
2036 unable to obtain the mirror IP list via DNS.
2037] 
2038[Enhanced test loader to scan packages as well as modules, and call
2039phillip.eby**20060328224057
2040 ``additional_tests()`` if present to get non-unittest tests.
2041] 
2042[Support Python 2.5, which now includes its own install_egg_info command.
2043phillip.eby**20060328190752] 
2044[Eliminate spurious warnings due to case-insensitive file systems
2045phillip.eby**20060328170706] 
2046[Fix ZipImportError when overwriting a zipfile with the same name/version
2047phillip.eby**20060324174902
2048 but different contents.
2049] 
2050[Remove use of obsolete --ignore-conflicts-at-my-risk option
2051phillip.eby**20060324174817] 
2052[Ensure SOURCES.txt references itself even the first time it is generated
2053phillip.eby**20060324173452
2054 (i.e., when it didn't exist prior to egg_info being run).
2055] 
2056[Don't generate a loader .py file in .egg file for extensions that aren't
2057phillip.eby**20060321190455
2058 actually built.  This prevents problems w/customized setups that make
2059 some extensions optional (e.g. scipy.distutils).
2060] 
2061[Use relative paths in ``.pth`` files when eggs are being installed to the
2062phillip.eby**20060320230622
2063 same directory as the ``.pth`` file.  This maximizes portability of the
2064 target directory when building applications that contain eggs.
2065] 
2066[Added ``easy_install-N.N`` script(s) for convenience when using multiple
2067phillip.eby**20060320222838
2068 Python versions.
2069] 
2070[Fix a problem with fetch() method backward compatibility.
2071phillip.eby**20060317180554] 
2072[Tweak the nspkg.pth hack to avoid creating a module if there *is* an
2073phillip.eby**20060317171619
2074 __init__.py installed.  It may be that this should check for .pyc/.pyo,
2075 but system packagers don't normally remove them.
2076] 
2077[Support namespace packages in conjunction with system packagers, by omitting
2078phillip.eby**20060317165723
2079 the installation of any ``__init__.py`` files for namespace packages, and
2080 adding a special ``.pth`` file to create a working package in ``sys.modules``.
2081 
2082] 
2083[Preserve timestamps and permissions when "unpacking" (copying) a
2084phillip.eby**20060317155205
2085 directory tree.
2086] 
2087[Added automatic handling of installation conflicts.  Eggs are now shifted to
2088phillip.eby**20060311003909
2089 the front of sys.path, in an order consistent with where they came from,
2090 making EasyInstall seamlessly co-operate with system package managers.
2091 
2092 The ``--delete-conflicting`` and ``--ignore-conflicts-at-my-risk`` options
2093 are now no longer necessary, and will generate warnings at the end of a
2094 run if you use them.
2095] 
2096[Record recent changes in the release notes.
2097phillip.eby**20060304000222] 
2098[Made ``--single-version-externally-managed`` automatic when ``--root`` is
2099phillip.eby**20060304000020
2100 used, so that most system packagers won't require special support for
2101 setuptools.
2102] 
2103[Don't recurse into subdirectories when scanning --find-links
2104phillip.eby**20060303235100] 
2105[Fix setup_requires/tests_require/etc. not using setup.cfg or other
2106phillip.eby**20060228212253
2107 config files for option defaults.
2108] 
2109[When installing setup_requires/tests_require packages, use
2110phillip.eby**20060228205927
2111 --multi-version so that '.' doesn't have to support .pth files.
2112] 
2113[Prevent failed attempts at removing MANIFEST.in from masking errors that
2114phillip.eby**20060221224458
2115 occur while reading it.
2116] 
2117[bump version #
2118phillip.eby**20060221224416] 
2119[Misc. doc fixes
2120phillip.eby**20060215151028] 
2121[0.6a10 release
2122phillip.eby**20060214210108] 
2123[Minor tweak to installation report, and add in a hook for later
2124phillip.eby**20060214205434
2125 displaying the "extras" that can be added to a package.
2126] 
2127[Fix a Windows problem when the Python executable is in a directory with
2128phillip.eby**20060214190756
2129 a ' ' in its name.
2130] 
2131[Added the ``extras`` attribute to ``Distribution``, the ``find_plugins()``
2132phillip.eby**20060214190504
2133 method to ``WorkingSet``, and the ``__add__()`` and ``__iadd__()`` methods
2134 to ``Environment``.
2135] 
2136[Don't compress eggs on Python 2.3, as a possible workaround for 64-bit
2137phillip.eby**20060213213550
2138 zipimport bug.
2139] 
2140[Added exhaustive testing of the install directory, including a spawn test
2141phillip.eby**20060213180947
2142 for ``.pth`` file support, and directory writability/existence checks.  This
2143 should virtually eliminate the need to set or configure ``--site-dirs``.
2144] 
2145[Fixed duplication of scripts inside .egg files
2146phillip.eby**20060213173242] 
2147[Expanded download message so people know what file to get, if they're
2148phillip.eby**20060212233908
2149 going to have to fetch it by hand due to restricted or nonexistent
2150 network access.
2151] 
2152[Workaround for packages that think 'version' is a number.
2153phillip.eby**20060212193217] 
2154[Misc. doc additions: callback exception handling, and an assortment of
2155phillip.eby**20060212192029
2156 tips and techniques for using easy_install.
2157] 
2158[Fixed the annoying ``--help-commands`` wart, albeit in a most
2159phillip.eby**20060210222348
2160 unfortunately kludgy fashion.
2161] 
2162[--prefix support for even more do-what-I-meanishness.  :)
2163phillip.eby**20060210220427] 
2164[Implemented DWIM for PYTHONPATH.  That is, ez_setup and easy_install
2165phillip.eby**20060210210912
2166 should now "just work" if you're using a PYTHONPATH target, and if it
2167 can't "just work", you get helpful instructions and doc links.
2168] 
2169[New version of site.py hack, for better compatibility with distros that
2170phillip.eby**20060210014904
2171 patch the stdlib site.py.  This version runs the stdlib site.py, then
2172 tries to hack sys.path back to something resembling what the old version
2173 did.  Unfortunately, this is complex since site.py and .pth files can
2174 munge the path in rather arbitrary ways, and the initial setup of
2175 sys.path is dependent on the platform and Python version.  This code has
2176 been tested on Linux, cygwin, and Windows Python, versions 2.2, 2.3, and
2177 2.4 (although not all versions on all platforms), and appears to perform
2178 as intended.
2179] 
2180[Ugh.  Rereading the Fedora patch shows my previous hack won't actually
2181phillip.eby**20060210013424
2182 accomplish anything useful.  This one should, but it needs testing by
2183 someone who actually has a Fedora 64-bit x86 setup.
2184] 
2185[Oops, bad indentation.
2186phillip.eby**20060210012622] 
2187[Tweak site_dirs detection so that distros with weird layouts (e.g.
2188phillip.eby**20060210012520
2189 /usr/lib64 patches on 64-bit Fedora) will have a better chance of
2190 working "out of the box".
2191] 
2192[The ``--find-links`` option previously scanned all supplied URLs and
2193phillip.eby**20060208054654
2194 directories as early as possible, but now only directories and direct
2195 archive links are scanned immediately.  URLs are not retrieved unless a
2196 package search was already going to go online due to a package not being
2197 available locally, or due to the use of the ``--update`` or ``-U``
2198 option.  Also, fixed the ``develop`` command ignoring ``--find-links``.
2199] 
2200[The ``--always-copy`` option now skips "system" and "development" eggs
2201phillip.eby**20060207164341
2202 since they can't be reliably copied.  Note that this may cause EasyInstall
2203 to choose an older version of a package than what you expected, or it may
2204 cause downloading and installation of a fresh version of what's already
2205 installed.
2206] 
2207[Added ``Distribution.clone()`` method, and keyword argument support to
2208phillip.eby**20060207164055
2209 other ``Distribution`` constructors.  Added the ``DEVELOP_DIST``
2210 precedence, and automatically assign it to eggs using ``.egg-info``
2211 format.
2212] 
2213[Implement more Mac OS X version handling stuff requested by Bob
2214phillip.eby**20060207133650
2215 Ippolito.
2216] 
2217[Honor get_platform() for Mac OS X if it starts with 'macosx-'
2218phillip.eby**20060204000325] 
2219[Fix missing import.
2220phillip.eby**20060127164759] 
2221[Expand ``$variables`` used in the ``--site-dirs``, ``--build-directory``,
2222phillip.eby**20060126220807
2223 ``--install-dir``, and ``--script-dir`` options, whether on the command
2224 line or in configuration files.
2225] 
2226[Randomly select a SourceForge mirror IP for each download, to work
2227phillip.eby**20060123162916
2228 around too-aggressive DNS caches on some platforms, that could otherwise
2229 result in a stuck bad IP.
2230] 
2231[Fix typo.
2232phillip.eby**20060122222244] 
2233[Scrape-proof Sourceforge mirror processing!
2234phillip.eby**20060117195659] 
2235[Fix editing error (reported by Ian Bicking).
2236phillip.eby**20060117184756] 
2237[More sourceforge changes.  :(
2238phillip.eby**20060117184446] 
2239[Tweak build configuration for OS X, based on suggestions from Michael
2240phillip.eby**20060114193455
2241 Twomey on the distutils-sig.  (It looks like we may also need to add an
2242 '-install_name' or some such to the library link step.)
2243] 
2244[Attempt to define some reasonable flags for OS X linker.
2245phillip.eby**20060114013413] 
2246[Fix broken import
2247phillip.eby**20060114001318] 
2248[Don't keep the stub .py file around, just the .pyc/.pyo.  Don't write
2249phillip.eby**20060114001203
2250 a stub to the source tree if it would overwrite an existing .py file.
2251] 
2252[Ensure installed stubs get compiled, even if there are no "pure" modules
2253phillip.eby**20060113235242
2254 present.  Also, don't bother compiling the stub prior to installation.
2255] 
2256[Write stub files correctly for build_ext --inplace
2257phillip.eby**20060113233255] 
2258[Implement LD_LIBRARY_PATH workaround stub loader
2259phillip.eby**20060113231656] 
2260[Don't write .py stubs except for actual extensions that don't already
2261phillip.eby**20060113223257
2262 have them.
2263] 
2264[Oops.
2265phillip.eby**20060113215905] 
2266[Add experimental code for wrapping relocatable shared libraries on
2267phillip.eby**20060113215712
2268 platforms that support the 'dl' module.
2269] 
2270[EasyInstall can now download bare ``.py`` files and wrap them in an egg,
2271phillip.eby**20060110040054
2272 as long as you include an ``#egg=name-version`` suffix on the URL, or if
2273 the ``.py`` file is listed as the "Download URL" on the project's PyPI
2274 page.  This allows third parties to "package" trivial Python modules
2275 just by linking to them (e.g. from within their own PyPI page or
2276 download links page).
2277 
2278] 
2279[``safe_name()`` now allows dots in project names, and there is a new
2280phillip.eby**20060110034922
2281 ``to_filename()`` function that escapes project names and versions for
2282 safe use in constructing egg filenames from a Distribution object's
2283 metadata.
2284 
2285 Note that allowing dots may now cause problems for projects with '.' in
2286 the name that were previously installed, since such projects had to be
2287 spelled with a '-' before.  The '-' name will no longer match the '.'
2288 project, and there is no real room for backward compatibility here.  :(
2289] 
2290[PyPI searches now use the exact spelling of requirements specified on
2291phillip.eby**20060107001958
2292 the command line or in a project's ``install_requires``.  Previously, a
2293 normalized form of the name was used, which could lead to unnecessary
2294 full-index searches when a project's name had an underscore (``_``)
2295 in it.
2296] 
2297[SharedLibrary -> Library.  For now, Windows libs get built as shared,
2298phillip.eby**20060106195736
2299 and other platforms get static.  :(
2300] 
2301[Remove debug print left in by mistake.
2302phillip.eby**20060105233042] 
2303[First draft of shared library build support.  See tests/shlib_test
2304phillip.eby**20060105231421
2305 for a trivial example.  This has only been tested on Windows with
2306 a MinGW compiler, and the Mac OS support isn't finished.  Testing
2307 w/other platforms+compilers would be helpful.
2308] 
2309[Bump version number to start the 0.6a10dev cycle.
2310phillip.eby**20060105000157] 
2311[0.6a9 release
2312phillip.eby**20060104175552] 
2313[Make it clearer that Requirement.parse() is the only way for users
2314phillip.eby**20060103231020
2315 to create correct Requirement instances.
2316] 
2317[Tweak windows environment variable doc, per user feedback.
2318phillip.eby**20060103213522] 
2319[Allow most commands to work with an existing .egg-info directory w/a '-'
2320phillip.eby**20051230163542
2321 in it, but warn about it and refuse to run "develop" until the existing
2322 directory is renamed.  This should allow older source distributions and
2323 checkouts to keep working with 0.6a9.
2324] 
2325[Fix unescaped '-' in .egg-info directory names.  Note that this means
2326phillip.eby**20051230161135
2327 you must rename any existing .egg-info directory inside a project that
2328 has a '-' in it!
2329] 
2330[Make the install_scripts command respect the "build_scripts -e"
2331phillip.eby**20051226192141
2332 option when installing generated scripts using the
2333 --single-version-externally-managed option.
2334] 
2335[Fix typo.  :(
2336phillip.eby**20051220171831] 
2337[Fix "legacy mode" trying to install scripts when there are none.
2338phillip.eby**20051220163129] 
2339[Changes so that upgrading an existing setuptools to a development
2340phillip.eby**20051220162150
2341 version doesn't lose its entry points by using the already-installed
2342 setuptools as a basis for generating them.
2343] 
2344[Incorporate Bob Ippolito's corrections to Mac OS X instructions.
2345phillip.eby**20051218170702] 
2346[Add notes about bdist_msi, bdist_nsi, and bdist_deb formats'
2347phillip.eby**20051216204910
2348 compatibility with setuptools.
2349] 
2350[Added "What Your Users Should Know" section, telling package developers
2351phillip.eby**20051216201501
2352 what information they should give to their users about dependencies,
2353 network access, system packaging, and other common questions or
2354 concerns.
2355] 
2356[Fix bdist_dumb support to use .egg-info instead of .egg format.
2357phillip.eby**20051216193721] 
2358[Overhaul installation docs to address frequently asked questions
2359phillip.eby**20051216184656
2360 and problems, and to document additional approaches to dealing with
2361 custom install locations.  Also, added a note about the parameters
2362 of ``use_setuptools()`` so that persons needing to distribute e.g.
2363 an in-development version of setuptools can do so.
2364] 
2365[Modify resource extraction to bypass sandbox control so that egg
2366phillip.eby**20051215194903
2367 extraction during setup runs is not restricted.
2368] 
2369[Make install_egg_info track every file it installs, not just the
2370phillip.eby**20051215181112
2371 directory it installs to.
2372] 
2373[Improve startup performance when sys.path contains a lot of eggs, by
2374phillip.eby**20051215181010
2375 caching normalized versions of path entries.  It appears that
2376 normalizing paths using os.path.realpath is extremely expensive on
2377 at least Windows.  Caching cuts the overhead by around 30X.
2378] 
2379[Added the ``exclude_package_data`` keyword to ``setup()``, allowing you
2380phillip.eby**20051215024503
2381 to trim back files included via the ``package_data`` and
2382 ``include_package_data`` options.
2383] 
2384[Support full roundtrip translation of eggs to and from ``bdist_wininst``
2385phillip.eby**20051214234722
2386 format.  Running ``bdist_wininst`` on a setuptools-based package wraps the
2387 egg in an .exe that will safely install it as an egg (i.e., with metadata
2388 and entry-point wrapper scripts), and ``easy_install`` can turn the .exe
2389 back into an ``.egg`` file or directory and install it as such.
2390 
2391 At this point, it should also be possible to "system package" any egg,
2392 complete with wrapper scripts, and at least bdist_wininst works now.
2393 More testing is needed for at least bdist_dumb and bdist_rpm.
2394] 
2395[Refactor script wrapper generation into a separate function so that it
2396phillip.eby**20051214225641
2397 can be used by the future install_scripts command to install entry point
2398 scripts in "legacy" mode.
2399] 
2400[Basic roundtripping support between bdist_wininst and eggs.  EasyInstall
2401phillip.eby**20051214204936
2402 will now recognize when a bdist_wininst .exe wraps a .egg-info style
2403 package, and reconstitute it correctly, maintaining the original zip
2404 safety flag, if applicable.  This still needs support for entrypoint
2405 scripts, though, as does the install_scripts command.
2406] 
2407[Oops.
2408phillip.eby**20051214182628] 
2409[Added a ``--single-version-externally-managed`` option to the ``install``
2410phillip.eby**20051214181011
2411 command so that you can more easily wrap a "flat" egg in a system package.
2412 Enhanced ``bdist_rpm`` so that it installs single-version eggs that
2413 don't rely on a ``.pth`` file.  The ``--no-egg`` option has been removed,
2414 since all RPMs are now built in a more backwards-compatible format.
2415 
2416 Some work is now needed for easy_install to recognize bdist_wininst
2417 .exe's that wrap these new flat eggs, as currently the .egg-info will
2418 not be recognized.
2419] 
2420[Added an internal ``install_egg_info`` command to use as part of old-style
2421phillip.eby**20051214173730
2422 ``install`` operations, that installs an ``.egg-info`` directory with the
2423 package.  This is a preliminary step to implementing "install
2424 --single-version-externally-managed" for use with bdist_* commands and
2425 Debian.
2426] 
2427[Changed ``parse_version()`` to remove dashes before pre-release tags, so
2428phillip.eby**20051206174136
2429 that ``0.2-rc1`` is considered an *older* version than ``0.2``, and is equal
2430 to ``0.2rc1``.  The idea that a dash *always* meant a post-release version
2431 was highly non-intuitive to setuptools users and Python developers, who
2432 seem to want to use ``-rc`` version numbers a lot.
2433 
2434] 
2435[Added an ``unpack_directory()`` driver to ``setuptools.archive_util``, so
2436phillip.eby**20051206031248
2437 that you can process a directory tree through a processing filter as if
2438 it were a zipfile or tarfile.
2439] 
2440[Remove unneeded code that slipped into last commit.
2441phillip.eby**20051206031122] 
2442[Added support for ``.egg-info`` files or directories with version/platform
2443phillip.eby**20051206010227
2444 information embedded in the filename, so that system packagers have the
2445 option of including ``PKG-INFO`` files to indicate the presence of a
2446 system-installed egg, without needing to use ``.egg`` directories, zipfiles,
2447 or ``.pth`` manipulation.
2448 
2449] 
2450[Made all commands that use ``easy_install`` respect its configuration
2451phillip.eby**20051201014539
2452 options, as this was causing some problems with ``setup.py install``
2453 ignoring global site-dirs settings.
2454] 
2455[Misc. doc enhancements
2456phillip.eby**20051201011803] 
2457[If more than one URL appears to describe the exact same distribution, prefer
2458phillip.eby**20051126185935
2459 the shortest one.  This helps to avoid "table of contents" CGI URLs like the
2460 ones on effbot.org.
2461] 
2462[Added ``tests_require`` keyword to ``setup()``, so that e.g. packages
2463phillip.eby**20051119203840
2464 requiring ``nose`` to run unit tests can make this dependency optional
2465 unless the ``test`` command is run.
2466] 
2467[Kludges to make building packages with '-' in their version work with
2468phillip.eby**20051119193629
2469 bdist_rpm.  This still doesn't address the issue of building RPMs that
2470 don't effectively install as multi-version eggs, but at least now
2471 building RPMs for development eggs is possible.
2472] 
2473[Added warning for namespace packages with missing ``declare_namespace()``,
2474phillip.eby**20051118172947
2475 updated docs for new policy/implementation, and explain the reasons
2476 for the change and what to do about it.
2477] 
2478[Fixed ``.pth`` file processing picking up nested eggs (i.e. ones inside
2479phillip.eby**20051118150050
2480 "baskets") when they weren't explicitly listed in the ``.pth`` file.
2481] 
2482[Add tutorial section on choosing project version numbers that
2483phillip.eby**20051118143125
2484 will work well with automated tools based on pkg_resources.
2485] 
2486[Fix .svn exclude pattern for non-Windows platforms.
2487phillip.eby**20051118131533] 
2488[Fixed ``--tag-svn-revision`` not working when run from a source
2489phillip.eby**20051118112950
2490 distribution.
2491] 
2492[Added the ``include_package_data`` keyword to ``setup()``, allowing you to
2493phillip.eby**20051118043731
2494 automatically include any package data listed in revision control or
2495 ``MANIFEST.in``.  Now projects can manage their data files and source
2496 manifests without having to maintain two ways to express the same file
2497 list.  Yay!
2498] 
2499[The ``sdist`` command no longer uses the traditional ``MANIFEST`` file to
2500phillip.eby**20051118034516
2501 create source distributions.  ``MANIFEST.in`` is still read and processed,
2502 as are the standard defaults and pruning.  But the manifest is built inside
2503 the project's ``.egg-info`` directory as ``SOURCES.txt``, and it is rebuilt
2504 every time the ``egg_info`` command is run.
2505] 
2506[Build a SOURCES.txt manifest file in .egg-info, that can then be included in
2507phillip.eby**20051118031307
2508 sdist distributions to support building an sdist from an sdist (which the
2509 bdist_rpm command requires).  This will also be the basis for enhanced
2510 package data support, that will allow optionally using the manifest to
2511 identify package data files instead of having separate manual identification
2512 of the data files.
2513] 
2514[Bump version number to begin the 0.6a9 developent cycle
2515phillip.eby**20051118022208] 
2516[Don't raise an error when an invalid (unfinished) distribution is found
2517phillip.eby**20051118020730
2518 unless absolutely necessary.  Warn about skipping invalid/unfinished eggs
2519 when building an Environment.
2520] 
2521[Quote arguments to python.exe (including python's path) to avoid
2522phillip.eby**20051117030133
2523 problems when Python (or a script) is installed in a directory
2524 whose name contains spaces.  :(
2525] 
2526[0.6a8 final.
2527phillip.eby**20051116191808] 
2528[Update for SourceForge's changed mirror page formats
2529phillip.eby**20051116184305] 
2530[Fixed a problem with nested namespace packages (e.g. ``peak.util``) not
2531phillip.eby**20051113010833
2532 being set as an attribute of their parent package.
2533] 
2534[Record case-insensitivity fix.
2535phillip.eby**20051109033043] 
2536[Document shared library autodetection
2537phillip.eby**20051109032857] 
2538[Detect .dll, .so, .dylib and .pyd files that might have
2539phillip.eby**20051109032334
2540 been included in a project as data files rather than as
2541 Python extensions. 
2542] 
2543[Normalize items in sys.path when determining where to insert
2544phillip.eby**20051109030230
2545 a new item.
2546] 
2547[Fix rmtree() brokenness with Python 2.4 by breaking down and copying
2548phillip.eby**20051105163236
2549 shutil.rmtree from 2.4 directly into easy_install.py.
2550] 
2551[Fixed some problems with fresh checkouts of projects that don't include
2552phillip.eby**20051105055026
2553 ``.egg-info/PKG-INFO`` under revision control and put the project's source
2554 code directly in the project directory.  If such a package had any
2555 requirements that get processed before the ``egg_info`` command can be run,
2556 the setup scripts would fail with a "Missing 'Version:' header and/or
2557 PKG-INFO file" error, because the egg runtime interpreted the unbuilt
2558 metadata in a directory on ``sys.path`` (i.e. the current directory) as
2559 being a corrupted egg.  Setuptools now monkeypatches the distribution
2560 metadata cache to pretend that the egg has valid version information, until
2561 it has a chance to make it actually be so (via the ``egg_info`` command).
2562 
2563] 
2564[Made ``egg_info --tag-svn-revision`` fall back to extracting the
2565phillip.eby**20051104053822
2566 revision number from ``PKG-INFO`` in case it is being run on a
2567 source distribution of a snapshot taken from a Subversion-based
2568 project.  That is, if a project builds an sdist with
2569 --tag-svn-revision in setup.cfg, then the built sdist will
2570 create binaries with the same version number as the checkout
2571 that was used to create the sdist.
2572] 
2573[Reduce the number of redundant host blocking warnings by not
2574phillip.eby**20051104031844
2575 retrying the same previously-blocked URLs.
2576] 
2577[Made ``develop`` command accept all the same options as ``easy_install``,
2578phillip.eby**20051104030830
2579 and use the ``easy_install`` command's configuration settings as defaults.
2580] 
2581[Workaround for broken DISTUTILS_DEBUG output.
2582phillip.eby**20051104030652] 
2583[Document best practices for managing continuous releases with
2584phillip.eby**20051104022934
2585 Subversion, #egg links, --tag-svn-revision, etc., to reflect the
2586 community experience with the tools to date.
2587] 
2588[* Improved runtime conflict warning message to identify a line in the user's
2589phillip.eby**20051104015325
2590   program, rather than flagging the ``warn()`` call in ``pkg_resources``.
2591 
2592 * Avoid giving runtime conflict warnings for namespace packages, even if they
2593   were declared by a different package than the one currently being activated.
2594] 
2595[Fixed some problems building extensions when Pyrex was installed, especially
2596phillip.eby**20051103035542
2597 with Python 2.4 and/or packages using SWIG.
2598] 
2599[Handle non-requirement installs correctly for dependency processing
2600phillip.eby**20051103035206
2601 (e.g. "setup.py install", or "easy_install somefile/someurl").
2602] 
2603[Fix some Subversion-related problems reported by John J. Lee:
2604phillip.eby**20051103032844
2605 
2606 * Fixed not installing dependencies for some packages fetched via Subversion
2607 
2608 * Fixed dependency installation with ``--always-copy`` not using the same
2609   dependency resolution procedure as other operations.
2610 
2611 * Fixed not fully removing temporary directories on Windows, if a Subversion
2612   checkout left read-only files behind
2613 
2614] 
2615[Switch setuptools to use 'dev-rNNNN' version tags by default, and configure
2616phillip.eby**20051103023426
2617 so that people can use 'ez_setup.py setuptools==dev' to fetch the latest
2618 in-development version.
2619] 
2620[Fixed a problem with ``WorkingSet.resolve()`` that prevented version
2621phillip.eby**20051103022449
2622 conflicts from being detected at runtime.  (As reported by Ian Bicking.)
2623] 
2624[Oops, this was part of 0.6a7 too.
2625phillip.eby**20051102235821] 
2626[Fix documentation typos, and note that Python 2.4 is required on 64-bit
2627phillip.eby**20051102235744
2628 platforms (due to a bugfix in zipimport.c that was never backported to
2629 the 2.3 branch).
2630] 
2631[0.6a7 bugfix release
2632phillip.eby**20051102235534] 
2633[Fixed a problem extracting zipped files on Windows, when the egg in
2634pje**20051022190744
2635 question has had changed contents but still has the same version number.
2636] 
2637[Added "--allow-hosts" option to restrict downloading and spidering to
2638pje**20051019030035
2639 a specified list of server glob patterns.
2640] 
2641[Hurray!  Our first dependency processing bug!  This is cool because it
2642pje**20051018040846
2643 means that people are finally doing enough things with setuptools to
2644 have real-life version conflict scenarios.  Luckily, the fix is trivial:
2645 use breadth-first instead of depth-first dependency processing, which I
2646 thought we were already doing anyway, but weren't.  And we were giving
2647 precedence to already-installed packages, which means upgrades didn't
2648 work so well.
2649] 
2650[Prep for 0.6a6 release.
2651pje**20051017024439] 
2652[Fix a typo in patched site.py.
2653pje**20051017023900] 
2654[Significantly enhanced support and docs for "non-root" installation,
2655pje**20051017022639
2656 including both "virtual" and PYTHONPATH-based installs.  The activation
2657 precedence of distributions has also changed so that PYTHONPATH-based
2658 non-root installs can include eggs that override system-defined packages
2659 (whether managed or unmanaged).  This version should eliminate most
2660 common installation complaints from non-root Python users.
2661 Note: this version includes a hacked 'site.py' to support processing
2662 .pth files in directories that come *before* site-packages on sys.path.
2663 However, because of its placement, it should only come into play when
2664 a user puts the setuptools .egg file *directly* on PYTHONPATH, so it
2665 doesn't affect "virtual" or "root" installations.  It's strictly to
2666 provide support for luddites who refuse to give up their
2667 existing non-root PYTHONPATH setup unless you pry it from their cold,
2668 dead hands.  :)
2669] 
2670[Fix problem with Windows console scripts conflicting with module names,
2671pje**20051016204530
2672 thereby confusing the import process.  Scripts are now generated with a
2673 suffix of the form '-script.py' to avoid conflicts.  (The .exe's are still
2674 generated without the '-script' part, so you don't have to type it.)
2675 Thanks to Matthew R. Scott for reporting the problem.
2676] 
2677[Implement --no-deps option, add link to Ian Bicking's non-root Python
2678pje**20051016174211
2679 builder script.
2680] 
2681[0.6a5 brown bag bug fix release.
2682pje**20050929170543] 
2683[Bugfixes.  :(
2684pje**20050929164955] 
2685[0.6a4 bugfix release.
2686pje**20050926004600] 
2687[Ensure that WorkingSet.resolve() (and therefore require() as well)
2688pje**20050926003535
2689 returns a list of the relevant distributions, even if they are found in
2690 the working set rather than the environment.  This fixes some problems
2691 in the 0.6a3 release.
2692] 
2693[0.6a3 release.
2694pje**20050924214059] 
2695[Support generating .pyw/.exe wrappers for Windows GUI scripts, and
2696pje**20050924202957
2697 "normal" #! wrappers for GUI scripts on other platforms.
2698] 
2699[Fix a problem with inconsistent quoting of "extras", reported by Ian
2700pje**20050924194828
2701 Bicking on the distutils-sig.
2702] 
2703[Add release notes for changes made today.
2704pje**20050924194520] 
2705[Fix a bug parsing #egg links reported by Ben Bangert on the distutils-sig.
2706pje**20050924194427] 
2707[Implement smart version conflict resolution for scripts, so that
2708pje**20050924175822
2709 installed applications will not have their eggs overridden by packages
2710 installed locally on sys.path.  This should also make things work a bit
2711 better for "traditional" non-root Python setups on Unixy operating
2712 systems.  See:
2713 
2714 http://mail.python.org/pipermail/distutils-sig/2005-September/005164.html
2715 
2716 for more details.
2717] 
2718[Improve backward compatibility, so that users running easy_install.py or
2719pje**20050924172856
2720 python -m easy_install get a clearer error message.
2721] 
2722[Fix typo.  Add setup for include/python2.X directory in non-root install
2723pje**20050924143043
2724 instructions.
2725] 
2726[setuptools 0.6a2 release
2727pje**20050918040238] 
2728[Added support to solve the infamous "we want .py on Windows, no
2729pje**20050917011302
2730 extension elsewhere" problem, while also bypassing the need for PATHEXT
2731 on Windows, and in fact the need to even write script files at all, for
2732 any platform.  Instead, you define "entry points" in your setup script,
2733 in this case the names of the scripts you want (without extensions) and
2734 the functions that should be imported and run to implement the scripts.
2735 Setuptools will then generate platform-appropriate script files at
2736 install time, including an .exe wrapper when installing on Windows.
2737] 
2738[Fixed cheeseshop URL.
2739pje**20050917001837] 
2740[Fix another typo
2741pje**20050914164507] 
2742[Update cheeseshop URL, fix typo.
2743pje**20050914164123] 
2744[0.6a1 release of setuptools.
2745pje**20050914033349] 
2746[Correctly handle URL fragments in --find-links.
2747pje**20050914032810] 
2748[Release 0.6a1c2.
2749pje**20050903050112] 
2750[Add release note about bdist_rpm --no-egg option
2751pje**20050903045310] 
2752[Added support for old-style RPMs (i.e. non-egg RPMs)
2753pje**20050903045127] 
2754[Ensure wrapper scripts are included in output file record; this is
2755pje**20050903045005
2756 especially important for RPMs with scripts.
2757] 
2758[Make sure that script target directory exists.  Ordinarily it should, but
2759pje**20050903043718
2760 some bdist_* targets install to a pseudo-root where stuff might not exist.
2761] 
2762[Fix typo in symlink handling code.
2763pje**20050903040403] 
2764[Work around a problem with SuSE Linux's patched install_lib command, by
2765pje**20050903032054
2766 figuring out the extension paths without its help.  :(
2767] 
2768[More minor doc tweaks.
2769pje**20050823134550] 
2770[Minor doc tweaks, and add release note about symlink support.
2771pje**20050823134220] 
2772[D'oh!  os.path.islink is available on all platforms.  Also, ensure that we
2773pje**20050823133452
2774 do directory tree removals only if isdir() and not islink(), and use
2775 unlink() in all other cases.
2776] 
2777[Simplify non-root install process and improve Mac OS docs for it.  Support
2778pje**20050823132442
2779 .pth files and legacy packages possibly being symlinks, and ensure that
2780 overwrites don't follow the symlink.
2781] 
2782[Make easy_install --record strip the RPM root when building RPMs, and have
2783pje**20050822134010
2784 bdist_egg ignore the RPM root when building an egg.  This version now can
2785 actually run bdist_rpm to completion, although the resulting RPM will
2786 install an egg without a corresponding .pth file.
2787] 
2788[Remove broken example.
2789pje**20050822035342] 
2790[Bump release version to 0.6a1.  Fix a minor cosmetic issue on certain
2791pje**20050822035019
2792 ez_setup installs.
2793] 
2794[Give pkg_resources its own revision history; add some notes on today's
2795pje**20050822034020
2796 fixes and enhancements.
2797] 
2798[More documentation enhancements.
2799pje**20050822032827] 
2800[Add detailed instructions for non-root installation using PYTHONHOME.
2801pje**20050822031458] 
2802[Add release note about the new MD5 validation feature.
2803pje**20050822011705] 
2804[Implemented md5 validation for PyPI and for URLs with a "#md5=..." anchor.
2805pje**20050822011314] 
2806[Add hardcoded md5 checking to ez_setup.  Also, don't delay and display
2807pje**20050822003547
2808 banner if ez_setup is run as a command-line script, since its whole purpose
2809 in that case is to download setuptools.  Running "ez_setup.py --md5update
2810 FILE [FILE...]" will update the internal md5 checksum dictionary with new
2811 or changed distributions.  You should only do this if you are a setuptools
2812 maintainer, however!
2813] 
2814[Fix a problem running build_ext -i w/no extensions.
2815pje**20050822003248] 
2816[Display a download warning in ez_setup, so that people won't be caught
2817pje**20050821235554
2818 off-guard by the setuptools download (which only occurs if setuptools isn't
2819 locally available, of course).
2820] 
2821[Fix problem w/bdist_rpm and setuptools, reported by Walter Doerwald.  I
2822pje**20050821233340
2823 was trying to have setuptools fix distutils' broken filename handling that
2824 assumes people haven't put punctuation in their distribution names,
2825 including '-' (which prevents unambiguous parsing of distribution names).
2826 However, bdist_rpm's attempt to guess a source distribution's filename
2827 isn't compatible with this fix, without making other changes.  I decided
2828 therefore to drop the fixes for the sake of backward compatibility, but
2829 monkeypatch bdist_rpm so that it runs "egg_info" first, to ensure that any
2830 --tag-svn-revision or other tagging options take effect.
2831] 
2832[Make "build_ext --inplace" work sanely w/multiple Python versions and
2833pje**20050821225957
2834 platforms, by ensuring that the in-place extensions are the right ones for
2835 the currently-running Python, even if they are newer than their sources.
2836 (This, like so many other setuptools fixes and enhancements, should
2837 probably be backported into the distutils as well, although it would have
2838 to be implemented a bit differently.)
2839] 
2840[Thanks to Richard Jones, we no longer need to fake out PyPI with a '.zip'
2841pje**20050821221212
2842 extension for eggs.
2843] 
2844[Parse .svn/entries directly instead of using 'svn info' to obtain a
2845pje**20050821214939
2846 revision number.  (Christopher Lenz reported that svn info's output is
2847 different in non-English locales.)
2848] 
2849[Fix namespace packages not getting fixed up when the eggs are zipped and
2850pje**20050819010153
2851 loaded late (i.e. via require).  Thanks to Walter Doerwald for the bug
2852 report.
2853] 
2854[Auto-generate namespace __init__.py files for packages without them.  This
2855pje**20050814211745
2856 is a workaround for packages like 'll-color', which are distributed without
2857 'll/__init__.py', to avoid overwriting ll-core's copy of ll/__init__.py.
2858 This allows existing packages that use this sort of kludging to be treated
2859 as a crude namespace package, as long as the "real" __init__.py also
2860 calls declare_namespace().
2861] 
2862[Minor refactoring of code that checks a distribution's contents.
2863pje**20050814211446] 
2864[Add experimental support for merging non-empty namespace packages.  This
2865pje**20050814210133
2866 lets you have one distribution containing a non-empty __init__.py for the
2867 package, as long as you call 'declare_namespace()' from that __init__.py
2868 and all other __init__.py files for the namespace package, and do *not*
2869 declare it as a namespace package in setup() (so that it won't be
2870 automatically imported if it's on sys.path, the way empty namespace
2871 packages are.)
2872] 
2873[Fix a bug introduced by removing the Environment.get() method.
2874pje**20050814204649] 
2875[On second thought, don't.  :(  Walter Doerwald's situation isn't really
2876pje**20050814201856
2877 compatible with namespace packages, even if I do manage to hack up a way
2878 to make it work.
2879] 
2880[Allow distributing an empty namespace package.
2881pje**20050814201628] 
2882[Fix some reST formatting problems and other issues discovered during a
2883pje**20050814174807
2884 quick review.
2885] 
2886[Document "Distribution" objects.  Now the API reference is complete, and I
2887pje**20050814173015
2888 just need to write the Overview and Developer's Guide sections so that most
2889 people won't have to actually *read* the API reference.  :)
2890] 
2891[Documentation for namespace packages, working sets, and supporting custom
2892pje**20050814060837
2893 PEP 302 importers.  Once the "Distribution" class is documented, this will
2894 be a complete API reference for pkg_resources.
2895] 
2896[Make "run_script" a method of WorkingSet objects, thereby removing a global
2897pje**20050814060320
2898 coupling.
2899] 
2900[Document the "Environment" class, and simplify its API.
2901pje**20050814014538] 
2902[Document "Requirement" objects.
2903pje**20050814003728] 
2904[Added docs for main EntryPoint APIs, and cleaned up the API itself a bit.
2905pje**20050813230408
2906 Also fixed a few bugs.
2907] 
2908[Fixed breakage of bdist_* commands that call the 'install' command.
2909pje**20050811145854] 
2910[Fix bugs reported by Ian Bicking, Walter Doerwald, and Vincenzo Di Massa.
2911pje**20050811003737] 
2912[Fix a bug introduced by making split_sections() not lowercase section
2913pje**20050809155039
2914 headings.
2915] 
2916[Document resource and metadata access APIs.
2917pje**20050807205410] 
2918[Add docs for exceptions, and for much of the ResourceManager API.
2919pje**20050807055237] 
2920[Document utility routines.  Made ``split_sections()`` not lowercase its
2921pje**20050807045044
2922 section headers any more, since e.g. entry point group names are
2923 case-sensitive.
2924] 
2925[Renamed AvailableDistributions -> Environment.  Add sketch of pkg_resources
2926pje**20050807010336
2927 manual outline.
2928] 
2929[Allow distutils extensions to define new kinds of metadata that can be
2930pje**20050806211750
2931 written to EGG-INFO.  Extensible applications and frameworks can thus make
2932 it possible for plugin projects to supply setup() metadata that can then
2933 be used by the application or framework.
2934] 
2935[Fix WorkingSet yielding the same distribution more than once if more than
2936pje**20050806205401
2937 one path entry points to it.
2938] 
2939[Got rid of the no-longer meaningful "depends" command.  Consolidated the
2940pje**20050806192949
2941 replacement of the "install" command so that installation is always via
2942 easy_install, but doesn't use the previous kludgy intereception technique.
2943 Allow ``extra_path`` to be set, but ignore it, so that when easy_install
2944 wraps a package that uses it, there won't be any confusion as to the
2945 desired installation location.
2946] 
2947[Enhanced setuptools infrastructure to support distutils extensions that
2948pje**20050806184628
2949 can be plugged in at setup() time to define new setup() arguments or
2950 distutils commands.  This allows modularization and reuse of distutils
2951 extensions in a way that was previously not possible.
2952] 
2953[Allow specifying an environment and/or installer for entry-point loading.
2954pje**20050806175658
2955 This will be used by setuptools to automatically install eggs that may be
2956 needed as part of a build process, or to invoke a particular command.
2957] 
2958[Change dependency processing algorithm for less redundancy in the common
2959pje**20050806175455
2960 case, and more thoroughness in the --always-copy case.
2961] 
2962[Fix wrongly including files that Subversion has marked deleted.
2963pje**20050806162644] 
2964[Performance boosts: don't create environment during require()/resolve()
2965pje**20050806023052
2966 if all requirements can be met with items already in the working set.
2967 Don't eagerly determine whether a path is a directory.  Avoid redundant
2968 path operations, etc.  These changes dropped the test suite runtime from
2969 over 3.4 seconds to around .34 seconds.
2970] 
2971[Fix a problem with zip paths reported by Ashley Walsh.
2972pje**20050803131850] 
2973[Misc. bugs reported by Ian Bicking and Ashley Walsh.
2974pje**20050731163118] 
2975[Misc. bug fixes and doc additions.  Add 'iter_entry_points()' API.
2976pje**20050725031251] 
2977[Implement "entry points" for dynamic discovery of drivers and plugins.
2978pje**20050724224706
2979 Change setuptools to discover setup commands using an entry point group
2980 called "distutils.commands".  Thanks to Ian Bicking for the suggestion that
2981 led to designing this super-cool feature.
2982] 
2983[Fix eager resource extraction. Add eager_resources setup() argument.  Add
2984pje**20050724175927
2985 support for obtaining project-level resources by making get_provider()
2986 accept Requirement objects.
2987] 
2988[Fix a regression; this code was changed in order to avoid being fooled by
2989pje**20050724055107
2990 incompatible eggs that might have ended up in the distribution directory,
2991 but the "fixed" code was broken.
2992] 
2993[Implement --editable option, which allows you to just download and extract
2994pje**20050724024144
2995 (or check out from Subversion) one or more source distributions, without
2996 actually building or installing them (or their dependencies).
2997] 
2998[Fixed the setup script sandbox facility not recognizing certain paths as
2999pje**20050724023820
3000 valid on case-insensitive platforms.
3001] 
3002[Improved backward compatibility of Mac OS platform string changes, thanks
3003pje**20050721161134
3004 to more help from Kevin Dangoor.
3005] 
3006[Tweak Mac OS platform string based on Mac SIG feedback: remove "micro"
3007pje**20050721045050
3008 version number, and map "PowerPC" and "Power_Macintosh" to "ppc".
3009] 
3010[Added support for handling MacOS platform information in ``.egg``
3011pje**20050721011131
3012 filenames, based on a contribution by Kevin Dangoor.  (NOTE: this may make
3013 eggs compiled for OS X with older versions of setuptools unusable!  If you
3014 have eggs whose file/directory names end with ``-darwin-*.egg``, you will
3015 probably need to rename them to ``-macosx-*.egg``, substituting your
3016 current Mac OS version for the darwin kernel version in the version number.
3017 Or, you can just delete and reinstall the problematic eggs.)
3018] 
3019[Make 'test' command work correctly with the 0.6 WorkingSet class.
3020pje**20050721005107] 
3021[Fixed installing extra ``.pyc`` or ``.pyo`` files for scripts with ``.py``
3022pje**20050721004945
3023 extensions.
3024] 
3025[Catch a few missed terminology changes.
3026pje**20050718022814] 
3027[Massive API refactoring; see setuptools.txt changelog for details.  Also,
3028pje**20050718020630
3029 add ``#egg=project-version`` link support, and docs on how to make your
3030 package available for EasyInstall to find.
3031] 
3032[Massive API refactoring; see setuptools.txt changelog for details.  Also,
3033pje**20050718013945
3034 add ``#egg=project-version`` link support, and docs on how to make your
3035 package available for EasyInstall to find.
3036] 
3037[The ``path`` attribute of ``Distribution`` objects is now ``location``,
3038pje**20050717195438
3039 because it isn't necessarily a filesystem path (and hasn't been for some
3040 time now).  ``Distribution`` objects now have an ``as_requirement()``
3041 method that returns a ``Requirement`` for the distribution's project name
3042 and version.
3043] 
3044[``Distribution`` objects now implement the ``IResourceProvider`` and
3045pje**20050717190115
3046 ``IMetadataProvider`` interfaces, so you don't need to reference the (no
3047 longer available) ``metadata`` attribute to get at these interfaces.
3048] 
3049[Renamings for consistent terminology; distributions and requirements now
3050pje**20050717044242
3051 both have 'project_name' attributes, instead of one having 'name' and the
3052 other 'distname'.  Requirements no longer have 'options', they have
3053 'extras'.  This is the beginning of the terminology/architecture
3054 refactoring described at:
3055 
3056 http://mail.python.org/pipermail/distutils-sig/2005-June/004652.html
3057] 
3058[Added ``--site-dirs`` option to allow adding custom "site" directories.
3059pje**20050716215750
3060 Made ``easy-install.pth`` work in platform-specific alternate site
3061 directories (e.g. ``~/Library/Python/2.x/site-packages``).
3062] 
3063[Fixed some problems using ``pkg_resources`` w/PEP 302 loaders other than
3064pje**20050716172535
3065 ``zipimport``.  Fixed ``pkg_resources.resource_exists()`` not working
3066 correctly.
3067] 
3068[Fix only detecting the revision number of the setup directory, not the
3069pje**20050716164302
3070 highest revision number for the project as a whole.
3071] 
3072[prep for 0.5a13 release
3073pje**20050716161729] 
3074[Fix a problem extracting resources from nested packages.
3075pje**20050715041137] 
3076[Fix formatting error.
3077pje**20050715041012] 
3078[Prep for 0.5a12 release; update docs.
3079pje**20050713001000] 
3080[Updated extraction/cache mechanism for zipped resources to avoid inter-
3081pje**20050713000925
3082 process and inter-thread races during extraction.  The default cache
3083 location can now be set via the ``PYTHON_EGGS_CACHE`` environment variable,
3084 and the default Windows cache is now a ``Python-Eggs`` subdirectory of the
3085 current user's "Application Data" directory, if the ``PYTHON_EGGS_CACHE``
3086 variable isn't set.
3087] 
3088[Update zip-safety scanner to check for modules that might be used as
3089pje**20050712234322
3090 ``python -m`` scripts.  Misc. fixes for win32.exe support, including
3091 changes to support Python 2.4's changed ``bdist_wininst`` format.
3092] 
3093[Fixed not being able to use python -m easy_install.
3094pje**20050712232232] 
3095[Add a message explaining that you can use -U setuptools to reinstall or
3096pje**20050712232206
3097 upgrade setuptools.
3098] 
3099[Fix breakage of the "develop" command that was caused by the addition of
3100pje**20050712160900
3101 ``--always-unzip`` to the ``easy_install`` command.  Bump version for bug
3102 fix release.
3103] 
3104[Drop links to the Windows installer; it was installing an "unmanaged"
3105pje**20050712053458
3106 version of setuptools!
3107] 
3108[Bump version #.
3109pje**20050712053205] 
3110[Fix bugs and implement features reported/requested by folks on the
3111pje**20050712053136
3112 Distutils-SIG.
3113] 
3114[Update to 0.5a9, add zip_safe flag, and fix a doc error.
3115pje**20050711042157] 
3116[Enhanced "zip safety" analysis (including scan of win32.exe's) and have
3117pje**20050711041248
3118 EasyInstall act on zip safety flags.  Add a lot more docs for setuptools.
3119] 
3120[First-pass implementation of zippability analysis; scans for impure
3121pje**20050710162426
3122 distribution or use of __file__/__path__ and selected 'inspect' operations.
3123 Currently, the analysis is a bit overconservative; when the runtime is more
3124 robust, it should probably allow extensions to be zipped by default.
3125] 
3126[Implement ``namespace_packages`` keyword to ``setup()``.  Added keyword
3127pje**20050710154308
3128 summary to setuptools doc.  Begin work on ``zip_safe`` flag.
3129] 
3130[Add an example of using the new "directory w/setup.py" feature
3131pje**20050710152412] 
3132[EasyInstall now builds eggs in a temporary directory alongside the setup
3133pje**20050710052944
3134 script it's running.  This avoids it getting confused by projects with
3135 non-standard distribution locations, and projects that may have various
3136 eggs already sitting in their distribution directory.  It should probably
3137 also do something like this for the build directory to ensure a clean,
3138 fresh build, but it seems like overkill, since it only affects local
3139 projects, not stuff that EasyInstall downloaded in the first place.
3140] 
3141[Allow EasyInstall to accept a directory containing a setup script as one
3142pje**20050710050631
3143 of its arguments.  Fix swapped short option names for --bdist-dir and
3144 --dist-dir in bdist_egg.
3145] 
3146[Detect and handle conflicts with "unmanaged" packages when installing
3147pje**20050710044931
3148 packages managed by EasyInstall.  Also, add an option to exclude source
3149 files from .egg distributions.
3150] 
3151[Added command reference to documentation.
3152pje**20050709162723] 
3153[Changed --tag-svn-revision to include an "r" in front of the revision
3154pje**20050709162554
3155 number for better readability.
3156] 
3157[Remove old-style requirements from setup.py, to avoid confusing people who
3158pje**20050709042738
3159 look to it for an example of setuptools use.
3160] 
3161[Add informative comment when uploading eggs, to help distinguish them from
3162pje**20050709042621
3163 source archives.
3164] 
3165[Fix typos in option specs for bdist_egg.
3166pje**20050709042549] 
3167[Added ``exclude=patternlist`` option to ``setuptools.find_packages()``
3168pje**20050709042438] 
3169[Include ``svn:externals`` directories in source distributions as well as
3170pje**20050709042122
3171 normal subversion-controlled files and directories.
3172] 
3173[Doc and other updates for 0.5a8 release.  Add project aliases for source
3174pje**20050708155205
3175 and binary register+upload.
3176] 
3177[Delete empty sections when their last option is deleted.
3178pje**20050708155032] 
3179[Cleaner argument quoting in command aliases.
3180pje**20050708154953] 
3181[Partial first draft documentation for setuptools.  Split revision history
3182pje**20050708151314
3183 between setuptools and easy_install docs.  Pull project's long_description
3184 from the documentation, for a more informative PyPI project page.
3185] 
3186[Restructured the 'alias' command to take arguments instead of options, and
3187pje**20050708151119
3188 to display the definition of the named alias or of all aliases.
3189] 
3190[Fix a couple of command descriptions.
3191pje**20050708051120] 
3192[Added support for defining command aliases in distutils configuration
3193pje**20050708050923
3194 files, under the "[aliases]" section.  To prevent recursion and to allow
3195 aliases to call the command of the same name, a given alias can be expanded
3196 only once per command-line invocation.  You can define new aliases with the
3197 "alias" command, either for the local, global, or per-user configuration.
3198] 
3199[* Added "rotate" command to delete old distribution files, given a set of
3200pje**20050708044820
3201 patterns to match and the number of files to keep.  (Keeps the most
3202 recently-modified distribution files matching each pattern.)
3203 
3204 * Added "saveopts" command that saves all command-line options for the
3205 current invocation to the local, global, or per-user configuration file.
3206 Useful for setting defaults without having to hand-edit a configuration
3207 file.
3208 
3209 * Added a "setopt" command that sets a single option in a specified
3210 distutils configuration file.
3211] 
3212[The "egg_info" command now always sets the distribution metadata to "safe"
3213pje**20050708044558
3214 forms of the distribution name and version, so that distribution files will
3215 be generated with parseable names (i.e., ones that don't include '-' in the
3216 name or version).  Also, this means that if you use the various ``--tag``
3217 options of "egg_info", any distributions generated will use the tags in the
3218 version, not just egg distributions.
3219] 
3220[Fix problems upgrading an already-installed setuptools version.
3221pje**20050707163831] 
3222[Add upload support to setuptools, and make default downloads of setuptools
3223pje**20050707162843
3224 come from PyPI/python.org rather than from telecommunity.com.  Bump to
3225 version 0.5a7.
3226] 
3227[Bump release version
3228pje**20050707021014] 
3229[Update revision history.
3230pje**20050707020556] 
3231[Beefed up the "sdist" command so that if you don't have a MANIFEST.in, it
3232pje**20050707020325
3233 will include all files under revision control (CVS or Subversion) in the
3234 current directory, and it will regenerate the list every time you create a
3235 source distribution, not just when you tell it to.  This should make the
3236 default "do what you mean" more often than the distutils' default behavior
3237 did, while still retaining the old behavior in the presence of MANIFEST.in.
3238] 
3239[Slightly changed the format of the generated version when you use
3240pje**20050707020154
3241 ``--tag-build`` on the "egg_info" command, so that you can make tagged
3242 revisions compare *lower* than the version specified in setup.py (e.g. by
3243 using ``--tag-build=dev``).
3244] 
3245[Don't modify .pth files when in --dry-run/-n mode.
3246pje**20050707015759] 
3247[Fix for .py scripts that might be imported (e.g. the "py" library's hideous
3248pje**20050707015357
3249 '_findpy.py' hack.)
3250] 
3251[Backward-compatibility fix, so ez_setup can upgrade older versions of
3252pje**20050707015221
3253 setuptools.
3254] 
3255[Add a note about interaction between exemaker and easy_install
3256pje**20050707015146] 
3257[Bump version to 0.5a5.
3258pje**20050706034704] 
3259[Added ``develop`` command to ``setuptools``-based packages.  This command
3260pje**20050706034616
3261 installs an ``.egg-link`` pointing to the package's source directory, and
3262 script wrappers that ``execfile()`` the source versions of the package's
3263 scripts.  This lets you put your development checkout(s) on sys.path
3264 without having to actually install them.  (To uninstall the link, use
3265 use ``setup.py develop --uninstall``.)
3266] 
3267[Made ``easy_install`` a standard ``setuptools`` command, moving it from
3268pje**20050706021048
3269 the ``easy_install`` module to ``setuptools.command.easy_install``.  Note
3270 that if you were importing or extending it, you must now change your
3271 imports accordingly.  ``easy_install.py`` is still installed as a script,
3272 but not as a module.
3273] 
3274[Enhanced the ``test`` command so that it doesn't install the package, but
3275pje**20050706015408
3276 instead builds any C extensions in-place, updates the ``.egg-info``
3277 metadata, adds the source directory to ``sys.path``, and runs the tests
3278 directly on the source.  This avoids an "unmanaged" installation of the
3279 package to ``site-packages`` or elsewhere.  (Also, fix a breaking test of
3280 older dependency support; this should probably be removed altogether, as
3281 long as nobody's using it.)
3282] 
3283[Added ``egg_info`` command to ``setuptools``-based packages.  This command
3284pje**20050706013741
3285 just creates or updates the "projectname.egg-info" directory, without
3286 building an egg.  It's used by the ``bdist_egg`` command now, and will be
3287 used by the ``test`` and ``develop`` commands later on.
3288] 
3289[Fix a problem using bdist_egg with non-setuptools distributions.
3290pje**20050704184541] 
3291[Fix typo
3292pje**20050704184502] 
3293[Add missing download links
3294pje**20050704184426] 
3295[EasyInstall/setuptools 0.5a4: significant new features, including automatic
3296pje**20050627003103
3297 installation of dependencies, the ability to specify dependencies in a
3298 setup script, and several new options to control EasyInstall's behavior.
3299] 
3300[0.5a3 bugfix release
3301pje**20050625193306] 
3302[Fix stupid typos.
3303pje**20050615023910] 
3304[Add support for installing from .win32.exe's created by distutils (by
3305pje**20050615022348
3306 converting them to eggs).  Bump version to 0.5a1.
3307] 
3308[Add bootstrap installation support that "hitches a ride" on other packages
3309pje**20050615021942
3310 being installed via the normal distutils "setup.py install".  Also, don't
3311 repeatedly download the setuptools egg if it's already in the target
3312 location.
3313] 
3314[Fix incorrect sorting of packages by string version instead of parsed
3315pje**20050615021603
3316 version info.  Don't set a default Python version for distribution
3317 objects.  Add enum for binary distributions (like bdist_wininst).
3318] 
3319[Make write_stub() a function, so easy_install can use it too.
3320pje**20050615021249] 
3321[Enhance unpack_* utilities to allow on-the-fly redirection of where files
3322pje**20050615021109
3323 are extracted to.
3324] 
3325[Bump version # for release.
3326pje**20050614154844] 
3327[Add support for quiet/verbose/dry-run/optimize flags.
3328pje**20050614153032] 
3329[Fix more zipped-egg directory resource bugs reported by Ryan Tomayko.
3330pje**20050614152941] 
3331[Support downloading packages that were uploaded to PyPI (by scanning all
3332pje**20050614124635
3333 links on package pages, not just the homepage/download links).
3334] 
3335[Fix typos found by Ryan Tomayko.
3336pje**20050614124443] 
3337[Oops, forgot to bump a version number.
3338pje**20050614013119] 
3339[Update to version 0.4a3
3340pje**20050614012959] 
3341[Fix missing '__file__' when running scripts.
3342pje**20050614012844] 
3343[Cosmetic improvements to progress messages.
3344pje**20050614012712] 
3345[Add lots of progress messages, so people know what the package search is
3346pje**20050614012626
3347 doing.
3348] 
3349[Fix a bug in resource_isdir(), introduced in 0.4a2.  Add str/repr of
3350pje**20050614012548
3351 Distribution objects.
3352] 
3353[Add 'ez_setup' bootstrap installer.  Prep for 0.4a2 release.
3354pje**20050612214734] 
3355[Add script installation support.  Use distutils' exceptions for option
3356pje**20050612192645
3357 errors.  Include Python version in setuptools' egg name for compatibility
3358 w/installs via easy_install.  Add isdir/listdir facilities for metadata,
3359 along with support for running scripts from eggs.
3360] 
3361[Restructure easy_install as a distutils "Command" object, so that it can
3362pje**20050612154954
3363 access the distutils configuration and logging infrastructure, and can
3364 "inherit" options from a distutils setup script that wants to use it to
3365 install its own dependencies.
3366] 
3367[Move package index/downloading stuff to setuptools.package_index module.
3368pje**20050612034407] 
3369[Rebalance responsibilities between PackageIndex, Installer, and main() so
3370pje**20050612030753
3371 that PackageIndex handles all downloading of any kind, Installers can be
3372 reused for multiple packages, and main() manages temporary directories and
3373 all communication between PackageIndex and Installer.  Also, change
3374 run_setup to take an argument sequence, because later we will probably need
3375 other arguments to control other aspects of run_setup's behavior.
3376] 
3377[Split setup-running and archive-extraction utilities into separate modules,
3378pje**20050612011234
3379 for easy use by tools other than EasyInstall.
3380] 
3381[Package scripts under EGG-INFO/scripts.  Refactor subcommand invocations
3382pje**20050607044151
3383 for less duplication and greater clarity.
3384] 
3385[Update distribution metadata so 'setup.py register' works; add 'extra_path'
3386pje**20050606033048
3387 so that setuptools can install itself in egg form.
3388] 
3389[Update docs for PyPI support, prep for 0.4a1 release
3390pje**20050605215541] 
3391[Implement PyPI screenscraping for EasyInstall.  Fix a bug in requirement
3392pje**20050605213351
3393 version checking.  Document new options for screen scraping.
3394] 
3395[Add "safe_name" and "safe_version" functions to allow sanitizing of
3396pje**20050605185937
3397 distribution names and versions in arbitrary packages that might be built
3398 using EasyInstall.
3399] 
3400[Partial support for autolocation of packages via link harvesting.  Still
3401pje**20050605012430
3402 needs a little work to get PyPI support working, and automatic dependency
3403 resolution.  But for now you can do:
3404 
3405     easy_install -s http://example.com/download.html SomePackage
3406 
3407 And easy_install will find the best-looking download link on the page for
3408 instaling SomePackage.
3409] 
3410[Make ``AvailableDistributions`` keep track of the desired platform/python.
3411pje**20050605012009
3412 Add a ``can_add()`` method that indicates whether a distribution matches
3413 the collection's desired platform and Python version.  Fix a bug in
3414 ``Distribution.from_filename()`` when the filename has no Python version.
3415] 
3416[Updated for v0.3a4
3417pje**20050605004811] 
3418[Add support for prioritized sorting of distributions by distribution type,
3419pje**20050605004736
3420 to assist easy_install in indexing packages from PyPI.
3421] 
3422[Fix a minor problem with -b option, and prep for 0.3a4 release.
3423pje**20050604213513] 
3424[Add support for resource isdir/listdir operations.  Support directory
3425pje**20050604211819
3426 extraction and "egg baskets" for .zips.  Add import locking for namespace
3427 package manipulation routines.
3428] 
3429[Release 0.3a3
3430pje**20050531003454] 
3431[Ditch outdated TODO file, move docs to a new 'EasyInstall.txt' file.  Fix
3432pje**20050531002445
3433 installation report for .egg files/directories.
3434] 
3435[Add option to allow specifying a download/extract/build directory, which
3436pje**20050530235233
3437 will be kept after installation completes.  Added an "installation report"
3438 that tells you how to use 'require()' to activate a particular package
3439 version.  Installer.install_eggs() now returns a list of Distribution
3440 objects for the eggs it found and installed, so that the command-line tool
3441 can print an installation report for each one.
3442] 
3443[Ensure that the distribution name written to PKG-INFO is the same as the
3444pje**20050530232210
3445 name you'll use in 'require()' operations for that distribution.
3446] 
3447[Add setup script "sandboxing" -- abort a setup script if it tries to write
3448pje**20050530232034
3449 to the filesystem outside of the installer's temporary directory.  This is
3450 accomplished by temporarily replacing 'os.*' functions and the 'open'
3451 builtin with path-validation wrappers.
3452] 
3453[Reorganize bdist_egg's handling of 'install_data' to better deal with the
3454pje**20050530064601
3455 various kludges legacy packages are using to install data in their package
3456 directories.  Some use absolute paths in 'distribution.data_files', while
3457 others create various subclasses of 'install_data', each with their own
3458 way of finding out what directory to use!  So 'bdist_egg' now does all its
3459 'install_lib' activity before 'install_data', and pokes the desired build
3460 directory into a wide variety of places, so that all of the known kludges
3461 so far will work correctly.  It also checks for absolute paths in
3462 'data_files' (carefully working around other packages' 'data_files'
3463 kludges!) and converts them back to relative ones, if they are subpaths of
3464 site-packages.
3465 
3466 Clearly, we need to get the word out about 'package_files' in Python 2.4
3467 and above, and suggest using 'setuptools' for Python 2.3.
3468] 
3469[Add SourceForge download support, graciously contributed by Ian Bicking.
3470pje**20050530033750
3471 Also, move some more imports to the top.
3472] 
3473[Bump version to 0.3a2 for release
3474pje**20050529221430] 
3475[Add subversion support, loosely based on an implementation by Ian Bicking.
3476pje**20050529220846
3477 EasyInstall now recognizes both 'svn' URLs (including 'svn+ssh' et al), and
3478 notices when it connects to an HTTP server that's actually a subversion
3479 repository.  In either case it does a subversion checkout of the package.
3480 Also, fixed a bug on platforms with os.samefile().
3481] 
3482[Added options to alter eggs' version number by tagging with the subversion
3483pje**20050529220539
3484 revision number, date, and/or a custom tag.  This should make it easier for
3485 people to produce e.g. automated nightly builds of eggs.
3486] 
3487[Add support for using Installer subclasses, especially ones with support
3488pje**20050529071343
3489 for searching a package database.
3490] 
3491[Oddly enough, some setup.py files actually check __name__=='__main__'
3492pje**20050529064114] 
3493[Correctly recognize .egg files that are already on sys.path (or whatever
3494pje**20050529052059
3495 path AvailableDistributions is scanning)
3496] 
3497[Handle distributions with ' ' in their names
3498pje**20050529051959] 
3499[Add link to Python Eggs page in doc; fix a problem with non-standard source
3500pje**20050529013601
3501 distros (where setup.py is in the archive root).
3502] 
3503[Remove exemaker spew from easy_install.py
3504pje**20050529001825] 
3505[Add "easy_install" script that downloads distutils source (or .egg files)
3506pje**20050529001722
3507 and builds and installs them as eggs, with support for managing .pth files.
3508 Built distributions are installed in individual subdirectories, so you can
3509 either add the directory to a .pth (automatically done by default), or you
3510 can use pkg_resources.require() to manage your dependencies explicitly.
3511 Because each distribution is in its own directory (or .egg file),
3512 uninstallation and clean upgrades are trivial, without the aid of any sort
3513 of package manager.
3514] 
3515[Add experimental 'install_data' support to 'bdist_egg'.  The most common
3516pje**20050528230559
3517 distutils custom command hack in the field is to make 'install_data'
3518 put data in with the target packages by changing the --install-data to
3519 match --install-lib, so this should let bdist_egg work with more packages
3520 "out of the box".
3521] 
3522[Fix some typos and a missing import
3523pje**20050525032232] 
3524[Implement draft support for namespace packages, both declaring them
3525pje**20050525030653
3526 initially and fixing them up when new eggs are added to sys.path.  At the
3527 moment, all namespace packages are fixed up whenever any new egg is added
3528 to sys.path, but this might not scale well if there are lots of eggs and
3529 lots of namespace packages.  Perhaps we should limit namespace fixups to
3530 namespace packages explicitly declared in the egg?
3531] 
3532[Support registering distribution finders for arbitrary PEP 302 importer
3533pje**20050525005039
3534 types, so that the directory scanner isn't a hardcoded case.
3535] 
3536[Implement a draft version of 'find_distributions()' with hardcoded support
3537pje**20050524011524
3538 for packed and unpacked .egg files and .egg-info dirs.  This will need to
3539 be refactored later to support registering adapters for arbitrary PEP 302
3540 importers, so that it can deal with non-filesystem sys.path entries.
3541 
3542 In the meantime, however, this means that 'require()' now works and that
3543 intrepid souls may now witness the power of this fully operational battle
3544 station...
3545] 
3546[Make AvailableDistributions check distributions for Python version
3547pje**20050523021752
3548 compatibility as well as platform compatibility.  Rename get_distro_source
3549 to 'find_distributions', and get rid of intermediate distro-source objects.
3550] 
3551[Add a rough draft of Distribution.install_on(), to let others experiment
3552pje**20050523020042
3553 with 'require()' before the "official" version is complete.
3554] 
3555[Add tests for AvailableDistributions().resolve().  This effectively
3556pje**20050523015627
3557 completes the core dependency resolution engine; all we need now is a way
3558 to turn sys.path entries into "distribution sources" that can list
3559 Distribution objects for inclusion in an instance of
3560 AvailableDistributions, and the 'require("SomePkg>=2.7")' API will be
3561 usable.
3562] 
3563[Added support for specifying options on requirements, so that a package's
3564pje**20050522202847
3565 optional dependencies can be included when processing nested dependencies.
3566 Next up: tests for the resolve() algorithm.
3567] 
3568[Distribution metadata parsing: distribution objects can now extract their
3569pje**20050522194022
3570 version from PKG-INFO and their dependencies from depends.txt, including
3571 optional dependencies.
3572] 
3573[Refine dependency resolution algorithm so it won't take exponential time,
3574pje**20050522181700
3575 or bomb on cyclic dependencies.  (But it's still an untested sketch.)
3576 Added list of things that need to be implemented before dependency
3577 resolution can actually work.  Added tests for lower-level parts of the
3578 dependency resolution system, and a hook to support subclasses doing
3579 automatic download of needed dependencies.
3580] 
3581[Add basic "Requirement" class that can tell whether a distribution or
3582pje**20050521214257
3583 version meets its version requirements.
3584] 
3585[Added "AvailableDistributions" class that finds and indexes usable
3586pje**20050403185221
3587 distributions; this replaces the previous "iter_distributions()" API.
3588 Added basic platform support to Distribution and AvailableDistributions so
3589 that platform-independent distros as well as local platform-compatible
3590 distros are acceptable.  The actual platform scheme is currently delegated
3591 to distutils.util.get_platform(), but needs to be replaced with a better
3592 scheme of some kind, especially for OS X.
3593] 
3594[Remove setuptools_boot.py, as it can now be trivially replaced by including
3595pje**20050403172338
3596 a setuptools .egg file in your source distribution, and adding it to
3597 sys.path in your setup.py.
3598] 
3599[Fix handling of -/_ so that they are canonicalized to '-' when doing name
3600pje**20050403012108
3601 or version comparisons, but rendered as '_' in egg filenames.
3602] 
3603[Add a "Distribution" object that wraps a sys.path entry with metadata, and
3604pje**20050403004658
3605 can extract its name/version/pythonversion/platform if built from a .egg
3606 filename.  Later, distributions will be able to add themselves to sys.path
3607 and request that their dependencies be added as well.  Also, added some
3608 real-life version test cases supplied by jemfinch.
3609] 
3610[Add a simple version parser that combines the pre-release smarts of
3611pje**20050402233113
3612 distutils' StrictVersion, with the flexibility of LooseVersion.  It also
3613 deals heuristically with common concepts like alpha/beta/candidate/rc
3614 and pre/preview, as well as '-' and 'pl' branching schemes.
3615] 
3616[Rough draft of version requirement parser.  Make bdist_egg look for a
3617pje**20050402024321
3618 distname.egg-info directory instead of EGG-INFO.in; this will be used later
3619 to support development of egg-distributed packages that an application
3620 under development expects to 'require()'.  (Thanks to Fred Drake for
3621 pointing out this use case, and Bob Ippolito for helping me figure out how
3622 to support it, although the runtime support doesn't actually exist yet.)
3623] 
3624[Back out the addition of bogus 'if __name__=="__main__"' block; the One
3625pje**20050401212849
3626 Obvious Way to test setuptools is to run 'setup.py test', because that also
3627 provides an integration test for the 'test' command.
3628] 
3629[Specify and implement # comments in get_metadata_lines
3630etrepum**20050324202919
3631 A few more PEP 8 formatting fixes for pkg_resources
3632] 
3633[import StringIO at module level
3634etrepum**20050324192654] 
3635[Reformat pkg_resources in PEP 8 style
3636etrepum**20050324192153] 
3637[Add a working pkg_resources implementation that handles extraction and
3638pje**20050323004252
3639 basic support for non-egg resources.  Still a lot to do, but this version
3640 is capable of not only extracting and running C extensions, it can even
3641 find its own runtime (pkg_resources) if it's included in the egg.
3642] 
3643[Fix bootstrap loader so extracted files don't have to be on sys.path.
3644pje**20050322185559] 
3645[Create stub loaders for C extensions, so that the actual dynamic library
3646pje**20050322001503
3647 can be extracted from the egg.
3648] 
3649[Allow user-supplied metadata from EGG-INFO.in directory (directory name can
3650pje**20050321204157
3651 be overridden with a command-line option).
3652] 
3653[Add python version to egg filename.
3654pje**20050321201233] 
3655[Add 'bdist_egg' command/format to allow creating "Python Eggs" (see
3656pje**20050321195046
3657 http://peak.telecommunity.com/DevCenter/PythonEggs for details).  This
3658 version only supports pure libraries and does not support user-defined
3659 metadata.  But it's sufficient to make .egg files that can be placed on
3660 PYTHONPATH and used.
3661] 
3662[remove blank line pollution
3663fdrake**20040617203744] 
3664[fix to make things continue to work when we're *not* running under
3665fdrake**20040615190003
3666 Python 2.4; this was broken by my earlier change to avoid stomping on
3667 Python 2.4's build_py command
3668] 
3669[Deal with the distutils on the head; package_data may already be supported.
3670fdrake**20040614141534
3671 In this case, setuptools need not override the build_py command.
3672] 
3673[remove excess blank lines, and apply whitespace more in line with the Python
3674fdrake**20040405202153
3675 style guidelines in PEP 8
3676] 
3677[- remove trailing blank lines
3678fdrake**20040405200245
3679 - use whitespace according to the Python style guide
3680] 
3681[remove trailing blank line
3682fdrake**20040405195911] 
3683[Compute command line that should be passed to child setup scripts.
3684pje**20040322011231
3685 Warn user if unsupported options are supplied, and cancel unless
3686 'depends -i' (aka '--ignore-extra-args') was used.
3687] 
3688[Flesh out 'depends' command to display dependencies' status, and halt if
3689pje**20040320205212
3690 all requirements aren't met.  (Also, check planned install location for
3691 the dependencies, as well as checking sys.path.)  Also:
3692 
3693 * Allow 'Feature()' objects to include 'Require()' objects, so that
3694   dependencies can be optional
3695 
3696 * 'Require()' objects can set a homepage, whose URL will be displayed by
3697   the 'depends' command if the dependency needs to be installed.
3698 
3699 * Misc. fixes/refactoring of version validation to properly handle
3700   "unknown" versions, and to decouple version fetching from version
3701   checking.
3702 
3703 * Updated TODO to remove various completed items.
3704] 
3705[Initial checkin of setuptools 0.0.1.
3706pje**20040319205314] 
3707Patch bundle hash:
370858c09c213c6e76902e7373cb0a8632c98d612d93