Skip to content

Add dotnetup preview release-strategy-plan.md#54735

Open
nagilson wants to merge 15 commits into
dotnet:release/dnupfrom
nagilson:nagilson-dotnetup-release-cycle
Open

Add dotnetup preview release-strategy-plan.md#54735
nagilson wants to merge 15 commits into
dotnet:release/dnupfrom
nagilson:nagilson-dotnetup-release-cycle

Conversation

@nagilson

@nagilson nagilson commented Jun 12, 2026

Copy link
Copy Markdown
Member

This document provides a plan to address the following:

  • Versioning strategy for internal/public preview of dotnetup
  • Release and devops strategy for dotnetup rollouts with a focus on the preview phase

Please consider giving broad feedback or feedback about my 'requirements' and 'assumptions' to see whether this is a solid foundational idea or not before we get into more specifics.

Resolves #54689

Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md
or that it might not be the right choice for our product/org even if its the convenient /  right  choice for our team
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md
3. **Change which `/daily/` build `/preview/` points at via an explicit process**
Implement a `release` pipeline that lets an operator select a set of dotnetup release artifacts from a prior daily pipeline run.
4. **The release pipeline:**
- Bumps the patch version by 1 off of the last tagged preview patch version using global `msbuild` parameters. Coordinate to push a PR via maestro or via actions that bumps the version in the real branch. Produce the preview versioned dotnetup `tag`.

@nagilson nagilson Jun 12, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recognize this happens via a vendor in the SDK and we could utilize that strategy instead of trying to be fancy. It does make me very sad we need PRs to bump the patch number.

Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
nagilson and others added 3 commits June 12, 2026 16:06
- Appendix A: Empirical HTTP probes show no TTL-based deletion on
  ci.dot.net/dotnetbuilds; 404s are from promotion-cleanup only.
  Non-promoted builds (like dotnetup) persist 4+ years.
  No retention policy documented in arcade or dnceng.

- Appendix B: Document 5 teams with automated GitHub Releases
  (aspire, dotnet-monitor, android-native-tools, cli/cli, mcp).
  List compliance requirements and recommend dotnet-monitor pattern
  (gh release create + ManualValidation@1) as simplest for Phase 1.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
@nagilson nagilson marked this pull request as ready for review June 12, 2026 23:48
Copilot AI review requested due to automatic review settings June 12, 2026 23:48
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md Outdated
this might be helpful for an agent to plan but it is not helpful as documentation

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a design document under documentation/general/dotnetup/designs/ describing a proposed preview release strategy for dotnetup, motivated by the need to decouple SDK branch stability from the dotnetup daily build while still enabling rollback and historical acquisition.

Changes:

  • Introduces a phased plan for dotnetup channel/version/release promotion (daily → blessed preview → eventual stable).
  • Documents requirements/assumptions and compares approaches used by other tooling (e.g., Aspire).
  • Adds appendices summarizing retention observations for ci.dot.net/dotnetbuilds and precedent for automated GitHub Releases compliance.

@@ -0,0 +1,294 @@
# dotnetup `Preview` Release Strategy

`dotnetup` ships today as a small internal preview built daily from the tip of the internal CI pipeline. SDK `main` consumes that daily build.
- `stable` needs to scale beyond `ci.dot.net`; `preview` may not (external customers should not build production CI on top of a preview product).
- GitHub Releases may provide scalable / CDN-like downloads (works for dotnet diagnostics).
- `aka.ms` has no Azure Front Door / `x-cache` / Akamai layer of its own. It is a Kestrel app serving a `301` redirect, which is sufficient for `preview` and `daily`.
- `ci.dot.net` per-version build URLs persist long enough for `dotnetup` rollback needs. See [Retention investigation](#retention-investigation-dotnetbuildscinotnet) below.
`https://ci.dot.net/public/dotnetup/0.1.4-preview.4.26303.1/dotnetup-win-x64.exe` and its
`.../public-checksums/dotnetup/0.1.4-preview.4.26303.1/dotnetup-win-x64.exe.sha512` sidecar.
**Open (low risk):** No formal retention/TTL policy is documented for `dotnetbuilds` blobs — see
[Retention investigation](#retention-investigation-dotnetbuildscinotnet). Empirical evidence shows
Comment on lines +73 to +74
- dotnetup's Arcade channel, with `targetFeeds: DotNetToolsFeeds`) publishes installers/checksums to `dotnetbuilds/public` and
`dotnetbuilds/public-checksums`. i.e. we are **already in staging**.
Comment on lines +99 to +103
| Channel | Version shape | Meaning |
|----------|---------------|---------|
| daily | `0.x.y` | Moving, as-is, built from active development tip. No stability promise. |
| preview | `0.x.y` | Blessed internal preview. The latest supported version. |
| stable | `1.0.0` | Public, CDN-scaled release (future). |
Comment thread documentation/general/dotnetup/designs/dotnetup-release-strategy.md

Linux Package Manager Feed / WinGet / Homebrew / etc. Needs discussion with partners.

### Phase 4 — Inclusion in the .NET SDK (unplanned at this time)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be better to remove this because I don't want to get pigeonholed into this whole other discussion topic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants