172 lines
3.4 KiB
Plaintext
172 lines
3.4 KiB
Plaintext
# Contributing
|
|
|
|
Thanks for contributing to Moku Work.
|
|
|
|
This project is still in an early scaffold stage, so the goal is to keep changes easy to understand, easy to review, and easy to undo.
|
|
|
|
## Getting Started
|
|
|
|
### Project structure
|
|
|
|
- `Frontend/` — SolidStart frontend workspace
|
|
- `Backend/` — Go backend services (`web`, `api`, `worker`)
|
|
- `Proxy/` — local production proxy/runtime assets
|
|
- `Docker/` — local Docker Compose files
|
|
- `Env/` — local environment files
|
|
- `Commands/` — Just command modules and entrypoints
|
|
|
|
### Prerequisites
|
|
|
|
Before working on the project, make sure you have:
|
|
|
|
- `just`
|
|
- Docker with `docker compose`
|
|
- Docker Buildx
|
|
- Node.js `>=22`
|
|
- `pnpm@9`
|
|
|
|
### Local development
|
|
|
|
List available commands:
|
|
|
|
```bash
|
|
just --list --list-submodules
|
|
```
|
|
|
|
Main local development flow:
|
|
|
|
```bash
|
|
just local dev
|
|
```
|
|
|
|
This command builds the frontend and backend development images, then starts the
|
|
local development stack for Postgres, Valkey, frontend, and backend services.
|
|
|
|
### Local environment
|
|
|
|
Local development uses:
|
|
|
|
```bash
|
|
Env/.env.local
|
|
```
|
|
|
|
The template lives at:
|
|
|
|
```bash
|
|
Env/.env.example
|
|
```
|
|
|
|
When you start the local Docker stack, the dev scripts will create `Env/.env.local`
|
|
from `Env/.env.example` automatically if it does not already exist.
|
|
|
|
If you need custom local values, edit `Env/.env.local` after it is created.
|
|
|
|
## Commit Naming Convention
|
|
|
|
Use short, clear commit messages that describe one logical change.
|
|
|
|
Preferred format:
|
|
|
|
```text
|
|
Type: Short description
|
|
```
|
|
|
|
Examples:
|
|
|
|
```text
|
|
Feat: Add login page scaffold
|
|
Fix: Resolve mobile sidebar overflow
|
|
Refactor: Split theme helpers from app entry
|
|
Docs: Add local development notes
|
|
Chore: Update frontend dependencies
|
|
```
|
|
|
|
Recommended commit types:
|
|
|
|
- `Feat:` — new feature or visible behavior
|
|
- `Fix:` — bug fix
|
|
- `Refactor:` — internal code change without behavior change
|
|
- `Docs:` — documentation only
|
|
- `Chore:` — maintenance, tooling, dependency, or housekeeping work
|
|
- `Style:` — formatting or styling-only cleanup
|
|
- `Test:` — tests added or updated
|
|
|
|
### Commit message rules
|
|
|
|
- Keep the subject line short and specific
|
|
- Start with a capitalized type
|
|
- Describe what changed, not the entire session
|
|
- One commit should usually be explainable in one sentence
|
|
|
|
Good:
|
|
|
|
```text
|
|
Feat: Add base dashboard layout
|
|
Fix: Correct broken theme toggle import
|
|
Docs: Document branch naming workflow
|
|
```
|
|
|
|
Bad:
|
|
|
|
```text
|
|
stuff
|
|
more updates
|
|
big rewrite
|
|
misc fixes
|
|
```
|
|
|
|
## Branch Naming Convention
|
|
|
|
Use branch names that make the purpose of the work obvious at a glance.
|
|
|
|
Preferred format:
|
|
|
|
```text
|
|
type/short-description
|
|
```
|
|
|
|
Examples:
|
|
|
|
```text
|
|
feature/login-page
|
|
fix/mobile-sidebar-overflow
|
|
refactor/theme-helpers
|
|
docs/contributing-update
|
|
chore/frontend-dependency-updates
|
|
rewrite/v2-foundation
|
|
```
|
|
|
|
Recommended branch types:
|
|
|
|
- `feature/` — new feature work
|
|
- `fix/` — bug fixes
|
|
- `refactor/` — structural code changes without intended behavior changes
|
|
- `docs/` — documentation work
|
|
- `chore/` — maintenance or tooling updates
|
|
- `rewrite/` — large rebuilds or architecture overhauls
|
|
|
|
### Branch naming rules
|
|
|
|
- Use lowercase words
|
|
- Separate words with hyphens
|
|
- Keep the name short but specific
|
|
- Name the branch after the outcome, not the time spent on it
|
|
- For larger efforts, prefer one clear branch name over vague labels like `misc` or `updates`
|
|
|
|
Good:
|
|
|
|
```text
|
|
feature/auth-shell
|
|
fix/docker-local-env-loading
|
|
rewrite/new-routing-foundation
|
|
```
|
|
|
|
Bad:
|
|
|
|
```text
|
|
new-stuff
|
|
work-branch
|
|
test
|
|
misc-updates
|
|
```
|