* Write access to all main CiviCRM git repos (civicrm-{core,packages,backdrop,drupal,joomla,wordpress})
* Access to CiviCRM Jenkins (https://test.civicrm.org)
The user `releaser` on `latest.civicrm.org` has a suitable configuration in `~/src/master`.
To start a session, login to that account and run:
```
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
```
## 1: Sanity checks
* Note the original branch, such as `master`.
* Note the intended version, such as `5.1` or `5.3`. (In the rest of this document, we'll refer to `5.X`, but `5.X` should be adjusted to circumstance.)
* In `civicrm-core.git` repo, check that the code in `master` correctly references `5.X.0`:
For each git repo, we want to create a new branch for 5.X. This follows a naming convention:
| repo | original branch | new branch |
|------|-----------------|------------|
|civicrm-core|master|5.X|
|civicrm-packages|master|5.X|
|civicrm-backdrop|1.x-master|1.x-5.X|
|civicrm-drupal|6.x-master|6.x-5.X|
|civicrm-drupal|7.x-master|7.x-5.X|
|civicrm-drupal|8.x-master|8.x-5.X|
|civicrm-joomla|master|5.X|
|civicrm-wordpress|master|5.X|
The commands `git scan branch` and `git scan push` will do this – if you have a copy of each repo.
A safe way to make a clean copy of every repo is to create a new `dist` build (`civibuild create dist`). On `latest.civicrm.org`, there's already a copy in `~/src/master`. Either way, you should make sure it's up-to-date on all relevant branches -- then make new branches:
```bash
## Ensure that you have a clean, up-to-date copy of the `master` branch.
cd ~/src/master
git scan foreach -c'pwd; git branch; echo'
git scan up
## Fixme: for now you need to manually add the extra drupal branches