Skip to content
Snippets Groups Projects
4.7-final.md 3.55 KiB
Newer Older
  • Learn to ignore specific revisions
  • # CiviCRM v4.7.x: Publish a final release
    
    
    totten's avatar
    totten committed
    #  <span style="color:red">__WARNING__: Not updated since 5.x</span>
    
    
    ## Prerequisites
    
    See [Prerequisites](any-prereq.md)
    
    ## 1: Sanity checks
    
    
    totten's avatar
    totten committed
    * Check release notes: https://github.com/civicrm/civicrm-core/tree/4.7.X-rc/release-notes
    * In Jenkins, review the scheduled tests for `4.7.X-rc` and determine if anything should block the release.
    
    totten's avatar
    totten committed
        * https://test.civicrm.org/job/CiviCRM-Core-Matrix/
        * https://test.civicrm.org/job/CiviCRM-Ext-Matrix/
    
    totten's avatar
    totten committed
    * Compare the git revisions
        * https://download.civicrm.org/latest/civicrm-RC-drupal.tar.gz/inspect
        * https://github.com/civicrm/civicrm-core/commits/4.7.X-rc
        * https://github.com/civicrm/civicrm-backdrop/commits/1.x-4.7.X-rc
        * https://github.com/civicrm/civicrm-drupal/commits/6.x-4.7.X-rc
        * https://github.com/civicrm/civicrm-drupal/commits/7.x-4.7.X-rc
        * https://github.com/civicrm/civicrm-joomla/commits/4.7.X-rc
        * https://github.com/civicrm/civicrm-packages/commits/4.7.X-rc
        * https://github.com/civicrm/civicrm-wordpress/commits/4.7.X-rc
    
    
    ## 2: Identify the final RC
    
    
    Determine the identity of the final release candidate:
    
    ```
    gsutil ls gs://civicrm-build/*rc/*json
    ```
    
    For example, we might pick `gs://civicrm-build/4.7.19-rc/civicrm-4.7.19-201705030600.json`.
    
    
    
    You can do the full process in one command:
    
    ```
    
    totten's avatar
    totten committed
    cd ~/src/4.7
    
    releaser -v gs://civicrm-build/4.7.19-rc/civicrm-4.7.19-201705030600.json get sign tag publish
    
    ```
    
    or do the steps individually:
    
    ```
    
    totten's avatar
    totten committed
    cd ~/src/4.7
    
    totten's avatar
    totten committed
    ## Download and rename the RC tarballs
    
    releaser -v gs://civicrm-build/4.7.19-rc/civicrm-4.7.19-201705030600.json get
    
    
    ## Generate signatures for tarballs
    
    releaser -v gs://civicrm-build/4.7.19-rc/civicrm-4.7.19-201705030600.json sign
    
    totten's avatar
    totten committed
    ## Generate tags in each repo (dry run)
    
    releaser -v gs://civicrm-build/4.7.19-rc/civicrm-4.7.19-201705030600.json tag -N
    
    totten's avatar
    totten committed
    ## Publish tarballs to Sourceforge and Gcloud (dry run)
    
    releaser -v gs://civicrm-build/4.7.19-rc/civicrm-4.7.19-201705030600.json publish -N
    
    totten's avatar
    totten committed
    ## Generate tags in each repo (really)
    
    releaser -v gs://civicrm-build/4.7.19-rc/civicrm-4.7.19-201705030600.json tag -f
    
    totten's avatar
    totten committed
    ## Publish tarballs to Sourceforge and Gcloud (really)
    
    releaser -v gs://civicrm-build/4.7.19-rc/civicrm-4.7.19-201705030600.json publish
    
    totten's avatar
    totten committed
    You might want to spot-check a few URLs to ensure the tags were published, e.g.
    
    
    totten's avatar
    totten committed
    * https://github.com/civicrm/civicrm-backdrop/tree/1.x-4.7.X
    * https://github.com/civicrm/civicrm-core/tree/4.7.X
    * https://github.com/civicrm/civicrm-drupal/tree/6.x-4.7.X
    * https://github.com/civicrm/civicrm-drupal/tree/7.x-4.7.X
    * https://github.com/civicrm/civicrm-drupal/tree/8.x-4.7.X
    * https://github.com/civicrm/civicrm-joomla/tree/4.7.X
    * https://github.com/civicrm/civicrm-packages/tree/4.7.X
    * https://github.com/civicrm/civicrm-wordpress/tree/4.7.X
    
    ## 4: 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 4.7.19 --date=2017-05-03 --security=false
    
    ## Make the change persistent.
    git commit versions.json
    git push origin master
    ```
    
    ## 5: Check default on `sourceforge.net`
    
    Browse https://sourceforge.net/projects/civicrm/files/civicrm-stable - confirm that:
    
    * The new upload is present.
    * The new `civicrm-X.Y.Z-drupal.tar.gz` is the default download.
    
    Note that it may take some time to reflect default download on `sf.net`.