nushell/crates/nu-cmd-lang/src/core_commands
Poliorcetics 47867a58df
Ab/version details (#12593)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx

you can also mention related issues, PRs or discussions!
-->
Closes #12561

# 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.
-->

Add version details in `version`'s output. The intended use is for
third-party tools to be able to quickly check version numbers without
having to the parsing from `(version).version` or `$env.NU_VERSION`.

# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->

This adds 4 new values to the record from `version`:

```
...
│ major              │ 0                                               │
│ minor              │ 92                                              │
│ patch              │ 3                                               │
│ pre                │ a-value                                         │
...
```

`pre` is optional and won't be present most of the time I think.

# 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` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library

> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->

I ran the new command using `cargo run -- -c version`:

```
╭────────────────────┬─────────────────────────────────────────────────╮
│ version            │ 0.92.3                                          │
│ major              │ 0                                               │
│ minor              │ 92                                              │
│ patch              │ 3                                               │
│ branch             │                                                 │
│ commit_hash        │                                                 │
│ build_os           │ macos-aarch64                                   │
│ build_target       │ aarch64-apple-darwin                            │
│ rust_version       │ rustc 1.77.2 (25ef9e3d8 2024-04-09)             │
│ rust_channel       │ 1.77.2-aarch64-apple-darwin                     │
│ cargo_version      │ cargo 1.77.2 (e52e36006 2024-03-26)             │
│ build_time         │ 2024-04-20 15:09:36 +02:00                      │
│ build_rust_channel │ release                                         │
│ allocator          │ mimalloc                                        │
│ features           │ default, sqlite, system-clipboard, trash, which │
│ installed_plugins  │                                                 │
╰────────────────────┴─────────────────────────────────────────────────╯
```

# 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.
-->

After this is merged I would like to write docs somewhere for scripts
writer to advise using these members instead of the string values. Where
should I put said docs ?
2024-04-20 10:01:51 -05:00
..
overlay Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
scope ♻️ rework some help strings (#12306) 2024-03-27 08:41:02 -05:00
alias.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
break_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
collect.rs Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
const_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
continue_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
def.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
describe.rs Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
do_.rs Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
echo.rs Mention print in the echo help text (#12436) 2024-04-06 20:24:00 -05:00
error_make.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
export.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
export_alias.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
export_const.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
export_def.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
export_extern.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
export_module.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
export_use.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
extern_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
for_.rs Range refactor (#12405) 2024-04-06 09:04:56 -05:00
hide.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
hide_env.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
if_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
ignore.rs Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
lazy_make.rs Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
let_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
loop_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
match_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
mod.rs Keep plugins persistently running in the background (#12064) 2024-03-09 17:10:22 -06:00
module.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
mut_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
plugin.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
plugin_list.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
plugin_stop.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
register.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
return_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
try_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
use_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
version.rs Ab/version details (#12593) 2024-04-20 10:01:51 -05:00
while_.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00