-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Tree etiquette
Brian R. Bondy edited this page Jan 14, 2020
·
17 revisions
- Only merge something if brave-browser jenkins CI status passes for the pipeline steps. If you don't know how to do this, check with @mihaiplesa for training. If a PR comes in from a fork, then someone needs to cherry-pick it into a new branch so that CI will run and make sure it passes for that PR before merging.
- If you don't see the results from Jenkins, it might be because the branch is on a fork and not directly on
brave-core
orbrave-browser
. - If you see something that's broken, or tests failing, instantly revert it. Do not wait to talk to the person that broke it, especially if they are not there. Re-open the issue that broke it.
- If you accidentally break the build, apologize and pay it forward by helping out when someone else breaks the build.
- Check #brave-core Slack and only merge things if the channel topic indicates the branch you're landing to is open.
- When dependencies are updated (for example, fixing
npm run audit
), please be sure theDEPS
file is updated too! This is extremely important. Each channel will need a separateDEPS
bump - Before reverting, make sure to get latest (re-run sync / patches). You may be on an out-of-date version. You can also check CI for the last PR that was merged.
- 3rd party components get updated. They may change the URLs they call out to, which can cause breakage (especially including failing
npm run test-security
). When this happens, we can create an issue for the problem. Likely, we'll need to update the call to use a proxy
- A tree branch closes when builds fail, brave_unit_tests fail, brave_browser_tests fail, audit-deps fails, or the network audit fails.
- Each pull request has CI run, if the tree is in a broken state, then you risk breaking every PR's build status.
- It wastes time at scale for every person that spends time thinking that their own changes are breaking things.
- QA and other departments are completely blocked if they can't get builds.
- Reverts can become much more complex when changes continue to land on top of the broken code