summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNik Everett <nik9000@gmail.com>2017-05-18 09:33:13 -0400
committerGitHub <noreply@github.com>2017-05-18 09:33:13 -0400
commit82d2c7a142d733b72ca320901343349c8f801a08 (patch)
treef6d9892384c08b59a0b5892bc6bb41730e0d31fc
parent96dac4c6704459522d9d2e1700355a4600fa5b94 (diff)
Remove vagrant testing versions (#24754)
Now that we generate the versions list from Versions.java we can drop the list of versions maintained for vagrant testing. One nice thing that the vagrant testing did was to check if the list of versions was out of date. This moves that test to the core project.
-rw-r--r--build.gradle8
-rw-r--r--buildSrc/src/main/groovy/org/elasticsearch/gradle/Version.groovy14
-rw-r--r--buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy55
-rw-r--r--core/build.gradle50
-rw-r--r--qa/vagrant/versions12
5 files changed, 62 insertions, 77 deletions
diff --git a/build.gradle b/build.gradle
index e2c1ff9f92..948bbcd080 100644
--- a/build.gradle
+++ b/build.gradle
@@ -77,7 +77,8 @@ for (String line : versionLines) {
int major = Integer.parseInt(match.group(1))
int minor = Integer.parseInt(match.group(2))
int bugfix = Integer.parseInt(match.group(3))
- Version foundVersion = new Version(major, minor, bugfix, false)
+ boolean unreleased = match.group(4) != null
+ Version foundVersion = new Version(major, minor, bugfix, false, unreleased)
if (currentVersion != foundVersion) {
versions.add(foundVersion)
}
@@ -88,7 +89,7 @@ for (String line : versionLines) {
}
}
if (versions.toSorted { it.id } != versions) {
- println "Versions: ${versions}"
+ println "Versions: ${versions}"
throw new GradleException("Versions.java contains out of order version constants")
}
if (currentVersion.bugfix == 0) {
@@ -97,7 +98,8 @@ if (currentVersion.bugfix == 0) {
// unreleased version of closest branch. So for those cases, the version includes -SNAPSHOT,
// and the bwc-zip distribution will checkout and build that version.
Version last = versions[-1]
- versions[-1] = new Version(last.major, last.minor, last.bugfix, true)
+ versions[-1] = new Version(last.major, last.minor, last.bugfix,
+ true, last.unreleased)
}
// injecting groovy property variables into all projects
diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/Version.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/Version.groovy
index 44e488acd4..03fe4c3428 100644
--- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/Version.groovy
+++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/Version.groovy
@@ -29,13 +29,20 @@ public class Version {
final int bugfix
final int id
final boolean snapshot
+ /**
+ * Is the vesion listed as {@code _UNRELEASED} in Version.java.
+ */
+ final boolean unreleased
- public Version(int major, int minor, int bugfix, boolean snapshot) {
+ public Version(int major, int minor, int bugfix, boolean snapshot,
+ boolean unreleased) {
this.major = major
this.minor = minor
this.bugfix = bugfix
this.snapshot = snapshot
- this.id = major * 100000 + minor * 1000 + bugfix * 10 + (snapshot ? 1 : 0)
+ this.id = major * 100000 + minor * 1000 + bugfix * 10 +
+ (snapshot ? 1 : 0)
+ this.unreleased = unreleased
}
public static Version fromString(String s) {
@@ -46,7 +53,8 @@ public class Version {
snapshot = bugfix.endsWith('-SNAPSHOT')
bugfix = bugfix.split('-')[0]
}
- return new Version(parts[0] as int, parts[1] as int, bugfix as int, snapshot)
+ return new Version(parts[0] as int, parts[1] as int, bugfix as int,
+ snapshot, false)
}
@Override
diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy
index 9df6d36ef0..399b816280 100644
--- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy
+++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy
@@ -82,29 +82,6 @@ class VagrantTestPlugin implements Plugin<Project> {
}
}
- private static Set<String> listVersions(Project project) {
- Node xml
- new URL('https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch/maven-metadata.xml').openStream().withStream { s ->
- xml = new XmlParser().parse(s)
- }
- Set<String> versions = new TreeSet<>(xml.versioning.versions.version.collect { it.text() }.findAll { it ==~ /[5]\.\d\.\d/ })
- if (versions.isEmpty() == false) {
- return versions;
- }
-
- // If no version is found, we run the tests with the current version
- return Collections.singleton(project.version);
- }
-
- private static File getVersionsFile(Project project) {
- File versions = new File(project.projectDir, 'versions');
- if (versions.exists() == false) {
- // Use the elasticsearch's versions file from project :qa:vagrant
- versions = project.project(":qa:vagrant").file('versions')
- }
- return versions
- }
-
private static void configureBatsRepositories(Project project) {
RepositoryHandler repos = project.repositories
@@ -140,8 +117,7 @@ class VagrantTestPlugin implements Plugin<Project> {
String upgradeFromVersion = System.getProperty("tests.packaging.upgradeVersion");
if (upgradeFromVersion == null) {
- List<String> availableVersions = getVersionsFile(project).readLines('UTF-8')
- upgradeFromVersion = availableVersions[new Random(seed).nextInt(availableVersions.size())]
+ upgradeFromVersion = project.indexCompatVersions[new Random(seed).nextInt(project.indexCompatVersions.size())]
}
DISTRIBUTION_ARCHIVES.each {
@@ -186,7 +162,6 @@ class VagrantTestPlugin implements Plugin<Project> {
Task createBatsDirsTask = project.tasks.create('createBatsDirs')
createBatsDirsTask.outputs.dir batsDir
- createBatsDirsTask.dependsOn project.tasks.vagrantVerifyVersions
createBatsDirsTask.doLast {
batsDir.mkdirs()
}
@@ -252,32 +227,6 @@ class VagrantTestPlugin implements Plugin<Project> {
vagrantSetUpTask.dependsOn copyBatsTests, copyBatsUtils, copyBatsArchives, createVersionFile, createUpgradeFromFile
}
- private static void createUpdateVersionsTask(Project project) {
- project.tasks.create('vagrantUpdateVersions') {
- description 'Update file containing options for the\n "starting" version in the "upgrade from" packaging tests.'
- group 'Verification'
- doLast {
- File versions = getVersionsFile(project)
- versions.setText(listVersions(project).join('\n') + '\n', 'UTF-8')
- }
- }
- }
-
- private static void createVerifyVersionsTask(Project project) {
- project.tasks.create('vagrantVerifyVersions') {
- description 'Update file containing options for the\n "starting" version in the "upgrade from" packaging tests.'
- group 'Verification'
- doLast {
- Set<String> versions = listVersions(project)
- Set<String> actualVersions = new TreeSet<>(getVersionsFile(project).readLines('UTF-8'))
- if (!versions.equals(actualVersions)) {
- throw new GradleException("out-of-date versions " + actualVersions +
- ", expected " + versions + "; run gradle vagrantUpdateVersions")
- }
- }
- }
- }
-
private static void createCheckVagrantVersionTask(Project project) {
project.tasks.create('vagrantCheckVersion', Exec) {
description 'Check the Vagrant version'
@@ -342,8 +291,6 @@ class VagrantTestPlugin implements Plugin<Project> {
createCleanTask(project)
createStopTask(project)
createSmokeTestTask(project)
- createUpdateVersionsTask(project)
- createVerifyVersionsTask(project)
createCheckVagrantVersionTask(project)
createCheckVirtualBoxVersionTask(project)
createPrepareVagrantTestEnvTask(project)
diff --git a/core/build.gradle b/core/build.gradle
index 72aaca6da1..516aeb1d0e 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -124,8 +124,8 @@ forbiddenPatterns {
task generateModulesList {
List<String> modules = project(':modules').subprojects.collect { it.name }
File modulesFile = new File(buildDir, 'generated-resources/modules.txt')
- processResources.from(modulesFile)
- inputs.property('modules', modules)
+ processResources.from(modulesFile)
+ inputs.property('modules', modules)
outputs.file(modulesFile)
doLast {
modulesFile.parentFile.mkdirs()
@@ -138,8 +138,8 @@ task generatePluginsList {
.findAll { it.name.contains('example') == false }
.collect { it.name }
File pluginsFile = new File(buildDir, 'generated-resources/plugins.txt')
- processResources.from(pluginsFile)
- inputs.property('plugins', plugins)
+ processResources.from(pluginsFile)
+ inputs.property('plugins', plugins)
outputs.file(pluginsFile)
doLast {
pluginsFile.parentFile.mkdirs()
@@ -256,7 +256,7 @@ thirdPartyAudit.excludes = [
'org.zeromq.ZMQ',
// from org.locationtech.spatial4j.io.GeoJSONReader (spatial4j)
- 'org.noggit.JSONParser',
+ 'org.noggit.JSONParser',
]
dependencyLicenses {
@@ -277,3 +277,43 @@ if (isEclipse == false || project.path == ":core-tests") {
check.dependsOn integTest
integTest.mustRunAfter test
}
+
+task('verifyVersions') {
+ description 'Verifies that all released versions that are indexed compatible are listed in Version.java.'
+ group 'Verification'
+ enabled = false == gradle.startParameter.isOffline()
+ doLast {
+ // Read the list from maven central
+ Node xml
+ new URL('https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch/maven-metadata.xml').openStream().withStream { s ->
+ xml = new XmlParser().parse(s)
+ }
+ Set<String> knownVersions = new TreeSet<>(xml.versioning.versions.version.collect { it.text() }.findAll { it ==~ /\d\.\d\.\d/ })
+
+ // Limit the known versions to those that should be wire compatible
+ String currentVersion = versions.elasticsearch.minus('-SNAPSHOT')
+ int prevMajor = Integer.parseInt(currentVersion.split('\\.')[0]) - 1
+ if (prevMajor == 4) {
+ // 4 didn't exist, it was 2.
+ prevMajor = 2;
+ }
+ knownVersions = knownVersions.findAll { Integer.parseInt(it.split('\\.')[0]) >= prevMajor }
+
+ /* Limit the listed versions to those that have been marked as released.
+ * Versions not marked as released don't get the same testing and we want
+ * to make sure that we flip all unreleased versions to released as soon
+ * as possible after release. */
+ Set<String> actualVersions = new TreeSet<>(
+ indexCompatVersions
+ .findAll { false == it.unreleased }
+ .collect { it.toString() })
+
+ // Finally, compare!
+ if (!knownVersions.equals(actualVersions)) {
+ throw new GradleException("out-of-date versions\nActual :" +
+ actualVersions + "\nExpected:" + knownVersions +
+ "; update Version.java")
+ }
+ }
+}
+check.dependsOn(verifyVersions)
diff --git a/qa/vagrant/versions b/qa/vagrant/versions
deleted file mode 100644
index e65c667a24..0000000000
--- a/qa/vagrant/versions
+++ /dev/null
@@ -1,12 +0,0 @@
-5.0.0
-5.0.1
-5.0.2
-5.1.1
-5.1.2
-5.2.0
-5.2.1
-5.2.2
-5.3.0
-5.3.1
-5.3.2
-5.4.0