chore: migrate to modern Python tooling (uv, pyproject.toml, semantic-release, src layout)#2423
chore: migrate to modern Python tooling (uv, pyproject.toml, semantic-release, src layout)#2423salman2013 wants to merge 6 commits into
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Thanks for the pull request, @salman2013! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2423 +/- ##
==========================================
- Coverage 95.45% 95.03% -0.43%
==========================================
Files 198 179 -19
Lines 22755 19903 -2852
Branches 1548 1439 -109
==========================================
- Hits 21720 18914 -2806
+ Misses 780 746 -34
+ Partials 255 243 -12
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…able installs When uv installs ora2 as an editable package, it creates src/openassessment/ and symlinks openassessment/ -> src/openassessment/. Karma's basePath resolves through this symlink to src/openassessment/xblock/static, so the ../../../ relative paths for node_modules reach src/node_modules/ instead of the project root, causing RequireJS and other libraries to not be found and the tests to crash. Fix by using process.cwd() (the project root when npm test runs) to build absolute paths for all files outside the openassessment/ directory tree. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
d6b467b to
5ae0ab5
Compare
pylint-django<2.6.0 used pylint.interfaces.IAstroidChecker which was removed in pylint 3.x. With pylint 4.0.6 now in the lockfile, remove the <2.6.0 constraint so pylint-django 2.8.0 is used instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The format string args were passed as keyword args (file_key=, error=) which aren't consumed by the %s placeholders, causing a pylint logging-too-few-args violation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
pyproject.toml(PEP 621): static dependencies, SPDX license, setuptools-scm for dynamic versioning, coverage config, isort config; deletesetup.py,setup.cfg,.coveragerc[dependency-groups](PEP 735),uv.lock, updatedtox.inito usetox-uv+uv-venv-lock-runner, updatedMakefileand CI workflow to useuv sync/uv run toxpython-semantic-releasefor automated versioning and PyPI publishing via OIDC trusted publisher; delete legacypypi-publish.ymlsrc/layout; update all filesystem path references in Makefile, webpack configs, karma, scripts, and settingsTest plan
django42,django52,js,qualityenvironments)openedx/edx-ora2→ workflowrelease.ymlbefore merging🤖 Generated with Claude Code