Skip to content
Snippets Groups Projects
4.7-rc.md 2.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • # CiviCRM v4.7.x: Publish a release candidate
    
    ## Pre-requisites
    
     * Write access to all main CiviCRM git repos (civicrm-{core,packages,backdrop,drupal,joomla,wordpress})
     * Access to CiviCRM Jenkins (https://test.civicrm.org)
    
    ## 1: Sanity checks
    
     * Note the original branch, such as `master`.
     * Note the intended version, such as `4.7.8` or `4.7.9`. (In the rest of this document, we'll refer to `4.7.X`, but `4.7.X` should be adjusted to circumstance.)
       * In civicrm-core.git repo, check that the code in `master` correctly references `4.7.X`:
         * https://github.com/civicrm/civicrm-core/blob/master/xml/version.xml
         * https://github.com/civicrm/civicrm-core/blob/master/sql/civicrm_generated.mysql
         * https://github.com/civicrm/civicrm-core/tree/master/CRM/Upgrade/Incremental
       *  In Jenkins, review the scheduled tests for `master` and determine if anything should block the RC.
         * https://test.civicrm.org/job/CiviCRM-Core-Matrix/
    
    ## 2: Make a branch
    
    For each git repo, we want to create a new branch for the RC. This follows a naming convention:
    
    
    | repo | original branch | new branch |
    |------|-----------------|------------|
    |civicrm-core|master|4.7.X-rc|
    |civicrm-packages|master|4.7.X-rc|
    |civicrm-backdrop|1.x-master|1.x-4.7.X-rc|
    |civicrm-drupal|6.x-master|6.x-4.7.X-rc|
    |civicrm-drupal|7.x-master|7.x-4.7.X-rc|
    |civicrm-drupal|8.x-master|8.x-4.7.X-rc|
    |civicrm-joomla|master|4.7.X-rc|
    |civicrm-wordpress|master|4.7.X-rc|
    
    The commands `git scan branch` and `git scan push` will do this – if you have a copy of each repo.
    
    A safe way to make a clean copy of every repo is to create a new `dist` build:
    
    ```bash
    ## Clone all the repos. Ensure that you have a clean, up-to-date copy of the `master` branch.
    civibuild create dist 
    cd ~/buildkit/build/dist/src
    git scan foreach -c 'pwd; git branch; echo'
    git scan status
     
    ## Fixme: for now you need to manually add the extra drupal branches
    cd drupal
    git checkout 6.x-master && git pull origin 6.x-master
    git checkout 8.x-master && git pull origin 8.x-master
    git checkout 7.x-master && git pull origin 7.x-master
    cd ..
     
    ## Make branches (preview)
    git scan branch 4.7.X-rc master -p -n -T
     
    ## Make branches (for real)
    git scan branch 4.7.X-rc master -p
     
    ## Push the branches (preview)
    git scan push -p origin 4.7.X-rc -n -T
     
    ## Push the branches (for real)
    git scan push -p origin 4.7.X-rc
    ```
    
    ## 3: Publish tarballs
    
     * Go to https://test.civicrm.org/job/CiviCRM-Publish/
     * Check to see if the new branch is being built automatically. If not:
       * Login (if you haven't already)
       * Click "Build with parameters"
       * For the branch name, enter your chosen `4.7.X-rc`.
    
    ## 4: Bump version number on `master` to  `4.7.Y`
    
    The original branch, "master", should continue development with the next version, e.g. "4.7.Y".
    
    ```bash
    cd ~/buildkit/build/dist/src
    git checkout master
    
    git pull --ff-only origin master
    
    ./tools/bin/scripts/set-version.php 4.7.Y --commit
    
    git push origin master