homebrew-dotnet-sdk-versions
homebrew-dotnet-sdk-versions copied to clipboard
Simplify installation and update
Hello,
(I do understand this is an open source maintained manually on free time, if you ask me this should be MSFT job to have done something similar since day 1)
observed problem
Cask won't update after feature band update the "feature band" is the first of the 3 digit of what generally is the "Patch" when using SemVer2" 8.0.3xx 3: feature band xx: patch of THAT feature band
example:
8.0.3xx and 8.0.4xx are introducing multi years old lacking feature for dotnet tool update --all
Reason
There's currently no cask in this tap for feature band update like dotnet-sdk6-0
or dotnet-sdk8-0
for stable even though it exists for preview
There's no existing cask for minor update like dotnet-sdk6
or dotnet-sdk8
for stable even though it exists for preview
MSFT Release cycle
- MSFT clarified after netcoreapp3.1 that they'll stop doing
minor
release due to the maintainance cost of it for less than a year and also create subsequent issue for possible LTS - the goal of feature band is to ship SDK feature for both IDE and CLI (VsCode / VS / Riders / CI-CD)
- new feature band generally happen at least one time a year
- net6 is into it 5th feature band
- net8 is into it 4th feature band
User experience
There's no easy way for devs to follow on ahead of time Feature band release, regarding of the OS. Doing the dance manually of dot.net isn't exactly "rewarding" either
brew
isn't helping either, and so far the most reliable way to update look like this:
brew update; brew upgrade; brew upgrade --cask $(brew list --cask); brew autoremove;
dotnet --info
This, to realise that dotnet
did not upgrade to latest feature band, but this can only be check via a web page
➜ brew remove --cask isen-ng/dotnet-sdk-versions/dotnet-sdk6-0-300
➜ brew remove --cask isen-ng/dotnet-sdk-versions/dotnet-sdk8-0-200
➜ brew install --cask isen-ng/dotnet-sdk-versions/dotnet-sdk6-0-400
➜ brew install --cask isen-ng/dotnet-sdk-versions/dotnet-sdk8-0-300
Possible solution
Having a cask that always point on the lastest version per major, similar to
- Chocolatey
- Winget
- apt
- zap
- ...
these 2 cask would respectivly always point to the current lastest stable for a specific major channel
➜ brew install --cask isen-ng/dotnet-sdk-versions/dotnet-sdk6
➜ brew install --cask isen-ng/dotnet-sdk-versions/dotnet-sdk8