{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":134577458,"defaultBranch":"main","name":"west","ownerLogin":"zephyrproject-rtos","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-05-23T13:56:05.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/19595895?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1696636860.0","currentOid":""},"activityList":{"items":[{"before":"c399c012570c51ae806fdb5bb940d7ab1bd1c3d2","after":"49f0a101df45ea735437bd388606a1219d9e76f5","ref":"refs/heads/main","pushedAt":"2024-09-16T14:06:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":"app: tell the user to use `-vv` when debugging \"manifest --validate\"\n\nIt seems natural to recommend \"debug\" flags when telling the user to\n\"debug\".\n\nMore specifically, this makes a big difference in situations like the\none reported in #671\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"app: tell the user to use -vv when debugging \"manifest --validate\""}},{"before":"d4ad25641bb8c98ee6cd5c6acac1a02006bba6e9","after":"c399c012570c51ae806fdb5bb940d7ab1bd1c3d2","ref":"refs/heads/main","pushedAt":"2024-09-12T21:31:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":"project: Switch to pyproject\n\nStarting with PEP 621, `pyproject.toml` is the standard way of\nspecifying project metadata.\n\nAlso switch to using the version from `pyproject.toml` instead of having\na west.version python module. Adjust documentation for the same.\n\nUpdate MAINTAINERS.rst to use build for dist building.\n\nSigned-off-by: Ayush Singh ","shortMessageHtmlLink":"project: Switch to pyproject"}},{"before":"ab31960df4234928372ff6a0ffd6a0389a53d792","after":"d4ad25641bb8c98ee6cd5c6acac1a02006bba6e9","ref":"refs/heads/main","pushedAt":"2024-09-06T14:12:34.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":"tests: Add alias testing\n\nAdd simple test cases to verify alias' functionality.\n\nSigned-off-by: Pieter De Gendt ","shortMessageHtmlLink":"tests: Add alias testing"}},{"before":"0612a6ddaec3e53586cc582b09540a15e35ff648","after":"ab31960df4234928372ff6a0ffd6a0389a53d792","ref":"refs/heads/main","pushedAt":"2024-09-04T18:39:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":"app: project: fix git diff --exit-code logic\n\nFixes 2020 commit a53ec10cf28b (\"west diff: only print output for\nprojects with nonempty diffs\")\n\nFixes #731\n\nAt least with git version 2.46.0, --exit-code is 0 when there has been a\nmerge conflict! git bug or feature? Either way this causes west diff to\nwrongly assume there is no diff in that repo.\n\nTwo other issues:\n1. if returncode is higher than 1 (= a git diff failure) AND -v is used,\n then failed.append(project) is never run.\n2. stderr is never, ever printed\n\nTry for instance `west diff --fubar` and `west -v --fubar` (which are\npossible since commit 73aee322788c). One fails and the other does\nnot. Neither prints any useful error.\n\nThe verbosity level should never have any side-effect.\n\nTo fix:\n- Assume there is a diff when --exit-code is zero AND stdout is not\n empty. Treat this the same as --exit-code=1\n- Always `failed.append(project)` when --exit-code > 1\n- Print stderr when there is a diff or in verbose mode.\n\nThis drops one `elif` which also simplifies the logic.\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"app: project: fix git diff --exit-code logic"}},{"before":"d55f585af66ce572cc5bca955545b0f2d95543e8","after":"0612a6ddaec3e53586cc582b09540a15e35ff648","ref":"refs/heads/main","pushedAt":"2024-08-30T17:36:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":"app: Add -q argument for quiet mode\n\nAdd a west argument to decrease the verbosity.\n\nSigned-off-by: Pieter De Gendt ","shortMessageHtmlLink":"app: Add -q argument for quiet mode"}},{"before":"8af9e2a37083d58c238e042c230cc7053912b945","after":"d55f585af66ce572cc5bca955545b0f2d95543e8","ref":"refs/heads/main","pushedAt":"2024-08-30T17:35:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":"app: project: Simplify git diff --manifest\n\nDo not use --merge-base but call git diff with the manifest version\ndirectly.\n\nSigned-off-by: Pieter De Gendt ","shortMessageHtmlLink":"app: project: Simplify git diff --manifest"}},{"before":"45762a01e30cee70dc827ca752c2ef71d13fde3a","after":"8af9e2a37083d58c238e042c230cc7053912b945","ref":"refs/heads/main","pushedAt":"2024-08-29T23:16:53.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":".github: checkout in a directory with spaces\n\nThis is enough to find many quoting issues.\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":".github: checkout in a directory with spaces"}},{"before":"d9c71b13e00dedd9f5239453fabed89538db0d29","after":"45762a01e30cee70dc827ca752c2ef71d13fde3a","ref":"refs/heads/main","pushedAt":"2024-08-27T12:31:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"carlescufi","name":"Carles Cufí","path":"/carlescufi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12450381?s=80&v=4"},"commit":{"message":"app: point \"handle_unknown_command()\" error message to \"west -vv status\"\n\nCommit d84237108992 (\"app: handle unexpected command name better\")\nintentionally created a big error handling difference between extensions\nand built-in commands. As an unfortunate side effect, it lost the\nrelevant \"manifest import failure\" error messages for _extension_\ncommands. This is especially ironic when the extension command is\nmissing because the import failed, see example in #726.\n\nError handling is generally very hard to test comprehensively and even\nmore so in this complex \"bootstrap\" area. Rather than trying to refactor\nit once again, tweak the existing error messages to gently steer the\nuser away from (potentially missing) extensions and towards built-in\ncommands that provide a simpler and better error handling out of the\nbox: they still show relevant, manifest error messages! Always have.\n\nAlso recommand the -vv option which conveniently includes git error\nmessages like \"dubious ownership\" since previous commit\n23db6e1f3cc7 (\"app: re-work logging yet again\") from the same giant PR\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"app: point \"handle_unknown_command()\" error message to \"west -vv status\""}},{"before":"b69c85e2e5e2caa502d05325c7352fe196635089","after":"d9c71b13e00dedd9f5239453fabed89538db0d29","ref":"refs/heads/main","pushedAt":"2024-08-27T12:30:57.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"carlescufi","name":"Carles Cufí","path":"/carlescufi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12450381?s=80&v=4"},"commit":{"message":"tests: Add cases for diff/status argument passing\n\nCall west diff and status commands with arguments to be passed to git.\n\nSigned-off-by: Pieter De Gendt ","shortMessageHtmlLink":"tests: Add cases for diff/status argument passing"}},{"before":"6aaf248c3ef7ba84e06f59845c2db08b32740950","after":"b69c85e2e5e2caa502d05325c7352fe196635089","ref":"refs/heads/main","pushedAt":"2024-08-27T11:30:42.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"carlescufi","name":"Carles Cufí","path":"/carlescufi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12450381?s=80&v=4"},"commit":{"message":"tests: Add forall test cases\n\nTest using the environment variables in forall\n\nSigned-off-by: Pieter De Gendt ","shortMessageHtmlLink":"tests: Add forall test cases"}},{"before":"4c4dc04755bffe69e4cc1aa794d97a15049550d8","after":"6aaf248c3ef7ba84e06f59845c2db08b32740950","ref":"refs/heads/main","pushedAt":"2024-08-27T11:29:35.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"carlescufi","name":"Carles Cufí","path":"/carlescufi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12450381?s=80&v=4"},"commit":{"message":"tests: Run diff with manifest argument\n\nRun the diff command with --manifest argument.\n\nSigned-off-by: Pieter De Gendt ","shortMessageHtmlLink":"tests: Run diff with manifest argument"}},{"before":"155b242f2c7dfc5d281e2884181611a173487a99","after":"4c4dc04755bffe69e4cc1aa794d97a15049550d8","ref":"refs/heads/main","pushedAt":"2024-07-22T16:29:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":"project: ignore .venv directory\n\nAdditionally exclude the python .venv directory for flake8 if it exists.\n\nSigned-off-by: Pieter De Gendt ","shortMessageHtmlLink":"project: ignore .venv directory"}},{"before":"e5fe0ef896de7e33a129364e390a5dc3710b2e67","after":"155b242f2c7dfc5d281e2884181611a173487a99","ref":"refs/heads/main","pushedAt":"2024-06-26T17:33:09.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"marc-hb","name":"Marc Herbert","path":"/marc-hb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46978960?s=80&v=4"},"commit":{"message":"project: use new Manifest.encoding constant (utf-8) to read manifest\n\nFixes issue reported in PR #710 where most places are hardcoded to\n'utf-8' while this one is (Windows) locale-dependent. In the future, we\nmay want to make this more flexible but the most urgent fix is\nconsistency: with this commit, manifest decoding should be hardcoded to\n'utf-8' everywhere.\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"project: use new Manifest.encoding constant (utf-8) to read manifest"}},{"before":"cf18ce8cbd459932b2f5809e3229ebcc01caf6fd","after":"e5fe0ef896de7e33a129364e390a5dc3710b2e67","ref":"refs/heads/main","pushedAt":"2024-06-14T14:25:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"carlescufi","name":"Carles Cufí","path":"/carlescufi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12450381?s=80&v=4"},"commit":{"message":".github: upgrade to checkout@v4 and setup-python@v5\n\nLong overdue; both where still at @v1!\n\nFound by chance in\nhttps://github.com/zephyrproject-rtos/west/actions/runs/9275086435/job/25518959121?pr=711\nwhere all macos-latest configs failed like this:\n```\nRun actions/setup-python@v1\nError: Version 3.8 with arch x64 not found\nAvailable versions:\n (empty)\n```\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":".github: upgrade to checkout@v4 and setup-python@v5"}},{"before":"aeca29ac9fd34fa6ecfb7137abec5d601ac80073","after":"cf18ce8cbd459932b2f5809e3229ebcc01caf6fd","ref":"refs/heads/main","pushedAt":"2024-04-03T17:33:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"project.py: extend cache support for submodules\n\nIf cache is used try to also use it for submodules.\n\nSigned-off-by: Kari Hamalainen ","shortMessageHtmlLink":"project.py: extend cache support for submodules"}},{"before":"3260b412a9489913f072beb67f0c98843c6c7670","after":"aeca29ac9fd34fa6ecfb7137abec5d601ac80073","ref":"refs/heads/main","pushedAt":"2024-01-24T17:24:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"project.py: request users to stop IDEs before running `west init`\n\nThere have been many users reports in #558 that `west init` fails on the\nWindows NTFS filesystem when some IDEs are running concurrently.\n\nThere is no simple and reliable fix for this because:\n\n- The lack of concurrency is a core limitation in the NTFS design that\n will not change anytime soon,\n- IDEs have no reliable way to know when they should pause scanning the\n filesystem.\n- Placing temporary files outside the workspace would invite other, complex\n and nasty issues with cross-filesystem moves (#558)\n\nShort of a fix, explain why this happens very briefly in `west init -h`\nand request users to temporarily close their IDEs. It's the only simple\nand universal mitigation available.\n\nMention the issue number in case someone needs more details, some\nevidence or smarter workarounds specific to certain IDEs.\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"project.py: request users to stop IDEs before running west init"}},{"before":"7f842c2b84b53d5949501e10f4dafe675ddcac2f","after":"3260b412a9489913f072beb67f0c98843c6c7670","ref":"refs/heads/main","pushedAt":"2023-12-20T18:43:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"Use 'backslashreplace' not to crash on malformed UTF from subprocess\n\nGiant commit\nhttps://github.com/zephyrproject-rtos/hal_nxp/commit/f9f0944bc2b4fce\n\"Update to SDK 2.14\" added files with malformed UTF-8, more precisely\nwith the DEGREE SIGN (°) encoded in 8bit latin1/CP1252. Maybe others.\n\nThis crashes `west grep`.\n\nBefore this fix:\n\n```\nnxp$ west grep 'TEMPERATURE_CONV_FACTOR.*Will give'\n\nTraceback (most recent call last):\n File \".local/bin/west\", line 33, in \n sys.exit(load_entry_point('west', 'console_scripts', 'west')())\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"west/src/west/app/main.py\", line 1085, in main\n app.run(argv or sys.argv[1:])\n File \"west/src/west/app/main.py\", line 244, in run\n self.run_command(argv, early_args)\n File \"west/src/west/app/main.py\", line 503, in run_command\n self.run_builtin(args, unknown)\n File \"west/src/west/app/main.py\", line 611, in run_builtin\n self.cmd.run(args, unknown, self.topdir,\n File \"west/src/west/commands.py\", line 194, in run\n self.do_run(args, unknown)\n File \"west/src/west/app/project.py\", line 1765, in do_run\n completed_process = self.run_subprocess(\n ^^^^^^^^^^^^^^^^^^^^\n File \"west/src/west/commands.py\", line 325, in run_subprocess\n return subprocess.run(args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/lib/python3.11/subprocess.py\", line 550, in run\n stdout, stderr = process.communicate(input, timeout=timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/lib/python3.11/subprocess.py\", line 1209, in communicate\n stdout, stderr = self._communicate(input, endtime, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/lib/python3.11/subprocess.py\", line 2146, in _communicate\n stdout = self._translate_newlines(stdout,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/lib/python3.11/subprocess.py\", line 1086, in _translate_newlines\n data = data.decode(encoding, errors)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 385: invalid start byte\n```\n\nAfter this fix, no crash and no interruption and:\n\nmcux/mcux-sdk/middleware/issdk/sensors/fxpq3115_drv.h:#define FXPQ3115_TEMPERATURE_CONV_FACTOR (256) /* Will give \\xb0C */\nmcux/mcux-sdk/middleware/issdk/sensors/mpl3115_drv.h:#define MPL3115_TEMPERATURE_CONV_FACTOR (256) /* Will give \\xb0C */\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"Use 'backslashreplace' not to crash on malformed UTF from subprocess"}},{"before":"7d108ff1ce4527948e85b54070e59823f78f5dbb","after":"7f842c2b84b53d5949501e10f4dafe675ddcac2f","ref":"refs/heads/main","pushedAt":"2023-10-09T18:11:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"commands: fix some docstrings\n\nWhen interpreted as restructured text, these are causing errors\nbecause the '**' is interpreted as the start of a bold section, which\nnever ends. This causes build failures in the zephyr docs, which do\ntreat these as RST.\n\nWrap them in `` to make the whole thing a literal block to fix this\nissue.\n\nSigned-off-by: Martí Bolívar ","shortMessageHtmlLink":"commands: fix some docstrings"}},{"before":"28d0209f4eb8905db41a5589054cc1d18107351a","after":"abb5cec3f52926c288bbab338a35b90b8a79a568","ref":"refs/heads/v1.2-branch","pushedAt":"2023-10-07T00:00:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"West v1.2.0\n\nMajor changes:\n\n- New 'west grep' command for running a \"grep tool\" in your west workspace's\n repositories. Currently, 'git grep', `ripgrep`, and standard 'grep' are\n supported grep tools.\n\n To run this command to get 'git grep foo' results from all cloned,\n active repositories, run:\n\n west grep foo\n\n For more details, run 'west help grep'.\n\nOther changes:\n\n- The manifest file format now supports a 'description' field in each\n 'projects:' element.\n\n- 'west list --format' now accepts '{description}' in the format\n string, which prints the project's 'description:' value.\n\n- 'west compare' now always prints information about\n the manifest-rev branch\n\nBug fixes:\n\n- 'west init' aborts if the destination directory already exists.\n\nAPI changes:\n\n- 'west.commands.WestCommand' methods 'check_call()' and\n 'check_output()' now take any kwargs that can be passed on\n to the underlying subprocess function.\n\n- 'west.commands.WestCommand.run_subprocess()': new wrapper\n around 'subprocess.run()'. This could not be named 'run()'\n because 'WestCommand' already had a method by this name.\n\n- 'west.commands.WestCommand' methods 'dbg()', 'inf()',\n 'wrn()', and 'err()' now all take an 'end' kwarg, which\n is passed on to the call to 'print()'.\n\n- 'west.manifest.Project' now has a 'description' attribute,\n which contains the parsed value of the 'description:' field\n in the manifest data.\n\nSigned-off-by: Martí Bolívar ","shortMessageHtmlLink":"West v1.2.0"}},{"before":"7d108ff1ce4527948e85b54070e59823f78f5dbb","after":null,"ref":"refs/heads/testbranch","pushedAt":"2023-09-28T01:52:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"}},{"before":null,"after":"7d108ff1ce4527948e85b54070e59823f78f5dbb","ref":"refs/heads/testbranch","pushedAt":"2023-09-28T01:52:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"version: 1.2.99\n\nThis is not a west release. It is just a signal that we have forked\noff v1.2-branch.\n\nSigned-off-by: Martí Bolívar ","shortMessageHtmlLink":"version: 1.2.99"}},{"before":"c936a4a6819cfee2cc78b6a632bc4a4d4b0588f4","after":"7d108ff1ce4527948e85b54070e59823f78f5dbb","ref":"refs/heads/main","pushedAt":"2023-09-27T21:01:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"version: 1.2.99\n\nThis is not a west release. It is just a signal that we have forked\noff v1.2-branch.\n\nSigned-off-by: Martí Bolívar ","shortMessageHtmlLink":"version: 1.2.99"}},{"before":"c936a4a6819cfee2cc78b6a632bc4a4d4b0588f4","after":"28d0209f4eb8905db41a5589054cc1d18107351a","ref":"refs/heads/v1.2-branch","pushedAt":"2023-09-27T20:58:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"version: 1.2.0a1\n\nRelease alpha for testing.\n\nSigned-off-by: Martí Bolívar ","shortMessageHtmlLink":"version: 1.2.0a1"}},{"before":null,"after":"c936a4a6819cfee2cc78b6a632bc4a4d4b0588f4","ref":"refs/heads/v1.2-branch","pushedAt":"2023-09-27T20:55:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"manifest: Add a new optional description field\n\nAdd a new description optional field to the schema. This field is merely\ninformative, it has no effect whatsoever in the manifest and/or project\nprocessing.\n\nBecause descriptions can be multiline strings, additional code has been\nadded to support prettier dumping of those. PyYAML by default uses\nsingle-line strings in YAML with '\\n' characters in it, which look ugly\nwhen dumped. To avoid this, use block-style literals (i.e. the ones\nbeginning with '|' in the YAML) but only for multi-line description\nfields. The rest of the field handling are left untouched to preserve\nbackwards compatibility.\nNote that if we used ruamel we would not need the additional code, since\nit supports this natively.\n\nSigned-off-by: Carles Cufi ","shortMessageHtmlLink":"manifest: Add a new optional description field"}},{"before":"41007648d993b84144bbab54a26ac3416e2aef1d","after":"c936a4a6819cfee2cc78b6a632bc4a4d4b0588f4","ref":"refs/heads/main","pushedAt":"2023-09-05T15:59:50.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"manifest: Add a new optional description field\n\nAdd a new description optional field to the schema. This field is merely\ninformative, it has no effect whatsoever in the manifest and/or project\nprocessing.\n\nBecause descriptions can be multiline strings, additional code has been\nadded to support prettier dumping of those. PyYAML by default uses\nsingle-line strings in YAML with '\\n' characters in it, which look ugly\nwhen dumped. To avoid this, use block-style literals (i.e. the ones\nbeginning with '|' in the YAML) but only for multi-line description\nfields. The rest of the field handling are left untouched to preserve\nbackwards compatibility.\nNote that if we used ruamel we would not need the additional code, since\nit supports this natively.\n\nSigned-off-by: Carles Cufi ","shortMessageHtmlLink":"manifest: Add a new optional description field"}},{"before":"98800b3d9a112444a0a233538925a062076df25e","after":"41007648d993b84144bbab54a26ac3416e2aef1d","ref":"refs/heads/main","pushedAt":"2023-09-01T20:58:57.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"Project.git(list/str): reduce reliance on shlex.split()\n\nFor convenience, Project.git() supports passing either a list (good) or\na string with whitespaces (bad). The latter is parsed with shlex.split()\n\nThis saves some typing but the caller has to be extremely careful to\nnever use the shlex.split() convenience with unsanitized inputs.\n\nFixes commit 3ac600acaa11 (\"git: clean west ref space after fetching\")\nwhere the caller was not careful and concatenated `update-ref -d ` with\nunsanitized input, possibly containing special characters as found in\nbug #679. Fix this bug by converting the string to a list.\n\nWhile at it, look for a few other, frequent and risky invocations and\nconvert their string argument to a list too. The following test hack was\nused to semi-automate the search for these other locations:\n\n```\n--- a/src/west/manifest.py\n+++ b/src/west/manifest.py\n@@ -897,6 +897,8 @@ class Project:\n :param cwd: directory to run git in (default: ``self.abspath``)\n '''\n if isinstance(cmd, str):\n+ print(cmd)\n+ breakpoint()\n cmd_list = shlex.split(cmd)\n else:\n cmd_list = list(cmd)\n```\n\nWhile at it, also convert to a list a couple non-risky but very frequent\ninvocations. This speeds up the test hack above.\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"Project.git(list/str): reduce reliance on shlex.split()"}},{"before":"b7e091d2e90290bd77e137b364f664b873a453bc","after":"98800b3d9a112444a0a233538925a062076df25e","ref":"refs/heads/main","pushedAt":"2023-09-01T18:01:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"compare: always prefix `git status` output with manifest-rev\n\nIt's not unusual to make \"quick and dirty\", temporary changes in a git\nrepo that is on the manifest: either add some untracked files or create\na branch. As expected, this makes the repository show in `west\ncompare`. If such repos and the manifest repo are the only repos\nappearing in the `west compare` output, then no manifest-rev + HEAD\nbanner ever appeared. When no banner ever appears it's really not\nobvious which repos are on the manifest-rev vs not. In other words: the\nmain `west compare` feature is defeated.\n\nClear this doubt by always showing the banner, even when `HEAD` and\n`manifest-rev` are the same. See sample output below.\n\nI think the original design idea was to follow diff's \"spirit\" not to\nshow anything that's identical and to save as many lines as\npossible. However I don't think it works in this particular case because\ninvoking `git status` for a repo _without_ showing where its HEAD is at\nis way too subtle, _especially_ when there is no other repo with a\nbanner to provide a comparison point and some contrast. Explicitly and\nconsistently prefixing every `git status` output with a manifest-rev\nbanner is much more clear and obvious.\n\nMoreover, `git status` output is relatively verbose already so always\nprefixing it with a 2 lines long banner makes negligible difference to\nthe total.\n\nBefore:\n```\n$ west compare\n\n=== hal_xtensa (modules/hal/xtensa):\n--- status:\n On branch somebranch\n nothing to commit, working tree clean\n```\n\nAfter:\n```\n$ west compare\n\n=== hal_xtensa (modules/hal/xtensa):\n--- manifest-rev: 41a631d4aeee (somebranch, upstream/master) cmake: enable using SOC_TOOLCHAIN_NAME ...\n HEAD: 41a631d4aeee (somebranch, upstream/master) cmake: enable using SOC_TOOLCHAIN_NAME ...\n--- status:\n On branch somebranch\n nothing to commit, working tree clean\n```\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"compare: always prefix git status output with manifest-rev"}},{"before":"dacb54ba1db1d3ec55d934c4e478c0b5d2f3424e","after":"b7e091d2e90290bd77e137b364f664b873a453bc","ref":"refs/heads/main","pushedAt":"2023-09-01T17:27:52.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"README.rst: add pytest examples and mention tox limitations\n\nThe tox indirection layer is convenient except for the usual problems\ncaused by too many layers of indirection:\n\n- Add some examples and show how it is still possible to use important\n pytest features. This is also useful to boost people familiar with\n Python but not with pytest.\n\n- To stop developers wasting their time trying, document a major\n limitation with the current approach: impossible to run the west\n code in a debugger when it's started from a test.\n\n- Show how the \"printf\" alternative can work.\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"README.rst: add pytest examples and mention tox limitations"}},{"before":"3e53dd599a2b82eb5a8e24cbcbdeca2337824313","after":"dacb54ba1db1d3ec55d934c4e478c0b5d2f3424e","ref":"refs/heads/main","pushedAt":"2023-08-31T21:43:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"west manifest: detect when target directory already exists, and fail\n\nWhen setting up a project with west, the target directory may not be\ninitialized correctly. In the typical case, if a directory named\n`./zephyr/` already exists, the user may find that checkout files are\nlocated at `./zephyr/manifest-tmp/*` instead of the expected\n`./zephyr/*`.\n\nThis patch will abort and refuse to complete `west init` if the\ndestination directory alread exists. This check would ideally occur\nbefore the potentially lengthy clone operation, but `manifest_path` is\nderived from the files retrieved...\n\nNOTE: If the project quotes a value other than `zephyr` for\n`manifest.self.path` in `/west.yml`, then this will affect that\ndirectory instead.\n\nSteps to reproduce before this patch:\n\n mkdir ./zephyr/\n west init ./ -m https://github.com/zephyrproject-rtos/zephyr.git\n ls -l ./zephyr/\n\nPossible fix for some of the symptoms described in #558\n\nSigned-off-by: Attie Grande ","shortMessageHtmlLink":"west manifest: detect when target directory already exists, and fail"}},{"before":"4ba3d99014c64cd879e09ad6b8bac7b8bc52f7f2","after":"3e53dd599a2b82eb5a8e24cbcbdeca2337824313","ref":"refs/heads/main","pushedAt":"2023-08-31T19:04:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mbolivar-ampere","name":"Martí Bolívar","path":"/mbolivar-ampere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/140200053?s=80&v=4"},"commit":{"message":"grep: fix command hanging forever when grep.{tool}-args is empty\n\nFixes commit 1d220bbd627b (\"commands: add grep\")\n\nFix misplaced closing parenthese in:\n\n```\nshlex.split(self.config.get(f'grep.{tool}-args'), '')\n```\n\nThe empty string is meant as a default value for config.get() but it was\npassed as a second argument to shlex.split() by mistake.\n\nFunny enough this hangs forever:\n\n```\n>>> shlex.split(None, comments='')\n:1: DeprecationWarning: Passing None for 's' to shlex.split() is deprecated.\n (hangs forever)\n```\n\nPS: debuggers rulez\n\nSigned-off-by: Marc Herbert ","shortMessageHtmlLink":"grep: fix command hanging forever when grep.{tool}-args is empty"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEt4E4FQA","startCursor":null,"endCursor":null}},"title":"Activity · zephyrproject-rtos/west"}