Thanks for your interest in helping improve Marzipan! This guide covers the tooling you’ll need, how the repository is structured, and the workflow we follow for pull requests.
Be respectful, inclusive, and collaborative. Assume good intent and help others succeed.
- Node.js 20 or newer (matches the
enginesfield inpackage.json). - npm 9+ (bundled with Node 20).
- Git and a modern browser for running the playground.
git clone https://github.com/pinkpixel-dev/marzipan
cd marzipan
npm installRun these from the repository root:
npm run dev– watch-mode build of the core librarynpm run build– type-check then bundle todist/npm run lint– ESLint flat confignpm run prettier– format source and docsnpm run typecheck– strict TypeScript checks
cd bakeshop-demo
npm install
npm run devAdditional scripts (build, preview, lint, typecheck, format) mirror the root commands for the playground.
- Core library source:
src/ - Bundled actions:
src/actions/ - First-party plugins:
src/plugins/ - Documentation:
docs/ - Demo playground:
bakeshop-demo/
- Create a feature branch from
main. - Keep the scope focused and include tests or docs when appropriate.
- Run
npm run lintandnpm run typecheck(and the demo equivalents if you touched it). - Update
CHANGELOG.mdwhen the change affects users (new features, breaking changes, documentation overhauls). - Provide a clear summary of the change, rationale, and verification steps in the PR description.
Use concise, descriptive messages. Common prefixes:
feat:– new user-facing functionalityfix:– bug fixesdocs:– documentation-only updatesrefactor:– code reorganisation without behaviour changechore:– tooling and maintenance tasks
When opening an issue, please include:
- Steps to reproduce
- Expected vs. actual behaviour
- Environment details (OS, browser, Node version)
- Minimal repro code or screenshot if relevant
By contributing, you agree that your code will be licensed under the Apache License 2.0.
Thanks again for helping make Marzipan sweeter for everyone! 🍰