Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
6b8c1ad
build: Groovy 5.0.0-SNAPSHOT and Spock 2.4-M6-groovy-4.0
matrei May 15, 2025
88baa17
build: add `-Dspock.iKnowWhatImDoing.disableGroovyVersionCheck=true`
matrei May 15, 2025
f3edd09
fix: Groovy 5 compatibility
matrei May 15, 2025
d6b30be
test: Add `@PendingFeatureIf` for currently incompatible tests
matrei May 15, 2025
00fcb6c
Merge remote-tracking branch 'upstream/7.0.x' into groovy-5
jdaugherty Sep 8, 2025
cb7d7ff
feature: allow pulling staged versions of groovy for testing
jdaugherty Sep 8, 2025
cd9ff39
fix: switch to groovy.transform.Generated
jdaugherty Sep 8, 2025
457d6cd
chore: testing push access to grails-core
matrei Sep 9, 2025
c879a1c
Revert "chore: testing push access to grails-core"
matrei Sep 9, 2025
ace4d30
Merge branch '7.0.x' into groovy-5
matrei Oct 28, 2025
bd260ef
test(deps): update to Spock 2.4-groovy-5.0-SNAPSHOT
matrei Oct 29, 2025
30b1611
fix(deps): update to Groovy 5.0.2
matrei Oct 29, 2025
329f31e
test: remove `@PendingFeature` for passing tests
matrei Oct 29, 2025
94a02b8
style: fix imports
matrei Oct 29, 2025
41b8e09
Merge branch '7.0.x' into groovy-5
matrei Oct 29, 2025
bcbdff4
build: fix snapshot repositories
matrei Oct 29, 2025
efa1502
build: fix sbom issues
matrei Oct 29, 2025
72bdc31
Merge branch '7.0.x' into groovy-5
matrei Jan 13, 2026
554b802
fix: migrate to new groovysh api
matrei Jan 15, 2026
9427f51
chore: bump Groovy to 5.0.3-SNAPSHOT
matrei Jan 15, 2026
c54de20
fix: more Groovy 5 compatibility changes
matrei Jan 15, 2026
bb53f13
chore: bump Groovy to 5.0.4-SNAPSHOT
matrei Jan 15, 2026
f5d023f
Merge branch '8.0.x' into groovy-5
jamesfredley Feb 4, 2026
765ff5d
fix(deps): Bump Groovy to 5.0.5
matrei Apr 1, 2026
f64e026
test: Remove `@PendingFeature` from passing test
matrei Apr 1, 2026
d1b8b5f
fix(deps): Bump Grails Spring Security to 7.0.1
matrei Apr 1, 2026
393bbfd
Merge remote-tracking branch 'apache/8.0.x' into groovy-5
matrei Apr 1, 2026
4fe600e
Merge origin/groovy-5 into grails8-groovy5-sb4 (resolve: Groovy 5.0.5…
jamesfredley Apr 4, 2026
4a27159
cherry-pick 9574fe8: Groovy 5 compatibility fixes (66 files)
jamesfredley Apr 4, 2026
92b89ce
chore: remove unrelated files from previous branch
jamesfredley Apr 4, 2026
5fc3bda
fix: improve Groovy 5 compatibility - replace dynamic workarounds wit…
jamesfredley Apr 4, 2026
bfe1492
fix: pin Groovy to 5.0.3 and resolve downstream test failures
jamesfredley Apr 5, 2026
a427c33
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley Apr 5, 2026
28dd32f
fix(build): normalize line endings via .gitattributes
jamesfredley Apr 5, 2026
7896ef8
fix(grails-gradle): skip missing input dirs in mergeTestReports
jamesfredley Apr 5, 2026
708e03c
fix: bump Groovy to 5.0.5 with GROOVY-11907 workaround
jamesfredley Apr 6, 2026
60c04d6
fix: clean up Groovy 5.0.3 workarounds now on 5.0.5
jamesfredley Apr 6, 2026
e82ea6b
fix: resolve CI failures for CodeNarc and cyclonedxBom
jamesfredley Apr 6, 2026
83567f4
fix: resolve Groovy 5 CI failures for CodeNarc, controller params, an…
jamesfredley Apr 6, 2026
10a450c
fix: resolve Groovy 5 deep compatibility issues for MongoDB, Hibernat…
jamesfredley Apr 6, 2026
a6e9881
fix: work around Groovy 5 @CompileStatic instanceof bytecode bug
jamesfredley Apr 6, 2026
09a482f
chore: remove stale file
jamesfredley Apr 6, 2026
a191fec
fix: resolve remaining Hibernate5 config-binding and trait test failures
jamesfredley Apr 6, 2026
153e14c
fix: cherry-pick Groovy 5 fixes from Groovy 6 canary branch
jamesfredley Apr 6, 2026
e9ddaf3
fix: resolve functional test failures for cache, async, geb, views, a…
jamesfredley Apr 6, 2026
6ad040f
fix: replace DemoController method parameters with params access
jamesfredley Apr 6, 2026
d2441fb
fix: remove static fields from CommandLineHelper trait (GROOVY-11907)
jamesfredley Apr 6, 2026
ba430f3
fix: remove @Override from ProductController.index to avoid inherited…
jamesfredley Apr 7, 2026
3608a76
fix: add explicit render(Map) to GrailsApplicationCommand trait
jamesfredley Apr 7, 2026
43f98a1
fix: bypass named-arg render() in GenerateControllerCommand for Groovy 5
jamesfredley Apr 7, 2026
af8923a
Merge branch 'spring-boot-4' into grails8-groovy5-sb4
jamesfredley Apr 7, 2026
a0ee062
fix: convert GrailsApplicationCommand from trait to abstract class
jamesfredley Apr 7, 2026
6972dd1
Merge branch 'spring-boot-4' into grails8-groovy5-sb4
jamesfredley Apr 7, 2026
890c872
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley Apr 15, 2026
0999a5b
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Apr 16, 2026
ff5d972
Restore grails.plugin.json.builder deprecation shims for Groovy 5 build
jamesfredley Apr 16, 2026
0270152
Resolve render(Map) statically in TemplateRendererImpl for Groovy 5
jamesfredley Apr 16, 2026
f408b2f
Derive Apache Groovy joint branch from dependencies.gradle
jamesfredley Apr 16, 2026
ff01c08
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Apr 24, 2026
8c5d1d1
fix(sbom): align jline license overrides with post-merge resolved ver…
jamesfredley Apr 24, 2026
fe05ce8
ci: make groovy-joint-workflow patch pattern-based, not line-numbered
jamesfredley Apr 24, 2026
ba6c488
build: bump Apache Groovy to 5.0.6-SNAPSHOT for GROOVY-11907 trait-fi…
jamesfredley Apr 24, 2026
325e2fe
fix: replace File truthy-check with explicit null checks in TemplateR…
jamesfredley Apr 24, 2026
39b5e58
style: use single-quoted Strings for non-interpolated messages
jamesfredley Apr 24, 2026
962b41e
Merge remote-tracking branch 'origin/upgrade/gradle-9.3.1' into pr-15557
jamesfredley Apr 24, 2026
cf7e003
fix(grails-gradle): pin documentation deps to gradle-groovy.version (…
jamesfredley Apr 24, 2026
76f6f72
Merge branch 'upgrade/gradle-9.3.1' into grails8-groovy5-sb4
jamesfredley Apr 25, 2026
d280308
Revert: line-ending normalization (#15557 review feedback)
jamesfredley Apr 25, 2026
4040590
Restore Map[key]++ form in MongoCodecSession (#15557 review feedback)
jamesfredley Apr 25, 2026
edb40f2
Make NavigableMap ConfigObject conversion shallow + lazy (#15557 revi…
jamesfredley Apr 25, 2026
558e132
Replace Groovy joint-build awk patches with a Gradle init-script (#15…
jamesfredley Apr 25, 2026
8af5d1d
Restore static SQL methods on HibernateEntity trait (GROOVY-11907 ver…
jamesfredley Apr 25, 2026
a290b37
Restore GROOVY-11907 trait static members in Geb and scaffolding helpers
jamesfredley Apr 25, 2026
a71c8b5
Restore generic trait property coverage in ClassPropertyFetcherTests
jamesfredley Apr 25, 2026
2bb0930
Remove JspTagImpl CompileDynamic workaround after grails-web-jsp comp…
jamesfredley Apr 25, 2026
b0c7f34
Restore interface defaults for ContainerGebConfiguration after compil…
jamesfredley Apr 25, 2026
b8ee60d
Re-trait ContainerGebConfiguration: interface defaults still hit Groo…
jamesfredley Apr 25, 2026
0804a4f
Re-CompileDynamic ContainerSupport: GROOVY-11907 fix incomplete for i…
jamesfredley Apr 25, 2026
29a9a59
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Apr 26, 2026
1bedef1
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Apr 26, 2026
b1c235a
ci: add groovy-joint-build init-script to sparse-checkout list
jamesfredley Apr 26, 2026
47ed74f
Restore GrailsApplicationCommand as trait; correct root-cause comments
jamesfredley Apr 27, 2026
e753a6e
Trim instanceof workaround to only the site that needs it; correct di…
jamesfredley Apr 27, 2026
30200c7
Replace ConfigObject conversion shim with targeted root-cause fix in …
jamesfredley Apr 27, 2026
878adaf
VariableScopeVisitor / @Slf4j workaround audit - keep what is needed,…
jamesfredley Apr 27, 2026
057ad50
Validateable: link standalone reproducer for the TraitReceiverTransfo…
jamesfredley Apr 27, 2026
fa7260c
render(Map) silent no-op: note the regression also exists on Groovy 6…
jamesfredley Apr 27, 2026
94f87b0
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Apr 30, 2026
be0c63a
Align grails-micronaut-bom Groovy version with main bom
jamesfredley Apr 30, 2026
1c723ed
Disable integrationTest for 5 test apps - Groovy 5 indy=false regress…
jamesfredley Apr 30, 2026
b91b576
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley May 2, 2026
74da807
Restore ContainerSupport @CompileStatic - GROOVY-11968 fixed in 5.0.6…
jamesfredley May 2, 2026
f61aa98
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley May 2, 2026
5ff34e8
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley May 2, 2026
8ece2cb
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley May 3, 2026
73bd63c
Restore instanceof shape - GROOVY-11983 fixed in 5.0.6-SNAPSHOT build…
jamesfredley May 3, 2026
ad634e0
Restore SUCCESS/FAILURE constants and revert validation drive-by
jamesfredley May 3, 2026
65d194f
Restore IContainerGebConfiguration as interface - GROOVY-11982 fixed …
jamesfredley May 8, 2026
faef56c
render(Map) workarounds: align inline diagnoses with File-truthiness …
jamesfredley May 8, 2026
a0b7428
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley May 8, 2026
43ad57a
Final Groovy 5 audit pass: clean up silent File-truthiness traps + st…
jamesfredley May 8, 2026
813b131
Bump javaparser-core to 3.28.1 to align with Groovy 5.0.6-SNAPSHOT
jamesfredley May 8, 2026
0ce8095
Fix dbmigration GroovyChangeLogSpec: drop env-dependent log-capture a…
jamesfredley May 8, 2026
bda52ad
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley May 13, 2026
a000a5f
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley May 20, 2026
4250923
Bring in #15294 compile-static dynamic-checking test app
jdaugherty May 20, 2026
423022f
fix(deps): pin Groovy to released 5.0.6 to unblock CI dependency reso…
jamesfredley May 20, 2026
84b0c95
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley May 21, 2026
f1b78b7
deps: bump Apache Groovy to 5.0.7-SNAPSHOT
jamesfredley May 21, 2026
1c411f8
Merge branch 'fix/8.0.x-merge-sb4-fallout' into grails8-groovy5-sb4
jamesfredley May 22, 2026
6ee894f
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley May 22, 2026
0a88ace
fix(ci): align micronaut-bom groovy version and resolve Groovy 5 STC …
jamesfredley May 22, 2026
4ac7735
fix(test): drop generic argument from `instanceof List<FieldError>`
jamesfredley May 22, 2026
68fe246
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley May 22, 2026
649d7bb
fix(gsp): resolve g.taglib STC calls when the GSP page inherits getPr…
jamesfredley May 29, 2026
ef6cca8
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley May 29, 2026
fea4868
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley May 29, 2026
b73f6bc
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley May 29, 2026
db381c1
fix: drop ConfigurationBuilder @Builder-detection workaround (GROOVY-…
jamesfredley May 29, 2026
637c6d1
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 1, 2026
ebcb9d8
Drop unnecessary Spock 2.4 test-config workarounds
jamesfredley Jun 1, 2026
9d7149d
Revert incidental NavigableMap logger refactor; condense comments
jamesfredley Jun 1, 2026
8812be9
Remove changes not required for Groovy 5 support
jamesfredley Jun 1, 2026
9d944e2
Remove non-Groovy-5 source changes
jamesfredley Jun 1, 2026
5c5d1a4
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 2, 2026
42a9292
Re-test Groovy 5 workarounds against latest 5.0.7-SNAPSHOT
jamesfredley Jun 2, 2026
c8aa652
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 2, 2026
ae5fa97
Minimize the Groovy 5 diff to bare essentials
jamesfredley Jun 2, 2026
b61bd6a
Remove changes unrelated to Groovy 5
jamesfredley Jun 2, 2026
e24e503
Correct boot4-disabled integration test blocker comment
jamesfredley Jun 2, 2026
df3fd3e
Fix Groovy 5 VariableScopeVisitor NPE on null method exceptions array
jamesfredley Jun 2, 2026
95b8e7f
Bump javaparser-core to 3.28.2 for Groovy 5
jamesfredley Jun 2, 2026
248c75f
Allow Micronaut platform asm override in micronaut test examples
jamesfredley Jun 2, 2026
fb725b1
Work around Groovy 5 OptimizingStatementWriter slow-path bug for para…
jamesfredley Jun 2, 2026
013becf
Bind Class-typed GORM settings via the context class loader
jamesfredley Jun 2, 2026
3fbfc1a
Restore Groovy truth for the template argument in TemplateRendererImpl
jamesfredley Jun 2, 2026
369d674
Revert manual controller-action parameter workarounds
jamesfredley Jun 2, 2026
df4750c
Pin org.ow2.asm in the micronaut BOM instead of per-app overrides
jamesfredley Jun 2, 2026
9dd7985
Re-enable JsonViewTemplateResolverSpec on Groovy 5
jamesfredley Jun 2, 2026
c884184
Clean up the global GroovySpy in DataBindingTests
jamesfredley Jun 2, 2026
d67db7e
Clarify Groovy 5 workaround comments
jamesfredley Jun 2, 2026
caad542
Document Groovy 5 behaviour changes in the upgrade guide
jamesfredley Jun 2, 2026
0c88546
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 4, 2026
9b47e14
Fix GROOVY-12063 at source and correct Groovy 5 workaround records
jamesfredley Jun 4, 2026
abae8a1
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 4, 2026
e4bc0b6
Sync grails-hibernate7-micronaut-bom with sibling micronaut BOMs
jamesfredley Jun 5, 2026
3bd7a28
Remove map-entry colon alignment in ConstrainedProperty.DEFAULT_MESSAGES
jamesfredley Jun 5, 2026
8429505
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 5, 2026
d3506cf
fix: Remove Groovy 5 OptimizingStatementWriter workaround
matrei Jun 8, 2026
2b83d84
Restore Groovy logging transform injection
jamesfredley Jun 11, 2026
37a9a4d
Keep MethodNode exceptions non-null
jamesfredley Jun 11, 2026
1eb7022
Clean Groovy 5 workaround notes
jamesfredley Jun 11, 2026
c3eba98
Retain active Groovy 5 regression guards
jamesfredley Jun 11, 2026
dc37429
Stabilize Hibernate 7 migration assertions
jamesfredley Jun 11, 2026
7c1bae7
Type default view renderers generically
jamesfredley Jun 11, 2026
cddfec9
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 11, 2026
214b620
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 11, 2026
6f776b0
Avoid CodeQL autobuild for Groovy sample apps
jamesfredley Jun 11, 2026
53e673f
fix: pass empty arrays to AST addMethod instead of null
matrei Jun 11, 2026
078f320
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley Jun 11, 2026
c73ea01
Align Spring DM example with project Groovy version
jamesfredley Jun 12, 2026
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
56 changes: 56 additions & 0 deletions .github/scripts/groovy-joint-build.init.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

// Gradle init-script applied during the Groovy joint-validation build.
// Overrides Develocity and build-cache configuration injected by Groovy's own
// build-scans.gradle without modifying any of Groovy's source files.
//
// Applied via: ./gradlew --init-script <path>/groovy-joint-build.init.gradle
//
// Defensive: the pluginManager.withPlugin guard makes this a no-op when the
// Develocity plugin is absent, so the script never crashes Groovy's build.

settingsEvaluated { settings ->
settings.pluginManager.withPlugin('com.gradle.develocity') {
def isAuthenticated = System.getenv('GRAILS_DEVELOCITY_ACCESS_KEY') != null

// 'develocity' is the DSL extension registered by the plugin on Settings.
settings.develocity {
server = 'https://develocity.apache.org'

buildScan {
// Tag the build for visibility on develocity.apache.org. Groovy's own
// gradle/build-scans.gradle does not add any tags, so additive is safe.
tag('groovy')
tag('grails-core')
// Only publish when a valid access key is present in the environment.
publishing.onlyIf { isAuthenticated }
uploadInBackground = false
}
}

settings.buildCache {
local {
enabled = false
}
remote(settings.develocity.buildCache) {
push = isAuthenticated
enabled = true
}
}
}
}
18 changes: 2 additions & 16 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,26 +69,12 @@ jobs:
uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
with:
languages: ${{ matrix.language }}
# The autobuild action runs `./gradlew testClasses`, which compiles Groovy sample apps that are covered by regular CI.
build-mode: none
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language

#- run: |
# make bootstrap
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
90 changes: 32 additions & 58 deletions .github/workflows/groovy-joint-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,23 +47,40 @@ jobs:
with:
path: ~/.m2/repository
key: cache-local-maven-${{ github.sha }}
- name: "📥 Checkout Grails Core to fetch Gradle Plugin versions it uses"
- name: "📥 Checkout Grails Core files needed for the Groovy joint-build"
# Sparse-checkout fetches only the two paths this job actually needs:
# - dependencies.gradle: parsed below to derive the matching Apache
# Groovy branch (GROOVY_<major>_0_X) for this Grails branch.
# - .github/scripts/groovy-joint-build.init.gradle: passed to
# ./gradlew --init-script when publishing Groovy to local Maven so
# the joint build reuses our Develocity / build-cache settings.
# Both paths must be listed here; otherwise the init-script step fails
# with "The specified initialization script ... does not exist."
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
sparse-checkout-cone-mode: false
sparse-checkout: settings.gradle
- name: "📝 Store the Gradle Plugin versions used in this project"
id: gradle-plugin-versions
sparse-checkout: |
dependencies.gradle
.github/scripts/groovy-joint-build.init.gradle
- name: "📝 Derive matching Apache Groovy branch from dependencies.gradle"
id: groovy-branch
run: |
DEVELOCITY_PLUGIN_VERSION=$(grep -m 1 'id\s*\(\"com.gradle.develocity\"\|'"'com.gradle.develocity'"'\)\s*version' settings.gradle | sed -E "s/.*version[[:space:]]*['\"]?([0-9]+\.[0-9]+(\.[0-9]+)?)['\"]?.*/\1/" | tr -d [:space:])
COMMON_CUSTOM_USER_DATA_PLUGIN_VERSION=$(grep -m 1 'id\s*\(\"com.gradle.common-custom-user-data-gradle-plugin\"\|'"'com.gradle.common-custom-user-data-gradle-plugin'"'\)\s*version' settings.gradle | sed -E "s/.*version[[:space:]]*['\"]?([0-9]+\.[0-9]+(\.[0-9]+)?)['\"]?.*/\1/" | tr -d [:space:])
echo "Project uses Develocity Plugin version: $DEVELOCITY_PLUGIN_VERSION"
echo "Project uses Common Custom User Data Plugin version: $COMMON_CUSTOM_USER_DATA_PLUGIN_VERSION"
echo "develocity_plugin_version=$DEVELOCITY_PLUGIN_VERSION" >> $GITHUB_OUTPUT
echo "common_custom_user_data_plugin_version=$COMMON_CUSTOM_USER_DATA_PLUGIN_VERSION" >> $GITHUB_OUTPUT
rm settings.gradle
- name: "📥 Checkout Groovy 4_0_X (Grails 7 and later)"
run: git clone --depth 1 https://github.com/apache/groovy.git -b GROOVY_4_0_X --single-branch
# Extract the major version of `groovy.version` declared in this branch's
# dependencies.gradle (e.g. '5.0.5' -> '5', '4.0.31' -> '4') and use it to
# pick the matching Apache Groovy development branch (GROOVY_<major>_0_X).
# This keeps `7.0.x` PRs validating against Groovy 4 and `8.0.x` PRs
# validating against Groovy 5 without hard-coding the branch here.
GROOVY_MAJOR=$(grep -m 1 "'groovy\.version'" dependencies.gradle | sed -E "s/.*'([0-9]+)\.[0-9]+\.[0-9]+.*/\1/" | tr -d '[:space:]')
if [ -z "$GROOVY_MAJOR" ]; then
echo "::error::Could not determine Apache Groovy major version from dependencies.gradle"
exit 1
fi
GROOVY_BRANCH="GROOVY_${GROOVY_MAJOR}_0_X"
echo "Validating against Apache Groovy branch: $GROOVY_BRANCH"
echo "value=$GROOVY_BRANCH" >> $GITHUB_OUTPUT
rm dependencies.gradle
- name: "📥 Checkout Apache Groovy (${{ steps.groovy-branch.outputs.value }})"
run: git clone --depth 1 https://github.com/apache/groovy.git -b ${{ steps.groovy-branch.outputs.value }} --single-branch
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
with:
Expand All @@ -78,54 +95,11 @@ jobs:
GROOVY_VERSION=$(cat gradle.properties | grep groovyVersion | cut -d\= -f2 | tr -d '[:space:]')
echo "Groovy version $GROOVY_VERSION stored"
echo "value=$GROOVY_VERSION" >> $GITHUB_OUTPUT
- name: "🐘 Configure Gradle Plugins (Step 1/3)"
id: develocity-conf-1
run: |
echo "VALUE<<EOF" >> $GITHUB_OUTPUT
echo "plugins { " >> $GITHUB_OUTPUT
echo " id 'com.gradle.develocity' version '${{ steps.gradle-plugin-versions.outputs.develocity_plugin_version }}'" >> $GITHUB_OUTPUT
echo " id 'com.gradle.common-custom-user-data-gradle-plugin' version '${{ steps.gradle-plugin-versions.outputs.common_custom_user_data_plugin_version }}'" >> $GITHUB_OUTPUT
echo "}" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: "🐘 Configure Gradle Plugins (Step 2/3)"
id: develocity-conf-2
run: |
echo "VALUE<<EOF" >> $GITHUB_OUTPUT
echo "def isAuthenticated = System.getenv('DEVELOCITY_ACCESS_KEY ') != null" >> $GITHUB_OUTPUT
echo "develocity {" >> $GITHUB_OUTPUT
echo " server = 'https://develocity.apache.org'" >> $GITHUB_OUTPUT
echo " buildScan {" >> $GITHUB_OUTPUT
echo " tag('groovy')" >> $GITHUB_OUTPUT
echo " tag('grails-core')" >> $GITHUB_OUTPUT
echo " publishing.onlyIf { isAuthenticated }" >> $GITHUB_OUTPUT
echo " uploadInBackground = false" >> $GITHUB_OUTPUT
echo " }" >> $GITHUB_OUTPUT
echo "}" >> $GITHUB_OUTPUT
echo "buildCache {" >> $GITHUB_OUTPUT
echo " local { enabled = false }" >> $GITHUB_OUTPUT
echo " remote(develocity.buildCache) {" >> $GITHUB_OUTPUT
echo " push = isAuthenticated" >> $GITHUB_OUTPUT
echo " enabled = true" >> $GITHUB_OUTPUT
echo " }" >> $GITHUB_OUTPUT
echo "}" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: "🐘 Configure Gradle Plugins (step 3/3)"
run: |
cd groovy
# Delete existing plugins from settings.gradle file
sed -i '32,37d' settings.gradle
# Add Develocity setup related configuration after line no 31 in settings.gradle
echo "${{ steps.develocity-conf-1.outputs.value }}" | sed -i -e "31r /dev/stdin" settings.gradle
# Delete existing buildCache configuration from gradle/build-scans.gradle file
sed -i '23,46d' gradle/build-scans.gradle
# Add Develocity setup related configuration after line no 22 in gradle/build-scans.gradle
echo "${{ steps.develocity-conf-2.outputs.value }}" | sed -i -e "22r /dev/stdin" gradle/build-scans.gradle
- name: "🔨 Publish Groovy to local maven repository (no docs)"
run: |
cd groovy
./gradlew pTML -x groovydoc -x javadoc -x javadocAll -x groovydocAll -x asciidoc -x docGDK
./gradlew pTML -x groovydoc -x javadoc -x javadocAll -x groovydocAll -x asciidoc -x docGDK \
--init-script $GITHUB_WORKSPACE/.github/scripts/groovy-joint-build.init.gradle
build_grails:
needs: [build_groovy]
runs-on: ubuntu-latest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,25 @@ class SbomPlugin implements Plugin<Project> {
]

private static Map<String, String> LICENSE_MAPPING = [
'pkg:maven/org.antlr/antlr4-runtime@4.7.2?type=jar' : 'BSD-3-Clause', // maps incorrectly because of https://github.com/CycloneDX/cyclonedx-core-java/issues/205
'pkg:maven/jline/jline@2.14.6?type=jar' : 'BSD-2-Clause', // maps incorrectly because of https://github.com/CycloneDX/cyclonedx-core-java/issues/205
'pkg:maven/org.jline/jline@3.30.6?type=jar' : 'BSD-3-Clause', // maps incorrectly because of https://github.com/CycloneDX/cyclonedx-core-java/issues/205
'pkg:maven/org.liquibase.ext/liquibase-hibernate5@4.27.0?type=jar': 'Apache-2.0', // maps incorrectly because of https://github.com/liquibase/liquibase/issues/2445 & the base pom does not define a license
'pkg:maven/com.oracle.coherence.ce/coherence-bom@25.03.1?type=pom': 'UPL-1.0', // does not have map based on license id
'pkg:maven/com.oracle.coherence.ce/coherence-bom@25.03.2?type=pom': 'UPL-1.0', // does not have map based on license id
'pkg:maven/com.oracle.coherence.ce/coherence-bom@22.06.2?type=pom': 'UPL-1.0', // does not have map based on license id
'pkg:maven/jline/jline@2.14.6?type=jar' : 'BSD-2-Clause', // maps incorrectly because of https://github.com/CycloneDX/cyclonedx-core-java/issues/205
'pkg:maven/opensymphony/sitemesh@2.6.0?type=jar' : 'OpenSymphony', // custom license approved by legal LEGAL-707
'pkg:maven/org.antlr/antlr4-runtime@4.7.2?type=jar' : 'BSD-3-Clause', // maps incorrectly because of https://github.com/CycloneDX/cyclonedx-core-java/issues/205
'pkg:maven/org.jline/jansi@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline@3.30.6?type=jar' : 'BSD-3-Clause', // direct dependency declared at jline.version in dependencies.gradle
'pkg:maven/org.jline/jline-builtins@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline-console@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline-native@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline-reader@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline-style@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline-terminal@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline-terminal-jansi@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline-terminal-jna@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jline/jline-terminal-jni@3.30.9?type=jar' : 'BSD-3-Clause', // jline group resolved at 3.30.9 transitively via groovy-groovysh; main org.jline:jline pinned at 3.30.6 directly
'pkg:maven/org.jruby/jzlib@1.1.5?type=jar' : 'BSD-3-Clause', // https://web.archive.org/web/20240822213507/http://www.jcraft.com/jzlib/LICENSE.txt shows it's a 3 clause
'pkg:maven/org.liquibase.ext/liquibase-hibernate5@4.27.0?type=jar': 'Apache-2.0', // maps incorrectly because of https://github.com/liquibase/liquibase/issues/2445 & the base pom does not define a license
]

// we don't distribute these so these licenses are considered acceptable, but we still prefer ASF licenses.
Expand Down
Loading
Loading