Contributor Guide#

Welcome to the Construbot contributor documentation!

Overview#

Thank you for your interest in contributing to Construbot! This guide covers everything you need to know about contributing code, documentation, translations, and more.

Note

First time contributor? Start with Getting Started

Ways to Contribute#

💻 Code Contributions

  • Bug fixes

  • New features

  • Performance improvements

  • Code refactoring

📚 Documentation

  • Fix typos and errors

  • Improve existing docs

  • Add new guides

  • Translate to Spanish

🌍 Translations

  • Translate UI strings

  • Update Spanish→English glossary

  • Review translations

🐛 Bug Reports

  • Report issues

  • Provide reproduction steps

  • Suggest fixes

Feature Requests

  • Propose new features

  • Discuss improvements

  • Vote on proposals

Quick Start#

1. Fork and Clone:

# Fork on GitHub, then clone
git clone https://github.com/YOUR-USERNAME/construbot.git
cd construbot

2. Set up development environment:

# Using Docker (recommended)
make buildev

# Or local setup
python -m venv venv
source venv/bin/activate
pip install -r requirements/local.txt

3. Create feature branch:

git checkout -b feature/my-awesome-feature

4. Make changes and test:

make test

5. Submit pull request

See Getting Started for detailed steps.

Development Workflow#

1. Find an issue or create one

Browse https://github.com/javier-llamas/construbot/issues

2. Discuss approach

Comment on issue before starting major work

3. Write code

Follow Code Style guidelines

4. Write tests

See Testing

5. Update documentation

Document new features

6. Submit PR

Include clear description and tests

Code Style#

Python:

  • Follow PEP 8

  • Use Black for formatting

  • Type hints encouraged

  • Docstrings for public APIs

Django:

  • Follow Django best practices

  • Use Django’s built-in features

  • Company-scope all queries

See Code Style for complete guidelines.

Testing#

Run tests:

# Full test suite
make test

# Specific test
pytest tests/test_models.py::test_contract_creation

# With coverage
make test
open htmlcov/index.html

See Testing for testing guide.

Documentation#

Build docs:

cd docs
make html
open _build/html/index.rst

Auto-rebuild:

make livehtml

See Documentation for documentation guidelines.

Translation#

Spanish→English glossary:

See Translation Glossary for complete term mappings.

Add translations:

cd docs
make update-translations
# Edit locale/es/LC_MESSAGES/*.po

See translation/index for translation guide.

Pull Request Guidelines#

Before submitting:

✅ Tests pass (make test)

✅ Code follows style guide

✅ Documentation updated

✅ Commits are clear and atomic

✅ PR description explains changes

PR template:

## Description
Brief description of changes

## Motivation
Why is this change needed?

## Changes
- List of changes made

## Testing
How was this tested?

## Screenshots (if applicable)

## Checklist
- [ ] Tests pass
- [ ] Documentation updated
- [ ] Follows code style

Community#

Be respectful and inclusive

We follow the Contributor Covenant Code of Conduct.

Ask for help

  • GitHub Issues

  • GitHub Discussions (if available)

Give feedback

Your input helps improve Construbot!

Documentation Sections#

Resources#

License#

By contributing, you agree that your contributions will be licensed under the AGPLv3 license.

Thank You#

Thank you for contributing to Construbot! Your contributions help make this project better for everyone.