{"id":28780885,"url":"https://github.com/lyashevska/copier-python-template","last_synced_at":"2026-01-30T08:37:41.784Z","repository":{"id":246373364,"uuid":"820953558","full_name":"lyashevska/copier-python-template","owner":"lyashevska","description":"Template for Python package using the copier engine.","archived":false,"fork":false,"pushed_at":"2024-07-22T15:47:20.000Z","size":114,"stargazers_count":0,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T12:48:43.202Z","etag":null,"topics":["best-practices","copier-python","copier-template","nlesc","python-template-4all"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lyashevska.png","metadata":{"files":{"readme":"README.dev.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-27T14:04:41.000Z","updated_at":"2024-07-26T10:49:57.000Z","dependencies_parsed_at":"2024-06-27T17:08:10.122Z","dependency_job_id":"21d50fb6-c869-4cd3-a718-cb46dba5b8cf","html_url":"https://github.com/lyashevska/copier-python-template","commit_stats":null,"previous_names":["lyashevska/copier-python-template"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lyashevska/copier-python-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyashevska%2Fcopier-python-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyashevska%2Fcopier-python-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyashevska%2Fcopier-python-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyashevska%2Fcopier-python-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lyashevska","download_url":"https://codeload.github.com/lyashevska/copier-python-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyashevska%2Fcopier-python-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260415157,"owners_count":23005510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-practices","copier-python","copier-template","nlesc","python-template-4all"],"created_at":"2025-06-17T18:08:45.743Z","updated_at":"2026-01-30T08:37:41.777Z","avatar_url":"https://github.com/lyashevska.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Developer documentation\n\nIf you're looking for user documentation, go [here](README.md).\n\n## Development install\n\n### Install `cookiecutter` in user space\n\nWe recommend installing `cookiecutter` in user space as per `cookiecutter`'s instructions. This way, you don't have to\ninstall `cookiecutter` for every new project.\n\n```shell\npython -m pip install --user --upgrade cookiecutter\n```\n\n### Get your own copy of the repository\n\nBefore you can do development work on the template, you'll need to check out a local copy of the repository:\n\n```shell\ncd \u003cwhere you keep your GitHub repositories\u003e\ngit clone https://github.com/NLeSC/python-template.git\ncd python-template\n```\n\n### Create a virtual environment\n\nNext, make a virtual environment, activate it, and install the development dependencies in it. This will enable you to \nrun the tests later.\n\n```shell\n# Create a virtual environment, e.g. with\npython -m venv env\n\n# activate virtual environment\nsource env/bin/activate\n\n# make sure to have a recent version of pip and setuptools\npython -m pip install --upgrade pip setuptools\n\n# (from the project root directory)\n# install development dependencies\npython -m pip install --no-cache-dir .[dev]\n```\n\n## Running the tests\n\nRunning the tests requires an activated virtual environment with the development tools installed.\n\n```shell\n# unit tests\npytest\npytest tests/\n```\n\n## Using `cookiecutter` to generate a new package from the command line\n\nWhile making changes to the template, you'll regularly want to verify that the packages generated with the template\nstill work. Any easy way to do this is to generate new packages in a temporary directory (which will get removed\neverytime you reboot), for example like so:\n\n```shell\n# change directory to a new temporary directory\ncd $(mktemp -d --tmpdir cookiecutter-generated.XXXXXX)\n\n# run cookiecutter with the template to generate a new package\ncookiecutter \u003cpath to where your template is\u003e\n\n# when it asks you for the GitHub organization, put in your own name;\n# for the other questions, just accept the default\n\n# 'ls' should return just the one directory called 'my-python-project'\nls \n```\n\nIf your Python package was created successfully, `cookiecutter` will point you to a file\n(`my-python-project/next_steps.md`) that contains information on next steps.\n\nIn addition to the information in `my-python-project/project_setup.md`, the developer documentation\n`my-python-project/README.dev.md` contains information on a few more things to check, for example:\n\n1. generating `my-python-project`'s documentation locally\n1. running `my-python-project`'s tests locally\n1. running `my-python-project`'s linters locally\n1. verifying that the `my-python-project`'s version can be updated using `bump-my-version`\n1. making a release of `my-python-project` on https://test.pypi.org/\n\nFollow the instructions from `my-python-project/README.dev.md` and make sure that everything works.\n\n## Making a release\n\n### Preparation\n\n1. Make sure the `CHANGELOG.md` has been updated\n2. Verify that the information in `CITATION.cff` is correct.\n3. Make sure that `version` in [setup.cfg](setup.cfg) and  `version` in [CITATION.cff](CITATION.cff) have been bumped to the to-be-released version of the template\n4. Run the unit tests with `pytest tests/`\n5. Go through the steps outlined above for [generating a new package from the command line](#using-cookiecutter-to-generate-a-new-package-from-the-command-line), and verify that the generated package works as it should.\n\n### GitHub\n\n1. Make sure that the GitHub-Zenodo integration is enabled for https://github.com/NLeSC/python-template\n1. Go to https://github.com/NLeSC/python-template/releases and click `Draft a new release`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyashevska%2Fcopier-python-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flyashevska%2Fcopier-python-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyashevska%2Fcopier-python-template/lists"}