Releases: AcademySoftwareFoundation/rez
2.27.0 (2019-01-24)
2.26.4: Fixed Regression in 2.24.0
2.26.3: Package.py permissions issue
2.26.2: Package Copy Fixes For Non-Varianted Packages
2.26.1: Bugfix in Package Copy
2.26.0: Build System Detection Fixes
Release PR
Addressed Issues
- #549 '--build-system' rez-build option not always available
Notes
To fix this issue:
- The '--build-system' rez-build option is now always present.
- To provide further control over the build system type, the package itself can now specify its build
system - see https://github.com/nerdvegas/rez/wiki/Package-Definition-Guide#build_system
COMPATIBILITY ISSUE!
Unfortunately, the 'cmake' build system had its own '--build-system' commandline option also. This
was possible because previous rez versions suppressed the standard '--build-system' option if only
one valid build system was present for a given package working directory. This option has been
changed to '--cmake-build-system'.
RELEASE 2.25.0: Various Build-related issues
PR: #548
Addresses:
- #433: "package_definition_build_python_paths" defined paths are not available from top level in "package.py"
- #442: "rez-depends" and "private_build_requires"
- #416: Need currently-building-variant build variables
- #547: rez-cp follows symlinks within package payload
More details:
The biggest update in this release is the introduction of new variables accessible at early-bind time: building
, build_variant_index
and build_variant_requires
. This allows you to do things like define different private_build_requires per-variant, or a requires
that is different at runtime than it is at build time. In order to get this to work, a package.py is now re-evaluated multiple times when a build occurs - once pre-build (where 'building' is set to False), and once per variant build. Please see the updated wiki for more details: https://github.com/nerdvegas/rez/wiki/Package-Definition-Guide#available-objects
A new build-time env-var, REZ_BUILD_VARIANT_REQUIRES, has been added. This mirrors the new build_variant_requires
var mentioned above.
rez-depends has been updated to only include the private_build_requires
of the package being queried (previously, all packages' private build reqs were included, which is not useful). Recall that the previous release fixes the issue where private_build_requires
was being stripped from released packages.
The entirety of a package definition file can now see the extra build-time modules available via the package_definition_build_python_paths
config setting. Previously, only early bound functions could see these.
There was an issue with package copying (and thus the rez-cp
tool) where symlinks within a package's payload were expanded out to their source files at copy time. The default now is to keep such symlinks intact - but hte previous behavior can still be accessed with the rez-cp --follow-symlinks
option.
RELEASE 2.24.0: Package Copying
This release adds a new tool, rez-cp
, for copying packages/variants from one package repository to another, with optional renaming/reversioning. The associated API can be found in src/package_copy.py
.
Addresses:
Fixes included in this release:
- Package definition file writes are now atomic;
- private_build_requires is kept in installed/released packages;
- Fixes include modules not being copied into released packages;
- File lock is no longer created when variant installation happens in dry mode.
RELEASE 2.23.1: Fixed Regression in 2.20.0
Addresses: #532
Bug introduced in: https://github.com/nerdvegas/rez/releases/tag/2.20.0
RELEASE 2.23.0: Package Usage Tracking, Better Config Overrides
Addresses: #528
Two new features are added in this release:
-
Override any config setting with an env-var. For any setting "foo", you can now set the env-var REZ_FOO_JSON to a JSON-encoded string. This works for any config setting. Note that the existing REZ_FOO env-var overrides are still in place also; if both are defined, REZ_FOO takes precedence. This feature means you can now override some of the more complicated settings with env-vars, such as
package_filter
. -
Track context creation and sourcing via AMQP. Messages are published (on a separate thread) to the nominated broker/exchange/routing_key. You have control over what parts of the context are published. For more details: https://github.com/nerdvegas/rez/blob/master/src/rez/rezconfig.py#L414
Other notes:
- The embedded
simplejson
lib was removed. The nativejson
lib is used instead, and for cases where loads-without-unicoding-everything is needed,utils/json.py
now addresses that instead.