core
core copied to clipboard
Consider adding a root directly to dotnet archives
We recently heard feedback that dotnet archive packages (.zip, .tar.gz) should include a root directory. A quick survey of archives from other platforms suggests that our pattern is unique.
Here's an example:
rich@lussier:~$ curl -O https://static.rust-lang.org/dist/rust-1.86.0-x86_64-unknown-linux-gnu.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 334M 100 334M 0 0 94.0M 0 0:00:03 0:00:03 --:--:-- 94.0M
rich@lussier:~$ tar -xf rust-1.86.0-x86_64-unknown-linux-gnu.tar.gz
rich@lussier:~$ ls rust-1.86.0-x86_64-unknown-linux-gnu
COPYRIGHT clippy-preview llvm-tools-preview rust-installer-version
LICENSE-APACHE components rls-preview rust-std-x86_64-unknown-linux-gnu
LICENSE-MIT git-commit-hash rust-analysis-x86_64-unknown-linux-gnu rustc
README.md git-commit-info rust-analyzer-preview rustfmt-preview
builder-config install.sh rust-docs version
cargo llvm-bitcode-linker-preview rust-docs-json-preview
The instructions from our website require a significantly more complicated model.
We should consider this change for .NET 11.
I believe the reason it was done this way originally was because of side-by-side versioning where you have “dotnet.exe” at the root, and then each sdk/runtime version installs into a versioned sub folder.
The idea being that you can extract new versions to the same location and the only thing that gets overwritten is the dotnet executable.
If we add a top-level folder to the archive, extracting new versions to an existing “hive” becomes harder.
That's good context. That's another scenario that I've used.
Too late for .NET 10?
I think so. This is a breaking change and will break a lot of existing code. Has to be planned for if we're going to do it.
.NET 10 is close to done. I believe that main switches to .NET 11 next month.