1{
2 lib,
3 buildPythonPackage,
4 setuptools,
5 colorama,
6 fetchPypi,
7 packaging,
8 pykwalify,
9 pythonOlder,
10 pyyaml,
11}:
12
13buildPythonPackage rec {
14 pname = "west";
15 version = "1.5.0";
16 pyproject = true;
17
18 disabled = pythonOlder "3.9";
19
20 src = fetchPypi {
21 inherit pname version;
22 hash = "sha256-cIj+Dpr+Bxnr7pXFHFKRSfe8/JGdg6ggbTX6nGg+0KU=";
23 };
24
25 build-system = [ setuptools ];
26
27 dependencies = [
28 colorama
29 packaging
30 pyyaml
31 pykwalify
32 ];
33
34 # pypi package does not include tests (and for good reason):
35 # tests run under 'tox' and have west try to git clone repos (not sandboxable)
36 doCheck = false;
37
38 pythonImportsCheck = [ "west" ];
39
40 meta = with lib; {
41 description = "Zephyr RTOS meta tool";
42 mainProgram = "west";
43 longDescription = ''
44 West lets you manage multiple Git repositories under a single directory using a single file,
45 called the west manifest file, or manifest for short.
46
47 The manifest file is named west.yml.
48 You use west init to set up this directory,
49 then west update to fetch and/or update the repositories
50 named in the manifest.
51
52 By default, west uses upstream Zephyr’s manifest file
53 (https://github.com/zephyrproject-rtos/zephyr/blob/master/west.yml),
54 but west doesn’t care if the manifest repository is a Zephyr tree or not.
55
56 For more details, see Multiple Repository Management in the west documentation
57 (https://docs.zephyrproject.org/latest/guides/west/repo-tool.html).
58 '';
59 homepage = "https://github.com/zephyrproject-rtos/west";
60 changelog = "https://github.com/zephyrproject-rtos/west/releases/tag/v${version}";
61 license = licenses.asl20;
62 maintainers = with maintainers; [ siriobalmelli ];
63 };
64}