Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .asf.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
github:
environments:
source:
required_reviewers:
- id: grails-committers
type: Team
- id: jdaugherty
type: User
wait_timer: 0
release:
required_reviewers:
- id: grails-committers
Expand Down
1 change: 0 additions & 1 deletion .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
"org.grails:grails-plugin-databinding",
"org.grails:grails-plugin-datasource",
"org.grails:grails-plugin-domain-class",
"org.grails:grails-plugin-i18n",
"org.grails:grails-plugin-interceptors",
"org.grails:grails-plugin-mimetypes",
"org.grails:grails-plugin-rest",
Expand Down
23 changes: 23 additions & 0 deletions .github/vote_templates/announce.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
The Apache Grails (incubating) community is pleased to announce the release of Apache Grails (incubating) Spring Security Plugin ${VERSION}.

Grails is a powerful Groovy-based web application framework for the JVM built on top of Spring Boot that has many plugins to further extend its functionality.

This Spring Security Plugin release another milestone on our journey to a final 7.0 release. Users are encouraged to try the milestone to provide early feedback. Detailed upgrade instructions are available here: https://docs.grails.org/${VERSION}/guide/upgrading.html.

The release notes are available here:
https://github.com/apache/grails-spring-security/compare/v${VERSION}

For the complete list of changes:
https://github.com/apache/grails-spring-security/compare/v${PREVIOUS_VERSION}...v${VERSION}

Apache Grails website: https://grails.apache.org/

Download Links: https://grails.apache.org/download.html

Grails Resources:
- Grails Spring Security GitHub repo: https://github.com/apache/grails-spring-security
- Issues: https://github.com/apache/grails-spring-security/issues
- Mailing lists: https://grails.apache.org/community.html

Happy Coding,
The Apache Grails (incubating) Team
30 changes: 30 additions & 0 deletions .github/vote_templates/groovy_pmc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Hi Everyone,

The Apache Grails community has voted to approve the release of Apache Grails Spring Security Plugin ${VERSION}.

As the incubation host, we now kindly request the Groovy PMC to review & approve our ASF release.

Grails vote thread:
* <VOTE THREAD LINK>

Vote result thread:
* https://<TODO>

The tag for this release is:
* (grails-spring-security) https://github.com/apache/grails-spring-security/releases/tag/v${VERSION}

The artifacts to be voted on are located as follows (r${DIST_SVN_REVISION}):
Source release: https://dist.apache.org/repos/dist/dev/incubator/grails/spring-security/${VERSION}/sources

Release artifacts are signed with a key from the following file:
https://dist.apache.org/repos/dist/release/incubator/grails/KEYS

Please vote on releasing this package as Apache Grails (incubating) Spring Security Plugin ${VERSION}.

Hints on validating checksums/signatures (but replace md5sum with sha512sum):
https://www.apache.org/info/verification.html

The vote for this release is open for a minimum of 72 hours.
[ ] +1 Release Apache Grails (incubating) Spring Security Plugin ${VERSION}
[ ] 0 I don't have a strong opinion about this, but I assume it's ok
[ ] -1 Do not release Apache Grails (incubating) Spring Security Plugin ${VERSION} because...
35 changes: 35 additions & 0 deletions .github/vote_templates/staged.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Hi Everyone,

I am happy to start the VOTE thread for an Apache Grails (incubating) Spring Security Plugin release of version ${VERSION}!

Release notes for the release are here:
https://github.com/apache/grails-spring-security/releases/tag/v${VERSION}

The tag for this release is:
https://github.com/apache/grails-spring-security/releases/tag/v${VERSION}
Tag commit id: ${VERSION_COMMIT_ID}

The artifacts to be voted on are located as follows (r${DIST_SVN_REVISION}):
Source release: https://dist.apache.org/repos/dist/dev/incubator/grails/spring-security/${VERSION}/sources

Release artifacts are signed with a key from the following file:
https://dist.apache.org/repos/dist/release/incubator/grails/KEYS

Please vote on releasing this package as: Apache Grails (incubating) Spring Security Plugin ${VERSION}.

Reminder on ASF release approval requirements for PPMC members:
https://www.apache.org/legal/release-policy.html#release-approval

Hints on validating checksums/signatures (but replace md5sum with sha512sum):
https://www.apache.org/info/verification.html

The vote is open for a minimum of 72 hours and passes if a majority of at least
three +1 PPMC votes are cast.

[ ] +1 Release Apache Grails (incubating) Spring Security Plugin ${VERSION}
[ ] 0 I don't have a strong opinion about this, but I assume it's ok
[ ] -1 Do not release Apache Grails (incubating) Spring Security Plugin ${VERSION} because...

Here is my vote:

+1 (binding)
56 changes: 17 additions & 39 deletions .github/workflows/release-notes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,46 +21,24 @@ on:
branches:
- '[4-9]+.[0-9]+.x'
pull_request:
types: [opened, reopened, synchronize]
pull_request_target:
types: [opened, reopened, synchronize]
workflow_dispatch:
types: [ opened, reopened, synchronize, labeled ]
pull_request_target:
types: [ opened, reopened, synchronize, labeled ]
workflow_dispatch:
# queue jobs and only allow 1 run per branch due to the likelihood of hitting GitHub resource limits
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
jobs:
release_notes:
update_release_draft:
permissions:
# write permission is required to create a github release
contents: write
# write permission is required for autolabeler
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check if it has release drafter config file
id: check_release_drafter
run: |
has_release_drafter=$([ -f .github/release-drafter.yml ] && echo "true" || echo "false")
echo "has_release_drafter=${has_release_drafter}" >> $GITHUB_OUTPUT
- name: Extract branch name
id: extract_branch
run: echo "value=${GITHUB_REF:11}" >> $GITHUB_OUTPUT
# If it has release drafter:
- uses: release-drafter/release-drafter@v6
if: steps.check_release_drafter.outputs.has_release_drafter == 'true'
- name: "📝 Update Release Draft"
uses: release-drafter/release-drafter@v6
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
with:
commitish: ${{ steps.extract_branch.outputs.value }}
# Otherwise:
- name: Export Gradle Properties
if: steps.check_release_drafter.outputs.has_release_drafter == 'false'
uses: apache/grails-github-actions/export-gradle-properties@asf
- uses: apache/grails-github-actions/release-notes@asf
if: steps.check_release_drafter.outputs.has_release_drafter == 'false'
id: release_notes
with:
token: ${{ secrets.GH_TOKEN }}
- uses: ncipollo/release-action@1e3e9c6637e5566e185b7ab66f187539c5a76da7
if: steps.check_release_drafter.outputs.has_release_drafter == 'false' && steps.release_notes.outputs.generated_changelog == 'true'
with:
allowUpdates: true
commit: ${{ steps.release_notes.outputs.current_branch }}
draft: true
name: ${{ env.title }} ${{ steps.release_notes.outputs.next_version }}
tag: v${{ steps.release_notes.outputs.next_version }}
bodyFile: CHANGELOG.md
token: ${{ secrets.GH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
137 changes: 134 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
source:
# to ensure we never publish any build artifacts, run the source distribution as a separate build workflow
environment: source
name: "Source Distribution"
needs: publish
permissions:
Expand Down Expand Up @@ -204,10 +203,142 @@ jobs:
set -e
cd ${{ needs.publish.outputs.extract_repository_name }}
gh release --repo ${{ github.repository }} delete-asset v${{ needs.publish.outputs.release_version }} PUBLISHED_ARTIFACTS.txt --yes
upload:
needs: [ publish, source ]
runs-on: ubuntu-24.04
permissions:
contents: write
env:
SVN_USERNAME: ${{ secrets.SVC_DIST_GRAILS_USERNAME }}
SVN_PASSWORD: ${{ secrets.SVC_DIST_GRAILS_PASSWORD }}
steps:
- name: "Output Agent IP" # in the event RAO blocks this agent, this can be used to debug it
run: curl -s https://api.ipify.org
- name: "Setup SVN and Tools"
run: sudo apt-get install -y subversion subversion-tools tree gettext-base
- name: "Ensure grails dev folder exists"
run: |
set -e

if svn ls https://dist.apache.org/repos/dist/dev/incubator/grails --username "$SVN_USERNAME" --password "$SVN_PASSWORD" --non-interactive; then
echo "Dev Folder 'grails' already exists — skipping creation"
else
echo "Dev Folder 'grails' does not exist, creating"
svnmucc --username "$SVN_USERNAME" --password "$SVN_PASSWORD" --non-interactive \
mkdir https://dist.apache.org/repos/dist/dev/incubator/grails \
-m "Create 'grails' dev folder"
fi
- name: "Ensure grails spring-security folder exists"
run: |
set -e

if svn ls https://dist.apache.org/repos/dist/dev/incubator/grails/spring-security --username "$SVN_USERNAME" --password "$SVN_PASSWORD" --non-interactive; then
echo "Dev Folder 'grails/spring-security' already exists — skipping creation"
else
echo "Dev Folder 'grails/spring-security' does not exist, creating"
svnmucc --username "$SVN_USERNAME" --password "$SVN_PASSWORD" --non-interactive \
mkdir https://dist.apache.org/repos/dist/dev/incubator/grails/spring-security \
-m "Create 'grails spring-security' dev folder"
fi
- name: "Checkout dev repo"
run: |
svn checkout --username "$SVN_USERNAME" --password "$SVN_PASSWORD" --non-interactive https://dist.apache.org/repos/dist/dev/incubator/grails/spring-security dev-repo
- name: "Remove existing dev version"
run: |
export VERSION="${{ needs.publish.outputs.release_version }}"
cd dev-repo
if [ -d "$VERSION" ]; then
svn delete "$VERSION"
svn commit -m "Remove grails spring-security dev version $VERSION" --username "$SVN_USERNAME" --password "$SVN_PASSWORD" --non-interactive
else
echo "No existing dev version $VERSION to remove"
fi
- name: "Fetch source distributions"
run: |
export TAG="v${{ needs.publish.outputs.release_version }}"
export VERSION="${{ needs.publish.outputs.release_version }}"
cd dev-repo
mkdir -p $VERSION/sources
cd $VERSION/sources
curl -LO https://github.com/apache/grails-core/releases/download/$TAG/apache-${{ needs.publish.outputs.extract_repository_name }}-$VERSION-incubating-src.zip
curl -LO https://github.com/apache/grails-core/releases/download/$TAG/apache-${{ needs.publish.outputs.extract_repository_name }}-$VERSION-incubating-src.zip.sha512
curl -LO https://github.com/apache/grails-core/releases/download/$TAG/apache-${{ needs.publish.outputs.extract_repository_name }}-$VERSION-incubating-src.zip.asc
echo "Downloaded the following files:"
ls -l
- name: "Upload distributions"
run: |
export TAG="v${{ needs.publish.outputs.release_version }}"
export VERSION="${{ needs.publish.outputs.release_version }}"
cd dev-repo
echo "Adding the following files to SVN:"
tree
svn add $VERSION --force
svn commit -m "Upload grails distribution files for $VERSION" --username "$SVN_USERNAME" --password "$SVN_PASSWORD" --non-interactive
pwd
- name: "Store Distribution SVN revision"
run: |
export VERSION="${{ needs.publish.outputs.release_version }}"
cd dev-repo
svn info $VERSION > "DIST_SVN_REVISION.txt"
- name: "Upload Distribution SVN revision"
uses: softprops/action-gh-release@v2
with:
files: dev-repo/DIST_SVN_REVISION.txt
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "📥 Checkout repository"
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: v${{ needs.publish.outputs.release_version }}
path: "${{ needs.publish.outputs.extract_repository_name }}"
- name: 'Initial Vote Email'
env:
VERSION: ${{ needs.publish.outputs.release_version }}
VERSION_COMMIT_ID: ${{ needs.publish.outputs.commit_hash }}
run: |
export DIST_SVN_REVISION=$(awk '/Last Changed Rev:/ {print $4}' dev-repo/DIST_SVN_REVISION.txt)

echo "*************************************************"
echo "Subject: [VOTE] Release Apache Grails (incubating) Spring Security Plugin ${VERSION}"
echo "*************************************************"
echo "Body:"
echo "*************************************************"
cat ${{ needs.publish.outputs.extract_repository_name }}/.github/vote_templates/staged.txt | envsubst
echo "*************************************************"
- name: 'Groovy Vote Email'
env:
VERSION: ${{ needs.publish.outputs.release_version }}
VERSION_COMMIT_ID: ${{ needs.publish.outputs.commit_hash }}
run: |
export DIST_SVN_REVISION=$(awk '/Last Changed Rev:/ {print $4}' dev-repo/DIST_SVN_REVISION.txt)

echo "*************************************************"
echo "Subject: [VOTE] Approval of Apache Grails (incubating) Spring Security Plugin ${VERSION} release by Groovy PMC"
echo "*************************************************"
echo "Body:"
echo "*************************************************"
cat ${{ needs.publish.outputs.extract_repository_name }}/.github/vote_templates/groovy_pmc.txt | envsubst
echo "*************************************************"
- name: 'Announcement Email'
env:
VERSION: ${{ needs.publish.outputs.release_version }}
VERSION_COMMIT_ID: ${{ needs.publish.outputs.commit_hash }}
PREVIOUS_VERSION: 'TODO_PREVIOUS_VERSION'
run: |
export DIST_SVN_REVISION=$(awk '/Last Changed Rev:/ {print $4}' dev-repo/DIST_SVN_REVISION.txt)

echo "*************************************************"
echo "Subject: [ANNOUNCE] Apache Grails (incubating) Spring Security Plugin ${VERSION}"
echo "*************************************************"
echo "Body:"
echo "*************************************************"
cat ${{ needs.publish.outputs.extract_repository_name }}/.github/vote_templates/announce.txt | envsubst
echo "*************************************************"
docs:
environment: docs
name: "Publish Documentation"
needs: [publish, source]
needs: [publish, source, upload]
runs-on: ubuntu-latest
permissions:
contents: write # required for gradle.properties revert
Expand Down Expand Up @@ -243,7 +374,7 @@ jobs:
release:
name: "Close Release"
environment: release
needs: [ publish, source, docs ]
needs: [ publish, source, upload, docs ]
runs-on: ubuntu-latest
permissions:
contents: write # required for gradle.properties revert
Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# under the License.
#
projectVersion=7.0.0-SNAPSHOT
grailsVersion=7.0.0-SNAPSHOT
grailsVersion=7.0.0-RC2
javaVersion=17

unboundidLdapSdk=7.0.2
Expand All @@ -27,7 +27,7 @@ casClientCoreVersion=4.0.4
commonsLangVersion=2.6
dumbsterVersion=1.6
gradleCryptoChecksumVersion=1.4.0
grailsRedisVersion=5.0.0-M5
grailsRedisVersion=5.0.0-RC2
mailVersion=5.0.0
micronautVersion=4.5.3
pac4jVersion=6.0.6
Expand Down
Loading
Loading