2.9 (2026-03-01)

New Linting Checks

Thirteen new linting checks have been added when using the lint action:

releng-tool lint

An overall summary of additions includes:

  • Notify use of deprecated configurations.

  • Notify use of development-mode package configurations for packages which do not configure a development revision.

  • Various checks for package/feature-specific configurations when a given package/VCS/feature type is not applicable (e.g. attempting to use Git-related features for a non-Git VCS type package).

This change drops some warnings that were originally presented in a default releng-tool run to now only show in a lint request.

Support for Development Mode Patching

Developers may now utilizing patching support for packages with a development revision. Historically, patches would only be aimed to run for non-development revisions as a way to support delays in patch application for upstream release versions. However, maintainers of a releng-tool project may also experience the same delays when waiting for the application of packages on development streams they cannot control. With this release, developers will have new options to hint whether or not patches are applied to a package no matter what mode is configured.

The default patching strategy has not changed from previous releases. Patches for a package are still automatically detected and applied for non-development revisioned packages.

If a developer now wishes to apply patches for a package with a development mode revision, the LIBFOO_DEVMODE_PATCHES option can now be used. For example:

LIBFOO_DEVMODE_REVISION = 'feature/alpha'
LIBFOO_DEVMODE_PATCHES = True

When operating in development mode, the libfoo package will utilize the feature/alpha branch and will automatically apply patches to the cloned sources during the patching stage. The patch configuration also supports pattern matching to have only specific or a wildcard of patches to apply. For example:

LIBFOO_DEVMODE_PATCHES = [
    '005-correct-cint-usage.patch',
    '007-remove-broken-mode.patch',
]

With the ability to support patching packages in development mode, developers utilizing this feature may now need to configure packages to not apply for a standard build. To support this, the configuration option LIBFOO_IGNORE_PATCHES has been introduced. If a developer wants to have new patches applied to only in a development mode context, the following configuration can be used:

LIBFOO_DEVMODE_REVISION = 'feature/bravo'
LIBFOO_DEVMODE_PATCHES = True
LIBFOO_IGNORE_PATCHES = True

Normal builds will now not apply any patches to libfoo by default, and only apply changes when in a development mode. This option also supports patterns to allow ignoring only specific patches for a normal build. For example:

LIBFOO_IGNORE_PATCHES = [
    '*-new-feature-*',
    '006-support-new-compiler.patch',
]

For more information on tailoring patch applications for specific development modes, refer to the documentation of the newly added options.

Planned Removals Next Release

A series of deprecated features are now planned to be removed in a following release.

  • Bazaar-site support is planned to be removed. Developers can switch to using the Breezy-site type.

  • Support for Python 3.9 (EOL) will be dropped.

  • Package configurations override_revisions and override_sites will no longer be supported. Developers can take advantage of the revisions configuration key or utilize variable injection for overriding options on the fly.

  • The LIBFOO_SKIP_REMOTE_* options will be removed as respective LIBFOO_REMOTE_* options exist.

  • An implicit Python package setup type will no longer be supported. Python-based packages are required to configure LIBFOO_PYTHON_SETUP_TYPE.