Skip to content

Releases: zephyrproject-rtos/west

v1.4.0

22 May 13:54
v1.4.0
Compare
Choose a tag to compare

Major changes

  • Allow appending data to configuration strings #768
    To append to a value for <name>, type: west config -a <name> <value>
  • Add --untracked argument option to west manifest to display untracked files and directories #786
    Run west manifest --untracked in a workspace to print all files and directories that are not tracked or managed by west.
  • Add --inactive argument option to west list to support printing inactive projects #794
  • Support --active-only argument option for the --resolve and --freeze manifest commands #808

Other changes

  • Turn warnings into errors when running tests in CI #760
  • Introduce ruff linter #762, #763, #764, #765, #766, #770
  • Convert custom argparse action to a mutually exclusive group for the configuration command's
    local/global/system argument #769
  • Print an error when reading a missing configuration value #778
  • Added a test for built-in or extension commands with duplicate names #780
  • Introduce OpenSSF/CodeQL/docker workflows and pin Github actions
    #787, #788, #790, #791, #800, #803 , #804
  • Run CodeCov in CI and report coverage #805, #810, #812
  • Cancel ongoing CI runs when updating a PR #811
  • Use YAML C-loader when available #806
  • Drop setuptools dependency #814

Bug fixes

  • Fix assertion checks when verifying the output of commands during testing #777
  • Remove unnecessary uses of the global/nonlocal declaration #798

v1.4.0 Alpha1

12 May 11:49
v1.4.0a1
Compare
Choose a tag to compare
v1.4.0 Alpha1 Pre-release
Pre-release

Major changes

  • Allow appending data to configuration strings #768
    To append to a value for <name>, type: west config -a <name> <value>
  • Add --untracked argument option to west manifest to display untracked files and directories #786
    Run west manifest --untracked in a workspace to print all files and directories that are not tracked or managed by west.
  • Add --inactive argument option to west list to support printing inactive projects #794
  • Support --active-only argument option for the --resolve and --freeze manifest commands #808

Other changes

  • Turn warnings into errors when running tests in CI #760
  • Introduce ruff linter #762, #763, #764, #765, #766, #770
  • Convert custom argparse action to a mutually exclusive group for the configuration command's
    local/global/system argument #769
  • Print an error when reading a missing configuration value #778
  • Added a test for built-in or extension commands with duplicate names #780
  • Introduce OpenSSF/CodeQL/docker workflows and pin Github actions
    #787, #788, #790, #791, #800, #803 , #804
  • Run CodeCov in CI and report coverage #805, #810, #812
  • Cancel ongoing CI runs when updating a PR #811
  • Use YAML C-loader when available #806
  • Drop setuptools dependency #814

Bug fixes

  • Fix assertion checks when verifying the output of commands during testing #777
  • Remove unnecessary uses of the global/nonlocal declaration #798

v1.3.0

28 Oct 20:11
v1.3.0
Compare
Choose a tag to compare

Major changes

  • Added support for alias commands #716
    Alias commands can be added using the configuration west config alias.<name> "<command>"
  • Changed to a pyproject.toml package format in accordance to PEP 621 #715

Other changes

  • Add cache support for submodules #697
  • Decode manifest files as UTF-8 by default #711
  • Pass unknown arguments for west diff and west status to underlying git commands #718
  • Added --manifest argument to west diff to allow comparing
    the current workspace to the manifest revisions #719, #728 and #748
  • Environment variables can be used with west forall #721
    see west help forall for details
  • Added support for early argument -q to reduce verbosity #723
  • Added docker compose testing infrastructure #733
  • Automate Pypi releases from Github Actions #737
  • Added --clone-opt argument to west init to pass to git clone #744
  • Support python 3.13 and drop support for python 3.8 #752
  • Prevent manifests from having projects in the .west directory #754
  • Add NTFS workarounds and --rename-delay for west init #756
  • Print a stack trace when calling die in debug -vvv #757

Bug fixes

  • Use 'backslashreplace' not to crash on malformed UTF from subprocess #700
  • Fix handling in west diff for repositories with merge conflicts #732
    Additionally improve error printing and handle git diff return codes
  • Fix --freeze and --resolve for the manifest command when git submodules are used #740

v1.3.0 Alpha4

22 Oct 13:55
v1.3.0a4
Compare
Choose a tag to compare
v1.3.0 Alpha4 Pre-release
Pre-release

Same as v1.3.0 Alpha3 with:

Other changes:

  • Support python 3.13 and drop support for python 3.8 #752
  • Prevent manifests from having projects in the .west directory #754
  • Add NTFS workarounds and --rename-delay for west init #756
  • Print a stack trace when calling die in debug -vvv #757

v1.3.0 Alpha3

11 Oct 08:27
v1.3.0a3
Compare
Choose a tag to compare
v1.3.0 Alpha3 Pre-release
Pre-release

Same as v1.3.0 Alpha2 with:

Other changes:

  • Added --clone-opt argument to west init to pass to git clone #744

Bug fixes:

  • west diff --manifest now compares to manifest-rev #748

v1.3.0 Alpha2

04 Oct 15:28
v1.3.0a2
Compare
Choose a tag to compare
v1.3.0 Alpha2 Pre-release
Pre-release

Same as v1.3.0 Alpha1 with:

Bug fixes:

  • Fixed release workflow when downloading artifacts #745

v1.3.0 Alpha1

04 Oct 11:21
v1.3.0a1
Compare
Choose a tag to compare
v1.3.0 Alpha1 Pre-release
Pre-release

Major changes

  • Added support for alias commands #716
    Alias commands can be added using the configuration west config alias.<name> "<command>"
  • Changed to a pyproject.toml package format in accordance to PEP 621 #715

Other changes

  • Add cache support for submodules #697
  • Decode manifest files as UTF-8 by default #711
  • Pass unknown arguments for west diff and west status to underlying git commands #718
  • Added --manifest argument to west diff to allow comparing
    the current workspace to the manifest revisions #719 and #728
  • Environment variables can be used with west forall #721
    see west help forall for details
  • Added support for early argument -q to reduce verbosity #723
  • Added docker compose testing infrastructure #733
  • Automate Pypi releases from Github Actions #737

Bug fixes

  • Use 'backslashreplace' not to crash on malformed UTF from subprocess #700
  • Fix handling in west diff for repositories with merge conflicts #732
    Additionally improve error printing and handle git diff return codes
  • Fix --freeze and --resolve for the manifest command when git submodules are used #740

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