First off, thank you for considering contributing to LLMTK! It's people like you that make LLMTK such a great tool.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps which reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include details about your configuration and environment
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- Use a clear and descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the steps
- Describe the current behavior and explain which behavior you expected to see instead
- Explain why this enhancement would be useful
- Fill in the required template
- Do not include issue numbers in the PR title
- Include screenshots and animated GIFs in your pull request whenever possible
- Follow the Python style guide
- Include tests
- Document new code
- End all files with a newline
# Clone repository
git clone git@github.com:arcifylabs/llmtk.git
cd llmtk
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install development dependencies
pip install -e ".[dev]"- Create feature branch from dev:
git checkout dev
git pull origin dev
git checkout -b feature/your-feature- Make changes and ensure tests pass:
# Run tests
pytest
# Type checking
mypy .
# Format code
black .
isort .- Commit and push:
git add .
git commit -m "feat: your feature description"
git push origin feature/your-feature-
Create PR to dev branch
-
Once PR is approved and merged to dev:
git checkout main
git pull origin main
git merge dev
git push origin main # This will run tests- Update version in
llmtk/__init__.py:
__version__ = "x.y.z" # Following semver- Update CHANGELOG.md:
## [x.y.z] - YYYY-MM-DD
### Added
- New features
### Changed
- Changes in existing functionality
### Fixed
- Bug fixes- Commit and push to main:
git add llmtk/__init__.py CHANGELOG.md
git commit -m "release: version x.y.z"
git push origin mainThis will:
- Run tests
- Build package
- Publish to PyPI
- Push to
dev: Runs tests - Push to
main:- Runs tests
- If tests pass, builds and publishes to PyPI
- Versions follow SemVer
- Version is managed manually in
llmtk/__init__.py - Version format: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes
- MINOR: New features, backward compatible
- PATCH: Bug fixes, backward compatible
- Use Black for code formatting
- Use isort for import sorting
- Follow PEP 8 style guide
- Write docstrings for all public modules, functions, classes, and methods
- Use type hints for all function arguments and return values
By contributing, you agree that your contributions will be licensed under its MIT License.