Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

dotnet-quality applies to every entry in dotnet-version, so "stable current + preview of next" is not expressible

オープン
#778 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
github-actions, typescript
領域
ci-cd

調査の方向性

まず README の dotnet-version と dotnet-quality のドキュメントから始め、次にそれらの入力が action によってどのように処理されるかを追跡します。1 つのステップで released 10.0 と preview 11.0 をそれぞれ独立して要求でき、既存の別ステップによる workaround と runtime の動作が正しく保たれれば完了です。

索引モデルが issue の本文から書いたものです。

説明

feature request
Description

dotnet-quality is a single input for the whole step, and it applies to every version listed in dotnet-version. That makes a very common combination impossible to express: the current released SDK, plus a preview of the upcoming one.

- uses: actions/setup-dotnet@v6
  with:
    dotnet-version: |
      10.0.x
      11.0.x
    dotnet-quality: preview

The intent here is "released 10.0, preview 11.0". What actually happens is that both are resolved at preview quality:

install-dotnet.ps1 -SkipNonVersionedFiles -Channel 10.0 -Quality preview
dotnet-install: .NET Core SDK with version '10.0.100-rc.2.25502.107' is already installed.

install-dotnet.ps1 -SkipNonVersionedFiles -Channel 11.0 -Quality preview
dotnet-install: .NET Core SDK with version '11.0.100-preview.7.26381.103' is already installed.

Even though 10.0 has shipped, the 10.0 request resolves to a release candidate. Combined with the "is already installed" short-circuit, a runner that once had the RC never moves to the released SDK.

Why we want both

We build against the current released SDK, and additionally install the next preview to compile a small amount of code with the upcoming C# language preview features (<LangVersion>preview</LangVersion>). That is a normal thing to want: production builds on the stable toolchain, plus early exposure to the next language version. It is not "give me previews of everything".

Impact beyond picking the wrong SDK

The knock-on effect is easy to miss. Because no released 10.0 SDK is ever installed, the only Microsoft.WindowsDesktop.App runtimes present are the prerelease ones bundled with the RC and the next preview:

Framework: 'Microsoft.WindowsDesktop.App', version '10.0.0' (x64)
The following frameworks were found:
  10.0.0-rc.2.25502.107
  11.0.0-preview.7.26381.103

A WPF test host targeting net10.0-windows asks for GA 10.0.0 and will not roll forward onto a release candidate, nor across a major version, so it fails to launch. The build still succeeds, because selecting an SDK and finding a matching runtime are different things - which makes this fail late and confusingly.

Workaround

Two steps, which works but is more verbose and easy to get wrong:

- uses: actions/setup-dotnet@v6
  with:
    dotnet-version: 10.0.x

- uses: actions/setup-dotnet@v6
  with:
    dotnet-version: 11.0.x
    dotnet-quality: preview
Possible resolutions
  1. Allow quality to be attached per version, for example 11.0.x:preview alongside a plain 10.0.x.
  2. Accept a matching list for dotnet-quality, aligned by position with dotnet-version.
  3. At minimum, document clearly that dotnet-quality is step-wide and that mixing qualities requires separate steps - the current README reads as though it qualifies each requested version.

Option 1 seems the smallest change for callers and keeps everything in one step.

主要言語
TypeScript
スター
1.2k
フォーク
572
PR マージ指標
30日以内にマージされた PR はありません

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

actions/setup-dotnet のほかの issue

actions/setup-dotnet の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。