Releases: AcademySoftwareFoundation/rez
RELEASE 2.16.0: Windows fixes
Addresses: #377
RELEASE 2.15.0: Misc minor PRs
RELEASE 2.14.2: Solver fix for variant splitting
Addresses: #448
Includes new tests.
RELEASE 2.14.1: Package timestamp orderer fix
Addresses: #458
Test has been added to detect this case.
RELEASE 2.14.0: Solver fixes
Fixed 2 solver bugs, and added better verbose solver debugging output.
The first bug was very simple and I'm surprised it hasn't caused issues before. It was a bug in the RequirementsList
class. This class would give incorrect values from the names
and conflict_names
properties when a requirements list was made up of confict- and non-conflict requirements which get merged (eg, ["foo-1", "~foo-1.2+"]). This in turn was causing incorrect extractions during the solve.
The second bug was more difficult to understand. In the solver, whenever a "scope" changes - that is, it is either intersected, reduced, or split into 2 new scopes - other scopes must then reduce against it. However there was one case not taken into account. That is when an existing conflict scope (eg "~foo-1") is intersected with an extraction (eg "foo-1.2+") to then become a non-conflicting scope. In this case, that scope itself then needs to reduce against the other scopes as well. The reason is that this is the only case where a changed scope "widens" - ie new variants appear in the scope. Because there are new variants, the scope needs to be reduced, because some of these variants might conflict with the current scope set.
Solver debugging output has also been improved for readability, and some more detailed stats have been added.
The description of the solver algorithm has been improved also, and has been moved from the block comment at the top of solver.py
into the new file SOLVER.md
in the same directory.
RELEASE 2.13.1: Two ResolvedContext fixes
Merges PR: #440
- Fixed bug where parent_environ was not set into target environment dict when executing command in ResolvedContext.exec_command().
- Added unit tests for both cases.
RELEASE 2.13.0: Misc
- Fixed infinite recursion bug if package_load_callback specified in ResolvedContext (manifests in rez-gui);
- Added ability to set build_command=False in package.py, indicates no build step needed;
- Added new 'stop' command for package.py commands, formal way to abort a resolve.
RELEASE 2.12.0: Format Version Checks
Addresses: #406
- See: https://github.com/nerdvegas/rez/wiki/Package-Definition-Guide#requires_rez_version
- A warning is now printed if an older rez version is used to load a newer package that uses a new format that may be incompatible with the rez version in use.
RELEASE 2.11.0: New Package Orderers
Added new package orderers:
- NullPackageOrder
- SortedOrder
- PerFamilyOrder
- VersionSplitPackageOrder
Added package orderer unit tests.
There will be a further release that adds more to this release, specifically adding support for setting a default orderer in the rezconfig, as well as ordering variants during a solve using the active orderer (which does not currently happen).
RELEASE 2.10.0: Misc Improvements
- The new expand_requires function has been improved (syntax such as foo-1+<1.* is supported); and a new '**' wildcard is added. See: https://github.com/nerdvegas/rez/wiki/Package-Definition-Guide#requirements-expansion
- Arbitrary functions, and variables with double leading underscore, are now stripped from installed packages (as well as python modules). This makes it more convenient to write programmatic package.py files. See: https://github.com/nerdvegas/rez/wiki/Package-Definition-Guide#package-attributes