|
2 | 2 |
|
3 | 3 | ## [Branches](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/branches)
|
4 | 4 |
|
5 |
| -### `upstream-patched` |
| 5 | +### `patches` |
6 | 6 |
|
7 |
| -Contains a patched version of the vanilla Contracts repo. It adds the scripts to transpile and GitHub Actions for it to work automatically, changes the package name, etc. |
| 7 | +Built on top of the `master` branch of the vanilla Contracts repo, contains the changes necessary to build this package: it adds the scripts to transpile and GitHub Actions for it to work automatically, changes the package name, etc. |
8 | 8 |
|
9 |
| -Eventually it may also include small changes to the Solidity code, such as reordering of state variables, in order to ensure storage compatibility. |
| 9 | +It can also include small changes to the Solidity code, such as reordering of state variables, in order to ensure storage compatibility. |
10 | 10 |
|
11 | 11 | It's an important goal that this branch should be easy to merge with the vanilla Contracts repo, avoiding merge conflicts as much as possible. This is necessary to reduce manual intervention and ensure automation runs smoothly.
|
12 | 12 |
|
13 |
| -### `master` |
| 13 | +This branch will not necessarily be up to date with the vanilla `master` branch, only up to the point necessary to guarantee successful merging with any new updates. In some cases it will be necessary to apply a manual merge with new changes, it is this branch that should be updated for the changes to propagate to all other branches. |
14 | 14 |
|
15 |
| -Contains the actual transpiled code, which is generated automatically based on `upstream-patched`. The contents of this branch should never be manually changed, because they will be overwritten automatically with the transpiled version of `upstream-patched`. Instead, changes should be made in `upstream-patched`. |
| 15 | +### `patched/master`, `patched/release-vX.Y` |
16 | 16 |
|
17 |
| -### `upstream-v3.2.0-patched`, `release-v3.2.0` |
| 17 | +These branches are the merge between `patches` and the corresponding branch from vanilla Contracts. These branches should generally not be updated manually. |
18 | 18 |
|
19 |
| -I created thes branches in order to release `v3.2.0`, because the `master` branch was already ahead. The first is vanilla v3.2.0 with `upstream-patched` rebased onto it. The second is the transpiled version built using the script shown below. |
| 19 | +### `master`, `release-vX.Y` |
| 20 | + |
| 21 | +Contains the transpiled code corresponding to the branch from vanilla Contracts of the same name. These are generated automatically based on their `patched/*` branch. These branches should never be manually updated, because they will be overwritten automatically with the transpiled version of `patched/*`. Instead, changes should be made in `patches`. |
20 | 22 |
|
21 | 23 | ## [Actions Workflows](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/actions)
|
22 | 24 |
|
23 | 25 | ### [Merge upstream](/.github/workflows/merge-upstream.yml)
|
24 | 26 |
|
25 |
| -All this does is fetch the latest changes from vanilla Contracts repo, tries to merge them into `upstream-patched`, and then pushes the updated branch. If the merge has conflicts, the worfklow will fail. We should be notified of this so that we can manually run the merge and resolve the conflicts. This should not happen often. |
26 |
| - |
27 |
| -Runs on a schedule every morning. Can also be triggered manually from the Actions page. |
| 27 | +All this does is fetch the latest changes from a corresponding branch in the vanilla Contracts repo, tries to merge them with `patches`, and then pushes the updated branch to `patched/*`. If the merge has conflicts, the worfklow will fail. We should be notified of this so that we can updated the `patches` branch resolving conflicts and trigger the merge again. This should not happen often. |
28 | 28 |
|
29 | 29 | ### [Transpile](/.github/workflows/transpile.yml)
|
30 | 30 |
|
31 |
| -Runs every time `upstream-patched` is pushed to (for example as part of the Merge upstream workflow), transpiles the contents of that branch, and pushes the results as a new commit on the `master` branch. |
| 31 | +Runs every time a `patched/*` branch is pushed to (for example as part of the Merge upstream workflow), transpiles the contents of that branch, and pushes the results as a new commit on the transpiled branch. |
32 | 32 |
|
33 | 33 | ### [Test](/.github/workflows/test.yml)
|
34 | 34 |
|
|
0 commit comments