2.7 KiB
Contributing to EdgeEver
简体中文 | English
Thank you for contributing to EdgeEver. A Fork used for Cloudflare deployment can also be used for code contributions, but deployment and development must use different branches.
Keep the deployment branch separate
If your Fork is used to deploy EdgeEver:
- Treat the Fork's
mainas a deployment-only branch managed by Update deployed EdgeEver. - Do not develop features directly on that
mainbranch. - Do not use GitHub Sync fork to update the deployment
mainduring routine development or deployment updates. - Create each contribution branch directly from the official repository's latest
upstream/main.
The deployment workflow only updates the Fork's main. It does not modify your contribution branches.
Create a contribution branch
Clone your Fork and add the official repository as upstream:
git clone https://github.com/<your-account>/edgeever.git
cd edgeever
git remote add upstream https://github.com/tianma-if/edgeever.git
git fetch upstream
Create a new branch from the official latest main, not from the deployment branch:
git switch -c feat/short-description upstream/main
Make and commit your changes, then push the contribution branch to your Fork:
git push -u origin feat/short-description
Open a Pull Request from:
<your-account>/edgeever:feat/short-description
-> tianma-if/edgeever:main
Your Fork's main does not need to match the official main for this Pull Request. GitHub uses the contribution branch as the Pull Request source.
Synchronize an in-progress contribution
When the official repository changes, update the contribution branch without touching the deployment main:
git fetch upstream
git switch feat/short-description
git rebase upstream/main
If the branch was already pushed, update it safely with:
git push --force-with-lease origin feat/short-description
Resolve any conflicts on the contribution branch. Do not resolve them by synchronizing the deployment main.
Verify your changes
Install dependencies and run the checks relevant to your change. The core validation commands are:
bun install
bun run test
bun run typecheck
bun run typecheck:mobile
bun run build:web
Platform-specific changes may require additional checks.
Customized deployments
Keeping personal product changes permanently on the deployed main is a customized deployment, not the normal contribution workflow. Customized deployments must opt in with EDGE_EVER_PRESERVE_FORK_CHANGES=true and maintain their own upstream merges. You do not need this setting when contributing through a separate branch.