Thank you for your interest in contributing to Kolosal AI! We welcome contributions from the community—whether that’s a bug fix, a new feature, improvements to documentation, or even just suggestions. By contributing, you agree to abide by our Code of Conduct.
- How to Contribute
- Getting Started
- Pull Request Process
- Coding Guidelines
- Commit Message Guidelines
- Testing Your Changes
- License and Commercial Use
- Additional Resources
Contributions come in many forms. Here are several ways you can help:
- Before you file a bug report, please search the issues to see if it has already been reported.
- When opening a bug report, please include:
- A clear and descriptive title.
- Steps to reproduce the issue.
- Expected and actual behavior.
- Any relevant logs or screenshots.
- Your system configuration (OS, compiler, dependencies, etc.).
Tip: If you’re not sure whether something is a bug or a feature request, feel free to ask in our Discord community.
- Feature requests are welcome!
- When suggesting a feature, include a clear explanation of the feature and its potential benefits.
- Describe any potential drawbacks or alternatives you considered.
- Feel free to discuss your ideas in our Discord before opening an issue.
Before contributing, please follow these steps:
-
Fork the Repository
Click the “Fork” button at the top-right of the repository page to create your own copy. -
Clone Your Fork
git clone https://github.com/your-username/Kolosal.git cd KolosalAI
-
Set Up Upstream
To keep your fork up-to-date, add the original repository as an upstream remote:git remote add upstream https://github.com/Genta-Technology/Kolosal.git
Then, fetch the latest changes:
git fetch upstream
-
Read the Documentation
Familiarize yourself with our README.md and build instructions to ensure you understand the project structure, dependencies, and build process.
-
Create a Branch
Create a branch with a descriptive name for your changes:git checkout -b feature/short-description
-
Make Your Changes
- Follow the coding guidelines and maintain consistency with existing code.
- Include clear commit messages (see commit message guidelines).
- Ensure that your changes compile and that any new functionality is properly documented.
-
Commit and Push Your Changes
git add . git commit -m "feat: add new feature for XYZ" # See commit guidelines below git push origin feature/short-description
-
Submit a Pull Request
Open a pull request (PR) against themain
branch of the original repository. In your PR description:- Describe the problem and your solution.
- Reference any related issues (e.g., "Fixes #123").
- Provide context or screenshots, if applicable.
-
Review Process
- A maintainer will review your PR and may request changes.
- Feel free to ask questions or provide additional context in the PR discussion.
- Language Standard:
We use C++17. Make sure your code is compatible with this standard. - Code Style:
Follow the style of existing code. Consistency is key!- Use meaningful variable and function names.
- Keep functions short and focused on a single task.
- Document non-obvious code sections with comments.
- Directory Structure:
- Place new features or modules in the appropriate directory (e.g.,
source/
,include/
, or as a new folder if it’s a standalone component). - Update or add documentation in the relevant section if you modify functionality.
- Place new features or modules in the appropriate directory (e.g.,
- Documentation:
Update README and inline comments where necessary. - Testing:
If applicable, include unit tests or instructions on how to verify your changes.
Use clear and descriptive commit messages. A suggested format is:
<type>(<scope>): <subject>
<body>
Where:
- type:
feat
: A new featurefix
: A bug fixdocs
: Documentation changesstyle
: Code style changes (formatting, missing semicolons, etc.)refactor
: Code refactoring without changing functionalitytest
: Adding or fixing testschore
: Other changes (build process, auxiliary tools, etc.)
- scope: A brief description of the affected area (e.g.,
build
,ui
,engine
). - subject: A concise description of the changes.
Example:
feat(ui): add dark mode support to settings panel
This commit introduces dark mode options in the settings. The UI components have been updated, and relevant assets have been added.
- Build Locally
Follow the compiling instructions in the README to ensure your changes build correctly. - Run the Application
Verify that your changes work as expected by running the application. - Automated Tests
If you add tests:- Include instructions for running them.
- Ensure that tests pass on your local environment.
- Manual Testing
In case automated tests are not available, provide clear instructions on how to manually verify your changes.
Please note:
- Kolosal AI is distributed under the Apache 2.0 License.
- The Genta Inference Engine Personal has its own licensing restrictions and is distributed under CC BY-NC-SA 4.0.
- If you plan to contribute changes that affect the inference engine or its integration, please ensure you are in compliance with the licensing terms.
- For commercial use inquiries, reach out to rifky@genta.tech or consider contributing an alternative engine as per the project guidelines.
- README.md – Overview of the project.
- Build Instructions – Detailed instructions on compiling and running Kolosal AI.
- Discord Community – Join for real-time discussion and support.
- Issues Tracker – Report bugs and request features.
Thank you for contributing to Kolosal AI! Your help makes this project better for everyone.
Happy coding!