diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 6c4938f8a8..f92689d964 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -1,24 +1,109 @@ name-template: $RESOLVED_VERSION tag-template: v$RESOLVED_VERSION +pull-request: + title-templates: + fix: '🐛 $TITLE (#$NUMBER)' + feat: '🚀 $TITLE (#$NUMBER)' + default: '$TITLE (#$NUMBER)' +autolabeler: + - label: 'bug' + branch: + - '/fix\/.+/' + title: + - '/fix/i' + - label: 'feature' + branch: + - '/feature\/.+/' + title: + - '/feat/i' + - label: 'documentation' + branch: + - '/docs\/.+/' + title: + - '/docs/i' + - label: 'maintenance' + branch: + - '/(chore|refactor|style|test|ci|perf|build|deps)\/.+/' + title: + - '/(chore|refactor|style|test|ci|perf|build|deps)/i' + - label: 'chore' + branch: + - '/chore\/.+/' + title: + - '/chore/i' + - label: 'refactor' + branch: + - '/refactor\/.+/' + title: + - '/refactor/i' + - label: 'style' + branch: + - '/style\/.+/' + title: + - '/style/i' + - label: 'test' + branch: + - '/test\/.+/' + title: + - '/test/i' + - label: 'ci' + branch: + - '/ci\/.+/' + title: + - '/ci/i' + - label: 'perf' + branch: + - '/perf\/.+/' + title: + - '/perf/i' + - label: 'build' + branch: + - '/build\/.+/' + title: + - '/build/i' + - label: 'deps' + branch: + - '/deps\/.+/' + title: + - '/deps/i' + - label: 'revert' + branch: + - '/revert\/.+/' + title: + - '/revert/i' categories: - - title: ✨ Features + - title: '🚀 Features' labels: + - 'feat' - "type: enhancement" - "type: new feature" - "type: major" - - title: 🐛 Bug Fixes/Improvements + - title: '🐛 Bug Fixes' labels: + - 'fix' - "type: improvement" - "type: bug" - "type: minor" - - title: 🛠 Dependency upgrades + - title: '📚 Documentation' labels: + - 'docs' + - title: '🔧 Maintenance' + labels: + - 'chore' + - 'refactor' + - 'style' + - 'test' + - 'ci' + - 'perf' + - 'build' + - 'deps' - "type: dependency upgrade" - "dependencies" - - title: ⚙️ Build/CI - labels: - "type: ci" - "type: build" + - title: '⏪ Reverts' + labels: + - 'revert' change-template: '- $TITLE @$AUTHOR (#$NUMBER)' version-resolver: major: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 34151db711..9d833c4653 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,13 +24,11 @@ jobs: ref: v${{ github.event.inputs.version }} - name: Publish Documentation id: docs - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: arguments: docs env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} - name: Publish to Github Pages if: success() uses: micronaut-projects/github-pages-deploy-action@grails diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index aa9d1ab2bf..62a474595c 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -21,11 +21,9 @@ jobs: java-version: '17' - name: Run Build id: build - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} with: arguments: build - name: Upload Distribution @@ -48,11 +46,9 @@ jobs: distribution: 'adopt' java-version: '11' - name: Publish to repo.grails.org - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} with: @@ -72,13 +68,11 @@ jobs: java-version: '17' - name: Build Docs id: docs - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: arguments: docs env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} - name: Publish to Github Pages if: steps.docs.outcome == 'success' uses: grails/github-pages-deploy-action@v2 diff --git a/.github/workflows/groovy-joint-workflow.yml b/.github/workflows/groovy-joint-workflow.yml index 732abd0a5c..98c8a1ef99 100644 --- a/.github/workflows/groovy-joint-workflow.yml +++ b/.github/workflows/groovy-joint-workflow.yml @@ -81,14 +81,9 @@ jobs: echo "" >> $GITHUB_OUTPUT echo "buildCache {" >> $GITHUB_OUTPUT echo " local { enabled = System.getenv('CI') != 'true' }" >> $GITHUB_OUTPUT - echo " remote(HttpBuildCache) {" >> $GITHUB_OUTPUT + echo " remote(gradleEnterprise.buildCache) {" >> $GITHUB_OUTPUT echo " push = System.getenv('CI') == 'true'" >> $GITHUB_OUTPUT echo " enabled = true" >> $GITHUB_OUTPUT - echo " url = 'https://ge.grails.org/cache/'" >> $GITHUB_OUTPUT - echo " credentials {" >> $GITHUB_OUTPUT - echo " username = System.getenv('GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER')" >> $GITHUB_OUTPUT - echo " password = System.getenv('GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY')" >> $GITHUB_OUTPUT - echo " }" >> $GITHUB_OUTPUT echo " }" >> $GITHUB_OUTPUT echo "}" >> $GITHUB_OUTPUT echo "" >> $GITHUB_OUTPUT @@ -101,12 +96,10 @@ jobs: # Add Gradle Enterprise set-up related configuration after line no 20 in settings.gradle echo "${{ steps.ge_conf.outputs.value}}" | sed -i -e "20r /dev/stdin" settings.gradle - name: Build and install groovy (no docs) - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 env: GRADLE_SCANS_ACCEPT: yes GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} with: build-root-directory: ../groovy arguments: | @@ -141,11 +134,9 @@ jobs: echo "CI_GROOVY_VERSION=${{needs.build_groovy.outputs.groovyVersion}}" >> $GITHUB_ENV - name: Build GSP id: build_gsp - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} with: arguments: | build diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index fc84d67bc7..287e662dbb 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -6,6 +6,10 @@ on: branches: - master - '[4-9]+.[0-9]+.x' + pull_request: + types: [opened, reopened, synchronize] + pull_request_target: + types: [opened, reopened, synchronize] workflow_dispatch: jobs: release_notes: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 22767fe187..a882a46261 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,13 +30,11 @@ jobs: - name: Run Assemble if: success() id: assemble - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: arguments: assemble env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} - name: Upload Distribution if: success() uses: actions/upload-artifact@v4 @@ -49,11 +47,9 @@ jobs: run: echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg - name: Publish to Sonatype OSSRH id: publish - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} @@ -77,11 +73,9 @@ jobs: token: ${{ secrets.GH_TOKEN }} ref: v${{ needs.publish.outputs.release_version }} - name: Nexus Staging Close And Release - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} @@ -114,13 +108,11 @@ jobs: java-version: '11' - name: Publish Documentation id: docs - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: arguments: docs env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} - name: Publish to Github Pages if: success() uses: micronaut-projects/github-pages-deploy-action@grails diff --git a/README.adoc b/README.adoc deleted file mode 100644 index d7357d3c39..0000000000 --- a/README.adoc +++ /dev/null @@ -1,12 +0,0 @@ -= Groovy Server Pages (GSP) image:https://github.com/grails/grails-gsp/workflows/Java%20CI/badge.svg[Java CI] - -This project contains the sources for GSP, the server-side view rendering technology used in http://grails.org[Grails]. - -== Documentation - -* Latest - https://gsp.grails.org -* Latest - https://gsp.grails.org/latest/api - - -* Snapshot Guide - https://gsp.grails.org/snapshot -* Snapshot API - https://gsp.grails.org/snapshot diff --git a/README.md b/README.md new file mode 100644 index 0000000000..fd10b8a146 --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# Groovy Server Pages (GSP) [![Java CI](https://github.com/grails/grails-gsp/actions/workflows/gradle.yml/badge.svg?event=push)](https://github.com/grails/grails-gsp/actions/workflows/gradle.yml) + +This project contains the sources for GSP, the server-side view rendering technology used in the [Grails framework](https://grails.org). + +## Documentation + +* Latest - https://gsp.grails.org +* Latest - https://gsp.grails.org/latest/api + + +* Snapshot Guide - https://gsp.grails.org/snapshot +* Snapshot API - https://gsp.grails.org/snapshot diff --git a/build.gradle b/build.gradle index 5c495e44bc..b217bf8523 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { dependencies { classpath "org.grails:grails-gradle-plugin:$grailsGradlePluginVersion" classpath "org.grails:grails-docs:${project.ext.properties.grailsDocsVersion ?: grailsVersion}" - classpath "io.github.gradle-nexus:publish-plugin:1.3.0" + classpath "io.github.gradle-nexus:publish-plugin:2.0.0" } } @@ -16,6 +16,7 @@ repositories { maven { url "https://repo.grails.org/grails/core" } } +group = "org.grails" version project.projectVersion ext { diff --git a/gradle.properties b/gradle.properties index dae2d2e454..6af8be6497 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,9 +6,9 @@ projectUrl=https://github.com/grails/grails-gsp githubSlug=grails/grails-gsp githubBranch=7.0.x developers=Puneet Behl, Graeme Rocher -grailsGradlePluginVersion=6.1.2 -grailsVersion=6.1.2 -groovyVersion=3.0.20 +grailsGradlePluginVersion=6.2.0 +grailsVersion=6.2.0 +groovyVersion=3.0.21 servletApiVersion=4.0.1 javaParserCoreVersion=3.15.14 jansiVersion=1.18 @@ -23,7 +23,7 @@ antVersion=1.10.14 controllersRef=https://docs.grails.org/latest/ref/Controllers commandLineRef=https://docs.grails.org/latest/ref/Command%20Line grailsDocsVersion=5.0.2 -testingSupportVersion=3.1.2 +testingSupportVersion=3.2.2 sitemeshVersion=2.4.4 junit-jupiter.version=5.8.0 diff --git a/settings.gradle b/settings.gradle index 3cbbb1ac48..9c71a9e4e3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,6 @@ plugins { id "com.gradle.enterprise" version "3.17.2" - id 'com.gradle.common-custom-user-data-gradle-plugin' version '1.13' + id 'com.gradle.common-custom-user-data-gradle-plugin' version '2.0.1' } gradleEnterprise { @@ -17,15 +17,12 @@ gradleEnterprise { buildCache { local { enabled = System.getenv('CI') != 'true' } - remote(HttpBuildCache) { - push = System.getenv('CI') == 'true' + remote(gradleEnterprise.buildCache) { + def isAuthenticated = System.getenv('GRADLE_ENTERPRISE_ACCESS_KEY') + push = System.getenv('CI') == 'true' && isAuthenticated enabled = true - url = 'https://ge.grails.org/cache/' - credentials { - username = System.getenv('GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER') - password = System.getenv('GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY') } - }} +} rootProject.name = "grails-gsp" diff --git a/src/main/docs/guide/resources.adoc b/src/main/docs/guide/resources.adoc index eaeb109a3b..caec97f08c 100644 --- a/src/main/docs/guide/resources.adoc +++ b/src/main/docs/guide/resources.adoc @@ -19,7 +19,7 @@ Take a look at the http://asset-pipeline.com/manual[documentation] for the asset If you do not want to use the Asset-Pipeline plugin, you can serve the static assets from directories `src/main/resources/public` or `src/main/webapp`, but the latter one only gets included in WAR packaging but not in JAR packaging. -For example, if you had a file stored at `/src/main/resources/public/images/example.png` and your Grails application was running on port 8080, then you could access the file by navigating to http://localhost:8080/static/images/example.jpg[http://localhost:8080/static/images/example.jpg]. +For example, if you had a file stored at `/src/main/resources/public/images/example.jpg` and your Grails application was running on port 8080, then you could access the file by navigating to http://localhost:8080/static/images/example.jpg[http://localhost:8080/static/images/example.jpg]. ==== Cache Configuration for Static Resources