Thank you for your interest in contributing to our KCL Modules! This document provides guidelines and instructions for contributing.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Check if the bug has already been reported in our Issues
- If not, create a new issue using the bug report template
- Include as much detail as possible:
- Which module you're using
- What you expected to happen
- What actually happened
- Steps to reproduce
- Code examples
- Check if the enhancement has already been suggested in our Issues
- If not, create a new issue using the feature request template
- Describe your use case and why this enhancement would be useful
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Add or update tests as needed
- Update documentation if needed
- Submit a pull request using our pull request template
- Install KCL
- Clone the repository
- Install dependencies:
nix develop
- Create a new directory for your module:
Note: Choose a descriptive name for your module using snake_case format (e.g.,
mkdir <module_name> cd <module_name> kcl mod init
string_utils
,http_client
). - Implement your module with the following structure:
- Source code files (
.k
extension) - Test files (with
_test.k
suffix) README.md
with comprehensive documentationkcl.mod
file for module configuration
- Source code files (
- Add your module to the main project:
- Update the top-level
README.md
to include your module - Ensure all documentation is clear and complete
- Update the top-level
- Write tests for any new functionality
- Run tests using:
kcl test ./...
- Keep READMEs up to date
- Document all public functions and types
- Include examples in documentation
- Update the changelog when making changes
Feel free to create an issue for any questions about contributing.
Thank you for contributing to KCL Modules!