Thank you for your interest in contributing to Apache Flagon! All Flagon products (UserALE.js, UserALE Browser Extension, Distill, Protobuf schemas, and the Project Website) live in this unified monorepo (https://github.com/apache/flagon).
All non-trivial changes should reference a GitHub Issue. If an issue does not yet exist for your bug report or feature proposal, open one first so the community can discuss the design.
If you have Nix with flakes enabled, run:
nix develop
This drops you into a reproducible shell containing Node.js, pnpm, TypeScript, Python 3, uv, buf, nixpkgs-fmt, and lefthook git hooks.
products/userale): Node.js >= 20.x and pnpm >= 10.xproducts/distill): Python >= 3.10,< 4.0 and uvproto/): buf CLI >= 1.50site/): Ruby + Bundler + Jekyllproducts/userale)cd products/userale pnpm install # Build both flagon-userale and flagon-userale-ext pnpm build # Run Jest unit & contract tests pnpm --dir packages/flagon-userale test # Run Playwright end-to-end tests pnpm test # Format and lint (or use format:check / lint:check as run in CI) pnpm format pnpm lint
proto/)The canonical UserALE v1 Protobuf schema is defined in proto/apache/flagon/userale/v1/log.proto. If you modify .proto files:
buf lint
buf generate
Ensure buf generate --exit-code passes cleanly (and run pnpm format in products/userale if generated TypeScript files change).
products/distill)cd products/distill uv sync --all-groups uv run pytest uv run --group lint ruff check .
This repository uses lefthook to run formatting, linting, and test checks before commits and pushes:
pre-commit: Runs Prettier & ESLint on staged files under products/userale/, ruff check (uv run --group lint ruff check) on staged Python files under products/distill/, and nixpkgs-fmt on .nix files.pre-push: Runs the full UserALE (pnpm test) and Distill (uv run --group test pytest) test suites.--no-verify).master (e.g. feat/otel-exporter, fix/autostart-init, docs/update-readme).feat(userale): ..., fix(distill): ..., docs: ...).apache/flagon master referencing the relevant GitHub issue(s) (e.g. Closes #123).License check, proto-check, Userale CI test suite, and Distill tests) pass.