github wyattferguson/pattern v3.0.0

5 hours ago

v3.0.0

Documentation

  • Replaced portray (unmaintained since 2022) with zensical — the actively-maintained MkDocs Material
    successor
  • Docs deploy automatically to GitHub Pages on every push via a new docs.yml workflow
  • Added docs home + getting-started pages and a template mkdocs.yml

Automated releases & publishing

  • python-semantic-release v10: conventional commits → version bump, changelog, and v* tag,
    automatically
  • PyPI Trusted Publishing (OIDC) — no more API token secrets
  • PEP 740 attestations via astral-sh/attest-action + uv publish
  • GitHub Release created automatically with built artifacts

Hardened CI

  • All GitHub Actions pinned to full commit SHAs
  • Least-privilege, per-job permissions; persist-credentials: false
  • zizmor + actionlint audits and uv audit vulnerability scanning in CI
  • Test matrix across Python 3.13/3.14

Tooling

  • .pre-commit-hooks.yaml → .pre-commit-config.yaml (pre-commit was previously non-functional); added
    codespell, uv-lock, and actionlint hooks
  • pytest batteries: xdist (parallel), randomly, hypothesis, timeout; [tool.pytest.ini_options] config
  • Pre-commit fixes out of the box: real starter test, 100% coverage gate now reachable
  • PEP 639 SPDX license fields (license + license-files), GPL-3.0-only
  • YAML issue forms, SECURITY.md, CODEOWNERS
  • .gitattributes — no more mixed line-ending churn

Fixes

  • Dockerfile CMD, noxfile Python versions, license docs jinja conditions, .vscode/settings.json
    invalid JSON, root repo mypy → ty

Breaking changes

  • Removed tools: nox (CI matrix + uv run --python covers multi-version), AGENTS.md option,
    FUNDING.yml — generated projects get fewer moving parts
  • Docs tasks: task html / task publish gone → task docs / task serve (auto-deploy)
  • PyPI publishing: remove the PYPI_TOKEN secret — configure a trusted publisher (workflow
    pypi-publish.yml, environment pypi) instead
  • exclude-newer one-week package delay removed (it could break fresh installs)
  • Releases now require Conventional Commits PR titles

Don't miss a new pattern release

NewReleases is sending notifications on new releases.