Skip to content

fix: Loosen strict dependency pins for pyyaml and psutil - #295

Closed
shirasassoon wants to merge 2 commits into
microsoft:mainfrom
shirasassoon:shirasassoon-loosen-dependency-pins
Closed

shirasassoon wants to merge 2 commits into
microsoft:mainfrom
shirasassoon:shirasassoon-loosen-dependency-pins

Conversation

@shirasassoon

Copy link
Copy Markdown
Contributor

Summary

The exact pins pyyaml==6.0.2 and psutil==7.0.0 in pyproject.toml conflict with newer fabric-cicd releases. fabric-cicd 1.4.0 requires pyyaml>=6.0.3, which cannot be satisfied alongside the exact pin pyyaml==6.0.2, making installation unresolvable when a newer fabric-cicd is pulled in (the project depends on fabric-cicd>=1.3.0 with no upper bound).

Changes

  • pyproject.toml: pyyaml==6.0.2 -> pyyaml>=6.0.2,<7 and psutil==7.0.0 -> psutil>=7,<8
  • requirements-dev.txt: mirrored the same two ranges to keep it in sync with the manifest
  • Added a fixed changie entry documenting the loosened pins

The loosened ranges still exclude the next major of each package, and the APIs used (yaml.safe_load/yaml.load/yaml.dump and psutil.Process()/.parent()/.pid) are stable across them.

Validation

  • Clean Python 3.13 venv pip install -e . co-resolves fabric-cicd 1.4.0 + pyyaml 6.0.3 + psutil 7.2.2 (the previously-unresolvable scenario)
  • tests/test_core, tests/test_utils, tests/test_parsers: 617 passed

Loosen the exact pins pyyaml==6.0.2 and psutil==7.0.0 to compatible ranges (pyyaml>=6.0.2,<7 and psutil>=7,<8) so fabric-cli can co-resolve with newer fabric-cicd versions. fabric-cicd 1.4.0 requires pyyaml>=6.0.3, which conflicted with the exact pin and made installation unresolvable.

Resolves microsoft#294

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@shirasassoon
shirasassoon requested a review from a team as a code owner October 14, 2026 07:21
Copilot AI balanced review requested due to automatic review settings October 14, 2026 07:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The compatible ranges resolve the stated conflict while retaining major-version boundaries.

0 open findings

What changed in this PR

Loosens dependency constraints to support newer fabric-cicd releases.

Changes:

  • Allows compatible PyYAML 6.x and psutil 7.x versions.
  • Synchronizes development requirements.
  • Adds a changie entry.
File Description
pyproject.toml Updates runtime dependency ranges.
requirements-dev.txt Mirrors dependency ranges.
.changes/​unreleased/​fixed-20261013-164235.yaml Documents the fix.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@shirasassoon shirasassoon changed the title Loosen strict dependency pins for pyyaml and psutil fix: Loosen strict dependency pins for pyyaml and psutil Oct 14, 2026
@shirasassoon
shirasassoon deleted the shirasassoon-loosen-dependency-pins branch October 14, 2026 08:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Loosen strict dependency pins to improve compatibility with newer fabric-cicd versions

2 participants