1.2 (2024-07-01)¶
Automatic package preparation for compatible local-sourced packages¶
When operating in a local-sources mode, users would be required to prepare the sources of internal-flagged packages before running a build. While this gives users full control over the sources used, the process can be a tedious when trying to prepare a new working environment.
To help improve the user experience, when releng-tool is now operating in a local-sources mode and an internal-flagged package does not have sources already setup, releng-tool will attempt to prepare the package automatically. For supported version control systems, when a repository is detected as missing, releng-tool will use the package’s site to automatically clone/checkout sources. Supported types are as follows:
CVS
Git
Mercurial
SVN
Once a local package has been prepared, releng-tool will no longer try to manage the repository. Responsibility moves back to the user in the same manner as if the user manually prepared the repository.
Introducing the punch action¶
For a releng-tool run, packages will go through various stages (fetching, configuration, building, etc.) followed by any post-stage scripts. Once a package has been processed, it will not repeat a stage until the output is cleaned. Users do have means to perform rebuilds, although users need to explicitly request reconfigurations, rebuilds, etc. on specific packages based on what they may be working on. If a developer is updating several packages, which may be common in a local-sources mode, the developer may need to explicitly request a re-action on multiple packages which can be time-consuming.
This release introduces a new action punch
:
releng-tool punch
It allows a user to hint to releng-tool to force processing each package,
even if a package has already completed stages before. Specifically, when
running with a punch
action, a releng-tool run will
operate very similar as if the action was not set. However, if a package
has already be configured, built or installed; these actions will be
performed again in the same manner as if a user invoked
<package>-reconfigure
,
<package>-rebuild
or
<package>-reinstall
; respectively. This may be
time-consuming for a run to repeat these stages, but helps a user avoid
needing to run multiple commands for a desired rebuild.
Note that this is similar to what the --force
argument
already provides. Having an action dedicated for this capability should
make it a bit more straightforward to users what they are performing. The
use of the --force
argument may change in the future.
Introducing this action should help support a possible deprecation/repurpose,
if needed.