Files
hotdog-cms/CONTRIBUTING.md
jcoffey-dev 2bc16d79c9
ci / editor-ui (pull_request) Successful in 26s
ci / go (pull_request) Successful in 1m29s
CONTRIBUTING: how to send a change without repository access
New accounts on git.coffeylabs.org can file issues but can't push or fork.
Until a volunteer is given access, a change arrives as a patch on an issue.
2026-10-11 01:02:04 -07:00

2.6 KiB

Contributing to HotDog CMS

Thank you for helping. Issues, fixes, docs, sections and packs are all welcome.

Sending a change

New accounts on git.coffeylabs.org can file issues but can't push or fork. Until you have repository access, open an issue for the change, or say hello on community.coffeylabs.org, and attach the change to the issue as a patch:

git format-patch origin/main --stdout > my-change.patch

Repository access goes to volunteers we have worked with; a few good issues or patches is the usual way in. After that you push a branch here and open a pull request. The GitHub copy is a read-only mirror, so pull requests opened there are not merged.

Before your first pull request

Accept the contributor agreement: add yourself to CONTRIBUTORS.md in a signed-off commit, as CLA.md describes. You keep the copyright in your work. Coffey Labs gets a license to use it, and promises to keep it available as open source. Maintainers check this with tools/cla-check.sh before merging.

Building and testing

go build -o bin/hotdog-cms ./cmd/hotdog-cms
go vet ./... && go test ./...

cd editor-ui
npm ci
npx tsc --noEmit -p . && npm test
npm run build       # into internal/editor/ui/dist, embedded by go build

Run all of it before you push, and say in the pull request what you tried by hand.

What we look for

  • Security and ease of use together. HotDog CMS exists to be as easy as WordPress without its security problems. If a change seems to need one at the cost of the other, raise it in an issue first: there's usually a design that gives both.
  • The editor never lives on the site's host, and changes reach a site only as git commits. The editor holds no publishing credentials.
  • Packs carry no code. See docs/packs.md.
  • Dependencies: as few as possible, and only releases at least two weeks old. npm packages are pinned exactly (npm install --save-exact).
  • English only. The editor and the starter aren't translated.
  • Plain words in the interface and the docs: say what happens, in the terms the person using it would use.
  • Code reads like the code around it. Tests come with the change.

Licenses

The engine and the editor are AGPL-3.0-or-later. The starter site in starter/ and HotDog themes and packs are MIT. A contribution is under the license of the part it changes.

Security problems

Don't open a public issue. Email [email protected].