Release notes¶
The following provides the notable features, bug fixes and more for each release of releng-tool. For a complete list of detailed changes to releng-tool, please see the project's repository commits.
News¶
- 2.6 (2025-08-03)
- 2.5 (2025-06-22)
- 2.4 (2025-05-31)
- 2.3 (2025-05-04)
- 2.2 (2025-03-29)
- 2.1 (2025-02-17)
- 2.0 (2025-02-09)
- 1.4 (2025-01-19)
- 1.3 (2024-08-19)
- 1.2 (2024-07-01)
- 1.1 (2024-03-29)
- 1.0 (2023-12-22)
- 0.17 (2023-08-06)
- 0.16 (2023-05-07)
- 0.15 (2023-02-12)
- 0.14 (2023-02-05)
- 0.13 (2022-08-10)
- 0.12 (2022-05-02)
- 0.11 (2022-02-26)
- 0.10 (2021-12-31)
2.6.0 (2025-08-03)¶
Always output configured local sources paths
Avoid configuring
CMAKE_PREFIX_PATHand solely rely on find-related definesDetected tool version information is printed in debug mode
Ensure
CMAKE_MODULE_PATHpaths are pre-populated to avoid directory buildingHandle trailing path-slash in a local sources package reference
Support a pre-defined
CMAKE_FIND_ROOT_PATHfor staging/target/host areasUpdate SPDX license database to v3.27
2.5.0 (2025-06-22)¶
Avoid forwarding arguments to project when using
<pkg>-execDrop warnings when using local-site packages
Introduce a profile argument for a project's configuration discretion
Support checking multiple Visual Studio installs for
VsDevCmd.bat
2.4.0 (2025-05-31)¶
Include VCS revisions in generated SBOM documents
Introduce a
--debug-extendedargumentIntroduce quirk to help disable package-specific ignore-cache flags
Renamed SBOM format
rdp-spdxtordf-spdxSupport Visual Studio Build Tools when using injected Visual Studio support
2.3.0 (2025-05-04)¶
Installed Python packages now use releng-tool interpreter values for launchers
Introduce
LIBFOO_PYTHON_INSTALLER_INTERPRETERfor interpreter tailoringIntroduce
RELENG_PARALLEL_LEVELfor environment-managed job managementIntroduce
releng_pathhelper script functionEnsure Make configuration stage runs if any configuration setting is set
Ensure SCons configuration stage runs if any configuration setting is set
2.2.0 (2025-03-29)¶
Cleanup unexpected prints in
releng_require_versionExtension priority changed: (1)
.rt, (2).py, (3) (none), (4).relengFixed
releng_copynot replicating symlinks in base directoryImprove accepting of path-like arguments into multiple
releng_*callsImprove accepting of path-like arguments into multiple package options
Patches are applied with the
--verboseargumentSupport for extensionless configuration/scripts is deprecated
Support path-like types for multiple path-like script variables
Support working-directory changing with
releng_tmpdir
2.1.1 (2025-02-17)¶
Fixed extraction warnings for non-empty folders due to improper fetch flags
2.1.0 (2025-02-17)¶
Avoid multi-fetching packages with ignore-cache in development mode
Improve ease of unconfiguring local-sources mode with single
unsetcallIntroduce
*_SHARE_DIRenvironment/script variablesIntroduce
default_devmode_ignore_cacheproject configurationLocal-sources configurations can now accept
package/-prefixed entriesPrevent unused CLI warnings with CMake for releng-tool-managed options
Support a pre-defined
CMAKE_MODULE_PATHfor CMake staging/target/host areas
2.0.1 (2025-02-09)¶
Including missing completion scripts and man page in source package
2.0 (2025-02-09)¶
(note) Support for non-LTS version of Python have been dropped
Fixed handling of Git submodules using incorrect revisions
Fixed issue where configured prefixes could be ignored in Python packages
Fixed issue where file URIs sites may prevent other URL sites from fetching
Fixed issue where triggering a re-install on select Python packages would fail
Improved support for host tool integration with Python packages
Introduce
--only-mirrorargument to force external package fetch with mirrorIntroduce alternative hash-files for package development revisions
Overhaul of Python package processing with install scheme configuration via
LIBFOO_PYTHON_INSTALLER_SCHEME, launcher configuration viaLIBFOO_PYTHON_INSTALLER_LAUNCHER_KINDand dist overrides viaLIBFOO_PYTHON_DIST_PATHScript function
releng_lsnow accepts arecursiveargumentSupport URL fetch retries on transient errors
Support for GNU Bazaar sites is deprecated
Support for Python distutils packages is deprecated
Support for
override_revisionsis deprecatedSupport for
override_sitesis deprecatedSupport format hints in
url_mirrorSupport ignoring
stderroutput in execute callsSupport maximum checks when using
releng_require_versionUse of Python's
installerrequired for all Python packages
1.4 (2025-01-19)¶
Allow adding a package without a definition that defines at least one script
Allow users to suppress local-site package warnings
Correct
hintmissing from script environmentsDisable garbage collection and maintenance tasks for Git caches
Disable update checks for PDM when processing PDM packages
Ensure the
punchaction triggers the post-build stageFixed configuration failure when using older Meson (pre-v1.1.1)
Fixed incorrect JSON/SPDX SBOM documents for projects with empty/local sites
Fixed issue where
releng_copycould not copy a broken symbolic linkFixed issue where
releng_removecould not remove a broken symbolic linkFixed patch overrides not supporting alternative file extensions
Flag
RELENG_FORCEwhen using thepunchactionIntroduce
LIBFOO_CARGO_NOINSTALLto support Cargo librariesIntroduce
RELENG_EXECenvironment/script variableIntroduce
libfoo-freshactionIntroduce
releng_symlinkhelper script functionIntroduce a
nestedoption for I/O copy/move utility callsIntroduce a shared build target for Cargo packages
Perform automatic Cargo patching for project-managed dependencies
Post-fetching Cargo dependencies now occurs after a package's patch stage
Promote use of
.rtextensions for definitions/scriptsPromote use of
releng-tool.rtfor project configurationSupport Breezy VCS-type
Support injecting Visual Studio development environment variables
Support newer GitLab CI flag for automatic debugging mode
Support preallocated list/dictionary package configurations
Update SPDX license database to v3.26
Utilize forwarded arguments as fallback for
libfoo-execaction
1.3 (2024-08-19)¶
Automatic debugging mode when detecting CI debugging runs
Correct unexpected dot in prefix path variables for empty prefixed builds
Fixed incorrect specification version tag in RDF/SPDX SBOM documents
Fixed issue where an aborted Mercurial fetch could require manual cleanup
Include license list version in SPDX SBOM documents
Introduce
LIBFOO_NEEDSto replaceLIBFOO_DEPENDENCIESIntroduce
RELENG_GENERATED_LICENSESscript variableIntroduce
RELENG_GENERATED_SBOMSscript variableIntroduce
environmentproject configurationIntroduce support for Cargo-based packages
Remote package configuration/scripting is now opt-in
Script helper
releng_mkdirwill now return the pathSupport multiple path components in
releng_mkdirSupport variable expansion for
releng_executeargumentsUnknown arguments will now generate an error by default
Update SPDX license database to v3.25
1.2 (2024-07-01)¶
Introduce the
punchaction to support forced rebuild of packagesSupport automatic package preparation for compatible local-sourced packages
Update SPDX license database to v3.24
1.1 (2024-03-29)¶
Prevent SSH authentication prompts that may occur when using Git
Support SPDX license identifier field for custom licenses
Support environment output directory override (
RELENG_OUTPUT_DIR)Support global output containers (
RELENG_GLOBAL_OUTPUT_CONTAINER_DIR)Update SPDX license database to v3.23
1.0 (2023-12-22)¶
Introduce
RELENG_SCRIPTandRELENG_SCRIPT_DIRvariablesUpdate SPDX license database to v3.22
0.17 (2023-08-06)¶
Fixed issue with CMake-generated export targets missing prefix overrides
Fixed issue with local-source configurations when provided relative paths
Introduce
LIBFOO_CMAKE_BUILD_TYPEto override CMake build typesIntroduce
LIBFOO_ENVto apply environment variables on multiple stagesIntroduce
stateaction for dumping configured releng-tool stateIntroduce support for Perforce sites
Support Git repository interaction in output directories for Git-based sources
Support ability to unconfigure development/local-sources mode
Support the existence of a
NO_COLORenvironment variableUpdate SPDX license database to v3.21
0.16 (2023-05-07)¶
Enforce strict hash checking in development mode for external packages which define a development revision
Fixed issue where
releng_copymay fail when provided a single part relative destinationFixed issue where HTML-based software build of materials would be empty
Introduce support for Meson-based packages
Prevent processing packages when SBOM generation is explicitly requested
Support SPDX-tailored software build of materials
Support module-specific local-sources to accept
:instead of@, allowing certain shells to take advantage of path auto-completion
0.15 (2023-02-12)¶
CMake install events will now always skip dependency checks
Fixed issue where extension loading may cause issues in Python 2.7
Fixed issue where reconfiguration may not flag rebuild flags (and related)
Fixed issue where statistics (PDF) may fail on legacy matplotlib environments
Improve support for patching a root build directory and sub-directories
Introduce extension support for event listeners
Make projects will now be provided a
PREFIXoverrideSource distribution now includes completion scripts and tests
Support setting software build of materials format in project configuration
0.14 (2023-02-05)¶
(note) The deprecated
relengnamespace has been removedCMake install events will now always force installs by default
Fixed issue where CMake projects with implicit target area installs have issues finding includes/libraries with
find_<x>callsFixed issue where
libfoo-execaction with an=character would crashIntroduce
*_BIN_DIRenvironment/script variablesIntroduce
releng_move_intohelper script functionLocal VCS-type packages should now place sources inside a
localfolderPromote the use of SPDX license identifiers in package license options
Support
.relengextensions for scriptsSupport automatic include injection for CMake staging/target/host areas
Support for Poetry Python setup type
Support generating a software build of materials
Support treating releng-tool warnings as errors with
--werrorargumentSupport user paths in package-specific local-sources overrides
0.13 (2022-08-10)¶
Avoid interaction with target area when using CMake projects that only uses the staging area
Downloaded files will now be stored in sub-directories under
dl/Ensure clean-related environment/script variables are set for package-specific clean requests
Fixed a rare chance that an explicit package run provided via command line may be ignored
Fixed issue in older Python interpreters where the executed package order may not be consistent
Fixed issue where select package-specific environment variables may leak into other packages
Improve handling of
file://sites in WindowsImprove support for host-built Python packages
Introduce
LIBFOO_HOST_PROVIDESto help skip prerequisite checksIntroduce
PKG_DEVMODEenvironment/script variableIntroduce
RELENG_TARGET_PKGenvironment/script variableIntroduce
releng_copy_intohelper script functionIntroduce support for Python setup types
Introduce support for SCons-based packages
Introduce support for development mode configurations, allowing users to target specific revisions or sites for packages supporting alternative source revisions
Introduce support for global and package-specific path overrides when operating in local-sources mode
Introduce support for make-based packages
Support
PKG_DEFDIRusage inside a package's definitionSupport Bazaar quirk to utilize
certificertificatesSupport users overriding a project's configuration path from command line
0.12 (2022-05-02)¶
Adding
dst_dirtoreleng_copyfor explicit copies to directoriesAdjust automatic job detection to use physical cores instead of logical cores
Fixed an issue where forced Git-fetches with branch revisions may have stale content on first extract
Fixed where package-specific prefixes/njobs would leak to other projects
Introduce
*_[INCLUDE,LIB]_DIRenvironment/script variablesIntroduce
PKG_BUILD_BASE_DIRenvironment/script variableIntroduce
PREFIXED_*_DIRenvironment/script variablesIntroduce
libfoo-execactionIntroduce
releng_includehelper script functionSupport Make-styled environment injections via command line
Support package variable overrides via command line
0.11 (2022-02-26)¶
Always pre-create install directory before package install scripts are invoked
Fixed an issue where nested zip files could not extract
Introduce
releng_cathelper script functionIntroduce
releng_lshelper script functionIntroduce
releng_require_versionhelper script functionNo longer extract with non-local-supported tar command if host format detected
No longer warn if hash file is empty for extracted contents check
Support removing cached assets through a forced fetch argument
Support triggering a reconfiguration of all packages through a force argument
0.10 (2021-12-31)¶
Fixed an issue where a configured
sysroot_prefixbin path would not be registered in the script environment's pathFixed an issue where
releng_mkdirreports success if the target path is a file that already existsFixed an issue where extensions may not load on Python 2.7
Fixed an issue where post-processing may be invoked even if a package's stage would fail
Introduce
<PKG_NAME>_DEFDIRenvironment/script variableIntroduce
LIBFOO_CMAKE_NOINSTALLfor CMake packages with no install ruleIntroduce support for rsync sites
Provide an option to suppress root warning (for zero-UID containers)
Remove the requirement to have a package version entry
Support configuring cache/download directories using environment variables
Support custom SSL context overrides via
urlopen_contextSupport providing an assets container directory (for cache/download folders)
0.9 (2021-10-02)¶
Fixed an import issue when running with Python 3.10
Fixed an issue where a cyclic package check provided a bad message
Fixed an issue where a Git submodule with a target branch may fail to extract
Post-processing script renamed to
releng-post-buildSupport development mode relaxed branch fetching for Git sites
Support requiring a Git source's revision to be GnuPG-signed (GPG)
Support using ASCII-armor (asc) files to package integrity checks
0.8 (2021-08-28)¶
Allow DVCS packages to share caches (to minimize space/time fetching)
Fixed an issue where tools/
releng_executerequests would fail on Python 2.7 with Unicode-defined environment variablesFixed an issue where a diverged revision in Git would incorrectly populate a package's build directory with the cached revision instead of the remote revision
Introduce
LIBFOO_GIT_SUBMODULESfor package Git-specific configurationsIntroduce
releng_execute_rvhelper script functionIntroduce statistic tracking (stage durations) which generate to into the output folder after execution
Introduce support for package-specific distclean
Introduce support for package-specific license processing
Package-specific extraction/patching no longer requires dependency processing
Rework
LIBTOOL_GIT_REFSPECSto provide more control over custom revisions that can be fixed (i.e. no longer fixed on<target>/*/head; instead, a configured value-wildcard string should be used)Support auto-detecting Python interpreter path overrides in windows
Support faster Git fetching
Support pruning any remote-tracked references in a Git-cached project when a forced fetch request is made
0.7 (2021-08-08)¶
Fetch from an already cached package's site if the fetch is explicitly requested
Fixed an issue with registry failing to import on Python 2.7
Fixed issue where build/install definitions where not used in in their respective stages
Fixed issue where mercurial packages fetched using the version option instead of the revision option
Fixed issue where the host directory was not registered in a stage's path
Introduce clean, logging flags and releng-version into the script environments
Only fetch a single package if only said package is requested to be fetched
Package without a site will throw an error when VCS-type is set
Reconfigure/rebuild requests will now perform all trailing stages for the package(s) being redone; rebuild/reconfigure-only actions have been introduced to force re-invoking a specific stage
Support loading remote package configuration
Support loading remote package scripts
releng-tool will now full stop if external package definition fails to load
0.6 (2020-10-10)¶
Always register optional flags inside scripts (allowing developers to use flags like
RELENG_RECONFIGUREwithout needing to check environment variables)Fixed issued when capturing with
releng_executewhich did not suppress output by defaultIntroduce
LIBTOOL_GIT_CONFIGfor package git-specific configurationsIntroduce a
releng-tool initaction for a quick-sample projectIntroduce support for distclean
Introduce support for prerequisites
Namespace moved from
relengtoreleng_tool(relengdeprecated for an interim)
0.5 (2020-09-07)¶
Fixed false error when verifying cached Git reference
0.4 (2020-09-07)¶
Allow developers to fetch from addition Git refspecs (e.g. pull requests)
Allow setting quirks in command line
Fixed a scenario where a Git extraction stage could fetch sources
Fixed Git fetch/extraction if package is cached and site has changed
Improved handling of output files which may set the read-only attribute
Introduce support for local interim-development package content
Introduce support for shallow Git fetching
0.3 (2019-10-19)¶
Allow packages to configure to ignore cache while in development mode
Allow packages to configure for no-extraction for sources
Fixed default interpreter detection for Python packages
Fixed fetching from Mercurial sources
Fixed fetching from newer Git hashes if repository was already cached
Introduce
releng_envandreleng_mkdirhelper script functionsIntroduce support for package-specific bootstrapping stage
0.2 (2019-03-15)¶
A project's host directory will now be registered in the system's path during execution
Allow tracking project's license files when found in multiple directories
Fixed loading configuration overrides script if one actually exists
Re-work various script names (e.g.
releng.py->releng)
0.1 (2019-02-24)¶
Hello world