[INSERT A SINGLE SENTENCE DESCRIBING THE PURPOSE OF YOUR REPO / PROJ]
[INSERT YOUR BADGES HERE (SEE: https://shields.io)]
[INSERT SCREENSHOT OF YOUR SOFTWARE, IF APPLICABLE]
[INSERT MORE DETAILED DESCRIPTION OF YOUR REPOSITORY HERE]
[INSERT LIST OF IMPORTANT PROJECT / REPO LINKS HERE]
- [INSERT LIST OF FEATURES IMPORTANT TO YOUR USERS HERE]
- Python build tooling based on PEP-517 and PEP-518 standards
- Build, release and publish automation takes place automatically using GitHub Actions.
This guide provides a quick way to get started with our project. Please see our [docs]([INSERT LINK TO DOCS SITE / WIKI HERE]) for a more comprehensive overview.
- [INSERT LIST OF REQUIREMENTS HERE]
Certain properties and permission settings are necessary in GitHub for builds to run automatically. On local development systems builds may be tested in similar fashion with proper tooling installed.
- Shared PyPi API Token installed in GitHub Repository Secrets named
PYPI_API_TOKEN
. - Permissions to execute GitHub Actions and perform software tag and release.
- Build tooling modules
pip3 install --upgrade build setuptools_scm twine wheel
- Product required modules (
requirements.txt
)
pip3 --exists-action w install -r requirements.txt
- [INSERT STEP-BY-STEP SETUP INSTRUCTIONS HERE, WITH OPTIONAL SCREENSHOTS]
- [INSERT STEP-BY-STEP RUN INSTRUCTIONS HERE, WITH OPTIONAL SCREENSHOTS]
- [INSERT LIST OF COMMON USAGE EXAMPLES HERE, WITH OPTIONAL SCREENSHOTS]
A GitHub Action configuration specifies the series of commands to release and publish the product. Commands are staged and carried out automatically when a tagged release is published to the main branch.
- Edit the
[INSERT YOUR PACKAGE NAME]/version.py
file with the next release version using the web UI on GitHubmain
branch. - Perform a release using the web UI on GitHub
main
branch - Build, packaging and release to PyPi will execute automatically using GitHub Actions Workflows
These instructions must be entered from the local directory checked out from source control.
- Manually update
[INSERT YOUR PACKAGE NAME]/version.py
with the next release version, commit and push to themain
branch:
git add [INSERT YOUR PACKAGE NAME]/version.py && git commit -m "Issue #<issue_number>: Updated version for release." && git push
- Tag using the Git command line:
git tag -a -m "Issue #<issue_number>: Release version <version>" <version>
Note: The <version>
must match that in the [INSERT YOUR PACKAGE NAME]/version.py
file.
3. Package the product:
- Package an
sdist
and atarball
: (traditional)
git checkout [INSERT YOUR PACKAGE NAME]/version.py && python3 -m build --wheel
- ... or package an
sdist
and azip
...
python3 -m build --wheel && python3 setup.py sdist --format=zip
- Publish product to PyPi for public distribution by using Twine:
twine check dist/* && twine upload --verbose
... or as a ZIP ...
twine check dist/* && twine upload --verbose dist/*.whl dist/*.zip
- [INSERT STEP-BY-STEP TEST INSTRUCTIONS HERE, WITH OPTIONAL SCREENSHOTS]
These instructions must be entered from the local directory checked out from source control. A simplified build and release workflow is available for testing locally. Publishing directly to PyPi is not recommended as PyPi permits one upload per release version.
- Clean application:
rm -r build dist __pycache__ *.egg* .egg* ; git checkout [INSERT YOUR PACKAGE NAME]/version.py ; pip3 uninstall [INSERT YOUR PACKAGE NAME] -y
- Build and install release locally:
python3 -m build --wheel && python3 setup.py sdist --format=zip
pip3 install [INSERT YOUR PACKAGE NAME] --no-index --find-links file://${PWD}/dist/
... alternately, install an editable build using Pip tooling ...
pip install -e
- Testing publication to Test PyPi
Twine will prompt for your Test PyPi username and password.
twine check dist/*
twine upload --repository testpypi --verbose dist/*
See our CHANGELOG.md for a history of our changes.
See our [releases page]([INSERT LINK TO YOUR RELEASES PAGE]) for our key versioned releases.
[INSERT LINK TO FAQ PAGE OR PROVIDE FAQ INLINE HERE]
Interested in contributing to our project? Please see our: CONTRIBUTING.md
For guidance on how to interact with our team, please see our code of conduct located at: CODE_OF_CONDUCT.md
For guidance on our governance approach, including decision-making process and our various roles, please see our governance model at: GOVERNANCE.md
See our: LICENSE
[INSERT CONTACT INFORMATION OR PROFILE LINKS TO MAINTAINERS AMONG COMMITTER LIST]