GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — ci: generate locks from pyproject, guard course pins, harden Validate by xxg1413 · Pull Request #99 · flypythoncom/python

Conversation

@xxg1413

@xxg1413 xxg1413 commented Oct 4, 2026

Copy link
Copy Markdown
Member

Summary

  • Lock files generated, not hand-edited. make lock runs uv pip compile --universal from the Python 3.11 floor, so per-Python splits (numpy/contourpy on 3.11) are handled automatically. All existing pins kept; adds the Windows-only colorama and Python <3.13 typing-extensions pins the manual lock had missed. New lock job runs make lock-check: it re-resolves copies of the committed locks (uv keeps every pin that still satisfies pyproject.toml) and fails on any diff. In-place pin bumps such as Dependabot's still pass.
  • Course pins guarded. tests/test_dependency_pins.py fails if a course/path requirements.txt pin differs from requirements-dev.lock.txt, so CI can't pass on a stack learners never get (the PR chore(deps): bump the python-dependencies group across 1 directory with 13 updates #94 pandas 3 risk).
  • Validate: adds Python 3.14, fail-fast: false, SHA-pinned actions, setup-uv v7 → v10.2.0 (the breaking changes don't affect us: cache is enabled explicitly, no custom manifest), uv pinned to 0.12.19.
  • Removed notify-site.yml. WEBSITE_SYNC_TOKEN was never configured: 32/32 runs skipped the dispatch step while showing success. The website builds from its own content pin, so a dispatch would only re-verify old content.
  • Removed mypy, its type stubs, and [tool.mypy]. The lock never installed them and CI never ran them.

Test plan

  • make check passes on clean Python 3.11 and 3.14 venvs from the new lock (139 tests)
  • make lock-check passes with the current locks and with an in-place pin bump; fails when pyproject.toml gains an unlocked dependency
  • make lock-check output is identical under uv 0.12.19 (CI) and 0.12.21 (local)
  • pin test fails with a clear message when a course pins pandas==3.0.6
  • plain pip install -r requirements-dev.lock.txt + pip check succeed
  • CI: lock + validate 3.11/3.12/3.13/3.14 green

Generated with Devin

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@xxg1413 @devin-ai-integration
ci: generate locks from pyproject, guard course pins, harden Validate
dbb0351
- Lock files are now produced by `make lock` (uv pip compile --universal
  from the 3.11 floor) instead of by hand; every existing pin is kept,
  and the Windows-only colorama and <3.13 typing-extensions pins the
  manual lock missed are added. A new `lock` job runs `make lock-check`,
  which re-resolves copies of the committed locks and fails on any diff.
- tests/test_dependency_pins.py requires course/path requirements.txt
  pins to equal the CI lock, so CI tests the stack learners install.
- Validate adds Python 3.14, sets fail-fast: false, SHA-pins actions,
  moves setup-uv v7 -> v10.2.0, and pins uv 0.12.19.
- Remove notify-site.yml: WEBSITE_SYNC_TOKEN was never set, so all 32
  runs skipped the dispatch while reporting success, and the website
  builds from its own pin anyway.
- Remove mypy, its type stubs, and [tool.mypy]: never locked or run.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@xxg1413
xxg1413 merged commit 187b447 into master Oct 4, 2026
5 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@xxg1413
xxg1413 deleted the ci/lock-and-matrix branch October 4, 2026 08:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@xxg1413
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.