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:
parent
d8f8613a5b
commit
90aa59f6c3
@ -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
|
||||
|
62
dev/conductor/RELEASE_ONBOARDING.md
Normal file
62
dev/conductor/RELEASE_ONBOARDING.md
Normal 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
|
Loading…
x
Reference in New Issue
Block a user