From 55b84a616287d01ac158cf16ddc9f24973088ead Mon Sep 17 00:00:00 2001 From: "Luke W. Johnston" Date: Mon, 6 Jul 2026 20:09:21 +0200 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=F0=9F=94=A8=20add=20Panache=20Mark?= =?UTF-8?q?down=20formatter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/panache.toml | 15 +++++ .github/workflows/release.yml | 2 +- .pre-commit-config.yaml | 10 +-- .vscode/extensions.json | 3 +- .vscode/settings.json | 4 +- index.qmd | 86 +++++++++++++------------- justfile | 4 +- template/.config/cog.toml | 2 +- template/.config/panache.toml | 15 +++++ template/.github/workflows/release.yml | 2 +- template/.pre-commit-config.yaml | 10 +-- template/.vscode/extensions.json | 5 +- template/.vscode/settings.json | 5 +- template/CONTRIBUTING.md.jinja | 7 ++- template/justfile.jinja | 2 + 15 files changed, 104 insertions(+), 68 deletions(-) create mode 100644 .config/panache.toml create mode 100644 template/.config/panache.toml diff --git a/.config/panache.toml b/.config/panache.toml new file mode 100644 index 0000000..a385616 --- /dev/null +++ b/.config/panache.toml @@ -0,0 +1,15 @@ +flavor = "quarto" +exclude = [".git/", ".github/", "LICENSE.md", "README.md"] + +[format] +tab-width = 2 + +[linters] +r = "jarl" +python = "ruff" +rust = "clippy" + +[formatters] +r = "air" +python = "ruff" +rust = "rustfmt" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 70f24c2..2cd41c4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,7 +56,7 @@ jobs: with: command: check - # Install uv to use git-cliff and rumdl + # Install uv to use git-cliff and panache - name: Set up uv uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1ebbd33..f74294c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,6 +10,11 @@ repos: hooks: - id: gitleaks + - repo: https://github.com/jolars/panache-pre-commit + rev: v2.51.0 + hooks: + - id: panache-format + - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: @@ -27,8 +32,3 @@ repos: rev: v1.47.2 hooks: - id: typos - - - repo: https://github.com/rvben/rumdl-pre-commit - rev: v0.2.26 - hooks: - - id: rumdl-fmt # Auto-format diff --git a/.vscode/extensions.json b/.vscode/extensions.json index fdea16c..49b5940 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -14,7 +14,8 @@ "tekumara.typos-vscode", "EditorConfig.EditorConfig", "samuelcolvin.jinjahtml", - "rvben.rumdl" + "rvben.rumdl", + "jolars.panache" ], "unwantedRecommendations": [] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 744ecbb..678003d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,8 +15,8 @@ "perf" ], "conventional-branch.format": "{Type}/{Branch}", - "[quarto][qmd][jinja]": { - "editor.formatOnSave": false + "[quarto][qmd][md][jinja]": { + "editor.defaultFormatter": "jolars.panache" }, "files.associations": { "justfile.jinja": "plaintext", diff --git a/index.qmd b/index.qmd index 3df257f..0a71a34 100644 --- a/index.qmd +++ b/index.qmd @@ -4,74 +4,72 @@ title: "{{< meta tagline >}}" {{< include /docs/includes/_badges.qmd >}} -This is a template for creating a new Python package following the -Seedcase structure. Use this template to quickly get started with a new -Python package with all the necessary files and configurations in place, -including for developing the package. +This is a template for creating a new Python package following the Seedcase +structure. Use this template to quickly get started with a new Python package +with all the necessary files and configurations in place, including for +developing the package. ## Features -- Use [uv](https://decisions.seedcase-project.org/why-uv/) to manage the - Python package and for project management. -- Includes a [justfile](https://just.systems/man/en/) for managing - common tasks like building the website and running checks. -- Uses [typos](https://github.com/crate-ci/typos) to check for common - spelling mistakes. +- Use [uv](https://decisions.seedcase-project.org/why-uv/) to manage the Python + package and for project management. +- Includes a [justfile](https://just.systems/man/en/) for managing common tasks + like building the website and running checks. +- Uses [typos](https://github.com/crate-ci/typos) to check for common spelling + mistakes. - Code formatting and linting with [ruff](https://decisions.seedcase-project.org/why-ruff/). - Run checks with [pre-commit](https://pre-commit.com/) hooks to ensure - consistent formatting and style across the project. It includes checks - for credentials, typos, and file formatting. -- GitHub workflows for automatically adding Pull Requests and Issues to - a project board. + consistent formatting and style across the project. It includes checks for + credentials, typos, and file formatting. +- GitHub workflows for automatically adding Pull Requests and Issues to a + project board. - Pull Request template for easy creation of new Pull Requests. -- Includes [GitHub Actions](https://docs.github.com/en/actions) for - continuous integration, testing, and delivery for running checks, - formatting, releasing, and building the Python package and associated - documentation. +- Includes [GitHub Actions](https://docs.github.com/en/actions) for continuous + integration, testing, and delivery for running checks, formatting, releasing, + and building the Python package and associated documentation. - Pull Request template for easy creation of new Pull Requests. - [VS Code](https://code.visualstudio.com/) settings commonly used by contributors working in VS Code. - Includes an [EditorConfig](https://editorconfig.org/) file to ensure consistent formatting across different editors. -- [`CITATION.cff`](https://citation-file-format.github.io/) file for - citation information. -- Python package folder and file structure that takes advantage of - Python's packaging ecosystem. +- [`CITATION.cff`](https://citation-file-format.github.io/) file for citation + information. +- Python package folder and file structure that takes advantage of Python's + packaging ecosystem. - [`pyproject.toml`](https://peps.python.org/pep-0518/) for tracking dependencies and project metadata. -- Uses [Quarto](https://quarto.org/) Markdown for the website content, - allowing for easy integration of code, text, and figures. +- Uses [Quarto](https://quarto.org/) Markdown for the website content, allowing + for easy integration of code, text, and figures. - Uses [git-cliff](https://decisions.seedcase-project.org/why-changelog-with-git-cliff/) to automatically create the changelog. - Automates Git tagging and GitHub releases with [Cocogitto](https://decisions.seedcase-project.org/why-semantic-release-with-cocogitto/) - that are based on messages following - [Conventional Commits](https://decisions.seedcase-project.org/why-conventional-commits/). -- Uses a [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) - license for the website content. -- Uses an [MIT](https://decisions.seedcase-project.org/why-mit-license/) - license for the code. + that are based on messages following [Conventional + Commits](https://decisions.seedcase-project.org/why-conventional-commits/). +- Uses a [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) license for + the website content. +- Uses an [MIT](https://decisions.seedcase-project.org/why-mit-license/) license + for the code. - Optionally uses the - [`seedcase-theme`](https://github.com/seedcase-project/seedcase-theme) - Quarto extension for a standard appearance across websites. + [`seedcase-theme`](https://github.com/seedcase-project/seedcase-theme) Quarto + extension for a standard appearance across websites. - Uses [Netlify](https://www.netlify.com/) for hosting the website. -- Includes a [GoatCounter](https://www.goatcounter.com/) file for - website visitor tracking, which is privacy-friendly and does not use - cookies. That means it doesn't need a GDPR notice as no personal data - is collected. -- Uses [rumdl](https://rumdl.dev/) to format Markdown files so that they - are standardized and consistent across the project, as well as being - easier to read in raw form. -- Checks URLs with [Lychee](https://lychee.cli.rs) to ensure they aren't - broken or blocked. +- Includes a [GoatCounter](https://www.goatcounter.com/) file for website + visitor tracking, which is privacy-friendly and does not use cookies. That + means it doesn't need a GDPR notice as no personal data is collected. +- Uses [rumdl](https://rumdl.dev/) and [Panache](https://panache.bz/) to format + Markdown files so that they are standardized and consistent across the + project, as well as being easier to read in raw form. +- Checks URLs with [Lychee](https://lychee.cli.rs) to ensure they aren't broken + or blocked. ## Want to contribute? -We would love your feedback or contributions! Head over to our -[GitHub repository]({{< meta links.github >}}) to share your ideas or -contribute code. Your input makes us better! +We would love your feedback or contributions! Head over to our [GitHub +repository]({{< meta links.github >}}) to share your ideas or contribute code. +Your input makes us better! ### Contributors diff --git a/justfile b/justfile index 09aebb7..02dd1c9 100644 --- a/justfile +++ b/justfile @@ -49,9 +49,11 @@ check-all: check-spelling check-urls # Format Markdown files format-md: + # Use both rumdl and panache, for different purposes uvx rumdl fmt --silent - # includes option doesn't work with Jinja files, so do manually + # `includes` option doesn't work with Jinja files, so do manually uvx rumdl fmt --silent **/*.qmd.jinja **/*.md.jinja + uvx --from panache-cli panache format . --quiet # Test template creation with specific parameters: LIST test for_seedcase="true" hosting_provider="netlify": diff --git a/template/.config/cog.toml b/template/.config/cog.toml index 37117a8..2cd8a32 100644 --- a/template/.config/cog.toml +++ b/template/.config/cog.toml @@ -5,7 +5,7 @@ branch_whitelist = ["main"] pre_bump_hooks = [ # Quiet the log output of git-cliff, it is noisy. "RUST_LOG='none' uvx git-cliff --tag {{version}}", - "uvx rumdl fmt CHANGELOG.md --silent", + "uvx --from panache-cli panache format CHANGELOG.md --quiet", "uv version {{version}}", "git commit CHANGELOG.md pyproject.toml uv.lock -m 'build: 🔖 update version to {{version}} [skip ci]'", ] diff --git a/template/.config/panache.toml b/template/.config/panache.toml new file mode 100644 index 0000000..a385616 --- /dev/null +++ b/template/.config/panache.toml @@ -0,0 +1,15 @@ +flavor = "quarto" +exclude = [".git/", ".github/", "LICENSE.md", "README.md"] + +[format] +tab-width = 2 + +[linters] +r = "jarl" +python = "ruff" +rust = "clippy" + +[formatters] +r = "air" +python = "ruff" +rust = "rustfmt" diff --git a/template/.github/workflows/release.yml b/template/.github/workflows/release.yml index df58f15..209c15a 100644 --- a/template/.github/workflows/release.yml +++ b/template/.github/workflows/release.yml @@ -60,7 +60,7 @@ jobs: with: command: check - # Install uv to use git-cliff and rumdl + # Install uv to use git-cliff and panache - name: Set up uv uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 with: diff --git a/template/.pre-commit-config.yaml b/template/.pre-commit-config.yaml index fbfa793..c5e4590 100644 --- a/template/.pre-commit-config.yaml +++ b/template/.pre-commit-config.yaml @@ -10,6 +10,11 @@ repos: hooks: - id: gitleaks + - repo: https://github.com/jolars/panache-pre-commit + rev: v2.51.0 + hooks: + - id: panache-format + - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: @@ -28,11 +33,6 @@ repos: hooks: - id: typos - - repo: https://github.com/rvben/rumdl-pre-commit - rev: v0.1.94 - hooks: - - id: rumdl-fmt - - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. rev: v0.15.16 diff --git a/template/.vscode/extensions.json b/template/.vscode/extensions.json index 18ec7f6..877612b 100644 --- a/template/.vscode/extensions.json +++ b/template/.vscode/extensions.json @@ -1,7 +1,7 @@ { "recommendations": [ "eamodio.gitlens", - "github.vscode-github-actions", + "GitHub.vscode-github-actions", "redhat.vscode-yaml", "donjayamanne.githistory", "felipecaputo.git-project-manager", @@ -17,7 +17,8 @@ "pshaddel.conventional-branch", "tekumara.typos-vscode", "EditorConfig.EditorConfig", - "rvben.rumdl" + "rvben.rumdl", + "jolars.panache" ], "unwantedRecommendations": [] } diff --git a/template/.vscode/settings.json b/template/.vscode/settings.json index 50f0dc0..5db082a 100644 --- a/template/.vscode/settings.json +++ b/template/.vscode/settings.json @@ -23,8 +23,9 @@ "revert" ], "conventional-branch.format": "{Type}/{Branch}", - "[quarto][qmd]": { - "editor.formatOnSave": false + "[quarto][qmd][md]": { + "editor.formatOnSave": false, + "editor.defaultFormatter": "jolars.panache" }, "[python]": { "editor.defaultFormatter": "charliermarsh.ruff" diff --git a/template/CONTRIBUTING.md.jinja b/template/CONTRIBUTING.md.jinja index fcede07..31f7211 100644 --- a/template/CONTRIBUTING.md.jinja +++ b/template/CONTRIBUTING.md.jinja @@ -83,9 +83,10 @@ commit. configuration file for type checking Python code. - `ruff.toml`: [Ruff](https://docs.astral.sh/ruff/) configuration file for linting and formatting Python code. - - `rumdl.toml`: [rumdl](https://rumdl.dev/) configuration file for - formatting Markdown files so that they are standardized and consistent - {%- if for_seedcase %} + - `rumdl.toml` and `panache.toml`: [rumdl](https://rumdl.dev) and + [Panache](https://panache.bz) configuration file for formatting Markdown + files in the project. + {% if for_seedcase -%} - `cog.toml`: [Cocogitto](https://docs.cocogitto.io) configuration file for managing versions. - `cliff.toml`: [git-cliff](https://git-cliff.org) configuration file for diff --git a/template/justfile.jinja b/template/justfile.jinja index 2ab64a0..3dc6f37 100644 --- a/template/justfile.jinja +++ b/template/justfile.jinja @@ -75,7 +75,9 @@ format-docstrings: # Format Markdown files format-md: + # Use both rumdl and panache, for different purposes uvx rumdl fmt --silent + uvx --from panache-cli panache format . --quiet # Build the Python docstrings as a section in the website using quartodoc build-quartodoc: From d62c034ff123a714bda387d48ae10bb7b8f0c0b6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2026 18:10:00 +0000 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=E2=9C=8F=EF=B8=8F=20automatic=20p?= =?UTF-8?q?re-commit=20hook=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 349 ++++++++++++++--------------- CODE_OF_CONDUCT.md | 35 ++- CONTRIBUTING.md | 135 ++++++----- README.qmd | 33 ++- docs/guide/index.qmd | 18 +- docs/guide/installing.qmd | 53 +++-- docs/guide/next-steps.qmd | 213 +++++++++--------- docs/guide/updating.qmd | 51 +++-- docs/guide/using.qmd | 49 ++-- docs/includes/_badges.qmd | 16 +- template/CODE_OF_CONDUCT.md | 35 ++- template/README.qmd | 25 +-- template/TODO.md | 60 +++-- template/docs/includes/_badges.qmd | 28 ++- 14 files changed, 539 insertions(+), 561 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad566cc..3bf584f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,26 +1,25 @@ # Changelog -Since we follow -[Conventional Commits](https://decisions.seedcase-project.org/why-conventional-commits/) -when writing commit messages, we're able to automatically create formal -"releases" of the template based on the commit messages. Releases in the -context of template are when changes occur to the `template/` files or -to the `copier.yaml` files. The releases are also published to Zenodo -for easier discovery, archival, and citation purposes. We use +Since we follow [Conventional +Commits](https://decisions.seedcase-project.org/why-conventional-commits/) when +writing commit messages, we're able to automatically create formal "releases" of +the template based on the commit messages. Releases in the context of template +are when changes occur to the `template/` files or to the `copier.yaml` files. +The releases are also published to Zenodo for easier discovery, archival, and +citation purposes. We use [Cocogitto](https://decisions.seedcase-project.org/why-semantic-release-with-cocogitto/) to be able to automatically create these releases, which uses -[SemVar](https://semverdoc.org) as the version numbering scheme, and -[Git Cliff](https://decisions.seedcase-project.org/why-changelog-with-git-cliff/) -to generate the changelog based on the commit messages. +[SemVar](https://semverdoc.org) as the version numbering scheme, and [Git +Cliff](https://decisions.seedcase-project.org/why-changelog-with-git-cliff/) to +generate the changelog based on the commit messages. -Because releases are created based on commit messages, a new release is -created quite often---sometimes several times in a day. This also means -that any individual release will not have many changes within it. Below -is a list of the releases we've made so far, along with what was changed -within each release. +Because releases are created based on commit messages, a new release is created +quite often---sometimes several times in a day. This also means that any +individual release will not have many changes within it. Below is a list of the +releases we've made so far, along with what was changed within each release. -Commits from bots, like `dependabot` or `pre-commit-ci`, are not -included in the changelog. +Commits from bots, like `dependabot` or `pre-commit-ci`, are not included in the +changelog. ## [0.24.0](https://github.com/seedcase-project/template-python-package/compare/0.23.5..0.24.0) - 2026-07-06 @@ -37,8 +36,7 @@ included in the changelog. ### ♻️ Refactor -- Set path to `.config/ruff.toml` in `pyproject.toml`, not via - `--config` +- Set path to `.config/ruff.toml` in `pyproject.toml`, not via `--config` [#312](https://github.com/seedcase-project/template-python-package/pull/312) by [`@lwjohnst86`](https://github.com/lwjohnst86) ([3812113](https://github.com/seedcase-project/template-python-package/commit/3812113f4901cbf46fe6409a3074f7269562f7f3)) @@ -256,8 +254,8 @@ included in the changelog. ### ❤️ New contributors -- [`@joelostblom`](https://github.com/joelostblom) made their first - contribution in +- [`@joelostblom`](https://github.com/joelostblom) made their first contribution + in [#243](https://github.com/seedcase-project/template-python-package/pull/243) ## [0.17.12](https://github.com/seedcase-project/template-python-package/compare/0.17.11..0.17.12) - 2026-01-15 @@ -615,16 +613,16 @@ included in the changelog. ### ✨ Features - Add recipe `add-function` - [#2](https://github.com/seedcase-project/template-python-package/pull/2) - by [`@signekb`](https://github.com/signekb) + [#2](https://github.com/seedcase-project/template-python-package/pull/2) by + [`@signekb`](https://github.com/signekb) ([7d5b04a](https://github.com/seedcase-project/template-python-package/commit/7d5b04ac9156a175b891aa24e62f3af416c6b8c7)) - Add examples section to docstring template - [#39](https://github.com/seedcase-project/template-python-package/pull/39) - by [`@signekb`](https://github.com/signekb) + [#39](https://github.com/seedcase-project/template-python-package/pull/39) by + [`@signekb`](https://github.com/signekb) ([c4bfdd3](https://github.com/seedcase-project/template-python-package/commit/c4bfdd3562a652c6705c10c07e4e007ef5b0b21e)) - Add mypy to VS Code settings and extensions - [#93](https://github.com/seedcase-project/template-python-package/pull/93) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#93](https://github.com/seedcase-project/template-python-package/pull/93) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([ab8e235](https://github.com/seedcase-project/template-python-package/commit/ab8e2358a8ba048a9ac88f211986a754fd074daf)) - Gitleaks pre-commit to check for credentials [#100](https://github.com/seedcase-project/template-python-package/pull/100) @@ -658,42 +656,42 @@ included in the changelog. ### 🐛 Fixes - Update test snippet to given, when, then - [#29](https://github.com/seedcase-project/template-python-package/pull/29) - by [`@signekb`](https://github.com/signekb) + [#29](https://github.com/seedcase-project/template-python-package/pull/29) by + [`@signekb`](https://github.com/signekb) ([b2f8daa](https://github.com/seedcase-project/template-python-package/commit/b2f8daa439a024a8fefa1ebe4b163a6e331917a2)) - Add `test-python` to `run-all` - [#38](https://github.com/seedcase-project/template-python-package/pull/38) - by [`@signekb`](https://github.com/signekb) + [#38](https://github.com/seedcase-project/template-python-package/pull/38) by + [`@signekb`](https://github.com/signekb) ([ae625a5](https://github.com/seedcase-project/template-python-package/commit/ae625a58152f988b118bdbe811cfb93f36330774)) - Remove django debugger - [#44](https://github.com/seedcase-project/template-python-package/pull/44) - by [`@signekb`](https://github.com/signekb) + [#44](https://github.com/seedcase-project/template-python-package/pull/44) by + [`@signekb`](https://github.com/signekb) ([08423a3](https://github.com/seedcase-project/template-python-package/commit/08423a3560643c399a45f445652c5bee55c01a14)) - Remove auto-built reference docs before/after building by [`@lwjohnst86`](https://github.com/lwjohnst86) ([218e9fc](https://github.com/seedcase-project/template-python-package/commit/218e9fc5de6cfbaf3509e9adffbabca4917bd84d)) - Remove auto-built reference docs before/after building - [#47](https://github.com/seedcase-project/template-python-package/pull/47) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#47](https://github.com/seedcase-project/template-python-package/pull/47) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([07732d2](https://github.com/seedcase-project/template-python-package/commit/07732d278932778a1979e9b4fee260c27c8e57d8)) - The `check-commits` recipe wasn't correctly checking them by [`@lwjohnst86`](https://github.com/lwjohnst86) ([b30223d](https://github.com/seedcase-project/template-python-package/commit/b30223ddfad9d29b008b185f780f22884ba208ce)) - The `check-commits` recipe wasn't correctly checking them - [#48](https://github.com/seedcase-project/template-python-package/pull/48) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#48](https://github.com/seedcase-project/template-python-package/pull/48) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([2da8db9](https://github.com/seedcase-project/template-python-package/commit/2da8db9dad511594e1bae31f11c93d7193413f19)) - Install uv in publish step and only for tags - [#96](https://github.com/seedcase-project/template-python-package/pull/96) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#96](https://github.com/seedcase-project/template-python-package/pull/96) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([2833cdf](https://github.com/seedcase-project/template-python-package/commit/2833cdfec1c7fda6d82a39089bcbc28abaf1fada)) - Use the `has_released` output to run or not - [#97](https://github.com/seedcase-project/template-python-package/pull/97) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#97](https://github.com/seedcase-project/template-python-package/pull/97) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([f77769c](https://github.com/seedcase-project/template-python-package/commit/f77769cf014bff85d92d4a48a33d0ddd29a6539c)) - Only run when previous and current versions are different - [#98](https://github.com/seedcase-project/template-python-package/pull/98) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#98](https://github.com/seedcase-project/template-python-package/pull/98) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([b1632fb](https://github.com/seedcase-project/template-python-package/commit/b1632fb7007f303472c4974ce7ba0377a6cf16a5)) - Forgot to checkout before building and publishing [#106](https://github.com/seedcase-project/template-python-package/pull/106) @@ -711,8 +709,8 @@ included in the changelog. ### ♻️ Refactor - Make mypy more strict in settings - [#94](https://github.com/seedcase-project/template-python-package/pull/94) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#94](https://github.com/seedcase-project/template-python-package/pull/94) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([5274b35](https://github.com/seedcase-project/template-python-package/commit/5274b354e88340d27b08c789c41958b9718d0e20)) - Move `uv build` step into publish job [#101](https://github.com/seedcase-project/template-python-package/pull/101) @@ -746,8 +744,8 @@ included in the changelog. ### 📝 Documentation - Remove reviewer focus section - [#10](https://github.com/seedcase-project/template-python-package/pull/10) - by [`@signekb`](https://github.com/signekb) + [#10](https://github.com/seedcase-project/template-python-package/pull/10) by + [`@signekb`](https://github.com/signekb) ([ff2bf1e](https://github.com/seedcase-project/template-python-package/commit/ff2bf1ea2e78b471be54de885c5dffcb48abf6b4)) - Refer to spaid for setting things up by [`@lwjohnst86`](https://github.com/lwjohnst86) @@ -758,8 +756,7 @@ included in the changelog. - Use a generic package name, not Sprout, for index by [`@lwjohnst86`](https://github.com/lwjohnst86) ([704e6fc](https://github.com/seedcase-project/template-python-package/commit/704e6fcbb581bb2474ab4b6ea8c3f600533adf96)) -- Update license year to 2025 by - [`@lwjohnst86`](https://github.com/lwjohnst86) +- Update license year to 2025 by [`@lwjohnst86`](https://github.com/lwjohnst86) ([3c104c3](https://github.com/seedcase-project/template-python-package/commit/3c104c3bb0896851401e1c7b7afa182a93692c98)) - Update README to mostly the latest changes by [`@lwjohnst86`](https://github.com/lwjohnst86) @@ -769,8 +766,8 @@ included in the changelog. - To be consistent by [`@lwjohnst86`](https://github.com/lwjohnst86) ([9627bc7](https://github.com/seedcase-project/template-python-package/commit/9627bc71b08b749cbecf67e1e4ca8f31855e77b0)) - Instructions on installing deps after project creation - [#62](https://github.com/seedcase-project/template-python-package/pull/62) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#62](https://github.com/seedcase-project/template-python-package/pull/62) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([a7fea84](https://github.com/seedcase-project/template-python-package/commit/a7fea8424ac04fcf34fb875683cd14c3fb7734b5)) - Add website files [#115](https://github.com/seedcase-project/template-python-package/pull/115) @@ -796,8 +793,8 @@ included in the changelog. ### 💄 Styling - Ran pre-commit hooks, apply fixes - [#19](https://github.com/seedcase-project/template-python-package/pull/19) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#19](https://github.com/seedcase-project/template-python-package/pull/19) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([eff086c](https://github.com/seedcase-project/template-python-package/commit/eff086c010b64c7372bb8269421611c9cbabcaa3)) ### 👷 CI/CD @@ -806,24 +803,23 @@ included in the changelog. [`@lwjohnst86`](https://github.com/lwjohnst86) ([db5b658](https://github.com/seedcase-project/template-python-package/commit/db5b65827732e45d347cd3f51fb52cb623798f19)) - Add workflow to generate SVG from puml files - [#5](https://github.com/seedcase-project/template-python-package/pull/5) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#5](https://github.com/seedcase-project/template-python-package/pull/5) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([da81016](https://github.com/seedcase-project/template-python-package/commit/da81016b9e1c66a1d69a01d26c45e28133679ff7)) -- Deploy to Fly isn't working well, plus move out env deletion to own - file - [#7](https://github.com/seedcase-project/template-python-package/pull/7) - by [`@lwjohnst86`](https://github.com/lwjohnst86) +- Deploy to Fly isn't working well, plus move out env deletion to own file + [#7](https://github.com/seedcase-project/template-python-package/pull/7) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([dc8876b](https://github.com/seedcase-project/template-python-package/commit/dc8876b16d87d314a02e5a5615cf6db1d03dfa7b)) - Use the new workflow for building docs with Python code - [#11](https://github.com/seedcase-project/template-python-package/pull/11) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#11](https://github.com/seedcase-project/template-python-package/pull/11) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([6762972](https://github.com/seedcase-project/template-python-package/commit/6762972f58ce63eadba1b1065feeb05456d02183)) - Add pre-commit config file to be synched by [`@lwjohnst86`](https://github.com/lwjohnst86) ([726a2ba](https://github.com/seedcase-project/template-python-package/commit/726a2ba8430a4d6e886c05eb24897fa9a090da84)) - Needs to push to main, not from PRs - [#23](https://github.com/seedcase-project/template-python-package/pull/23) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#23](https://github.com/seedcase-project/template-python-package/pull/23) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([5e87d20](https://github.com/seedcase-project/template-python-package/commit/5e87d20b3a8bb59da24983d6c1cf1d872684aed7)) - Remove commented out Django workflow by [`@lwjohnst86`](https://github.com/lwjohnst86) @@ -834,8 +830,7 @@ included in the changelog. - Always run on main, but only in PRs with specific files by [`@lwjohnst86`](https://github.com/lwjohnst86) ([8fbc7f0](https://github.com/seedcase-project/template-python-package/commit/8fbc7f06f6189fe5931301436e186edb497440a7)) -- Update text of some fields by - [`@lwjohnst86`](https://github.com/lwjohnst86) +- Update text of some fields by [`@lwjohnst86`](https://github.com/lwjohnst86) ([0fb318b](https://github.com/seedcase-project/template-python-package/commit/0fb318bd6776e15b6372edff1019ea15493c943f)) - No longer need this file, not pushing to Fly by [`@lwjohnst86`](https://github.com/lwjohnst86) @@ -844,12 +839,12 @@ included in the changelog. [`@lwjohnst86`](https://github.com/lwjohnst86) ([66acef9](https://github.com/seedcase-project/template-python-package/commit/66acef9f1a48323c026c92121bc864c7f9501444)) - Minor updates to make things clearer - [#24](https://github.com/seedcase-project/template-python-package/pull/24) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#24](https://github.com/seedcase-project/template-python-package/pull/24) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([f2eec93](https://github.com/seedcase-project/template-python-package/commit/f2eec93f349123fd63b442fa5044eb6a17e29947)) - Forgot to remove this if condition - [#25](https://github.com/seedcase-project/template-python-package/pull/25) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#25](https://github.com/seedcase-project/template-python-package/pull/25) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([8b896b4](https://github.com/seedcase-project/template-python-package/commit/8b896b45d7a16c55f484dd3c20703e4178662e46)) - Increase interval for dependabot to monthly by [`@lwjohnst86`](https://github.com/lwjohnst86) @@ -857,83 +852,82 @@ included in the changelog. - Remove these unused workflows by [`@lwjohnst86`](https://github.com/lwjohnst86) ([596c400](https://github.com/seedcase-project/template-python-package/commit/596c400e60a38b132dbbe3d78988118b90f2d1cd)) -- Sync only specific workflows by - [`@lwjohnst86`](https://github.com/lwjohnst86) +- Sync only specific workflows by [`@lwjohnst86`](https://github.com/lwjohnst86) ([a3e929a](https://github.com/seedcase-project/template-python-package/commit/a3e929a24f37f065260a8f37e2b7ddbe2ef83966)) - General clean up and fixes to workflows - [#36](https://github.com/seedcase-project/template-python-package/pull/36) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#36](https://github.com/seedcase-project/template-python-package/pull/36) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([1fdc730](https://github.com/seedcase-project/template-python-package/commit/1fdc73017f9980dc24a13218d19f6671488322f7)) - Switch to use the reusable "add to board" - [#52](https://github.com/seedcase-project/template-python-package/pull/52) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#52](https://github.com/seedcase-project/template-python-package/pull/52) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([c9b491c](https://github.com/seedcase-project/template-python-package/commit/c9b491c2b87096dbacf2851612765ee680f63896)) - Lint is now part of build workflow - [#57](https://github.com/seedcase-project/template-python-package/pull/57) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#57](https://github.com/seedcase-project/template-python-package/pull/57) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([7ec888c](https://github.com/seedcase-project/template-python-package/commit/7ec888cb16bab47d958a2827544bde3f7106dd8b)) - Updated from Sprout, need permissions for workflow by [`@lwjohnst86`](https://github.com/lwjohnst86) ([e7b7c40](https://github.com/seedcase-project/template-python-package/commit/e7b7c40c3f707c1dcced4dfcf7e62895dafb32ff)) - Use GitHub App for short-lived token creation - [#63](https://github.com/seedcase-project/template-python-package/pull/63) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#63](https://github.com/seedcase-project/template-python-package/pull/63) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([555efb1](https://github.com/seedcase-project/template-python-package/commit/555efb13cdd95992552d640dd0137dc5b84a6b44)) - Update to use GitHub App for adding to board - [#67](https://github.com/seedcase-project/template-python-package/pull/67) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#67](https://github.com/seedcase-project/template-python-package/pull/67) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([69aa89d](https://github.com/seedcase-project/template-python-package/commit/69aa89d5aaec3b206a1738b6c397e656392f459f)) - Use a shorter name for workflow - [#68](https://github.com/seedcase-project/template-python-package/pull/68) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#68](https://github.com/seedcase-project/template-python-package/pull/68) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([95b31a4](https://github.com/seedcase-project/template-python-package/commit/95b31a4bde4e2becf7745d4c5d9a7964c38ceeec)) - Use GitHub App token for syncing files - [#69](https://github.com/seedcase-project/template-python-package/pull/69) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#69](https://github.com/seedcase-project/template-python-package/pull/69) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([b62d4b7](https://github.com/seedcase-project/template-python-package/commit/b62d4b78d5f9f8e6dce5154a8c0d63348e7e4f5b)) - Needs to be `GH_INSTALLATION_TOKEN` for GitHub Apps - [#70](https://github.com/seedcase-project/template-python-package/pull/70) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#70](https://github.com/seedcase-project/template-python-package/pull/70) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([fdb0a8f](https://github.com/seedcase-project/template-python-package/commit/fdb0a8fb314a8736a24a3e40293f900e59b910c0)) - Syncing workflow needs extra settings - [#71](https://github.com/seedcase-project/template-python-package/pull/71) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#71](https://github.com/seedcase-project/template-python-package/pull/71) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([6ce29b2](https://github.com/seedcase-project/template-python-package/commit/6ce29b25eb2bb220246d3266cf32801d55e53920)) - Error with team maybe? and set branch to this repo - [#72](https://github.com/seedcase-project/template-python-package/pull/72) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#72](https://github.com/seedcase-project/template-python-package/pull/72) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([c863489](https://github.com/seedcase-project/template-python-package/commit/c863489708502d31001871f1ab671977ea0c8b76)) - Add permissions for setting release of a tag - [#78](https://github.com/seedcase-project/template-python-package/pull/78) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#78](https://github.com/seedcase-project/template-python-package/pull/78) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([f71889c](https://github.com/seedcase-project/template-python-package/commit/f71889ca6bfcdb8e27d1b5c974f5bb11cb343bbc)) - Switch to using reusable workflow - [#83](https://github.com/seedcase-project/template-python-package/pull/83) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#83](https://github.com/seedcase-project/template-python-package/pull/83) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([6dcb171](https://github.com/seedcase-project/template-python-package/commit/6dcb171836abe0a02c8e2b7ffbf7d141a470a692)) - Explicitly set permissions, move to job-level - [#84](https://github.com/seedcase-project/template-python-package/pull/84) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#84](https://github.com/seedcase-project/template-python-package/pull/84) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([defe712](https://github.com/seedcase-project/template-python-package/commit/defe71278ea42b91e49f4850f9a912457eb078bb)) - Run build package and website workflows on all pushes - [#86](https://github.com/seedcase-project/template-python-package/pull/86) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#86](https://github.com/seedcase-project/template-python-package/pull/86) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([4793c79](https://github.com/seedcase-project/template-python-package/commit/4793c793924ffa91cf8c957e2cd5f9761349f505)) - Add security scanning workflows - [#85](https://github.com/seedcase-project/template-python-package/pull/85) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#85](https://github.com/seedcase-project/template-python-package/pull/85) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([9f6d92d](https://github.com/seedcase-project/template-python-package/commit/9f6d92d2666da0dfb11009bc1224f8d1e1fc1a8a)) - Use `GH_TOKEN` to use `gh` cli - [#90](https://github.com/seedcase-project/template-python-package/pull/90) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#90](https://github.com/seedcase-project/template-python-package/pull/90) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([a272738](https://github.com/seedcase-project/template-python-package/commit/a27273883e92a39d6c287706a056fb5329e06d83)) - Publishing and building need to be split - [#91](https://github.com/seedcase-project/template-python-package/pull/91) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#91](https://github.com/seedcase-project/template-python-package/pull/91) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([c8126ad](https://github.com/seedcase-project/template-python-package/commit/c8126ad7a015a0b39a46a5d0a05c5c615f064df5)) - Move `GITHUB_TOKEN` into `github-token` secrets - [#92](https://github.com/seedcase-project/template-python-package/pull/92) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#92](https://github.com/seedcase-project/template-python-package/pull/92) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([90043fa](https://github.com/seedcase-project/template-python-package/commit/90043fa4b8d70582a29feb9ae61e6f0eccf5756a)) - Add test workflow [#146](https://github.com/seedcase-project/template-python-package/pull/146) @@ -942,19 +936,18 @@ included in the changelog. ### 👩‍💻 Miscellaneous -- Started a template repo by - [`@lwjohnst86`](https://github.com/lwjohnst86) +- Started a template repo by [`@lwjohnst86`](https://github.com/lwjohnst86) ([2b3b8b1](https://github.com/seedcase-project/template-python-package/commit/2b3b8b1ecb365e36816a9e48d83ba5e2786e312d)) - Remove `tabSize` from VS Code settings file - [#1](https://github.com/seedcase-project/template-python-package/pull/1) - by [`@signekb`](https://github.com/signekb) + [#1](https://github.com/seedcase-project/template-python-package/pull/1) by + [`@signekb`](https://github.com/signekb) ([6f161a2](https://github.com/seedcase-project/template-python-package/commit/6f161a2bd5c7cf4112411aaa1cddcf8f06354eac)) - We don't use RStudio, so don't need these by [`@lwjohnst86`](https://github.com/lwjohnst86) ([778064f](https://github.com/seedcase-project/template-python-package/commit/778064f13e33fa054f2b04440bfc5ebc1a992738)) - Modify justfile to run Python doc in Quarto docs - [#12](https://github.com/seedcase-project/template-python-package/pull/12) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#12](https://github.com/seedcase-project/template-python-package/pull/12) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([f4b588d](https://github.com/seedcase-project/template-python-package/commit/f4b588da086fd2a02cf3d7af982d009779eff5d4)) - Ignore some auto-generated files by [`@lwjohnst86`](https://github.com/lwjohnst86) @@ -963,8 +956,8 @@ included in the changelog. [`@lwjohnst86`](https://github.com/lwjohnst86) ([ee03abf](https://github.com/seedcase-project/template-python-package/commit/ee03abfeba176f3303986dff7d4f043799b61af5)) - Config changes based on Quarto and Python website build - [#13](https://github.com/seedcase-project/template-python-package/pull/13) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#13](https://github.com/seedcase-project/template-python-package/pull/13) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([4d97e7c](https://github.com/seedcase-project/template-python-package/commit/4d97e7c547926ea70804f28f1c4de1b77af12d26)) - Add pre-commit hooks, including for commit linting by [`@lwjohnst86`](https://github.com/lwjohnst86) @@ -973,36 +966,36 @@ included in the changelog. [`@lwjohnst86`](https://github.com/lwjohnst86) ([b9d287c](https://github.com/seedcase-project/template-python-package/commit/b9d287c38f65b14fc2f5561bceeac0208446b347)) - Add commit linting via pre-commit - [#16](https://github.com/seedcase-project/template-python-package/pull/16) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#16](https://github.com/seedcase-project/template-python-package/pull/16) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([55903f3](https://github.com/seedcase-project/template-python-package/commit/55903f32be2d59628010f4546a7386aafeb060eb)) - Update config and build settings for quartodoc - [#18](https://github.com/seedcase-project/template-python-package/pull/18) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#18](https://github.com/seedcase-project/template-python-package/pull/18) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([f3b9667](https://github.com/seedcase-project/template-python-package/commit/f3b9667e4d821187bb14d720f8e03bd7f3c0bfc6)) - Add jupyter extension to recommended list - [#21](https://github.com/seedcase-project/template-python-package/pull/21) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#21](https://github.com/seedcase-project/template-python-package/pull/21) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([c619115](https://github.com/seedcase-project/template-python-package/commit/c61911516c26955d685efaa1780793c4039a82b7)) - Remove Django-specific configs - [#22](https://github.com/seedcase-project/template-python-package/pull/22) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#22](https://github.com/seedcase-project/template-python-package/pull/22) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([39cb33f](https://github.com/seedcase-project/template-python-package/commit/39cb33fb31a18d3920b636f48e938f4036a25e27)) - Use justfile as checklist in template - [#26](https://github.com/seedcase-project/template-python-package/pull/26) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#26](https://github.com/seedcase-project/template-python-package/pull/26) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([b45679b](https://github.com/seedcase-project/template-python-package/commit/b45679b7b735a3080c91478155340d75c883f0e5)) - Small revisions to synching files - [#27](https://github.com/seedcase-project/template-python-package/pull/27) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#27](https://github.com/seedcase-project/template-python-package/pull/27) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([d735574](https://github.com/seedcase-project/template-python-package/commit/d7355746e320c1c3929b2c184c5804971b82c81c)) - Update changelog on bump - [#28](https://github.com/seedcase-project/template-python-package/pull/28) - by [`@signekb`](https://github.com/signekb) + [#28](https://github.com/seedcase-project/template-python-package/pull/28) by + [`@signekb`](https://github.com/signekb) ([6bdaf60](https://github.com/seedcase-project/template-python-package/commit/6bdaf60f570c1dd2f3c792c3feb4a166d0cf0ea9)) - Removed the `reset-local` recipe - [#32](https://github.com/seedcase-project/template-python-package/pull/32) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#32](https://github.com/seedcase-project/template-python-package/pull/32) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([bdd5073](https://github.com/seedcase-project/template-python-package/commit/bdd507392858a2a060b6acaa6fe819b472742747)) - Use latest commitizen version by [`@lwjohnst86`](https://github.com/lwjohnst86) @@ -1016,91 +1009,90 @@ included in the changelog. - Set template as a `src/` layout by [`@lwjohnst86`](https://github.com/lwjohnst86) ([dbc0d1f](https://github.com/seedcase-project/template-python-package/commit/dbc0d1f20045aea46542c469e3397bd58daa7bd3)) -- Set Python to 3.12 for Ruff by - [`@lwjohnst86`](https://github.com/lwjohnst86) +- Set Python to 3.12 for Ruff by [`@lwjohnst86`](https://github.com/lwjohnst86) ([6f7fe31](https://github.com/seedcase-project/template-python-package/commit/6f7fe31b1916768af67af3d79e90c35e19de26c0)) - `cSpell` option was renamed, this matches their new option by [`@lwjohnst86`](https://github.com/lwjohnst86) ([e341cc2](https://github.com/seedcase-project/template-python-package/commit/e341cc2586a7818df8cdafa3eabcc62f99a03c3c)) - General updates to template - [#45](https://github.com/seedcase-project/template-python-package/pull/45) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#45](https://github.com/seedcase-project/template-python-package/pull/45) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([26d8165](https://github.com/seedcase-project/template-python-package/commit/26d816598b67d797b18f0234c3813060d7a1a091)) - `rm` needs `-f` so it doesn't error when there is no file - [#49](https://github.com/seedcase-project/template-python-package/pull/49) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#49](https://github.com/seedcase-project/template-python-package/pull/49) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([2af4d50](https://github.com/seedcase-project/template-python-package/commit/2af4d5070df8a376865ef89233a9401eba82365a)) - Remove leftover commented out includes - [#53](https://github.com/seedcase-project/template-python-package/pull/53) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#53](https://github.com/seedcase-project/template-python-package/pull/53) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([16477ef](https://github.com/seedcase-project/template-python-package/commit/16477ef2086952c77753033945acc797e5239cca)) - Ran pre-commit hooks so repo can be tracked by the CI - [#54](https://github.com/seedcase-project/template-python-package/pull/54) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#54](https://github.com/seedcase-project/template-python-package/pull/54) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([4097498](https://github.com/seedcase-project/template-python-package/commit/40974987c7ec0b3bbfb3d5c07b77140b17f2df55)) - Switch to using uv - [#51](https://github.com/seedcase-project/template-python-package/pull/51) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#51](https://github.com/seedcase-project/template-python-package/pull/51) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([f0c7a06](https://github.com/seedcase-project/template-python-package/commit/f0c7a068d0e0712e475e64123d31c6a077c8c264)) - Build coverage report and badge - [#56](https://github.com/seedcase-project/template-python-package/pull/56) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#56](https://github.com/seedcase-project/template-python-package/pull/56) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([eb5ecb0](https://github.com/seedcase-project/template-python-package/commit/eb5ecb006e16e571f370d1b388c75ecbb30d4108)) - Add bandit security checks to justfile - [#58](https://github.com/seedcase-project/template-python-package/pull/58) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#58](https://github.com/seedcase-project/template-python-package/pull/58) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([6c5a446](https://github.com/seedcase-project/template-python-package/commit/6c5a44698d4ed1321715cda92f3a4d2e17c65ac0)) - Move pytest options into `pytest.ini` so VS Code detects them - [#59](https://github.com/seedcase-project/template-python-package/pull/59) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#59](https://github.com/seedcase-project/template-python-package/pull/59) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([1a461d8](https://github.com/seedcase-project/template-python-package/commit/1a461d8b36238527d535610bc9c87298249bdad1)) - Remove leftover extensions, replace spell checker - [#61](https://github.com/seedcase-project/template-python-package/pull/61) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#61](https://github.com/seedcase-project/template-python-package/pull/61) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([c36296b](https://github.com/seedcase-project/template-python-package/commit/c36296b226b4720c91b19f4744cb5e28294c7017)) - Add spell checker to justfile - [#60](https://github.com/seedcase-project/template-python-package/pull/60) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#60](https://github.com/seedcase-project/template-python-package/pull/60) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([154cd85](https://github.com/seedcase-project/template-python-package/commit/154cd859bfe7918d96cf81abdf0e8e59a2f91635)) - Add some recommended extensions - [#66](https://github.com/seedcase-project/template-python-package/pull/66) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#66](https://github.com/seedcase-project/template-python-package/pull/66) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([393b47a](https://github.com/seedcase-project/template-python-package/commit/393b47a181d54378d773a0aca443bdbf2da3b50b)) - Update justfile with recipes from Sprout - [#75](https://github.com/seedcase-project/template-python-package/pull/75) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#75](https://github.com/seedcase-project/template-python-package/pull/75) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([8f28ed3](https://github.com/seedcase-project/template-python-package/commit/8f28ed31c4c63da3043eb9138b621a33d1c92b8d)) - Add allowlist to vulture recipe - [#79](https://github.com/seedcase-project/template-python-package/pull/79) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#79](https://github.com/seedcase-project/template-python-package/pull/79) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([600ffcc](https://github.com/seedcase-project/template-python-package/commit/600ffcc68e277e7a39d269ab6b5cf33014252d91)) - Simplify the PR template - [#80](https://github.com/seedcase-project/template-python-package/pull/80) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#80](https://github.com/seedcase-project/template-python-package/pull/80) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([3e09f3e](https://github.com/seedcase-project/template-python-package/commit/3e09f3eb2460b37a91bdfc0875a330502cd09d0f)) - Add a "install pre-commit" justfile recipe - [#77](https://github.com/seedcase-project/template-python-package/pull/77) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#77](https://github.com/seedcase-project/template-python-package/pull/77) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([67cc817](https://github.com/seedcase-project/template-python-package/commit/67cc817d1d999123edd0cf2e12064277ebe78652)) - Add typos as a pre-commit hook - [#76](https://github.com/seedcase-project/template-python-package/pull/76) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#76](https://github.com/seedcase-project/template-python-package/pull/76) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([439eb55](https://github.com/seedcase-project/template-python-package/commit/439eb556ce071ab7073668bad8fbc77d1fa2a342)) - Don't regenerate all of CHANGELOG each time - [#82](https://github.com/seedcase-project/template-python-package/pull/82) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#82](https://github.com/seedcase-project/template-python-package/pull/82) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([4a5e3d9](https://github.com/seedcase-project/template-python-package/commit/4a5e3d9adfa8c747385752b8d7e52dba2a80bfb3)) - Add mypy config - [#89](https://github.com/seedcase-project/template-python-package/pull/89) - by [`@martonvago`](https://github.com/martonvago) + [#89](https://github.com/seedcase-project/template-python-package/pull/89) by + [`@martonvago`](https://github.com/martonvago) ([3b56108](https://github.com/seedcase-project/template-python-package/commit/3b5610898bc38b60934e5f5165ad7092f725adbd)) - Fix spacing for snippet, use 4 spaces, not 1 - [#95](https://github.com/seedcase-project/template-python-package/pull/95) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#95](https://github.com/seedcase-project/template-python-package/pull/95) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([0fd4e66](https://github.com/seedcase-project/template-python-package/commit/0fd4e66c02338663ff684af27118d7913846baf9)) - Recommend better reviewed mypy extension - [#99](https://github.com/seedcase-project/template-python-package/pull/99) - by [`@lwjohnst86`](https://github.com/lwjohnst86) + [#99](https://github.com/seedcase-project/template-python-package/pull/99) by + [`@lwjohnst86`](https://github.com/lwjohnst86) ([76240d5](https://github.com/seedcase-project/template-python-package/commit/76240d5a6557bf453fe1e48c69de4616fb47748a)) - Update config for non-template package [#116](https://github.com/seedcase-project/template-python-package/pull/116) @@ -1134,14 +1126,13 @@ included in the changelog. ### ❤️ New contributors - `@github-actions[bot]` started making automated contributions -- [`@martonvago`](https://github.com/martonvago) made their first - contribution in +- [`@martonvago`](https://github.com/martonvago) made their first contribution + in [#134](https://github.com/seedcase-project/template-python-package/pull/134) - `@pre-commit-ci[bot]` started making automated contributions - `@dependabot[bot]` started making automated contributions -- [`@lwjohnst86`](https://github.com/lwjohnst86) made their first - contribution in - [#150](https://github.com/seedcase-project/template-python-package/pull/150) -- [`@signekb`](https://github.com/signekb) made their first contribution +- [`@lwjohnst86`](https://github.com/lwjohnst86) made their first contribution in + [#150](https://github.com/seedcase-project/template-python-package/pull/150) +- [`@signekb`](https://github.com/signekb) made their first contribution in [#44](https://github.com/seedcase-project/template-python-package/pull/44) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 6f8f13c..22171e4 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,28 +1,25 @@ # Contributor Code of Conduct -As contributors and maintainers of this project, we pledge to respect -all people who contribute through reporting issues, posting suggestions, -updating any material, submitting pull requests, and other activities. +As contributors and maintainers of this project, we pledge to respect all people +who contribute through reporting issues, posting suggestions, updating any +material, submitting pull requests, and other activities. -We are committed to making participation in this project a -harassment-free experience for everyone, regardless of level of -experience, gender, gender identity and expression, sexual orientation, -disability, personal appearance, body size, race, ethnicity, age, or -religion. +We are committed to making participation in this project a harassment-free +experience for everyone, regardless of level of experience, gender, gender +identity and expression, sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, or religion. -Examples of unacceptable behavior by participants include the use of -sexual language or imagery, derogatory comments or personal attacks, -trolling, public or private harassment, insults, or other unprofessional -conduct. +Examples of unacceptable behavior by participants include the use of sexual +language or imagery, derogatory comments or personal attacks, trolling, public +or private harassment, insults, or other unprofessional conduct. -Project maintainers have the right and responsibility to remove, edit, -or reject comments, commits, code, wiki edits, issues, and other -contributions that are not aligned to this Code of Conduct. Project -maintainers who do not follow the Code of Conduct may be removed from -the project team. +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct. Project maintainers who do not follow the +Code of Conduct may be removed from the project team. -Instances of abusive, harassing, or otherwise unacceptable behavior may -be reported by opening an issue or contacting one or more of the project +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by opening an issue or contacting one or more of the project maintainers. This Code of Conduct is adapted from the Contributor Covenant diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bbd2d66..bfe95d4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,106 +2,101 @@ ## :bug: Issues and bugs -The easiest way to contribute is to report issues or bugs that you might -find while using template-python-package. You can do this by creating a -new issue on our GitHub repository. +The easiest way to contribute is to report issues or bugs that you might find +while using template-python-package. You can do this by creating a new issue on +our GitHub repository. ## :pencil2: Adding or modifying content If you would like to contribute content, please check out our -[guidebook](https://guidebook.seedcase-project.org/) for more specific -details on how we work and develop. It is a regularly evolving document, -so is at various states of completion. +[guidebook](https://guidebook.seedcase-project.org/) for more specific details +on how we work and develop. It is a regularly evolving document, so is at +various states of completion. To contribute to `template-python-package`, you first need to install [uv](https://docs.astral.sh/uv/) and -[justfile](https://just.systems/man/en/packages.html). We use uv and -justfile to manage our project, such as to run checks and test the -template. Both the uv and justfile websites have a more detailed guide -on using uv, but below are some simple instructions to get you started. +[justfile](https://just.systems/man/en/packages.html). We use uv and justfile to +manage our project, such as to run checks and test the template. Both the uv and +justfile websites have a more detailed guide on using uv, but below are some +simple instructions to get you started. -It's easiest to first -[install uv](https://docs.astral.sh/uv/getting-started/installation/) -and then install justfile with uv. Once you've installed uv, install -justfile by running: +It's easiest to first [install +uv](https://docs.astral.sh/uv/getting-started/installation/) and then install +justfile with uv. Once you've installed uv, install justfile by running: -``` bash +```bash uv tool install rust-just ``` -We keep all our development workflows in the `justfile`, so you can -explore it to see what commands are available. To see a list of commands -available, run: +We keep all our development workflows in the `justfile`, so you can explore it +to see what commands are available. To see a list of commands available, run: -``` bash +```bash just ``` -As you contribute, make sure your changes will pass our tests by opening -a terminal so that the working directory is the root of this project +As you contribute, make sure your changes will pass our tests by opening a +terminal so that the working directory is the root of this project (`template-python-package/`) and running: -``` bash +```bash just run-all ``` -When testing the template, Copier can only use content kept in the Git -history. Meaning that if you make changes to the template and try to -test it, it won't be able to test those changes. You have to commit the -changes first in order for Copier to use them. +When testing the template, Copier can only use content kept in the Git history. +Meaning that if you make changes to the template and try to test it, it won't be +able to test those changes. You have to commit the changes first in order for +Copier to use them. -When committing changes, please try to follow -[Conventional Commits](https://decisions.seedcase-project.org/why-conventional-commits/) -as Git messages. Using this convention allows us to be able to -automatically create a release based on the commit message by using +When committing changes, please try to follow [Conventional +Commits](https://decisions.seedcase-project.org/why-conventional-commits/) as +Git messages. Using this convention allows us to be able to automatically create +a release based on the commit message by using [Cocogitto](https://decisions.seedcase-project.org/why-semantic-release-with-cocogitto/). -If you don't use Conventional Commits when making a commit, we will -revise the pull request title to follow that format, as we use squash -merges when merging pull requests, so all other commits in the pull -request will be squashed into one commit. +If you don't use Conventional Commits when making a commit, we will revise the +pull request title to follow that format, as we use squash merges when merging +pull requests, so all other commits in the pull request will be squashed into +one commit. ## :file_folder: Explanation of files and folders -This list describes the default files that are included in the template -as well as explains a bit more about them and what they are used for. - -- `.copier-answers.yml`: Contains the answers you gave when copying the - project from the template. - **You should not modify this file directly.** -- `.github/`: Contains GitHub-specific files, such as the workflow to - build the website from the Markdown files. -- `_quarto.yml`: Quarto configuration file for the website, including - settings for the website, such as the theme, navigation, and other - options. -- `.gitignore`: This ignore file tells Git which files to not track. - Unless you know what you are doing, it's best to not touch this file. -- `.pre-commit-config.yaml`: [Pre-commit](https://pre-commit.com/) - configuration file for managing and running checks before each commit. -- `.typos.toml`: [typos](https://github.com/crate-ci/typos) spell - checker configuration file. -- `CITATION.cff`: Structured citation metadata for your project when - archived on [Zenodo](https://zenodo.org/) and used by GitHub to - display the citation information on the repository page. This is used - to add the metadata to Zenodo when a GitHub release has been uploaded - to Zenodo. -- `justfile`: [`just`](https://just.systems/man/en/) configuration file - for scripting project tasks. +This list describes the default files that are included in the template as well +as explains a bit more about them and what they are used for. + +- `.copier-answers.yml`: Contains the answers you gave when copying the project + from the template. **You should not modify this file directly.** +- `.github/`: Contains GitHub-specific files, such as the workflow to build the + website from the Markdown files. +- `_quarto.yml`: Quarto configuration file for the website, including settings + for the website, such as the theme, navigation, and other options. +- `.gitignore`: This ignore file tells Git which files to not track. Unless you + know what you are doing, it's best to not touch this file. +- `.pre-commit-config.yaml`: [Pre-commit](https://pre-commit.com/) configuration + file for managing and running checks before each commit. +- `.typos.toml`: [typos](https://github.com/crate-ci/typos) spell checker + configuration file. +- `CITATION.cff`: Structured citation metadata for your project when archived on + [Zenodo](https://zenodo.org/) and used by GitHub to display the citation + information on the repository page. This is used to add the metadata to Zenodo + when a GitHub release has been uploaded to Zenodo. +- `justfile`: [`just`](https://just.systems/man/en/) configuration file for + scripting project tasks. - `.editorconfig`: Editor configuration file for - [EditorConfig](https://editorconfig.org/) to maintain consistent - coding styles across different editors and IDEs. + [EditorConfig](https://editorconfig.org/) to maintain consistent coding styles + across different editors and IDEs. - `CHANGELOG.md`: Changelog file for tracking changes in the project. - `CONTRIBUTING.md`: Guidelines for contributing to the project. -- `.github/`: Contains GitHub-specific files, such as issue and pull - request templates, workflows, +- `.github/`: Contains GitHub-specific files, such as issue and pull request + templates, workflows, [dependabot](https://docs.github.com/en/code-security/tutorials/secure-your-dependencies/dependabot-quickstart-guide) configuration, pull request templates, and a [CODEOWNERS](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) file. -- `_metadata.yml`: Quarto metadata file for the website, including - information about the project, such as the titles and GitHub names. -- `.rumdl.toml`: [rumdl](https://rumdl.dev) configuration file for - formatting Markdown files in the project. -- `cog.toml`: [Cocogitto](https://docs.cocogitto.io) configuration file - for managing versions. -- `.config/cliff.toml`: [git-cliff](https://git-cliff.org) configuration - file for creating the changelog. +- `_metadata.yml`: Quarto metadata file for the website, including information + about the project, such as the titles and GitHub names. +- `.rumdl.toml`: [rumdl](https://rumdl.dev) configuration file for formatting + Markdown files in the project. +- `cog.toml`: [Cocogitto](https://docs.cocogitto.io) configuration file for + managing versions. +- `.config/cliff.toml`: [git-cliff](https://git-cliff.org) configuration file + for creating the changelog. diff --git a/README.qmd b/README.qmd index e9bc011..d6a3355 100644 --- a/README.qmd +++ b/README.qmd @@ -10,33 +10,31 @@ metadata-files: {{< include /docs/includes/_badges.qmd >}} -This repository contains a -[Copier](https://copier.readthedocs.io/en/stable/) template for setting -up a new repository for a Python package. We made this template because -we manage and develop several Python packages in Seedcase, and this -template is designed to make it easier to create, develop, and maintain +This repository contains a [Copier](https://copier.readthedocs.io/en/stable/) +template for setting up a new repository for a Python package. We made this +template because we manage and develop several Python packages in Seedcase, and +this template is designed to make it easier to create, develop, and maintain those Python packages. -Check out our [website]({{< meta links.site >}}) for more information, -such as the features it provides and a -[guide]({{< meta links.site >}}/docs/guide) to using the template. For a -list of changes, see our [changelog](CHANGELOG.md) page. +Check out our [website]({{< meta links.site >}}) for more information, such as +the features it provides and a [guide]({{< meta links.site >}}/docs/guide) to +using the template. For a list of changes, see our [changelog](CHANGELOG.md) +page. ::: callout-tip This template repository was generated from the -[t-squared](https://github.com/seedcase-project/t-squared) Seedcase -template :tada: +[t-squared](https://github.com/seedcase-project/t-squared) Seedcase template +:tada: ::: ## Contributing -Check out our [contributing page](CONTRIBUTING.md) for information on -how to contribute to the project, including how to set up your -development environment. +Check out our [contributing page](CONTRIBUTING.md) for information on how to +contribute to the project, including how to set up your development environment. -Please note that this project is released with a -[Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in -this project you agree to abide by its terms. +Please note that this project is released with a [Contributor Code of +Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to +abide by its terms. ### Contributors @@ -52,6 +50,7 @@ If you use this project in your work, please cite it as follows: ```{python} #| output: asis + !uvx --quiet cffconvert --format apalike ``` diff --git a/docs/guide/index.qmd b/docs/guide/index.qmd index 687dd0a..5f8c770 100644 --- a/docs/guide/index.qmd +++ b/docs/guide/index.qmd @@ -1,15 +1,15 @@ --- title: "Guide" listing: - contents: . - type: grid - grid-columns: 1 - sort: "order" - fields: - - title - - description + contents: . + type: grid + grid-columns: 1 + sort: "order" + fields: + - title + - description --- -This guide gives an overview of how to use this template for creating a -new Python package. It includes instructions for using the template and +This guide gives an overview of how to use this template for creating a new +Python package. It includes instructions for using the template and post-creation tasks. diff --git a/docs/guide/installing.qmd b/docs/guide/installing.qmd index 90b5e4b..7f0342e 100644 --- a/docs/guide/installing.qmd +++ b/docs/guide/installing.qmd @@ -6,41 +6,38 @@ description: | order: 1 --- -There are a few programs that are required to use this template to -create a project: +There are a few programs that are required to use this template to create a +project: -- [uv](https://docs.astral.sh/uv/): A tool for managing Python - environments and running commands. -- [Python](https://www.python.org/): Required by Copier, the template - tool. -- [Copier](https://copier.readthedocs.io/en/stable/): A template tool - for making new projects in a standardised and structured way. -- [just](https://just.systems/man/en/): A build and development - management tool that helps with running common build and check tasks. +- [uv](https://docs.astral.sh/uv/): A tool for managing Python environments and + running commands. +- [Python](https://www.python.org/): Required by Copier, the template tool. +- [Copier](https://copier.readthedocs.io/en/stable/): A template tool for making + new projects in a standardised and structured way. +- [just](https://just.systems/man/en/): A build and development management tool + that helps with running common build and check tasks. You can use uv to install these required programs, so -[install](https://docs.astral.sh/uv/getting-started/installation/) that -first. After you've installed uv, install the other programs using: +[install](https://docs.astral.sh/uv/getting-started/installation/) that first. +After you've installed uv, install the other programs using: -```{.bash filename="Terminal"} +```bash {filename="Terminal"} uv tool install copier rust-just ``` uv will also install Python for you when you install these tools. -There are some optional, though **strongly recommended**, programs to -install and use in any project created with this template: +There are some optional, though **strongly recommended**, programs to install +and use in any project created with this template: -- [Git](https://git-scm.com/): For version control and setting up Git to - track the newly created project. -- [Lychee](https://lychee.cli.rs/guides/getting-started/): A link - checker that we include in the `justfile` for checking for broken - links in the files. -- [Quarto](https://quarto.org/): A scientific and technical publishing - system built on Pandoc. The website built with this template is - created with Quarto, and the project created from this template is - also set up to use Quarto too. -- [gh cli](https://cli.github.com/): For managing GitHub repositories - and settings from the command line. There are some post-creation steps - we've included that use gh to simplify setting up a GitHub repository - for the project. +- [Git](https://git-scm.com/): For version control and setting up Git to track + the newly created project. +- [Lychee](https://lychee.cli.rs/guides/getting-started/): A link checker that + we include in the `justfile` for checking for broken links in the files. +- [Quarto](https://quarto.org/): A scientific and technical publishing system + built on Pandoc. The website built with this template is created with Quarto, + and the project created from this template is also set up to use Quarto too. +- [gh cli](https://cli.github.com/): For managing GitHub repositories and + settings from the command line. There are some post-creation steps we've + included that use gh to simplify setting up a GitHub repository for the + project. diff --git a/docs/guide/next-steps.qmd b/docs/guide/next-steps.qmd index 2cf9211..883cee8 100644 --- a/docs/guide/next-steps.qmd +++ b/docs/guide/next-steps.qmd @@ -5,65 +5,63 @@ description: | order: 4 --- -While most of the post-applying steps are listed in the created -`TODO.md` file within the Python package, this documents some more -details for these steps. Use this guide alongside the `TODO.md` to -complete those tasks. For example, one of the first tasks is to start -having Git track the Python package with `git init`. +While most of the post-applying steps are listed in the created `TODO.md` file +within the Python package, this documents some more details for these steps. Use +this guide alongside the `TODO.md` to complete those tasks. For example, one of +the first tasks is to start having Git track the Python package with `git init`. ## Setting up pre-commit hooks -[Pre-commit hooks](https://pre-commit.com/) are scripts that run when -committing changes to a Git repository. They are incredibly useful for -enforcing coding standards and catching errors early. The `justfile` -contains a `install-precommit` recipe that sets up the pre-commit hooks -for your Python package. Run it by opening a terminal within the Python -package directory and running the following command: +[Pre-commit hooks](https://pre-commit.com/) are scripts that run when committing +changes to a Git repository. They are incredibly useful for enforcing coding +standards and catching errors early. The `justfile` contains a +`install-precommit` recipe that sets up the pre-commit hooks for your Python +package. Run it by opening a terminal within the Python package directory and +running the following command: -```{.bash filename="Terminal"} +```bash {filename="Terminal"} just install-precommit ``` -This sets up the pre-commit hooks to run standard checks on your -repository whenever you commit files to the history. Using pre-commit -hooks as part of your workflow is even better if you connect the -continuous integration service to your repository. Go to the -[pre-commit.ci](https://pre-commit.ci/) website and follow the -instructions there to connect your repository to the service. This will -run the pre-commit hooks on every commit you push to the repository, -including pull requests, which will ensure that the code is checked for -basic issues. It will also keep the pre-commit hooks updated by creating -a pull request whenever newer versions of the hooks are available. +This sets up the pre-commit hooks to run standard checks on your repository +whenever you commit files to the history. Using pre-commit hooks as part of your +workflow is even better if you connect the continuous integration service to +your repository. Go to the [pre-commit.ci](https://pre-commit.ci/) website and +follow the instructions there to connect your repository to the service. This +will run the pre-commit hooks on every commit you push to the repository, +including pull requests, which will ensure that the code is checked for basic +issues. It will also keep the pre-commit hooks updated by creating a pull +request whenever newer versions of the hooks are available. ## Adding the Quarto theme ::: callout-warning -This step is only necessary if you are using this template for a -repository that is part of the Seedcase Project. If you are using this -template for a different project, you can skip this step. If you have -your own Quarto theme that you want to use, you can use this step as a -general guide on how to add a Quarto theme to your Python package. +This step is only necessary if you are using this template for a repository that +is part of the Seedcase Project. If you are using this template for a different +project, you can skip this step. If you have your own Quarto theme that you want +to use, you can use this step as a general guide on how to add a Quarto theme to +your Python package. ::: -For Seedcase Project repositories, we have a custom Quarto extension -that has our theme called `seedcase-theme`. The `justfile` has a recipe -called `update-quarto-theme` that adds this theme to the Python package. -Run it by opening a terminal within the Python package directory and -running the following command: +For Seedcase Project repositories, we have a custom Quarto extension that has +our theme called `seedcase-theme`. The `justfile` has a recipe called +`update-quarto-theme` that adds this theme to the Python package. Run it by +opening a terminal within the Python package directory and running the following +command: -```{.bash filename="Terminal"} +```bash {filename="Terminal"} just update-quarto-theme ``` -This adds the `seedcase-theme` Quarto theme to the website, which -provides a consistent look and feel across all Seedcase Project -websites. It's called `update-quarto-theme` here since you can use this -command to keep the theme updated. +This adds the `seedcase-theme` Quarto theme to the website, which provides a +consistent look and feel across all Seedcase Project websites. It's called +`update-quarto-theme` here since you can use this command to keep the theme +updated. -Then to use the theme, you need to update the `_quarto.yml` file by -adding the following lines to the `project` and `format` sections: +Then to use the theme, you need to update the `_quarto.yml` file by adding the +following lines to the `project` and `format` sections: -``` yaml +```yaml project: type: seedcase-theme @@ -75,109 +73,102 @@ format: seedcase-theme-html ## Setting up a GitHub repository ::: callout-warning -These series of steps are only necessary if you are using this template -for a repository that is part of the Seedcase Project. If you want a -quick way of putting your Python package on GitHub, you can use the `gh` -command line tool to upload the Python package to GitHub: +These series of steps are only necessary if you are using this template for a +repository that is part of the Seedcase Project. If you want a quick way of +putting your Python package on GitHub, you can use the `gh` command line tool to +upload the Python package to GitHub: -```{.bash filename="Terminal"} +```bash {filename="Terminal"} gh repo create ORG/REPO --source=. --public` ``` ::: -We have a custom command line tool that we developed to help manage -GitHub repositories for Seedcase Project repositories. While it's useful -for us, it isn't designed or build in a way that makes it easy for -others to use. +We have a custom command line tool that we developed to help manage GitHub +repositories for Seedcase Project repositories. While it's useful for us, it +isn't designed or build in a way that makes it easy for others to use. -For setting up a GitHub repository for the created Python package that -will be part of the Seedcase Project, you'll need to install our -internal tool [`spaid`](https://github.com/seedcase-project/spaid) and -use the following commands to run the next setup steps: +For setting up a GitHub repository for the created Python package that will be +part of the Seedcase Project, you'll need to install our internal tool +[`spaid`](https://github.com/seedcase-project/spaid) and use the following +commands to run the next setup steps: -```{.bash filename="Terminal"} +```bash {filename="Terminal"} spaid_gh_create_repo_from_local -h spaid_gh_set_repo_settings -h spaid_gh_ruleset_basic_protect_main -h spaid_gh_ruleset_require_pr -h ``` -Some configuration is needed after copying this template to a new -repository, including configuration external to the repository. Some -GitHub workflows require installing GitHub Apps, for greater security -purposes and easier administration when managing multiple repositories. -The -[security section](https://guidebook.seedcase-project.org/operations/security#using-github-apps-to-generate-tokens) -in our [Guidebook](https://guidebook.seedcase-project.org/) provides -some instructions on how to set up GitHub Apps, secrets, and variables. -Ideally the secrets and variables should be set up in the organization -settings. The specific workflows in this template that require this -additional setup are: +Some configuration is needed after copying this template to a new repository, +including configuration external to the repository. Some GitHub workflows +require installing GitHub Apps, for greater security purposes and easier +administration when managing multiple repositories. The [security +section](https://guidebook.seedcase-project.org/operations/security#using-github-apps-to-generate-tokens) +in our [Guidebook](https://guidebook.seedcase-project.org/) provides some +instructions on how to set up GitHub Apps, secrets, and variables. Ideally the +secrets and variables should be set up in the organization settings. The +specific workflows in this template that require this additional setup are: - The workflow `.github/workflows/release.yml` requires the - [auto-release-token](https://github.com/apps/auto-release-token) - GitHub App, which is specific to the Seedcase Project, as well as a - creating a GitHub secret called `UPDATE_VERSION_TOKEN` and a variable - called `UPDATE_VERSION_APP_ID` that has the App ID. + [auto-release-token](https://github.com/apps/auto-release-token) GitHub App, + which is specific to the Seedcase Project, as well as a creating a GitHub + secret called `UPDATE_VERSION_TOKEN` and a variable called + `UPDATE_VERSION_APP_ID` that has the App ID. - The workflow `.github/workflows/add-to-project.yml` requires the - [add-to-board-token](https://github.com/apps/add-to-board-token) - GitHub App (another Seedcase app), along with the `ADD_TO_BOARD_TOKEN` - secret and the `ADD_TO_BOARD_APP_ID` variable of the GitHub App's ID. + [add-to-board-token](https://github.com/apps/add-to-board-token) GitHub App + (another Seedcase app), along with the `ADD_TO_BOARD_TOKEN` secret and the + `ADD_TO_BOARD_APP_ID` variable of the GitHub App's ID. ## Connecting to hosting services If you use this template to make a website hosted on -[Netlify](https://www.netlify.com/), you need to connect the GitHub -repository to Netlify. The Quarto documentation has an -[excellent guide](https://quarto.org/docs/publishing/netlify.html) on -how to do this. It includes configuring Netlify to host the website and -adding the +[Netlify](https://www.netlify.com/), you need to connect the GitHub repository +to Netlify. The Quarto documentation has an [excellent +guide](https://quarto.org/docs/publishing/netlify.html) on how to do this. It +includes configuring Netlify to host the website and adding the [`NETLIFY_AUTH_TOKEN`](https://quarto.org/docs/publishing/netlify.html#netlify-credentials) secret to the GitHub repository (or ideally at the organization level). -For hosting on [GitHub Pages](https://pages.github.com/), it's a bit -easier to set up than Netlify. The Quarto documentation again has a -[guide](https://quarto.org/docs/publishing/github-pages.html) on how to -do this. Before you can host on GitHub Pages, you need to use Quarto to -set things up for you, by running the following command: +For hosting on [GitHub Pages](https://pages.github.com/), it's a bit easier to +set up than Netlify. The Quarto documentation again has a +[guide](https://quarto.org/docs/publishing/github-pages.html) on how to do this. +Before you can host on GitHub Pages, you need to use Quarto to set things up for +you, by running the following command: -```{.bash filename="Terminal"} +```bash {filename="Terminal"} quarto publish github-pages ``` ## Auto-releasing to Zenodo ::: callout-warning -This step is only necessary if you are using this template for a -repository that is part of the Seedcase Project. If you are using this -template for a different project or organization, you can skip this -step. If you want to set up auto-releasing to Zenodo, you can use this -section to guide you to setting it up for your Python package. +This step is only necessary if you are using this template for a repository that +is part of the Seedcase Project. If you are using this template for a different +project or organization, you can skip this step. If you want to set up +auto-releasing to Zenodo, you can use this section to guide you to setting it up +for your Python package. ::: -If you create a release on GitHub, either manually or through a GitHub -workflow, you can have that release automatically create a record on -Zenodo, which is a service that allows you to archive projects and -create a DOI for it. - -GitHub and Zenodo have an integration that, when set up, will -automatically create a -[Zenodo record](https://help.zenodo.org/docs/deposit/about-records/) -from a -[GitHub release](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases). -This is useful if you want to create a DOI for your Python package, -which will allow you or others to cite it in their work as well as -provide more exposure for your Python package. Connecting GitHub to -Zenodo is very easy, check out Zenodo's -[guide](https://help.zenodo.org/docs/github/archive-software/github-upload/) -on it. +If you create a release on GitHub, either manually or through a GitHub workflow, +you can have that release automatically create a record on Zenodo, which is a +service that allows you to archive projects and create a DOI for it. + +GitHub and Zenodo have an integration that, when set up, will automatically +create a [Zenodo record](https://help.zenodo.org/docs/deposit/about-records/) +from a [GitHub +release](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases). +This is useful if you want to create a DOI for your Python package, which will +allow you or others to cite it in their work as well as provide more exposure +for your Python package. Connecting GitHub to Zenodo is very easy, check out +Zenodo's +[guide](https://help.zenodo.org/docs/github/archive-software/github-upload/) on +it. ## Setting up GoatCounter -If you want to use GoatCounter for website visitor tracking, you need to -create a GoatCounter account and set up a new site for your website. -Adding a new site is very easy. Go into the "Settings" after logging -into your account. Under "Sites", click "Add new site" and fill in the -form with your website's unique name. You can use the auto-filled name -in the `includes/site-counter.html` file, which has the format of -"orgname-reponame" or modify your own. +If you want to use GoatCounter for website visitor tracking, you need to create +a GoatCounter account and set up a new site for your website. Adding a new site +is very easy. Go into the "Settings" after logging into your account. Under +"Sites", click "Add new site" and fill in the form with your website's unique +name. You can use the auto-filled name in the `includes/site-counter.html` file, +which has the format of "orgname-reponame" or modify your own. diff --git a/docs/guide/updating.qmd b/docs/guide/updating.qmd index 95023d2..6875879 100644 --- a/docs/guide/updating.qmd +++ b/docs/guide/updating.qmd @@ -6,39 +6,38 @@ description: | order: 3 --- -One of the biggest strengths of Copier is that it allows you to easily -update your Python package with any changes that have been made to the -template since you first copied it. There are two ways to update (or -sync) an existing Python package with the latest changes from the -template: `update` and `recopy`. +One of the biggest strengths of Copier is that it allows you to easily update +your Python package with any changes that have been made to the template since +you first copied it. There are two ways to update (or sync) an existing Python +package with the latest changes from the template: `update` and `recopy`. - Use `update` to apply template updates to your Python package without - overwriting local changes. `update` will compare the version of the - template you used when you first copied the template with the current - version of the template, and then apply the changes that are - different. This also means it won't overwrite any changes you made to - files in your current Python package, for example, if you deleted a - file that was in the template, it won't be copied back. + overwriting local changes. `update` will compare the version of the template + you used when you first copied the template with the current version of the + template, and then apply the changes that are different. This also means it + won't overwrite any changes you made to files in your current Python package, + for example, if you deleted a file that was in the template, it won't be + copied back. -- Use `recopy` if you want to reapply the template from scratch, which - will overwrite any changes you made to the files that were copied from - the template. This is useful if you want to reset the Python package - to the state of the template. For example, if you deleted a file but - want it back from the template or are simply curious to see if there - are any new changes that you might want to use. +- Use `recopy` if you want to reapply the template from scratch, which will + overwrite any changes you made to the files that were copied from the + template. This is useful if you want to reset the Python package to the state + of the template. For example, if you deleted a file but want it back from the + template or are simply curious to see if there are any new changes that you + might want to use. -In both cases, the commands are very similar and also use many of the -same options as the `copy` command. If you want to use the same answers -as given when you first copied the template, you can use the -`--defaults` option. Then it will only prompt you for the questions that -have changed since the last time you copied the template. +In both cases, the commands are very similar and also use many of the same +options as the `copy` command. If you want to use the same answers as given when +you first copied the template, you can use the `--defaults` option. Then it will +only prompt you for the questions that have changed since the last time you +copied the template. -```{.bash filename="Terminal"} +```bash {filename="Terminal"} uvx copier update --defaults # Or uvx copier recopy --defaults ``` -As with the `copy` command, the Python package needs to be tracked by -Git and must be in a clean state (no changes) for the `update` and -`recopy` commands to work. +As with the `copy` command, the Python package needs to be tracked by Git and +must be in a clean state (no changes) for the `update` and `recopy` commands to +work. diff --git a/docs/guide/using.qmd b/docs/guide/using.qmd index 7adf9a4..636bf2c 100644 --- a/docs/guide/using.qmd +++ b/docs/guide/using.qmd @@ -6,46 +6,45 @@ description: | order: 2 --- -This guide walks through how to use this template to create a new Python -package or apply it to an existing Python package. +This guide walks through how to use this template to create a new Python package +or apply it to an existing Python package. ## Creating a new Python package -You can use this template to create a new Python package with a standard -set of files and folders, as well as all the features and configurations -to make it easier to build your Python package smoothly and effectively. -First, open a terminal and run the following command: +You can use this template to create a new Python package with a standard set of +files and folders, as well as all the features and configurations to make it +easier to build your Python package smoothly and effectively. First, open a +terminal and run the following command: -```{.bash filename="Terminal"} +```bash {filename="Terminal"} uvx copier copy gh:seedcase-project/template-python-package path/to/package/package-name ``` The `copy` command uses the template on GitHub (`gh:`) at the -`seedcase-project/template-python-package` location. The `path/to/` is -the location where you'd like the new Python package to be created and -`package-name` is the name you want to give for the new package's -directory and (ideally) the GitHub repository for the package. The name -should be something short and meaningful, ideally lowercase, with `-` -instead of spaces, and no special characters. +`seedcase-project/template-python-package` location. The `path/to/` is the +location where you'd like the new Python package to be created and +`package-name` is the name you want to give for the new package's directory and +(ideally) the GitHub repository for the package. The name should be something +short and meaningful, ideally lowercase, with `-` instead of spaces, and no +special characters. ## Applying to an existing Python package -If you want to use this template on an existing Python package, you can -use the `copy` command of `copier` just like above to apply the template -to the existing package. This will add all the template's files and -configurations to the existing package. +If you want to use this template on an existing Python package, you can use the +`copy` command of `copier` just like above to apply the template to the existing +package. This will add all the template's files and configurations to the +existing package. -```{.bash filename="Terminal"} +```bash {filename="Terminal"} uvx copier copy gh:seedcase-project/template-python-package path/to/existing-package ``` -See the comment above in the "Creating a new Python package" section -about the naming of the existing package directory. It will go through a -series of prompts, as in the case of creating a new Python package, -including asking if you want to overwrite existing files. +See the comment above in the "Creating a new Python package" section about the +naming of the existing package directory. It will go through a series of +prompts, as in the case of creating a new Python package, including asking if +you want to overwrite existing files. ::: callout-note -To use the `copy` command, the existing package needs to be tracked by -Git and in a clean state (no changes have been made in the working -directory). +To use the `copy` command, the existing package needs to be tracked by Git and +in a clean state (no changes have been made in the working directory). ::: diff --git a/docs/includes/_badges.qmd b/docs/includes/_badges.qmd index adf241a..bd3eb52 100644 --- a/docs/includes/_badges.qmd +++ b/docs/includes/_badges.qmd @@ -1,10 +1,16 @@ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17018496.svg)](https://doi.org/10.5281/zenodo.17018496) [![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-teal.json?raw=true.svg)](https://github.com/copier-org/copier) -[![GitHub License](https://img.shields.io/github/license/{{< meta gh.org >}}/{{< meta gh.repo >}}.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/blob/main/LICENSE.md) -[![GitHub Release](https://img.shields.io/github/v/release/{{< meta gh.org >}}/{{< meta gh.repo >}}.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/releases/latest) +[![GitHub +License](https://img.shields.io/github/license/{{< meta gh.org >}}/{{< meta gh.repo >}}.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/blob/main/LICENSE.md) +[![GitHub +Release](https://img.shields.io/github/v/release/{{< meta gh.org >}}/{{< meta gh.repo >}}.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/releases/latest) [![Checks](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/checks.yml/badge.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/checks.yml) -[![Build website](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml/badge.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml) +[![Build +website](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml/badge.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml) [![CodeQL](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/github-code-scanning/codeql/badge.svg?branch=main)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/github-code-scanning/codeql) -[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main.svg)](https://results.pre-commit.ci/latest/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main) +[![pre-commit.ci +status](https://results.pre-commit.ci/badge/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main.svg)](https://results.pre-commit.ci/latest/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main) [![lifecycle](https://lifecycle.r-lib.org/articles/figures/lifecycle-experimental.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) -[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) +[![Project Status: Active -- The project has reached a stable, usable state and +is being actively +developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) diff --git a/template/CODE_OF_CONDUCT.md b/template/CODE_OF_CONDUCT.md index 6f8f13c..22171e4 100644 --- a/template/CODE_OF_CONDUCT.md +++ b/template/CODE_OF_CONDUCT.md @@ -1,28 +1,25 @@ # Contributor Code of Conduct -As contributors and maintainers of this project, we pledge to respect -all people who contribute through reporting issues, posting suggestions, -updating any material, submitting pull requests, and other activities. +As contributors and maintainers of this project, we pledge to respect all people +who contribute through reporting issues, posting suggestions, updating any +material, submitting pull requests, and other activities. -We are committed to making participation in this project a -harassment-free experience for everyone, regardless of level of -experience, gender, gender identity and expression, sexual orientation, -disability, personal appearance, body size, race, ethnicity, age, or -religion. +We are committed to making participation in this project a harassment-free +experience for everyone, regardless of level of experience, gender, gender +identity and expression, sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, or religion. -Examples of unacceptable behavior by participants include the use of -sexual language or imagery, derogatory comments or personal attacks, -trolling, public or private harassment, insults, or other unprofessional -conduct. +Examples of unacceptable behavior by participants include the use of sexual +language or imagery, derogatory comments or personal attacks, trolling, public +or private harassment, insults, or other unprofessional conduct. -Project maintainers have the right and responsibility to remove, edit, -or reject comments, commits, code, wiki edits, issues, and other -contributions that are not aligned to this Code of Conduct. Project -maintainers who do not follow the Code of Conduct may be removed from -the project team. +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct. Project maintainers who do not follow the +Code of Conduct may be removed from the project team. -Instances of abusive, harassing, or otherwise unacceptable behavior may -be reported by opening an issue or contacting one or more of the project +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by opening an issue or contacting one or more of the project maintainers. This Code of Conduct is adapted from the Contributor Covenant diff --git a/template/README.qmd b/template/README.qmd index 35ff771..f91391d 100644 --- a/template/README.qmd +++ b/template/README.qmd @@ -12,26 +12,24 @@ metadata-files: -Check out our [website]({{< meta links.site >}}) for more information, -such as the features it provides and a -[guide]({{< meta links.site >}}/docs/guide) to using the package. For a -list of changes, see our [changelog](CHANGELOG.md). +Check out our [website]({{< meta links.site >}}) for more information, such as +the features it provides and a [guide]({{< meta links.site >}}/docs/guide) to +using the package. For a list of changes, see our [changelog](CHANGELOG.md). ::: callout-tip -This Python package was generated from the -[Template Python Package](https://github.com/seedcase-project/template-python-package) -Seedcase template :tada: +This Python package was generated from the [Template Python +Package](https://github.com/seedcase-project/template-python-package) Seedcase +template :tada: ::: ## Contributing -Check out our [contributing document](CONTRIBUTING.md) for information -on how to contribute to the project, including how to set up your -development environment. +Check out our [contributing document](CONTRIBUTING.md) for information on how to +contribute to the project, including how to set up your development environment. -Please note that this project is released with a -[Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in -this project you agree to abide by its terms. +Please note that this project is released with a [Contributor Code of +Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to +abide by its terms. ::: content-hidden ### Contributors @@ -53,6 +51,7 @@ If you use this package in your work, please cite it as follows: ```{python} #| output: asis + !uvx --quiet cffconvert --format apalike ``` diff --git a/template/TODO.md b/template/TODO.md index ec672b0..c74d04d 100644 --- a/template/TODO.md +++ b/template/TODO.md @@ -1,42 +1,40 @@ -- Review the - [template guide](https://t-squared.seedcase-project.org/docs/guide/) - for more information on how to use the template and the next steps - after copying the project. +- Review the [template + guide](https://t-squared.seedcase-project.org/docs/guide/) for more + information on how to use the template and the next steps after copying the + project. - Run `git init -b main` to create the project as a Git repository. - Install these packages `uv add --dev pytest genbadge jupyter pytest-cov quartodoc quarto types-tabulate mypy` - Run `just list-todos` and complete all the TODO items. - Run `just install-precommit` to install the pre-commit hooks. -- Run `just build-readme` to build the Markdown version of the README. - {%- if for_seedcase -%} +- Run `just build-readme` to build the Markdown version of the README. {%- if + for_seedcase -%} - Run `just update-quarto-theme` to add the Seedcase Quarto extension. -- Install the [`spaid`](https://github.com/seedcase-project/spaid) CLI - tool and run these setup steps: - - `spaid_gh_create_repo_from_local -h` to create a GitHub repository - from the local repository. +- Install the [`spaid`](https://github.com/seedcase-project/spaid) CLI tool and + run these setup steps: + - `spaid_gh_create_repo_from_local -h` to create a GitHub repository from the + local repository. - `spaid_gh_set_repo_settings -h` to set the repository settings. - `spaid_gh_ruleset_basic_protect_main -h` to protect the main branch. - - `spaid_gh_ruleset_require_pr -h` to require pull requests for - changes to the main branch. + - `spaid_gh_ruleset_require_pr -h` to require pull requests for changes to the + main branch. - Install or add the [auto-release-token](https://github.com/apps/auto-release-token) and - [add-to-board-token](https://github.com/apps/add-to-board-token) - GitHub Apps - - Create an `UPDATE_VERSION_TOKEN` and `ADD_TO_BOARD_TOKEN` secret for - the GitHub Apps if you haven't already and connect them to the - repository. - - Create an `UPDATE_VERSION_APP_ID` and `ADD_TO_BOARD_APP_ID` variable - of the GitHub Apps' IDs if you haven't already and connect them to - the repository. {%- else -%} -- Install the [gh CLI](https://cli.github.com/) to create the GitHub - repository from the command line by using - `gh repo create {{ github_repo_spec }} --source=. --public`. {%- endif - %} {% if hosting_provider == "netlify" %} -- Connect the repository to Netlify and turn off the builds on Netlify, - since you will be using GitHub Actions to build and deploy the - website. {%- elif hosting_provider == "gh-pages" -%} -- Run `quarto publish gh-pages` to setup and start publishing the - website to GitHub Pages. {%- endif %} + [add-to-board-token](https://github.com/apps/add-to-board-token) GitHub Apps + - Create an `UPDATE_VERSION_TOKEN` and `ADD_TO_BOARD_TOKEN` secret for the + GitHub Apps if you haven't already and connect them to the repository. + - Create an `UPDATE_VERSION_APP_ID` and `ADD_TO_BOARD_APP_ID` variable of the + GitHub Apps' IDs if you haven't already and connect them to the repository. + {%- else -%} +- Install the [gh CLI](https://cli.github.com/) to create the GitHub repository + from the command line by using + `gh repo create {{ github_repo_spec }} --source=. --public`. {%- endif %} {% + if hosting_provider == "netlify" %} +- Connect the repository to Netlify and turn off the builds on Netlify, since + you will be using GitHub Actions to build and deploy the website. {%- elif + hosting_provider == "gh-pages" -%} +- Run `quarto publish gh-pages` to setup and start publishing the website to + GitHub Pages. {%- endif %} - If relevant, connect [GoatCounter](https://www.goatcounter.com/). -- If relevant, connect [pre-commit.ci](https://pre-commit.ci/) to the - repository and enable the pre-commit hooks. +- If relevant, connect [pre-commit.ci](https://pre-commit.ci/) to the repository + and enable the pre-commit hooks. diff --git a/template/docs/includes/_badges.qmd b/template/docs/includes/_badges.qmd index 9ea523a..8fabee3 100644 --- a/template/docs/includes/_badges.qmd +++ b/template/docs/includes/_badges.qmd @@ -1,15 +1,25 @@ [![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-teal.json?raw=true.svg)](https://github.com/copier-org/copier) -[![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2F{{< meta gh.org >}}%2F{{< meta gh.repo >}}%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/blob/main/pyproject.toml) -[![GitHub License](https://img.shields.io/github/license/{{< meta gh.org >}}/{{< meta gh.repo >}}.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/blob/main/LICENSE.md) -[![GitHub Release](https://img.shields.io/github/v/release/{{< meta gh.org >}}/{{< meta gh.repo >}}.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/releases/latest) -[![Build documentation](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml/badge.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml) -[![Check package](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/check-package.yml/badge.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/check-package.yml) -[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/badge?raw=true.svg)](https://scorecard.dev/viewer/?uri=github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}) +[![Python Version from PEP 621 +TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2F{{< meta gh.org >}}%2F{{< meta gh.repo >}}%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/blob/main/pyproject.toml) +[![GitHub +License](https://img.shields.io/github/license/{{< meta gh.org >}}/{{< meta gh.repo >}}.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/blob/main/LICENSE.md) +[![GitHub +Release](https://img.shields.io/github/v/release/{{< meta gh.org >}}/{{< meta gh.repo >}}.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/releases/latest) +[![Build +documentation](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml/badge.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml) +[![Check +package](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/check-package.yml/badge.svg)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/check-package.yml) +[![OpenSSF +Scorecard](https://api.scorecard.dev/projects/github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/badge?raw=true.svg)](https://scorecard.dev/viewer/?uri=github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}) [![CodeQL](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/github-code-scanning/codeql/badge.svg?branch=main)](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/github-code-scanning/codeql) -[![code coverage](https://raw.githubusercontent.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/coverage/coverage.svg?raw=true)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/coverage/index.html) -[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main.svg)](https://results.pre-commit.ci/latest/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main) +[![code +coverage](https://raw.githubusercontent.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/coverage/coverage.svg?raw=true)](https://htmlpreview.github.io/?https://raw.githubusercontent.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/coverage/index.html) +[![pre-commit.ci +status](https://results.pre-commit.ci/badge/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main.svg)](https://results.pre-commit.ci/latest/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main) [![lifecycle](https://lifecycle.r-lib.org/articles/figures/lifecycle-experimental.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) -[![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip) +[![Project Status: WIP -- Initial development is in progress, but there has not +yet been a stable, usable release suitable for the +public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)