Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Windows Terminal profile and icon in Windows control panel #5812

Merged
merged 3 commits into from
Jun 16, 2022

Conversation

wolimst
Copy link
Contributor

@wolimst wolimst commented Jun 16, 2022

Description

Windows Installer generation script (wix/main.wxs) is updated to support following features:

Checks

Since the changes are only related to installation process in Windows, and do not contain source code changes, no test is added. Instead, I have checked following things.

  • OS: Windows 11 (Version 21H2 OS Build 22000.675)
  • Built the installer using .github/workflows/release-pkg.nu script
    • Environment variables used in the script are manually set (referred to .github/workflows/release.yml)

Checks for Windows Terminal profile

  • Install (adding Windows Terminal profile feature enabled)
  • Install (WT profile enabled, installation directory is changed)
  • Install (WT profile disabled) -> Re-run the installer and Modify (WT profile enabled)
  • Install (WT profile enabled) -> Manually remove/modify the profile file -> Re-run the installer and Repair
    • Expected result for above 4 cases:
      • The profile file should be created (%PROGRAMDATA%/Microsoft/Windows Terminal/Fragments/nu/nu.json) and the file should contain correct path for the nushell executable and the icon
      • The profile should be shown in the Windows Terminal
  • Uninstall
  • Install (WT profile enabled) -> Re-run the installer and Modify (WT profile disabled)
    • Expected result for above 2 cases: The profile file should be removed

Checks for icon in control panel

  • Icon is shown in Windows 'Add/Remove Programs' control panel after installation

Tests

Make sure you've done the following:

  • Add tests that cover your changes, either in the command examples, the crate/tests folder, or in the /tests folder.
    -> Not applicable for the changes
  • Try to think about corner cases and various ways how your changes could break. Cover them with tests.
  • If adding tests is not possible, please document in the PR body a minimal example with steps on how to reproduce so one can verify your change works.
    -> See Checks section above

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 --features=extra -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect to check that you're using the standard code style
  • cargo test --workspace --features=extra to check that all the tests pass

@rgwood
Copy link
Contributor

rgwood commented Jun 16, 2022

Awesome, thank you for the contribution! It will be really nice to finally have this feature, and I really appreciate the detailed PR description + manual testing.

@wolimst
Copy link
Contributor Author

wolimst commented Jun 16, 2022

You're welcome!

Though, there is one problem (this is why the PR is in draft)

Windows Terminal shows empty icon for the installed nu.ico file.
image

I think maybe there's some kind of problem in the icon,
because the profile seems to be correct, and also, if I overwrite the install_dir/nu.ico file with a different .ico file, Windows Terminal shows the icon with no problem.

Maybe I can re-generate asset/nu_logo.ico from asset/icons/nushell-original.png file, if that's ok.

@rgwood
Copy link
Contributor

rgwood commented Jun 16, 2022

Maybe I can re-generate asset/nu_logo.ico from asset/icons/nushell-original.png file, if that's ok.

Sounds good, that's worth a try.

@fdncred
Copy link
Collaborator

fdncred commented Jun 16, 2022

@wolimst I just wanted to jump in and say, nice work on this PR! it's a pleasure to read such detailed notes in the PR body. Good job!

Procedure: opened the original file with GIMP and simply overwrited it
@wolimst
Copy link
Contributor Author

wolimst commented Jun 16, 2022

I used the original asset/nu_logo.ico because the asset/icons/nushell-original.png had lower resolution (200x200px) than the ico file (256x256px).

Simply opened and overwrited the file with GIMP.
And, Windows Terminal had no problem with the new icon file installed with the new installer!

Maybe the problem was related to metadata..?
image

Changed PR to ready for review, since the recreated icon solved the issue.

@wolimst wolimst marked this pull request as ready for review June 16, 2022 16:05
@wolimst
Copy link
Contributor Author

wolimst commented Jun 16, 2022

The icon is shown somewhat not clearly though, because the high-res image is resized.
image

I think this might be resolved by including multiple images with various resolution (with larger nu letter in low-res image?) in the nu.ico file in the future.

@rgwood
Copy link
Contributor

rgwood commented Jun 16, 2022

That's a good idea; we might also need to pick a logo that looks good even at small resolutions. We're not 100% set on the current one.

I think this is good to merge now and we can tweak the icon later; thanks again, this is a great first PR!

@rgwood rgwood merged commit 28c07a5 into nushell:main Jun 16, 2022
@wolimst
Copy link
Contributor Author

wolimst commented Jun 16, 2022

we might also need to pick a logo that looks good even at small resolutions. We're not 100% set on the current one.

Looking forward to it!

I think this is good to merge now and we can tweak the icon later; thanks again, this is a great first PR!

Thanks for the merge, and thanks for having me to contribute!

@wolimst wolimst deleted the windows-terminal-profile branch June 16, 2022 17:12
fennewald pushed a commit to fennewald/nushell that referenced this pull request Jun 27, 2022
…ll#5812)

* Show icon in Windows 'Add/Remove Programs' control panel

* Add install option for Windows Terminal profile

* Re-create icon because the icon was not shwon in Windows Terminal

Procedure: opened the original file with GIMP and simply overwrited it
@fdncred
Copy link
Collaborator

fdncred commented May 17, 2023

@wolimst This has been causing the winget ci to fail for months. The winget folks finally narrowed it down to this error.

Installation failed with exit code -1978335226
2023-05-16 17:48:21.070 [CLI ] ShellExecute installer failed: 1603
CAQuietExec: Error 0xc0000135: Command line returned an error.
CAQuietExec: Error 0xc0000135: QuietExec Failed
CAQuietExec: Error 0xc0000135: Failed in ExecCommon method CustomAction ReplacePathsInWindowsTerminalProfile returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) Property(S): ErrorDialog = ErrorDlg
MSI (s) (74:6C) [17:48:20:955]: Product: nu -- Installation failed.
MSI (s) (74:6C) [17:48:20:955]: Windows Installer installed the product. Product Name: nu. Product Version: 0.80.0. Product Language: 1033. Manufacturer: The Nushell Project Developers. Installation success or error status: 1603.

Which seems to jive with these changes in the wsx file

nushell/wix/main.wxs

Lines 375 to 393 in 057de06

<SetProperty
Id="ReplacePathsInWindowsTerminalProfile"
Sequence="execute"
Value="&quot;[#exe0]&quot; -c &quot;open '[#WindowsTerminalProfileFile]' | update profiles.commandline '[#exe0]' | update profiles.icon '[#icon0]' | save -f '[#WindowsTerminalProfileFile]'&quot;"
After='CostFinalize'/>
<CustomAction
Id="ReplacePathsInWindowsTerminalProfile"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="check"
Impersonate="no"/>
<InstallExecuteSequence>
<Custom Action='ReplacePathsInWindowsTerminalProfile' Before='InstallFinalize'>
<!-- Run the custom action if the feature is enabled -->
<![CDATA[&WindowsTerminalProfile=3 OR (!WindowsTerminalProfile=3 AND REINSTALL<>"")]]>
</Custom>
</InstallExecuteSequence>

Any ideas how to keep this from failing?

I'm just guessing but we've changed the syntax for the update command recently. I wonder if that's what is causing it to puke?

UPDATE:
I ran this and it worked. The key is using backtick quotes.

nu -c 'open `C:\Users\dschroeder\AppData\Local\Microsoft\Windows Terminal\Fragments\nu\nu.json` | update profiles.commandline `C:\Users\dschroeder\.cargo\bin\nu.exe` | update profiles.icon `C:\Users\dschroeder\source\repos\forks\nushell\assets\nu_logo.ico` | save -f `C:\Users\dschroeder\AppData\Local\Microsoft\Windows Terminal\Fragments\nu\nu.json`'

I can't get this to work, which I think is what it's running.

nu -c "open "C:\Users\dschroeder\AppData\Local\Microsoft\Windows Terminal\Fragments\nu\nu.json" | update profiles.commandline "C:\Users\dschroeder\.cargo\bin\nu.exe" | update profiles.icon "C:\Users\dschroeder\source\repos\forks\nushell\assets\nu_logo.ico" | save -f "C:\Users\dschroeder\AppData\Local\Microsoft\Windows Terminal\Fragments\nu\nu.json""

@wolimst
Copy link
Contributor Author

wolimst commented May 20, 2023

@fdncred
At first, I thought the problem is caused by the nushell command that replaces paths failing, however, it seems that is not the case...

Running the msi installer built from the source / Installing nu with winget created the windows terminal profile without an error, and I couldn't reproduce the problem.

Here is the nushell command to replace the paths, ran by the installer. Notice single quotes are used inside the double quotes.

"C:\Program Files\nu\bin\nu.exe" -c "open 'C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json' | update profiles.commandline 'C:\Program Files\nu\bin\nu.exe' | update profiles.icon 'C:\Program Files\nu\nu.ico' | save -f 'C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json'"

Relevant part in the msi installer log, which includes the command (you might need to scroll to the right to see it)

Action 17:26:48: ReplacePathsInWindowsTerminalProfile. 
MSI (s) (8C:74) [17:26:48:148]: Executing op: CustomActionSchedule(Action=ReplacePathsInWindowsTerminalProfile,ActionType=3073,Source=BinaryData,Target=CAQuietExec,CustomActionData="C:\Program Files\nu\bin\nu.exe" -c "open 'C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json' | update profiles.commandline 'C:\Program Files\nu\bin\nu.exe' | update profiles.icon 'C:\Program Files\nu\nu.ico' | save -f 'C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json'")
MSI (s) (8C:78) [17:26:48:150]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIB94F.tmp, Entrypoint: CAQuietExec
MSI (s) (8C:20) [17:26:48:150]: Generating random cookie.
MSI (s) (8C:20) [17:26:48:150]: System Environment : Client has accepted UAC prompt
MSI (s) (8C:20) [17:26:48:150]: System Environment : Client has accepted UAC prompt
MSI (s) (8C:20) [17:26:48:154]: Created Custom Action Server with PID 8808 (0x2268).

So, I think the problem is in the winget ci maybe?


2023-05-16 17:48:21.070 [CLI ] ShellExecute installer failed: 1603

Looking for the error code 1603 from the winget ci, I found following information about the causes.

You may receive this error message if any one of the following conditions is true:

  • Windows Installer is attempting to install an app that is already installed on your PC.
  • The folder that you are trying to install the Windows Installer package to is encrypted.
  • The drive that contains the folder that you are trying to install the Windows Installer package to is accessed as a substitute drive.
  • The SYSTEM account does not have Full Control permissions on the folder that you are trying to install the Windows Installer package to. You notice the error message because the Windows Installer service uses the SYSTEM account to install software.

From https://learn.microsoft.com/en-us/troubleshoot/windows-server/application-management/msi-installation-error-1603

Just guessing, but as described in the last item of the possible causes above, I think maybe it is a permission issue in the ci.

Currently, the path replacing command is ran with system privileges, but I think the ci system wouldn't expose full privileges for custom script for obvious reasons.

So, maybe we can change the installer to add windows terminal profile for the current user only, without elevated privileges, and see how it goes with the ci.

Do you know whether we can run the winget ci for testing purpose?

@fdncred
Copy link
Collaborator

fdncred commented May 20, 2023

thanks for the great research @wolimst. i appreciate all your work.

i installed the msi on my win 11 laptop and never saw that nu.json fragment, nor could i get windows terminal to recognize it. so, it's odd to me that it's working for you.

using a path that doesn't require full privileges sounds like something that should be tried.

i'm not sure about the winget ci, maybe if you fork the winget ci repo and run the ci locally?

@wolimst
Copy link
Contributor Author

wolimst commented May 23, 2023

@fdncred

i installed the msi on my win 11 laptop and never saw that nu.json fragment, nor could i get windows terminal to recognize it. so, it's odd to me that it's working for you.

That is odd..
I am also using windows 11, and the fragment is installed in C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json. The profile appears in Windows Terminal as well. Maybe you can find out more details from the installer log. msiexec /i <path/to/installer.msi> /l*v <path/to/output-log-file> will give you the log file.


I have looked into winget ci repo, but I think the validation is done by calling azure functions (something like aws lambda I guess?), and I couldn't find any ci scripts or tools for us to run the validation ci locally.

Some references:

  • Report of the failed validation job: the validation is done by calling POST request to azure function endpoint
  • The ci configuration [1], [2] only contain the endpoint of the azure function; couldn't find any ci scripts

So, what is our next approach?

I think I can change the install script related to wt profile to use user context instaed of system context, and we can see how it goes with the ci on the next release.

  • wt fragment installation path will be: %LOCALAPPDATA%\Microsoft\Windows Terminal\Fragments\nu\nu.json
    e.g. C:\Users\<user>\AppData\Local\Microsoft\Windows Terminal\Fragments\nu\nu.json
  • the custom action to update executable path in the fragment file will be run without privilege elevation

But this will reduce some consistency on the context of the installation: executables and PATH env variable will be installed for all users, while the wt profile fragment will be installed for the current user only.

What are your thoughts?

@fdncred
Copy link
Collaborator

fdncred commented May 23, 2023

It's definitely not in this path on my windows 11 machine (C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json). I tried putting it there and there were permission issues that I had to override and even when I got everything in place with the correct paths in the json, windows terminal didn't recognize it. No clue what's going on.

TBH, I thought i was going where I have other fragments which is \users<username>\appdata\local\microsoft\windows terminal\fragments\nu\nu.json. I tried putting it in there but i can't get that to be recognized by WT as well. I'm sure it's me. Is there some WT documentation that says where these fragment files can/should be located?

I think the next step should be putting the fragment in a path that the user has permissions to.

@wolimst
Copy link
Contributor Author

wolimst commented May 23, 2023

Is there some WT documentation that says where these fragment files can/should be located?

You can find it in this document, but it says only those two paths, C:\ProgramData\... and C:\Users\<user>\AppData\Local\...

I think the next step should be putting the fragment in a path that the user has permissions to.

Sure, I'll try to create a PR for this soon.

fdncred pushed a commit that referenced this pull request Jun 1, 2023
# Description

Change installation context of the windows terminal profile to
`per-user` from `per-system`.

This change is made because installation validation fails in winget ci
while executing custom action to replace the installation path of
`nu.exe` and `nu.ico` in the windows terminal profile file.

Refer discussions in #5812 and
microsoft/winget-pkgs#106977

- Installation path of the windows terminal profile is changed as below:
- from: `C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json`
- to: `C:\Users\<user>\AppData\Local\Microsoft\Windows
Terminal\Fragments\nu\nu.json`
- Custom action to replace the installation path of `nu.exe` and
`nu.ico` in the json file will be executed without privilege escalation

This change is expected to eliminate the validation failure in winget ci
(need to wait until next release to be sure about it), however, it
creates some inconsistency in installation context.

- The windows terminal profile is installed in `per-user` context, other
files / PATH env variable are installed in `per-system` context.
- Building the installer shows a warning about this: `warning LGHT1076 :
ICE91: The file 'WindowsTerminalProfileFile' will be installed to the
per user directory 'WindowsTerminalProfileAppFolder' that doesn't vary
based on ALLUSERS value. This file won't be copied to each user's
profile even if a per machine installation is desired.`
which means: WT profile will be installed only for the user that
executed the installer and it won't be installed for other users in the
system. However, the installer is configured to use `per-system`
context, therefore, other files (such as nushell binary `nu.exe`) will
be installed for all users.

It might be better if we provide options for installation context
(`per-user` or `per-system`) as requested in #5927 in the future, if
that doesn't cause problems in winget ci.

# User-Facing Changes

- Installation path of windows terminal profile will be changed as
above.
- Windows Terminal profile will be installed only for the user that
installed nushell as stated above. The profile should be manually added
for other users if needed.

# Tests + Formatting

No test is added since this change is related to installation process in
Windows and does not contain source code changes.

Following checks are done manually.

### Environment

- OS: Windows 11 Pro 22H2
- Built the installer by referring `.github/workflows/release-pkg.nu`
script

### Checks

- Install: WT profile should be created in
`C:\Users\<user>\AppData\Local\Microsoft\Windows
Terminal\Fragments\nu\nu.json` and it should contain correct path for
`nu.exe` and `nu.ico`.
  - [x] Install (WT profile feature enabled)
- [x] Install (WT profile enabled) -> Manually remove the WT profile
file -> Re-run the installer and Repair

- Uninstall: WT profile should be removed.
  - [x] Install (WT profile enabled) -> Uninstall
- [x] Install (WT profile enabled) -> Re-run the installer and Modify
(WT profile disabled)

# After Submitting

No relevant documentation to update.
fdncred pushed a commit that referenced this pull request Jun 23, 2023
# Description

Revert installation context of windows terminal profile to per-system,
since installation context of other features are per-system, and having
different installation context creates unnecessary inconsistency.

Installation context change of windows terminal profile to per-user
(#9322) was made to resolve the recent installer verification failure on
winget submission PRs, but the cause of this problem seems to be in
another place (#9513).

For more details, refer discussions in #5812 and #9322.

# User-Facing Changes

Windows terminal profile for nushell will be installed in system
context.
Installation path will be changed as below:
- before: `C:\Users\<user>\AppData\Local\Microsoft\Windows
Terminal\Fragments\nu\nu.json`
- to: `C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json`

# Tests + Formatting

Confirmed successful installation of nushell and windows terminal
profile file in windows using below installer that created by release ci
workflow. It also contains changes made in #9513.

Release ci workflow:
https://github.com/wolimst/nushell/actions/runs/5357440849
Installer: https://github.com/wolimst/nushell/releases/tag/0.81.0-test
@fdncred
Copy link
Collaborator

fdncred commented Oct 17, 2023

@wolimst Winget failed again in release 0.86.0. Here's the log file entries. Any ideas why ReplacePathsInWindowsTerminalProfile is failing again?

CAQuietExec:  Error 0xc0000135: Command line returned an error.
CAQuietExec:  Error 0xc0000135: QuietExec Failed
CAQuietExec:  Error 0xc0000135: Failed in ExecCommon method
CustomAction ReplacePathsInWindowsTerminalProfile returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 14:27:07: InstallFinalize. Return value 3.
Action ended 14:27:07: INSTALL. Return value 3.

I'm guessing that the problem is that it's installing here "C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json" instead of a user level profile. It's just a guess though.

I think this is part of the problem. Looking in the sandbox, there is no c:\programdata\microsoft\windows terminal folder. Maybe we need to create that folder first?
image

I'm not sure. Here's a log I created trying to manually install in the sandbox.

MSI (s) (08:5C) [15:30:26:636]: Executing op: ActionStart(Name=ReplacePathsInWindowsTerminalProfile,,)
Action 15:30:26: ReplacePathsInWindowsTerminalProfile. 
MSI (s) (08:5C) [15:30:26:636]: Executing op: CustomActionSchedule(Action=ReplacePathsInWindowsTerminalProfile,ActionType=3073,Source=BinaryData,Target=CAQuietExec,CustomActionData="C:\Program Files\nu\bin\nu.exe" -c "open `C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json` | update profiles.commandline `C:\Program Files\nu\bin\nu.exe` | update profiles.icon `C:\Program Files\nu\nu.ico` | save -f `C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json`")
MSI (s) (08:90) [15:30:26:636]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIABF6.tmp, Entrypoint: CAQuietExec
MSI (s) (08:AC) [15:30:26:636]: Generating random cookie.
MSI (s) (08:AC) [15:30:26:668]: Created Custom Action Server with PID 284 (0x11C).
MSI (s) (08:AC) [15:30:26:699]: Running as a service.
MSI (s) (08:AC) [15:30:26:699]: Hello, I'm your 32bit Elevated Non-remapped custom action server.
CAQuietExec:  Error 0xc0000135: Command line returned an error.
CAQuietExec:  Error 0xc0000135: QuietExec Failed
CAQuietExec:  Error 0xc0000135: Failed in ExecCommon method
CustomAction ReplacePathsInWindowsTerminalProfile returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 15:30:26: InstallFinalize. Return value 3.

full log
insta.log

@wolimst
Copy link
Contributor Author

wolimst commented Oct 18, 2023

@fdncred Hello again!

I'm guessing that the problem is that it's installing here "C:\ProgramData\Microsoft\Windows Terminal\Fragments\nu\nu.json" instead of a user level profile. It's just a guess though.

I think this is part of the problem. Looking in the sandbox, there is no c:\programdata\microsoft\windows terminal folder. Maybe we need to create that folder first?

Didn't have time to reproduce it on my end, but I don't think that the root cause is ReplacePathsInWindowsTerminalProfile, as we found in the last time (discussed in #9322 and fixed in #9513).


Quote from #9513, brief summary of the cause:

Nushell is using target.x86_64-pc-windows-msvc.rustflags to statically link MSVC runtime in windows platform, but this config is being ignored in ci workflows.

The error code is same as the last time CAQuietExec: Error 0xc0000135, so I think the cause is also the same.


Seems like the changes made by #9513 to preserve target.x86_64-pc-windows-msvc.rustflags is removed by a26a01c, in following lines.

- name: Setup Rust toolchain and cache
uses: actions-rust-lang/[email protected]

- name: Setup Rust toolchain and cache
uses: actions-rust-lang/[email protected]

Maybe re-add the removed option with: rustflags: '' on those lines again?

@fdncred
Copy link
Collaborator

fdncred commented Oct 18, 2023

dang it, i checked that yaml and thought i saw the rust flags there. i'll take a closer look. it's so good having a second set of eyes on this stuff. thanks @wolimst!!

@hustcer
Copy link
Contributor

hustcer commented Oct 18, 2023

Oh, sorry, that's my bad, I have never notice that, We should Add some comments there to prevent recurrence

@wolimst
Copy link
Contributor Author

wolimst commented Oct 18, 2023

Yes, I also think that we need some comments about it, because it is really easy to overlook, and also it is quite hard to find where the cause is, from the problems caused by it.

More detail for the rustflags option of the setup-rust-toolchain action: https://github.com/actions-rust-lang/setup-rust-toolchain/#rustflags

@fdncred
Copy link
Collaborator

fdncred commented Oct 18, 2023

Comments are added here https://github.com/nushell/nushell/pull/10757/files

Winget is cooking with these latest changes/compilations now. microsoft/winget-pkgs#122956

fdncred added a commit that referenced this pull request Oct 18, 2023
<!--
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!
-->

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

Fix winget release submission error, more details could be found here:
#5812 (comment)

@fdncred @wolimst 

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

# 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: Darren Schroeder <[email protected]>
gaetschwartz pushed a commit to gaetschwartz/nushell that referenced this pull request Oct 20, 2023
<!--
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!
-->

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

Fix winget release submission error, more details could be found here:
nushell#5812 (comment)

@fdncred @wolimst 

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

# 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: Darren Schroeder <[email protected]>
hardfau1t pushed a commit to hardfau1t/nushell that referenced this pull request Dec 14, 2023
<!--
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!
-->

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

Fix winget release submission error, more details could be found here:
nushell#5812 (comment)

@fdncred @wolimst 

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

# 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: Darren Schroeder <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants