Skip to content

Contributing

Development setup for contributing to Shoji.


Prerequisites

ToolPurpose
miseTool and task manager
Lua 5.4+Runtime (tests require standalone Lua)
LuaRocksLua package manager

Installation

Install mise (if not already installed):

Terminal window
brew install mise

Install Lua and LuaRocks:

Terminal window
brew install lua luarocks

Install project tools and dependencies:

Terminal window
cd Shoji.spoon
mise trust
mise install

This 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

Terminal window
mise run check

Tasks

Run mise tasks to see all available tasks:

Terminal window
mise run check # Run all checks (format, types, lint, test)
mise run test # Run all tests
mise run test:unit # Run unit tests only
mise run test:integration # Run integration tests only
mise run test:coverage # Run tests with coverage
mise run lint # Run linter
mise run format # Format code
mise run check:format # Check formatting
mise run check:types # Run type checker

Documentation

Terminal window
mise run docs:dev # Start dev server
mise run docs:build # Build for production
mise run docs:preview # Preview production build

Submitting changes

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make changes and ensure mise run check passes
  4. Commit with a descriptive message
  5. Push and open a pull request

For bug reports and feature requests, open an issue on GitHub.