-
Notifications
You must be signed in to change notification settings - Fork 0
docs: 📝 add website files #115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 8 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
2cbd5bf
refactor: :recycle: update non-template website to match template-dat…
martonvago cca007d
docs: :memo: apply suggestions from code review
martonvago 7177d13
chore(pre-commit): :pencil2: automatic fixes
pre-commit-ci[bot] c2a2e81
docs: :memo: add _metadata.yml
martonvago 6ba8667
Merge branch 'main' into refactor/non-template-website
martonvago ce6a928
fix: :bug: fix metadata variable
martonvago 77f7868
fix: :bug: fix goatcounter link
martonvago 22004bf
docs: :pencil2: minor fix
lwjohnst86 53f2f8d
docs: :pencil2: minor fix
lwjohnst86 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| --- | ||
| title: "You’ve entered the garden of missing pages" | ||
| --- | ||
|
|
||
| Let's get you back to greener grounds. | ||
|
|
||
| 👉 Go to [homepage](/index.qmd). | ||
|
|
||
| {fig-alt="An illustration of the number 404 surrounded by trees and mountains"} | ||
|
|
||
| ## Illustration by [Storyset](https://storyset.com/web) {.appendix} |
Empty file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| title: "Template Python Package: An opinionated setup for making Python packages" | ||
| abstract: "A template for making a Git repository that follows strongly opinionated practices for building and managing Python packages." | ||
| authors: | ||
| - family-names: Johnston | ||
| given-names: Luke William | ||
| orcid: "https://orcid.org/0000-0003-4169-2616" | ||
| affiliation: "Steno Diabetes Center Aarhus" | ||
| - family-names: Brødbæk | ||
| given-names: Signe Kirk | ||
| affiliation: "Steno Diabetes Center Aarhus" | ||
| orcid: "https://orcid.org/0009-0000-2208-7088" | ||
| - family-names: Beicher | ||
| given-names: Kristiane | ||
| affiliation: "Steno Diabetes Center Aarhus" | ||
| orcid: "https://orcid.org/0000-0001-7556-9566" | ||
| - family-names: Vago | ||
| given-names: Marton | ||
| affiliation: "Steno Diabetes Center Aarhus" | ||
| cff-version: 1.2.0 | ||
| # doi: | ||
martonvago marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| # date: | ||
| keywords: | ||
| - "copier template" | ||
| - "template" | ||
| - "template repository" | ||
| - "template project" | ||
| - "template python package" | ||
| license: MIT | ||
| message: "If you use this software, please cite it using these metadata." | ||
| repository-code: "https://github.com/seedcase-project/template-python-package" | ||
| url: "https://template-python-package.seedcase-project.org" | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| # Contributing | ||
|
|
||
| ## Issues and bugs :bug: | ||
|
|
||
| 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](https://github.com/seedcase-project/template-python-package/issues/new/choose) | ||
| issue on our GitHub repository. | ||
|
|
||
| ## Adding or modifying content :pencil2: | ||
|
|
||
| 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. | ||
|
|
||
| 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. | ||
|
|
||
| It's easiest to install uv and justfile using | ||
| [pipx](https://pypa.github.io/pipx/), so install that first. Then, | ||
| install uv and justfile by running: | ||
|
|
||
| ``` bash | ||
| pipx install uv 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: | ||
|
|
||
| ``` 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 | ||
| (`template-python-package/`) and running: | ||
|
|
||
| ``` 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. | ||
martonvago marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| 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 | ||
| [Commitizen](https://decisions.seedcase-project.org/why-semantic-release-with-commitizen). | ||
| 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](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/squashing-commits/about-squash-merges) | ||
| when merging pull requests, so all other commits in the pull request | ||
| will be squashed into one commit. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| # Metadata for the website | ||
| gh: | ||
| org: "seedcase-project" | ||
| repo: "template-python-package" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,51 +1,52 @@ | ||
| project: | ||
| type: seedcase-theme | ||
| # Delete auto-generated files from `quartodoc` | ||
| post-render: rm docs/reference/*.qmd | ||
| render: | ||
| - "docs/*" | ||
| # Don't render anything in the template directory. | ||
| - "!template/" | ||
| - "docs/" | ||
| - "index.qmd" | ||
| - "404.qmd" | ||
| - "CONTRIBUTING.md" | ||
|
|
||
| website: | ||
| title: "Seedcase NAME" | ||
| site-url: "https://NAME.seedcase-project.org/" | ||
| repo-url: "https://github.com/seedcase-project/REPO" | ||
| title: "Template Python Package" | ||
| site-url: "https://template-python-package.seedcase-project.org" | ||
| repo-url: "https://github.com/seedcase-project/template-python-package" | ||
| page-navigation: true | ||
| navbar: | ||
| logo: _extensions/seedcase-project/seedcase-theme/logos/seedcase-logo.svg | ||
| logo-alt: "Seedcase Project logo: Main page" | ||
| pinned: true | ||
| title: false | ||
| logo: "_extensions/seedcase-project/seedcase-theme/logos/navbar-logo-seedcase-NAME.svg" | ||
| logo-alt: "Seedcase NAME logo: Main page" | ||
| left: | ||
| - text: "Overview" | ||
| menu: | ||
| - text: "Welcome" | ||
| href: index.qmd | ||
| - text: "Releases" | ||
| href: docs/releases.qmd | ||
| - text: "Contributing" | ||
| href: CONTRIBUTING.md | ||
| - text: "Guide" | ||
| href: docs/guide/index.qmd | ||
| - text: "Design" | ||
| href: docs/design/index.qmd | ||
| href: docs/guide.qmd | ||
| tools: | ||
| - icon: github | ||
| href: "https://github.com/seedcase-project/REPO" | ||
| href: "https://github.com/seedcase-project/template-python-package" | ||
| aria-label: "GitHub icon: Source code" | ||
| - icon: house | ||
| href: https://seedcase-project.org | ||
| aria-label: "House icon: Seedcase Project home page" | ||
| sidebar: | ||
| - id: design | ||
| pinned: true | ||
| style: "floating" | ||
| contents: | ||
| - text: "Design" | ||
| href: docs/design/index.qmd | ||
| - id: guide | ||
| contents: | ||
| - section: "Guide" | ||
| href: docs/guide/index.qmd | ||
|
|
||
| # format: | ||
| # seedcase-theme-html: | ||
| # include-before-body: | ||
| # - "includes/site-counter.html" | ||
| format: | ||
| seedcase-theme-html: | ||
| theme: | ||
| - brand | ||
| include-before-body: | ||
| - "docs/includes/site-counter.html" | ||
|
|
||
| editor: | ||
| markdown: | ||
| wrap: 72 | ||
| canonical: true | ||
|
|
||
| execute: | ||
| echo: false |
lwjohnst86 marked this conversation as resolved.
Show resolved
Hide resolved
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,177 @@ | ||
| --- | ||
| title: "Guide" | ||
| --- | ||
|
|
||
| This guide gives an overview of how to use this template for creating a | ||
| new Python package. It includes instructions for using the template and | ||
| post-creation tasks. | ||
|
|
||
| ## Installing | ||
|
|
||
| In order to use this template, you need to install a few programs: | ||
|
|
||
| - [Python](https://www.python.org/): Required by the template tool | ||
| itself (copier) and for installing and using many of the tools in | ||
| this template. | ||
| - [Git](https://git-scm.com/): For version control and setting up Git | ||
| to track the newly created package. | ||
| - [copier](https://copier.readthedocs.io/en/stable/#quick-start): A | ||
| template tool for making new projects in a standardised and | ||
| structured way. | ||
| - [uv](https://docs.astral.sh/uv/): A tool for managing Python | ||
| environments and running commands. Some post-copy steps of this | ||
| template use uv. | ||
| - [just](https://just.systems/man/en/): A build management tool that | ||
| helps with running common build and check tasks. | ||
|
|
||
| You will need to install Python and Git yourself, but the other tools | ||
| can be installed using | ||
| [`pipx`](https://pipxproject.github.io/pipx/)---which we strongly | ||
| recommend---with the following command: | ||
|
|
||
| ``` bash | ||
| pipx install copier uv rust-just | ||
| ``` | ||
|
|
||
| ## Creating a new Python package | ||
|
|
||
| You can use this template to create a new Python package with a standard | ||
| set of files and folders, as well as all the features and configurations | ||
| to make it easier to build your package more smoothly and effectively. | ||
| First, open a Terminal and move into the directory where you want to | ||
| create the new Python package. Then run the following command: | ||
|
|
||
| ``` bash | ||
| # Copy into the current directory, which is the "." | ||
| uvx copier copy --trust gh:seedcase-project/template-python-package . | ||
| ``` | ||
|
|
||
| ::: callout-caution | ||
| This template runs some post-copy commands using your terminal. In order | ||
| to run them, you need to use the `--trust` option. Review the | ||
| [`copier.yml`](https://github.com/seedcase-project/template-python-package/blob/main/copier.yaml) | ||
| file, under the `_tasks` key to see what commands will be run after | ||
| copying the template, so you can know and trust what the commands are | ||
| doing. Unfortunately, this template can't be used without the `--trust` | ||
| option. | ||
| ::: | ||
|
|
||
| ## Applying the template to an existing Python package | ||
|
|
||
| If you want to use this template on an existing Python package, you can | ||
| use the `copy` command of `copier` just like above to apply the template | ||
| to the existing package. This will add all the template's files and | ||
| configurations to the existing package. | ||
|
|
||
| ``` bash | ||
| uvx copier copy --trust gh:seedcase-project/template-python-package . | ||
| ``` | ||
|
|
||
| It will go through a series of prompts, as in the case of creating a new | ||
| Python package, including asking if you want to overwrite existing | ||
| files. | ||
|
|
||
| ::: callout-note | ||
| To use the `copy` command, the Python package needs to be tracked by Git | ||
| and in a clean state (no changes). | ||
| ::: | ||
|
|
||
| ## Applying the latest template changes | ||
|
|
||
| There are two ways to update an existing Python package with the latest | ||
| changes from the template: `update` and `recopy`. | ||
|
|
||
| Use `update` to apply template updates to your project 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. | ||
|
|
||
| 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. | ||
|
|
||
| ``` bash | ||
| uvx copier update --trust --defaults | ||
| # Or | ||
| uvx copier recopy --trust --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. | ||
|
|
||
| ## Post-creation setup | ||
|
|
||
| These steps are mainly for us in the Seedcase Project to set up the | ||
| repository with the settings we use, but you can follow them if you want | ||
| to set up your Python package in a similar way. They are also included | ||
| in a message after you've copied the template. | ||
|
|
||
| After copying the template, while in the directory of the new Python | ||
| package, run the following: | ||
|
|
||
| ``` bash | ||
| just install-precommit | ||
| ``` | ||
|
|
||
martonvago marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| This sets up the pre-commit hooks to run standard checks on your | ||
| repository whenever you commit files to the history. | ||
|
|
||
| If you are using the template to create a Python package for the Seedcase | ||
| Project, run: | ||
|
|
||
| ``` bash | ||
| just update-quarto-theme | ||
| ``` | ||
|
|
||
| This adds the `seedcase-theme` Quarto theme to the website, which | ||
| provides a consistent look and feel across all Seedcase Project | ||
| websites, including for Python package websites. | ||
| It's called `update-quarto-theme` here since you can use this | ||
| command to keep the theme updated. | ||
|
|
||
| Next, install [`spaid`](https://github.com/seedcase-project/spaid) and | ||
| use the following commands to run the next setup steps: | ||
|
|
||
| ``` bash | ||
| spaid_gh_create_repo_from_local -h | ||
| spaid_gh_set_repo_settings -h | ||
| spaid_gh_ruleset_basic_protect_main -h | ||
| ``` | ||
|
|
||
| Some configuration is needed after copying this template to a new | ||
| repository, including configuration external to the repository. Some | ||
| GitHub workflows require installing GitHub Apps, for greater security | ||
| purposes and easier administration when managing multiple repositories. | ||
| The [security | ||
| section](https://guidebook.seedcase-project.org/operations/security#using-github-apps-to-generate-tokens) | ||
| in our [Guidebook](https://guidebook.seedcase-project.org/) provides | ||
| instructions on how to set up GitHub Apps, secrets, and variables. | ||
| Ideally the secrets and variables should be set up in the organization | ||
| settings. The specific workflows in this template that require this | ||
| additional setup are: | ||
|
|
||
| - The workflow `.github/workflows/release-package.yml` requires the | ||
| [auto-release-token](https://github.com/apps/auto-release-token) | ||
| GitHub App as well as a creating a GitHub secret called | ||
| `UPDATE_VERSION_TOKEN` and a variable called `UPDATE_VERSION_APP_ID` | ||
| that has the App ID. | ||
| - The workflow `.github/workflows/add-to-project.yml` requires the | ||
| [add-to-board-token](https://github.com/apps/add-to-board-token) | ||
| GitHub App, along with the `ADD_TO_BOARD_TOKEN` secret and the | ||
| `ADD_TO_BOARD_APP_ID` variable of the GitHub App's ID. | ||
|
|
||
| If you use Netlify, you will also need to add a `NETLIFY_AUTH_TOKEN` secret | ||
| of your Netlify Token. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| <!-- [![DOI]()]() --> | ||
| [](https://github.com/copier-org/copier) | ||
| [](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/blob/main/LICENSE.md) | ||
| [](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/releases/latest) | ||
| [](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/build-website.yml) | ||
lwjohnst86 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| [](https://github.com/{{< meta gh.org >}}/{{< meta gh.repo >}}/actions/workflows/github-code-scanning/codeql) | ||
| [](https://results.pre-commit.ci/latest/github/{{< meta gh.org >}}/{{< meta gh.repo >}}/main) | ||
| [](https://lifecycle.r-lib.org/articles/stages.html#experimental) | ||
| [](https://www.repostatus.org/#active) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| <!-- TODO: Set up GoatCounter --> | ||
lwjohnst86 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| <script data-goatcounter="https://seedcase-template-python-package.goatcounter.com/count" async | ||
| src="//gc.zgo.at/count.js"></script> | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.