2.7 (2026-02-08)¶
Improved processing of command outputs¶
For executable calls, all command line output is now processed as a stream over character polling for newlines. This should help improve a user's experience for outputs that utilize a carriage return character to update an existing line.
For example, Git fetch attempts would previously output multiple lines of fetch status updates:
fetching my-project...
fetching most recent sources
remote: Enumerating objects: 2517, done.
remote: Counting objects: 0% (1/2517)
remote: Counting objects: 1% (26/2517)
remote: Counting objects: 2% (51/2517)
...
remote: Counting objects: 100% (2517/2517), done.
remote: Compressing objects: 0% (1/1812)
remote: Compressing objects: 1% (19/1812)
remote: Compressing objects: 2% (37/1812)
...
remote: Compressing objects: 100% (1812/1812), done.
Receiving objects: 0% (1/2517)
Receiving objects: 1% (26/2517)
Receiving objects: 2% (51/2517)
...
Receiving objects: 100% (2517/2517), 3.60 MiB | 8.47 MiB/s, done.
remote: Total 2517 (delta 1038), reused 1465 (delta 663), pack-reused 0 (from 0)
Resolving deltas: 0% (0/1038)
Resolving deltas: 1% (11/1038)
Resolving deltas: 2% (21/1038)
...
Resolving deltas: 100% (1038/1038), done.
...
Where now the output operates in a similar fashion as one would experience if
invoking git calls directly:
fetching my-project...
fetching most recent sources
remote: Enumerating objects: 2517, done.
remote: Counting objects: 100% (2517/2517), done.
remote: Compressing objects: 100% (1812/1812), done.
remote: Total 2517 (delta 1038), reused 1465 (delta 663), pack-reused 0 (from 0)
Receiving objects: 100% (2517/2517), 3.60 MiB | 8.72 MiB/s, done.
Resolving deltas: 100% (1038/1038), done.
...
Linting support¶
New linting actions have been added into releng-tool. Users can perform a quality check on a project using:
releng-tool lint
Or perform a package-specific lint using:
releng-tool <package-name>-lint
Linting checks are very limited at this time by only checking for expected package definition variables. Ideally it can be improved/expanded on over time.
Meson Build Type package option¶
A new package option LIBFOO_MESON_BUILD_TYPE has
been added for Meson packages. In previous releases, to override the build
type, an option override was required to be set:
LIBFOO_CONF_OPTS = {
'buildtype': 'debug',
}
Alternatively, users can now specify the build type without needing to prepare package options:
LIBFOO_MESON_BUILD_TYPE = 'debug'
Only show SSH error logs for remote Git actions¶
Git operations will now suppress non-error log messages by default. This it to help avoid possible MOTDs or other instance banner messages that is not typically desired in an automated fetch/build context.
New Package Stage Extension Events¶
Extension support now includes events for individual package stages (e.g. configuration, build, etc.). Each stage will now emit events at the start of a stage and after a stage has been successfully run.
For example, to hook into the start and end events of each package's configuration stage, the following can be used:
def releng_setup(app):
app.connect('package-configure-started', on_pkgcfg_started)
app.connect('package-configure-finished', on_pkgcfg_finished)
def on_pkgcfg_started(env):
...
def on_pkgcfg_finished(env):
...
For more information, see extensions.