which
command binding to system section"}},{"before":"feee1c5ec57d6a528c02ade7b0b7f43961196540","after":"71faefd21ebfbe457ec2c93bec57cd7068f7b1d4","ref":"refs/heads/typed-tagged-path-forms","pushedAt":"2024-06-12T05:15:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Reduce usages of unsafe","shortMessageHtmlLink":"Reduce usages of unsafe"}},{"before":"a780609e5f881f8be3ef7b06a441767d160df6ec","after":"feee1c5ec57d6a528c02ade7b0b7f43961196540","ref":"refs/heads/typed-tagged-path-forms","pushedAt":"2024-06-12T04:56:28.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Merge branch 'main' into typed-tagged-path-forms","shortMessageHtmlLink":"Merge branch 'main' into typed-tagged-path-forms"}},{"before":"c09488f51580ac4208e300b27365ff3c4095ba4a","after":"63c863c81b5eb1f5318c6784bbd5528158cf7675","ref":"refs/heads/main","pushedAt":"2024-06-12T04:43:18.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Bump actions-rust-lang/setup-rust-toolchain from 1.8.0 to 1.9.0 (#13132)\n\nBumps\r\n[actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain)\r\nfrom 1.8.0 to 1.9.0.\r\nSourced from actions-rust-lang/setup-rust-toolchain's\r\nreleases.
\r\n\r\n\r\nv1.9.0
\r\n\r\n
\r\n- Add extra argument
\r\ncache-on-failure
and forward it to\r\nSwatinem/rust-cache
. (#39\r\nby@samuelhnrq
)
\r\nSet the default the value to true.\r\nThis will result in more caching than previously.\r\nThis helps when large dependencies are compiled only for testing to\r\nfail.
Sourced from actions-rust-lang/setup-rust-toolchain's\r\nchangelog.
\r\n\r\n\r\n[1.9.0] - 2024-06-08
\r\n\r\n
\r\n- Add extra argument
\r\ncache-on-failure
and forward it to\r\nSwatinem/rust-cache
. (#39\r\nby@samuelhnrq
)
\r\nSet the default the value to true.\r\nThis will result in more caching than previously.\r\nThis helps when large dependencies are compiled only for testing to\r\nfail.
1fbea72
\r\nMerge pull request #40\r\nfrom actions-rust-lang/prepare-release46dca5d
\r\nAdd changelog entry1734e14
\r\nSwitch default of cache-on-failure
to true74e1b40
\r\nMerge pull request #39\r\nfrom samuelhnrq/maind60b90d
\r\nfeat: adds cache-on-failure propagationextra
feature"}},{"before":"78af8f244876d97feb9f3921303188fce45b8b2d","after":"f4fd929106ab4b697b1ba7652cf2fbd4aec8dd7d","ref":"refs/heads/remove-which-support-feature","pushedAt":"2024-06-11T05:59:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Remove old/unused `extra` feature","shortMessageHtmlLink":"Remove old/unused extra
feature"}},{"before":null,"after":"78af8f244876d97feb9f3921303188fce45b8b2d","ref":"refs/heads/remove-which-support-feature","pushedAt":"2024-06-11T05:50:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Remove old/unused `extra` feature","shortMessageHtmlLink":"Remove old/unused extra
feature"}},{"before":null,"after":"19cfaf0525df0f2a644b3957aca88f8ede1fb49d","ref":"refs/heads/str-contains-not-removal","pushedAt":"2024-06-11T04:57:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Remove deprecated `--not` flag on `str contains`","shortMessageHtmlLink":"Remove deprecated --not
flag on str contains
"}},{"before":"5ac3ad61c42c9c97952a5df11d79e69ffcde73db","after":"c09488f51580ac4208e300b27365ff3c4095ba4a","ref":"refs/heads/main","pushedAt":"2024-06-11T04:33:37.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Fix multiple issues with `def --wrapped` help example (#13123)\n\n# Description\r\n\r\nI've noticed this several times but kept forgetting to fix it:\r\n\r\nThe example given for `help def` for the `--wrapped` flag is:\r\n\r\n```nu\r\nDefine a custom wrapper for an external command\r\n> def --wrapped my-echo [...rest] { echo $rest }; my-echo spam\r\n ╭───┬──────╮\r\n │ 0 │ spam │\r\n ╰───┴──────╯\r\n```\r\n\r\nThat's ... odd, since (a) it specifically says *\"for an external\"*\r\ncommand, and yet uses (and shows the output from) the builtin `echo`.\r\nAlso, (b) I believe `--wrapped` is *only* applicable to external\r\ncommands. Finally, (c) the `my-echo spam` doesn't even demonstrate a\r\nwrapped argument.\r\n\r\nUnless I'm truly missing something, the example just makes no sense.\r\n\r\nThis updates the example to really demonstrate `def --wrapped` with the\r\n*external* version of `^echo`. It uses the `-e` command to interpret the\r\nescape-tab character in the string.\r\n\r\n```nu\r\n> def --wrapped my-echo [...rest] { ^echo ...$rest }; my-echo -e 'spam\\tspam'\r\nspam spam\r\n```\r\n\r\n# User-Facing Changes\r\n\r\nHelp example only.\r\n\r\n# Tests + Formatting\r\n\r\n- :green_circle: `toolkit fmt`\r\n- :green_circle: `toolkit clippy`\r\n- :green_circle: `toolkit test`\r\n- :green_circle: `toolkit test stdlib`\r\n\r\n# After Submitting\r\n","shortMessageHtmlLink":"Fix multiple issues with def --wrapped
help example (nushell#13123)"}},{"before":"46588178ef9575872f745632433284bd50dd1a5e","after":"f29f4bd2c0cea32ea53b99c53c29e6fa5a3d0398","ref":"refs/heads/path-type-null-error","pushedAt":"2024-06-10T03:55:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Fix typo","shortMessageHtmlLink":"Fix typo"}},{"before":"71d162c5d82a6ced5260494feaa9c76e27530625","after":"260e8aedc146e90d3f7ca7fb89cf19a06438824f","ref":"refs/heads/sys-removal","pushedAt":"2024-06-10T03:38:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Move relevant parts of mod.rs to `sys` subcommands","shortMessageHtmlLink":"Move relevant parts of mod.rs to sys
subcommands"}},{"before":null,"after":"71d162c5d82a6ced5260494feaa9c76e27530625","ref":"refs/heads/sys-removal","pushedAt":"2024-06-10T03:17:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Remove old `sys` command","shortMessageHtmlLink":"Remove old sys
command"}},{"before":"0bc27223ca9a5b3f9ce3b6c65005407a59dd158e","after":"a780609e5f881f8be3ef7b06a441767d160df6ec","ref":"refs/heads/typed-tagged-path-forms","pushedAt":"2024-06-10T02:18:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Add docs for `PathBuf` methods","shortMessageHtmlLink":"Add docs for PathBuf
methods"}},{"before":"f3cf693ec701ab3086f984a8aeadfc9b50fadd90","after":"5ac3ad61c42c9c97952a5df11d79e69ffcde73db","ref":"refs/heads/main","pushedAt":"2024-06-10T02:17:49.000Z","pushType":"push","commitsCount":39,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Extend functionality of tango benchmark helpers (#13107)\n\n\r\n\r\n# Description\r\n\r\n\r\nRefactors the tango helpers in the toolkit and makes them more flexible\r\n(e.g., being able to benchmark any branch against any branch, not just\r\ncurrent and main).\r\n\r\n# User-Facing Changes\r\n\r\n\r\n# Tests + Formatting\r\n\r\n\r\n# After Submitting\r\n","shortMessageHtmlLink":"Extend functionality of tango benchmark helpers (nushell#13107)"}},{"before":"8b1c621107c6247ac875acfa836c54eb929dfd43","after":"5920dfe955542ce8e914f5ae084aada5048b3446","ref":"refs/heads/parse-disallow-byte-streams","pushedAt":"2024-05-30T23:44:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Update tests","shortMessageHtmlLink":"Update tests"}},{"before":"63dc0dccba70c402beb34cb864182738110b0852","after":"8b1c621107c6247ac875acfa836c54eb929dfd43","ref":"refs/heads/parse-disallow-byte-streams","pushedAt":"2024-05-30T23:39:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Update tests","shortMessageHtmlLink":"Update tests"}},{"before":null,"after":"63dc0dccba70c402beb34cb864182738110b0852","ref":"refs/heads/parse-disallow-byte-streams","pushedAt":"2024-05-30T23:26:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Add examples","shortMessageHtmlLink":"Add examples"}},{"before":"31f3d2f6642b585f0d88192724723bf0ce330ecf","after":"f3cf693ec701ab3086f984a8aeadfc9b50fadd90","ref":"refs/heads/main","pushedAt":"2024-05-30T20:16:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Disallow more characters in arguments for internal `cmd` commands (#13009)\n\n# Description\r\nMakes `run-external` error if arguments to `cmd.exe` internal commands\r\ncontain newlines or a percent sign. This is because the percent sign can\r\nexpand environment variables, potentially? allowing command injection.\r\nNewlines I think will truncate the rest of the arguments and should\r\nprobably be disallowed to be safe.\r\n\r\n# After Submitting\r\n- If the user calls `cmd.exe` directly, then this bypasses our\r\nhandling/checking for internal `cmd` commands. Instead, we use the\r\nhandling from the Rust std lib which, in this case, does not do special\r\nhandling and is potentially unsafe. Then again, it could be the user's\r\nspecific intention to run `cmd` with whatever trusted input. The problem\r\nis that since we use the std lib handling, it assumes the exe uses the C\r\nruntime escaping rules and will perform some unwanted escaping. E.g., it\r\nwill add backslashes to the quotes in `cmd echo /c '\"\"'`.\r\n- If `cmd` is called indirectly via a `.bat` or `.cmd` file, then we use\r\nthe Rust std lib which has separate handling for bat files that should\r\nbe safe, but will reject some inputs.\r\n- ~~I'm not sure how we handle `PATHEXT`, that can also cause a file\r\nwithout an extension to be run as a bat file. If so, I don't know where\r\nthe handling, if any, is done for that.~~ It looks like we use the\r\n`which` crate to do the lookup using `PATHEXT`. Then, we pass the exe\r\npath from that to the Rust std lib `Command`, which should be safe\r\n(except for the first `cmd.exe` note).\r\n\r\nSo, in the future we need to unify and/or fix these different\r\nimplementations, including our own special handling for internal `cmd`\r\ncommands that this PR tries to fix.","shortMessageHtmlLink":"Disallow more characters in arguments for internal cmd
commands (nu…"}},{"before":"5523395a0f4857559832f91807acfd0071b69d2e","after":"46588178ef9575872f745632433284bd50dd1a5e","ref":"refs/heads/path-type-null-error","pushedAt":"2024-05-30T20:16:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Cleanup","shortMessageHtmlLink":"Cleanup"}},{"before":"a952fd8537015665c6995cb5f2ec05f88432db09","after":"5523395a0f4857559832f91807acfd0071b69d2e","ref":"refs/heads/path-type-null-error","pushedAt":"2024-05-30T18:44:26.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Merge branch 'main' into path-type-null-error","shortMessageHtmlLink":"Merge branch 'main' into path-type-null-error"}},{"before":"0e1553026e69adec2207d259d8513764deb5f87c","after":"31f3d2f6642b585f0d88192724723bf0ce330ecf","ref":"refs/heads/main","pushedAt":"2024-05-30T18:43:40.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Restore `path type` behavior (#13006)\n\n# Description\r\nRestores `path type` to return an empty string on error like it did pre\r\n0.94.0.","shortMessageHtmlLink":"Restore path type
behavior (nushell#13006)"}},{"before":"525f5d0f52bfe15db131bc85a388a2603e0a0150","after":"62a1d38b92f0d2396f689f83e5503a24b98c8067","ref":"refs/heads/raw-arg-partial-fix","pushedAt":"2024-05-30T18:19:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Restore removed comment","shortMessageHtmlLink":"Restore removed comment"}},{"before":"f2202e0ae84919be9e844fd237a1fddc0be8f304","after":"525f5d0f52bfe15db131bc85a388a2603e0a0150","ref":"refs/heads/raw-arg-partial-fix","pushedAt":"2024-05-30T18:18:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Fix typo","shortMessageHtmlLink":"Fix typo"}},{"before":null,"after":"f2202e0ae84919be9e844fd237a1fddc0be8f304","ref":"refs/heads/raw-arg-partial-fix","pushedAt":"2024-05-30T17:53:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Disallow more characters in cmd args","shortMessageHtmlLink":"Disallow more characters in cmd args"}},{"before":null,"after":"a952fd8537015665c6995cb5f2ec05f88432db09","ref":"refs/heads/path-type-null-error","pushedAt":"2024-05-30T13:21:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Return null if file doesn't exist and bubble up other errors","shortMessageHtmlLink":"Return null if file doesn't exist and bubble up other errors"}},{"before":null,"after":"b15c63d09c627bf00c2587a30b9869899772020b","ref":"refs/heads/path-type-restoration","pushedAt":"2024-05-30T13:21:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Restore `path type` behavior","shortMessageHtmlLink":"Restore path type
behavior"}},{"before":"f3991f2080284eadaec5a29b92def5bdf8d41248","after":"0e1553026e69adec2207d259d8513764deb5f87c","ref":"refs/heads/main","pushedAt":"2024-05-30T13:06:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"IanManske","name":"Ian Manske","path":"/IanManske","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34794997?s=80&v=4"},"commit":{"message":"Restore tilde expansion on external command names (#13001)\n\n# Description\r\n\r\nFix a regression introduced by #12921, where tilde expansion was no\r\nlonger done on the external command name, breaking things like\r\n\r\n```nushell\r\n> ~/.cargo/bin/exa\r\n```\r\n\r\nThis properly handles quoted strings, so they don't expand:\r\n\r\n```nushell\r\n> ^\"~/.cargo/bin/exa\"\r\nError: nu::shell::external_command\r\n\r\n × External command failed\r\n ╭─[entry #1:1:2]\r\n 1 │ ^\"~/.cargo/bin/exa\"\r\n · ─────────┬────────\r\n · ╰── Command `~/.cargo/bin/exa` not found\r\n ╰────\r\n help: `~/.cargo/bin/exa` is neither a Nushell built-in or a known external command\r\n\r\n```\r\n\r\nThis required a change to the parser, so the command name is also parsed\r\nin the same way the arguments are - i.e. the quotes on the outside\r\nremain in the expression. Hopefully that doesn't break anything else. 🤞\r\n\r\nFixes #13000. Should include in patch release 0.94.1\r\n\r\ncc @YizhePKU\r\n\r\n# User-Facing Changes\r\n- Tilde expansion now works again for external commands\r\n- The `command` of `run-external` will now have its quotes removed like\r\nthe other arguments if it is a literal string\r\n- The parser is changed to include quotes in the command expression of\r\n`ExternalCall` if they were present\r\n\r\n# Tests + Formatting\r\nI would like to add a regression test for this, but it's complicated\r\nbecause we need a well-known binary within the home directory, which\r\njust isn't a thing. We could drop one there, but that's kind of a bad\r\nbehavior for a test to do. I also considered changing the home directory\r\nfor the test, but that's so platform-specific - potentially could get it\r\nworking on specific platforms though. Changing `HOME` env on Linux\r\ndefinitely works as far as tilde expansion works.\r\n\r\n- :green_circle: `toolkit fmt`\r\n- :green_circle: `toolkit clippy`\r\n- :green_circle: `toolkit test`\r\n- :green_circle: `toolkit test stdlib`","shortMessageHtmlLink":"Restore tilde expansion on external command names (nushell#13001)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEZf0VwQA","startCursor":null,"endCursor":null}},"title":"Activity · IanManske/nushell"}