Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 28 additions & 2 deletions docs/internal/Versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,34 @@ needed to backport to `8.19` you would run (in `main`):
./gradlew generateTransportVersion --name=my_tv --backport-branches=9.1,8.19

In the above case CI will not know what transport version name to update, so you
must run the generate task again as described. After merging the updated transport
version it will need to be backported to all the applicable branches.
must run the generate task again as described. After merging the updated
transport version it will need to be backported to all the applicable branches.
Backport branches that already included the original change can use
auto-backport in CI or cherry-pick the updated transport version. Backport
branches that did not include the original change need to cherry-pick both the
original change and the updated transport version. For example, with the above
change that is first backported to `9.1`, and subsequently added to `8.19`, the
sequence of events would look like the following:

1. Create a pull request with target branch `main` for a new change
(`C0`) with a newly created transport version (`TV`) required by `C0`
1. Use the `github` labels `auto-backport` and `branch:9.1` to backport `C0`
and `TV` into the target branch `9.1`.
2. Discover that `C0` is also required in target branch `8.19`.
3. Create a pull request with target branch `main` for a change (`C1`) to only
update `TV` to include `8.19`
1. Use the gradle task
`./gradlew generateTransportVersion --name=my_tv
--backport-branches=9.1,8.19`
to update `TV` to include `8.19`
2. Use the `github` labels `auto-backport`, `branch:9.1`, and `branch:8.19`
to backport `C1` and updated `TV` into the target branches `9.1` and `8.19`.
This creates a source branch for `8.19` (`SB819`) that does not contain `C0`.
3. Cherry-pick `C0` into the source branch `SB819`

Note there are several ways to achieve the desired end state. This
specific example takes advantage of the available CI tooling to simplify the
process.

### Resolving merge conflicts

Expand Down
Loading