Skip to content

Contributing

Help us build Semantica! Every contribution makes the project better.


Getting Started

Quick Start

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test your changes
  5. Submit a pull request

First Contribution?

Look for issues labeled good-first-issue for beginner-friendly tasks.


Ways to Contribute

Code

  • Fix bugs - Resolve reported issues
  • Add features - Implement new functionality
  • Improve performance - Optimize existing code
  • Refactor - Clean up code structure

Documentation

  • Fix typos - Correct spelling and grammar
  • Improve guides - Make documentation clearer
  • Add examples - Provide practical code examples
  • Update API docs - Keep reference current

Testing

  • Write tests - Add test coverage
  • Fix tests - Resolve test failures
  • Report issues - Identify bugs through testing

Community

  • Help others - Answer questions in issues
  • Share knowledge - Write tutorials and guides
  • Provide feedback - Review pull requests

Reporting Issues

Bug Reports

When reporting bugs, include: - Description - What happened - Steps to reproduce - How to trigger the issue - Expected behavior - What should happen - Environment - Your setup details

Feature Requests

When suggesting features, include: - Use case - Why you need this feature - Proposed solution - How it should work - Benefits - How it helps the community


Pull Request Guidelines

Before Submitting

  • Test your changes thoroughly
  • Document new features with examples
  • Update relevant documentation
  • Follow the existing code style

Pull Request Checklist

  • Code follows project style
  • Tests pass locally
  • Documentation is updated
  • Commit messages are clear
  • No merge conflicts

Development Setup

Local Development

# Clone your fork
git clone https://github.com/your-username/semantica.git
cd semantica

# Install in development mode
pip install -e .[dev]

# Run tests
pytest

Code Style

We use standard Python formatting: - Black for code formatting - isort for import sorting - flake8 for linting


Community Guidelines

Code of Conduct

Please follow our Code of Conduct.

Communication

  • Be respectful - Treat everyone with kindness
  • Be helpful - Assist others when you can
  • Be patient - Allow time for reviews
  • Be constructive - Provide helpful feedback

Recognition

All contributors are recognized in: - GitHub contributors - Automatic recognition - Release notes - Notable contributions - Community highlights - Outstanding work


Need Help?