Thank you for your interest in contributing to Xylo! Whether you're improving the core language, adding examples, or fixing bugs, your work helps grow a creative coding tool for artists and programmers.
Found a bug or have a feature request? Open an issue with:
- A clear title.
- Steps to reproduce the problem.
- Expected vs. actual behavior (include screenshots if it's a visual bug).
- Your environment (OS, Xylo version/build, Rust version, etc.).
Help make Xylo more accessible by:
- Fixing typos/clarifying the GitBook docs.
- Adding tutorials (e.g., "How to create L-systems in Xylo").
- Documenting edge cases or compiler behaviors.
- Git
- Rust and Cargo (latest stable version).
git clone https://github.com/giraffekey/xylo.git
cd xylo
cargo build # Debug build
cargo build --release # Release buildcargo test # Unit tests (std)
cargo test --no-default-features --features no-std # Unit tests (no_std)
cargo run --release -- generate example.xylo --width 800 --height 800 # Run the examplesrc/: Interpreter core (parser, interpreter, renderer).src/functions/: Standard library functions
- Branch off
main:git checkout -b your-branch
- Follow Rust conventions:
- Use
snake_casefor variables/functions. - Document public APIs with
///comments. - Format with
cargo fmtand lint withcargo clippy.
- Use
- Test rigorously:
- Add unit tests in
src/. - Verify generative art outputs.
- Add unit tests in
Commit messages should be descriptive and finish the sentence "This commit will...".
Examples:
Add HSL color utilities
Handle division by zero errors
Add a function for creating fractals
- Push your branch:
git push origin your-branch
- Open a PR:
- Target the
mainbranch. - Describe changes and reference related issues (e.g.,
Fixes #42). - Include screenshots for changes that involve art generation.
- Target the
- Address feedback: Maintainers will review within 48 hours.
- Optimize performance and resource usage.
- Extend the type system or syntax.
- Write extensive tests for edge cases.
- Add built-in utility functions.
- Improve error messages and handling.
- WASM/web playground.
- IDE plugins (VS Code, IntelliJ).
Please review our Code of Conduct before participating.