Skip to content

Releases: zephyrproject-rtos/west

v1.2.0

07 Oct 00:02
v1.2.0
Compare
Choose a tag to compare

Major changes:

  • New 'west grep' command for running a "grep tool" in your west workspace's
    repositories. Currently, 'git grep', 'ripgrep', and standard 'grep' are
    supported grep tools.

    To run this command to get 'git grep foo' results from all cloned,
    active repositories, run:

    west grep foo

    For more details, run 'west help grep'.

Other changes:

  • The manifest file format now supports a 'description' field in each
    'projects:' element.

  • 'west list --format' now accepts '{description}' in the format
    string, which prints the project's 'description:' value.

  • 'west compare' now always prints information about
    the manifest-rev branch

Bug fixes:

  • 'west init' aborts if the destination directory already exists.

API changes:

  • 'west.commands.WestCommand' methods 'check_call()' and
    'check_output()' now take any kwargs that can be passed on
    to the underlying subprocess function.

  • 'west.commands.WestCommand.run_subprocess()': new wrapper
    around 'subprocess.run()'. This could not be named 'run()'
    because 'WestCommand' already had a method by this name.

  • 'west.commands.WestCommand' methods 'dbg()', 'inf()',
    'wrn()', and 'err()' now all take an 'end' kwarg, which
    is passed on to the call to 'print()'.

  • 'west.manifest.Project' now has a 'description' attribute,
    which contains the parsed value of the 'description:' field
    in the manifest data.

v1.0.0

20 Feb 21:06
v1.0.0
Compare
Choose a tag to compare

Major changes in this release:

  • The APIs are now declared stable. Any breaking changes will be
    communicated by a major version bump from v1.x.y to v2.x.y.

  • West v1.0 no longer works with the Zephyr v1.14 LTS releases. This LTS has
    long been obsoleted by Zephyr v2.7 LTS. If you need to use Zephyr v1.14, you
    must use west v0.14 or earlier.

  • Like the rest of Zephyr, west now requires Python v3.8 or later

  • West commands no longer accept abbreviated command line arguments. For
    example, you must now specify "west update --keep-descendants" instead of
    using an abbreviation like "west update --keep-d". This is part of a change
    applied to all of Zephyr's Python scripts' command-line interfaces. The
    abbreviations were causing problems in practice when commands were updated to
    add new options with similar names but different behavior to existing ones.

Other changes:

  • All built-in west functions have stopped using "west.log"

  • "west update": new "--submodule-init-config" option.
    See commit 9ba92b0 for details.

Bug fixes:

  • West extension commands that failed to load properly sometimes dumped stack.
    This has been fixed and west now prints a sensible error message in this case.

  • "west config" now fails on malformed configuration option arguments
    which lack a "." in the option name

API changes:

  • The west package now contains the metadata files necessary for some static
    analyzers (such as mypy) to auto-detect its type annotations.
    See commit d9f00e2 for details.

  • the deprecated "west.build" module used for Zephyr v1.14 LTS compatibility was
    removed

  • the deprecated "west.cmake" module used for Zephyr v1.14 LTS compatibility was
    removed

  • the "west.log" module is now deprecated. This module's uses global state,
    which can make it awkward to use it as an API which multiple different python
    modules may rely on.

  • The west.commands module got some new APIs which lay groundwork
    for a future change to add a global verbosity control to a command's output,
    and work to remove global state from the "west" package's API:

    • New "west.commands.WestCommand.init()" keyword argument: "verbosity"
    • New "west.commands.WestCommand" property: "color_ui"
    • New "west.commands.WestCommand" methods, which should be used to print output
      from extension commands instead of writing directly to sys.stdout or
      sys.stderr: "inf()", "wrn()", "err()", "die()", "banner()",
      "small_banner()"
    • New "west.commands.VERBOSITY" enum

v0.14.0

18 Oct 16:39
v0.14.0
Compare
Choose a tag to compare

v0.13.1

20 Apr 16:56
v0.13.1
Compare
Choose a tag to compare
Bug fix:

- When calling west.manifest.Manifest.from_file() when outside of a
  workspace, west again falls back on the ZEPHYR_BASE environment
  variable to locate the workspace.

v0.13.0

20 Apr 13:43
v0.13.0
Compare
Choose a tag to compare
New features:

    You can now associate arbitrary user data with the manifest repository itself in the manifest: self: userdata: value, like so:

    manifest:
      self:
        userdata: <any YAML value can go here>

Bug fixes:

    The path to the manifest repository reported by west could be incorrect in certain circumstances detailed in [issue #572](https://github.com/zephyrproject-rtos/west/issues/572). This has been fixed as part of a larger overhaul of path handling support in the west.manifest [API](https://docs.zephyrproject.org/latest/develop/west/west-apis.html#west-apis) module.

    The west.Manifest.ManifestProject.__repr__ return value was fixed

API changes:

    west.configuration.Configuration: new object-oriented interface to the current configuration. This reflects the system, global, and workspace-local configuration values, and allows you to read, write, and delete configuration options from any or all of these locations.

    west.commands.WestCommand:

        config: new attribute, returns a Configuration object or aborts the program if none is set. This is always usable from within extension command do_run() implementations.

        has_config: new boolean attribute, which is True if and only if reading self.config will abort the program.

    The path handling in the west.manifest package has been overhauled in a backwards-incompatible way. For more details, see commit [56cfe8d1d1](https://github.com/zephyrproject-rtos/west/commit/56cfe8d1d1f3c9b45de3e793c738acd62db52aca).

    west.manifest.Manifest.validate(): this now returns the validated data as a Python dict. This can be useful if the value passed to this function was a str, and the dict is desired.

    west.manifest.Manifest: new:

        path attributes abspath, posixpath, relative_path, yaml_path, repo_path, repo_posixpath

        userdata attribute, which contains the parsed value from manifest: self: userdata:, or is None

        from_topdir() factory method

    west.manifest.ManifestProject: new userdata attribute, which also contains the parsed value from manifest: self: userdata:, or is None

    west.manifest.ManifestImportFailed: the constructor can now take any value; this can be used to reflect failed imports from a [map](https://docs.zephyrproject.org/latest/develop/west/manifest.html#west-manifest-import-map) or other compound value.

    Deprecated configuration APIs:

    The following APIs are now deprecated in favor of using a Configuration object. Usually this will be done via self.config from a WestCommand instance, but this can be done directly by instantiating a Configuration object for other usages.

        west.configuration.config

        west.configuration.read_config

        west.configuration.update_config

        west.configuration.delete_config

West v0.12.0

04 Nov 21:30
v0.12.0
Compare
Choose a tag to compare
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

v0.11.1

10 Aug 16:38
v0.11.1
Compare
Choose a tag to compare

New features:

  • west status now only prints output for projects which have a nonempty
    status.

Bug fixes:

  • The manifest file parser was incorrectly allowing project names which contain
    the path separator characters / and . These invalid characters are
    now rejected.

    Note: if you need to place a project within a subdirectory of the workspace
    topdir, use the 'path:' key. If you need to customize a project's fetch URL
    relative to its remote 'url-base:', use 'repo-path:'.

  • The changes made in west v0.10.1 to the 'west init --manifest-rev' option
    which selected the default branch name were leaving the manifest repository
    in a detached HEAD state. This has been fixed by using 'git clone' internally
    instead of 'git init' and 'git fetch'. See issue #522 for details.

  • The WEST_CONFIG_LOCAL environment variable now correctly
    overrides the default location, /.west/config.

  • west update --fetch=smart (smart is the default) now correclty skips
    fetches for project revisions which are lightweight tags (it already
    worked correctly for annotated tags; only lightweight tags were unnecessarily
    fetched).

Other changes:

  • The fix for issue #522 mentioned above introduces a new restriction. The
    west init --manifest-rev option value, if given, must now be either a
    branch or a tag. In particular, "pseudo-branches" like GitHub's
    pull/1234/head references which could previously be used to fetch a pull
    request can no longer be passed to --manifest-rev. Users must now fetch
    and check out such revisions manually after running west init.

API changes:

  • west.manifest.Manifest.get_projects() avoids incorrect results in
    some edge cases described in issue #523.

  • west.manifest.Project.sha() now works correctly for tag revisions.
    (This applies to both lightweight and annotated tags.)