Thank you for your interest in contributing to Nexus. By participating, you agree to follow our Code of Conduct and these contribution guidelines.
- Search existing issues for similar reports.
- If none exist, open a new issue and fill out our bug report template.
- Open an issue to discuss your idea before starting work.
- Label it as an "enhancement" and link to any related discussions.
- Fork & Clone
git clone https://github.com/<your-username>/nexus.git cd nexus
- Create a Virtual Environment (Python 3.10+)
python3.10 -m venv venv source venv/bin/activate - Install Dependencies
pip install --upgrade pip pip install -r requirements.txt pip install -e . - Run Tests & Linting
pytest flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
We enforce PEP8 style and complexity rules via Flake8 in CI.
- Language: Python 3.10+
- Style Guide: Follow PEP 8.
- Line Length: ≤ 127 characters.
- Linting: Configured in
.github/workflows/tests.yaml. - Optional Formatting: You may use Black locally, but ensure Flake8 passes before submitting.
We follow the Conventional Commits spec. Prefix your commit messages and PR titles with a type and scope, for example:
- feat(core): add Supervisor.display_agent_graph()
- fix(agent): handle missing system_message
- docs: update README examples
- test: add test for hierarchical structure
Pull request titles are automatically validated by GitHub Actions.
- Branch Naming
- Features:
feat/<short-description> - Bug fixes:
fix/<short-description>
- Features:
- Implement & Test
- Add or update code under
primisai - Add tests in the
testdirectory.
- Add or update code under
- Verify CI Passes
- Tests (
pytest) - Lint (
flake8) - Semantic PR title
- Tests (
- Open a PR
- Base branch: main
- Include a descriptive title and link related issues (e.g. closes #123).
To add or update examples in the examples folder:
- Follow the style and structure of existing scripts.
- Provide clear docstrings or README notes so users can run them easily.
- Tests & Lint run on every push/PR to main via GitHub Actions.
- Continuous Delivery publishes new releases automatically when a semantic version tag is pushed, as defined in
.github/workflows/cd.yaml.
Thank you for helping make PrimisAI Nexus even better! We appreciate your time and expertise.