-
Notifications
You must be signed in to change notification settings - Fork 209
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
[PoC] Rework WinGet guide to make use of configurations #701
base: main
Are you sure you want to change the base?
Conversation
Conceptually this is pretty cool. I assume that we would select defaults for the user (community edition, latest SDK release) and let them alter it? I've not looked at the implementation so I do not feel like I can "approve" it, but I do like the idea. |
Good idea! I've updated the default to VS Community and Windows 10.0.22621 SDK (the one shown in the screenshot), which is the default for VS 2022. The latest 10.0.26100 SDK is so new that VS has not officially adopted it yet. |
Note: We may need to hold off the change until WinGet v1.9+ has released a stable version, which either enables elevation by default or allows user to toggle it on. Older versions may not have the capability, and stable versions up to 1.8 doesn't support any experimental features. |
So far I've tested the configurations on:
Also proved that the 10.0.26100 SDK (not installed from VS) works with Swift, even on Windows 10. |
Curious: what happens when you run this command from an older version of WinGet (assuming the comment about 1.9 requirement is current)? Does it just fail? The advantage of the current WinGet commands is that they work on almost any supported Windows machine. |
Good question. And it depends on the version of WinGet installed:
Absolutely. But sadly they cannot cover installing VS and enabling Developer Mode in a friendly way… |
I'm excited for this improvement, but as you suggest above, I think we might want to wait at least until a version that supports it is more pervasively available. I also worry a little about automating VS selection: some things we're going to want to consider:
There's a lot of value in reducing the pain associated with installing on Windows, but if we're just masking some important decisions from the user on how they configure their workstation, we might want to err on the side of configurability. |
Try to explain one by one.
We're not designating VS editions, nor automatically picking it up from the user's system, so it's up to the user's choice. If they select a different edition, then a new installation will be required.
It's again up to the user. Swift works with all of them, so does the new picker UI.
This is an interesting quesion. It seems we're not considering the preview channel at the moment, so
We've discussed about this before, see #361 (comment). With the picker UI we're including VS Build Tools as an option, which is not ever documented now.
If you're speaking about the website, we're asking the user for the version they want. If the specified version is installed, it should not be reinstalled. The Swift toolchain will try to read SDK information from environment variables, and if not specified, use the newest version automatically. |
@stevapple I know it's been a little while, but with two more stable releases out the door that look like they support this (1.8.1791 and 1.9.25180), I think the timing is much better for this pull request. I see that .NET is now using it for their tutorial: https://dotnet.microsoft.com/en-us/learn/dotnet/hello-world-tutorial/install What do you think? Also flagging @compnerd and @shahmishal for their take. |
Rework the "Installation via Windows Package Manager" page to include interaction, and simplify all the steps to two
winget configure
commands. Closes #437.Motivation:
Installing Swift on Windows requires multiple steps, and some of which cannot be handled (gracefully) by WinGet and other package managers. Luckily, we now have
winget configure
, a tool that can perform all the desired actions to the system with a single manifest.Modifications:
winget configure
in the guide, including:Result:
The "Installation via Windows Package Manager" page is refreshed with new look (including VS and WinSDK picker) and to use
winget configure
. All the configuration files will be generated and served via the website.