Thanks for your interest in contributing to cdd, a terminal UI for jumping to recently used Projects.
-
Install Go 1.26 or newer.
-
Clone the repository and fetch dependencies:
git clone https://github.com/kryft-dev/cdd.git cd cdd go build ./... -
Before pushing any change, run the full test suite:
go test ./...
Before writing code or docs, read CONTEXT.md. It is the
glossary for this project: terms like Root, Kind, Project, Jump, Visit, Stale
Visit, History, Scan, Picker, and Wrapper have precise, agreed meanings.
Use those terms verbatim in code, comments, commit messages, and pull
requests instead of synonyms, so the codebase and its discussions share one
vocabulary.
- Every change goes through a pull request. Never push directly to
main. - Commit in micro commits. Each commit should be one logical change, and
every commit message must follow the Conventional Commits
format (
feat:,fix:,docs:,test:,chore:,ci:, ...). - Keep files small. No file may exceed 300 lines. Split a file into smaller, focused files before it grows past that limit.
- Test beside the code. Tests live next to the code they cover, in an
external test package (
package foo_testfor packagefoo), are table-driven where practical, and use only the standard library'stestingpackage. Do not add testify or other assertion libraries. - Run the test suite before pushing. Always run
go test ./...(and ideallygo vet ./...) before pushing a branch or opening a pull request.
Use GitHub Issues to report bugs or propose features. See the issue templates for the information to include.
For security vulnerabilities, see SECURITY.md instead of
opening a public issue.