Thank you for your interest in contributing! Every contribution, no matter how small, is valuable. π
β Give us a Star β’ π΄ Fork Semantica β’ π¬ Join our Discord
New to contributing? Start with a
good first issueor join our Discord community.
- Find a
good first issue - Fork Semantica & clone the repository
- Make your changes
- Submit a pull request!
Need help? Join Discord or GitHub Discussions
What you can do:
- Fix bugs
- Add new features
- Improve code quality (add type hints, docstrings, improve error messages)
- Optimize performance
Where: semantica/ directory
Good first issues: Add docstrings, type hints, or improve error messages
What you can do:
- Fix typos and grammar errors
- Improve clarity and readability
- Add code examples and tutorials
- Create new cookbook notebooks
- Improve API documentation (docstrings)
- Create troubleshooting guides
- Update installation instructions
- Add missing documentation
Where: README.md, docs/, cookbook/, docstrings in code
Good first issues: Fix typos, add examples, create cookbook tutorials, improve docstrings
Documentation formatting:
- Use clear, concise language
- Include code examples where helpful
- Follow markdown best practices
- Use proper headings hierarchy
- Add links to related sections
- Include screenshots for UI-related docs
What you can do:
- Add unit tests
- Improve test coverage
- Add integration tests
Where: tests/ directory
Good first issues: Add tests for specific functions or classes
What: Report bugs you find
How: Use the bug report template
Include: Description, steps to reproduce, expected vs actual behavior, environment details
What: Suggest new features or improvements
How: Use the feature request template
Include: Problem statement, proposed solution, use cases
What: Create tutorials and examples
Where: cookbook/ directory
Examples: Create new notebooks, add examples, improve existing tutorials
What: Help others in the community
Where: Discord, GitHub Discussions
Examples: Answer questions, review PRs, share your projects
What: Create educational materials
Examples: Blog posts, video tutorials, talks, workshops, case studies
- Design & Graphics: Logos, diagrams, visualizations
- Tools & Integrations: CLI tools, integrations with other frameworks
- Infrastructure: CI/CD improvements, Docker optimization
- Security: Report security vulnerabilities (privately)
First, fork Semantica on GitHub, then:
git clone https://github.com/your-username/semantica.git
cd semantica
git remote add upstream https://github.com/Hawksight-AI/semantica.git# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dev dependencies
pip install -e ".[dev]"
# Install pre-commit hooks (optional)
pre-commit installgit checkout -b feature/your-feature-name
# or
git checkout -b fix/bug-description- Follow code style (see below)
- Add tests for new features
- Update documentation
pytest # Run tests
black semantica/ tests/ # Format code
isort semantica/ tests/ # Sort imports
flake8 semantica/ tests/ # LintOr use pre-commit hooks: pre-commit run --all-files
git commit -m "feat(module): add new feature"
git push origin feature/your-feature-nameThen create a pull request on GitHub!
We use automated tools:
| Tool | Purpose | Command |
|---|---|---|
| Black | Code formatting | black semantica/ tests/ |
| isort | Import sorting | isort semantica/ tests/ |
| flake8 | Style enforcement | flake8 semantica/ tests/ |
| mypy | Type checking | mypy semantica/ |
Run all: black semantica/ tests/ && isort semantica/ tests/ && flake8 semantica/ tests/ && mypy semantica/
pytest # Run all tests
pytest --cov=semantica # With coverage
pytest tests/test_file.py # Specific fileCoverage goal: 80% minimum, 90%+ for critical modules
Use Conventional Commits:
feat(kg): add temporal graph support
fix(parse): handle empty PDF files
docs(readme): add installation guide
test(extract): add unit tests
Types: feat, fix, docs, test, refactor, perf, style, chore
Before submitting:
- Code follows style guidelines
- Tests pass locally
- New tests added (if applicable)
- Documentation updated
- Commit messages follow conventions
- No merge conflicts
Format: Use Google-style docstrings
def extract_entities(text: str, model: str = "transformer") -> List[Entity]:
"""Extract named entities from text.
Args:
text: Input text to process
model: NER model to use (default: "transformer")
Returns:
List of extracted Entity objects
Raises:
ValueError: If text is empty or model is invalid
Example:
>>> from semantica.semantic_extract import NERExtractor
>>> ner = NERExtractor(method="ml", model="en_core_web_sm")
>>> entities = ner.extract("Apple Inc. was founded in 1976.")
>>> len(entities)
2
"""General Guidelines:
- Use clear headings (H1 for title, H2 for main sections, H3 for subsections)
- Keep paragraphs short and focused
- Use bullet points for lists
- Add code blocks with syntax highlighting
- Include links to related documentation
Code Blocks:
- Use triple backticks with language identifier:
```python,```bash - Include comments in code examples
- Show expected output when helpful
Examples:
## Section Title
Brief introduction paragraph.
### Subsection
- Bullet point 1
- Bullet point 2
**Code example:**
```python
from semantica import SomeClass
instance = SomeClass()
result = instance.method()Note: Additional context or warnings.
**Best Practices:**
- Start with an overview/introduction
- Use consistent terminology
- Include "See also" links
- Add examples for complex concepts
- Keep formatting consistent across docs
---
## π Getting Help
- π¬ [Discord](https://discord.gg/sV34vps5hH) - Real-time chat
- π [GitHub Discussions](https://github.com/Hawksight-AI/semantica/discussions) - Q&A
- π [GitHub Issues](https://github.com/Hawksight-AI/semantica/issues) - Bug reports
**Before asking:** Check existing documentation, search issues/discussions, review cookbook examples
---
## π Recognition
All contributors are recognized in:
- [CONTRIBUTORS.md](CONTRIBUTORS.md)
- GitHub contributors page
- Release notes
We follow the [all-contributors](https://allcontributors.org) specification!
---
## π Code of Conduct
This project follows a [Code of Conduct](CODE_OF_CONDUCT.md). Be respectful and inclusive.
---
## π Resources
- [README.md](README.md) - Project overview
- [Cookbook](cookbook/) - Tutorials and examples
- [Documentation](docs/) - Comprehensive guides
---
**Thank you for contributing!** π
Every contribution matters - whether it's a single line of code, a typo fix, a helpful answer, or a bug report. We appreciate you! π
β **Give us a Star** β’ π΄ **[Fork Semantica](https://github.com/Hawksight-AI/semantica/fork)** β’ π¬ **Join our [Discord](https://discord.gg/sV34vps5hH)**