All commands need to run in a suitably configured environment.
## 1: Sanity checks
* Note the original branch, such as `master`.
...
...
@@ -17,13 +19,7 @@ See [Prerequisites](any-prereq.md)
## 2: Update versions and create branches
We will raise the version numbers and create branches on each CiviCRM repository.
This requires a working directory with copies of every core repository (ie `civicrm-core`, `civicrm-packages`, `civicrm-backdrop`, etc). If you don't already have one, then either:
* Create a project (`civibuild create dist`) and use `build/dist/src/`, or...
* Login to `latest.civicrm.org` and use `~/src/master`.
The script `givi wf:rc` will perform the necessary updates:
The script `givi wf:rc` performs the necessary updates:
* Write access to all main CiviCRM GitHub repos (`civicrm-{core,packages,backdrop,drupal,joomla,wordpress}`)
* Write access to Google Cloud Storage (`civicrm` and `civicrm-build` buckets)
...
...
@@ -7,12 +9,21 @@
* Admin access to CiviCRM Jenkins (https://test.civicrm.org)
* Import the CiviCRM GPG keypair (`7A1E75CB`)
* Local copy of [buildkit](https://github.com/civicrm/civicrm-buildkit/)
* Local clones of all main CiviCRM git repos (e.g. `mkdir src; cd src; gitify all --skip-gencode` or `cividist create dist`)
* Local clones of all main CiviCRM git repos. Here are a few ways to create them:
* Create a `dist` project (`civibuild create dist`) and use `build/dist/src/`
* Create an empty folder and run `gitify` (eg `mkdir ~/src/master; cd ~/src/master; gitify all --skip-gencode`)
## Living Environment
The host `latest.civicrm.org` has a user `releaser` with a generally suitable environment in `~/src/master`
(although you will need to retrieve keys from an external credential store).
<!-- Splitting credentials limits the impact if `latest.c.o` is compromised. -->
The user `releaser` on `latest.civicrm.org` has a suitable configuration in `~/src/4.6`, `~/src/4.7`, and `~/src/master`.
To start a session, login to that account and run:
```
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
```
You should generally use `tmux` for the session. This mitigates the risk that SSH interruptions will leave the release process with an inconsistent state.