Skip to content

Latest commit

 

History

History
86 lines (60 loc) · 3.22 KB

File metadata and controls

86 lines (60 loc) · 3.22 KB

Contributing to Spliit Cloud

Spliit Cloud is a community fork of Spliit. Contributions are welcome: bug reports, fixes, tests, docs, translations, and features.

For project rules, see AGENTS.md. For behavior, see CODE_OF_CONDUCT.md.

Where to start

  • good first issue — approachable entry points
  • help wanted — scoped but unassigned
  • For larger changes, open an issue first to align on direction

Development setup

Bun monorepo. All commands through Bun.

Local dev runs in three explicit steps:

bun install
cp .env.example .env
bun dev:up                       # starts postgres, maxio, maildev (compose.dev.yaml)
bun prisma-migrate
bun dev                          # web :3000, api :3001

Service state lives under storage/ at the repository root. Stop local service containers with bun dev:down when you are done; remove storage/ for a clean reset.

Other useful commands:

bun run check            # Oxfmt, Oxlint, and TypeScript
bun run format:affected  # Format only affected Turbo tasks
bun run lint:fix         # Apply Oxlint's behavior-preserving fixes
bun run test             # Vitest unit tests
bun test:integration     # Real-DB integration tests

Web integration tests expect an API using the integration profile. Start it in another terminal before running the suite:

bun --filter @spliit/api start:integration # API on :3101
bun test:integration

Pull request workflow

  1. Branch off main (fix/..., feat/..., docs/...)
  2. One logical change per PR. Add or update tests.
  3. Run bun run check and bun run test before pushing.
  4. Schema changes: commit schema, migration, and generated client together.
  5. Reference the issue with Closes #123.

AI-assisted contributions

AI agent contributions are welcome, but the PR must make the agent's context and reasoning reviewable. If AI was used, include either:

  • the initial prompt and every follow-up prompt that materially shaped the implementation, along with any relevant notes about what was accepted or changed; or
  • for a new feature or a larger chunk of work, a well-defined and up-to-date OpenSpec describing the proposal, design, and implementation tasks. Keep the OpenSpec in sync with the code in the PR.

The PR author remains responsible for the implementation, tests, security, and review of all generated code. Do not include secrets, private data, or unredacted third-party content in prompt transcripts.

Commit messages: short imperative subject, optional body for the why.

Key rules

See AGENTS.md for agent and contributor invariants (Bun, money units, translations, integration-test server rules).

Translations

apps/web/src/messages/en-US.json is the source of truth. Use bun i18n for all changes to non-English locales. Weblate is not set up yet.

Review

Maintained in spare time. Reviews are best-effort. A ping on stalled PRs is welcome.