Skip to content
Snippets Groups Projects
4.6-final.md 3.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • # CiviCRM v4.6.x: Publish a final release
    
    
    ## Prerequisites
    
    See [Prerequisites](any-prereq.md)
    
    ## 1: Sanity checks
    
    
    totten's avatar
    totten committed
    * Note the original branch, such as `4.6`.
    * Note the intended version, such as `4.6.28` or `4.6.29`.
        * In civicrm-core.git repo, check that the code in `4.6` correctly references `4.6.X`:
            * https://github.com/civicrm/civicrm-core/blob/4.6/xml/version.xml
            * https://github.com/civicrm/civicrm-core/blob/4.6/sql/civicrm_generated.mysql
            * https://github.com/civicrm/civicrm-core/tree/4.6/CRM/Upgrade/Incremental
        *  In Jenkins, review the scheduled tests for `4.6` and determine if anything should block the RC.
            * https://test.civicrm.org/job/CiviCRM-Core-Matrix/
        * Compare the git revisions
            * https://download.civicrm.org/latest/civicrm-46NIGHTLY-drupal.tar.gz/inspect
            * https://github.com/civicrm/civicrm-core/commits/4.6
            * https://github.com/civicrm/civicrm-drupal/commits/6.x-4.6
            * https://github.com/civicrm/civicrm-drupal/commits/7.x-4.6
            * https://github.com/civicrm/civicrm-joomla/commits/4.6
            * https://github.com/civicrm/civicrm-packages/commits/4.6
            * https://github.com/civicrm/civicrm-wordpress/commits/4.6
    
    ## 2: Identify the final RC
    
    
    Determine the identity of the final release candidate:
    
    ```
    gsutil ls gs://civicrm-build/4.6/*json
    ```
    
    For example, we might pick `gs://civicrm-build/4.6/civicrm-4.6.28-201705030600.json`.
    
    
    ## 3: Publish
    
    
    You can do the full process in one command:
    
    ```
    cd /path/to/civicrm
    
    releaser -v gs://civicrm-build/4.6/civicrm-4.6.28-201705030600.json get sign tag publish
    
    ```
    
    or do the steps individually:
    
    ```
    cd /path/to/civicrm
    
    
    totten's avatar
    totten committed
    ## Download and rename the RC tarballs
    
    releaser -v gs://civicrm-build/4.6/civicrm-4.6.28-201705030600.json get
    
    
    ## Generate signatures for tarballs
    
    releaser -v gs://civicrm-build/4.6/civicrm-4.6.28-201705030600.json sign
    
    totten's avatar
    totten committed
    ## Generate tags in each repo (dry run)
    
    releaser -v gs://civicrm-build/4.6/civicrm-4.6.28-201705030600.json tag -N
    
    totten's avatar
    totten committed
    ## Publish tarballs to Sourceforge and Gcloud (dry run)
    
    releaser -v gs://civicrm-build/4.6/civicrm-4.6.28-201705030600.json publish -N
    
    totten's avatar
    totten committed
    ## Generate tags in each repo  (really)
    
    releaser -v gs://civicrm-build/4.6/civicrm-4.6.28-201705030600.json tag -f
    
    totten's avatar
    totten committed
    ## Publish tarballs to Sourceforge and Gcloud (really)
    
    releaser -v gs://civicrm-build/4.6/civicrm-4.6.28-201705030600.json publish
    
    ## 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.6.28 --date=2017-05-03 --security=false
    
    ## Make the change persistent.
    git commit versions.json
    git push origin master
    ```
    
    ## 5: Bump version
    
    
    ```
    cd ~/src/4.6
    git checkout 4.6
    git pull --ff-only origin 4.6
    ./tools/bin/scripts/set-version.php 4.6.Y --commit
    git push origin 4.6
    ```