update command: make $in(in closure body) takes cell path#8610
update command: make $in(in closure body) takes cell path#8610sholderbach merged 4 commits intonushell:mainfrom
update command: make $in(in closure body) takes cell path#8610Conversation
update command: make $in in the closure body takes cell pathupdate command: make $in(in closure body) takes cell path
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #8610 +/- ##
==========================================
+ Coverage 68.16% 68.53% +0.36%
==========================================
Files 631 631
Lines 101963 101965 +2
==========================================
+ Hits 69502 69878 +376
+ Misses 32461 32087 -374
|
|
that is a really elegant solution 😮 thanks a lot ⭐ |
|
so this will probably break commands like open Cargo.toml | get package | update metadata.binstall.pkg-fmt {|| get metadata.binstall.pkg-fmt | str replace "g" "FOO"}, right? 😱
|
|
Yeah, it's a breaking change.. |
ehe no worries 😋 that's the life i've chosen to live 😏 |
|
@WindSoilder - can you add some tests? |
|
@jntrnr Yeah, but currently I found some strange behavior about the following command: It doesn't update authors to 'Andrés, JT, Yehuda', mark as draft for now. |
17338fa to
3bf0757
Compare
|
I've wanted it to work like this for a long time. I wonder if upsert or insert need this as well? 🤔 |
|
Oh, I just get one thought....For insert, does it make sense to follow cell path on $in? Because the column we want to insert is not exists in $in, the same thing happened on upsert command. |
|
Maybe not on insert but remember that upsert is supposed to be an update or an insert. So, the update part should work. |
I agree with @WindSoilder, we can not assume that the column is already present in |
|
Consider the following example: |
|
Hi, I have a discuss with @fdncred , and think it's ok to leave |
|
Ok let's give it a try! Thanks |
…l#8610) # Description Make `$in` takes cell path in `update` command The reason behind the change: https://discord.com/channels/601130461678272522/615329862395101194/1088405671080370196 > when i use update on some cell path, it's almost always because i want to start with its previous value and change it. cc @amtoine # User-Facing Changes ## Before ``` open Cargo.toml | get package | update metadata.binstall.pkg-fmt {|| $in.metadata.binstall.pkg-fmt | str replace "g" "FOO"} ``` ## After ``` open Cargo.toml | get package | update metadata.binstall.pkg-fmt {|| str replace "g" "FOO"} ``` If use want to access original raw, it can be accessed by parameters in closure: ``` open Cargo.toml | get package | update metadata.binstall.pkg-fmt {|$it| $it.metadata.binstall.pkg-fmt | str replace "g" "FOO"} ``` For this reason, I don't think we need to add a flag like `--whole` # 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 > **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 > ``` # 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.
Description
Make
$intakes cell path inupdatecommandThe reason behind the change: https://discord.com/channels/601130461678272522/615329862395101194/1088405671080370196
cc @amtoine
User-Facing Changes
Before
After
If use want to access original raw, it can be accessed by parameters in closure:
For this reason, I don't think we need to add a flag like
--wholeTests + 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 -- --checkto check standard code formatting (cargo fmt --allapplies these changes)cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collectto check that you're using the standard code stylecargo test --workspaceto check that all tests passAfter Submitting
If your PR had any user-facing changes, update the documentation after the PR is merged, if necessary. This will help us keep the docs up to date.