ome / omero-blitz

Gradle project containing Ice remoting code for OMERO
https://www.openmicroscopy.org/omero
GNU General Public License v2.0
0 stars 15 forks source link

Add Gradle wrapper infrastructure #142

Closed sbesson closed 3 months ago

sbesson commented 1 year ago

As I am occasionally (but not daily) building the OMERO server components, I get periodically tripped by the (undocumented) Gradle 6.x requirement for building these projects. When either Gradle is not installed or a more recent version of Gradle is installed globally, the build will fail spectacularly.

My workaround is to copy the Gradle wrapper infrastructure from another project and execute ./gradlew build.

This commit opens the discussion about adding these wrappers to the source code repository. With this change, someone should be able to clone this repository and execute

./gradlew build

This wrapper infrastructure should not affect the existing build logic using a system Gradle and should be compatible with both the GitHub Actions and OME Jenkins CI workflows. Two additional considerations:

jburel commented 8 months ago

No objection but we may want to propagate that to other repositories e.g. omero-model etc. The build strategy will also need to be reviewed. Omitting this PR from the release for now

sbesson commented 7 months ago

Moving back to draft in the absence of a consensus/driver for the time being.

sbesson commented 3 months ago

Discussed today at the weekly infrastructure meeting with @jburel @khaledk2 @pwalczysko. There is currently no active plan to move to the Gradle wrapper infrastructure everywhere so I am closing this draft PR and we can come back to it if there is a consensus.

However, it is quite clear there is a lack of documentation for developers interested in building the OMERO.server components. @khaledk2 just came across the issue that all these repositories require Gradle < 7 (which was one of the motivations of this PR). As discussed today, an immediate step is to update these repositories and capture the build requirements either via the readme and/or the GitHub workflows.