From a908cf6a310165a5af3b3b8f1e484af05c04d145 Mon Sep 17 00:00:00 2001 From: Tim Otten <totten@civicrm.org> Date: Thu, 15 Mar 2018 15:39:19 -0700 Subject: [PATCH] Initial draft of 5.x-final and 5.x-patch --- doc/5.x-final.md | 117 +++++++++++++++++++++++++++++++++++++++++++++++ doc/5.x-patch.md | 112 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 229 insertions(+) diff --git a/doc/5.x-final.md b/doc/5.x-final.md index 8fded30..02696fb 100644 --- a/doc/5.x-final.md +++ b/doc/5.x-final.md @@ -1 +1,118 @@ # 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". + + + +Note that it takes some time to reflect default download on `sf.net` diff --git a/doc/5.x-patch.md b/doc/5.x-patch.md index 5dbdaf2..49aaf5d 100644 --- a/doc/5.x-patch.md +++ b/doc/5.x-patch.md @@ -1 +1,113 @@ # 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". + + + +Note that it takes some time to reflect default download on `sf.net` -- GitLab