The goal of gbif_registrar
is to help the EDI data repository register datasets with GBIF and keep them up-to-date. Any task related process is supported.
We welcome community contributions to this work.
The main
branch always reflects the current stable release, a development
branch is used for merging features, and feature
branches create changes. Once a feature passes review, it's commit history is squashed and commit title, following the Angular commit style, is added along with reference to the issue it closes. The feature is merged into development
. development
is reviewed before each release, and upon approval is merged into main
.
Merges to main
kick-off a GitHub Action workflow in which Python Semantic Release bumps the version number, tags the release, and builds the changelog. Additionally, the workflow updates package documentation, creates a downloadable release on GitHub, and archives it with Zenodo. Finally, the changes introduced to main
during the release process are merged back into development
to keep the branches synchronized.
Bug reports are always appreciated. If you are reporting a bug, please use the "Bug report" issue template.
If you are proposing a feature, please use the "Feature request" issue template.
Look through the GitHub issues for bugs. Anything tagged with "bug" and "help wanted" is open to whoever wants to implement it.
Look through the GitHub issues for features. Anything tagged with "enhancement" and "help wanted" is open to whoever wants to implement it.
Please feel free to contribute to any part of the documentation, such as the official docs, docstrings, or even on the web in blog posts, articles, and such.
This repository is structured as a standard Python package following the conventions outlined in the Python Packges guide.
This project uses Python Semantic Release to streamline the deployment process. As a consequence, the Angular commit style is required.
Issues corresponding to a commit should be referenced at the end of the commit message title line. For example, feat: add framework for new feature (#3, #5)
. This provides readers helpful context for interpreting the changelog.
Any new feature or bug-fix should include a unit-test demonstrating the change. Unit tests follow the pytest framework with files in tests/. Please make sure that the testing suite passes before issuing a pull request.
This package uses GitHub Actions continuous testing mechanism to ensure that the test suite is run on each pull request to development
and main
.
This project uses Black for code formatting, Pylint for static code analysis, and NumPy conventions for docstrings. Black is strictly enforced by the CI/CD GitHub Action Workflow but Pylint is not.
Before you submit a pull request, check that it meets these guidelines:
- The pull request should include additional tests if appropriate.
- If the pull request adds functionality, the docs should be updated.
- The pull request should be made to the
development
branch.
Notes for project maintainers:
- Pull requests should be reviewed for use of the Angular commit style. If styling is absent, it can be added by the maintainer as a summarizing commit title of the squash and merge option.
- Pull requests should always be rebased and merged (preferably) or squashed and merged onto the development branch to preserve a linear commit history and to make commit messages, in the Angular commit style, actionable by the semantic release process.
Ready to contribute? Here's how to set up gbif_registrar
for local development.
-
Download a copy of
gbif_registrar
locally. -
Install
gbif_registrar
usingpoetry
:$ poetry install
-
Use
git
(or similar) to create a branch for local development and make your changes:$ git checkout -b name-of-your-bugfix-or-feature
-
When you're done making changes, check that your changes conform to any code formatting requirements and pass any tests.
-
Commit your changes using our Git Commit Guidelines (see above). The commit should include reference to any related issues.
-
Open a pull request following the Pull Request Guidelines (see above).
Please note that the gbif_registrar
project is released with a Code of Conduct. By contributing to this project you agree to abide by its terms.