- Make
- Python 3.10+
- Pip
make run-type-check- type checks source code (runsuv run ty check wikipediaapi/)make run-ruff- lints and checks formatting (runsruff checkandruff format --check)make requirements-all- install all requirements *make requirements- install package requirements *make requirements-dev- install development requirementsmake run-tests- run unit tests (pytest)make run-tests-integration- run VCR integration tests (pytest)make run-coverage- run code coverage (pytest-cov)make pypi-html- generates single HTML documentation intopypi-doc.htmlmake html- generates HTML documentation similar to RTFD into folder_build/html/make prepare-release VERSION='1.2.3'- bumps version files, runs full pre-release checks, and opens a PR from arelease/1.2.3branchmake create-github-release VERSION='1.2.3'- after the PR is merged, creates a GitHub Release with auto-generated notes, triggering PyPI publish
During development — as each PR is merged, add a bullet point describing the
change under the Unreleased section at the top of CHANGES.rst:
Unreleased ---------- * Add support for foo - `PR 123`_ .. _PR 123: https://github.com/martin-majlis/Wikipedia-API/pull/123
When ready to release:
From a clean
masterbranch, run:make prepare-release VERSION='1.2.3'
This will:
- Validate the version format and that it is greater than the current version
- Check that
CHANGES.rsthas anUnreleasedsection - Run the full pre-release check suite (tests, type checks, linting, examples)
- Create a
release/1.2.3branch - Rename
Unreleased→1.2.3inCHANGES.rstand bump all version files - Commit, push the branch, and open a pull request
Review and merge the pull request.
After the PR is merged, create the GitHub Release:
make create-github-release VERSION='1.2.3'
This creates a
v1.2.3tag and GitHub Release with auto-generated release notes (based on merged PRs since the last release), which triggers therelease.ymlworkflow to publish the package to PyPI.