diff --git a/.gitignore b/.gitignore index 737a115..3fd1cf5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ .gradle build/ +out/** +.idea/** # Ignore Gradle GUI config gradle-app.setting @@ -13,3 +15,4 @@ gradle-app.setting # # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 # gradle/wrapper/gradle-wrapper.properties userHome/ + diff --git a/src/integrationTest/groovy/wooga/gradle/release/GithubIntegration.groovy b/src/integrationTest/groovy/wooga/gradle/release/GithubIntegration.groovy index 1374e7f..77963a9 100644 --- a/src/integrationTest/groovy/wooga/gradle/release/GithubIntegration.groovy +++ b/src/integrationTest/groovy/wooga/gradle/release/GithubIntegration.groovy @@ -55,8 +55,8 @@ abstract class GithubIntegration extends IntegrationSpec { testRepo = builder.create() } - def createRelease(String name) { - def releaseBuilder = testRepo.createRelease(name) + def createRelease(String name, String tagName = null) { + def releaseBuilder = testRepo.createRelease(tagName ? tagName : name) releaseBuilder.name(name) releaseBuilder.draft(false) releaseBuilder.prerelease(false) diff --git a/src/integrationTest/groovy/wooga/gradle/release/ReleaseNotesGenerationIntegrationSpec.groovy b/src/integrationTest/groovy/wooga/gradle/release/ReleaseNotesGenerationIntegrationSpec.groovy index 2ed3f76..fef8f57 100644 --- a/src/integrationTest/groovy/wooga/gradle/release/ReleaseNotesGenerationIntegrationSpec.groovy +++ b/src/integrationTest/groovy/wooga/gradle/release/ReleaseNotesGenerationIntegrationSpec.groovy @@ -1,6 +1,7 @@ package wooga.gradle.release import org.ajoberstar.grgit.Grgit +import wooga.gradle.release.utils.TestContent class ReleaseNotesGenerationIntegrationSpec extends GithubIntegrationWithDefaultAuth { @@ -225,4 +226,39 @@ class ReleaseNotesGenerationIntegrationSpec extends GithubIntegrationWithDefault then: releaseNotes.text.normalize().denormalize() == releaseNotes.text } + + def "generate releases with different paket.template files"(){ + + given: "a remote paket.template file" + def createResult = testRepo.createContent(TestContent.PAKET_TEMPLATE_V1, "initial commit", "paket.template") + def updateResult = createResult.content.update(TestContent.PAKET_TEMPLATE_V2, "update paket.template") + + and: "empty release notes file" + def releaseNotes = createFile("RELEASE_NOTES.md") + + and: "remote tags" + testRepo.createRef("refs/tags/v1.0.0", createResult.commit.getSHA1()) + testRepo.createRef("refs/tags/v1.1.0", updateResult.commit.getSHA1()) + + and: "logs" + git.commit(message: "a change") + git.tag.add(name: "v1.0.0") + git.commit(message: 'a change') + git.tag.add(name: "v1.1.0") + + and: "some releases" + createRelease("1.0.0", "v1.0.0") + createRelease("1.1.0", "v1.1.0") + + when: + def result = runTasksSuccessfully("generateReleaseNotes") + + + + + then: + releaseNotes.text.contains("Wooga.TestDependency1 ~> 0.1.0") + releaseNotes.text.contains("Wooga.TestDependency1 ~> 0.2.0") + + } } diff --git a/src/main/groovy/wooga/gradle/release/utils/ReleaseNoteBody.groovy b/src/main/groovy/wooga/gradle/release/utils/ReleaseNoteBody.groovy index 51bf92c..1000ed4 100644 --- a/src/main/groovy/wooga/gradle/release/utils/ReleaseNoteBody.groovy +++ b/src/main/groovy/wooga/gradle/release/utils/ReleaseNoteBody.groovy @@ -91,11 +91,13 @@ class ReleaseNoteBody { String packageId GHRepository repo + List dependencies + ChangeNote initialChange = new ChangeNote("NEW", "Initial Release") boolean hasPreviousVersion - ReleaseNoteBody(ReleaseVersion version, Date releaseDate, String packageId, GHRepository repo, List logs, List prs, List releaseAssets) { + ReleaseNoteBody(ReleaseVersion version, Date releaseDate, String packageId, GHRepository repo, List logs, List prs, List releaseAssets, List dependencies) { this.logs = logs this.repo = repo this.hasPreviousVersion = version.previousVersion != null @@ -107,6 +109,7 @@ class ReleaseNoteBody { new PullRequest(it) } this.releaseAssets = releaseAssets.toSorted({ a, b -> a.name <=> b.name }) + this.dependencies = dependencies } Callable> additionalChanges() { @@ -162,4 +165,13 @@ class ReleaseNoteBody { } } } + + Callable hasDependencies(){ + new Callable() { + @Override + Boolean call() throws Exception { + !dependencies.empty + } + } + } } \ No newline at end of file diff --git a/src/main/groovy/wooga/gradle/release/utils/ReleaseNotesGenerator.groovy b/src/main/groovy/wooga/gradle/release/utils/ReleaseNotesGenerator.groovy index 1226df8..6d0d86f 100644 --- a/src/main/groovy/wooga/gradle/release/utils/ReleaseNotesGenerator.groovy +++ b/src/main/groovy/wooga/gradle/release/utils/ReleaseNotesGenerator.groovy @@ -22,16 +22,12 @@ import com.github.mustachejava.MustacheFactory import org.ajoberstar.gradle.git.release.base.ReleaseVersion import org.ajoberstar.grgit.Commit import org.ajoberstar.grgit.Grgit -import org.ajoberstar.grgit.Tag import org.gradle.api.logging.Logger import org.gradle.api.logging.Logging import org.kohsuke.github.GHAsset -import org.kohsuke.github.GHCommitQueryBuilder import org.kohsuke.github.GHPullRequest -import org.kohsuke.github.GHQueryBuilder import org.kohsuke.github.GHRelease import org.kohsuke.github.GHRepository -import org.kohsuke.github.GHTag /** * A generator class to create release notes from git log and pull request bodies. @@ -108,11 +104,13 @@ class ReleaseNotesGenerator { } } + List dependencies = fetchTemplateDependencies(hub, packageId, version) + List logs = git.log(includes: includes, excludes: excludes) List pullRequests = fetchPullRequestsFromLog(logs) List releaseAssets = (release == null) ? new ArrayList() : release.assets - ReleaseNoteBody noteBodyModel = new ReleaseNoteBody(version, releaseDate, packageId, hub, logs, pullRequests, releaseAssets) + ReleaseNoteBody noteBodyModel = new ReleaseNoteBody(version, releaseDate, packageId, hub, logs, pullRequests, releaseAssets, dependencies) noteBodyModel } @@ -171,4 +169,83 @@ class ReleaseNotesGenerator { return false } } + + private List fetchTemplateDependencies(GHRepository hub, String packageId, ReleaseVersion version) { + + List paths = ["$packageId/paket.template", "paket.template"] + String content + + paths.each { + if (!content) { + content = GetTemplateContent(hub, it, version) + } + } + + if (!content) { + return [] + } + + PaketTemplateReader templateReader = new PaketTemplateReader(content) + return templateReader.getDependencies() + + } + + private String GetTemplateContent(GHRepository hub, String path, ReleaseVersion version) { + try { + return hub.getFileContent(path, "v$version.version").read().text + } + catch (IOException exception) { + logger.info("could not find paket template file at $path $exception.message") + return null + } + } +} + +class PacketDependency { + String packageId + String version + + PacketDependency(String packageId, String version) { + this.packageId = packageId + this.version = version + } + + String toString() { + "$packageId $version" + } +} + +class PaketTemplateReader { + + private def content + + PaketTemplateReader(String input) { + content = [:] + + def regex = /(?m)^(\w+)( |\n[ ]{4})(((\n[ ]{4})?.*)+)/ + def r = input.findAll(regex) + + r.each { + def matcher + matcher = it =~ regex + content[matcher[0][1]] = matcher[0][3] + } + } + + List getDependencies() { + List result = [] + + if (content['dependencies'] != null || content['dependencies'] == "") { + content['dependencies'].eachLine { line -> + String[] segments = line.trim().split(" ", 2) + result << new PacketDependency(segments[0], segments.length > 1 ? segments[1] : null) + } + } + + result + } + + String getPackageId() { + content['id'] + } } diff --git a/src/main/resources/dependency.mustache b/src/main/resources/dependency.mustache new file mode 100644 index 0000000..442fffc --- /dev/null +++ b/src/main/resources/dependency.mustache @@ -0,0 +1 @@ +{{packageId}} {{&version}} diff --git a/src/main/resources/releaseNote.mustache b/src/main/resources/releaseNote.mustache index 8134e56..f584b8e 100644 --- a/src/main/resources/releaseNote.mustache +++ b/src/main/resources/releaseNote.mustache @@ -34,6 +34,15 @@ * [{{name}}]({{browserDownloadUrl}}) {{/releaseAssets}} {{/hasReleaseAssets}} +{{#hasDependencies}} + +## Dependencies ## + +```bash +{{#dependencies}}{{>dependency}} +{{/dependencies}} +``` +{{/hasDependencies}} ## How to install ## diff --git a/src/test/groovy/wooga/gradle/release/utils/ReleaseBodyStrategySpec.groovy b/src/test/groovy/wooga/gradle/release/utils/ReleaseBodyStrategySpec.groovy index e35d2e3..3344cf5 100644 --- a/src/test/groovy/wooga/gradle/release/utils/ReleaseBodyStrategySpec.groovy +++ b/src/test/groovy/wooga/gradle/release/utils/ReleaseBodyStrategySpec.groovy @@ -2,7 +2,10 @@ package wooga.gradle.release.utils import org.ajoberstar.gradle.git.release.base.ReleaseVersion import org.ajoberstar.grgit.Grgit +import org.apache.tools.ant.filters.StringInputStream +import org.kohsuke.github.GHContent import org.kohsuke.github.GHPullRequest +import org.kohsuke.github.GHRef import org.kohsuke.github.GHRepository import spock.lang.Specification @@ -51,6 +54,13 @@ class ReleaseBodyStrategySpec extends Specification { version = new ReleaseVersion("1.1.0", "1.0.0", false) releaseBodyStrategy = new ReleaseBodyStrategy(version, git) + + GHContent ghContent = Mock() + ghContent.read() >> {new StringInputStream(TestContent.PAKET_TEMPLATE_V1)} + + GHRef ref = Mock() + repository.getRef(_) >> ref + repository.getFileContent(_, _) >> ghContent } def "verify calls ReleaseNotesGenerator to generate release notes body"() { @@ -80,6 +90,6 @@ class ReleaseBodyStrategySpec extends Specification { * ![ADD] some stuff [#2] * ![REMOVE] some stuff [#2] * ![FIX] some stuff [#2] - """.stripIndent().stripMargin() + ReleaseNotesGeneratorTest.ICON_IDS).trim() + """.stripIndent().stripMargin() + TestContent.ICON_IDS).trim() } } diff --git a/src/test/groovy/wooga/gradle/release/utils/ReleaseNotesGeneratorTest.groovy b/src/test/groovy/wooga/gradle/release/utils/ReleaseNotesGeneratorTest.groovy index c8493d9..b7abfbc 100644 --- a/src/test/groovy/wooga/gradle/release/utils/ReleaseNotesGeneratorTest.groovy +++ b/src/test/groovy/wooga/gradle/release/utils/ReleaseNotesGeneratorTest.groovy @@ -19,9 +19,12 @@ package wooga.gradle.release.utils import org.ajoberstar.gradle.git.release.base.ReleaseVersion import org.ajoberstar.grgit.Grgit import org.ajoberstar.grgit.service.TagService +import org.apache.tools.ant.filters.StringInputStream import org.kohsuke.github.GHAsset +import org.kohsuke.github.GHContent import org.kohsuke.github.GHLabel import org.kohsuke.github.GHPullRequest +import org.kohsuke.github.GHRef import org.kohsuke.github.GHRelease import org.kohsuke.github.GHRepository import org.kohsuke.github.PagedIterable @@ -29,37 +32,6 @@ import spock.lang.Specification class ReleaseNotesGeneratorTest extends Specification { - public static final String ICON_IDS = """ - - - [NEW]:https://atlas-resources.wooga.com/icons/icon_new.svg "New" - [ADD]:https://atlas-resources.wooga.com/icons/icon_add.svg "Add" - [IMPROVE]:https://atlas-resources.wooga.com/icons/icon_improve.svg "IMPROVE" - [CHANGE]:https://atlas-resources.wooga.com/icons/icon_change.svg "Change" - [FIX]:https://atlas-resources.wooga.com/icons/icon_fix.svg "Fix" - [UPDATE]:https://atlas-resources.wooga.com/icons/icon_update.svg "Update" - - [BREAK]:https://atlas-resources.wooga.com/icons/icon_break.svg "Remove" - [REMOVE]:https://atlas-resources.wooga.com/icons/icon_remove.svg "Remove" - [IOS]:https://atlas-resources.wooga.com/icons/icon_iOS.svg "iOS" - [ANDROID]:https://atlas-resources.wooga.com/icons/icon_android.svg "Android" - [WEBGL]:https://atlas-resources.wooga.com/icons/icon_webGL.svg "Web:GL" - - - """.stripIndent() - - public static final String MIX_URL_ICON_IDS = """ - - - [NEW]:https://resources.atlas.wooga.com/icons/icon_new.svg "New" - [ADD]:https://atlas-resources.wooga.com/icons/icon_add.svg "Add" - [IMPROVE]:http://resources.atlas.wooga.com/icons/icon_improve.svg "IMPROVE" - [CHANGE]:http://atlas-resources.wooga.com/icons/icon_change.svg "Change" - - - """.stripIndent() - - Grgit git TagService tag @@ -80,6 +52,16 @@ class ReleaseNotesGeneratorTest extends Specification { hub = Mock(GHRepository) hub.fullName >> "wooga/TestRepo" hub.listReleases() >> iterable + + GHContent ghContent = Mock() + ghContent.read() >> {new StringInputStream(TestContent.PAKET_TEMPLATE_V1)} + + GHRef ref = Mock() + + hub.getRef(_) >> ref + + hub.getFileContent(_, _) >> ghContent + releaseNoteGenerator = new ReleaseNotesGenerator(git, hub, packageId) } @@ -104,7 +86,7 @@ class ReleaseNotesGeneratorTest extends Specification { Yada Yada Yada Yada Yada Yada Yada Yada Yada Yada - """.stripIndent() << MIX_URL_ICON_IDS + """.stripIndent() << TestContent.MIX_URL_ICON_IDS } def pr = Mock(GHPullRequest) @@ -165,7 +147,7 @@ class ReleaseNotesGeneratorTest extends Specification { * ![ADD] some stuff [#2] * ![REMOVE] some stuff [#2] * ![FIX] some stuff [#2] - """.stripIndent().stripMargin() + ICON_IDS).trim() + """.stripIndent().stripMargin() + TestContent.ICON_IDS).trim() } def "creates release notes with full log when previousVersion tag can't be found"() { @@ -200,7 +182,7 @@ class ReleaseNotesGeneratorTest extends Specification { * ![ADD] some stuff [#1] * ![REMOVE] some stuff [#1] * ![FIX] some stuff [#1] - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() } def "skips pull requests it can't find"() { @@ -232,7 +214,7 @@ class ReleaseNotesGeneratorTest extends Specification { * ![ADD] some stuff [#1] * ![REMOVE] some stuff [#1] * ![FIX] some stuff [#1] - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() } def "creates initial change message when previosVersion is not set"() { @@ -256,7 +238,7 @@ class ReleaseNotesGeneratorTest extends Specification { * ![ADD] some stuff [#1] * ![REMOVE] some stuff [#1] * ![FIX] some stuff [#1] - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() } def "prints commit log when pull requests are empty"() { @@ -286,7 +268,7 @@ class ReleaseNotesGeneratorTest extends Specification { * [`${c3.abbreviatedId}`](https://github.com/wooga/TestRepo/commit/${c3.id}) ${c3.shortMessage} * [`${c2.abbreviatedId}`](https://github.com/wooga/TestRepo/commit/${c2.id}) ${c2.shortMessage} * [`${c1.abbreviatedId}`](https://github.com/wooga/TestRepo/commit/${c1.id}) ${c1.shortMessage} - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() } def "prints commit log when pull requests have no changeset list"() { @@ -317,7 +299,7 @@ class ReleaseNotesGeneratorTest extends Specification { * [`${c3.abbreviatedId}`](https://github.com/wooga/TestRepo/commit/${c3.id}) ${c3.shortMessage} * [`${c2.abbreviatedId}`](https://github.com/wooga/TestRepo/commit/${c2.id}) ${c2.shortMessage} * [`${c1.abbreviatedId}`](https://github.com/wooga/TestRepo/commit/${c1.id}) ${c1.shortMessage} - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() } def "creates full release notes for specific version"() { @@ -372,6 +354,16 @@ class ReleaseNotesGeneratorTest extends Specification { * [`#3`](https://github.com/wooga/TestRepo/pull/3) Pullrequest 3 * [`#1`](https://github.com/wooga/TestRepo/pull/1) Pullrequest 1 + ## Dependencies ## + + ```bash + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + ``` + ## How to install ## ```bash @@ -384,7 +376,7 @@ class ReleaseNotesGeneratorTest extends Specification { # latest build with release candidates nuget $packageId ~> 1 rc ``` - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() where: currentVersion = "1.1.0" @@ -456,6 +448,16 @@ class ReleaseNotesGeneratorTest extends Specification { * [binary.obj](http://github_asset/binary.obj) * [sources.zip](http://github_asset/sources.zip) + ## Dependencies ## + + ```bash + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + ``` + ## How to install ## ```bash @@ -468,7 +470,7 @@ class ReleaseNotesGeneratorTest extends Specification { # latest build with release candidates nuget $packageId ~> 1 rc ``` - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() where: currentVersion = "1.1.0" @@ -552,6 +554,16 @@ class ReleaseNotesGeneratorTest extends Specification { * [`#3`](https://github.com/wooga/TestRepo/pull/3) Pullrequest 3 * [`#1`](https://github.com/wooga/TestRepo/pull/1) Pullrequest 1 + ## Dependencies ## + + ```bash + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + ``` + ## How to install ## ```bash @@ -564,7 +576,7 @@ class ReleaseNotesGeneratorTest extends Specification { # latest build with release candidates nuget $packageId ~> 1 rc ``` - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() where: currentVersion = "1.1.0" @@ -640,6 +652,16 @@ class ReleaseNotesGeneratorTest extends Specification { Yada Yada Yada Yada Yada Yada Yada Yada Yada Yada + ## Dependencies ## + + ```bash + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + ``` + ## How to install ## ```bash @@ -652,7 +674,7 @@ class ReleaseNotesGeneratorTest extends Specification { # latest build with release candidates nuget $packageId ~> 1 rc ``` - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() where: currentVersion = "1.1.0" @@ -689,6 +711,16 @@ class ReleaseNotesGeneratorTest extends Specification { * [`#2`](https://github.com/wooga/TestRepo/pull/2) Pullrequest 2 * [`#1`](https://github.com/wooga/TestRepo/pull/1) Pullrequest 1 + ## Dependencies ## + + ```bash + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + ``` + ## How to install ## ```bash @@ -701,7 +733,7 @@ class ReleaseNotesGeneratorTest extends Specification { # latest build with release candidates nuget $packageId ~> 1 rc ``` - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() where: currentVersion = "1.1.0" @@ -746,8 +778,18 @@ class ReleaseNotesGeneratorTest extends Specification { * [`${c2.abbreviatedId}`](https://github.com/wooga/TestRepo/commit/${c2.id}) ${c2.shortMessage} * [`${c1.abbreviatedId}`](https://github.com/wooga/TestRepo/commit/${c1.id}) ${c1.shortMessage} - ## How to install ## + ## Dependencies ## + ```bash + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + ``` + + ## How to install ## + ```bash # latest stable nuget $packageId ~> 1 @@ -758,7 +800,7 @@ class ReleaseNotesGeneratorTest extends Specification { # latest build with release candidates nuget $packageId ~> 1 rc ``` - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() where: currentVersion = "1.1.0" @@ -800,6 +842,16 @@ class ReleaseNotesGeneratorTest extends Specification { * [`#3`](https://github.com/wooga/TestRepo/pull/3) Pullrequest 3 * [`#2`](https://github.com/wooga/TestRepo/pull/2) Pullrequest 2 + ## Dependencies ## + + ```bash + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + ``` + ## How to install ## ```bash @@ -819,6 +871,16 @@ class ReleaseNotesGeneratorTest extends Specification { * [`#1`](https://github.com/wooga/TestRepo/pull/1) Pullrequest 1 + ## Dependencies ## + + ```bash + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + ``` + ## How to install ## ```bash @@ -831,7 +893,7 @@ class ReleaseNotesGeneratorTest extends Specification { # latest build with release candidates nuget Wooga.Test ~> 1 rc ``` - """.stripIndent() + ICON_IDS).trim() + """.stripIndent() + TestContent.ICON_IDS).trim() where: versionA = new ReleaseVersion("1.1.0", "1.0.0", false) diff --git a/src/test/groovy/wooga/gradle/release/utils/TestContent.groovy b/src/test/groovy/wooga/gradle/release/utils/TestContent.groovy new file mode 100644 index 0000000..764b5a1 --- /dev/null +++ b/src/test/groovy/wooga/gradle/release/utils/TestContent.groovy @@ -0,0 +1,100 @@ +package wooga.gradle.release.utils; + +class TestContent { + + public static final String ICON_IDS = """ + + + [NEW]:https://atlas-resources.wooga.com/icons/icon_new.svg "New" + [ADD]:https://atlas-resources.wooga.com/icons/icon_add.svg "Add" + [IMPROVE]:https://atlas-resources.wooga.com/icons/icon_improve.svg "IMPROVE" + [CHANGE]:https://atlas-resources.wooga.com/icons/icon_change.svg "Change" + [FIX]:https://atlas-resources.wooga.com/icons/icon_fix.svg "Fix" + [UPDATE]:https://atlas-resources.wooga.com/icons/icon_update.svg "Update" + + [BREAK]:https://atlas-resources.wooga.com/icons/icon_break.svg "Remove" + [REMOVE]:https://atlas-resources.wooga.com/icons/icon_remove.svg "Remove" + [IOS]:https://atlas-resources.wooga.com/icons/icon_iOS.svg "iOS" + [ANDROID]:https://atlas-resources.wooga.com/icons/icon_android.svg "Android" + [WEBGL]:https://atlas-resources.wooga.com/icons/icon_webGL.svg "Web:GL" + + + """.stripIndent() + + public static final String MIX_URL_ICON_IDS = """ + + + [NEW]:https://resources.atlas.wooga.com/icons/icon_new.svg "New" + [ADD]:https://atlas-resources.wooga.com/icons/icon_add.svg "Add" + [IMPROVE]:http://resources.atlas.wooga.com/icons/icon_improve.svg "IMPROVE" + [CHANGE]:http://atlas-resources.wooga.com/icons/icon_change.svg "Change" + + + """.stripIndent() + + public static final String PAKET_TEMPLATE_V1 = """ + type file + id Wooga.Services + owners Wooga + authors Wooga + projectUrl + https://github.com/wooga/wdk-unity-CoreServices + iconUrl + http://wooga.github.io/wdk-unity-CoreServices/img/logo.png + licenseUrl + https://github.com/wooga/wdk-unity-CoreServices/blob/master/LICENSE.txt + requireLicenseAcceptance + false + copyright + Copyright 2017 + tags + wdk + summary + Wooga Internal Services SDK + description + Wooga Internal Services SDK + files + Assets/Wooga/**/* ==> content + !../**/AssemblyInfo.cs + ../README.md ==> content + dependencies + Wooga.TestDependency1 ~> 0.1.0 + Wooga.TestDependency2 = 0.7 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + """.stripIndent().trim() + + public static final String PAKET_TEMPLATE_V2 = """ + type file + id Wooga.Services + owners Wooga + authors Wooga + projectUrl + https://github.com/wooga/wdk-unity-CoreServices + iconUrl + http://wooga.github.io/wdk-unity-CoreServices/img/logo.png + licenseUrl + https://github.com/wooga/wdk-unity-CoreServices/blob/master/LICENSE.txt + requireLicenseAcceptance + false + copyright + Copyright 2017 + tags + wdk + summary + Wooga Internal Services SDK + description + Wooga Internal Services SDK + files + Assets/Wooga/**/* ==> content + !../**/AssemblyInfo.cs + ../README.md ==> content + dependencies + Wooga.TestDependency1 ~> 0.2.0 + Wooga.TestDependency2 = 0.8 + Wooga.TestDependency3 + Wooga.TestDependency4 master + Wooga.TestDependency4 > 1, <2 + """.stripIndent().trim() +}