First off, thanks for taking the time to contribute! 🎉
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/nobodywho.git
- Create a new branch:
git checkout -b feature/amazing-feature
- Make your changes
- Push to your fork:
git push origin feature/amazing-feature
- Open a Pull Request
- Install Nix package manager (if you haven't already)
- Enable flakes: Add
experimental-features = nix-command flakes
to your Nix config - Run
nix develop
from any directory in the repo. To activate a development shell with rustup and libclang. - Install the stable rust toolchain using rustup (if you haven't already).
- To compile the plugin: run
cargo build
from the nobodywho dir to build the plugin. - Set the TEST_MODEL env var to be a path to a Qwen 2.5 1.5B Instruct model in the GGUF format.
- To run unit tests: run
cargo test -- --nocapture --test-threads=1
from the nobodywho dir - When done, run
nix flake check
to run all tests.
- Install rustup and the rust stable toolchain
- Install cmake, llvm, and msvc.
- Install the Vulkan SDK, and set the VULKAN_SDK environment variable.
- To compile the plugin: run
cargo build
from the nobodywho dir to build the plugin. - Set the TEST_MODEL env var to be a path to a Qwen 2.5 1.5B Instruct model in the GGUF format.
- To run unit tests: run
cargo test -- --nocapture --test-threads=1
from the nobodywho dir
- Make sure all tests pass
- Link any relevant issues in your PR description
- The PR will be merged once you have the sign-off of at least one maintainer
- Follow the existing code style
- Use meaningful variable and function names
- Write tests for new features
- Keep commits atomic and write clear commit messages
- Join our Discord or Matrix for discussions
- Be nice to others (see our Code of Conduct)
- Ask questions if you're stuck
By contributing, you agree that your contributions will be licensed under the same license as the project (see LICENSE file).