Thank you for your interest in contributing to nxdo!
- Clone the repository:
git clone https://github.com/semcod/nxdo.git
cd nxdo- Create a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install the package in development mode:
pip install -e ".[dev]"Run all tests:
PYTHONPATH=src python -m pytest tests/ -vRun a specific test file:
PYTHONPATH=src python -m pytest tests/test_models.py -vRun type checking:
mypy src/nxdoRun linting:
ruff check src/nxdo tests/Auto-fix linting issues:
ruff check --fix src/nxdo tests/src/nxdo/- Main package source codecli.py- Command-line interfaceconfig.py- Configuration managementgit_reader.py- Git history analysisllm_client.py- LLM client (legacy compatibility)models.py- Pydantic data modelsoutput.py- Rich-based renderingplanner.py- Main orchestratorproject_analyzer.py- Project snapshot analysisproviders/- LLM provider implementations
tests/- Test suite
- Create a branch for your changes:
git checkout -b feature/your-feature-name- Make your changes and add tests
- Run tests and linting to ensure everything passes
- Commit your changes with a clear message
- Push and create a pull request
To add a new LLM provider:
- Create a new file in
src/nxdo/providers/ - Implement the
LLMProviderinterface fromproviders/base.py - Add appropriate tests in
tests/test_providers.py - Export the provider in
src/nxdo/providers/__init__.py
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.