Skip to content
Snippets Groups Projects
Commit a908cf6a authored by totten's avatar totten
Browse files

Initial draft of 5.x-final and 5.x-patch

parent 38adb9a9
No related branches found
No related tags found
No related merge requests found
# CiviCRM v5.x.0: Publish a stable release
## Prerequisites
See [Prerequisites](any-prereq.md)
## 1: Set the final version to `5.X.0`
```bash
cd ~/src/master
git checkout 5.X
git pull --ff-only origin 5.X
./tools/bin/scripts/set-version.php 5.X.0 --commit
git push origin 5.X
```
## 2: Sanity checks
* Check release notes: https://github.com/civicrm/civicrm-core/tree/5.X/release-notes
* In Jenkins, review the scheduled tests for `5.X` and determine if anything should block the release.
* https://test.civicrm.org/job/CiviCRM-Core-Matrix/
* https://test.civicrm.org/job/CiviCRM-Ext-Matrix/
* Compare the git revisions
* https://download.civicrm.org/latest/civicrm-RC-drupal.tar.gz/inspect
* https://github.com/civicrm/civicrm-core/commits/5.X
* https://github.com/civicrm/civicrm-backdrop/commits/1.x-5.X
* https://github.com/civicrm/civicrm-drupal/commits/6.x-5.X
* https://github.com/civicrm/civicrm-drupal/commits/7.x-5.X
* https://github.com/civicrm/civicrm-joomla/commits/5.X
* https://github.com/civicrm/civicrm-packages/commits/5.X
* https://github.com/civicrm/civicrm-wordpress/commits/5.X
## 3: Prepare and identify the final tarballs
In Jenkins, ensure that the final tarballs have been prepared. Run the job manually if you're impatient.
* https://test.civicrm.org/job/CiviCRM-Publish/
After running, determine the identity of the final build:
```
gsutil ls gs://civicrm-build/5.2/*json
```
For example, we might pick `gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json`.
## 4: Publish
You can do the full process in one command:
```
cd ~/src/master
releaser gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json --get --sign --tag --publish
```
or do the steps individually:
```
cd ~/src/master
## Download and rename the RC tarballs
releaser gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json --get
## Generate signatures for tarballs
releaser gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json --sign
## Generate tags in each repo (dry run)
releaser gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json --tag -n
## Publish tarballs to Sourceforge and Gcloud (dry run)
releaser gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json --publish -n
## Generate tags in each repo (really)
releaser gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json --tag -f
## Publish tarballs to Sourceforge and Gcloud (really)
releaser gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json --publish
```
You might want to spot-check a few URLs to ensure the tags were published, e.g.
* https://github.com/civicrm/civicrm-backdrop/tree/1.x-5.X.0
* https://github.com/civicrm/civicrm-core/tree/5.X.0
* https://github.com/civicrm/civicrm-drupal/tree/6.x-5.X.0
* https://github.com/civicrm/civicrm-drupal/tree/7.x-5.X.0
* https://github.com/civicrm/civicrm-drupal/tree/8.x-5.X.0
* https://github.com/civicrm/civicrm-joomla/tree/5.X.0
* https://github.com/civicrm/civicrm-packages/tree/5.X.0
* https://github.com/civicrm/civicrm-wordpress/tree/5.X.0
## 5: Update `versions.json`
Services such as the `civicrm.org` download page and the in-app version
check depend on a file named `versions.json`. Update this.
```
## Find and examine the current list of releases.
cd /var/www/latest.civicrm.org/public/
ls -la versions.json
./bin/pb release:list
## Add the new release. Be sure to adjust versions/dates.
./bin/pb release:add 5.2.0 --date=2018-05-03 --security=false
## Make the change persistent.
git commit versions.json
git push origin master
```
## 6: Set default on `sourceforge.net`
Log into https://sourceforge.net/projects/civicrm/files/civicrm-stable and set the latest Drupal version to be the default download.
Eg: After 4.6.8 release, go to https://sourceforge.net/projects/civicrm/files/civicrm-stable/4.6.8/ . Click on "i" for `civicrm-4.6.8-drupal.tar.gz`, then select all "Default Download For" and "Save".
![Marking a default release in SourceForge](/doc/images/SourceforgeDefaultDownload.png)
Note that it takes some time to reflect default download on `sf.net`
# CiviCRM v5.x.x: Publish a patch release
## Prerequisites
See [Prerequisites](any-prereq.md)
## 1: (If you haven't already) Set the final version to `5.X.Y`
```bash
cd ~/src/master
git checkout 5.X
git pull --ff-only origin 5.X
./tools/bin/scripts/set-version.php 5.X.Y --commit
git push origin 5.X
```
## 2: (If you haven't already) Backport patches to `5.X` branch
e.g.
```bash
cd ~/src/master
git checkout 5.X
git cherry-pick abcd1234abcd1234
git push origin 5.X
```
## 3: Prepare and identify the final tarballs
In Jenkins, ensure that the final tarballs have been prepared. Run the job manually if you're impatient.
* https://test.civicrm.org/job/CiviCRM-Publish/
After running, determine the identity of the final build:
```
gsutil ls gs://civicrm-build/5.2/*json
```
For example, we might pick `gs://civicrm-build/5.2/civicrm-5.2.1-201705030600.json`.
## 4: Publish
You can do the full process in one command:
```
cd ~/src/master
releaser gs://civicrm-build/5.2/civicrm-5.2.1-201705030600.json --get --sign --tag --publish
```
or do the steps individually:
```
cd ~/src/master
## Download and rename the RC tarballs
releaser gs://civicrm-build/5.2/civicrm-5.2.1-201705030600.json --get
## Generate signatures for tarballs
releaser gs://civicrm-build/5.2/civicrm-5.2.1-201705030600.json --sign
## Generate tags in each repo (dry run)
releaser gs://civicrm-build/5.2/civicrm-5.2.1-201705030600.json --tag -n
## Publish tarballs to Sourceforge and Gcloud (dry run)
releaser gs://civicrm-build/5.2/civicrm-5.2.1-201705030600.json --publish -n
## Generate tags in each repo (really)
releaser gs://civicrm-build/5.2/civicrm-5.2.1-201705030600.json --tag -f
## Publish tarballs to Sourceforge and Gcloud (really)
releaser gs://civicrm-build/5.2/civicrm-5.2.1-201705030600.json --publish
```
You might want to spot-check a few URLs to ensure the tags were published, e.g.
* https://github.com/civicrm/civicrm-backdrop/tree/1.x-5.X.1
* https://github.com/civicrm/civicrm-core/tree/5.X.1
* https://github.com/civicrm/civicrm-drupal/tree/6.x-5.X.1
* https://github.com/civicrm/civicrm-drupal/tree/7.x-5.X.1
* https://github.com/civicrm/civicrm-drupal/tree/8.x-5.X.1
* https://github.com/civicrm/civicrm-joomla/tree/5.X.1
* https://github.com/civicrm/civicrm-packages/tree/5.X.1
* https://github.com/civicrm/civicrm-wordpress/tree/5.X.1
## 5: Update `versions.json`
Services such as the `civicrm.org` download page and the in-app version
check depend on a file named `versions.json`. Update this.
```
## Find and examine the current list of releases.
cd /var/www/latest.civicrm.org/public/
ls -la versions.json
./bin/pb release:list
## Add the new release. Be sure to adjust versions/dates.
./bin/pb release:add 5.2.1 --date=2018-05-03 --security=false
## Make the change persistent.
git commit versions.json
git push origin master
```
## 6: Set default on `sourceforge.net`
Log into https://sourceforge.net/projects/civicrm/files/civicrm-stable and set the latest Drupal version to be the default download.
Eg: After 4.6.8 release, go to https://sourceforge.net/projects/civicrm/files/civicrm-stable/4.6.8/ . Click on "i" for `civicrm-4.6.8-drupal.tar.gz`, then select all "Default Download For" and "Save".
![Marking a default release in SourceForge](/doc/images/SourceforgeDefaultDownload.png)
Note that it takes some time to reflect default download on `sf.net`
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment