Material for MkDocs under docs/, covering self-hosting, the Rune, the quick-add and filter languages, importing from Todoist, CalDAV, mail-to-task, MCP, the AI layer and the API. The version is pinned: the maintainers have announced that MkDocs 2.0 removes the plugin system with no migration path, and an unpinned install would break this build on the day it lands. The landing page shows the quick-add parser as actual text rather than a screenshot of it — that is the thing worth showing, and it reads better as the real thing. It shares the app's design tokens, so the site and what it describes look like one project. MIT licence, contributing guide, security policy and issue templates. Pages deployment is behind workflow_dispatch, so the docs build on every push but nothing is published until the owner chooses to. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
62 lines
2.0 KiB
Markdown
62 lines
2.0 KiB
Markdown
# Contributing
|
|
|
|
Thank you for looking. verdande is one person's self-hosted to-do app, so the bar
|
|
for a change is "does this make it better for people running it on their own
|
|
hardware" rather than "is it a feature some product has".
|
|
|
|
## Before you write code
|
|
|
|
Open an issue first for anything beyond a bug fix. The
|
|
[non-goals](README.md#non-goals) are deliberate, and it is kinder to say no to a
|
|
paragraph than to a weekend.
|
|
|
|
## Running it
|
|
|
|
```bash
|
|
VERDANDE_DATA_DIR=./data VERDANDE_DEV=true go run ./cmd/verdande
|
|
```
|
|
|
|
```bash
|
|
cd web && npm install && npm run dev
|
|
```
|
|
|
|
The API is on 8080, the interface on 5173 with `/api` proxied to it — so the
|
|
session cookie stays first-party exactly as it does in production.
|
|
|
|
## What CI checks
|
|
|
|
```bash
|
|
gofmt -l . # must print nothing
|
|
go vet ./...
|
|
go test -race ./...
|
|
```
|
|
|
|
The Docker image is built on every pull request too, so a Dockerfile that no
|
|
longer works fails there rather than at release.
|
|
|
|
## What a change needs
|
|
|
|
**Tests for anything that could be silently wrong.** Not coverage for its own
|
|
sake — the parser, the permission checks and the import round trip are tested
|
|
because a quiet failure in any of them loses somebody's data or shows them
|
|
somebody else's.
|
|
|
|
**Comments that say why, not what.** The code says what it does. A comment earns
|
|
its place by explaining a decision that is not obvious from reading it: why the
|
|
connection pool is not 1, why recurrence is parsed before dates, why an uploaded
|
|
file is never served inline.
|
|
|
|
**Danish and English both.** Anything that reads or writes text a person typed
|
|
has to work in both. `ø` is not an accented `o`, and a feature that only works
|
|
for one of the two languages is a broken feature.
|
|
|
|
## Commits
|
|
|
|
[Conventional Commits](https://www.conventionalcommits.org/): `feat(store):`,
|
|
`fix(web):`, `docs:`. Releases are semver tags, which build and publish the image.
|
|
|
|
## Security
|
|
|
|
Please do not open a public issue for a vulnerability. Email the address in
|
|
[SECURITY.md](SECURITY.md) instead.
|