dotnet / dotnet/sdk

Document which global.json values dotnetup respects and clarify allowPrerelease behavior

Open
#53,396 1 comment 0 reactions 0 assignees View on GitHub
Area-dotnetup
Dominant language
C#
Stars
3.2k
Forks
1.3k
PR merge metrics
PR metrics pending

Description

## Context

PR https://github.com/dotnet/sdk/pull/53290 adds `GlobalJsonChannelResolver` which derives an SDK channel from global.json based on `sdk.version` and `sdk.rollForward`. However, it currently does **not** change behavior based on `sdk.allowPrerelease`, and there is no documentation stating which global.json fields dotnetup supports.

## Work items

1. **Create documentation** listing which global.json values dotnetup respects:
- `sdk.version` — used to derive the install channel
- `sdk.rollForward` — determines channel granularity (`latestPatch` → feature band, `latestFeature` → major.minor, etc.)
- `sdk.paths` — used for install path resolution
- `sdk.allowPrerelease` — currently **not** respected; behavior is unchanged regardless of value

2. **Clarify `allowPrerelease` behavior**: Currently, `allowPrerelease` does not imply a "preview" channel. The rationale is that there is only one preview channel, so we can't represent "stay on 10.x SDKs and get previews of new feature bands but not of 11.0." Document this decision and revisit if channel semantics change.

3. **Test with preview/pre-release versions**: Verify that channels like `11` work correctly when all available releases are preview (e.g., `11.0.100-preview.1`). Ensure the channel resolver doesn't inadvertently reject or misbehave with pre-release version strings.

## Origin

PR #53290 review comment: https://github.com/dotnet/sdk/pull/53290#discussion_r2897727903

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.