You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@grails.apache.org by GitBox <gi...@apache.org> on 2026/04/30 15:50:33 UTC
[GH] (grails-core/fix/profile-version-resolution-7-0-11): Workflow run "CI" is working again!
The GitHub Actions job "CI" on grails-core.git/fix/profile-version-resolution-7-0-11 has succeeded.
Run started by GitHub user jamesfredley (triggered by jamesfredley).
Head commit for run:
5724164f3d447ce4cd96fe95d125cf50f7fc5edd / James Fredley <ja...@users.noreply.github.com>
Fix profile resolution when GRAILS_REPO_URL points at a BOM-incomplete repo
When the Grails CLI is invoked with GRAILS_REPO_URL pointing at an Apache
staging repository (or any repository whose published BOM does not declare
org.apache.grails.profiles:* coordinates), profile resolution fails with:
Could not find artifact org.apache.grails.profiles:web:jar: in
grails-override-repo (https://repository.apache.org/content/groups/staging)
Note the empty version after web:jar:. Two defects combine to produce this:
1. AbstractJarProfileRepository.getProfileArtifact defaults the profile
version to null and only sets it from grails.profiles user settings, which
are absent in a clean release-manager test environment. The downstream
MavenResolverGrapeEngine.createArtifact fallback to a BOM-managed version
then also returns null because (2).
2. The grails-bom dependencyManagement block does not list any
org.apache.grails.profiles:* coordinates. Profile subprojects apply the
org.apache.grails.gradle.grails-profile plugin, which is not in the
publishedProject filter in grails-bom/base/build.gradle.
Fix:
- Default the profile artifact version to Environment.grailsVersion in
AbstractJarProfileRepository. Profiles are released in lock-step with
grails-core since the move to the apache/grails-core monorepo, so the CLI
version is the correct profile version. User-supplied grails.profiles
settings still override per profile.
- Include subprojects that apply org.apache.grails.gradle.grails-profile in
the BOM's publishedProject filter so the published grails-bom and
grails-base-bom POMs declare profile coordinates in dependencyManagement.
- Add AbstractJarProfileRepositorySpec covering the version-default and
explicit-GAV paths so this regression cannot recur silently.
Verified locally:
- ./gradlew :grails-shell-cli:test --tests AbstractJarProfileRepositorySpec
passes both new specs.
- ./gradlew :grails-base-bom:generatePomFileForMavenPublication produces a
pom-default.xml whose dependencyManagement block now lists
org.apache.grails.profiles:{base,plugin,profile,rest-api,rest-api-plugin,web,web-plugin}.
- A separate Gradle-based 7.0.11 staging consumer build (curl from
start.grails.org/latest.grails.org, grailsVersion=7.0.11, staging repo
added to build.gradle) resolves all org.apache.grails:* artifacts at
7.0.11 and ./gradlew assemble succeeds. Only the CLI/wrapper path was
affected by the bug fixed here.
Assisted-by: claude-code:claude-opus-4
Report URL: https://github.com/apache/grails-core/actions/runs/25172714410
With regards,
GitHub Actions via GitBox