All Remix development happens here on GitHub. There are two main branches in this repository that you should be aware of:
main
- This is the stable line. Code in this branch should always pass all
the tests. Hot fixes may be pushed directly to this branch without appearing in
dev
. Docs on the website reflect this branch.dev
- This is where most development happens. When hot fix commits land in
main
they are merged into this branch. Feature branches are based on this
branch and are merged in as they are completed.We currently use pnpm to develop Remix.
# install everything
pnpm install
# run the build
pnpm build
# run the unit tests
pnpm test:primary
# run the unit tests for a specific package in watch mode
pnpm test:primary packages/remix-react --watch
# run the playwright integration tests in Chromium
pnpm test:integration --project chromium
# run specific playwright integration tests in Chromium
pnpm test:integration integration/client-data --project chromium
New releases should be created from release branches originating from the dev
branch. When you are ready to begin the release process:
dev
and main
branchesdev
branch./scripts/bump-router-versions.sh [pre|latest]
release-
prefix
git checkout -b release-next
release-
prefix is important, as this is what triggers our GitHub CI workflow that will ultimately publish the releasemain
into the release branchChangesets will do most of the heavy lifting for our releases. When changes are made to the codebase, an accompanying changeset file should be included to document the change. Those files will dictate how Changesets will version our packages and what shows up in the changelogs.
release-*
branchpre
tag: pnpm changeset pre enter pre
release-*
branch to GitHubCHANGELOG
files and make any adjustments necessary, then merge the PR into the release-*
branch
find packages -name 'CHANGELOG.md' -mindepth 2 -maxdepth 2 -exec code {} \;
CHANGELOG.md
file in the repo
release-*
branch - they will not trigger a new prerelease since they do not include a changesetYou may need to make changes to a pre-release before publishing a final stable release. To do so:
pnpm changeset
release-*
branch to GitHubrelease-*
branchCHANGELOG.md
file in the repopnpm changeset pre exit
pre.json
file along with any unpublished changesets, and push the release-*
branch to GitHubCHANGELOG
files and make any adjustments necessary
find packages -name 'CHANGELOG.md' -mindepth 2 -maxdepth 2 -exec code {} \;
CHANGELOG.md
file in the reporelease-*
branchrelease-*
branch containing the PR you just mergedrelease-*
branch into main
using a non-fast-forward merge and push it up to GitHub
git checkout main; git merge --no-ff release-next
release-*
branch into dev
using a non-fast-forward merge and push it up to GitHub
git checkout dev; git merge --no-ff release-next
remix@1.x.y
tag to a Release on GitHub with the name v2.x.y
and add a deep-link to the release heading in CHANGELOG.md
Hotfix releases follow the same process as standard releases above, but the release-*
branch should be branched off latest main
instead of dev
. Once the stable hotfix is published, the release-*
branch should be merged back into both main
and dev
just like a normal release.
Experimental releases use a manually triggered GitHub Actions workflow and can be built from any existing branch. To build and publish an experimental release:
Run workflow
dropdownUse workflow from
dropdown as main
branch
inputRun workflow
buttonNightly releases happen automatically at midnight PST via a cron-driven workflow that is essentially the same as the experimental releases but also performs some validations after the release.
This repository supports a handful of environment variables to streamline the local development/testing process.
REMIX_DEBUG
By default, the Remix rollup
build will strip any console.debug
calls to avoid cluttering up the console during application usage. These console.debug
statements can be preserved by setting REMIX_DEBUG=true
during your local build.
REMIX_DEBUG=true pnpm watch
LOCAL_BUILD_DIRECTORY
When developing Remix locally, you often need to go beyond unit/integration tests and test your changes in a local Remix application. The easiest way to do this is to run your local Remix build and use this environment variable to direct rollup
to write the output files directly into the local Remix application's node_modules
folder. Then you need to restart your local Remix application server to pick up the changes.
# Tab 1 - create and run a local remix application
npx create-remix
cd my-remix-app
npm run dev
# Tab 2 - remix repository
LOCAL_BUILD_DIRECTORY=../my-remix-app pnpm watch
Now - any time you make changes in the Remix repository, they will be written out to the appropriate locations in ../my-remix-app/node_modules
and you can restart the npm run dev
command to pick them up 🎉.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )