Skip to content

chore(ci): bump Python to 3.14 and tighten conformance dep floors#11

Merged
tymofiy merged 2 commits into
mainfrom
chore/ci-python-deps
Apr 18, 2026
Merged

chore(ci): bump Python to 3.14 and tighten conformance dep floors#11
tymofiy merged 2 commits into
mainfrom
chore/ci-python-deps

Conversation

@tymofiy
Copy link
Copy Markdown
Owner

@tymofiy tymofiy commented Apr 18, 2026

Summary

Refreshes Python runtime and pinned versions for the conformance suite + markdown linting.

Thing From To Rationale
python-version (CI) 3.12 3.14 Current stable; EOL 2030-10-31 (vs 3.12's 2028-10-31).
pyyaml (requirements.txt) >=6.0 >=6.0.3 Current PyPI release; declares a tested baseline.
jsonschema (requirements.txt) >=4.0 >=4.26 Current PyPI release; declares a tested baseline.
markdownlint-cli (CI install) unpinned @0.48.0 CI reproducibility — unpinned npm install -g installs whatever is latest at job time.

Why

  1. Python 3.14 — 3.12 is fine but 3.14 gives a further EOL horizon (+2 years) with no compatibility cost: both conformance deps support Python 3.10+. Adopting the current stable line keeps the conformance surface on a supported runtime for the foreseeable future.
  2. Dep floor tightening>=6.0 / >=4.0 are extremely loose floors. Tightening them to the versions actually exercised by the conformance suite makes the declared contract honest. Floors (not pins) so upstream patches still flow.
  3. Pin markdownlint-cli — a global npm install -g markdownlint-cli with no version selector means the CI job behavior drifts whenever upstream cuts a release. Pinning to @0.48.0 makes markdownlint rule coverage deterministic across runs; easy to bump in a future PR when desired.

Compatibility check

  • pyyaml 6.0.3 — requires_python: >=3.8
  • jsonschema 4.26.0 — requires_python: >=3.10
  • markdownlint-cli 0.48.0 — engines: node>=20 ✓ (we use Node 24)

What this does NOT change

Test plan

  • CI green on GitHub Actions with Python 3.14
  • Conformance suite still 12/12 on the new runtime
  • markdownlint-cli@0.48.0 produces no new warnings on existing .md files

🤖 Generated with Claude Code

Python runtime:
  - python-version: 3.12 -> 3.14 (current stable, EOL 2030-10-31)

Conformance dependencies (requirements.txt):
  - pyyaml:     >=6.0 -> >=6.0.3 (current release)
  - jsonschema: >=4.0 -> >=4.26  (current release, min Python 3.10)

Build tools:
  - markdownlint-cli: unpinned -> @0.48.0 (CI reproducibility)

Floor bumps reflect the versions the conformance suite has actually
been tested against. Both pyyaml and jsonschema continue supporting
Python 3.10+, so the runtime bump is independent.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 18, 2026 11:52
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the CI/runtime baseline for the conformance suite by moving the workflow to Python 3.14 and tightening declared minimum versions for the suite’s Python dependencies, while also pinning the markdown linter version for more reproducible CI runs.

Changes:

  • Bump GitHub Actions CI python-version from 3.12 to 3.14.
  • Tighten conformance dependency minimums for pyyaml and jsonschema.
  • Pin markdownlint-cli to 0.48.0 in CI.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
requirements.txt Raises minimum supported versions for pyyaml and jsonschema used by the conformance runner.
.github/workflows/ci.yml Updates CI to use Python 3.14 and pins markdownlint-cli for deterministic linting.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tymofiy tymofiy merged commit 268ea79 into main Apr 18, 2026
1 check passed
@tymofiy tymofiy deleted the chore/ci-python-deps branch April 18, 2026 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants