Contributing
We welcome contributions to KiLM! This guide covers reporting issues, submitting code changes, and following our development standards.
Reporting Issues
Section titled “Reporting Issues”Before creating a new issue, search the GitHub Issues page for similar reports.
Bug Reports
Section titled “Bug Reports”Include the following information:
- KiLM version:
kilm --version - KiCad version: Check Help → About KiCad
- Operating System: Windows/macOS/Linux with version
- Clear description: What happened vs. what you expected
- Reproduction steps: Minimal steps to reproduce the issue
- Error messages: Full error output (use
--verboseif available) - Configuration: Relevant parts of your
config.yamlif applicable
Feature Requests
Section titled “Feature Requests”- Use case: Describe the problem you’re trying to solve
- Proposed solution: How you envision the feature working
- Alternatives: Other approaches you’ve considered
- Impact: Who would benefit from this feature
Pull Request Workflow
Section titled “Pull Request Workflow”-
Fork and Clone
Fork the KiLM repository and clone your fork:
Terminal window git clone https://github.com/YOUR_USERNAME/kilm.gitcd kilm -
Development Setup
Follow the Development Setup guide to install dependencies.
-
Create Feature Branch
Terminal window git checkout -b feature/my-feature # or fix/issue-123 -
Implement Changes
Make your changes following the coding standards below.
-
Quality Checks
Run everything CI runs; it never modifies files:
Terminal window just checkjust fixformats the code and applies safe lint fixes. -
Commit Changes
Use descriptive commit messages:
Terminal window git add .git commit -m "feat: Add library template validation"# orgit commit -m "fix: Handle missing KiCad config gracefully" -
Push and Create PR
Terminal window git push origin feature/my-featureOpen a Pull Request with:
- Clear description of changes
- Link to relevant issues (“Closes #123”)
- Screenshots/examples if applicable
Coding Standards
Section titled “Coding Standards”The full standards, project layout, and release process are in AGENTS.md. In short:
- Types: complete type hints with no
Any; thetytype checker must pass. - Gates: never weaken a ruff rule or threshold to pass a check. Every suppression names its rule and states its reason.
- Code: no emojis in code, comments, or output;
pathlib.Pathfor paths; identical behavior on Windows, macOS, and Linux. - Tests: a test with each feature, and a failing test first with each bug fix.
- Docs: update the command’s collocated
docs.mdxwhen behavior changes.
Code Review Process
Section titled “Code Review Process”All Pull Requests undergo review for:
- Functionality: Does it work as intended?
- Code quality: Follows coding standards and best practices
- Type safety: Proper type annotations and no “Any” types
- Testing: Adequate test coverage
- Documentation: Clear and up-to-date
Getting Help
Section titled “Getting Help”- Discussions: Use GitHub Discussions for questions
- Issues: Report bugs and request features via GitHub Issues
- Documentation: Review the Development Setup guide
Thank you for contributing to KiLM!