From aa11e2955a08831f1670122f910815c7a1e05575 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Wed, 22 Dec 2021 21:24:43 +0000 Subject: [PATCH 01/30] Fix data files being referenced from Pebble templates. --- .../java/org/jbake/template/model/DataExtractor.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/jbake-core/src/main/java/org/jbake/template/model/DataExtractor.java b/jbake-core/src/main/java/org/jbake/template/model/DataExtractor.java index 2f33ea29..b818825e 100644 --- a/jbake-core/src/main/java/org/jbake/template/model/DataExtractor.java +++ b/jbake-core/src/main/java/org/jbake/template/model/DataExtractor.java @@ -1,23 +1,17 @@ package org.jbake.template.model; import org.jbake.app.ContentStore; -import org.jbake.app.DocumentList; import org.jbake.template.ModelExtractor; import org.jbake.util.DataFileUtil; - -import static org.jbake.app.configuration.PropertyList.*; - -import java.util.HashMap; import java.util.Map; +import static org.jbake.app.configuration.PropertyList.*; public class DataExtractor implements ModelExtractor { @Override public DataFileUtil get(ContentStore db, Map model, String key) { - DocumentList dl = new DocumentList(); Map config = (Map) model.get("config"); - - String defaultDocType = config.get(DATA_FILE_DOCTYPE.getKey()).toString(); + String defaultDocType = config.get(DATA_FILE_DOCTYPE.getKey().replace(".", "_")).toString(); DataFileUtil dataUtil = new DataFileUtil(db, defaultDocType); return dataUtil; } From 89c022b642bfa285ef2dd4d99a43f78e58bd2031 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Mon, 3 Jan 2022 18:25:31 +0000 Subject: [PATCH 02/30] Manually merged #737 --- .github/workflows/build.yml | 46 ++++++++++++++++++++++++ .github/workflows/early-access.yml | 55 ++++++++++++++++++++++++++++ build.gradle | 1 + gradle/github-releases.gradle | 35 ------------------ gradle/release.gradle | 58 ++++++++++++++++++++++++++++++ gradle/sdkman.gradle | 32 ----------------- gradle/signing.gradle | 20 ----------- jbake-core/build.gradle | 1 - jbake-dist/build.gradle | 17 +-------- jbake-maven-plugin/build.gradle | 1 - 10 files changed, 161 insertions(+), 105 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/early-access.yml delete mode 100644 gradle/github-releases.gradle create mode 100644 gradle/release.gradle delete mode 100644 gradle/sdkman.gradle delete mode 100644 gradle/signing.gradle diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..cce9a1ce --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,46 @@ +name: Build + +on: + pull_request: + +jobs: + build: + name: Build + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, macos-latest, windows-latest ] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: 11 + distribution: 'zulu' + + - uses: actions/cache@v2 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-cache-${{ hashFiles('**/*.gradle') }}-${{ hashFiles('**/gradle.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - uses: actions/cache@v2 + with: + path: ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradlew') }} + restore-keys: | + ${{ runner.os }}-gradlew- + - name: Build + run: ./gradlew build -S + + - name: Upload Reports + uses: actions/upload-artifact@v1 + if: failure() + with: + name: reports-${{ runner.os }} + path: | + jbake-core/build + jbake-dist/build diff --git a/.github/workflows/early-access.yml b/.github/workflows/early-access.yml new file mode 100644 index 00000000..9d9aba2b --- /dev/null +++ b/.github/workflows/early-access.yml @@ -0,0 +1,55 @@ +name: EarlyAccess + +on: + push: + branches: [ master ] + +jobs: + earlyaccess: + name: EarlyAccess + if: github.repository == 'jbake-org/jbake' + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: 11 + distribution: 'zulu' + + - uses: actions/cache@v2 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-cache-${{ hashFiles('**/*.gradle') }}-${{ hashFiles('**/gradle.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - uses: actions/cache@v2 + with: + path: ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradlew') }} + restore-keys: | + ${{ runner.os }}-gradlew- + - name: Build + run: ./gradlew build -S + + - name: Release + run: ./gradlew jreleaserRelease -S + env: + JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} + JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} + + - name: JReleaser output + if: always() + uses: actions/upload-artifact@v2 + with: + name: jreleaser-logs + path: | + jbake-dist/build/jreleaser/trace.log + jbake-dist/build/jreleaser/output.properties diff --git a/build.gradle b/build.gradle index 6a2f560a..b78764e4 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,7 @@ plugins { id "io.github.gradle-nexus.publish-plugin" version "1.0.0" id 'com.github.ben-manes.versions' version '0.38.0' id 'org.ajoberstar.grgit' version "$grgitVersion" + id 'org.jreleaser' version "0.10.0" apply false id "eclipse" id "idea" } diff --git a/gradle/github-releases.gradle b/gradle/github-releases.gradle deleted file mode 100644 index 69c94696..00000000 --- a/gradle/github-releases.gradle +++ /dev/null @@ -1,35 +0,0 @@ -rootProject.ext { - githubToken = project.hasProperty("github.token") ? project.getProperty("github.token") : System.getenv("GITHUBTOKEN") - githubReleaseOwner = project.hasProperty("github.release.owner") ? getProperty("github.release.owner") : System.getenv("GITHUB_RELEASE_OWNER") - githubReleaseRepo = project.hasProperty("github.release.repo") ? getProperty("github.release.repo") : System.getenv("GITHUB_RELEASE_REPO") - githubReleaseDryRun = System.getenv("GITHUB_RELEASE_DRY_RUN") ?: false -} - -afterEvaluate { - def name = project(':jbake-dist').tasks.getByName("distZip").archiveName - def files = project(':jbake-dist').tasks.getByName("distZip").outputs.files.files - if (!project.hasProperty('skipSigning')) { - def signatureFile = project(':jbake-dist').tasks.getByName("signArchives").outputs.files.files.find { it.name.contains(name) } - files << signatureFile - } - - // add checksum files - project(':jbake-dist').tasks.getByName("distZip").outputs.files.files.each { - files << new File(it.toString() + ".sha256") - } - - githubRelease { - token "$rootProject.githubToken" // This is your personal access token with Repo permissions - // You get this from your user settings > developer settings > Personal Access Tokens - owner "$rootProject.githubReleaseOwner" - // default is the last part of your group. Eg group: "com.github.breadmoirai" => owner: "breadmoirai" - repo "$rootProject.githubReleaseRepo" // by default this is set to your project name - targetCommitish "master" // by default this is set to "master" - draft false // by default this is false - releaseAssets files - // this points to which files you want to upload as assets with your release - dryRun rootProject.githubReleaseDryRun as boolean - // by default false; you can use this to see what actions would be taken without making a release - } -} - diff --git a/gradle/release.gradle b/gradle/release.gradle new file mode 100644 index 00000000..e51348c4 --- /dev/null +++ b/gradle/release.gradle @@ -0,0 +1,58 @@ +apply plugin: 'org.jreleaser' + +// cannot reference project. properties inside jreleaser config block +// as that collides with the "project" DSL element of the config extension +ext.releaseIsDryrun = (project.rootProject.findProperty('dryrun') ?: false).toBoolean() +ext.projectWebsite = project.website + +jreleaser { + dryrun = releaseIsDryrun + gitRootSearch = true + + project { + website = projectWebsite + authors = ['Jonathan Bullock'] + license = 'MIT' + extraProperties.put('inceptionYear', '2012') + } + + release { + github { + overwrite = true + branch = 'master' + changelog { + formatted = 'always' + format = '- {{commitShortHash}} {{commitTitle}}' + contributors { + format = '- {{contributorName}}{{#contributorUsernameAsLink}} ({{.}}){{/contributorUsernameAsLink}}' + } + hide { + contributors = ['GitHub'] + } + } + } + } + + signing { + active = 'always' + armored = true + } + + checksum { + individual = true + } + + distributions { + jbake { + sdkman { + active = 'release' + } + artifact { + path = 'build/distributions/{{distributionName}}-{{projectVersion}}-bin.zip' + } + artifact { + path = 'build/distributions/{{distributionName}}-{{projectVersion}}.tar' + } + } + } +} diff --git a/gradle/sdkman.gradle b/gradle/sdkman.gradle deleted file mode 100644 index 3e907362..00000000 --- a/gradle/sdkman.gradle +++ /dev/null @@ -1,32 +0,0 @@ -ext.sdkman_consumer_key = project.hasProperty('sdkman_consumer_key')?sdkman_consumer_key:'' -ext.sdkman_consumer_token = project.hasProperty('sdkman_consumer_token')?sdkman_consumer_token:'' - -sdkman { - consumerKey = project.sdkman_consumer_key - consumerToken = project.sdkman_consumer_token - candidate = "jbake" - version = rootProject.version - hashtag = "#JBake" - url = "https://github.com/jbake-org/jbake/releases/download/v${project.version}/${distZip.archiveFileName.get()}" -} - -task distributionAvailable() { - group = "Verification" - description = "Check if distribution is available on bintray" - - doLast { - String errorMsg = "Distribution is not available at $sdkman.url" - - HttpURLConnection connection = sdkman.url.toURL().openConnection() - connection.setRequestMethod("HEAD") - connection.connect() - - if ( connection.responseCode != 200 ){ - throw new GradleException(errorMsg) - } - } -} - -tasks.findAll{ it.name ==~ /sdk.*(Release|Version)/ }.each { - it.dependsOn distributionAvailable -} diff --git a/gradle/signing.gradle b/gradle/signing.gradle deleted file mode 100644 index 72cc887b..00000000 --- a/gradle/signing.gradle +++ /dev/null @@ -1,20 +0,0 @@ -if ( !project.hasProperty('skipSigning') ) { - apply plugin: 'signing' - - if (!signing.signatory) { - logger.warn "No Signatory configured for project $project.name. Skip signing! See https://docs.gradle.org/current/userguide/signing_plugin.html" - ext.skipSigning = true - } - else { - if ( project.name != "jbake-dist" ) { - signing { - sign publishing.publications.mavenJava - } - } - else { - signing { - sign configurations.archives - } - } - } -} diff --git a/jbake-core/build.gradle b/jbake-core/build.gradle index b935114f..72f66c0d 100644 --- a/jbake-core/build.gradle +++ b/jbake-core/build.gradle @@ -7,7 +7,6 @@ plugins { } apply from: "$rootDir/gradle/maven-publishing.gradle" -apply from: "$rootDir/gradle/signing.gradle" description = "The core library of JBake" diff --git a/jbake-dist/build.gradle b/jbake-dist/build.gradle index bd5567bd..85461d45 100644 --- a/jbake-dist/build.gradle +++ b/jbake-dist/build.gradle @@ -1,15 +1,11 @@ plugins { - id "io.sdkman.vendors" version "2.0.0" id "com.github.breadmoirai.github-release" version "2.2.12" id "org.jbake.convention.java-common" id 'application' } apply from: "$rootDir/gradle/application.gradle" -apply from: "$rootDir/gradle/sdkman.gradle" -apply from: "$rootDir/gradle/signing.gradle" -apply from: "$rootDir/gradle/github-releases.gradle" - +apply from: "$rootDir/gradle/release.gradle" description = "The binary distribution package that bundles JBake cli" sourceSets { @@ -58,17 +54,6 @@ smokeTest { } } -task buildChecksum(dependsOn: distZip, group: "distribution") { - description "creates a sha256 checksum file for the distribution" - doLast { - distZip.outputs.files.files.each { - ant.checksum(file: it, fileext: ".sha256", algorithm: "SHA-256", pattern: "{0} {1}") - } - } -} - check.dependsOn smokeTest -distZip.finalizedBy buildChecksum - jar.enabled=false diff --git a/jbake-maven-plugin/build.gradle b/jbake-maven-plugin/build.gradle index eb119626..c1482dbd 100644 --- a/jbake-maven-plugin/build.gradle +++ b/jbake-maven-plugin/build.gradle @@ -6,7 +6,6 @@ plugins { group = "org.jbake" apply from: "$rootDir/gradle/maven-publishing.gradle" -apply from: "$rootDir/gradle/signing.gradle" publishing { publications { From e4aa9a8fc30ceb2d1705110a32ca2675f51ff503 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Wed, 5 Jan 2022 21:23:41 +0000 Subject: [PATCH 03/30] Added generation of HelpMojo. --- jbake-maven-plugin/build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jbake-maven-plugin/build.gradle b/jbake-maven-plugin/build.gradle index c1482dbd..68a8da43 100644 --- a/jbake-maven-plugin/build.gradle +++ b/jbake-maven-plugin/build.gradle @@ -5,6 +5,10 @@ plugins { group = "org.jbake" +mavenPlugin { + helpMojoPackage = 'org.jbake.maven' +} + apply from: "$rootDir/gradle/maven-publishing.gradle" publishing { From 6b200da86aad4241e32d5f2fd38159a69ed7da8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotrek=20=C5=BBygie=C5=82o?= Date: Wed, 5 Jan 2022 22:37:33 +0100 Subject: [PATCH 04/30] Use blocking method rather than the throwing one Avoid: Exception in thread Thread-7 java.lang.IllegalStateException: Queue full at java.base/java.util.AbstractQueue.add(AbstractQueue.java:98) at java.base/java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:326) at org.jbake.maven.util.DirWatcher.onUpdated(DirWatcher.java:57) at org.jbake.maven.util.DirWatcher.accessbash00(DirWatcher.java:17) at org.jbake.maven.util.DirWatcher.onFileChange(DirWatcher.java:40) at org.apache.commons.io.monitor.FileAlterationObserver.doMatch(FileAlterationObserver.java:410) at org.apache.commons.io.monitor.FileAlterationObserver.checkAndNotify(FileAlterationObserver.java:333) at org.apache.commons.io.monitor.FileAlterationObserver.checkAndNotify(FileAlterationObserver.java:334) at org.apache.commons.io.monitor.FileAlterationObserver.checkAndNotify(FileAlterationObserver.java:303) at org.apache.commons.io.monitor.FileAlterationMonitor.run(FileAlterationMonitor.java:183) at java.base/java.lang.Thread.run(Thread.java:829) which stops further processing of changed files. --- .../src/main/java/org/jbake/maven/util/DirWatcher.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jbake-maven-plugin/src/main/java/org/jbake/maven/util/DirWatcher.java b/jbake-maven-plugin/src/main/java/org/jbake/maven/util/DirWatcher.java index 1c7a0602..6f8a40d4 100644 --- a/jbake-maven-plugin/src/main/java/org/jbake/maven/util/DirWatcher.java +++ b/jbake-maven-plugin/src/main/java/org/jbake/maven/util/DirWatcher.java @@ -54,7 +54,11 @@ public void stop() { } private void onUpdated() { - changeQueue.add(Long.valueOf(System.currentTimeMillis())); + try { + changeQueue.put(Long.valueOf(System.currentTimeMillis())); + } catch (InterruptedException iex) { + Thread.currentThread().interrupt(); + } } /** From 039d6faa58d4a12c18d9e0a9e9531939ded12752 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Wed, 5 Jan 2022 22:27:15 +0000 Subject: [PATCH 05/30] Removed github-release plugin, replaced with JReleaser. --- jbake-dist/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/jbake-dist/build.gradle b/jbake-dist/build.gradle index 85461d45..11071842 100644 --- a/jbake-dist/build.gradle +++ b/jbake-dist/build.gradle @@ -1,5 +1,4 @@ plugins { - id "com.github.breadmoirai.github-release" version "2.2.12" id "org.jbake.convention.java-common" id 'application' } From 9afb5521947079f8adb8deca816384c31cd0da76 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Wed, 5 Jan 2022 22:39:52 +0000 Subject: [PATCH 06/30] Moved all plugin versions into gradle.properties --- build.gradle | 2 +- gradle.properties | 4 ++-- jbake-maven-plugin/build.gradle | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 07741c18..9a3787aa 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { id "io.github.gradle-nexus.publish-plugin" version "$nexusPublishPluginVersion" id 'com.github.ben-manes.versions' version "$versionsPluginVersion" id 'org.ajoberstar.grgit' version "$grgitVersion" - id 'org.jreleaser' version "0.10.0" apply false + id 'org.jreleaser' version "$jreleaserVersion" apply false id "eclipse" id "idea" } diff --git a/gradle.properties b/gradle.properties index 3e1f0d23..cb81cde7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -45,9 +45,9 @@ jacocoVersion = 0.8.7 grgitVersion = 4.1.1 nexusPublishPluginVersion = 1.1.0 versionsPluginVersion = 0.40.0 -sdkmanVersion = 3.0.0 -githubReleaseVersion = 2.2.12 optionalBaseVersion = 7.0.0 +jreleaserVersion = 0.10.0 +mavenPluginDevVersion = 0.3.1 # jbake-maven-plugin dependencies mavenVersion = 3.8.4 diff --git a/jbake-maven-plugin/build.gradle b/jbake-maven-plugin/build.gradle index 68a8da43..fabf47e2 100644 --- a/jbake-maven-plugin/build.gradle +++ b/jbake-maven-plugin/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'de.benediktritter.maven-plugin-development' version '0.3.1' + id 'de.benediktritter.maven-plugin-development' version "$mavenPluginDevVersion" id "org.jbake.convention.java-common" } From 7a38eedab2ea88a8063f4128ac5064cdafd14d71 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sun, 6 Mar 2022 23:49:17 +0000 Subject: [PATCH 07/30] Updated secret reference. --- .github/workflows/early-access.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/early-access.yml b/.github/workflows/early-access.yml index 9d9aba2b..0a6b7345 100644 --- a/.github/workflows/early-access.yml +++ b/.github/workflows/early-access.yml @@ -40,7 +40,7 @@ jobs: - name: Release run: ./gradlew jreleaserRelease -S env: - JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + JRELEASER_GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} From 1d97619bc6d0e3f177ce3c25cf742c21a42a6467 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Mon, 7 Mar 2022 00:03:28 +0000 Subject: [PATCH 08/30] Added SDKMAN secrets. --- .github/workflows/early-access.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/early-access.yml b/.github/workflows/early-access.yml index 0a6b7345..23367b2a 100644 --- a/.github/workflows/early-access.yml +++ b/.github/workflows/early-access.yml @@ -44,6 +44,8 @@ jobs: JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} + JRELEASER_SDKMAN_CONSUMER_KEY: ${{ secrets.SDKMAN_CONSUMER_KEY }} + JRELEASER_SDKMAN_CONSUMER_TOKEN: ${{ secrets.SDKMAN_CONSUMER_TOKEN }} - name: JReleaser output if: always() From ccd29ad3c0278867388f2b10a183fc17efe18979 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Mon, 7 Mar 2022 20:43:33 +0000 Subject: [PATCH 09/30] Reverted to SNAPSHOT suffix. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index cb81cde7..e108df7a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = org.jbake -version = 2.7.0-rc.5 +version = 2.7.0-SNAPSHOT description = JBake is a Java based open source static site/blog generator for developers. website = http://jbake.org From 6e2a49545086b6b3dd58915169b7431cf3d366aa Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Mon, 7 Mar 2022 23:20:03 +0000 Subject: [PATCH 10/30] Added transform to JReleaser based artifacts. --- gradle/release.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gradle/release.gradle b/gradle/release.gradle index e51348c4..474481d4 100644 --- a/gradle/release.gradle +++ b/gradle/release.gradle @@ -49,9 +49,11 @@ jreleaser { } artifact { path = 'build/distributions/{{distributionName}}-{{projectVersion}}-bin.zip' + transform = '{{distributionName}}/{{distributionName}}-{{projectEffectiveVersion}}-bin.zip' } artifact { path = 'build/distributions/{{distributionName}}-{{projectVersion}}.tar' + transform = '{{distributionName}}/{{distributionName}}-{{projectEffectiveVersion}}.tar' } } } From 8f7b8beea06ea0258da3418a02c10342aecedc79 Mon Sep 17 00:00:00 2001 From: georgecao Date: Fri, 18 Mar 2022 19:55:55 +0800 Subject: [PATCH 11/30] Change DuplicatesStrategy from EXCLUDE to INHERIT --- jbake-core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jbake-core/build.gradle b/jbake-core/build.gradle index a64a6f07..ca7c7e90 100644 --- a/jbake-core/build.gradle +++ b/jbake-core/build.gradle @@ -58,7 +58,7 @@ dependencies { processResources { from("src/main/resources") { - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + duplicatesStrategy = DuplicatesStrategy.INHERIT include 'default.properties' expand jbakeVersion: project.version, timestamp: grgit.head().dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss'['VV']'")), From ffbc0c99fe418cad8f44005c35840df07fd47271 Mon Sep 17 00:00:00 2001 From: georgecao Date: Fri, 18 Mar 2022 20:08:58 +0800 Subject: [PATCH 12/30] Change DuplicatesStrategy from EXCLUDE to INCLUDE --- jbake-core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jbake-core/build.gradle b/jbake-core/build.gradle index ca7c7e90..1296651c 100644 --- a/jbake-core/build.gradle +++ b/jbake-core/build.gradle @@ -58,7 +58,7 @@ dependencies { processResources { from("src/main/resources") { - duplicatesStrategy = DuplicatesStrategy.INHERIT + duplicatesStrategy = DuplicatesStrategy.INCLUDE include 'default.properties' expand jbakeVersion: project.version, timestamp: grgit.head().dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss'['VV']'")), From 06e4c0d47c36c2b38237dfede79d43d973bc783e Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sun, 20 Mar 2022 16:52:37 +0000 Subject: [PATCH 13/30] Fixes #747 Force the OrientDB type rather than let OrientDB decide. --- .../src/main/java/org/jbake/app/ContentStore.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/jbake-core/src/main/java/org/jbake/app/ContentStore.java b/jbake-core/src/main/java/org/jbake/app/ContentStore.java index 7dc71e88..352e97ae 100644 --- a/jbake-core/src/main/java/org/jbake/app/ContentStore.java +++ b/jbake-core/src/main/java/org/jbake/app/ContentStore.java @@ -32,10 +32,8 @@ import com.orientechnologies.orient.core.metadata.schema.OClass; import com.orientechnologies.orient.core.metadata.schema.OSchema; import com.orientechnologies.orient.core.metadata.schema.OType; -import com.orientechnologies.orient.core.record.impl.ODocument; +import com.orientechnologies.orient.core.record.OElement; import com.orientechnologies.orient.core.sql.executor.OResultSet; -import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery; -import org.jbake.launcher.SystemExit; import org.jbake.model.DocumentModel; import org.jbake.model.DocumentTypes; import org.jbake.model.ModelAttributes; @@ -408,9 +406,9 @@ public boolean isActive() { } public void addDocument(DocumentModel document) { - ODocument doc = new ODocument(Schema.DOCUMENTS); - doc.fromMap(document); - doc.save(); + OElement element = db.newElement(Schema.DOCUMENTS); + document.forEach((k, v) -> element.setProperty(k, v, OType.ANY)); + element.save(); } protected abstract class Schema { From fe75f079c78b7afda34e93edaf2d4365da22f2e2 Mon Sep 17 00:00:00 2001 From: Sebastian Basner Date: Thu, 24 Mar 2022 14:00:42 +0100 Subject: [PATCH 14/30] As adoptopenjdk is deprecated the dependencies should be adopted to its successor adoptium/temurin --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7d0d5504..e17527c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN set -o errexit -o nounset \ && cp -r jbake-dist/build/install/jbake/* $JBAKE_HOME \ && rm -r ~/.gradle /usr/src/jbake -FROM adoptopenjdk/openjdk11:alpine-jre +FROM eclipse-temurin:11-jre-alpine ENV JBAKE_USER=jbake ENV JBAKE_HOME=/opt/jbake From 973204ed248b3a8c54d67b3431ba958549cf1d96 Mon Sep 17 00:00:00 2001 From: georgecao Date: Tue, 29 Mar 2022 08:53:25 +0800 Subject: [PATCH 15/30] Stops the duplication and the need for a strategy at all. --- jbake-core/build.gradle | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/jbake-core/build.gradle b/jbake-core/build.gradle index 1296651c..820938c4 100644 --- a/jbake-core/build.gradle +++ b/jbake-core/build.gradle @@ -57,11 +57,9 @@ dependencies { } processResources { - from("src/main/resources") { - duplicatesStrategy = DuplicatesStrategy.INCLUDE - include 'default.properties' + filesMatching("default.properties") { expand jbakeVersion: project.version, - timestamp: grgit.head().dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss'['VV']'")), - gitHash: grgit.head().abbreviatedId + timestamp: grgit.head().dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss'['VV']'")), + gitHash: grgit.head().abbreviatedId } } From 3fdfd65f2f8f980eb430c72d92090299395879aa Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sun, 3 Apr 2022 23:55:58 +0100 Subject: [PATCH 16/30] Regression test for fix. --- .../test/java/org/jbake/app/CrawlerTest.java | 24 ++++++++++++++----- .../test/resources/fixture/data/authors.yaml | 23 ++++++++++++++++++ 2 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 jbake-core/src/test/resources/fixture/data/authors.yaml diff --git a/jbake-core/src/test/java/org/jbake/app/CrawlerTest.java b/jbake-core/src/test/java/org/jbake/app/CrawlerTest.java index 73d9cfc1..de0aa14b 100644 --- a/jbake-core/src/test/java/org/jbake/app/CrawlerTest.java +++ b/jbake-core/src/test/java/org/jbake/app/CrawlerTest.java @@ -1,5 +1,6 @@ package org.jbake.app; +import com.orientechnologies.orient.core.db.record.OTrackedMap; import org.apache.commons.io.FilenameUtils; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; @@ -12,6 +13,8 @@ import org.junit.BeforeClass; import org.junit.Test; +import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; @@ -59,12 +62,21 @@ public void crawlDataFiles() { DocumentTypes.addDocumentType(config.getDataFileDocType()); db.updateSchema(); crawler.crawlDataFiles(); - Assert.assertEquals(1, db.getDocumentCount("data")); - - DataFileUtil util = new DataFileUtil(db, "data"); - Map data = util.get("videos.yaml"); - Assert.assertFalse(data.isEmpty()); - Assert.assertNotNull(data.get("data")); + Assert.assertEquals(2, db.getDocumentCount("data")); + + DataFileUtil dataFileUtil = new DataFileUtil(db, "data"); + Map videos = dataFileUtil.get("videos.yaml"); + Assert.assertFalse(videos.isEmpty()); + Assert.assertNotNull(videos.get("data")); + + // regression test for issue 747 + Map authorsFileContents = dataFileUtil.get("authors.yaml"); + Assert.assertFalse(authorsFileContents.isEmpty()); + Object authorsList = authorsFileContents.get("authors"); + assertThat(authorsList).isNotInstanceOf(OTrackedMap.class); + assertThat(authorsList).isInstanceOf(LinkedHashMap.class); + LinkedHashMap> authors = (LinkedHashMap>) authorsList; + assertThat(authors.get("Joe Bloggs").get("last_name")).isEqualTo("Bloggs"); } @Test diff --git a/jbake-core/src/test/resources/fixture/data/authors.yaml b/jbake-core/src/test/resources/fixture/data/authors.yaml new file mode 100644 index 00000000..eb3f2bd0 --- /dev/null +++ b/jbake-core/src/test/resources/fixture/data/authors.yaml @@ -0,0 +1,23 @@ +authors: + + John Smith: + first_name: John + last_name: Smith + twitter: "@jsmith" + facebook: "https://www.facebook.com/jsmith" + + Jane Smith: + first_name: Jane + last_name: Smith + twitter: "@janesmith" + + Joe Bloggs: + first_name: Joe + last_name: Bloggs + twitter: "@jblogs" + + Tom Harry: + first_name: Tom + last_name: Harry + twitter: "@tharry" + facebook: "https://www.facebook.com/tharry" From 7505683559b9d29600aea86e94877af6c2961409 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sun, 18 Sep 2022 01:09:48 +0100 Subject: [PATCH 17/30] Fixes #709 Upgraded OrientDB to 3.1.20. Updated tests as OrientDB v3.1.x doesn't allow DB name to be a path. Groovy template test was flaky, so removed override which made it more reliable. --- gradle.properties | 2 +- .../java/org/jbake/app/ContentStoreIntegrationTest.java | 3 ++- jbake-core/src/test/java/org/jbake/app/CrawlerTest.java | 4 ++-- .../template/GroovyMarkupTemplateEngineRenderingTest.java | 8 -------- 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/gradle.properties b/gradle.properties index e108df7a..a3939254 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,7 +24,7 @@ jade4jVersion = 1.3.2 jsoupVersion = 1.14.3 jgitVersion = 6.0.0.202111291000-r logbackVersion = 1.2.10 -orientDbVersion = 3.0.41 +orientDbVersion = 3.1.20 pebbleVersion = 3.1.5 slf4jVersion = 1.7.32 snakeYamlVersion = 1.30 diff --git a/jbake-core/src/test/java/org/jbake/app/ContentStoreIntegrationTest.java b/jbake-core/src/test/java/org/jbake/app/ContentStoreIntegrationTest.java index a2f2603a..06e27877 100644 --- a/jbake-core/src/test/java/org/jbake/app/ContentStoreIntegrationTest.java +++ b/jbake-core/src/test/java/org/jbake/app/ContentStoreIntegrationTest.java @@ -34,7 +34,8 @@ public static void setUpClass() throws Exception { Assert.assertEquals(".html", config.getOutputExtension()); config.setDatabaseStore(storageType.toString()); - String dbPath = folder.newFolder("documents" + System.currentTimeMillis()).getAbsolutePath(); + // OrientDB v3.1.x doesn't allow DB name to be a path even though docs say it's allowed + String dbPath = folder.newFolder("documents" + System.currentTimeMillis()).getName(); // setting the database path with a colon creates an invalid url for OrientDB. // only one colon is expected. there is no documentation about proper url path for windows available :( diff --git a/jbake-core/src/test/java/org/jbake/app/CrawlerTest.java b/jbake-core/src/test/java/org/jbake/app/CrawlerTest.java index de0aa14b..326f001a 100644 --- a/jbake-core/src/test/java/org/jbake/app/CrawlerTest.java +++ b/jbake-core/src/test/java/org/jbake/app/CrawlerTest.java @@ -74,8 +74,8 @@ public void crawlDataFiles() { Assert.assertFalse(authorsFileContents.isEmpty()); Object authorsList = authorsFileContents.get("authors"); assertThat(authorsList).isNotInstanceOf(OTrackedMap.class); - assertThat(authorsList).isInstanceOf(LinkedHashMap.class); - LinkedHashMap> authors = (LinkedHashMap>) authorsList; + assertThat(authorsList).isInstanceOf(HashMap.class); + HashMap> authors = (HashMap>) authorsList; assertThat(authors.get("Joe Bloggs").get("last_name")).isEqualTo("Bloggs"); } diff --git a/jbake-core/src/test/java/org/jbake/app/template/GroovyMarkupTemplateEngineRenderingTest.java b/jbake-core/src/test/java/org/jbake/app/template/GroovyMarkupTemplateEngineRenderingTest.java index cbc52455..c40819a1 100644 --- a/jbake-core/src/test/java/org/jbake/app/template/GroovyMarkupTemplateEngineRenderingTest.java +++ b/jbake-core/src/test/java/org/jbake/app/template/GroovyMarkupTemplateEngineRenderingTest.java @@ -19,14 +19,6 @@ public class GroovyMarkupTemplateEngineRenderingTest extends AbstractTemplateEngineRenderingTest { - @BeforeClass - public static void setUpTest() { - //switch to PLOCAL mode for this test class as Travis sometimes runs out of memory - db.close(); - config.setDatabaseStore(StorageType.PLOCAL.toString()); - db = DBUtil.createDataStore(config); - } - public GroovyMarkupTemplateEngineRenderingTest() { super("groovyMarkupTemplates", "tpl"); From 563be7520ad4b1ffbcc29fdbc1e11003a40c0738 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Mon, 19 Sep 2022 19:21:03 +0100 Subject: [PATCH 18/30] Resolved issue when getting tags back for content, following OrientDB upgrade. --- jbake-core/src/main/java/org/jbake/app/DBUtil.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jbake-core/src/main/java/org/jbake/app/DBUtil.java b/jbake-core/src/main/java/org/jbake/app/DBUtil.java index 73fce3fd..33568b45 100644 --- a/jbake-core/src/main/java/org/jbake/app/DBUtil.java +++ b/jbake-core/src/main/java/org/jbake/app/DBUtil.java @@ -6,6 +6,8 @@ import org.jbake.app.configuration.JBakeConfiguration; import org.jbake.model.DocumentModel; +import java.util.ArrayList; + public class DBUtil { private static ContentStore contentStore; @@ -56,6 +58,9 @@ public static String[] toStringArray(Object entry) { } else if (entry instanceof OTrackedList) { OTrackedList list = (OTrackedList) entry; return list.toArray(new String[list.size()]); + } else if (entry instanceof ArrayList) { + ArrayList list = (ArrayList) entry; + return list.toArray(new String[list.size()]); } return new String[0]; } From e1fae710bd21dbff1e96262ec8114448693c3f23 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Mon, 19 Sep 2022 19:57:38 +0100 Subject: [PATCH 19/30] Included file encoding parameter to cover execution on Windows. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cce9a1ce..b2d7b786 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,7 @@ jobs: restore-keys: | ${{ runner.os }}-gradlew- - name: Build - run: ./gradlew build -S + run: ./gradlew -Dfile.encoding=UTF-8 build -S - name: Upload Reports uses: actions/upload-artifact@v1 From 857cf2e8b5db776454acb16621d13bcf14a28a01 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Mon, 19 Sep 2022 22:41:04 +0100 Subject: [PATCH 20/30] Used runner context to detect OS build is running on. --- .github/workflows/build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b2d7b786..7a57a126 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,8 +33,12 @@ jobs: key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradlew') }} restore-keys: | ${{ runner.os }}-gradlew- - - name: Build - run: ./gradlew -Dfile.encoding=UTF-8 build -S + - name: Build-win + if: runner.os == 'Windows' + run: gradlew.bat -Dfile.encoding=UTF-8 build -S + - name: Build-nix + if: runner.os != 'Windows' + run: ./gradlew build -S - name: Upload Reports uses: actions/upload-artifact@v1 From 7aeb4c6de3f51fe72e66c44d6545c6c66f8d66ff Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Mon, 19 Sep 2022 22:47:33 +0100 Subject: [PATCH 21/30] Altered shell for Windows. --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a57a126..8a12a50e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,6 +35,7 @@ jobs: ${{ runner.os }}-gradlew- - name: Build-win if: runner.os == 'Windows' + shell: cmd run: gradlew.bat -Dfile.encoding=UTF-8 build -S - name: Build-nix if: runner.os != 'Windows' From 4db36fe86afe2f78a7fa4affdb8c4402568e970d Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Tue, 20 Sep 2022 23:50:19 +0100 Subject: [PATCH 22/30] Update version to 2.7.0-rc.6 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a3939254..cffffe91 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = org.jbake -version = 2.7.0-SNAPSHOT +version = 2.7.0-rc.6 description = JBake is a Java based open source static site/blog generator for developers. website = http://jbake.org From 8341bd103ae366a3be6df14b96ea1076bdda06af Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Thu, 22 Sep 2022 00:30:42 +0100 Subject: [PATCH 23/30] Fixed signing for publishing to Maven Central. --- gradle/signing.gradle | 15 +++++++++++++++ jbake-core/build.gradle | 1 + jbake-maven-plugin/build.gradle | 1 + 3 files changed, 17 insertions(+) create mode 100644 gradle/signing.gradle diff --git a/gradle/signing.gradle b/gradle/signing.gradle new file mode 100644 index 00000000..a8b0abec --- /dev/null +++ b/gradle/signing.gradle @@ -0,0 +1,15 @@ +if ( !project.hasProperty('skipSigning') ) { + apply plugin: 'signing' + + if (!signing.signatory) { + logger.warn "No Signatory configured for project $project.name. Skip signing! See https://docs.gradle.org/current/userguide/signing_plugin.html" + ext.skipSigning = true + } + else { + if ( project.name != "jbake-dist" ) { + signing { + sign publishing.publications.mavenJava + } + } + } +} diff --git a/jbake-core/build.gradle b/jbake-core/build.gradle index 820938c4..626a11a6 100644 --- a/jbake-core/build.gradle +++ b/jbake-core/build.gradle @@ -7,6 +7,7 @@ plugins { } apply from: "$rootDir/gradle/maven-publishing.gradle" +apply from: "$rootDir/gradle/signing.gradle" description = "The core library of JBake" diff --git a/jbake-maven-plugin/build.gradle b/jbake-maven-plugin/build.gradle index fabf47e2..6238eef0 100644 --- a/jbake-maven-plugin/build.gradle +++ b/jbake-maven-plugin/build.gradle @@ -10,6 +10,7 @@ mavenPlugin { } apply from: "$rootDir/gradle/maven-publishing.gradle" +apply from: "$rootDir/gradle/signing.gradle" publishing { publications { From 701f9dcd47f78bb29d7cfd84955fcf798dfc7a76 Mon Sep 17 00:00:00 2001 From: Jarkko Piiroinen <183207+jmp@users.noreply.github.com> Date: Tue, 8 Nov 2022 17:09:50 +0200 Subject: [PATCH 24/30] Upgrade AsciidoctorJ to version 2.5.7 This fixes a library loading issue on Apple's M1 hardware. The problem is caused by a version of JRuby that does not support macos-aarch64. By upgrading AsciidoctorJ, a newer version of JRuby supporting M1 is used. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index cffffe91..b537839f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ issues = https://github.com/jbake-org/jbake/issues vcs = https://github.com/jbake-org/jbake/ # runtime dependencies -asciidoctorjVersion = 2.5.2 +asciidoctorjVersion = 2.5.7 asciidoctorjDiagramVersion = 2.2.1 args4jVersion = 2.33 commonsIoVersion = 2.11.0 From ee903bac88f4a3e93c8fa80e909768fda2374865 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sat, 25 Feb 2023 13:20:04 +0000 Subject: [PATCH 25/30] Reverted to SNAPSHOT suffix. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b537839f..b1554c04 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = org.jbake -version = 2.7.0-rc.6 +version = 2.7.0-SNAPSHOT description = JBake is a Java based open source static site/blog generator for developers. website = http://jbake.org From 9a246275af10c99f98e626dbbb1b113d6ff79f21 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sat, 25 Feb 2023 18:36:15 +0000 Subject: [PATCH 26/30] Fix openjdk11 build on Travis. --- .travis.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4fa72351..45b645ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,10 +24,13 @@ jobs: - jdk: openjdk11 - os: osx - osx_image: xcode13.2 + osx_image: xcode13.2 # defaults to openjdk17 - - jdk: openjdk11 - os: osx + - os: osx + osx_image: xcode9.4 + script: + - jdk_switcher use openjdk11 + - "./gradlew check --stacktrace" # - stage: Quality Check # name: sonarqube From 00bc27639629058bb09f87c01e61bb365fe69f72 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sat, 25 Feb 2023 18:53:59 +0000 Subject: [PATCH 27/30] Still trying to get openjdk11 working on OSX. --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 45b645ac..29c45c09 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,9 +28,7 @@ jobs: - os: osx osx_image: xcode9.4 - script: - - jdk_switcher use openjdk11 - - "./gradlew check --stacktrace" + jdk: openjdk11 # - stage: Quality Check # name: sonarqube From 8a8101a16606764c2ff60818e5c55f8e6fff731a Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sat, 25 Feb 2023 21:49:22 +0000 Subject: [PATCH 28/30] Removed MacOS build with openjdk11 for time being. --- .travis.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 29c45c09..b37531a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,9 +26,10 @@ jobs: - os: osx osx_image: xcode13.2 # defaults to openjdk17 - - os: osx - osx_image: xcode9.4 - jdk: openjdk11 +# below config fails +# - os: osx +# osx_image: xcode9.4 +# jdk: openjdk11 # - stage: Quality Check # name: sonarqube From c4ab637674101f41a573eb771375d219de6fc3fb Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sun, 26 Feb 2023 11:08:41 +0000 Subject: [PATCH 29/30] Bumped version for next RC. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b1554c04..4607c44e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = org.jbake -version = 2.7.0-SNAPSHOT +version = 2.7.0-rc.7 description = JBake is a Java based open source static site/blog generator for developers. website = http://jbake.org From 5921ee529e324d71e00a96a12968021ea12dd103 Mon Sep 17 00:00:00 2001 From: Jonathan Bullock Date: Sun, 26 Feb 2023 11:19:26 +0000 Subject: [PATCH 30/30] Reverted to SNAPSHOT suffix. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 4607c44e..b1554c04 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = org.jbake -version = 2.7.0-rc.7 +version = 2.7.0-SNAPSHOT description = JBake is a Java based open source static site/blog generator for developers. website = http://jbake.org