anchor.diff:  Tests are ran for versions that are not yet released but with which the current version will be compatible with.
   These are automatically checked out and built from source.
   See link:./buildSrc/src/main/java/org/elasticsearch/gradle/VersionCollection.java[VersionCollection]
  -and link:./distribution/bwc/build.gradle[distribution/bwc/build.gradle] 
  +and link:./distribution/bwc/build.gradle[distribution/bwc/build.gradle]
   for more information.
   
   When running `./gradlew check`, minimal bwc checks are also run against compatible versions that are not yet released.
  
positive.code: vagrant plugin install vagrant-cachier
  --------------------------------------
  +
  . Validate your installed dependencies:
  +
  -------------------------------------
  ./gradlew :qa:vagrant:vagrantCheckVersion
  -------------------------------------
  +
  . Download and smoke test the VMs with `./gradlew vagrantSmokeTest` or
  `./gradlew -Pvagrant.boxes=all vagrantSmokeTest`. The first time you run this it will
  download the base images and provision the boxes and immediately quit. Downloading all
  the images may take a long time. After the images are already on your machine, they won't
  be downloaded again unless they have been updated to a new version.
  +
  . Run the tests with `./gradlew packagingTest`. This will cause Gradle to build
  the tar, zip, and deb packages and all the plugins. It will then run the tests
  on ubuntu-1604 and centos-7. We chose those two distributions as the default
  because they cover deb and rpm packaging and SyvVinit and systemd.
  
  You can choose which boxes to test by setting the `-Pvagrant.boxes` project property. All of
  the valid options for this property are:
  
  * `sample` - The default, only chooses ubuntu-1604 and centos-7
  * List of box names, comma separated (e.g. `oel-7,fedora-28`) - Chooses exactly the boxes listed.
  * `linux-all` - All linux boxes.
  * `windows-all` - All Windows boxes. If there are any Windows boxes which do not
  have images available when this value is provided, the build will fail.
  * `all` - All boxes we test. If there are any boxes (e.g. Windows) which do not have images
  available when this value is provided, the build will fail.
  
  For a complete list of boxes on which tests can be run, run `./gradlew :qa:vagrant:listAllBoxes`.
  For a list of boxes that have images available from your configuration, run
  `./gradlew :qa:vagrant:listAvailableBoxes`
  
  Note that if you interrupt gradle in the middle of running these tasks, any boxes started
  will remain running and you'll have to stop them manually with `./gradlew stop` or
  `vagrant halt`.
  
  All the regular vagrant commands should just work so you can get a shell in a
  
negative.code: 
  === Iterating on packaging tests
  
  Because our packaging tests are capable of testing many combinations of OS
  (e.g., Windows, Linux, etc.), package type (e.g., zip file, RPM, etc.),
  Elasticsearch distribution type (e.g., default or OSS), and so forth, it's
  faster to develop against smaller subsets of the tests. For example, to run
  tests for the default archive distribution on Fedora 28:
  
  -----------------------------------------------------------
  ./gradlew :qa:os:fedora-28:distroTest.default-linux-archive
  -----------------------------------------------------------
  
  These test tasks can use the `--tests`, `--info`, and `--debug` parameters just like
  non-OS tests can. For example:
  
  -----------------------------------------------------------
  ./gradlew :qa:os:fedora-28:distroTest.default-linux-archive \
    --tests "com.elasticsearch.packaging.test.ArchiveTests"
  -----------------------------------------------------------
  
  == Testing backwards compatibility
  
  