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

`directives.version` is checked against dsc-lib's crate version (3.2.0), not the running dsc version

オープン
#1,735 コメント 1 件 リアクション 1 件 担当者 1 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

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

評価

難易度
3/5
見積もり時間
半日
初心者へのやさしさ
74/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
powershell, rust
領域
cli

調査の方向性

まず lib/dsc-lib/src/configure/mod.rs の L1299-L1301 (validate_config) 付近で env!("CARGO_PKG_VERSION") がパースされている箇所を確認し、L1253-L1257 の self.context.dsc_version を使うメタデータ用コードと比較してください — 修正は、ディレクティブのチェックでクレートのバージョンではなく実行中の dsc バージョンを使うようにすることです。次に、現在のケース (=999.0.0, >=3.1) はどちらでも通過してしまう dsc/tests/dsc_version.tests.ps1 を、実行中のバージョンと 3.2.0 を区別できるケース(例: '=' をピンする)で拡張してください。完了の条件は、実行中のバージョンをピンすると成功し、新しい dsc で 3.2.0 をピンすると失敗することであり、Pester テストを実行して検証します。

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

説明

Issue-Bug
Prerequisites
  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.
Summary

directives.version always compares against 3.2.0, whatever dsc build is running. On dsc 3.3.0, pinning '=3.3.0' fails and pinning '=3.2.0' passes. 3.4.0-preview.1 behaves the same way.

In practice you can't require anything newer than 3.2.0 with the directive, and an upper bound such as '<3.3.0' is accepted by 3.3.0 and 3.4.0-preview.1.

The check in validate_config parses env!("CARGO_PKG_VERSION"), and inside dsc-lib that resolves to dsc-lib's own version (mod.rs L1299-L1301 at v3.3.0). lib/dsc-lib/Cargo.toml is still 3.2.0 on main, while dsc/Cargo.toml is 3.4.0-preview.1. The metadata code in the same file uses self.context.dsc_version (L1253-L1257), so the directive check could probably use that as well. The existing tests in dsc/tests/dsc_version.tests.ps1 use =999.0.0 and >=3.1, and both give the same result with 3.2.0 or 3.3.0, so they don't catch this.

Steps to reproduce
  1. Save this as repro.dsc.config.yaml:

    $schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
    directives:
      version: '=3.3.0'
    resources:
    - name: os
      type: Microsoft/OSInfo
      properties: {}
    
  2. Run it with dsc 3.3.0:

    dsc --version
    dsc config test --file ./repro.dsc.config.yaml
    
  3. Change the directive to '=3.2.0' and run dsc config test again.

Expected behavior
PS> dsc --version
dsc 3.3.0

# version: '=3.3.0'
exit code 0, test results for the OSInfo instance

# version: '=3.2.0'
ERROR Error: Validation: Configuration requires DSC version '=3.2.0', but the current version is '3.3.0'
exit code 2
Actual behavior
PS> dsc --version
dsc 3.3.0

# version: '=3.3.0'
ERROR Error: Validation: Configuration requires DSC version '=3.3.0', but the current version is '3.2.0'
exit code 2

# version: '=3.2.0'
exit code 0, and the output reports executionInformation.version: 3.3.0

Same document, other requirements:

directives.version dsc 3.3.0 dsc 3.4.0-preview.1
=<running version> exit 2 exit 2
=3.2.0 exit 0 exit 0
<3.3.0 exit 0 exit 0
>=3.3.0 exit 2 not run
Error details
2026-10-04T10:25:47.660394Z ERROR Error: Validation: Configuration requires DSC version '=3.3.0', but the current version is '3.2.0'
Environment data
Name                           Value
----                           -----
PSVersion                      5.1.26100.9444
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.26100.9444
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Windows 11 Pro for Workstations 25H2, build 26200. dsc 3.3.0 installed from the release msixbundle; 3.4.0-preview.1 run from the release zip.

Version

3.3.0 (also reproduced on 3.4.0-preview.1)

Visuals

No response

主要言語
Rust
スター
532
フォーク
76
平均マージ
2日 10時間
マージ済み PR(30日)
15

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

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

PowerShell/DSC のほかの issue

PowerShell/DSC の issue をすべて見る

似ている issue

Rust の issue をもっと見る

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

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