Thanks for your interest in contributing to lemon-devkit (lemoncloud-io/lemon-devkit)! This document
covers the local dev setup, branch/commit conventions, and the PR process
common to the LemonCloud module repos (lemon-core, lemon-model,
lemon-devkit).
This is a shared template. Per-repo values (Node version, test command) are filled in per repo below — see the repo's own
package.jsonas the source of truth if this file drifts.
-
Fork and clone the repository.
-
Install dependencies:
npm install
-
Node version — this repo requires
>=24.0.0(frompackage.json#engines.node). The three lemon module repos currently do not agree on a minimum version:repo engines.nodelemon-core >=24.0.0lemon-model >=18.19.0lemon-devkit >=24.0.0Use the value from this repo's
package.json, not the table above.
- Default branch:
develop(confirmed viagh repo viewdefaultBranchReffor all three repos — notmain/master). - Branch from
develop, open PRs againstdevelop. - Branch-naming convention was not verified for this draft (no
.github/branch-protection config was found in any of the three repos to confirm one). If your repo has a house style, follow it; otherwise pick a short descriptive branch name and call it out in the PR description.
Observed convention (measured from git log --oneline -20 on each repo,
2026-09-02 — not identical across the three repos, do not assume one
without checking the repo you're in):
- lemon-core: mixes Conventional-Commits-style prefixes (
feat:,fix:) with un-prefixed version-bump commits (e.g.v4.3.0 embed cores template layer as extended/cores) andMerge pull request #NNN from ...merge commits. Also seen:chore: <msg>. - lemon-model:
feat:,docs:,chore:prefixes, plain version-bump commits (e.g.v1.2.3), andMerge pull request #NNN from .... - lemon-devkit:
feat:,docs:,test:,chore:, and scopedrefactor(scope): <msg>(e.g.refactor(exec-cli): ...), plus version-bump commits (e.g.v0.2.0 audit fix) andMerge pull request #NNN from ....
Common ground across all three: feat: / fix: / chore: / docs: prefixes
when present, and a version-bump commit for releases. Use one of the observed
prefixes for your repo; don't invent a new one.
Test command is not the same across the three repos — use the exact
package.json#scripts.test value for the repo you're in:
| repo | scripts.test |
|---|---|
| lemon-core | LS=1 vitest run |
| lemon-model | jest --config=jest.config.json |
| lemon-devkit | LS=1 vitest run |
npm testRun lint before opening a PR:
npm run lint- Open an issue first for non-trivial changes, or reference an existing one.
- Keep PRs focused — one logical change per PR.
- Make sure
npm testandnpm run lintpass locally. - Update the README / CHANGELOG (or the
## VERSION INFOtable, per repo convention) if your change is user-visible. - A maintainer will review and merge into
develop.
By contributing, you agree that your contributions will be licensed under the
project's MIT License, the same license as lemon-devkit.
This project follows the Code of Conduct. Please read it before participating.