Contributing to pyjelly
Hi! This guide explains how to get started with developing pyjelly and contributing to it.
Quick start
-
Clone the project with
git clone git@github.com:Jelly-RDF/pyjelly.git
. -
We use
uv
for package management. If you don't already have it, install uv.- On Linux this is:
curl -LsSf https://astral.sh/uv/install.sh | sh
- On Linux this is:
-
Run
uv sync
to install the project.- If you use an IDE, make sure that it uses the Python interpreter from the environment that will be created in the
.venv
directory. - If you get an error about the uv version being incorrect, run
uv self update
- If you use an IDE, make sure that it uses the Python interpreter from the environment that will be created in the
-
Activate the environment or use
uv run
to run commands and code.
Giving feedback
The best way to send feedback is to file an issue at https://github.com/Jelly-RDF/pyjelly/issues
If you are proposing a feature:
- Explain how it would work.
- Keep the scope as narrow as possible, to make it easier to implement.
- Contributions are always welcome! Consider if you can help with implementing the feature.
Contributing code
- Every major pull request should be connected to an issue. If you see a problem, first create an issue.
- For minor issues (typos, small fixes) make sure you describe your problem well in the PR.
- When opening a pull request:
- Use a descriptive title.
- Reference the related issue in the description.
- Please make sure your code passes all the checks:
- Tests (
pytest
) - Type safety (
mypy
) - Formatting and linting (
ruff
or viapre-commit
) This helps us follow best practices and keep the codebase in shape.
- Tests (
Contributing documentation
The documentation is written in Markdown and built using MkDocs, using Material for MkDocs.
To edit a documentation page, simply click the button in the top-right of the page.
It will take you to GitHub, where you can edit the Markdown file and submit a pull request. You can also clone the repository and edit the files locally. The source files are in the docs
directory.
Previewing documentation locally
Install dependencies for docs:
Then, start a local docs server:
Further reading
- More information on editing Jelly docs
- Material for MkDocs reference
- MkDocs documentation
- Macro plugin documentation
Making releases
- Make sure you are on the
main
branch and that it is up-to-date:git checkout main && git pull
. - Checkout a new branch.
- Update the version in
pyproject.toml
with either:uv version X.Y.Z
uv version --bump major|minor|patch
- Commit the changes, push the branch, and open a pull request.
- Once the pull request is merged, go back to the
main
branch:git checkout main && git pull
. - Create a new tag for the release. For example, for version 1.2.3:
git tag v1.2.3
. The tag must start withv
! - Push the tag to GitHub:
git push origin v1.2.3
. - The release will be automatically built and published to PyPI.