Contributing

Welcome! Thank you for taking the time to contribute. This project relies on an active and involved community, and we really appreciate your support.

Quickstart

  1. Look for an existing issue about the bug or feature you’re interested in. If you can’t find an existing issue, create a new one.

  2. Fork the repository on GitHub.

  3. Fix the bug or add the feature, and then write one or more tests which show the bug is fixed or the feature works.

  4. Submit a pull request and wait for a maintainer to review it.

More detailed guidelines to help ensure your submission goes smoothly are below.

Guidelines

Tests

The test suites can be run using tox by simply running tox from the repository root. We aim for all code to have test coverage or be explicitly marked as not covered using the # no-qa comment. We encourage the Test Driven Development Practice

Your pull request should contain tests for your new feature or bug fix. If you’re not certain how to write tests, we will be happy to help you.

Setup a local development environment

To quickly start hacking on Tahrir, we provide a local setup.

  1. Set up tinystage (if you haven’t already) and ensure the base boxes are running. This sets up the infrastructure to use things like authentication and Fedora Messaging when developing on Tahrir

  2. Clone the repository to your local storage and run

    ansible-playbook ./devel/ansible/devel.yml
    supervisord
    
  3. Tahrir frontend should now be available on http://localhost:5173/. The logs are in devel/run. You can restart the frontend and/or the backend using supervisorctl.

Commit Sign-off (DCO)

All commits must be signed to comply with the Developer Certificate of Origin (DCO). Pull requests without this sign-off might be rejected.

When committing changes in your local branch, add the -s flag to the git commit command:

git commit -s -m "YOUR_COMMIT_MESSAGE"

This creates a signed commit with an additional line:

Signed-off-by: Your Name <your_name@email.com>

For verifying your commit signature, you can check the log using below command:

git log -1