Contributing to 21.dev Projects

April 18, 2026 · View on GitHub

Thank you for your interest in contributing! This document provides org-wide guidelines. Individual projects may supplement these with their own CONTRIBUTING.md or AGENTS.md for project-specific conventions.

Code of Conduct

This organization has adopted the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Report unacceptable behavior to community@21.dev.

How to Report a Bug

Open an issue in the relevant project repository with:

  • Project name and version (or commit hash)
  • Swift version (swift --version)
  • OS version (uname -a)
  • What you were trying to achieve
  • Minimal reproduction steps
    • A pull request with a failing test case is preferred, but pasting the test case into the issue description is fine.

Security Vulnerabilities

Do not open a public issue for security vulnerabilities. See the organization Security Policy for reporting channels, or the project's own SECURITY.md if present (project-specific policies take precedence).

Writing a Patch

A good patch is:

  1. Concise — contains as few changes as needed to achieve the end result.
  2. Tested — any tests provided must fail before the patch and pass after it.
  3. Documented — adds or updates API documentation as needed to cover new or changed functionality.
  4. Well-described — accompanied by a clear commit message explaining what changed and why.

Branching

Development happens on main. Create feature branches from main and open pull requests back to main.

Testing

Most projects use Swift Package Manager:

swift test

Projects may have additional test suites (integration, benchmarks, etc.) documented in their own README.md or AGENTS.md.

Code Style

Each project defines its own code style expectations. Check the project's AGENTS.md or configuration files (.swiftformat, .swiftlint.yml) if present. Projects using Lefthook pre-commit hooks will document setup in their AGENTS.md.

How to Contribute

  1. Fork the repository and create your branch from main.
  2. Make your changes following the guidelines above.
  3. Ensure tests pass (swift test).
  4. Open a pull request.
  5. Wait for CI to pass and code review.

By submitting a pull request, you represent that you have the right to license your contribution to 21.dev (operated by Timechain Software Initiative, Inc.) and the community, and agree by submitting the patch that your contributions are licensed under the project's license (typically MIT — see each repository's LICENSE file).