Files
edgeever/CONTRIBUTING.md

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 main as a deployment-only branch managed by Update deployed EdgeEver.
  • Do not develop features directly on that main branch.
  • Do not use GitHub Sync fork to update the deployment main during 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.