This is a template repository for Python package projects.
In this README
This template repository comes with all of the boilerplate needed for:
- Robust (and free) CI with GitHub Actions:
- Dependabot configuration to keep your dependencies up-to-date.
- Great looking API documentation built using Sphinx (run
make docsto preview).
- Automatic GitHub and PyPI releases. Just follow the steps in
RELEASE_PROCESS.mdto trigger a new release.
Create a new repository from this template with the desired name of your project.
Your project name (i.e. the name of the repository) and the name of the corresponding Python package don't necessarily need to match, but you might want to check on PyPI first to see if the package name you want is already taken.
Create a Python 3.7 or newer virtual environment.
brew install miniconda
Then you can create and activate a new Python environment by running:
conda create -n my-package python=3.9 conda activate my-package
Now that you have a suitable Python environment, you're ready to personalize this repository. Just run:
pip install -r setup-requirements.txt python scripts/personalize.py
And then follow the prompts.
📝NOTE: This script will overwrite the README in your repository.
Commit and push your changes, then make sure all GitHub Actions jobs pass.
(Optional) If you plan on publishing your package to PyPI, add repository secrets for
PYPI_PASSWORD. To add these, go to "Settings" > "Secrets" > "Actions", and then click "New repository secret".
If you don't have PyPI account yet, you can create one for free. Or, if you'd like to publish your package under the AllenNLP PyPI account, just ask someone on the AllenNLP team for the credentials.
Then click on the "Admin" button, navigate to "Automation Rules" in the sidebar, click "Add Rule", and then enter the following fields:
- Description: Publish new versions from tags
- Match: Custom Match
- Custom match: v[vV]
- Version: Tag
- Action: Activate version
Then hit "Save".
After your first release, the docs will automatically be published to your-project-name.readthedocs.io.
Creating new GitHub and PyPI releases is easy. The GitHub Actions workflow that comes with this repository will handle all of that for you. All you need to do is follow the instructions in RELEASE_PROCESS.md.
Projects using this template
Here is an incomplete list of some projects that started off with this template: