root/releases/pkgcore/0.2.6/NEWS @ ferringb%2540gmail.com-20070304022750-8tounnv3a9hsct75

Revision ferringb%2540gmail.com-20070304022750-8tounnv3a9hsct75, 14.3 kB (checked in by Brian Harring <ferringb@…>, 21 months ago)

ensure AttributeError? is wiped on the way out if it's not relevant.

Line 
1Pkgcore Release Notes
2=====================
3
4See ChangeLog for full commit logs; this is summarized/major changes.
5
6pkgcore 0.2.6:
7
8* make intersecting ~ and =* atoms work again (used by pquery --revdep)
9
10* catch a corner case py2.5 bug where AttributeError bleeds through from
11  generic_equality.
12
13* Via solars prodding, finished up the remaining bits for ROOT support.
14
15* resolver traceback for if a requested atom is already known as insoluable.
16  Thanks to kojiro for spotting it.
17
18* misc bash code cleanup.
19
20* PATH protection has been loosened slightly to enable 'weird' eclasses that
21  are doing global PATH mangling.
22
23* $HOME location for building was shifted into the targeted packages
24  directory, rather then a shared within $PORTAGE_TMPDIR.
25
26* setgid/setuid triggers now match portage behaviour; -s,o-w mode change.
27
28* trigger warnings are now enabled.
29
30* New default trigger added; CommonDirectoryModes, checks for common
31  directories (/usr, /etc, /usr/bin, /usr/lib for example) in the merge set,
32  checking the packages specified modes for them.  If not 0755, throws a
33  warning.
34
35* For directory on directory merging, ensure_perms (default op) was changed
36  to preserve the existing directories permissions.  Generally speaking, this
37  means that later versions of an ebuild have to use post_inst to correct the
38  perms if they're incorrect- previously, the new perms/mode were forced on
39  the existing.  Several common ebuilds (openssl for example) will generate
40  weird modes on common directories however (heavily restricted perms), which
41  can break things.  For the time being, the default is scaled down to the
42  looser form portage does.
43
44* added man page generation: pquery, pmerge
45
46* pconfig now has a "dump-uncollapsed" command to dump the "raw" config.
47
48* pebuild now supports --no-auto to run just the targeted phase.
49
50* mass expansion of test coverage: pkgcore.restrictions.*,
51  pkgcore.util.*, pkgcore.ebuild.*
52
53* minor cleanup of pkgcore.test.ebuild.test_cpv to reduce redundant data sets;
54  total testcase runtime reduction by about a third.
55
56* diverge from unittest.TestCase to provide extra checks for normal asserts-
57  assertNotEqual for example, checks both __eq__ and __ne__ now to smoke out
58  any potential oversights in object equality implementation.
59
60* use nsec mtime resolution if available to match python stdlib.
61
62* env var PORTAGE_DEBUG for controlling how much debug info the ebuild env
63  generates is now PKGCORE_DEBUG; range is the same, 0 (none), 1 (just the
64  ebuild/eclass), 2 (1 + relevant setup code), 3 (2 + filter-env data),
65  4 (everything).
66
67
68pkgcore 0.2.5:
69
70* handle corner case in depend cycle processing where a package directly
71  depends upon itself; fixes processing of sys-devel/libtool specifically.
72
73* for pquery --attr keywords, sort by arch, not by stable/unstable.
74
75* correct misc corner case atom bugs; an intersection bug, miss on an invalid
76  use dep atom lacking a closure in cpy atom, verification of use chars in
77  native atom,
78
79* osutils extensions tests, correcting a few cpy differences in behaviour from
80  native.
81
82* For unpacking a tarball that doesn't have it's files in a subdir, tar will
83  occasionally try to utime the cwd resulting in a failure- uid owner for
84  WORKDIR was changed to allow tar to do the utime, thus succeed in unpacking.
85  Only visible for userpriv and with oddball packages, gnuconfig for example.
86
87* Cleanup of a few slow test cases; running the test suite should now be around
88  25%-33% faster.
89
90
91pkgcore 0.2.4:
92
93* refactoring of trigger implementations- cleanup and tests.  Additionally,
94  eliminate a potential mtime based frace if the underlying fs (or python
95  version) doesn't do subsecond resolution.
96
97* force FEATURES into the exported ebuild env always.
98
99* for pmerge -p $target, which prefers reuse normally, *still* prefer the
100  highest versions, just examine vdb first, then nonvdb.
101
102* minor optimization in readlines usage in the backend; kills off a duplicate
103  stat call.
104
105* if a stale cache entry is detected, and the backend is writable, wipe the
106  cache entry.  Little bit slower when detected, but saves parsing the file
107  next time around.
108
109
110pkgcore 0.2.3:
111
112* support for ** in package.keywords
113
114* export preparsed SLOT to ebuild env; ebuilds shouldn't rely on this
115  since it can lead to fun metadata issues, but certain eclasses do.
116
117* fix exporting finalized form of RESTRICT to the build env; ticket 61.
118
119* fix for RESTRICT=fetch to not treat the filename as a uri.
120
121* expose the full make.conf environment to FETCHCOMMAND and RESUMECOMMAND-
122  ticket 58
123
124* added support for make.conf defined FETCH_ATTEMPTS; max # of unique uris to
125  attempts per file before giving up, defaults to 10.
126
127* added int_parser type for config instantiation definitions (ConfigHint),
128  and usual introspection support.
129
130* fix regression limiting satisifiers for depends to installed only in corner
131  case installed bound cycles; automake/perl specifically trigger this, thus
132  most folks should have seen it if using -B.
133
134* Better handling of non-ascii characters in metadata.xml.
135
136
137pkgcore 0.2.2:
138
139* The terminfo db is now used for xterm title updates. If title updates
140  worked in pkgcore 0.2 or 0.2.1 and no longer work in 0.2.2 file a bug and
141  include the TERM environment variable setting.
142
143* misc fixup for asserts in cpy code when debugging is enabled, and closing
144  directory fds when corner case error paths are taken (out of memory for
145  example).
146
147* atoms are picklable now.
148
149* add tests for pmaint copy (quickpkg equivalent), and add
150  --ignore-existing option to copy just pkgs that don't exist in the
151  target repo.
152
153* fix pmerge handling of --clean -B for automake and a few other DEPEND level
154  hard cycles.
155
156
157pkgcore 0.2.1:
158
159* fix corner case for portage configuration support; old system (<=2004)
160  installations may have /etc/portage/sets/world, which confused pmerges
161  world updating, leading to writing bad entries.  Ticket 54.
162
163* fix issues with distcc/ccache (ticket 55) so that they actually work.
164
165* fix pconfig dump traceback; ticket 56.
166
167
168pkgcore 0.2:
169
170* glsa pkgset will now include metadata/glsa from overlays.
171
172* pmaint script; tool for --sync'ing, doing quickpkging, moving packages
173  between repos for repository conversions. General repository maintenance.
174
175* sync subsystem: supports bzr, cvs, darcs, git, mercurial (hg), rsync,
176  and subversion.
177
178* binpkg repositories now support modification; FEATURES=buildpkg basically
179
180* binpkg contents handling is significantly faster.
181
182* pmerge:
183  * supports --ask (thanks to nesl247/alex heck)
184  * pmerge --replace is default now; use --noreplace for original behaviour.
185  * 'installed' set was added; is a pkgset comprised of all slotted atoms from
186    the vdb; useful for pmerge -u to enable upgrades of *everything* installed.
187  * versioned-installed set was added; useful for -e, this set is compromised
188    of exact version of everything installed.
189  * added --with-built-depends, -B; resolver defaults to ignoring 'built'
190    ebuild depends (those from vdb, from binpkgs for example), this option
191    tells it to update those depends.
192
193* xterm titles
194
195* massive resolver cleanup, and general fixes.
196
197* rewritten plugins system, register_plugins is no longer used.
198 
199* paludis flat_list cache read/write support.
200
201* portage flat_list cache write support (cache used for
202  $PORTDIR/metadata/sync)
203 
204* pebuild/pregen/pclone_cache: heavy UI cleanup.
205 
206* pquery:
207  * prettier printing of depends/rdepends/post_rdepends under -v
208  * print revdep reasons
209  * now requires an arg always; previously defaulted to '*', which is
210    still supported but also accessible via --all .
211  * added --maintainers-email and --maintainers-name; use case insensitive
212    regex by default for --maintainer style options.
213
214* added repo_id atom extension; see doc/extended-atom-syntax.rst for details.
215  short version, sys-apps/portage::gentoo would match portage *only* from
216  ``gentoo`` repository.
217
218* overlays now combine mirror targets from their parent repository, and
219  from their own repository data.
220
221* configuration subsystem:
222  * configuration: lazy section refs were added (lazy_ref), useful for when
223    the object arguement needs to be instantiated rarely (syncers for
224    repositories for example).
225
226  * mke2fs (literal /etc/mke2fs.conf file) akin configuration format was
227    added, pkgcore.config.mke2fsformat.config_from_file .
228
229* expanded test coverage.
230 
231* merged standalone test runner into setup.py; prefered way of running it is
232  ``python setup.py test`` now.
233
234* ongoing portage configuration support additions-
235  * FEATURES=collision-protect support
236  * INSTALL_MASK support, FEATURES noinfo, nodoc, and noman support.
237  * /etc/portage/package.* files can be directories holding seperate files
238    to collapse
239
240* gnu info regeneration trigger added.
241
242* performance improvements:
243  * cpython extensions of select os.path.* functionality; 20x boost for what
244    was converted over (stdlib's posix module is a bit inefficient).
245 
246  * cpython extension for file io in pkgcore.util.osutils: 7x faster on ENOENT
247    cases, 4x-5x on actual reading of small files (think cache files).  If
248    iterating over lines of a file, use pkgcore.util.osutils.readlines- again,
249    faster then standard file object's equivalent- 3x reduction (7.6ms to 2.5ms
250    for full contents  reading).
251
252  * partial cpython reimplementation of atom code; mainly parsing, and
253    critical __getattr__ invocation (2+x faster parse).
254 
255  * partial cpython reimplementation of depset code; strictly just parsing.
256    Faster (given), but mainly is able to do optimizations to the depset
257    cheaply that python side is heavily slowed down by- ( x ( y ) ) becomes
258    ( x y ) for example.
259
260  * chunks of restriction objects were pushed to cpython for memory reasons,
261    and bringing the instantiation cost down as low as possible (the common
262    restrict objects now are around 1-3us for new instantation, .5 to 1us
263    for getting a cached obj instead of instantiating).
264
265  * bug corrected in base repo classes identify_candidates method; should now
266    force a full walk of the repo only when absolutely required.
267
268  * chksuming now does a single walk over a file for all checksummers,
269    instead of one walk per checksummer- less disk thrashing, better
270    performance.
271
272  * vdb virtuals caching; massive performance boost via reduced IO.  Relies on
273    mtime checks of vdb pkg directories for staleness detection,
274    auto-regenerating itself as needed.
275
276* heavy profile code cleanup; should only read each common profile node once
277  now when loading up multiple profiles (pcheck).  Far easier code to read
278  in addition.
279
280* cache eclass staleness verification now relies on mtime comparison only-
281  allows for eclasses to move between repos; matches portage behaviour.
282
283* pkgcore.util.caching.*, via __force_caching__ class attr in consumers, can
284  be used to force singleton instance creation/caching (error if unhashable).
285
286* ebuild support:
287  * PORTAGE_ACTUAL_DISTDIR was reenabled, thus cvs/svn equivalent ebuilds are
288    usable once again.
289  * fixed pkgcore's pkgcore emulation of has_version/best_version matching
290    behaviour for old style virtuals to match portages (oddity, but ebuilds
291    rely on the goofy behaviour).
292  * various fixups to unpack function; should match portage behaviour as of
293    01/07 now.
294  * if FEATURES=test, set USE=test; if USE=test has been explicitly masked for
295    a package, disable src_test run; matches portage 2.1.2 behaviour.
296  * cleanup build directory, and unmerge directories upon finishing
297
298* filter-env now is accessible directly via python; pkgcore.ebuild.filter_env .
299  Needs further work prior to being usable for pcheck inspection of ebuilds,
300  but it's a good start.
301
302
303pkgcore 0.1.4:
304
305* Compatibility with caches written by portage 2.1.2_pre3-r8.
306
307
308pkgcore 0.1.3:
309
310* Always process "|| ( a b )" in the right order.
311
312  * Fix disabling a flag in package.use.mask or package.use.force.
313
314
315pkgcore 0.1.2:
316
317* Make filter_env work on hppa (and possibly more architectures) where using
318  python CFLAGS for this standalone binary does not work.
319
320* Fall back to plain text output if the TERM variable is unsupported.
321
322* Deal with dangling symlinks in binpkg repositories.
323
324* Fix expanding of incrementals (like USE) in make.defaults.
325
326* pquery: support --attr fetchables, handle extra commandline arguments as
327  -m or --expr restrictions.
328
329* USE deps once again allow setting a flag only if it is actually settable
330  on the target package.
331
332
333pkgcore 0.1.1:
334
335* hang fix for test_filter_env
336 
337* package.keywords fixes: no longer incremental, supports '*' and '~*'
338  properly
339 
340* FEATURES="userpriv" support works again.
341 
342* pmerge repository ordering now behaves properly; prefers src ebuilds, then
343  built pkgs; -k inverts that (previously was semi-undefined)
344 
345* binpkg fixes: run setup phase
346 
347* replace op fixes: force seperate WORKDIR for unmerge to protect against
348  env collisions
349 
350* loosened category rules: allow _. chars to support cross-dev hack.
351 
352* build fixes: make $A unique to avoid duplicate unpacks; force distdir
353  creation regardless of whether or not the pkg has any stated SRC_URI
354  (fixes cvs and subversion eclsas usage).  Fix sandbox execution to chdir
355  to an existant directory (sandbox will fail if ran from a nonexistant dir).
356 
357* change DelayedInstantiation objects to track __class__ themselves; this
358  fixes pquery to properly shutdown when ctrl+c'd (previously could swallow
359  the interrupt due to cpython isinstance swallowing KeyboardInterrupt).
360 
361 
362pkgcore 0.1:
363
364Initial release.
365 
366* Sync functionality doesn't yet exist (pmaint script will be in 0.2)
367 
368* pmerge vdb modification requires --force; this will be disabled in 0.2,
369  mainly is in place so that folks who are just looking, don't inadvertantly
370  trigger an actual modification.
371 
372* not all portage FEATURES are implemented; same for QA.
373 
374* If overlays are in use, pkgcore may defer to its' seperate cache to avoid
375  pkgcore causing cache regen for portage (and vice versa); this occurs due
376  to pkgcore treating overlays as their own repo and combining them at a
377  higher level; portage smushes them all together thus rendering each subtree
378  unusable in any standalone fashion.
379
380* pkgcore is far more anal about blocking bad behaviour in ebuilds during
381  metadata regeneration; tree is clean, but if you do something wrong in
382  global scope, it *will* catch it and block it.
383 
384* EBD; daemonized ebuild.sh processing (effectively), pkgcore reuses old
385  ebuild.sh processes to avoid bash startup, speeding regen up by roughly
386  2x.
Note: See TracBrowser for help on using the browser.