Contributing and releases
Issues and pull requests
- Use GitHub Issues for bugs and feature ideas.
- Fork the repository, push a branch on your fork, and open a pull request into
main. - Public forks: the first time a new contributor opens a PR, a maintainer may need to approve workflow runs on GitHub (default security behavior).
Non-members cannot push directly to this repo; they read, fork, and propose changes via PR.
Local development
Build the docs locally:
Documentation site (GitHub Pages)
The Docs workflow builds with MkDocs and deploys on every push to main.
One-time repository setup (maintainers):
- Settings → Pages
- Set Source to GitHub Actions (not “Deploy from a branch”).
- After the next successful run on
main, the site is available at the URL shown under Pages (default:https://grosgradient.github.io/colandix/).
If you add a custom domain later:
- Add a
CNAMEat the repo root (one line: your hostname, e.g.docs.example.com). - In DNS, point that hostname to
grosgradient.github.iowith a CNAME record. - Enter the same hostname under Settings → Pages → Custom domain and wait for the TLS certificate.
- Set
site_urlinmkdocs.yml(and optionalproject.urlsinpyproject.toml) to the live docs URL.
PyPI releases (Trusted Publisher)
Publishing uses release.yml: it runs only when a GitHub Release is published, builds the package with uv build, and uploads with pypa/gh-action-pypi-publish via OIDC — no PyPI token in GitHub secrets.
One-time PyPI setup (project owner):
- Create or claim the
colandixproject on PyPI. - Publishing → Add a trusted publisher (preferred) or equivalent:
- Owner: GitHub organization (e.g.
GrosGradient) - Repository:
colandix - Workflow name:
release.yml - Environment: leave default unless you use a named GitHub Environment
Maintainer release checklist
- Update
CHANGELOG.mdand bumpversioninpyproject.tomlfollowing SemVer. - Merge to
main. - Create a GitHub Release with a tag
vX.Y.Zmatching the version (e.g.v0.1.0). - Confirm the Release workflow succeeds and the new version appears on PyPI.
- Confirm docs deployed as expected (Pages workflow on
main).
Org-level notes (outside this repo)
- Organization profile README: must live at [org]/.github repository under
profile/README.md(not.github/README.mdat the root of that repo). - Repo access: add teams or people under Settings → Collaborators with Write or Maintain as needed; consider branch protection on
main.