The deprecated delete_config function supports passing a list
of ConfigFile enumerations. Update argument typing accordingly.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Make deprecated calls explicit during testing or remove them if
unnecessary.
Change the update_config and delete_config helper methods to use a
Configuration class instead of the global deprecated config functions.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
In October 2024, a problem reported in #558 showed that some Windows
systems can be configured to allow directory and file creations but not
renames. Test this _before_ git cloning to "fail fast" and remove git
from the very confusing picture.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This will be useful as both a diagnostic tool and as a workaround; see
October 2024 comments in west issue #558 for examples and details.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Print a stack trace when debugging with -vvv or more. This is MUCH
faster than `git grep error_message` and it's even more useful when the
same error message is used in multiple places! Example: die_already() in
project.py
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
It's not allowed to have projects inside the .west directory,
add a check when parsing the manifest.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Use the literal constant WEST_DIR instead of using the same string
value scattered around the project.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Omitting the artifact name changes the behavior, it will download all
artifacts and create subdirectories for each.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Fixes new `west diff --manifest` option added by commit
0d5ee4eb08 ("app: project: Allow to diff against manifest revision")
Do not pass `project.revision` to `git diff` because `project.revision`
is unresolved user input and does not always resolve to a commit. For
instance, `project.revision` can be the name of a remote branch like
`v3.7-branch` that does not exist locally; then `git diff` fails. Or
even worse: there could be a local branch of the same name which points
to a totally different commit.
This bug was found when discussing issue #747, see 7th comment there for
a longer description of what `manifest-rev` is and how it works.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Our release process documentation recommends getting passing tox
results on as many popular linux distributions as time allows. Doing
this by hand is cumbersome, redundant, and error prone.
Add a directory with a helper script that automates the entire process
using docker compose and document its use in MAINTAINERS.rst.
Signed-off-by: Martí Bolívar <mbolivar@amperecomputing.com>
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
This makes it trivial to inspect, line by line, what got covered.
That is useful when evaluating coverage for a new feature.
Signed-off-by: Martí Bolívar <mbolivar@amperecomputing.com>
Add a testcase to parse a manifest and validate the as_dict output.
Add an invalid manifest file for missing required submodule properties.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
It seems natural to recommend "debug" flags when telling the user to
"debug".
More specifically, this makes a big difference in situations like the
one reported in #671
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Starting with PEP 621, `pyproject.toml` is the standard way of
specifying project metadata.
Also switch to using the version from `pyproject.toml` instead of having
a west.version python module. Adjust documentation for the same.
Update MAINTAINERS.rst to use build for dist building.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
Fixes 2020 commit a53ec10cf2 ("west diff: only print output for
projects with nonempty diffs")
Fixes#731
At least with git version 2.46.0, --exit-code is 0 when there has been a
merge conflict! git bug or feature? Either way this causes west diff to
wrongly assume there is no diff in that repo.
Two other issues:
1. if returncode is higher than 1 (= a git diff failure) AND -v is used,
then failed.append(project) is never run.
2. stderr is never, ever printed
Try for instance `west diff --fubar` and `west -v --fubar` (which are
possible since commit 73aee32278). One fails and the other does
not. Neither prints any useful error.
The verbosity level should never have any side-effect.
To fix:
- Assume there is a diff when --exit-code is zero AND stdout is not
empty. Treat this the same as --exit-code=1
- Always `failed.append(project)` when --exit-code > 1
- Print stderr when there is a diff or in verbose mode.
This drops one `elif` which also simplifies the logic.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>