Contributing
Development setup for contributing to Shoji.
Prerequisites
| Tool | Purpose |
|---|---|
| mise | Tool and task manager |
| Lua 5.4+ | Runtime (tests require standalone Lua) |
| LuaRocks | Lua package manager |
Installation
Install mise (if not already installed):
brew install miseInstall Lua and LuaRocks:
brew install lua luarocksInstall project tools and dependencies:
cd Shoji.spoonmise trustmise installThis installs Node.js, StyLua, and lua-language-server via mise, then automatically installs the LuaRocks packages (busted, luacheck, luacov) via a post-install hook.
Verification
mise run checkTasks
Run mise tasks to see all available tasks:
mise run check # Run all checks (format, types, lint, test)mise run test # Run all testsmise run test:unit # Run unit tests onlymise run test:integration # Run integration tests onlymise run test:coverage # Run tests with coveragemise run lint # Run lintermise run format # Format codemise run check:format # Check formattingmise run check:types # Run type checkerDocumentation
mise run docs:dev # Start dev servermise run docs:build # Build for productionmise run docs:preview # Preview production buildSubmitting changes
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make changes and ensure
mise run checkpasses - Commit with a descriptive message
- Push and open a pull request
For bug reports and feature requests, open an issue on GitHub.