mirror of
https://github.com/nushell/nushell.git
synced 2025-05-29 14:21:45 +02:00
This PR implements the changes proposed in #15112 without any breaking changes. Should close #15112 post the review. # Description Added functionality to generate `uuid` versions 1, 3, 4, 5, 7 instead of just the version 4. - Users can now add a `-v n` flag to specify the version of uuid they want to generate and it maintains backward compatibility by returning a v4 uuid by default if no flags are passed. - Versions 3 and 5 have the additional but required namespace (`-s`) and name (`-n`) arguments too. Version 1 requires a mac address (`-m`). # User-Facing Changes - Added support for uuid versions 1, 3, 5 and 7. - For v3 and v5, the namespace and name arguments are required and hence there will be an error if those are not passed. Similarly the mac address for v1. - Full backward compatibility by setting v4 as default. # Tests + Formatting Tests added: in `nu-command::commands::random` - generates_valid_uuid4_by_default - generates_valid_uuid1 - generates_valid_uuid3_with_namespace_and_name - generates_valid_uuid4 - generates_valid_uuid5_with_namespace_and_name - generates_valid_uuid7
Nushell core libraries and plugins
These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.
Foundational libraries are split into two kinds of crates:
- Core crates - those crates that work together to build the Nushell language engine
- Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.
Plugins are likewise also split into two types:
- Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
- Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.