From 906c37d1a37248f5a860213047b7e3120bbfbcc6 Mon Sep 17 00:00:00 2001 From: Tobias Schulte Date: Wed, 10 Aug 2016 11:44:01 +0200 Subject: [PATCH] feat: increase gradle-git and jcabi-github versions Closes #15 --- compile-dependencies.gradle | 4 ++-- .../SemanticReleaseChangeLogService.groovy | 11 ++++++----- .../SemanticReleaseInitialStateService.groovy | 7 +++++-- .../SemanticReleasePluginExtension.groovy | 5 +++-- .../SemanticReleaseChangeLogServiceSpec.groovy | 5 ++--- .../SemanticReleaseInitialStateServiceSpec.groovy | 3 ++- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/compile-dependencies.gradle b/compile-dependencies.gradle index 418df03..bc9e97b 100644 --- a/compile-dependencies.gradle +++ b/compile-dependencies.gradle @@ -1,6 +1,6 @@ dependencies { compile localGroovy() compile gradleApi() - compile "org.ajoberstar:gradle-git:1.3.0" - compile "com.jcabi:jcabi-github:0.23" + compile "org.ajoberstar:gradle-git:1.5.1" + compile "com.jcabi:jcabi-github:0.28" } diff --git a/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseChangeLogService.groovy b/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseChangeLogService.groovy index 085484c..808b477 100644 --- a/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseChangeLogService.groovy +++ b/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseChangeLogService.groovy @@ -98,8 +98,8 @@ class SemanticReleaseChangeLogService { */ Closure changeLog = { List commits, ReleaseVersion version -> String previousVersion = Version.valueOf(version.previousVersion).majorVersion ? version.previousVersion : null - String previousTag = (previousVersion && tagStrategy.prefixNameWithV) ? "v$previousVersion" : previousVersion - String currentTag = version.createTag ? (tagStrategy.prefixNameWithV ? "v$version.version" : version.version) : null + String previousTag = tagStrategy.toTagString(previousVersion) + String currentTag = version.createTag ? tagStrategy.toTagString(version.version) : null Template template = new SimpleTemplateEngine().createTemplate(getClass().getResource('/CHANGELOG.md')) template.make([ title : null, @@ -213,7 +213,7 @@ class SemanticReleaseChangeLogService { grgit.log { includes << 'HEAD' if (previousVersion.majorVersion) { - String previousVersionString = (tagStrategy.prefixNameWithV ? 'v' : '') + previousVersion.toString() + String previousVersionString = tagStrategy.toTagString(previousVersion.toString()) // range previousVersionString, 'HEAD' does not work: https://github.com/ajoberstar/grgit/issues/71 excludes << "${previousVersionString}^{commit}".toString() } @@ -227,13 +227,14 @@ class SemanticReleaseChangeLogService { return if (!github) return - String tag = tagStrategy.prefixNameWithV ? "v$version.version" : "$version.version" + String tag = tagStrategy.toTagString(version.version) Repo repo = github.repos().get(new Coordinates.Simple(mnemo)) // check for the existance of the tag using the api -> #3 long start = System.currentTimeMillis() - while(!tagExists(repo, tag) && System.currentTimeMillis() - start < 60000) {} + while (!tagExists(repo, tag) && System.currentTimeMillis() - start < 60000) { + } Release release = repo.releases().create(tag) new Release.Smart(release).body(changeLog(commits(Version.valueOf(version.previousVersion)), version).toString()) diff --git a/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseInitialStateService.groovy b/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseInitialStateService.groovy index ea20270..94b017d 100644 --- a/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseInitialStateService.groovy +++ b/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseInitialStateService.groovy @@ -16,6 +16,7 @@ package de.gliderpilot.gradle.semanticrelease import groovy.transform.Memoized +import org.ajoberstar.gradle.git.release.base.TagStrategy import org.ajoberstar.gradle.git.release.semver.NearestVersion import org.ajoberstar.gradle.git.release.semver.NearestVersionLocator import org.ajoberstar.gradle.git.release.semver.SemVerStrategyState @@ -30,14 +31,16 @@ class SemanticReleaseInitialStateService { private static final Logger logger = LoggerFactory.getLogger(SemanticReleaseInitialStateService) private Grgit grgit + private TagStrategy tagStrategy - SemanticReleaseInitialStateService(Grgit grgit) { + SemanticReleaseInitialStateService(Grgit grgit, TagStrategy tagStrategy) { this.grgit = grgit + this.tagStrategy = tagStrategy } @Memoized SemVerStrategyState initialState() { - NearestVersionLocator locator = new NearestVersionLocator() + NearestVersionLocator locator = new NearestVersionLocator(tagStrategy) NearestVersion nearestVersion = locator.locate(grgit) SemVerStrategyState initialState = new SemVerStrategyState( scopeFromProp: null, diff --git a/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleasePluginExtension.groovy b/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleasePluginExtension.groovy index 479ec3f..9ce2e42 100644 --- a/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleasePluginExtension.groovy +++ b/src/main/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleasePluginExtension.groovy @@ -44,7 +44,7 @@ class SemanticReleasePluginExtension { branchNames = new SemanticReleaseAppendBranchNameStrategy(releaseBranches) semanticStrategy = new SemanticReleaseNormalStrategy(project.grgit, changeLog) releaseStrategy = new SemanticReleaseStrategy( - initialStateService: new SemanticReleaseInitialStateService(project.grgit), + initialStateService: new SemanticReleaseInitialStateService(project.grgit, project.release.tagStrategy), normalStrategy: semanticStrategy, createTag: true, selector: this.&isRelease @@ -55,7 +55,8 @@ class SemanticReleasePluginExtension { branchNames, appendSnapshot() ), - createTag: false + createTag: false, + selector: { true } ) } diff --git a/src/test/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseChangeLogServiceSpec.groovy b/src/test/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseChangeLogServiceSpec.groovy index 75b036f..722cc91 100644 --- a/src/test/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseChangeLogServiceSpec.groovy +++ b/src/test/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseChangeLogServiceSpec.groovy @@ -17,6 +17,7 @@ package de.gliderpilot.gradle.semanticrelease import com.jcabi.github.Coordinates import com.jcabi.github.Release +import com.jcabi.github.Repos import com.jcabi.github.RtGithub import com.jcabi.github.mock.MkGithub import org.ajoberstar.gradle.git.release.base.ReleaseVersion @@ -28,8 +29,6 @@ import spock.lang.Subject import spock.lang.Timeout import spock.lang.Unroll -import javax.json.Json - import static org.ajoberstar.gradle.git.release.semver.ChangeScope.* /** @@ -226,7 +225,7 @@ class SemanticReleaseChangeLogServiceSpec extends Specification { String user = mnemo.substring(0, mnemo.indexOf("/")) String repo = mnemo.substring(mnemo.indexOf("/") + 1) changeLogService.github = new MkGithub(user) - changeLogService.github.repos().create(Json.createObjectBuilder().add("name", repo).build()) + changeLogService.github.repos().create(new Repos.RepoCreate(repo, false)) def coordinates = new Coordinates.Simple("$mnemo") changeLogService.github.repos().get(coordinates).git().references().create("refs/tags/v1.0.0", "affe") changeLogService.changeLog = { List commits, ReleaseVersion version -> diff --git a/src/test/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseInitialStateServiceSpec.groovy b/src/test/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseInitialStateServiceSpec.groovy index 787188a..1dba74e 100644 --- a/src/test/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseInitialStateServiceSpec.groovy +++ b/src/test/groovy/de/gliderpilot/gradle/semanticrelease/SemanticReleaseInitialStateServiceSpec.groovy @@ -17,6 +17,7 @@ package de.gliderpilot.gradle.semanticrelease import com.github.zafarkhaja.semver.Version import groovy.mock.interceptor.MockFor +import org.ajoberstar.gradle.git.release.base.TagStrategy import org.ajoberstar.gradle.git.release.semver.NearestVersion import org.ajoberstar.gradle.git.release.semver.NearestVersionLocator import org.ajoberstar.gradle.git.release.semver.SemVerStrategyState @@ -32,7 +33,7 @@ class SemanticReleaseInitialStateServiceSpec extends Specification { Grgit grgit = Grgit.open() @Subject - SemanticReleaseInitialStateService service = new SemanticReleaseInitialStateService(grgit) + SemanticReleaseInitialStateService service = new SemanticReleaseInitialStateService(grgit, new TagStrategy()) def "retrieves initialState using NearestVersionLocator"() { given: