The zen aims to provide a user-friendly utility package for managing large datasets on Zenodo.
All contributions to this software should fall within the scope described above, unless discussed beforehand by the core development team.
For reporting issues and making feature suggestions please refer to the issue tracker using the existing templates.
- Clone the repo:
git clone https://gitlab.opengeohub.org/rolfsimoes/zen/zen.git
- Install dependencies (not needed if only contributing documentation):
- for the Python package:
pip install -r requirements.txt
into a Python 3.6+ environment
The Sphinx documentation is composed of the following key files in the sphinx/
directory:
index.rst
: The main entry point, containing the table of contents and an overview of the documentation structure.- Topic-specific
.rst
files:api.rst
,dataset.rst
,metadata.rst
,modules.rst
,utils.rst
: These files contain detailed information about specific aspects of the project, such as APIs, datasets, and utility functions.
conf.py
: Configuration file for the Sphinx build system, specifying settings like extensions, themes, and project metadata.- Assets (
img/
folder): Includes images used in the documentation, such aszen-logo.png
.
You can update these files to modify or expand the documentation.
-
Clean and build the documentation:
Go to the project folder and run the following commands to clean and rebuild the Sphinx documentation:make clean make html
The generated documentation will be located in the
./sphinx/_build/html
folder. -
Deploy the documentation:
Update thedocs/
folder with the new documentation files:rm -fr docs/* cp -r sphinx/_build/html/* docs/ touch docs/.nojekyll
-
Commit and push the changes:
Add the changes and commit using thedocs
type in the commit message format:git add docs git commit -m "docs: update deployed documentation" git push
All changes to code and documentation should be made in a separate branch, created from an up-to-date local main
. The branch name must refer a open issue (i{ISSUE_ID}
):
git checkout main
git pull
git checkout -b i0
git add [CHANGED FILES]
git commit -m "fix(scope): resolves #0; [GENERAL COMMENT]"
git checkout main
git pull
git merge i0
git push
git branch -d i0
If you do not have the appropriate permissions to submit new branches to the zen repository, you may fork this repository into your own Github namespace and submit merge requests from there.
All commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Type
Must be one of the following:
- build: Changes that affect the build system or external dependencies
- ci: Changes to our CI configuration files and scripts
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- test: Adding missing tests or correcting existing tests
Based on Conventional Commits.
We strongly prefer to submit code to zen with type hints. Additionally, we support Python versions as low as 3.8 and no code that uses syntax introduced in later versions of Python (e.g. the walrus operator) will be accepted.
There are currently no style restrictions guidelines imposed upon code contributions. This may change at a later date.
We adthere to standard semantic versioning. Since we release from main
all merge requests should be accompanied with a version increment and the responsibility for increasing the version number falls on the contributor merging a branch: when merging a request either increment the MINOR version and reset the PATCH version to zero (if the intent of the merge request is to add new features) or increment the PATCH version (if the merge request only contains bugfixes). When merging a branch made by another contributor (e.g. because they do not have the required permissions to do so) please confirm the intent of the merge request (i.e. which semver number needs to be incremented).
When incrementing the version of zen it is enough to write the version change into __init__.py
in the appropriate branch.