We love your input! We want to make contributing to Upup as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
- Fork the repo and create your branch from
v2-clean— the active v2 development line. (masteris the pre-v2 single-package release; the package layout this project documents lives onv2-clean, which is intentionally unmerged.) - Use the pinned Node version — this repo ships a
.nvmrc(Node 20.20.2), so runnvm use— then install withpnpm install. This is a pnpm workspace (corepack pinspnpm@10.11.0); other package managers will not resolve theworkspace:*links. - Make your changes.
- See your change render. A green test suite does not prove a UI change
looks right — some UI strings have no test or story. Packages consume each
other's built
dist/, notsrc/, so an edit topackages/<pkg>/srcis invisible until it is rebuilt:- Fastest: run
pnpm dev, then open the playground athttp://localhost:53004— the package watchers rebuildpackages/*/srcon save and the playground hot-reloads. - Storybook: build the package once (
pnpm --filter @useupup/react build) or keeppnpm run dev:packagerunning, thenpnpm --filter @useupup/storybook-react storybook(http://localhost:53050).
- Fastest: run
- Run the checks CI enforces before opening your PR. CLAUDE.md's Gates
section is the authoritative list,
docs/testing.mdexplains every test layer and how CI routes them, and CLAUDE.md's E2E section documents the MinIO setup thatpnpm run e2eneeds:pnpm run prettier-check— formatting (all nine publishable packages'src/,.ts/.tsxonly)pnpm run lint— required in CI (an input to the Status Check rollup)pnpm run typecheckpnpm run testpnpm run test:quality— test-suite hygiene guard (no.only, silent skips, vague names, unjustified sleeps)pnpm run buildpnpm run sizepnpm run e2e— the real gate: real MinIO + real uploads CI additionally runs a package-smoke suite (a real tarball consumer build), and heavy suites are routed by changed paths — seedocs/testing.md.
- Create a pull request!
- Update the README.md with details of changes if needed
- The PR will be merged once you have the sign-off of at least one maintainer
When you submit code changes, your submissions are understood to be under the same MIT License that covers the project.
Report bugs using Github's issue tracker
We use GitHub issues to track public bugs.
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening)
By contributing, you agree that your contributions will be licensed under its MIT License.
This document was adapted from the open-source contribution guidelines for Facebook's Draft.