Skip to content

Latest commit

 

History

History
105 lines (77 loc) · 1.91 KB

File metadata and controls

105 lines (77 loc) · 1.91 KB

Contributing to flumen.dev

Thanks for your interest in contributing! ❤️ This guide covers local setup, scripts, and CI checks.

Requirements

  • Node 24+
  • pnpm 10+

Local setup

  1. Install dependencies:
pnpm install
  1. Create a local environment file:
# macOS / Linux
cp .env.example .env
# Windows (PowerShell)
copy .env.example .env
  1. Configure GitHub OAuth in .env:
NUXT_OAUTH_GITHUB_CLIENT_ID=
NUXT_OAUTH_GITHUB_CLIENT_SECRET=
NUXT_SESSION_PASSWORD=
  1. Create a GitHub OAuth app and copy the credentials:
  • GitHub settings: https://github.com/settings/developers
  • Create an OAuth app with:
    • Homepage URL: http://localhost:3000
    • Authorization callback URL: http://localhost:3000/auth/github
  • Copy the client ID and secret into .env
  • Set NUXT_SESSION_PASSWORD to a long random string

For details, see GitHub's docs: https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app

  1. Start the dev server:
pnpm dev

Common commands

# Development
pnpm dev

# Lint and type checks
pnpm lint
pnpm test:types

# Tests
pnpm test
pnpm test:watch
pnpm test:unit
pnpm test:nuxt
pnpm test:coverage

# Unused code checks
pnpm knip
pnpm knip:fix

# i18n validation
pnpm i18n:report
pnpm i18n:report:fix
# updating i18n/schema.ts
pnpm i18n:schema

# Build and preview
pnpm build
pnpm preview

CI checks (parity)

CI runs these checks on every PR and push to main:

  • pnpm lint
  • pnpm test:types
  • pnpm test:unit
  • pnpm test:nuxt
  • pnpm knip and pnpm knip --production
  • pnpm i18n:report
  • pnpm i18n:schema (must keep i18n/schema.json updated)
  • pnpm audit
  • pnpm build

Contribution workflow

  • Open an issue or discussion if you want to propose larger changes.
  • Keep changes focused and include tests when it makes sense.
  • Ensure the CI checks above pass before requesting review.