Skip to content

Contributing to pyjelly

Hi! This guide explains how to get started with developing pyjelly and contributing to it.

Quick start

  1. Clone the project with git clone git@github.com:Jelly-RDF/pyjelly.git.

  2. 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
  3. 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
  4. 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:

  1. Explain how it would work.
  2. Keep the scope as narrow as possible, to make it easier to implement.
  3. Contributions are always welcome! Consider if you can help with implementing the feature.

Contributing code

  1. 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.
  2. When opening a pull request:
    • Use a descriptive title.
    • Reference the related issue in the description.
  3. Please make sure your code passes all the checks:
    • Tests (pytest)
    • Type safety (mypy)
    • Formatting and linting (ruff or via pre-commit) This helps us follow best practices and keep the codebase in shape.

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:

uv sync --group docs

Then, start a local docs server:

uv run mkdocs serve

Further reading

Making releases

  1. Make sure you are on the main branch and that it is up-to-date: git checkout main && git pull.
  2. Checkout a new branch.
  3. Update the version in pyproject.toml with either:
    • uv version X.Y.Z
    • uv version --bump major|minor|patch
  4. Commit the changes, push the branch, and open a pull request.
  5. Once the pull request is merged, go back to the main branch: git checkout main && git pull.
  6. Create a new tag for the release. For example, for version 1.2.3: git tag v1.2.3. The tag must start with v!
  7. Push the tag to GitHub: git push origin v1.2.3.
  8. The release will be automatically built and published to PyPI.