From 8f40d95c8e3221eae0f297a1156913ba5e452b12 Mon Sep 17 00:00:00 2001 From: "Luke W. Johnston" Date: Tue, 7 Jul 2026 09:06:53 +0200 Subject: [PATCH 1/4] =?UTF-8?q?refactor:=20=E2=99=BB=EF=B8=8F=20minor=20up?= =?UTF-8?q?dates=20from=20t-squared,=20mostly=20formatting=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/cliff.toml | 43 +++--- .config/cog.toml | 2 +- .config/rumdl.toml | 8 +- .copier-answers.yml | 2 +- .editorconfig | 2 +- .github/workflows/build-website.yml | 2 +- CODE_OF_CONDUCT.md | 35 ++--- CONTRIBUTING.md | 138 +++++++++--------- LICENSE.md | 30 ++-- README.qmd | 33 ++--- docs/guide/index.qmd | 14 +- docs/guide/installing.qmd | 53 ++++--- docs/guide/next-steps.qmd | 4 +- docs/guide/updating.qmd | 51 ++++--- docs/includes/_badges.qmd | 16 +- template/.config/rumdl.toml | 8 +- template/.editorconfig | 2 +- .../.github/workflows/build-website.yml.jinja | 2 +- template/.vscode/settings.json | 11 +- template/404.qmd.jinja | 4 +- template/CODE_OF_CONDUCT.md | 35 ++--- template/_quarto.yml.jinja | 4 +- template/tools/get-contributors.sh | 6 +- tools/get-contributors.sh | 6 +- 24 files changed, 248 insertions(+), 263 deletions(-) diff --git a/.config/cliff.toml b/.config/cliff.toml index 8620d09..36eee9a 100644 --- a/.config/cliff.toml +++ b/.config/cliff.toml @@ -32,6 +32,7 @@ within each release. Commits from bots, like `dependabot` or `pre-commit-ci`, are not included in the changelog. + """ body = """ @@ -39,7 +40,7 @@ body = """ https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} {%- endmacro -%} -{% macro print_commit(commit) -%} +{%- macro print_commit(commit) -%} - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ {% if commit.breaking %}**breaking** {% endif %}\ {{ commit.message | upper_first }} \ @@ -51,18 +52,18 @@ body = """ {% endif %}\ {% endif %} \ ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))\ -{% endmacro -%} +{%- endmacro -%} -{% if version %}\ - {% if previous.version %}\ +{% if version %} + {% if previous.version %} ## [{{ version | trim_start_matches(pat="v") }}]\ ({{ self::remote_url() }}/compare/{{ previous.version }}..{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }} - {% else %}\ + {% else %} ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} - {% endif %}\ -{% else %}\ + {% endif %} +{% else %} ## [unreleased] -{% endif %}\ +{% endif %} {% for group, commits in commits | group_by(attribute="group") %} ### {{ group | striptags | trim | upper_first }} @@ -70,29 +71,29 @@ body = """ | filter(attribute="scope") | sort(attribute="scope") %} {{ self::print_commit(commit=commit) }} - {%- endfor %} + {% endfor %} {% for commit in commits %} - {%- if not commit.scope -%} + {% if not commit.scope %} {{ self::print_commit(commit=commit) }} - {% endif -%} - {% endfor -%} -{% endfor -%} + {% endif %} + {% endfor %} +{% endfor %} -{%- if github -%} +{% if github %} {% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} ### ❤️ New contributors -{% endif %}\ +{% endif %} {% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} {% if contributor.username is containing("[bot]") %} - `@{{ contributor.username }}` started making automated contributions\ - {% else %}\ + {% else %} - [`@{{ contributor.username }}`](https://github.com/{{ contributor.username }}) made their first contribution - {%- if contributor.pr_number %} in \ + {% if contributor.pr_number %} in \ [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }})\ - {%- endif %} - {%- endif %}\ -{%- endfor -%} -{%- endif %} + {% endif %} + {% endif %}\ +{% endfor %} +{% endif %} """ diff --git a/.config/cog.toml b/.config/cog.toml index 738b2b2..ec6313e 100644 --- a/.config/cog.toml +++ b/.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", "git commit CHANGELOG.md -m 'build: 🔖 update version to {{version}} [skip ci]'", ] post_bump_hooks = ["git push", "git push --tags"] diff --git a/.config/rumdl.toml b/.config/rumdl.toml index ba9b523..1507832 100644 --- a/.config/rumdl.toml +++ b/.config/rumdl.toml @@ -1,14 +1,14 @@ [global] -# 72 to match what we have currently been using -line_length = 72 flavor = "quarto" exclude = [ # Common directories to exclude ".github", - # This is auto-generated from the qmd version + # This is autogenerated from the `.qmd` version "**/README.md", - # This has it's own structure + # This has its own structure "**/LICENSE.md", + # `_badges.qmd` gets mangled by rumdl + "**/_badges.qmd", ] # List style: `-` diff --git a/.copier-answers.yml b/.copier-answers.yml index 9f6132f..1e506cb 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: 0.7.0 +_commit: 0.9.0 _src_path: gh:seedcase-project/t-squared for_seedcase: true github_repo: template-python-package diff --git a/.editorconfig b/.editorconfig index b7ae41f..88f8f98 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,7 +14,7 @@ max_line_length = 88 # Have a bit shorter line length for text docs [*.{txt,md,qmd}] -max_line_length = 72 +max_line_length = 80 # Python always uses 4 spaces for tabs [*.py] diff --git a/.github/workflows/build-website.yml b/.github/workflows/build-website.yml index ee718e6..65ff741 100644 --- a/.github/workflows/build-website.yml +++ b/.github/workflows/build-website.yml @@ -9,7 +9,7 @@ on: permissions: read-all jobs: - build-deploy: + build-website: runs-on: ubuntu-latest # Stop builds from running more than one at a time, to save resources and also # to limit conflicts when uploading to the hosting provider. 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..1b274a1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,106 +2,104 @@ ## :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: +[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 +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. That's because 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. -- `.editorconfig`: Editor configuration file for - [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, +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 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. +- `_quarto.yml`: Quarto configuration file for the website, including settings + for the website, such as the theme, navigation, and other options. +- `_metadata.yml`: Quarto metadata file for the website, including information + about the project, such as the titles and GitHub names. +- `.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. +- `.config/`: Contains configuration files for various tools used in the + project, such as: + - `typos.toml`: [typos](https://github.com/crate-ci/typos) spell checker + configuration file. + - `rumdl.toml` and `panache.toml`: [rumdl](https://rumdl.dev) and + [Panache](https://panache.bz) configuration file for formatting Markdown + files in the project. + - `cog.toml`: [Cocogitto](https://docs.cocogitto.io) configuration file for + managing versions. + - `cliff.toml`: [git-cliff](https://git-cliff.org) configuration file for + creating the changelog. +- `.editorconfig`: Editor configuration file for + [EditorConfig](https://editorconfig.org/) to maintain consistent coding styles + across different editors and IDEs. +- `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. +- `CHANGELOG.md`: Changelog file for tracking changes in the project. +- `CONTRIBUTING.md`: Guidelines for contributing to the project. diff --git a/LICENSE.md b/LICENSE.md index 8b30fe2..8aeb6fb 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -2,21 +2,19 @@ Copyright (c) 2023-2026 template-python-package authors -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 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..be08873 100644 --- a/docs/guide/index.qmd +++ b/docs/guide/index.qmd @@ -1,13 +1,13 @@ --- 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 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..a60d074 100644 --- a/docs/guide/next-steps.qmd +++ b/docs/guide/next-steps.qmd @@ -63,7 +63,7 @@ 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: -``` yaml +``` yaml {filename="_quarto.yml"} project: type: seedcase-theme @@ -179,5 +179,5 @@ 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 +in the `docs/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..7bb555a 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 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/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/.config/rumdl.toml b/template/.config/rumdl.toml index ba9b523..1507832 100644 --- a/template/.config/rumdl.toml +++ b/template/.config/rumdl.toml @@ -1,14 +1,14 @@ [global] -# 72 to match what we have currently been using -line_length = 72 flavor = "quarto" exclude = [ # Common directories to exclude ".github", - # This is auto-generated from the qmd version + # This is autogenerated from the `.qmd` version "**/README.md", - # This has it's own structure + # This has its own structure "**/LICENSE.md", + # `_badges.qmd` gets mangled by rumdl + "**/_badges.qmd", ] # List style: `-` diff --git a/template/.editorconfig b/template/.editorconfig index b7ae41f..88f8f98 100644 --- a/template/.editorconfig +++ b/template/.editorconfig @@ -14,7 +14,7 @@ max_line_length = 88 # Have a bit shorter line length for text docs [*.{txt,md,qmd}] -max_line_length = 72 +max_line_length = 80 # Python always uses 4 spaces for tabs [*.py] diff --git a/template/.github/workflows/build-website.yml.jinja b/template/.github/workflows/build-website.yml.jinja index b4c6c51..de4ec4b 100644 --- a/template/.github/workflows/build-website.yml.jinja +++ b/template/.github/workflows/build-website.yml.jinja @@ -11,7 +11,7 @@ permissions: read-all jobs: build-website: runs-on: ubuntu-latest - {%- if hosting_provider == 'gh-pages' %} + {% if hosting_provider == 'gh-pages' -%} with: hosting-provider: gh-pages permissions: diff --git a/template/.vscode/settings.json b/template/.vscode/settings.json index 50f0dc0..ddb8c24 100644 --- a/template/.vscode/settings.json +++ b/template/.vscode/settings.json @@ -1,13 +1,6 @@ { - "files.autoSave": "onFocusChange", - "editor.wordWrap": "off", "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.organizeImports": "always" - }, - "git.autofetch": false, "autoDocstring.customTemplatePath": ".vscode/google-notypes.mustache", - "editor.tabCompletion": "on", "editor.snippetSuggestions": "inline", "conventional-branch.type": [ "build", @@ -19,8 +12,8 @@ "style", "test", "chore", - "perf", - "revert" + "revert", + "perf" ], "conventional-branch.format": "{Type}/{Branch}", "[quarto][qmd]": { diff --git a/template/404.qmd.jinja b/template/404.qmd.jinja index dd0c07c..815a2f0 100644 --- a/template/404.qmd.jinja +++ b/template/404.qmd.jinja @@ -1,9 +1,9 @@ --- {% if for_seedcase -%} title: "You've entered the garden of missing pages" -{% else -%} +{%- else -%} title: "The page you are looking for does not exist" -{% endif -%} +{%- endif %} --- {% if for_seedcase -%} 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/_quarto.yml.jinja b/template/_quarto.yml.jinja index df217d5..3efe5a3 100644 --- a/template/_quarto.yml.jinja +++ b/template/_quarto.yml.jinja @@ -16,7 +16,7 @@ website: navbar: pinned: true title: false - {%- if for_seedcase %} + {% if for_seedcase -%} logo: "_extensions/seedcase-project/seedcase-theme/logos/{{ github_repo }}/navbar.svg" logo-alt: "{{ github_repo }} logo: Main page" {%- else %} @@ -37,7 +37,7 @@ website: - icon: github href: "https://github.com/{{ github_repo_spec }}" aria-label: "GitHub icon: Source code" - {%- if for_seedcase %} + {% if for_seedcase -%} - icon: house href: "https://seedcase-project.org" aria-label: "House icon: Main website for the Seedcase Project" diff --git a/template/tools/get-contributors.sh b/template/tools/get-contributors.sh index b7a6585..e00759d 100644 --- a/template/tools/get-contributors.sh +++ b/template/tools/get-contributors.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash # Get a list of contributors to this repository and save it to -# _contributors.qmd file (overwritten if it exists). It also: +# `_contributors.qmd` file (overwritten if it exists). It also: # -# - Formats users into Markdown links to their GitHub profiles. +# - Formats users into Markdown list with links to their GitHub profiles. # - Removes any usernames with the word "bot" in them. -# - Removes the trailing comma from the list. +# - Sorts the list alphabetically. repo_spec=${1} contributors=$(gh api \ -H "Accept: application/vnd.github+json" \ diff --git a/tools/get-contributors.sh b/tools/get-contributors.sh index b7a6585..e00759d 100644 --- a/tools/get-contributors.sh +++ b/tools/get-contributors.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash # Get a list of contributors to this repository and save it to -# _contributors.qmd file (overwritten if it exists). It also: +# `_contributors.qmd` file (overwritten if it exists). It also: # -# - Formats users into Markdown links to their GitHub profiles. +# - Formats users into Markdown list with links to their GitHub profiles. # - Removes any usernames with the word "bot" in them. -# - Removes the trailing comma from the list. +# - Sorts the list alphabetically. repo_spec=${1} contributors=$(gh api \ -H "Accept: application/vnd.github+json" \ From 0f8ba3c1735c9b02f21a9282540688c3016ce28c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 07:08:13 +0000 Subject: [PATCH 2/4] =?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 | 337 +++++++++++++++++++++++------------------------ template/TODO.md | 58 ++++---- 2 files changed, 192 insertions(+), 203 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad566cc..3d696a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,24 +3,23 @@ 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 +"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. -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/template/TODO.md b/template/TODO.md index ec672b0..26f431c 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. + [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. From 60f66b661aa79b93137b1324d1315ebb3900e5ec Mon Sep 17 00:00:00 2001 From: "Luke W. Johnston" Date: Tue, 7 Jul 2026 09:19:19 +0200 Subject: [PATCH 3/4] =?UTF-8?q?refactor:=20=E2=99=BB=EF=B8=8F=20updates=20?= =?UTF-8?q?to=20justfile=20from=20t-squared?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- justfile | 25 ++++++----- template/justfile.jinja | 99 ++++++++++++++++++++++------------------- 2 files changed, 65 insertions(+), 59 deletions(-) diff --git a/justfile b/justfile index 09aebb7..d857e16 100644 --- a/justfile +++ b/justfile @@ -4,6 +4,15 @@ # Run all build-related recipes in the justfile run-all: update-quarto-theme sync-template-files check-all format-md test-all build-all +# Run all check-related recipes +check-all: check-spelling check-urls + +# Run all test-related recipes +test-all: (test "true" "netlify") (test "false" "netlify") (test "true" "gh-pages") (test "false" "gh-pages") + +# Run all build-related recipes +build-all: build-contributors build-website build-readme + # List all TODO items in the repository list-todos: grep -R -n \ @@ -27,8 +36,8 @@ update-quarto-theme: # Update files in the template from the Copier parent folder sync-template-files: - cp CODE_OF_CONDUCT.md .pre-commit-config.yaml .typos.toml .editorconfig template/ - cp .config/rumdl.toml template/.config/ + cp CODE_OF_CONDUCT.md .config/typos.toml .editorconfig template/ + cp .config/rumdl.toml .config/panache.toml template/.config/ mkdir -p template/tools cp tools/get-contributors.sh template/tools/ cp .github/pull_request_template.md template/.github/ @@ -42,11 +51,9 @@ check-urls: lychee . \ --verbose \ --extensions md,qmd,jinja \ + --exclude "github\.com" \ --exclude-path "_badges.qmd" -# Run all check-related recipes -check-all: check-spelling check-urls - # Format Markdown files format-md: uvx rumdl fmt --silent @@ -63,9 +70,6 @@ test-manual: rm -rf _temp/manual/test-template uvx copier copy -r HEAD . _temp/manual/test-template -# Run all test-related recipes -test-all: (test "true" "netlify") (test "false" "netlify") (test "true" "gh-pages") (test "false" "gh-pages") - # Clean up any leftover and temporary build files cleanup: rm -rf _temp @@ -84,10 +88,7 @@ build-website: # Preview the website with automatic reload on changes preview-website: - quarto preview - -# Run all build-related recipes -build-all: build-contributors build-website build-readme + uvx --from quarto quarto preview # Check for and apply updates from the template update-from-template: diff --git a/template/justfile.jinja b/template/justfile.jinja index 2ab64a0..795f310 100644 --- a/template/justfile.jinja +++ b/template/justfile.jinja @@ -1,19 +1,25 @@ @_default: just --list --unsorted -@_checks: check-python check-unused check-security check-spelling check-urls check-commits - -@_tests: test-python - -@_builds: build-contributors build-website build-readme - # Run all build-related recipes in the justfile {%- if for_seedcase %} -run-all: install-deps update-quarto-theme format-python format-md _checks _tests _builds +run-all: install-deps update-quarto-theme format-all check-all test-all build-all {%- else %} -run-all: install-deps format-python _checks _tests _builds +run-all: install-deps format-all check-all test-all build-all {%- endif %} +# Run all formatters +format-all: format-python format-md format-docstrings + +# Run all checks +check-all: check-python check-unused check-security check-spelling check-urls + +# Run all tests +test-all: test-python + +# Run all builds +build-all: build-contributors build-website build-readme + # List all TODO items in the repository list-todos: grep -R -n \ @@ -25,14 +31,11 @@ list-todos: # Install the pre-commit hooks install-precommit: - # Install pre-commit hooks uvx pre-commit install - # Run pre-commit hooks on all files - uvx pre-commit run --all-files - # Update versions of pre-commit hooks uvx pre-commit autoupdate + uvx pre-commit run --all-files -{%- if for_seedcase %} +{% if for_seedcase -%} # Update the Quarto seedcase-theme extension update-quarto-theme: # Add theme if it doesn't exist, update if it does @@ -43,21 +46,6 @@ update-quarto-theme: install-deps: uv sync --all-extras --dev --upgrade -# Run the Python tests -test-python: - uv run pytest - # Make the badge from the coverage report - uv run genbadge coverage \ - -i coverage.xml \ - -o htmlcov/coverage.svg - -# Check Python code for any errors that need manual attention -check-python: - # Check formatting - uvx ruff check . - # Check types - uv run mypy --pretty . --config-file .config/mypy.ini - # Reformat Python code to match coding style and general structure format-python: uvx ruff check --fix . @@ -73,26 +61,18 @@ format-docstrings: --fix-rst-backticks false \ src/ -# Format Markdown files + # 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: - # To let Quarto know where python is. - export QUARTO_PYTHON=.venv/bin/python3 - # Delete any previously built files from quartodoc. - # -f is to not give an error if the files don't exist yet. - rm -rf docs/reference - uv run quartodoc build - -# Build the documentation website using Quarto -build-website: build-quartodoc - uv run quarto render --execute - -# Preview the documentation website with automatic reload on changes -preview-website: build-quartodoc - uv run quarto preview --execute +# Check Python code for any errors that need manual attention +check-python: + # Check formatting + uvx ruff check . + # Check types + uv run mypy --pretty . --config-file .config/mypy.ini # Run basic security checks on the package check-security: @@ -100,14 +80,14 @@ check-security: # Check for spelling errors in files check-spelling: - uvx typos + uvx typos --config .config/typos.toml -# Install lychee from https://lychee.cli.rs/guides/getting-started/ # Check that URLs work check-urls: lychee . \ --verbose \ --extensions md,qmd,py \ + --exclude "github\.com" \ --exclude-path "_badges.qmd" # Check for unused code in the package and its tests @@ -122,6 +102,27 @@ check-unused: # Create an allowlist with `vulture --make-allowlist` uvx vulture --min-confidence 100 src/ tests/ **/vulture-allowlist.py +# Run the Python tests +test-python: + uv run pytest + # Make the badge from the coverage report + uv run genbadge coverage \ + -i coverage.xml \ + -o htmlcov/coverage.svg + +# Build the Python docstrings as a section in the website using quartodoc +build-quartodoc: + # To let Quarto know where python is. + export QUARTO_PYTHON=.venv/bin/python3 + # Delete any previously built files from quartodoc. + # -f is to not give an error if the files don't exist yet. + rm -rf docs/reference + uv run quartodoc build + +# Build the documentation website using Quarto +build-website: build-quartodoc + uv run quarto render --execute + # Re-build the README file from the Quarto version build-readme: uvx --from quarto quarto render README.qmd --to gfm @@ -130,6 +131,10 @@ build-readme: build-contributors: sh ./tools/get-contributors.sh {{ github_repo_spec }} > docs/includes/_contributors.qmd +# Preview the website with automatic reload on changes +preview-website: build-quartodoc + uvx --from quarto quarto preview + # Check for and apply updates from the template update-from-template: # Do not update existing source files From 9ae082e0bf9c0b04c8c60fd0e3deb1032d6052ef Mon Sep 17 00:00:00 2001 From: "Luke W. Johnston" Date: Tue, 7 Jul 2026 09:19:44 +0200 Subject: [PATCH 4/4] =?UTF-8?q?test:=20=E2=9C=85=20update=20tests=20from?= =?UTF-8?q?=20t-squared?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test-template.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test-template.sh b/test-template.sh index 932dcdd..bfb6449 100644 --- a/test-template.sh +++ b/test-template.sh @@ -58,9 +58,7 @@ echo "Testing copy for new projects when: 'for_seedcase'='$for_seedcase', 'hosti uvx copier recopy \ -r HEAD \ --defaults \ - --overwrite \ - --skip-tasks \ - --trust && + --overwrite && # Check that copying onto an existing project works ----- echo "Testing copy in existing projects when: 'for_seedcase'='$for_seedcase', 'hosting_provider'='$hosting_provider' -----------" && rm .gitignore .copier-answers.yml &&