Modernize packaging, CI, and documentation#14
Open
soraros wants to merge 2 commits into
Open
Conversation
Replace setup.py and the pytest/documentation workflows with pyproject.toml (hatchling) and one uv-based CI workflow. Packaging - Add pyproject.toml: runtime deps, docs extra, dev dependency group, console scripts - Remove setup.py; requires-python >=3.11; __version__ from importlib.metadata .github/workflows - Remove pytest.yml and documentation.yml; add ci.yml - test: uv sync, coverage and pytest on 3.11–3.13, apt libs for VTK/PySide6, pyfem --help - build: uv build, wheel smoke in .wheel-check venv, upload dist artifact - docs: uv sync --extra docs --no-dev, sphinx-build; upload-pages-artifact on push to main - deploy-docs: deploy-pages on push to main (replaces peaceiris/actions-gh-pages → gh-pages) doc/ - conf.py: Furo, MyST, sphinx-autoapi (api/ at build time, gitignored) - Remove Makefile, make.bat, requirements.txt, _static/custom.css, introduction/about.md, introduction/api.md, pyfem.html - Add doc/README.md; update installation guide, index, tutorials, README Other - .readthedocs.yaml: uv sync --extra docs --no-dev; apt libgl1 - .gitignore: doc/_build, doc/api, .wheel-check/, uv.lock, AGENTS.md, .python-version
Use uv run pyfem and uv run pytest in user-facing docs so they match the installation guide and PR contributor commands. Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
Author
|
Gentle ping @jjcremmers |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Replaces
setup.py,.github/workflows/pytest.yml, and.github/workflows/documentation.ymlwith pyproject.toml (PEP 621, hatchling), uv, and .github/workflows/ci.yml. Local development, Read the Docs, and CI all use uv; runtime and dev tools viauv sync, documentation viauv sync --extra docs(CI and RTD add--no-dev).Changes
3.11–3.13;3.9and3.10removed (version schedule).main(previously onlymain).unittest discover); installs the full runtime set frompyproject.toml, including PySide6 (omitted in the old workflow).uv syncreplaces a shorter ad hocpip installlist in the old workflow (now includes VTK and PySide6 explicitly).uv buildand a wheel smoke test in a.wheel-checkvenv.doc/_build/html(was repo-root_build/); removeddoc/Makefile,doc/requirements.txt, and manual API stubs. Read the Docs remains the primary docs site.main(replaces peaceiris/actions-gh-pages →gh-pages). If Settings → Pages still deploys fromgh-pages, switch Source to GitHub Actions (publishing source).Commands
With uv installed, from the repo root. After
uv sync, useuv run …without activating.venv.