Skip to content
Snippets Groups Projects
5.x-final.md 4.57 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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 open PRs for `5.X`: https://github.com/civicrm/civicrm-core/pulls
    
    * Check regressions/criticals in Gitlab:
    
        * https://lab.civicrm.org/groups/dev/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=regression
        * https://lab.civicrm.org/groups/dev/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=prioritised
    
    totten's avatar
    totten committed
    * Perform a UI-level installation on some hydra sites. [http://site-list.test-1.civicrm.org:8001/?filter=hydra-*](http://site-list.test-1.civicrm.org:8001/?filter=hydra-*)
    
      (If build times look askew, check logs at https://test.civicrm.org/view/Sites/job/hydra-sites/)
    
    * Check release notes: https://github.com/civicrm/civicrm-core/blob/5.X/release-notes.md
    
    * 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/
    
    totten's avatar
    totten committed
        * https://test.civicrm.org/job/CiviCRM-E2E-Matrix/
    
    totten's avatar
    totten committed
        * https://test.civicrm.org/job/CiviCRM-D8-Matrix/
    
    totten's avatar
    totten committed
        * https://test.civicrm.org/job/CiviCRM-Core-Matrix-Timing/
    
    totten's avatar
    totten committed
    * 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/
    
    * Compare the git revisions
    
        * Current git repos: `civi-git-table --fetch 5.X`
        * Draft tarball: https://download.civicrm.org/latest/branch/5.X/LATEST/civicrm-X.Y.Z-drupal-LATEST.tar.gz/inspect
    
    
    ## 3: Prepare and identify the final tarballs
    
    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
    
    
    For a typical release, you can run the full process in one command:
    
    
    ```
    cd ~/src/master
    
    releaser -v gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json get sign tag publish
    
    If this branch will have future ESR support, then you should also publish releases to `lab.c.o/esr/*`.
    
    releaser -v gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json get sign tag publish esr-tag esr-publish
    ```
    
    Note: You may run tasks individually, and you may do dry-runs (`--dry-run`/`-N`). For example
    
    ## Publish tarballs to Google Cloud and Sourceforge (dry run)
    
    releaser -v gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json publish -N
    
    ## Publish tarballs to Google Cloud and Sourceforge (really)
    
    releaser -v gs://civicrm-build/5.2/civicrm-5.2.0-201705030600.json publish
    
    totten's avatar
    totten committed
    To ensure the various tags were published and match the branches, use `civi-git-table`, as in:
    
    ```
    civi-git-table --fetch 5.2.0 5.2
    ```
    
    
    ## 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 branches.
    
    totten's avatar
    totten committed
    pushd /var/www/latest.civicrm.org/public/
    
    ls -la versions.json
    
    ./bin/pb branch:list
    
    ## Add the new branch. Be sure to adjust versions.
    ./bin/pb branch:status 5.2 stable
    
    
    ## Add the new release. Be sure to adjust versions/dates.
    ./bin/pb release:add 5.2.0 --date=2018-05-03 --security=false
    
    
    totten's avatar
    totten committed
    ## If appropriate, set the deprecation and eol dates for the previous
    ## version.
    ./bin/pb branch:status 5.1 -D 2018-06-10 -E 2018-06-15
    
    totten's avatar
    totten committed
    Preview the upgrade messages that will be displayed on various versions.
    This example previews the perspective from 5.0.2 and 5.8.0 (adjust to taste):
    
    http://latest.civicrm.org/stable.php?format=devPreview&versions=5.0.2,5.8.0
    
    
    totten's avatar
    totten committed
    Finally:
    
    ```
    ## Make the change persistent.
    git commit versions.json
    git push origin master
    
    totten's avatar
    totten committed
    
    ## Go back
    popd
    
    totten's avatar
    totten committed
    ```
    
    
    ## 6: Make new versions visible on download sites
    
    totten's avatar
    totten committed
    If there is a change in ESR status, then:
    
    * Check/update the next 6 month projections on https://lab.civicrm.org/dev/release
    * Check/update the current status on https://lab.civicrm.org/esr/core/-/wikis/home.
    
    totten's avatar
    totten committed
    
    
    totten's avatar
    totten committed
    Log into https://civicrm.org/user and clear the page-cache in https://civicrm.org/admin/config/development/performance
    
    totten's avatar
    totten committed
    
    <!-- civicrm.org is in a migration from D7=>D8. These details may be in flux until that settles. -->
    
    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.
    
    totten's avatar
    totten committed
    
    
    Note that it may take some time to reflect default download on `sf.net`.