Repository navigation
Releases: infoconex/isolated-dotnet-sdk
Release list
v0.4.0
Isolated .NET SDK v0.4.0
v0.4.0 focuses on historical .NET SDK compatibility, clearer interactive workflows, safer isolated-SDK removal, richer verification and Audit output, and stronger regression coverage. Supported interfaces remain Windows/PowerShell 7 and Linux/macOS/Bash.
Highlights
- Historical SDK compatibility — Install recognizes legacy Microsoft archive naming and exact SDK-to-release-channel mappings. Published SHA-256 checksums are supported for qualifying original 1.x artifacts; modern SDKs retain SHA-512 verification. Verify can establish exact origin through the SDK Base Path reported by legacy hosts that lack modern inventory commands. Historical binaries may still be incompatible with modern operating systems.
- More informative Verify and Audit — Verify reports local installation/host/version/origin proof with optional components and Microsoft lifecycle data. Audit presents aligned, newest-first isolated and read-only system inventories, with release type, status, dates and concise servicing updates.
- Safer Remove and recovery — narrowly verified legacy build-server shutdown incompatibilities are handled automatically after normal approval. Incomplete directories can be offered for confirmed removal; partial removals can be retried after locks are released. Failed supported shutdowns still block deletion.
- Better persistent terminal experience — capable terminals clear prior views and start on the first visible row; results remain visible until acknowledged. Prerelease channels display all SDK versions; the Install picker identifies system versus isolated ownership and avoids redundant metadata reloads.
- More deterministic validation — additional historical-install, removal, publication-failure and cross-platform coverage; fewer redundant test PowerShell launches; PR-specific Validate concurrency that cancels only superseded runs.
Install and verification boundaries
The tool installs exact SDK versions beneath a user-owned isolated root without changing system-installed SDKs or PATH. It does not promise that every end-of-life SDK binary can execute on a contemporary operating system.
Install validates the published Microsoft artifact checksum and proves the staged SDK's exact version and isolated origin before promotion. Verify's result is determined by read-only local checks. Online lifecycle and installed-component information is optional enrichment for Verify, while Audit intentionally uses Microsoft release metadata.
Removal safeguards
Remove targets only version-named isolated SDK directories, including confirmed incomplete candidates, and never system SDKs. Confirmation and PowerShell -WhatIf remain authoritative. Supported shutdown failure blocks deletion; tightly scoped legacy fallback does not guarantee every process or locked file has exited.
Stable distribution and trust
Latest-stable bootstraps resolve the latest published GitHub Release, verify tagged PowerShell/Bash script bytes against that release's SHA256SUMS, then execute the verified script. A published tag may also be pinned for reproducibility and rollback.
Checksums and tagged source share the project's GitHub trust domain: this checks integrity but is not an independent publisher signature. Mutable main remains development source. Stable identity is stamped into the two product scripts only in the derived tagged release commit.
Documentation
See docs/releases/history/v0.4.0.md for the concise overview, CHANGELOG.md for categorized changes, and docs/releases/stable-bootstrap.md for latest-stable and pinned installation instructions. A prepared documentation page does not itself mean the corresponding GitHub Release has been published.
v0.3.0
Isolated .NET SDK v0.3.0
v0.3.0 makes stable installation easier to trust and installed SDK state easier to understand. It adds verified latest-stable bootstrap, explicit tool-version identity, interactive Verify, SDK lifecycle Audit, stronger release verification, and a substantially improved documentation experience.
Highlights
- Verified latest-stable bootstrap — the short Pages-hosted PowerShell and Bash commands resolve the latest published stable release, acquire the tagged product script and its
SHA256SUMS, verify the selected script, and execute only the verified tagged bytes. - Explicit tool identity —
-Versionon PowerShell and--versionon Bash report the tool's own release/source identity. Stablev0.3.0copies report that exact tag, while mutablemainremains explicitly identified as development source. The persistent Main menu displays the same identity. - SDK lifecycle Audit — the new read-only Audit operation compares both Isolated SDKs and read-only System SDKs with current Microsoft release metadata and reports servicing and lifecycle state, including available updates, security-release metadata, maintenance, preview/Go Live, and end-of-life status.
- Interactive Verify — the existing exact-version isolated-SDK health check is now available from persistent interactive sessions as well as direct invocation.
- Improved documentation — the documentation is organized into task-focused Getting Started, Commands, Guides, Concepts, Contracts, Releases, and Maintainer sections with navigable Pages content and focused command references.
- Stronger release verification — stable publication stamps one explicit release identity into both product scripts in a derived release commit, publishes checksums from those exact bytes, and supports independently rerunnable read-only verification of the public tag, release, asset, bootstrap paths, saved bytes, and embedded identity.
- More resilient cross-platform bootstrap testing — Bash release-index parsing is portable without the prior GNU awk warning, transient curl receive failures are retried where appropriate, and real HTTP failures remain terminal rather than being misclassified as transport retries.
Stable bootstrap
Normal stable installation and update use the short Pages-hosted commands documented in docs/releases/stable-bootstrap.md. They resolve the latest stable release at bootstrap time and verify the selected tagged product script against that release's SHA256SUMS before the product script executes.
Pinned installation and rollback remain available when the exact release must be explicit. Mutable main remains development-only and is not treated as the stable channel.
The checksum and tagged product script share the project's GitHub trust domain. This detects corruption and mismatched acquired bytes but is not an independent publisher signature.
Release identity
v0.3.0 is the first stable release published with embedded tool-version identity. The release workflow derives the tagged release commit from the already-validated main state and changes only the PowerShell and Bash product-script identity markers before checksums and publication are produced.
See docs/releases/stable-bootstrap.md for stable installation, update, rollback, and trust boundaries, and docs/commands/tool-version.md for tool identity behavior.
v0.2.0
Isolated .NET SDK v0.2.0
v0.2.0 is the first stable release published under the checksum-verifying stable-release policy.
Highlights
- Verified stable bootstrap — stable installation uses an explicit
v0.2.0tag plus the release's deterministicSHA256SUMS, verifying the selected PowerShell or Bash script before execution. - Verified SDK payloads — installation resolves the exact platform archive from Microsoft's release metadata and verifies its published SHA-512 before extraction.
- Transactional installation — SDKs are staged, exact-version verified, and only then promoted into the isolated root, with stronger failure and recovery handling.
- Better interactive workflow — persistent sessions, Back/Main/Exit navigation, compact SDK version lists, manual exact-version entry, clearer status output, and polished cross-shell presentation.
- Improved inventory and health checks — List separates Isolated SDKs from read-only System SDKs, and the new
verifyaction performs an exact-version health check of an installed isolated SDK. - Stronger cross-platform confidence — expanded Pester/Bats behavioral suites, static analysis, integrity checks, and real end-to-end coverage across the supported Windows/PowerShell, Linux/Bash, and macOS/Bash mappings.
- Expanded documentation — clearer stable/development bootstrap guidance, supply-chain trust boundaries, project/editor usage, interactive behavior, filesystem safety, and operational guidance.
Stable bootstrap
Stable usage is explicitly version-pinned. The SHA256SUMS asset verifies consistency between the selected tagged script and the release checksum material before execution. It is an integrity check within the GitHub trust domain, not an independent publisher signature.
v0.1.0 remains available as historical release state but predates the checksum-verifying stable-release policy and is not retrofitted.
See docs/release-bootstrap.md for the stable PowerShell and Bash bootstrap commands and the update/rollback contract.
v0.1.0
Isolated .NET SDK v0.1.0
Initial release of Isolated .NET SDK, a small cross-platform tool for installing and managing exact .NET SDK versions without changing the normal system-wide .NET installation.
Highlights
- Install exact .NET SDK versions under
~/dotnet-sdkswithout adding them toPATH. - PowerShell support for Windows and Bash support for Linux and macOS.
- Interactive selection of supported, development, and end-of-life .NET channels using Microsoft's published release metadata.
- Install, list, and remove isolated SDKs interactively or through automation.
- Detect SDK versions already installed through the normal
dotnethost or as isolated installations. - Use
-Yesor--yesfor unattended automation where confirmation would otherwise be required. - Shut down .NET build servers before removing an isolated SDK.
- Preserve the exact script when bootstrapping from a checked-out or tagged file, while the one-line quick-start commands continue to refresh from
main. - Return nonzero exit codes for operational failures.
- MIT licensed.
This project grew out of the need to evaluate preview, release-candidate, and newer .NET SDKs without altering the normal development environment.
Release validation
The release validation workflow performs Bash syntax and smoke checks on Linux and macOS and PowerShell syntax and smoke checks on Windows. It also verifies invalid-version failure behavior and tagged/file-based bootstrap reproducibility.
Bootstrap behavior
The one-line quick-start commands intentionally refresh the installed helper from main.
When a script is executed directly from a repository checkout or tagged source, the tool now installs that exact script under ~/dotnet-sdks before re-executing it. This keeps tagged releases reproducible without changing the convenient refresh-from-main quick-start experience.