From 134dc373d2dbd4bc5d626af1b96c06fd5b8682fb Mon Sep 17 00:00:00 2001 From: Zach Brown <1254957+zachbr@users.noreply.github.com> Date: Mon, 15 Feb 2016 06:02:47 -0600 Subject: [PATCH] Update version handling for our new build system CC GH-19 --- .../Check-PaperSpigot-versions.patch | 33 ++++++--- Spigot-Server-Patches/POM-Changes.patch | 73 ++++++++++++++++--- 2 files changed, 84 insertions(+), 22 deletions(-) diff --git a/Spigot-API-Patches/Check-PaperSpigot-versions.patch b/Spigot-API-Patches/Check-PaperSpigot-versions.patch index 697f46751c..81841b4509 100644 --- a/Spigot-API-Patches/Check-PaperSpigot-versions.patch +++ b/Spigot-API-Patches/Check-PaperSpigot-versions.patch @@ -15,16 +15,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - if (version.startsWith("git-Spigot-")) { + // PaperSpigot start + if (version.startsWith("git-PaperSpigot-")) { -+ String[] parts = version.substring("git-PaperSpigot-".length()).split("-"); -+ int cbVersions = getDistance("craftbukkit", parts[1].substring(0, parts[1].indexOf(' '))); ++ String[] parts = version.substring("git-PaperSpigot-".length()).split("[-\\s]"); + int paperSpigotVersions = getDistance("paperspigot", parts[0]); -+ if (cbVersions == -1 || paperSpigotVersions == -1) { ++ if (paperSpigotVersions == -1) { + setVersionMessage("Error obtaining version information"); + } else { -+ if (cbVersions == 0 && paperSpigotVersions == 0) { ++ if (paperSpigotVersions == 0) { + setVersionMessage("You are running the latest version"); + } else { -+ setVersionMessage("You are " + (cbVersions + paperSpigotVersions) + " version(s) behind"); ++ setVersionMessage("You are " + paperSpigotVersions + " version(s) behind"); + } + } + } else if (version.startsWith("git-Spigot-")) { @@ -33,14 +32,28 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 int cbVersions = getDistance("craftbukkit", parts[1].substring(0, parts[1].indexOf(' '))); int spigotVersions = getDistance("spigot", parts[0]); @@ -0,0 +0,0 @@ public class VersionCommand extends BukkitCommand { - private static int getDistance(String repo, String hash) { + } + } + +- private static int getDistance(String repo, String hash) { ++ private static int getDistance(String repo, String currentVerInt) { // PaperSpigot try { BufferedReader reader = Resources.asCharSource( - new URL("https://hub.spigotmc.org/stash/rest/api/1.0/projects/SPIGOT/repos/" + repo + "/commits?since=" + URLEncoder.encode(hash, "UTF-8") + "&withCounts=true"), -+ new URL("https://hub.spigotmc.org/stash/rest/api/1.0/projects/PAPER/repos/" + repo + "/commits?since=" + URLEncoder.encode(hash, "UTF-8") + "&withCounts=true"), // PaperSpigot ++ new URL("https://ci.destroystokyo.com/job/PaperSpigot/lastSuccessfulBuild/buildNumber"), // PaperSpigot Charsets.UTF_8 ).openBufferedStream(); try { --- -1.9.5.msysgit.0 - +- JSONObject obj = (JSONObject) new JSONParser().parse(reader); +- return ((Number) obj.get("totalCount")).intValue(); +- } catch (ParseException ex) { ++ // PaperSpigot start ++ int newVer = Integer.decode(reader.readLine()); ++ int currentVer = Integer.decode(currentVerInt); ++ return newVer - currentVer; ++ } catch (NumberFormatException ex) { ++ // PaperSpigot end + ex.printStackTrace(); + return -1; + } finally { +-- \ No newline at end of file diff --git a/Spigot-Server-Patches/POM-Changes.patch b/Spigot-Server-Patches/POM-Changes.patch index b4e33de007..3f4c049be7 100644 --- a/Spigot-Server-Patches/POM-Changes.patch +++ b/Spigot-Server-Patches/POM-Changes.patch @@ -56,26 +56,75 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 <type>jar</type> <scope>compile</scope> @@ -0,0 +0,0 @@ - <version>0.2</version> - <executions> - <execution> + <id>spigotmc-public</id> + <url>https://hub.spigotmc.org/nexus/content/groups/public/</url> + </pluginRepository> ++ <!-- PaperSpigot - Repo for gitdescribe --> ++ <pluginRepository> ++ <id>destroystokyo</id> ++ <url>https://ci.destroystokyo.com/plugin/repository/everything/</url> ++ </pluginRepository> + </pluginRepositories> + + <!-- This builds a completely 'ready to start' jar with all dependencies inside --> +@@ -0,0 +0,0 @@ + <defaultGoal>install</defaultGoal> + <plugins> + <plugin> +- <groupId>net.md-5</groupId> +- <artifactId>scriptus</artifactId> +- <version>0.2</version> +- <executions> +- <execution> - <id>ex-spigot</id> -+ <id>ex-paperspigot</id> - <configuration> +- <configuration> - <format>git-Spigot-%s</format> -+ <format>git-PaperSpigot-%s</format> - <scmDirectory>../</scmDirectory> +- <scmDirectory>../</scmDirectory> - <descriptionProperty>spigot.desc</descriptionProperty> -+ <descriptionProperty>paperspigot.desc</descriptionProperty> - </configuration> - <phase>initialize</phase> - <goals> +- </configuration> +- <phase>initialize</phase> +- <goals> +- <goal>describe</goal> +- </goals> +- </execution> +- <execution> +- <id>ex-craftbukkit</id> +- <configuration> +- <format>-%s</format> +- <scmDirectory>../../CraftBukkit</scmDirectory> +- <descriptionProperty>craftbukkit.desc</descriptionProperty> +- </configuration> +- <phase>initialize</phase> +- <goals> +- <goal>describe</goal> +- </goals> +- </execution> +- </executions> +- </plugin> ++ <groupId>com.lukegb.mojo</groupId> ++ <artifactId>gitdescribe-maven-plugin</artifactId> ++ <version>3.1-SNAPSHOT</version> ++ <configuration> ++ <outputPrefix>git-PaperSpigot-</outputPrefix> ++ </configuration> ++ <executions> ++ <execution> ++ <phase>compile</phase> ++ <goals> ++ <goal>gitdescribe</goal> ++ </goals> ++ </execution> ++ </executions> ++ </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> @@ -0,0 +0,0 @@ <manifestEntries> <Main-Class>org.bukkit.craftbukkit.Main</Main-Class> <Implementation-Title>CraftBukkit</Implementation-Title> - <Implementation-Version>${spigot.desc}${craftbukkit.desc}</Implementation-Version> -+ <Implementation-Version>${paperspigot.desc}${craftbukkit.desc}</Implementation-Version> ++ <Implementation-Version>${describe}</Implementation-Version> <Implementation-Vendor>Bukkit Team</Implementation-Vendor> <Specification-Title>Bukkit</Specification-Title> <Specification-Version>${api.version}</Specification-Version>