Skip to content

Contribution Guide

Thank you for your interest in contributing to apkit! To ensure a smooth collaboration, please read and follow these guidelines.

Communication

We encourage all Pull Requests and Issues to be written in English. This helps more developers understand the context and participate in the discussion. If you're not a native English speaker, don't worry—just do your best! We appreciate any effort to make communication accessible to everyone. Don't worry about perfect English—the main developer isn't a native speaker either, so we're all in the same boat! 😉


Code Standards

Type Hints

Please use type hints for all new code. This improves readability and allows for static analysis, which helps catch potential bugs early.

KISS Principle

We adhere to the Keep It Simple, Stupid (KISS) principle. Please write code that is as simple and straightforward as possible. Avoid overly complex logic or unnecessary code that could make future maintenance difficult for others.


Commit Messages

All commit messages must follow the Conventional Commits specification. This makes our commit history clear and easy to read, and it helps with automated changelog generation.

Examples of Conventional Commits:

  • feat: add new feature
  • fix: resolve a bug
  • docs: update documentation
  • refactor: refactor code without changing functionality

Pull Request Locations

To keep our projects organized, please submit your Pull Requests to the correct repository:

  • For signature verification/creation, please submit your PR to the apsig repository.
  • For loading and outputting models that include ActivityStreams, please submit your PR to the apmodel repository.
  • Please submit Pull Requests for features that are not fundamental to apsig or apmodel, such as signature verification for requests sent to the inbox or double-knocking functionality for RFC9421-based signatures, to the apkit repository.