-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Improve workloads versioning #22151
Comments
@mhutch I believe you had mentioned some ideas in this space previously as well. We'll be assigning this to a PM soon to gather more requirements. |
CC @baronfel since I can't assign this yet. We can chat about it when you're ready. |
Thanks for filing, I also found this very confusing. It has not been clear to me how to pick a specific workload version, or how to know ahead of time what version will be used. This information is not available in the When using workloads, the most obvious approach that seems useful to me would be to pin versions in |
This is causing major issues for us, especially for the Is there a way to install a specific version of a workload via command line or other? At the very least that would get our developers back on track and we can update the workload for our builds after we have done sufficient testing. This is a major problem for us, and waiting until 6.0.3xx is not really an option here. |
@cwensley yeah, here's the approach I've been taking:
You'll probably have to redo this if you install any security updates. I know I had to after using 6.0.100 and then installing 6.0.101. If you also need to check what workload version is installed, I suggest reading the entirety of #22882. |
Hey @sandyarmstrong, thank you for the very quick response! I'll try it out. Is there any documentation about |
They recently added https://github.com/dotnet/sdk/blob/main/documentation/general/workload-rollback.md. I still think it would be nice if even advanced options like these were in the inline help. |
You could use some specifically constructed URL for the rollbacks. For example, we do this for maui: https://aka.ms/dotnet/maui/6.0.200/preview.13.json That way we can pick the "blessed" versions for a particular version of maui. I could see the same for dotnet itself where it has a url for each band (or locally from something) and then it just uses that. This way users do not need to care about individual manifest versions. |
Making workload versioning usableAllow specifying version in
|
I've made some updates to my proposal text, and improvements to the script. |
I've been trying out this approach with dotnet/roslyn#59429. |
@sandyarmstrong I know the script is just for now, but any solution we make should also consider Tizen, which uses a samsung prefix. On a separate note, how does this handle the case where I say have preview 13 in one directory and preview 14 in another - and then try build both? Will workloads support side-by-side? global.json usually feels like a "we have multiple versions installed, so use this one". I also know that (somewhere) we are looking to make the version in the global.json be a min version. So an sdk 6.0.100 could also select 6.0.200. Is this something we need to consider for workload versions? Additionally, since we can install 100 and 200 of things, I am wondering if we need to worry about preview versions? Although, I also recall (somewhere) that we may be adding preview version bands too? A fair bunch of evolving bits here and new things :) |
Yeah, I don't really understand why we use short workload names during uninstall/reinstall, but long names in rollback files and elsewhere. It's pretty confusing. I'd need help from somebody who understands workloads better to determine what would make the most sense in
A workload release is tied to a specific SDK/runtime "feature band" (6.0.100 and 6.0.101 share a feature band, 6.0.200 is a separate feature band). As I understand it, you can only have one workload version installed for a given feature band. My proposal does not change the fact that to build two projects with differing workload versions in the same feature band, you either need to repeatedly uninstall/reinstall workloads, or you need separate base SDK installations. It would be great if this would change, but I'm mostly looking at how workloads are installed today. Perhaps the
Are you thinking of the |
@joeloff has been the person I bug most about workload things, he may have comments or know who else might be interested in workload-y and global-y things, |
Are there any news on this? We're also interested in a way to pin the workloads versions. Is the combination of |
Any news on this? Our CI Builds have currently stopped working because we can't pin Workload versions. |
Going to close this in favor of the work to install workloads side-by-side and allow pinning workload versions in global.json. |
Is your feature request related to a problem? Please describe.
There is no way to specify a specific version of the SDK for workloads. Rollback files but you have to know individual workload manifest versions. We've discussed having the concept of grouped versioning where say 6.0.100 has a set of manifest versions that match that so a customer could say they wanted to install 6.0.100 or 6.0.101 versions of those manifests/packs (think of a workloads version of releases.json).
Describe the solution you'd like
TBD
Additional context
This could be really confusing. Would this go into a global.json or as a command line argument?
The text was updated successfully, but these errors were encountered: