b4fde33243
Reflect changes in the APIs made since 0.6.0. These will also need to be added to the release notes. Some automatic directives weren't generating the desired output, so either do it by hand or let new 0.7.0 docstrings supply the information. Try to better group the content into sections. Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
251 lines
9.4 KiB
ReStructuredText
251 lines
9.4 KiB
ReStructuredText
West Release Notes
|
|
##################
|
|
|
|
v0.7.0
|
|
******
|
|
|
|
The main user-visible feature in west 0.7 is the :ref:`west-manifest-import`
|
|
feature. This allows users to load west manifest data from multiple different
|
|
files, resolving the results into a single logical manifest.
|
|
|
|
Additional user-visible changes:
|
|
|
|
- The idea of a "west installation" has been renamed to "west workspace" in
|
|
this documentation and in the west API documentation. The new term seems to
|
|
be easier for most people to work with than the old one.
|
|
- West manifests now support a :ref:`schema version
|
|
<west-manifest-schema-version>`.
|
|
- The "west config" command can now be run outside of a workspace, e.g.
|
|
to run ``west config --global section.key value`` to set a configuration
|
|
option's value globally.
|
|
- There is a new :ref:`west topdir <west-multi-repo-misc>` command, which
|
|
prints the root directory of the current west workspace.
|
|
- The ``west -vv init`` command now prints the git operations being performed,
|
|
and their results.
|
|
- The restriction that no project can be named "manifest" is now enforced; the
|
|
name "manifest" is reserved for the manifest repository, and is usable as
|
|
such in commands like ``west list manifest``, instead of ``west list
|
|
path-to-manifest-repository`` being the only way to say that
|
|
- It's no longer an error if there is no project named "zephyr". This is
|
|
part of an effort to make west generally usable for non-Zephyr use cases.
|
|
- Various bug fixes.
|
|
|
|
The developer-visible changes to the :ref:`west-apis` are:
|
|
|
|
- west.build and west.cmake: deprecated; this is Zephyr-specific functionality
|
|
and should never have been part of west. Since Zephyr v1.14 LTS relies on it,
|
|
it will continue to be included in the distribution, but will be removed
|
|
when that version of Zephyr is obsoleted.
|
|
- west.commands:
|
|
|
|
- WestCommand.requires_installation: deprecated; use requires_workspace instead
|
|
- WestCommand.requires_workspace: new
|
|
- WestCommand.has_manifest: new
|
|
- WestCommand.manifest: this is now settable
|
|
- west.configuration: callers can now identify the workspace directory
|
|
when reading and writing configuration files
|
|
- west.log:
|
|
|
|
- msg(): new
|
|
- west.manifest:
|
|
|
|
- The module now uses the standard logging module instead of west.log
|
|
- QUAL_REFS_WEST: new
|
|
- SCHEMA_VERSION: new
|
|
- Defaults: removed
|
|
- Manifest.as_dict(): new
|
|
- Manifest.as_frozen_yaml(): new
|
|
- Manifest.as_yaml(): new
|
|
- Manifest.from_file() and from_data(): these factory methods are more
|
|
flexible to use and less reliant on global state
|
|
- Manifest.validate(): new
|
|
- ManifestImportFailed: new
|
|
- ManifestProject: semi-deprecated and will likely be removed later.
|
|
- Project: the constructor now takes a topdir argument
|
|
- Project.format() and its callers are removed. Use f-strings instead.
|
|
- Project.name_and_path: new
|
|
- Project.remote_name: new
|
|
- Project.sha() now captures stderr
|
|
- Remote: removed
|
|
|
|
West now requires Python 3.6 or later. Additionally, some features may rely on
|
|
Python dictionaries being insertion-ordered; this is only an implementation
|
|
detail in CPython 3.6, but is is part of the language specification as of
|
|
Python 3.7.
|
|
|
|
v0.6.3
|
|
******
|
|
|
|
This point release fixes an error in the behavior of the deprecated
|
|
``west.cmake`` module.
|
|
|
|
v0.6.2
|
|
******
|
|
|
|
This point release fixes an error in the behavior of ``west
|
|
update --fetch=smart``, introduced in v0.6.1.
|
|
|
|
All v0.6.1 users must upgrade.
|
|
|
|
v0.6.1
|
|
******
|
|
|
|
.. warning::
|
|
|
|
Do not use this point release. Make sure to use v0.6.2 instead.
|
|
|
|
The user-visible features in this point release are:
|
|
|
|
- The `west update <west-multi-repo-cmds>` command has a new ``--fetch``
|
|
command line flag and ``update.fetch`` :ref:`configuration option
|
|
<west-config>`. The default value, "smart", skips fetching SHAs and tags
|
|
which are available locally.
|
|
- Better and more consistent error-handling in the ``west diff``, ``west
|
|
status``, ``west forall``, and ``west update`` commands. Each of these
|
|
commands can operate on multiple projects; if a subprocess related to one
|
|
project fails, these commands now continue to operate on the rest of the
|
|
projects. All of them also now report a nonzero error code from the west
|
|
process if any of these subprocesses fails (this was previously not true of
|
|
``west forall`` in particular).
|
|
- The :ref:`west manifest <west-multi-repo-misc>` command also handles errors
|
|
better.
|
|
- The :ref:`west list <west-multi-repo-misc>` command now works even when the
|
|
projects are not cloned, as long as its format string only requires
|
|
information which can be read from the manifest file. It still fails if the
|
|
format string requires data stored in the project repository, e.g. if it
|
|
includes the ``{sha}`` format string key.
|
|
- Commands and options which operate on git revisions now accept abbreviated
|
|
SHAs. For example, ``west init --mr SHA_PREFIX`` now works. Previously, the
|
|
``--mr`` argument needed to be the entire 40 character SHA if it wasn't a
|
|
branch or a tag.
|
|
|
|
The developer-visible changes to the :ref:`west-apis` are:
|
|
|
|
- west.log.banner(): new
|
|
- west.log.small_banner(): new
|
|
- west.manifest.Manifest.get_projects(): new
|
|
- west.manifest.Project.is_cloned(): new
|
|
- west.commands.WestCommand instances can now access the parsed
|
|
Manifest object via a new self.manifest property during the
|
|
do_run() call. If read, it returns the Manifest object or
|
|
aborts the command if it could not be parsed.
|
|
- west.manifest.Project.git() now has a capture_stderr kwarg
|
|
|
|
|
|
v0.6.0
|
|
******
|
|
|
|
- No separate bootstrapper
|
|
|
|
In west v0.5.x, the program was split into two components, a bootstrapper and
|
|
a per-installation clone. See `Multiple Repository Management in the v1.14
|
|
documentation`_ for more details.
|
|
|
|
This is similar to how Google's Repo tool works, and lets west iterate quickly
|
|
at first. It caused confusion, however, and west is now stable enough to be
|
|
distributed entirely as one piece via PyPI.
|
|
|
|
From v0.6.x onwards, all of the core west commands and helper classes are
|
|
part of the west package distributed via PyPI. This eliminates complexity
|
|
and makes it possible to import west modules from anywhere in the system,
|
|
not just extension commands.
|
|
- The ``selfupdate`` command still exists for backwards compatibility, but
|
|
now simply exits after printing an error message.
|
|
- Manifest syntax changes
|
|
|
|
- A west manifest file's ``projects`` elements can now specify their fetch
|
|
URLs directly, like so:
|
|
|
|
.. code-block:: yaml
|
|
|
|
manifest:
|
|
projects:
|
|
- name: example-project-name
|
|
url: https://github.com/example/example-project
|
|
|
|
Project elements with ``url`` attributes set in this way may not also have
|
|
``remote`` attributes.
|
|
- Project names must be unique: this restriction is needed to support future
|
|
work, but was not possible in west v0.5.x because distinct projects may
|
|
have URLs with the same final pathname component, like so:
|
|
|
|
.. code-block:: yaml
|
|
|
|
manifest:
|
|
remotes:
|
|
- name: remote-1
|
|
url-base: https://github.com/remote-1
|
|
- name: remote-2
|
|
url-base: https://github.com/remote-2
|
|
projects:
|
|
- name: project
|
|
remote: remote-1
|
|
path: remote-1-project
|
|
- name: project
|
|
remote: remote-2
|
|
path: remote-2-project
|
|
|
|
These manifests can now be written with projects that use ``url``
|
|
instead of ``remote``, like so:
|
|
|
|
.. code-block:: yaml
|
|
|
|
manifest:
|
|
projects:
|
|
- name: remote-1-project
|
|
url: https://github.com/remote-1/project
|
|
- name: remote-2-project
|
|
url: https://github.com/remote-2/project
|
|
|
|
- The ``west list`` command now supports a ``{sha}`` format string key
|
|
|
|
- The default format string for ``west list`` was changed to ``"{name:12}
|
|
{path:28} {revision:40} {url}"``.
|
|
|
|
- The command ``west manifest --validate`` can now be run to load and validate
|
|
the current manifest file, among other error-handling fixes related to
|
|
manifest parsing.
|
|
|
|
- Incompatible API changes were made to west's APIs. Further changes are
|
|
expected until API stability is declared in west v1.0.
|
|
|
|
- The ``west.manifest.Project`` constructor's ``remote`` and ``defaults``
|
|
positional arguments are now kwargs. A new ``url`` kwarg was also added; if
|
|
given, the ``Project`` URL is set to that value, and the ``remote`` kwarg
|
|
is ignored.
|
|
|
|
- ``west.manifest.MANIFEST_SECTIONS`` was removed. There is only one section
|
|
now, namely ``manifest``. The *sections* kwargs in the
|
|
``west.manifest.Manifest`` factory methods and constructor were also
|
|
removed.
|
|
|
|
- The ``west.manifest.SpecialProject`` class was removed. Use
|
|
``west.manifest.ManifestProject`` instead.
|
|
|
|
|
|
v0.5.x
|
|
******
|
|
|
|
West v0.5.x is the first version used widely by the Zephyr Project as part of
|
|
its v1.14 Long-Term Support (LTS) release. The `west v0.5.x documentation`_ is
|
|
available as part of the Zephyr's v1.14 documentation.
|
|
|
|
West's main features in v0.5.x are:
|
|
|
|
- Multiple repository management using Git repositories, including self-update
|
|
of west itself
|
|
- Hierarchical configuration files
|
|
- Extension commands
|
|
|
|
Versions Before v0.5.x
|
|
**********************
|
|
|
|
Tags in the west repository before v0.5.x are prototypes which are of
|
|
historical interest only.
|
|
|
|
.. _Multiple Repository Management in the v1.14 documentation:
|
|
https://docs.zephyrproject.org/1.14.0/guides/west/repo-tool.html
|
|
|
|
.. _west v0.5.x documentation:
|
|
https://docs.zephyrproject.org/1.14.0/guides/west/index.html
|