-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
conda pilot/co-pilot release process #49
base: main
Are you sure you want to change the base?
Conversation
Added draft cep pilot/copilot
| Status | Draft | | ||
| Author(s) | Dan Meador [email protected]> | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Status | Draft | | |
| Author(s) | Dan Meador [email protected]> | | |
| Author(s) | Dan Meador <[email protected]> | |
|
||
## Specification | ||
|
||
* Each bi-monthyl (every two month) release will have a pilot and a co-pilot.(See [CEP-8](https://github.com/conda-incubator/ceps/blob/main/cep-8.md)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Each bi-monthyl (every two month) release will have a pilot and a co-pilot.(See [CEP-8](https://github.com/conda-incubator/ceps/blob/main/cep-8.md)) | |
* Each release will have a pilot and a co-pilot. See [CEP-8](https://github.com/conda-incubator/ceps/blob/main/cep-8.md) for the release schedule. |
|
||
* Each bi-monthyl (every two month) release will have a pilot and a co-pilot.(See [CEP-8](https://github.com/conda-incubator/ceps/blob/main/cep-8.md)) | ||
* The pilot is the primary person responsible for the release, while the co-pilot provides assistance and fills in for the pilot when they are absent. | ||
* Team members will switch roles from pilot to co-pilot from one release to the next, serving for three consecutive releases. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Team members will switch roles from pilot to co-pilot from one release to the next, serving for three consecutive releases. | |
* Release managers will switch roles from pilot to co-pilot from one release to the next, serving for three consecutive releases. This is to encourage knowledge sharing. |
Release 1: Pilot: **Bob Ross(new)**, Co-pilot: **Jane Doe(new)** | ||
|
||
Release 2: Pilot: Jane Doe, Co-pilot: Bob Ross | ||
|
||
Release 3: Pilot: Jane Doe, Co-pilot: **Tobby Smith(new)** | ||
|
||
Release 4: Pilot: Tobby Smith, Co-pilot: Jane Doe | ||
|
||
Release 5: Pilot: Tobby Smith, Co-pilot: **Elvis Presley(new)** | ||
|
||
[pilots_conda](https://user-images.githubusercontent.com/6708083/233211589-10bca344-141e-407a-8edc-ca39014605eb.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mermaid chart!
flowchart TB
%% styles
classDef anna fill:#D0D0D0,stroke:#D0D0D0
classDef bert fill:#ED760E,stroke:#ED760E
classDef clay fill:#64C042,stroke:#64C042
classDef debi fill:#20214F,stroke:#20214F,color:#fff
%% role groups
subgraph pilots
pilot1(Anna):::anna
pilot2(Bert):::bert
pilot3(Bert):::bert
pilot4(Clay):::clay
pilot5(Clay):::clay
pilot6(Debi):::debi
pilot7(Debi):::debi
pilot8(Anna):::anna
end
subgraph co-pilots
copilot1(Bert):::bert
copilot2(Anna):::anna
copilot3(Clay):::clay
copilot4(Bert):::bert
copilot5(Debi):::debi
copilot6(Clay):::clay
copilot7(Anna):::anna
copilot8(Debi):::debi
end
%% Anna flow
pilot1-->copilot2
copilot7-->pilot8
%% Bob flow
copilot1-->pilot2-->pilot3-->copilot4
%% Charlie flow
copilot3-->pilot4-->pilot5-->copilot6
%% Denese flow
copilot5-->pilot6-->pilot7-->copilot8
%% Responsibility flow
pilot1-.->pilot2
pilot3-.->pilot4
pilot5-.->pilot6
pilot7-.->pilot8
copilot1-.->copilot2-.->copilot3-.->copilot4-.->copilot5-.->copilot6-.->copilot7-.->copilot8
Release 1: Pilot: **Bob Ross(new)**, Co-pilot: **Jane Doe(new)** | |
Release 2: Pilot: Jane Doe, Co-pilot: Bob Ross | |
Release 3: Pilot: Jane Doe, Co-pilot: **Tobby Smith(new)** | |
Release 4: Pilot: Tobby Smith, Co-pilot: Jane Doe | |
Release 5: Pilot: Tobby Smith, Co-pilot: **Elvis Presley(new)** | |
[pilots_conda](https://user-images.githubusercontent.com/6708083/233211589-10bca344-141e-407a-8edc-ca39014605eb.png) | |
```mermaid | |
flowchart TB | |
%% styles | |
classDef anna fill:#D0D0D0,stroke:#D0D0D0 | |
classDef bert fill:#ED760E,stroke:#ED760E | |
classDef clay fill:#64C042,stroke:#64C042 | |
classDef debi fill:#20214F,stroke:#20214F,color:#fff | |
%% role groups | |
subgraph pilots | |
pilot1(Anna):::anna | |
pilot2(Bert):::bert | |
pilot3(Bert):::bert | |
pilot4(Clay):::clay | |
pilot5(Clay):::clay | |
pilot6(Debi):::debi | |
pilot7(Debi):::debi | |
pilot8(Anna):::anna | |
end | |
subgraph co-pilots | |
copilot1(Bert):::bert | |
copilot2(Anna):::anna | |
copilot3(Clay):::clay | |
copilot4(Bert):::bert | |
copilot5(Debi):::debi | |
copilot6(Clay):::clay | |
copilot7(Anna):::anna | |
copilot8(Debi):::debi | |
end | |
%% Anna flow | |
pilot1-->copilot2 | |
copilot7-->pilot8 | |
%% Bob flow | |
copilot1-->pilot2-->pilot3-->copilot4 | |
%% Charlie flow | |
copilot3-->pilot4-->pilot5-->copilot6 | |
%% Denese flow | |
copilot5-->pilot6-->pilot7-->copilot8 | |
%% Responsibility flow | |
pilot1-.->pilot2 | |
pilot3-.->pilot4 | |
pilot5-.->pilot6 | |
pilot7-.->pilot8 | |
copilot1-.->copilot2-.->copilot3-.->copilot4-.->copilot5-.->copilot6-.->copilot7-.->copilot8 |
|
||
## Abstract | ||
|
||
This proposal aims to establish a clear and efficient release process for conda (and other conda projects) by implementing a pilot and co-pilot system, ensuring a smooth transfer of responsibilities between team members and the continuous improvement of release quality. There will also be one "jump seat" available for those that want to sit in and observe the release process, but not be responsible for any of it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This proposal aims to establish a clear and efficient release process for conda (and other conda projects) by implementing a pilot and co-pilot system, ensuring a smooth transfer of responsibilities between team members and the continuous improvement of release quality. There will also be one "jump seat" available for those that want to sit in and observe the release process, but not be responsible for any of it. | |
This proposal aims to establish a clear and efficient release process for conda (and other conda projects) by implementing a pilot and co-pilot system, ensuring a smooth transfer of responsibilities between release managers and the continuous improvement of release quality. There will also be one "jump seat" available for those that want to sit in and observe the release process, but not be responsible for any of it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@LtDan33 We were also thinking of the a QA member in a piece for release. Do we mention that as well
|
||
* Responsible for certain roles or activities for a given conda (or another project) version. | ||
* Be an extra set of eyes to help the pilot get to the correct outcome. | ||
* Help with communication with the team and the broader community. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Help with communication with the team and the broader community. | |
* Help with communication across the broader community. |
|
||
## Rationale | ||
|
||
The pilot and co-pilot model has been proven to work well in other projects, ensuring that there is always at least one person with the necessary experience and knowledge to handle releases, while also providing opportunities for other team members to learn and grow. This inspiration came from seeing how PyCon US has run their conference where the same city runsthe conference twice in a row, with the second year providing an opportunity for the next years city to learn from the previous years city. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pilot and co-pilot model has been proven to work well in other projects, ensuring that there is always at least one person with the necessary experience and knowledge to handle releases, while also providing opportunities for other team members to learn and grow. This inspiration came from seeing how PyCon US has run their conference where the same city runsthe conference twice in a row, with the second year providing an opportunity for the next years city to learn from the previous years city. | |
The pilot and co-pilot model has been proven to work well in other projects, ensuring that there is always at least one person with the necessary experience and knowledge to handle releases, while also providing opportunities for others to learn and grow. This inspiration came from seeing how PyCon US has run their conference where the same city runs the conference twice in a row, with the second year providing an opportunity for the next years city to learn from the previous years city. |
|
||
## Alternatives | ||
|
||
1. Have a dedicated release manager role, but this would limit the opportunities for team members to learn and grow, and it may create a single point of failure if the release manager becomes unavailable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. Have a dedicated release manager role, but this would limit the opportunities for team members to learn and grow, and it may create a single point of failure if the release manager becomes unavailable. | |
1. Have a dedicated release manager role, but this would limit the opportunities for the community at large to learn and grow, and it may create a single point of failure if the release manager becomes unavailable. |
Q) Conda broke on a Saturday due to a late Friday release, who should fix it? | ||
|
||
A) The pilot is accountable for ensuring that critical conda issues due to the release are addressed. We simply have too many users that could be in an unusable state to not address this. Its recommended that we don’t release on a Friday for this reason. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Per CEP-8, Friday releases are not allowed, the absolute latest in a week a release can occur is on a Thursday.
## FAQ | ||
|
||
Q) Who can be a Pilot/copilot on a release? | ||
A) Must be a core conda team member. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A) Must be a core conda team member. | |
A) Must be a maintainer of conda (or other conda project being released). |
This is a CEP that proposes a formal release responsibility cadence.
Abstract:
This proposal aims to establish a clear and efficient release process for conda (and other conda projects) by implementing a pilot and co-pilot system, ensuring a smooth transfer of responsibilities between team members and the continuous improvement of release quality. There will also be one "jump seat" available for those that want to sit in and observe the release process, but not be responsible for any of it.