|
1 | | -Welcome to `remix-the-web`! We're excited to have you contribute. |
| 1 | +Welcome to Remix! We're excited to have you contribute. |
2 | 2 |
|
3 | 3 | This guide will help you get started. |
4 | 4 |
|
5 | 5 | ## Setting Up Your Environment |
6 | 6 |
|
7 | | -To get started, you'll need `pnpm`. If you don't have it yet, you can [install `pnpm` here](https://pnpm.io/installation). |
| 7 | +We develop Remix using [pnpm](https://pnpm.io) on Node 24. |
8 | 8 |
|
9 | 9 | If you're using [VS Code](https://code.visualstudio.com/), we recommend installing the [`node:test runner` extension](https://marketplace.visualstudio.com/items?itemName=connor4312.nodejs-testing) for a smooth testing experience. |
10 | 10 |
|
11 | | -Once that's set up, run `pnpm install` to get all the project dependencies. You can then run `pnpm build` to build the project and `pnpm test` to run all tests. |
| 11 | +Once that's set up, run `pnpm install` to get all the project dependencies. |
| 12 | + |
| 13 | +## Testing |
| 14 | + |
| 15 | +All tests run directly from source. This makes it easy to use breakpoint debugging when running tests. This also means you should not need to run a build before running the tests. |
| 16 | + |
| 17 | +```sh |
| 18 | +# Run all tests |
| 19 | +$ pnpm test |
| 20 | +# Run the tests for a specific package |
| 21 | +$ pnpm --filter @remix-run/headers run test |
| 22 | +``` |
| 23 | + |
| 24 | +## Building |
| 25 | + |
| 26 | +All packages are built using a combination of tsc and esbuild. |
| 27 | + |
| 28 | +```sh |
| 29 | +# Build all packages |
| 30 | +$ pnpm run build |
| 31 | +# Build a specific package |
| 32 | +$ pnpm --filter @remix-run/headers run build |
| 33 | +``` |
| 34 | + |
| 35 | +All packages are published with TypeScript types along with both ESM and CJS module formats. |
12 | 36 |
|
13 | 37 | ## Making Changes |
14 | 38 |
|
15 | | -All our packages live in the [`packages` directory](https://github.com/mjackson/remix-the-web/tree/main/packages). At a minimum, each package typically includes: |
| 39 | +Packages live in the [`packages` directory](https://github.com/remix-run/remix/tree/v3/packages). At a minimum, each package includes: |
16 | 40 |
|
17 | | -- `CHANGELOG.md`: A log of what's changed. |
18 | | -- `package.json`: Package metadata and dependencies. |
19 | | -- `README.md`: Information about the package. |
| 41 | +- `CHANGELOG.md`: A log of what's changed |
| 42 | +- `package.json`: Package metadata and dependencies |
| 43 | +- `README.md`: Information about the package |
| 44 | +- `src/`: The package's source code |
20 | 45 |
|
21 | 46 | When you make changes to a package, please make sure you add a few relevant tests and run the whole test suite to make sure everything still works. Then, add a human-friendly description of your change in the changelog and [make a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request). We will take a look at it as soon as we can. |
22 | 47 |
|
23 | 48 | ## Releases |
24 | 49 |
|
25 | 50 | Cutting releases is a 2-step process: |
26 | 51 |
|
27 | | -- Update versions in package.json, jsr.json (if applicable), and the changelog and create a git tag |
28 | | -- Publish new packages to npm/JSR and create a GitHub Release |
| 52 | +- Update versions in package.json and the changelog and create a git tag (tagging) |
| 53 | +- Publish new packages to npm and create a GitHub Release (publishing) |
29 | 54 |
|
30 | 55 | This repo includes a script for each step. |
31 | 56 |
|
|
0 commit comments