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¶
Development¶
Allow adding a package without a definition that defines at least one script
Allow users to suppress local-site package warnings
Correct
hint
missing from script environmentsDisable garbage collection and maintenance tasks for Git caches
Ensure the
punch
action triggers the post-build stageFixed incorrect specification for empty sites in JSON/SPDX SBOM documents
Fixed issue where
releng_copy
could not copy a broken symbolic linkFixed issue where
releng_remove
could not remove a broken symbolic linkFixed patch overrides not supporting alternative file extensions
Flag
RELENG_FORCE
when using thepunch
actionIntroduce
LIBFOO_CARGO_NOINSTALL
to support Cargo librariesIntroduce
RELENG_EXEC
environment/script variableIntroduce
libfoo-fresh
actionIntroduce
releng_symlink
helper script functionIntroduce a
nested
option 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
.rt
extensions for definitions/scriptsPromote use of
releng-tool.rt
for project configurationSupport Breezy VCS-type
Support injecting Visual Studio development environment variables
Support preallocated list/dictionary package configurations
Utilize forwarded arguments as fallback for
libfoo-exec
action
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_NEEDS
to replaceLIBFOO_DEPENDENCIES
Introduce
RELENG_GENERATED_LICENSES
script variableIntroduce
RELENG_GENERATED_SBOMS
script variableIntroduce
environment
project configurationIntroduce support for Cargo-based packages
Remote package configuration/scripting is now opt-in
Script helper
releng_mkdir
will now return the pathSupport multiple path components in
releng_mkdir
Support variable expansion for
releng_execute
argumentsUnknown arguments will now generate an error by default
Update SPDX license database to v3.25
1.2 (2024-07-01)¶
Introduce the
punch
action 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_SCRIPT
andRELENG_SCRIPT_DIR
variablesUpdate 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_TYPE
to override CMake build typesIntroduce
LIBFOO_ENV
to apply environment variables on multiple stagesIntroduce
state
action 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_COLOR
environment 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_copy
may 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
PREFIX
overrideSource 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
releng
namespace 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-exec
action with an=
character would crashIntroduce
*_BIN_DIR
environment/script variablesIntroduce
releng_move_into
helper script functionLocal VCS-type packages should now place sources inside a
local
folderPromote the use of SPDX license identifiers in package license options
Support
.releng
extensions 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
--werror
argumentSupport 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_PROVIDES
to help skip prerequisite checksIntroduce
PKG_DEVMODE
environment/script variableIntroduce
RELENG_TARGET_PKG
environment/script variableIntroduce
releng_copy_into
helper 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_DEFDIR
usage inside a package’s definitionSupport Bazaar quirk to utilize
certifi
certificatesSupport users overriding a project’s configuration path from command line
0.12 (2022-05-02)¶
Adding
dst_dir
toreleng_copy
for 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]_DIR
environment/script variablesIntroduce
PKG_BUILD_BASE_DIR
environment/script variableIntroduce
PREFIXED_*_DIR
environment/script variablesIntroduce
libfoo-exec
actionIntroduce
releng_include
helper 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_cat
helper script functionIntroduce
releng_ls
helper script functionIntroduce
releng_require_version
helper 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_prefix
bin path would not be registered in the script environment’s pathFixed an issue where
releng_mkdir
reports 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>_DEFDIR
environment/script variableIntroduce
LIBFOO_CMAKE_NOINSTALL
for 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_context
Support 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-build
Support 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_execute
requests 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_SUBMODULES
for package Git-specific configurationsIntroduce
releng_execute_rv
helper 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_REFSPECS
to 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_RECONFIGURE
without needing to check environment variables)Fixed issued when capturing with
releng_execute
which did not suppress output by defaultIntroduce
LIBTOOL_GIT_CONFIG
for package git-specific configurationsIntroduce a
releng-tool init
action for a quick-sample projectIntroduce support for distclean
Introduce support for prerequisites
Namespace moved from
releng
toreleng_tool
(releng
deprecated 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 readonly 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_env
andreleng_mkdir
helper 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