(dev/release#9) distmaker - Report on head for commit civicrm-drupal-8
authorTim Otten <totten@civicrm.org>
Wed, 28 Aug 2019 00:56:40 +0000 (17:56 -0700)
committerTim Otten <totten@civicrm.org>
Wed, 28 Aug 2019 04:20:48 +0000 (21:20 -0700)
commit3476a08c1264fb3357b6407bed63f88162dc8be4
treef1386e92aec7b1cd93c3fbc78f4539024622b7b9
parent31ca8316cbcdbfba51b9295d9598d71811b7f308
(dev/release#9) distmaker - Report on head for commit civicrm-drupal-8

Overview
--------

The general goal is to produce tags for `civicrm-drupal-8` during the release
process.

The workflow for producing release tags is generally as follows:

* Run `distmaker` to prepare a release candidate (a collection of files - e.g.
  `civicrm-5.18.0-drupal.tar.gz`, `civicrm-5.18.0-joomla.zip`, `civicrm-5.18.0.json`, etc).
  Note that the JSON file describes the build (i.e. the list of inputs/git-commits and
  outputs/tarballs).
* Use the candidate for `civihydra` testing (i.e. use the tarballs for normal GUI-based installation)
* If they work, then run `releaser` - which takes the release candidate files and:
    * Pushes the tarballs out to CDNs
    * Pushes the git tags to Github

Before
------

* The JSON report describes inputs from the following repos:
  `civicrm-{backdrop,core,drupal,joomla,packages,wordpress}.git`
* To create a complete set of build artifacts, one should have file tree:
    ```
    src/ (civicrm-core.git)
      WordPress/ (civicrm-wordpress.git)
      backdrop/ (civicrm-backdrop.git)
      drupal/ (civicrm-drupal.git)
      joomla/ (civicrm-joomla.git)
      packages/ (civicrm-packages.git)
    ```

After
-----

* The JSON report *additionally* reports on `civicrm-drupal-8.git`
* To create a complete set of build artifacts, one should also have `drupal-8` in the tree:
    ```
    src/ (civicrm-core.git)
      WordPress/ (civicrm-wordpress.git)
      backdrop/ (civicrm-backdrop.git)
      drupal-8/ (civicrm-drupal-8.git)
      drupal/ (civicrm-drupal.git)
      joomla/ (civicrm-joomla.git)
      packages/ (civicrm-packages.git)
    ```

Technical Details
-----------------

* To produce a report with the D8 commits, one needs have a copy of
  `drupal-8/` (`civicrm-drupal-8.git`).
* However, `distmaker` can still be used without `drupal-8`.  (As in the
  past, so this is still: *if you're only building the Joomla zip file, then
  you don't need the code for drupal-8 or WordPress*).
* There will be a separate patch to:
    * Checkout `drupal-8` when CI does an automated build
    * Use the JSON to create tags
.gitignore
distmaker/distmaker.conf.dist
distmaker/distmaker.sh
distmaker/dists/repo-report.sh
distmaker/utils/repo-report.php