`directives.version` is checked against dsc-lib's crate version (3.2.0), not the running dsc version
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
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
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
-
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: {} -
Run it with dsc 3.3.0:
dsc --version dsc config test --file ./repro.dsc.config.yaml -
Change the directive to
'=3.2.0'and rundsc config testagain.
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
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de PowerShell/DSC
-
dsc server doesn't handle parameters formatPeut-être pris @Bpoe l’a pris aujourd’hui. OuverteIssue-Bug Need-Review
PowerShell/DSC#1738 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Issue-Enhancement Needs Triage
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
PowerShell/DSC#1737 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
PowerShell/DSC#1736 ·
Les mainteneurs répondent en général sous 1 jour
-
Issue-Enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 38/100
PowerShell/DSC#1729 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Feature Request: Support dsc functions in executable argsPeut-être pris @SteveL-MSFT l’a pris il y a 13 jours. OuverteIssue-Enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 62/100
PowerShell/DSC#1722 · 4 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de PowerShell/DSC
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
rubys/roundhouse#571 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
documentation
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
fastrevmd-lab/rustmistmcp#161 ·
-
arch-audit refactor
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
SocketDev/socket-patch#1011 ·
Les mainteneurs répondent en général sous 1 jour