Community

Contributing

How to contribute to uPKI RA.

Contributing to uPKI RA

Thank you for your interest in contributing! Please read this guide before submitting patches.

Code of Conduct

Be respectful and inclusive. Focus on what is best for the project. We will not tolerate harassment of any kind.

Getting started

  1. Fork the repository on GitHub
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/upki-ra.git
  3. Create a branch: git checkout -b feature/my-feature

Development environment

git clone https://github.com/circle-rd/upki-ra.git
cd upki-ra

python -m venv .venv
source .venv/bin/activate

pip install -e ".[dev]"

# Verify
pytest

Pre-commit hooks

pip install pre-commit
pre-commit install

Coding standards

RuleValue
LanguageEnglish (code, comments, docs)
File namingsnake_case.py
Class namingPascalCase
Function namingsnake_case
ConstantsUPPER_SNAKE_CASE
Line length120 characters
Type hintsRequired on all public functions
DocstringsGoogle style, required on all public functions/classes

Linter and formatter

# Lint
ruff check upki_ra/ tests/

# Format
ruff format upki_ra/ tests/

Testing

All new code must include tests:

pytest                              # run all tests
pytest tests/test_acme_api.py       # run a specific file
pytest --cov=upki_ra                # with coverage

Minimum coverage target: 80%.

Submitting changes

  1. Push your branch: git push origin feature/my-feature
  2. Open a Pull Request against main
  3. Fill in the PR template — describe what changes and why
  4. Ensure all CI checks pass (tests, lint)

Reporting issues

Use the GitHub issue tracker. Include:

  • Python version
  • uPKI RA version
  • Steps to reproduce
  • Expected vs actual behaviour
  • Relevant log output

Documentation

Documentation contributions are welcome. The docs site lives in docs-site/. Add or update Markdown files under docs-site/content/docs/.

Copyright © 2026