Externalize and update onboarding instructions (#154730)

Part 1/n #154724 

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

---------

Co-authored-by: Tirth <pateltirth454@gmail.com>
Co-authored-by: Navaron Bracke <brackenavaron@gmail.com>
This commit is contained in:
Reid Baker 2024-09-12 13:14:53 -04:00 committed by GitHub
parent d8f8613a5b
commit 90aa59f6c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 67 additions and 25 deletions

View File

@ -4,14 +4,14 @@ Command-line tool for managing a release of the Flutter SDK. Also see
[Release Process](../../docs/releases/Release-process.md) for more information on
the release process.
## Requirements
## Conductor Requirements
Some basic requirements to conduct a release are:
Some basic requirements to run conductor are:
- a Linux or macOS computer set up for Flutter development. The conductor does
not support Windows.
- git
- Mirrors on GitHub of the Flutter
- Mirrors on GitHub of the Flutter **
[framework](https://github.com/flutter/flutter) and
[engine](https://github.com/flutter/engine) repositories.
@ -23,6 +23,8 @@ unlock your ssh key for the session; if you do not, each time the conductor
attempts to interact with a remote, the user will be prompted to enter their ssh
key password.
** Confirm that your personal github clone of flutter/flutter is named flutter and flutter/engine is named engine. If not you will need to use flags to override the defaults.
## Usage
The main entrypoint for the conductor is [bin/conductor](bin/conductor). For
@ -40,8 +42,6 @@ conductor start \
--candidate-branch=flutter-2.2-candidate.10 \
--release-channel=beta \
--github-username=kingOfDevelopers \
--engine-cherrypicks=72114dafe28c8700f1d5d629c6ae9d34172ba395 \
--framework-cherrypicks=a3e66b396746f6581b2b7efd1b0d0f0074215128,d8d853436206e86f416236b930e97779b143a100 \
--dart-revision=4511eb2a779a612d9d6b2012123575013e0aef12 \
```
@ -77,26 +77,6 @@ step with the command:
`conductor next`
### Apply Engine Cherrypicks
The tool will attempt to auto-apply all engine cherrypicks. However, any
cherrypicks that result in a merge conflict will be reverted and it is left to
the user to manually cherry-pick them (with the command `git cherry-pick
$REVISION`) and resolve the merge conflict in their checkout.
Once a PR is opened, the user must validate CI builds. If there are regressions
(or if the `licenses_check` fails, then
`//engine/ci/licenses_golden/licenses_third_party` must be updated to match the
output of the failing test), then the user must fix these tests in their local
checkout and push their changes again.
### Apply Framework Cherrypicks
The tool will attempt to auto-apply all framework cherrypicks. However, any
cherrypicks that result in a merge conflict will be reverted and it is left to
the user to manually cherry-pick them (with the command `git cherry-pick
$REVISION`) and resolve the merge conflict in their checkout.
### Publish Version
This step will add a version git tag to the final Framework commit and push it

View File

@ -0,0 +1,62 @@
# Release engineer/manager onboarding
Googler facing documentation can be found at go/flutter-release-workflow.
### Responsiblity
Release engineer is responsible for:
* Branch alignment and/or Sheparding cherry picks
* Decision making related to cherry pick risk
* Verification that pre and post submits pass prior to publishing
* Contributor facing communication
* Some public facing post release comunication
In the past (and possibly in the future) there was a distinction between a release engineer and release manager.
For now the responsiblitys are the same and we will refer to the person managing the release as a release engineer.
## Onboarding
One time setup instructions for new or returning relase engineers.
### Groups/Permissions
#### Join flutter-hackers on github
https://github.com/orgs/flutter/teams/flutter-hackers/members
#### [Googler only] Join mdb/flutter-infra
Possibly not required
https://ganpati2.corp.google.com/propose_membership?parent=9147533327&child=$me.prod
#### Join the flutter-announce google group
Ping any current release engineer to add you as an owner and give you publish access.
https://groups.google.com/g/flutter-announce/members?q=role:owner&pli=1
TODO include screenshot
#### [Googler only] Install tool-proxy-client
From a glinux machine run
`sudo apt install tool-proxy-client`
`tool-proxy-client` is the tool that enables/enforces 2 party authorization for controlled builds.
#### [Googler only] Confirm access to release calendar
Public and Beta releases and timelines
go/dash-team-releases
#### [Googler only] Join release chatroom
Release hotline https://chat.google.com/room/AAAA6RKcK2k?cls=7
#### [Googler only] join mdb/flutter-release-team
Controls who can approve 2 party auth requests.
https://ganpati2.corp.google.com/propose_membership?parent=100213927583&child=$me.prod
#### Setup conductor
Conductor is a dart command line interface for common release tasks.
Its instructions are in README.md.
#### [Googler only] Confirm access to Apple signing cert update doc
go/flutter-signing-apple-contracts
Also confirm access to valentine entries listed in that doc.
#### [Googler only] Access release engineer doc
Confirm access to go/release-eng-retros