CI/CD Modernisation: Fully uv-native Workflows#719
CI/CD Modernisation: Fully uv-native Workflows#719tschm wants to merge 9 commits intoPyPortfolio:mainfrom
Conversation
There was a problem hiding this comment.
update: @tschm completely changed the content and description of the PR. The below was a reaction to a simple change that pinned the python version.
Not sure if this is needed because this is a package and we do not want to pin versions but support ranges? Can you please explain why this is beneficial in a package, as opposed to a production project?
uv pip install requires a virtual environment; add `uv venv` before each install step across all jobs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Python 3.14 to test matrix. - Remove obsolete container specification and redundant pinning steps. - Improve dependency installation with dynamic version handling and additional extras.
|
@tschm, thanks - though I am wondering whether you used AI, since there are incorrect statements?
Can you kindly re-check whether the PR contains only intended changes? |
|
The current workflows and also #702 are unfortunately still using the old action and are somewhat interesting... |
|
❯ assess the quality on a scale of 1 to 10 ⏺ PR #702 — 5/10 The intent is good but the execution has several concrete problems:
On the plus side: the detect-notebooks-change job is a genuinely good idea that saves CI time, job renaming is cleaner, PR #719 — 7.5/10 Substantially better. It achieves what it sets out to do cleanly and consistently. Specific strengths:
Deductions:
Bottom line: #719 is the stronger PR by a clear margin. #702 has an outright runtime bug in the release pipeline and |
…p dead code - main.yml: add detect-notebooks-change job; gate notebooks on it to skip expensive runs on unrelated PRs (always fires on push to main) - main.yml: remove dead if: false codecov upload step - release.yml: drop Linux-only container from test job; add macOS and Windows to release test matrix (5 → 15 jobs) - release.yml: rename PY_VERSION → PKG_VERSION to avoid confusion with the Python interpreter version Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- check_tag: provision Python via uv run instead of system Python, consistent with the fully uv-native philosophy - build: switch container from pinned uv:0.9.30-bookworm to uv:bookworm so it tracks the latest uv release without manual bumps Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@tschm, I would like to warn you for your behaviour as it is neither kind nor welcoming. Without me saying anything about intent at this point in time. I will describe how it looks from the outside: tingiskhan in #702 opens a very decent PR to clean up the CI jobs, and homogenize with rest of GC.OS stack which imo is useful to reduce maintenance burden. You, on the other hand, have not interacted with the repo for months (which has been on hiatus). But just few days after the repository becomes active again, you open a PR that you now say is a better version of #702. You also spend some time in mock-grading the two pull requests, without interacting much directly with #702. Most people will read this as patronizing, and also quite mean, especially to a new contributor to this repository. Let me also ask you this: why do you feel it necessary to write "improved" versions of pull requests and explicitly rank/compare them, instead of working on the numerous other issues or ways this project could be helped - or opening this kind of pull request in the first place without anyone else working on it? It does feel like an attempt to establish a "pecking order of seniority", whether it is intentional or not. Please don't do this. Interactions should be collegial, helpful, welcoming. Not "look, I can do this better than you, therefore I am ahead of you in the imaginary pecking order" (irrespective of whether the premise is true or not) or "I was here first, please leave" . But try to be more something like: "we should, as a community of peers, enable everyone to reach their potential to their fullest, irrespective of who is more or less senior/experienced in the team". Ok? |
|
Sorry, I don't have time to get into what's wrong with the code or my approach with it. I gave you an alternative implementation (for the fun of it and to demonstrate what .python-version is for) and I hope you guys are learning from it. Study what's going on. Don't rely just on the comments -- as you have pointed out, they can be inaccurate. Work on your pull request in #702 and embrace uv/uvx. You can also ignore the code given in this pull request. It's your project after all. |
CI/CD Modernisation: Fully uv-native Workflows
This PR rewrites the GitHub Actions CI and release pipelines to be fully managed by uv, removing all usage of
actions/setup-python and system Python.
Main changes
.python-version — adds a pinned 3.12 file so the project has a single canonical Python version for local development
and the coverage job.
main.yml — complete rewrite:
release.yml — complete rewrite:
system-Python dependencies
.github/actions/setup-project/ — deleted; fully superseded by the inline uv steps.