mirror of
https://github.com/nushell/nushell.git
synced 2024-11-25 09:53:43 +01:00
c358400351
6787 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
dependabot[bot]
|
c358400351
|
Bump procfs from 0.14.1 to 0.15.1 (#8233)
Bumps [procfs](https://github.com/eminence/procfs) from 0.14.1 to 0.15.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eminence/procfs/releases">procfs's releases</a>.</em></p> <blockquote> <h2>v0.15.1</h2> <h2>New features</h2> <ul> <li>Change Stat::comm documentation by <a href="https://github.com/rust1248"><code>@rust1248</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/251">eminence/procfs#251</a></li> <li>Add docs and a as_str method to MMPermission by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/252">eminence/procfs#252</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/rust1248"><code>@rust1248</code></a> made their first contribution in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/251">eminence/procfs#251</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/eminence/procfs/compare/v0.15.0...v0.15.1">https://github.com/eminence/procfs/compare/v0.15.0...v0.15.1</a></p> <h2>v0.15.0</h2> <h2>New Features</h2> <ul> <li>Add /proc/iomem by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/216">eminence/procfs#216</a></li> <li>Add new functions to read various net files for a specific process by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/226">eminence/procfs#226</a></li> <li>add /proc/kpageflags by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/233">eminence/procfs#233</a></li> <li>Enable oppportunistic fd counting fast path by <a href="https://github.com/bobrik"><code>@bobrik</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/234">eminence/procfs#234</a></li> <li>add /proc/kpagecount by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/232">eminence/procfs#232</a></li> <li>Add new <code>/proc/meminfo</code> fields. by <a href="https://github.com/afranchuk"><code>@afranchuk</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/238">eminence/procfs#238</a></li> <li>impl Hash for kernel version by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/240">eminence/procfs#240</a></li> </ul> <h2>Bug fixes</h2> <ul> <li>fix chrono::Local::timestamp deprecated in chrono 0.4.23 by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/220">eminence/procfs#220</a></li> <li>Fix some minor documentation issues by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/225">eminence/procfs#225</a></li> <li>Fixes the reported path when a task's function returns an error by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/230">eminence/procfs#230</a></li> <li>fix shm size type by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/243">eminence/procfs#243</a></li> </ul> <h2>Breaking changes</h2> <ul> <li>ticks_per_second and page_size are infallible by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/235">eminence/procfs#235</a></li> <li>parse uid for /proc/net/{tcp,udp} by <a href="https://github.com/trinity-1686a"><code>@trinity-1686a</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/231">eminence/procfs#231</a></li> <li>Refactor and expose memory map processing. by <a href="https://github.com/afranchuk"><code>@afranchuk</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/237">eminence/procfs#237</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/trinity-1686a"><code>@trinity-1686a</code></a> made their first contribution in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/231">eminence/procfs#231</a></li> <li><a href="https://github.com/afranchuk"><code>@afranchuk</code></a> made their first contribution in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/238">eminence/procfs#238</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/eminence/procfs/compare/v0.14.2...v0.15.0">https://github.com/eminence/procfs/compare/v0.14.2...v0.15.0</a></p> <h2>MSRV Note</h2> <p>This <code>v0.15</code> release is only tested against the latest stable rust compiler, but is known to work with older versions (down to rust 1.48). Support for these older compilers may break in <code>procfs</code> patch releases. See also <a href="https://github-redirect.dependabot.com/eminence/procfs/issues/223">#223</a></p> <h2>v0.14.2</h2> <h2>New Features</h2> <ul> <li>Process: Namespace: Use openat instead of building a path by <a href="https://github.com/arilou"><code>@arilou</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/192">eminence/procfs#192</a></li> <li>add serde serialize/deserialize derives for public types by <a href="https://github.com/eliad-wiz"><code>@eliad-wiz</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/193">eminence/procfs#193</a></li> <li>Disabling default features on the <code>chrono</code> crate by <a href="https://github.com/Will-Low"><code>@Will-Low</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/210">eminence/procfs#210</a></li> <li>Implement smaps_rollup by <a href="https://github.com/TaborKelly"><code>@TaborKelly</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/214">eminence/procfs#214</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Jakub Žádník
|
a3f817d71b
|
Re-implement aliases (#8123)
# Description This PR adds an alternative alias implementation. Old aliases still work but you need to use `old-alias` instead of `alias`. Instead of replacing spans in the original code and re-parsing, which proved to be extremely error-prone and a constant source of panics, the new implementation creates a new command that references the old command. Consider the new alias defined as `alias ll = ls -l`. The parser creates a new command called `ll` and remembers that it is actually a `ls` command called with the `-l` flag. Then, when the parser sees the `ll` command, it will translate it to `ls -l` and passes to it any parameters that were passed to the call to `ll`. It works quite similar to how known externals defined with `extern` are implemented. The new alias implementation should work the same way as the old aliases, including exporting from modules, referencing both known and unknown externals. It seems to preserve custom completions and pipeline metadata. It is quite robust in most cases but there are some rough edges (see later). Fixes https://github.com/nushell/nushell/issues/7648, https://github.com/nushell/nushell/issues/8026, https://github.com/nushell/nushell/issues/7512, https://github.com/nushell/nushell/issues/5780, https://github.com/nushell/nushell/issues/7754 No effect: https://github.com/nushell/nushell/issues/8122 (we might revisit the completions code after this PR) Should use custom command instead: https://github.com/nushell/nushell/issues/6048 # User-Facing Changes Since aliases are now basically commands, it has some new implications: 1. `alias spam = "spam"` (requires command call) * **workaround**: use `alias spam = echo "spam"` 2. `def foo [] { 'foo' }; alias foo = ls -l` (foo defined more than once) * **workaround**: use different name (commands also have this limitation) 4. `alias ls = (ls | sort-by type name -i)` * **workaround**: Use custom command. _The common issue with this is that it is currently not easy to pass flags through custom commands and command referencing itself will lead to stack overflow. Both of these issues are meant to be addressed._ 5. TODO: Help messages, `which` command, `$nu.scope.aliases`, etc. * Should we treat the aliases as commands or should they be separated from regular commands? 6. Needs better error message and syntax highlight for recursed alias (`alias f = f`) 7. Can't create alias with the same name as existing command (`alias ls = ls -a`) * Might be possible to add support for it (not 100% sure) 8. Standalone `alias` doesn't list aliases anymore 9. Can't alias parser keywords (e.g., stuff like `alias ou = overlay use` won't work) * TODO: Needs a better error message when attempting to do so # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Gustavo Maia
|
c6e2607868
|
Add Remove welcome message tutorial (#8217)
# Description Added message sending to docs to how to remove message tutorial: ![welcome message](https://user-images.githubusercontent.com/67283753/221384655-9218c256-b4d6-44e5-95c6-68c50c235cb7.png) # User-Facing Changes - Easy to find how to remove Welcome Message Fixes #8216 issue |
||
dependabot[bot]
|
a29da8c95b
|
Bump actions-rust-lang/setup-rust-toolchain from 1.4.2 to 1.4.3 (#8239)
Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.4.2 to 1.4.3. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md">actions-rust-lang/setup-rust-toolchain's changelog</a>.</em></p> <blockquote> <h2>[1.4.3] - 2023-02-21</h2> <h3>Fixed</h3> <ul> <li>Executing the action twice for different toolchains now no longer fails around unstable features <a href="https://github-redirect.dependabot.com/actions-rust-lang/setup-rust-toolchain/issues/12">#12</a>. If multiple toolchains are installed, the "CARGO_REGISTRIES_CRATES_IO_PROTOCOL" can be downgraded to "git" if any of the installed toolchains require it.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
a09aaf3495
|
Bump csv from 1.1.6 to 1.2.0 (#8235)
Bumps [csv](https://github.com/BurntSushi/rust-csv) from 1.1.6 to 1.2.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
ffc8e752a5
|
Bump bytesize from 1.1.0 to 1.2.0 (#8236)
Bumps [bytesize](https://github.com/hyunsik/bytesize) from 1.1.0 to 1.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/hyunsik/bytesize/releases">bytesize's releases</a>.</em></p> <blockquote> <h2>Release 1.2.0</h2> <h2>Changes</h2> <ul> <li>serde improvements <a href="https://github-redirect.dependabot.com/hyunsik/bytesize/issues/29">#29</a> (<a href="https://github.com/joeroback"><code>@joeroback</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
6ca07b87b9
|
Bump sysinfo from 0.27.7 to 0.28.0 (#8237)
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.27.7 to 0.28.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md">sysinfo's changelog</a>.</em></p> <blockquote> <h1>0.28.0</h1> <ul> <li>Linux: Fix name and CPU usage for processes tasks.</li> <li>unix: Keep all users, even "not real" accounts.</li> <li>Windows: Use SID for Users ID.</li> <li>Fix C API.</li> <li>Disable default cdylib compilation.</li> <li>Add <code>serde</code> feature to enable serialization.</li> <li>Linux: Handle <code>Idle</code> state in <code>ProcessStatus</code>.</li> <li>Linux: Add brand and name of ARM CPUs.</li> </ul> <h1>0.27.8</h1> <ul> <li>macOS: Fix overflow when computing CPU usage.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/GuillaumeGomez/sysinfo/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sysinfo&package-manager=cargo&previous-version=0.27.7&new-version=0.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
dependabot[bot]
|
49e45915f0
|
Bump actions/checkout from 2 to 3 (#8240)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v3.0.0</h2> <ul> <li>Updated to the node16 runtime by default <ul> <li>This requires a minimum <a href="https://github.com/actions/runner/releases/tag/v2.285.0">Actions Runner</a> version of v2.285.0 to run, which is by default available in GHES 3.4 or later.</li> </ul> </li> </ul> <h2>v2.6.0</h2> <h2>What's Changed</h2> <ul> <li>Add backports to v2 branch by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://github-redirect.dependabot.com/actions/checkout/pull/1040">actions/checkout#1040</a> <ul> <li>Includes backports from the following changes: <a href="https://github-redirect.dependabot.com/actions/checkout/pull/964">actions/checkout#964</a>, <a href="https://github-redirect.dependabot.com/actions/checkout/pull/1002">actions/checkout#1002</a>, <a href="https://github-redirect.dependabot.com/actions/checkout/pull/1029">actions/checkout#1029</a></li> <li>Upgraded the licensed version to match what is used in v3.</li> </ul> </li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v2.5.0...v2.6.0">https://github.com/actions/checkout/compare/v2.5.0...v2.6.0</a></p> <h2>v2.5.0</h2> <h2>What's Changed</h2> <ul> <li>Update <code>@actions/core</code> to 1.10.0 by <a href="https://github.com/rentziass"><code>@rentziass</code></a> in <a href="https://github-redirect.dependabot.com/actions/checkout/pull/962">actions/checkout#962</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v2...v2.5.0">https://github.com/actions/checkout/compare/v2...v2.5.0</a></p> <h2>v2.4.2</h2> <h2>What's Changed</h2> <ul> <li>Add set-safe-directory input to allow customers to take control. (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/770">#770</a>) by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://github-redirect.dependabot.com/actions/checkout/pull/776">actions/checkout#776</a></li> <li>Prepare changelog for v2.4.2. by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://github-redirect.dependabot.com/actions/checkout/pull/778">actions/checkout#778</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v2...v2.4.2">https://github.com/actions/checkout/compare/v2...v2.4.2</a></p> <h2>v2.4.1</h2> <ul> <li>Fixed an issue where checkout failed to run in container jobs due to the new git setting <code>safe.directory</code></li> </ul> <h2>v2.4.0</h2> <ul> <li>Convert SSH URLs like <code>org-<ORG_ID>@github.com:</code> to <code>https://github.com/</code> - <a href="https://github-redirect.dependabot.com/actions/checkout/pull/621">pr</a></li> </ul> <h2>v2.3.5</h2> <p>Update dependencies</p> <h2>v2.3.4</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/379">Add missing <code>await</code>s</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/360">Swap to Environment Files</a></li> </ul> <h2>v2.3.3</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/345">Remove Unneeded commit information from build logs</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/326">Add Licensed to verify third party dependencies</a></li> </ul> <h2>v2.3.2</h2> <p><a href="https://github-redirect.dependabot.com/actions/checkout/pull/320">Add Third Party License Information to Dist Files</a></p> <h2>v2.3.1</h2> <p><a href="https://github-redirect.dependabot.com/actions/checkout/pull/284">Fix default branch resolution for .wiki and when using SSH</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>v3.1.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/939">Use <code>@actions/core</code> <code>saveState</code> and <code>getState</code></a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/922">Add <code>github-server-url</code> input</a></li> </ul> <h2>v3.0.2</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/770">Add input <code>set-safe-directory</code></a></li> </ul> <h2>v3.0.1</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/762">Fixed an issue where checkout failed to run in container jobs due to the new git setting <code>safe.directory</code></a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/744">Bumped various npm package versions</a></li> </ul> <h2>v3.0.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/689">Update to node 16</a></li> </ul> <h2>v2.3.1</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/284">Fix default branch resolution for .wiki and when using SSH</a></li> </ul> <h2>v2.3.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/278">Fallback to the default branch</a></li> </ul> <h2>v2.2.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/258">Fetch all history for all tags and branches when fetch-depth=0</a></li> </ul> <h2>v2.1.1</h2> <ul> <li>Changes to support GHES (<a href="https://github-redirect.dependabot.com/actions/checkout/pull/236">here</a> and <a href="https://github-redirect.dependabot.com/actions/checkout/pull/248">here</a>)</li> </ul> <h2>v2.1.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/191">Group output</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/199">Changes to support GHES alpha release</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/184">Persist core.sshCommand for submodules</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/163">Add support ssh</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/179">Convert submodule SSH URL to HTTPS, when not using SSH</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/157">Add submodule support</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/144">Follow proxy settings</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/141">Fix ref for pr closed event when a pr is merged</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/128">Fix issue checking detached when git less than 2.22</a></li> </ul> <h2>v2.0.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/108">Do not pass cred on command line</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/107">Add input persist-credentials</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/104">Fallback to REST API to download repo</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
David Matos
|
96e3a3de68
|
Error out when Select gets same row (#8200)
# Description Fixes #8145, by disallowing any rows that are duplicated. ``` ❯ ls | select 0 0 Error: × Select only allows unique rows ╭─[entry #1:1:1] 1 │ ls | select 0 0 · ┬ · ╰── duplicated row ╰──── ``` # User-Facing Changes # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - [X] `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - [X] `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --------- Co-authored-by: Reilly Wood <reilly.wood@icloud.com> |
||
Reilly Wood
|
2aa5c2c41f
|
Simplify str trim command (#8205)
### What? This change removes 3 flags (`--all`, `--both`, and `--format`) from `str trim`. This is a net reduction of ~450 LoC and `str trim` no longer depends on `fancy_regex`. ### Why? I found these flags to be quite confusing when reviewing `str trim` earlier today: 1. `--all` removes characters even if they're in the centre of the the string. - This is arguably not "trimming"! In all programming languages I'm familiar with, trimming only affects the start and end of a string. - If someone needs to do this, `str replace` is more natural IMO 2. `--both` trims from the left and right - Confusing and unnecessary given that this is also the default behaviour 3. `--format` replaces multiple spaces with a single space, even in the centre of the string - Again, I don't think this falls under the scope of "trimming". IMO `str replace` is a more natural fit I believe that `str trim` is simpler and easier to understand after this change. ### Before ``` 〉help str trim Trim whitespace or specific character Search terms: whitespace, strip, lstrip, rstrip Usage: > str trim {flags} ...(rest) Flags: -h, --help - Display the help message for this command -c, --char <String> - character to trim (default: whitespace) -l, --left - trims characters only from the beginning of the string -r, --right - trims characters only from the end of the string -a, --all - trims all characters from both sides of the string *and* in the middle -b, --both - trims all characters from left and right side of the string -f, --format - trims spaces replacing multiple characters with singles in the middle ``` ### After ``` 〉help str trim Trim whitespace or specific character Search terms: whitespace, strip, lstrip, rstrip Usage: > str trim {flags} ...(rest) Flags: -h, --help - Display the help message for this command -c, --char <String> - character to trim (default: whitespace) -l, --left - trims characters only from the beginning of the string -r, --right - trims characters only from the end of the string ``` |
||
Xoffio
|
4b3e3a37a3
|
Ctrl+c interruption - cp command (#8219)
# Description if you try to copy a big file with `cp` you will noticed that you can't interrupt the process. This pull request fix that. This was discuss here https://github.com/nushell/nushell/pull/8012#issuecomment-1427313054 # User-Facing Changes None # Tests + Formatting - Check - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - Check - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - Check - `cargo test --workspace` to check that all tests pass --------- Co-authored-by: Reilly Wood <reilly.wood@icloud.com> |
||
Antoine Stevan
|
2492165fcb
|
FEATURE: print example command results in the help (#8189)
Should close #8035. > **Note** > this is my first technical PR for `nushell` > - i might very well miss things > - i tried to be as complete as possible about the changes > - please require further changes if i did something wrong, i'm open to any remark 😌 # Description this PR adds, when it is defined in the `examples` method of the `Command` implementations, the output of the examples to the output of the `help` command. this PR - only modifies `crates/nu-engine/src/documentation.rs` and the `get_documentation` function - defines a new `WD` constant to print a **W**hite **D**immed `...` - a `match` statement at the end of the example loop to - print a white dimmed `...` when the example is not set, i.e. set to `None` in the `examples` method of the `Command` implementation of a command - pretty print the output of the associated example `Value` when it has been defined > **Warning** > LIMITATIONS: > - i use snippets from `crates/nu-protocol/src/pipeline_data.rs` > - the table creation from `pub PipelineData::print`, i.e. the `let decl_id = ...;` and `let table = ...;` in the change > - the table item printing from `PipelineData::write_all_and_flush`, i.e. the `for item in table { ... }` > > ADDRESSED: > - ~~the formatting of the output is not perfect and has to be fully left aligned with the first column for now~~ (fixed with [`5abeefd558c34ba9bae15e2f183ff4625442921e`..`a62be1b5a2c730959da5dbc028bb91ffe5093f63`](5abeefd558c34ba9bae15e2f183ff4625442921e..a62be1b5a2c730959da5dbc028bb91ffe5093f63)) > - ~~i'm using `.unwrap()` on both the changes above, not sure how to handle this for now~~ (fixed for now thanks to |
||
Doru
|
c602b5a1e8
|
special-case ExternalStream in bytes starts-with (#8203)
# Description `bytes starts-with` converts the input into a `Value` before running .starts_with to find if the binary matches. This has two side effects: it makes the code simpler, only dealing in whole values, and simplifying a lot of input pipeline handling and value transforming it would otherwise have to do. _Especially_ in the presence of a cell path to drill into. It also makes buffers the entire input into memory, which can take up a lot of memory when dealing with large files, especially if you only want to check the first few bytes (like for a magic number). This PR adds a special branch on PipelineData::ExternalStream with a streaming version of starts_with. # User-Facing Changes Opening large files and running bytes starts-with on them will not take a long time. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # Drawbacks Streaming checking is more complicated, and there may be bugs. I tested it with multiple chunks with string data and binary data and it seems to work alright up to 8k and over bytes, though. The existing `operate` method still exists because the way it handles cell paths and values is complicated. This causes some "code duplication", or at least some intent duplication, between the value code and the streaming code. This might be worthwhile considering the performance gains (approaching infinity on larger inputs). Another thing to consider is that my ExternalStream branch considers string data as valid input. The operate branch only parses Binary values, so it would fail. `open` is kind of unpredictable on whether it returns string data or binary data, even when passing `--raw`. I think this can be a problem but not really one I'm trying to tackle in this PR, so, it's worth considering. |
||
pwygab
|
9bbb9711e4
|
allow for arguments in EDITOR and VISUAL env vars (#8105)
# Description Fixes #8051. # User-Facing Changes You can now put command arguments into the EDITOR and VISUAL config / env variables. # Tests + Formatting I don't know how to write tests for this. However, I set $env.EDITOR to "nvim -R" and it seemed to work. # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Antoine Stevan
|
680405e527
|
REFACTOR: format some example commands (#8223)
hellord 👋 😋 # Description this PR fixes the format of a few single-line examples and the indentation of some multi-line examples - single-line example formatting - `compact` - multi-line example indentation - `update cells` - `error make - `split-by` # User-Facing Changes - `compact` from ```bash Examples: Filter out all records where 'Hello' is null (returns nothing) > [["Hello" "World"]; [null 3]]| compact Hello Filter out all records where 'World' is null (Returns the table) > [["Hello" "World"]; [null 3]]| compact World ``` to ```bash Examples: Filter out all records where 'Hello' is null (returns nothing) > [["Hello" "World"]; [null 3]] | compact Hello Filter out all records where 'World' is null (Returns the table) > [["Hello" "World"]; [null 3]] | compact World ``` - `update cells` from ```bash Examples: Update the zero value cells to empty strings. > [ ["2021-04-16", "2021-06-10", "2021-09-18", "2021-10-15", "2021-11-16", "2021-11-17", "2021-11-18"]; [ 37, 0, 0, 0, 37, 0, 0] ] | update cells { |value| if $value == 0 { "" } else { $value } } Update the zero value cells to empty strings in 2 last columns. > [ ["2021-04-16", "2021-06-10", "2021-09-18", "2021-10-15", "2021-11-16", "2021-11-17", "2021-11-18"]; [ 37, 0, 0, 0, 37, 0, 0] ] | update cells -c ["2021-11-18", "2021-11-17"] { |value| if $value == 0 { "" } else { $value } } ``` to ```bash Examples: Update the zero value cells to empty strings. > [ ["2021-04-16", "2021-06-10", "2021-09-18", "2021-10-15", "2021-11-16", "2021-11-17", "2021-11-18"]; [ 37, 0, 0, 0, 37, 0, 0] ] | update cells { |value| if $value == 0 { "" } else { $value } } Update the zero value cells to empty strings in 2 last columns. > [ ["2021-04-16", "2021-06-10", "2021-09-18", "2021-10-15", "2021-11-16", "2021-11-17", "2021-11-18"]; [ 37, 0, 0, 0, 37, 0, 0] ] | update cells -c ["2021-11-18", "2021-11-17"] { |value| if $value == 0 { "" } else { $value } } ``` - `split-by` from ```bash Examples: split items by column named "lang" > { '2019': [ { name: 'andres', lang: 'rb', year: '2019' }, { name: 'jt', lang: 'rs', year: '2019' } ], '2021': [ { name: 'storm', lang: 'rs', 'year': '2021' } ] } | split-by lang ``` to ```bash Examples: split items by column named "lang" > { '2019': [ { name: 'andres', lang: 'rb', year: '2019' }, { name: 'jt', lang: 'rs', year: '2019' } ], '2021': [ { name: 'storm', lang: 'rs', 'year': '2021' } ] } | split-by lang ``` - `error make` from ```bash Examples: Create a custom error for a custom command > def foo [x] { let span = (metadata $x).span; error make {msg: "this is fishy", label: {text: "fish right here", start: $span.start, end: $span.end } } } Create a simple custom error for a custom command > def foo [x] { error make {msg: "this is fishy"} } ``` to ```bash Examples: Create a custom error for a custom command > def foo [x] { let span = (metadata $x).span; error make {msg: "this is fishy", label: {text: "fish right here", start: $span.start, end: $span.end } } } Create a simple custom error for a custom command > def foo [x] { error make {msg: "this is fishy"} } ``` # Tests + Formatting no tests have been changed => this is a pure formatting PR - ✔️ `cargo fmt --all` - ✔️ `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` - ✔️ `cargo test --workspace` # After Submitting need to change the book? 🤔 |
||
pwygab
|
44595b44c5
|
add case insensitive switch to starts-with and ends-with (#8221)
# Description Fixes #8202 # User-Facing Changes `str starts-with` and `str ends-with` now has a `-i` switch. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Stefan Holderbach
|
b27c7702f9
|
Test more datatypes in nuon (#8211)
# Description While working on #8210 I noticed that we did not explicitly check a number of `Value` variants for proper serialization and deserialization. - Test filesize in `to/from nuon` - Test duration in `from/to nuon` - Test datetime in `from/to nuon` - Test graceful failure of closure in `to nuon` # User-Facing Changes (-) # Tests + Formatting All about them tests |
||
Kovacsics Robert
|
378a3ae05f
|
Use with-env to avoid calling external command on invalid command (#8209)
# Description My terminal emulator happens to be called `st` (https://st.suckless.org/) which breaks these tests for me _(Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes.)_ _(Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience.)_ # User-Facing Changes _(List of all changes that impact the user experience here. This helps us keep track of breaking changes.)_ # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Stefan Holderbach
|
836a56b347
|
Revert range expansion for to nuon (#8210)
# Description The code to generate the nuon format supports writing range literals, which obviates the need to expand the range as added in #8047 # User-Facing Changes `to nuon` will still output ranges as literals # Tests + Formatting - Add test for `to nuon` range output - Add `from nuon` test for range |
||
Stefan Holderbach
|
b36ac8f2f8
|
Try to test similar things in coverage (#8056)
# Description - Try to run `cargo test` with out narrowing. - Remove restrictions around plugins -> include plugin tests # User-Facing Changes None # Tests + Formatting Qualifying test suite unchanged |
||
baehyunsol
|
b1e7bb899a
|
Update trim_.rs (#8201)
fix typo in help messages # Description _(Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes.)_ _(Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience.)_ # User-Facing Changes _(List of all changes that impact the user experience here. This helps us keep track of breaking changes.)_ # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --------- Co-authored-by: Reilly Wood <reilly.wood@icloud.com> |
||
alesito85
|
7c285750c7
|
Fixes autocomplete when using sudo (#8094)
# Description This PR addresses issue #2047 in order to enable autocomplete functionality when using sudo for executing commands. I'e done a couple of auxiliary checks such as ignoring whitespace and the last pipe in order to determine the last command. # User-Facing Changes The only user facing change should be the autocomplete working. # Tests + Formatting All tests and formatting pass. # Screenshots <img width="454" alt="image" src="https://user-images.githubusercontent.com/4399118/219404037-6cce4358-68a9-42bb-a09b-2986b10fa6cc.png"> # Suggestions welcome I still don't know the in's and out's if nushell very well, any suggestions for improvements are welcome. |
||
Jakub Žádník
|
e93a8b1d32
|
Move profiling metadata collecting to function (#8198) | ||
David Matos
|
42f0b55de0
|
allow Range to expand to array-like when converting to json (#8047)
# Description Fixes #8002, which expands ranges `1..3` to expand to array-like when saving and converting to json. Now, ``` > 1..3 | save foo.json # foo.json [ 1, 2, 3 ] > 1..3 | to json [ 1, 2, 3 ] ``` # User-Facing Changes _(List of all changes that impact the user experience here. This helps us keep track of breaking changes.)_ # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - [X] `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - [X] `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Henry Jetmundsen
|
253b223e65
|
pipe binary data to external commands (#8058)
Fixes #7615 # Description When calling external commands, we create a table from the pipeline data to handle external commands expecting paginated input. When a binary value is made into a table, we convert the vector of bytes representing the binary bytes into a pretty formatted string. This results in the pretty formatted string being sent to external commands instead of the actual binary bytes. By checking whether the stdout of the call is being redirected, we can decide whether to send the raw binary bytes or the pretty formatted output when creating a table command. # User-Facing Changes When passing binary values to external commands, the external command will receive the actual bytes instead of the pretty printed string. Use cases that don't involve piping a binary value into an external command are unchanged. ![new_behavior](https://user-images.githubusercontent.com/32406734/218349172-24cd12f2-d563-4957-bdf1-6aa804b174b2.png) # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: cargo fmt --all -- --check to check standard code formatting (cargo fmt --all applies these changes) cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect to check that you're using the standard code style cargo test --workspace to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Hofer-Julian
|
85bfdca578
|
Force install in install-all scripts (#8194)
Otherwise, one has to remove old installations manually |
||
Alex Tremblay
|
4dd9d0d46b
|
move hash md5 and hash sha256 commands to the hash category (#8196)
# Description For auto-generated documentation, move the `hash _` commands into the Hash category # User-Facing Changes Apart from documentation, none. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Darren Schroeder
|
fd1ac5106d
|
fix ansi example so it is tested (#8192)
# Description This PR just fixes one `ansi` test so that the test runner will accept it and test the scenario. No other changes. # User-Facing Changes _(List of all changes that impact the user experience here. This helps us keep track of breaking changes.)_ # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Ryan Devenney
|
b572b4ecbd
|
remove links to ShellError and ParseError docs - #8167 (#8193)
# Description issue #8167 Remove the `(link)` to the docs for `ShellError` and `ParseError`. As per discussion on the issue, the nu-parser version didn't update on the docs causing deadlinks for those errors, which brought the usefullness of these links into question and it was decided to remove all of them that `derive(diagnostic)`. # User-Facing Changes Before: ``` /home/rdevenney/projects/open_source/nushell〉ls | get name} Error: nu::parser::unbalanced_delimiter (link) × Unbalanced delimiter. ╭─[entry #1:1:1] 1 │ ls | get name} · ▲ · ╰── unbalanced { and } ╰──── ``` After: ``` /home/rdevenney/projects/open_source/nushell〉ls | get name} Error: nu::parser::unbalanced_delimiter × Unbalanced delimiter. ╭─[entry #1:1:1] 1 │ ls | get name} · ▲ · ╰── unbalanced { and } ╰──── ``` # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Michael Angerman
|
585e104608
|
Cratification: Break out nu_cmd_lang into a separate crate (#8181)
# Description This breaks out the core_commands into a separate crate called nu_cmd_lang _(Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes.)_ _(Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience.)_ # User-Facing Changes _(List of all changes that impact the user experience here. This helps us keep track of breaking changes.)_ # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Stefan Holderbach
|
d0aefa99eb
|
Disable Windows coverage tracking for now (#8190)
# Description Avoids running out of disk through additional files after cratification on Windows. Revert as soon as we reduced the binary or test footprint. Will mess with the coverage values without change in test suite as we only track the linux conditional compilation Should resolve the CI failure for #8181 # User-Facing Changes None # Tests + Formatting Altered coverage value thresholds might be the result |
||
Stefan Holderbach
|
728e95c52b
|
Add links to the remaining README badges (#8191)
Quicklinks to metrics. When we are proud to display them as badges, let's show of the underlying statistics as well. Also helpful to quickly get to the actions. |
||
Jérémy Audiger
|
83087e0f9d
|
HTTP HEAD / PATCH / PUT / DELETE commands (#8144)
# Description Based on https://github.com/nushell/nushell/pull/8135. Add the remaining HTTP commands: - Head - Patch - Put - Delete It should finally resolve the issue https://github.com/nushell/nushell/issues/2741 # User-Facing Changes New sub HTTP commands. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Darren Schroeder
|
3fb1e37473
|
remove old winget manual release ci (#8177)
# Description This PR removes the old winget manual release ci. With the updated winget release, we're able to specify the version we want to push to winget manually in case it fails. You just choose the `Submit Nushell package to Windows Package Manager Community Repository` action, click the run workflow and specify the tag. ![image](https://user-images.githubusercontent.com/343840/220924670-411dd683-0d17-490a-901b-bf2a49d7fa77.png) # User-Facing Changes _(List of all changes that impact the user experience here. This helps us keep track of breaking changes.)_ # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Darren Schroeder
|
9890966fa4
|
update the manual msi generation instructions for winget (#8178)
# Description Yet another winget failure and yet another update of the manual msi generation instructions for winget releases. # User-Facing Changes N/A |
||
Alex Saveau
|
aba0fb0000
|
Compress $HOME into ~ in prompt (#8173) | ||
WindSoilder
|
0e86ba4b63
|
Dependency update: update notify version to v5 (#8114)
# Description Relative: #8060 While investigating, I found we need to update notify, which is a good step to remove some duplicate dependencies. As title, here are some goods and bads after updating: ## Good keep dependency up to date, and remove duplidate dependency(cfg-if, winapi) in Cargo.lock. ## Bad Introduce some breaking changes: After updating to notify v5, I found that we have to remove `Rename` events. But I've testing under notify v4, and it doesn't work good if we running the following command on MacOS: ``` touch a mv a b ``` It fires file create event, but no file rename event. So `rename` event is not really reliable, so I think it's ok for us to remove `Rename` events. The reason to remove `--debounce-ms` flag: It's not provided by defualt file watcher, we can use [PollWatcher](https://docs.rs/notify/latest/notify/poll/struct.PollWatcher.html), but it scans filesystem, which is really expensive. So I just remove the flag. # User-Facing Changes 1. `--debounce-ms` flag is removed 2. no longer watch `Rename` event. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Xoffio
|
fc23c6721a
|
cp progress bar implementation (#8012)
# NOTE Clean duplicate of #7825 Sorry about all the mess guys... I got confuse with GitHub and and ended up mankind that mess. This the same code I just cleaned the commits. # Description Progress bar implementation for the `cp` command. Now if the flag `-p` or `--progress` is set, then the user will be able to see the progress of the file or files being copy ![progressbar_cp01](https://user-images.githubusercontent.com/38369407/213899494-0f6a4aa9-ee82-48c3-a1f1-1816f3fc1d9c.jpg) ![progressbar_cp02](https://user-images.githubusercontent.com/38369407/213899497-2f9e6e8c-fdd9-400b-bd8d-c59899ae0368.jpg) # User-Facing Changes A new flag (`--progress` `-p`) was added to the `cp` command Examples: ```nu cp -p test_file.txt test_folder_1\ cp -r -p test_folder\* test_folder_1\ cp -r -p -i test_folder\* test_folder_1\ ``` ## Notes - The progress bar uses `std::io::{Read, Write}` instead of `std::fs::copy` to get the progress. that means that when the progress bar is used the copy process might be a bit slower. - Progress bar for symbolic links TBD: Since symbolic links are usually very light I think is not worth it to duplicate the function `copy_symlink` just to add a progress bar that will be so fast to the point is not needed, but.. for consistency purposes we might need to added it, In that case I would have to pass the variable `progress` by parameter (to not duplicate code unnecessary). If I do that i would have to pass the `progress` var to every function to respect `copy_impl: impl Fn(PathBuf, PathBuf, Span)`. Please let me know if this is not clear :p --------- Co-authored-by: Reilly Wood <reilly.wood@icloud.com> |
||
Yethal
|
f4a129a792
|
Added examples to query web plugin (#8171)
# Description _(Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes.)_ _(Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience.)_ # User-Facing Changes _(List of all changes that impact the user experience here. This helps us keep track of breaking changes.)_ # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --------- Co-authored-by: Yethal <nosuchemail@email.com> |
||
Maxim Zhiburt
|
8deecc0137
|
table --collapse dont do truncation return message instead (#8172)
Reverts #8042
I've just noticed that #8042 was merged, but I didn't addressed your
@fdncred last comment.
This PR reverts #8042 and returns a message in cases where we need
truncation/wrapping.
|
||
WindSoilder
|
c7966e81c2
|
check external failed in let assignment (#8164)
# Description Fixes: #8136 # User-Facing Changes The following command ``` let VAR = ^cat non-existing-file; echo "failed" ``` will no longer output `failed` message # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --------- Co-authored-by: Reilly Wood <reilly.wood@icloud.com> |
||
Ryan Devenney
|
2659c359e9
|
interrupt input command with Ctrl + C (#8159)
# Description GH Issue: [#8074](https://github.com/nushell/nushell/issues/8074) Adding SIGINT Ctrl + C functionality to *most* of the `input` command. `input` with the flags `--suppress-output` and `--bytes-until` are executed in raw mode which allows a ^C signal to be caught as it's input, but an "optionless" call of `input` is using a standard `read_line()` method that takes a ^C input and clears the buffer of any data collected before the ^C. I'm more than happy to alter the "optionless" call but putting it in raw mode hides the user input, so at the moment that's unchanged. # User-Facing Changes Now ^C anywhere in the stdin stream will cause the command to SIGINT (as long as the command isn't optionless), rather than being read in as part of the input. ``` /home/rdevenney/projects/open_source/nushell〉input --suppress-output Error: nu:🐚:io_error (link) × I/O error help: SIGINT ``` ``` /home/rdevenney/projects/open_source/nushell〉input --bytes-until "a" Error: nu:🐚:io_error (link) × I/O error help: SIGINT ``` As mentioned above, the default input behavior is the same. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Artemiy
|
e389e51b2b
|
Display empty records and lists (#7925)
# Description Fix some issues related to #7444 1. Empty lists and records are now displayed as a small notice in a box: ![image](https://user-images.githubusercontent.com/17511668/215832023-3f8d743a-2899-416f-9109-7876ad2bbedf.png) ![image](https://user-images.githubusercontent.com/17511668/215832273-c737b8a4-af33-4c16-8dd3-bd4f0fd19b5a.png) 2. Empty records are now correctly displayed if inside of another record list or table: ![image](https://user-images.githubusercontent.com/17511668/215832597-00f0cebc-a3b6-4ce8-8373-a9340d4c7020.png) ![image](https://user-images.githubusercontent.com/17511668/215832540-ab0e2a14-b8f6-4f47-976c-42003b622ef6.png) 3. Fixed inconsistent coloring of empty list placeholder inside of lists/tables: ![image](https://user-images.githubusercontent.com/17511668/215832924-813ffe17-e04e-4301-97c3-1bdbccf1825c.png) ![image](https://user-images.githubusercontent.com/17511668/215832963-4765c4cf-3036-4bcc-81e1-ced941fa47cb.png) # User-Facing Changes `table` command now displays empty records and lists like a table with text and correctly displays empty records inside tables and lists. New behavior of displaying empty lists and records can be disabled using `table.show_empty` config option. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Maxim Zhiburt
|
0ab6b66d8f
|
nu-table/ Fix --collapse wrap/truncate [WIP] (#8042)
close #8034 So it's actually a work around to do "our best". We basically try 3 attemps to build a table with each time truncating values bigger then (termwidth/2, termwidth/4, termwidth/8). PS1: The logic is kind of not ideal need to think about it. _______________ PS2: I've just noticed that multi-line key behaves strangely; (not sure whether it's caused by this wrap (unlikely)) Need to investigate this. I'd bet it's a multiline key. ![image](https://user-images.githubusercontent.com/20165848/218267237-6b7ee9af-675a-428e-92cd-65808cec50f0.png) --------- Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com> |
||
WindSoilder
|
8608d8d873
|
remove git completion in default config (#8087)
# Description As title, making default config simpler, and user can get custom completion from here: https://github.com/nushell/nu_scripts/tree/main/custom-completions Or using carapace # User-Facing Changes # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Ryan Devenney
|
d34a2c353f
|
files and directory completions now use ascending ordering rather than Levenshtein. #8023 (#8085)
# Description This change sorts completions for files and directories by the ascending ordering method, related to issue: [#8023](https://github.com/nushell/nushell/issues/8023) Currently the Suggestions are being sorted twice, so it's now following the convention from `completion/base.rs` to match on the `self.get_sort_by()` result. # User-Facing Changes Previously the suggestions were being sorted by the Levenshtein method: ``` /home/rdevenney/projects/open_source/nushell| cd src/ wix/ docs/ tests/ assets/ crates/ docker/ images/ target/ benches/ pkg_mgrs/ .git/ .cargo/ .github/ ``` Now when you tab for autocompletions, they show up in ascending alphabetical order as shown below (with hidden files/folders at the end). ``` /home/rdevenney/projects/open_source/nushell| cd assets/ benches/ crates/ docker/ docs/ images/ pkg_mgrs/ src/ target/ tests/ wix/ .cargo/ .git/ .github/ ``` And when you've already typed a bit of the path: ``` /home/rdevenney/projects/open_source/nushell| cd crates/nu crates/nu-cli/ crates/nu-color-config/ crates/nu-command/ crates/nu-engine/ crates/nu-explore/ crates/nu-glob/ crates/nu-json/ crates/nu-parser/ crates/nu-path/ crates/nu-plugin/ crates/nu-pretty-hex/ crates/nu-protocol/ crates/nu-system/ crates/nu-table/ crates/nu-term-grid/ crates/nu-test-support/ crates/nu-utils/ crates/nu_plugin_custom_values/ crates/nu_plugin_example/ crates/nu_plugin_formats/ crates/nu_plugin_gstat/ crates/nu_plugin_inc/ crates/nu_plugin_python/ crates/nu_plugin_query/ ``` And another for when there are files and directories present: ``` /home/rdevenney/projects/open_source/nushell/crates/nu-cli/src| nvim 02/16/2023 08:22:16 AM commands.rs completions/ config_files.rs eval_file.rs lib.rs menus/ nu_highlight.rs print.rs prompt.rs prompt_update.rs reedline_config.rs repl.rs syntax_highlight.rs util.rs validation.rs ``` # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: [*] `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) [*] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style [*] `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Leon
|
150b0b6b86
|
Add select extra_usage explaining relationship to get (#8146)
# Description See title. Also changed some misleading wording in `reject`'s help. # User-Facing Changes See above. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. |
||
Mango The Fourth
|
d0e0701a88
|
fix: fix lexing of comments, such that a#b becomes a coherent Item (#8151)
# Description Previously `nix run nixpkgs#hello` was lexed as `Item, Item, Item, Comment`, however, `#hello` is *not* supposed to be a comment here and should be parsed as part of the third `Item`. This change introduces this behavior by not interrupting the parse of the current token upon seeing a `#`. Thank you so much for considering this, I think many `nix` users will be grateful for this change and I think this will lead to more adaptation in the ecosystem. - closes #8137 and #6335 # User-Facing Changes - code like `somecode# bla` and `somecode#bla` will not be parsed as `somecode, comment` but as `somecode#bla`, hence this is a breaking change for all users who didn't put a space before a comment introducing token (`#`) # Tests + Formatting I've added tests that cover this behavior in `test_lex.rs` - [x] `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - [x] `cargo test --workspace` to check that all tests pass # After Submitting > If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. I think this is expected behavior in most other shells, so the documentation was lacking for not documenting the unexpected behavior before and hence now is automatically more complete >D |
||
Mango The Fourth
|
28b20c5ec3
|
chore: add a couple of direnv specific files to the gitignore (#8165)
# Description Hi, I would like to add a couple of things to the `.gitignore` that would probably not be preferred to be checked out. Thanks in advance! :) # User-Facing Changes - none # Tests + Formatting - not affected # After Submitting - not affected |
||
dependabot[bot]
|
9088ef182e
|
Bump errno from 0.2.8 to 0.3.0 (#8131)
Bumps [errno](https://github.com/lambda-fairy/rust-errno) from 0.2.8 to 0.3.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/lambda-fairy/rust-errno/blob/main/CHANGELOG.md">errno's changelog</a>.</em></p> <blockquote> <h1>[0.3.0] - 2023-02-12</h1> <ul> <li> <p>Add haiku support <a href="https://github-redirect.dependabot.com/lambda-fairy/rust-errno/pull/42">#42</a></p> </li> <li> <p>Add AIX support <a href="https://github-redirect.dependabot.com/lambda-fairy/rust-errno/pull/54">#54</a></p> </li> <li> <p>Add formatting with <code>#![no_std]</code> <a href="https://github-redirect.dependabot.com/lambda-fairy/rust-errno/pull/44">#44</a></p> </li> <li> <p>Switch from <code>winapi</code> to <code>windows-sys</code> <a href="https://github-redirect.dependabot.com/lambda-fairy/rust-errno/pull/55">#55</a></p> </li> <li> <p>Update minimum Rust version to 1.48 <a href="https://github-redirect.dependabot.com/lambda-fairy/rust-errno/pull/48">#48</a> <a href="https://github-redirect.dependabot.com/lambda-fairy/rust-errno/pull/55">#55</a></p> </li> <li> <p>Upgrade to Rust 2018 edition <a href="https://github-redirect.dependabot.com/lambda-fairy/rust-errno/pull/59">#59</a></p> </li> <li> <p>wasm32-wasi: Use <code>__errno_location</code> instead of <code>feature(thread_local)</code>. <a href="https://github-redirect.dependabot.com/lambda-fairy/rust-errno/pull/66">#66</a></p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |