|
| 1 | + |
| 2 | + |
1 | 3 | # An opinionated template for Data Packages built with Seedcase packages |
2 | 4 |
|
| 5 | +<!-- [![DOI]()]() --> |
| 6 | + |
| 7 | +[](https://github.com/copier-org/copier) |
| 8 | +[](https://github.com/seedcase-project/template-data-package/blob/main/LICENSE.md) |
| 10 | +[](https://github.com/seedcase-project/template-data-package/releases/latest) |
| 12 | +[](https://github.com/seedcase-project/template-data-package/actions/workflows/build-package.yml) |
| 13 | +[](https://github.com/seedcase-project/template-data-package/actions/workflows/build-website.yml) |
| 15 | +[](https://github.com/seedcase-project/template-data-package/actions/workflows/github-code-scanning/codeql) |
| 16 | +[](https://results.pre-commit.ci/latest/github/seedcase-project/template-data-package/main) |
| 18 | +[](https://lifecycle.r-lib.org/articles/stages.html#experimental) |
| 19 | +[](https://www.repostatus.org/#active) |
| 22 | + |
3 | 23 | This repository contains a template for setting up a new [Data |
4 | 24 | Package](https://datapackage.org/) following the Seedcase structure. Use |
5 | 25 | this template to quickly get started with a new Data Package with all |
6 | 26 | the necessary files and configurations in place, including for |
7 | 27 | developing the Data Package. See the features section below for details |
8 | 28 | on what is included in this template. |
9 | 29 |
|
10 | | -## Using this template |
11 | | - |
12 | | -You need these programs installed in order to use this template. |
13 | | - |
14 | | -- [Git](https://git-scm.com/) |
15 | | -- [Python](https://www.python.org/) |
16 | | -- [uv](https://docs.astral.sh/uv/) |
17 | | -- [just](https://just.systems/man/en/) |
18 | | - |
19 | | -Once you have these installed, open a terminal and move into the directory |
20 | | -where you want to create the new Data Package and run the following command: |
21 | | - |
22 | | -``` bash |
23 | | -# Copy into the current directory with "." |
24 | | -uvx copier copy --trust gh:seedcase-project/template-data-package . |
25 | | -``` |
26 | | - |
27 | | -> [!CAUTION] |
28 | | -> This template runs some post-copy commands using your terminal. In order |
29 | | -> to run them, you need to use the `--trust` option. Review the |
30 | | -> [`copier.yml`](copier.yaml) file, under the `_tasks` key to see what |
31 | | -> commands will be run after copying the template, so you can know and trust |
32 | | -> what the commands are doing. Unfortunately, this template can't be used |
33 | | -> without the `--trust` option. |
34 | | -
|
35 | | -### Post-creation setup |
36 | | - |
37 | | -These steps are mainly for us in the Seedcase Project to set up the |
38 | | -repository with the settings we use, but you can follow them if you want |
39 | | -to set up your Data Package in a similar way. |
40 | | - |
41 | | -After copying the template, while in the directory of the new Data Package, |
42 | | -run the following: |
43 | | - |
44 | | -``` bash |
45 | | -just install-precommit |
46 | | -``` |
47 | | - |
48 | | -Next, install [`spaid`](https://github.com/seedcase-project/spaid) and use the |
49 | | -following commands to run the next setup steps: |
50 | | - |
51 | | -``` bash |
52 | | -spaid_gh_create_repo_from_local -h |
53 | | -spaid_gh_set_repo_settings -h |
54 | | -spaid_gh_ruleset_basic_protect_main -h |
55 | | -``` |
56 | | - |
57 | | -Some configuration is needed after copying this template to a new |
58 | | -repository, including configuration external to the repository. |
59 | | - |
60 | | -- The template file `.github/workflows/release-package.yml` requires |
61 | | - installing the |
62 | | - [auto-release-token](https://github.com/apps/auto-release-token) |
63 | | - GitHub App to be installed, as well as a GitHub secret called |
64 | | - `UPDATE_VERSION_TOKEN` and a variable called `UPDATE_VERSION_APP_ID` |
65 | | - to be set up in the repository (or organization) settings. See this |
66 | | - [guide](https://guidebook.seedcase-project.org/operations/security#using-github-apps-to-generate-tokens) |
67 | | - for more details on how to set this up. |
68 | | - |
69 | | -## Features |
70 | | - |
71 | | -- Use [uv](https://docs.astral.sh/uv/) to manage the Data Package. |
72 | | -- Use [Polars](https://www.pola.rs/) for data manipulation. |
73 | | -- Use [Seedcase Sprout](https://sprout.seedcase-project.org/) to |
74 | | - create and modify the Data Package. |
75 | | -- Licensed under the open data license TODO. This is added by default, |
76 | | - but you can delete or modify it if it isn't what you want or can |
77 | | - use. |
78 | | -- Build management with [justfile](https://just.systems/man/en/). |
79 | | -- Check typos with [typos](https://github.com/crate-ci/typos). |
80 | | -- Code formatting and linting with |
81 | | - [ruff](https://docs.astral.sh/ruff/). |
82 | | -- Pre-commit hooks with [pre-commit](https://pre-commit.com/). |
83 | | -- GitHub workflows for automatically adding Pull Requests and Issues |
84 | | - to a project board. |
85 | | -- Pull Request template for easy creation of new Pull Requests. |
86 | | -- VS Code settings for common settings for contributors using VS Code. |
87 | | -- EditorConfig for common cross-editor settings for contributors. |
88 | | -- `CITATION.cff` file for citation information. |
89 | | -- Website generation with [Quarto](https://quarto.org/). |
90 | | -- Folder and file structure that mimics a Python package to take |
91 | | - advantage of Python's packaging ecosystem. |
92 | | -- `pyproject.toml` for tracking dependencies and project metadata. |
| 30 | +Check out our |
| 31 | +[website](https://template-data-package.seedcase-project.org/) for more |
| 32 | +information, such as an how to use it |
| 33 | +[guide](https://template-data-package.seedcase-project.org/docs/guide/). |
| 34 | +For a list of changes, see our |
| 35 | +[changelog](https://template-data-package.seedcase-project.org/docs/releases/) |
| 36 | +page. |
| 37 | + |
| 38 | +## Contributing |
| 39 | + |
| 40 | +Check out our [contributing |
| 41 | +page](https://template-data-package.seedcase-project.org/CONTRIBUTING/) |
| 42 | +for information on how to contribute to the project, including how to |
| 43 | +set up your development environment. |
| 44 | + |
| 45 | +Please note that this project is released with a [Contributor Code of |
| 46 | +Conduct](https://github.com/seedcase-project/.github/blob/main/CODE_OF_CONDUCT.md). |
| 47 | +By participating in this project you agree to abide by its terms. |
| 48 | + |
| 49 | +## Licensing |
| 50 | + |
| 51 | +This project is licensed under the [MIT |
| 52 | +License](https://github.com/seedcase-project/template-data-package/blob/main/LICENSE.md). |
| 53 | + |
| 54 | +## Citing |
| 55 | + |
| 56 | +This project is part of the Seedcase Project, which is a collaborative |
| 57 | +effort to create a framework for data management and analysis in |
| 58 | +research. If you use this project in your work, please cite it as |
| 59 | +follows: |
| 60 | + |
| 61 | +Johnston L.W., Brødbæk S.K., Beicher K., Vago M. Template Data Package: |
| 62 | +An opinionated setup for making FAIR and structured data using Seedcase |
| 63 | +Python packages. URL: https://template-data-package.seedcase-project.org |
| 64 | + |
| 65 | +Or as a BibTeX entry: |
| 66 | + |
| 67 | + @misc{YourReferenceHere, |
| 68 | + author = {Johnston, Luke William and Brødbæk, Signe Kirk and Beicher, Kristiane and Vago, Marton}, |
| 69 | + title = {Template Data Package: An opinionated setup for making FAIR and structured data using Seedcase Python packages.}, |
| 70 | + url = {https://template-data-package.seedcase-project.org} |
| 71 | + } |
0 commit comments