Skip to content

build!: upgrade Gradle 6.9.4 to 8.5#681

Open
ChristianMurphy wants to merge 1 commit intouPortal-Project:masterfrom
ChristianMurphy:build/gradle-8
Open

build!: upgrade Gradle 6.9.4 to 8.5#681
ChristianMurphy wants to merge 1 commit intouPortal-Project:masterfrom
ChristianMurphy:build/gradle-8

Conversation

@ChristianMurphy
Copy link
Member

Checklist
Description of change

Blocker for the Spring 5/6 migration — uPortal-start must track the same Gradle version as the upstream framework.

Changes:

  • Wrapper upgraded from 6.9.4 → 8.5 (jar, scripts, properties)
  • compile → implementation, runtime → runtimeOnly, testCompile → testImplementation across all 18 overlay build files
  • archiveName → archiveFileName.set() (deprecated property removed in Gradle 8)
  • Removed 'maven' plugin from overlays/build.gradle (superseded by maven-publish in the framework)
  • testCompile with closure → testImplementation (cas overlay)
  • configurations.jdbc as dependency → extendsFrom jdbc on implementation and impexp (Gradle 8 disallows adding a Configuration object as a dependency)
  • WarOverlayPlugin: configurations.runtime → configurations.runtimeClasspath (runtime removed in Gradle 8)
  • PortalShellInvoker: project.getProperty('libsDir') → new File(buildDir, 'libs') (libsDir property removed in Gradle 8)
  • buildSrc/build.gradle: compile → implementation
  • overlays/uPortal: configurations.runtime → configurations.runtimeClasspath for skin prep task

Verified: portalInit + tomcatStart succeed,
81 Playwright E2E tests pass.

Blocker for the Spring 5/6 migration — uPortal-start must
track the same Gradle version as the upstream framework.

Changes:
- Wrapper upgraded from 6.9.4 → 8.5 (jar, scripts, properties)
- compile → implementation, runtime → runtimeOnly,
  testCompile → testImplementation across all 18 overlay
  build files
- archiveName → archiveFileName.set() (deprecated property
  removed in Gradle 8)
- Removed 'maven' plugin from overlays/build.gradle
  (superseded by maven-publish in the framework)
- testCompile with closure → testImplementation (cas overlay)
- configurations.jdbc as dependency → extendsFrom jdbc
  on implementation and impexp (Gradle 8 disallows adding
  a Configuration object as a dependency)
- WarOverlayPlugin: configurations.runtime →
  configurations.runtimeClasspath (runtime removed in
  Gradle 8)
- PortalShellInvoker: project.getProperty('libsDir') →
  new File(buildDir, 'libs') (libsDir property removed
  in Gradle 8)
- buildSrc/build.gradle: compile → implementation
- overlays/uPortal: configurations.runtime →
  configurations.runtimeClasspath for skin prep task

Verified: portalInit + tomcatStart succeed,
81 Playwright E2E tests pass.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Gradle from version 6.9.4 to 8.5, which is a blocker for the Spring 5/6 migration. The upgrade requires updating deprecated Gradle APIs across 18 overlay build files and related build infrastructure.

Changes:

  • Gradle wrapper upgraded from 6.9.4 to 8.5 (properties, scripts, and JAR)
  • All deprecated dependency configurations updated: compileimplementation, runtimeruntimeOnly, testCompiletestImplementation
  • Configuration inheritance pattern changed from direct configuration-as-dependency to extendsFrom for JDBC driver sharing
  • Deprecated Gradle properties replaced: archiveNamearchiveFileName.set(), configurations.runtimeconfigurations.runtimeClasspath, removed libsDir property

Reviewed changes

Copilot reviewed 25 out of 26 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
gradle/wrapper/gradle-wrapper.properties Updated distribution URL from Gradle 6.9.4 to 8.5
gradle/wrapper/gradle-wrapper.jar Binary wrapper JAR updated for Gradle 8.5
gradlew Unix wrapper script updated with Gradle 8.5 improvements
gradlew.bat Windows wrapper script updated with Gradle 8.5 improvements
overlays/build.gradle Removed deprecated 'maven' plugin; added extendsFrom for jdbc configuration sharing
overlays/uPortal/build.gradle Updated runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/resource-server/build.gradle Updated all runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/pluto-testsuite/build.gradle Updated runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/jasig-widget-portlets/build.gradle Updated runtime → runtimeOnly, removed compile configurations.jdbc
overlays/esup-filemanager/build.gradle Updated runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/cas/build.gradle Updated all configurations: runtime → runtimeOnly, compile → implementation, testCompile → testImplementation
overlays/cas-proxy-test-portlet/build.gradle Updated runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/basiclti-portlet/build.gradle Updated runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/WebProxyPortlet/build.gradle Updated runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/SimpleContentPortlet/build.gradle Updated runtime → runtimeOnly, removed compile/impexp configurations.jdbc
overlays/ResourceServingWebapp/build.gradle Updated runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/NotificationPortlet/build.gradle Updated runtime → runtimeOnly, removed compile configurations.jdbc
overlays/NewsReaderPortlet/build.gradle Updated runtime → runtimeOnly, removed compile/impexp configurations.jdbc
overlays/FunctionalTestsPortlet/build.gradle Updated runtime → runtimeOnly, archiveName → archiveFileName.set()
overlays/FeedbackPortlet/build.gradle Updated runtime → runtimeOnly, removed compile configurations.jdbc
overlays/CalendarPortlet/build.gradle Updated runtime → runtimeOnly, removed compile/impexp configurations.jdbc
overlays/BookmarksPortlet/build.gradle Updated runtime → runtimeOnly, removed compile configurations.jdbc
overlays/Announcements/build.gradle Updated runtime → runtimeOnly, removed compile/impexp configurations.jdbc
buildSrc/build.gradle Updated compile → implementation
buildSrc/src/main/groovy/scaldingspoon/gradle/WarOverlayPlugin.groovy Updated configurations.runtime → configurations.runtimeClasspath
buildSrc/src/main/groovy/org/apereo/portal/start/shell/PortalShellInvoker.groovy Replaced project.getProperty('libsDir') with new File(buildDir, 'libs')

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 4 to 6
dependencies {
runtime "org.jasig.portal:uPortal-webapp:${uPortalVersion}@war"
compile configurations.jdbc
runtimeOnly "org.jasig.portal:uPortal-webapp:${uPortalVersion}@war"
}
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The prepareSkinResources task still references configurations.runtime on lines 111-112, but this configuration was removed in Gradle 8. These references should be updated to use configurations.runtimeClasspath for consistency with the other changes in this PR and to ensure compatibility with Gradle 8.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants