Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte
#1,735 1 commentaire 1 réaction 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@michaeltlombardi y travaille déjà.

Depuis le 5/10/2026.

Évaluation

Difficulté
3/5
Temps estimé
Une demi-journée
Accessibilité débutants
74/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
powershell, rust
Domaine
cli

Piste de recherche

Commencez à lib/dsc-lib/src/configure/mod.rs aux alentours de L1299-L1301 (validate_config), où env!("CARGO_PKG_VERSION") est analysé, et comparez avec le code de métadonnées à L1253-L1257 qui utilise self.context.dsc_version — le correctif consiste à faire en sorte que la vérification de la directive utilise la version de dsc en cours d'exécution plutôt que la version du crate. Étendez ensuite dsc/tests/dsc_version.tests.ps1, dont les cas actuels (=999.0.0, >=3.1) passent dans les deux cas, avec un cas qui distingue 3.2.0 de la version en cours d'exécution (par ex. épingler '='). Terminé signifie que l'épinglage de la version en cours d'exécution réussit et que l'épinglage de 3.2.0 échoue sur un dsc plus récent, vérifié en exécutant le test Pester.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
Rust
Étoiles
532
Forks
76
Merge moyen
2 j 6 h
PR mergées (30 j)
15

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de PowerShell/DSC

Toutes les issues de PowerShell/DSC

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.