Repository navigation
Conversation
|
Since |
|
Fixed in 0f65291. Django stays on 5.2 in |
irfanuddinahmad
left a comment
There was a problem hiding this comment.
Please add tag_format = "v{version}", major_on_zero = false and allow_zero_version = true to [tool.semantic_release], use fallback_version = "0.0.0", and add a top-level permissions: contents: read to ci.yml, since run_ci now calls it from release.yml.
This flips the Makefile/tox direction (tox now calls make). Fine by me since it's the direction feanil prefers, but it's beyond the migration itself, so flag it in the description.
Move to the org-standard packaging and release tooling (public-engineering#506): static PEP 621 metadata, a locked uv environment seeded from master's pins, PEP 735 dependency groups, a src/ layout, and python-semantic-release with OIDC publishing so releases are driven by conventional commits instead of manual tags. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
d71edd6 to
9333632
Compare
Important
PR implemented with the assistance of Claude Code. Refined and validated before being submitted for code review.
Modernize
edx-django-utilsPart of openedx/public-engineering#506
Summary
edx-django-utils.src/layout.setup.py/setup.cfgwithpyproject.toml(PEP 621 static metadata).uvwith PEP 735 dependency groups; commituv.lock..coveragercintopyproject.toml.astral-sh/setup-uv; SHA-pin all actions; setci.ymltoken topermissions: contents: read.python-semantic-release+release.yml(OIDC trusted publishing), replacing the tag-triggeredpypi-publish.yml.Removed/Updated
Deleted files:
setup.py,setup.cfg,requirements/,.coveragerc,.github/workflows/pypi-publish.ymlUpdated Makefile targets:
requirementsuv sync --locked --group devinstead of pip-syncupgradeedx_lint write_uv_constraints+uv lock --upgradeinstead of pip-compilequalityDJANGO_SETTINGS_MODULE=test_settingsexported (tox now callsmake quality);setup.pydropped from the file listsisortmake isort)docsmake docs);python setup.py bdist_wheel→python -m build --wheel; thedevgroup now includesdocso this works frommake requirementstestpython -Wd -m pytest $(PYTEST_ARGS)so tox keeps master's-Wdand{posargs}behaviorVersioning
setuptools-scmwithdynamic = ["version"]— master had a PyPI publish workflow;python-semantic-releasecontrols the version string at release time via git tags.[tool.semantic_release]setstag_format = "v{version}"(matching the existingv8.1.0-style tags),major_on_zero = falseandallow_zero_version = trueexplicitly, so releases don't depend on PSR defaults.Important Notes
[tool.edx_lint].uv_constraintsaddssetuptools<82: the existingdoc8<1.0.0pin importspkg_resources, which setuptools 82 removed.uv.lockis seeded from master'srequirements/*.txtpins, so dependency versions match master; upgrades are left to the firstmake upgrade. Thedjango42group is at master's Django 4.2.25; thetestgroup (andquality/doc, which include it) uses Django 5.2, which master never pinned.release.yml, sinceci.ymlno longer runs on pushes tomaster.ci.ymlno longer has apush:trigger;release.ymlcalls it viaworkflow_callon pushes tomaster. Thetestsjob name and matrix are unchanged.make test,make quality,make docs,make isort), whereas on master tox ran the commands itself. This goes beyond the migration and is intentional. Runningmake docslocally now also builds the dist and runstwine check, which master only did insidetox -e docs.Testing Notes
This PR has not been manually tested against the repo's own features. Testing relied on CI checks and local agent tooling (
make requirements,make quality,make test,make docs,python -m build). Repo-owner is encouraged to run the repo's feature tests before merging.🤖 Generated with Claude Code