Always use CI-local "gradle", instead of gradlew#15667
Conversation
Review Summary by QodoUse CI-local gradle instead of gradlew in build workflows
WalkthroughsDescription• Replace ./gradlew with CI-local gradle command in workflows • Remove outdated comment referencing gradle/gradle#34227 • Update documentation to use ./gradlew in contributing guide Diagramflowchart LR
A["Gradle Wrapper<br/>./gradlew"] -->|"Replace with"| B["CI-local<br/>gradle"]
B -->|"Enables"| C["Gradle Action<br/>Caching"]
C -->|"Improves"| D["Windows Build<br/>Performance"]
File Changes1. .github/workflows/binaries.yml
|
Code Review by Qodo
1. CI Gradle version unpinned
|
| "os": "windows-latest", | ||
| "displayName": "windows-amd64", | ||
| "gradleCommand": "./gradlew", | ||
| "gradleCommand": "gradle", | ||
| "archivePortable": "7z a -r jabgui/build/packages/windows-latest/JabRef-portable_windows.zip ./jabgui/build/packages/windows-latest/JabRef && rm -R jabgui/build/packages/windows-latest/JabRef", | ||
| "archivePortableJabKit": "7z a -r jabkit/build/packages/windows-latest/jabkit-portable_windows.zip ./jabkit/build/packages/windows-latest/jabkit && rm -R jabkit/build/packages/windows-latest/jabkit", |
There was a problem hiding this comment.
1. Ci gradle version unpinned 🐞 Bug ☼ Reliability
The binaries workflow now runs gradle (including on Windows/macOS), which uses the Gradle version installed by the repo’s setup action configured as gradle-version: current rather than the version pinned by gradle/wrapper/gradle-wrapper.properties. This makes the binaries workflow’s build toolchain version no longer controlled by the repo’s wrapper pin.
Agent Prompt
### Issue description
The binaries workflow now invokes `gradle`, but the repo’s `setup-gradle` composite action installs Gradle using `gradle-version: current`, which is not pinned to the repository’s Gradle wrapper version. This reduces CI build reproducibility and can cause CI-only build changes.
### Issue Context
The repository already pins a Gradle version via `gradle/wrapper/gradle-wrapper.properties`. If CI is intended to use a locally installed `gradle` binary (not `./gradlew`), then the installed Gradle version should still be pinned to the wrapper version (or otherwise explicitly pinned).
### Fix Focus Areas
- .github/actions/setup-gradle/action.yml[17-28]
- gradle/wrapper/gradle-wrapper.properties[1-4]
- .github/workflows/binaries.yml[356-410]
### Implementation notes
- Update `.github/actions/setup-gradle/action.yml` to install a pinned Gradle version matching the wrapper (e.g., use a wrapper-derived option if supported, or set an explicit version matching the wrapper’s `distributionUrl`).
- Keep `gradleCommand: gradle` if the goal is to use the CI-installed Gradle, but ensure it’s the pinned version.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
…rity * upstream/main: (204 commits) New Crowdin updates (JabRef#15669) Fix OpenRewrite (JabRef#15670) Udpate heylogs (and fix CHANGELOG.md) (JabRef#15671) Improve security and prevent shell injection for push2applications (JabRef#15628) Fix depdency analysis (JabRef#15668) Always use CI-local "gradle", instead of gradlew (JabRef#15667) Change OpenRewrite task to use rewriteDryRun (JabRef#15664) Add small documentation to parameter (JabRef#15666) Fix markbaseChanged for "imported entries" (JabRef#15610) Add forgotten --fresh chore(deps): update dependency com.github.ben-manes.caffeine:caffeine to v3.2.4 (JabRef#15662) chore(deps): update jackson monorepo to v3.1.3 (JabRef#15659) chore(deps): update dependency org.glassfish.hk2:hk2-utils to v4.0.1 (JabRef#15657) chore(deps): update dependency org.glassfish.hk2:hk2-locator to v4.0.1 (JabRef#15656) fix gemsfx missing icon resolving (JabRef#15655) chore(deps): update dependency org.glassfish.hk2:hk2-api to v4.0.1 (JabRef#15654) chore(deps): update dependency org.postgresql:postgresql to v42.7.11 (JabRef#15634) Chore(deps): Bump tools.jackson:jackson-bom in /versions (JabRef#15653) Chore(deps): Bump dev.langchain4j:langchain4j-bom in /versions (JabRef#15652) Chore(deps): Bump com.dlsc.gemsfx:gemsfx in /versions (JabRef#15651) ...
* upstream/main: (775 commits) Chore(deps): Bump com.konghq:unirest-modules-gson in /versions (#15682) Chore(deps): Bump org.glassfish.jaxb:jaxb-runtime in /versions (#15681) Update dependency com.konghq:unirest-modules-gson to v4.9.0 (#15679) Integrate with SearchRxiv (#15373) Fix requirements (#15600) refactor: less objects during writing (#15677) Fix: suppress WARN for empty or blank column name in MainTableColumnModel#parse() (#15576) New Crowdin updates (#15676) Chore(deps): Bump com.github.ben-manes.caffeine:caffeine in /versions (#15673) Fix Nullwarnings - C (Mark bst package as nonnull by default) (#15663) Chore(deps): Bump com.github.javaparser:javaparser-symbol-solver-core (#15674) Chore(deps): Bump com.github.javaparser:javaparser-core in /versions (#15672) New Crowdin updates (#15669) Fix OpenRewrite (#15670) Udpate heylogs (and fix CHANGELOG.md) (#15671) Improve security and prevent shell injection for push2applications (#15628) Fix depdency analysis (#15668) Always use CI-local "gradle", instead of gradlew (#15667) Change OpenRewrite task to use rewriteDryRun (#15664) Add small documentation to parameter (#15666) ...
Now that gradle/gradle#34227 is merged, we can make use of gradle action's caching feature also on Windows.
Steps to test
See binaries workflow passing
Checklist
CHANGELOG.mdin a way that can be understood by the average user (if change is visible to the user)