Skip to content

Commit 41dc88a

Browse files
committed
pombast: improve the melt action
Due to some components targeting Java 21+, the scijava.jvm.version property for the aggregated melting pot also needs to be set to 21, to satisfy the enforcer's bytecode checks across all components. For melt validation, we do not need to exclude very old components or multi-module-structured components, only components containing duplicate classes that we intentionally allow within the BOM. Reasons for these allowances are commented in the TOML config.
1 parent fdc0b4f commit 41dc88a

1 file changed

Lines changed: 8 additions & 52 deletions

File tree

pombast.toml

Lines changed: 8 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -64,67 +64,23 @@ includes = [
6464
]
6565

6666
[melt]
67-
# Some managed components require Java 21+. So it makes sense to melt with that version of Java.
68-
# Unfortunately, the scijava.jvm.version is currently set to 11 by default.
69-
# So even though OpenJDK 21 is being used to run Maven, the enforcer plugin still
70-
# complains when encountering any Java libraries with bytecode newer than 11.
71-
# Setting scijava.jvm.version to 21 by default would avoid the issue, but...
72-
# is that really a good idea? Setting to 11 seems like a nice baseline compromise right now.
73-
java-version = 21 # Maximum Java version of all included component + deps.
67+
# Some managed components require Java 21+, so we melt with that Java
68+
# version. But pom-scijava sets scijava.jvm.version to 11 by default.
69+
# So beyond just using OpenJDK 21 to run Maven, we also need to set the
70+
# scijava.jvm.version property to target the right bytecode version.
71+
# Otherwise, the enforcer complains about any Java libraries targeting >11.
72+
java-version = 21
73+
properties = { "scijava.jvm.version" = "21" }
74+
7475
template = "pombast/mega-melt-template.xml"
7576
excludes = [
7677
# TEMP: Exclude org.bytedeco:hdf5 until cisd:jhdf5 is gone.
7778
'org.bytedeco:hdf5',
78-
# TEMP: Skip components within multi-module reactors.
79-
# Neither pombast nor release-version.sh understand multi-
80-
# module repositories; release-version.sh needs to learn how
81-
# to tag and release individual components from multi-module
82-
# repos, so that when pombast shallow clones the repo at that
83-
# tag and invokes a build, it will be building only the
84-
# released component as it does with single-component repos.
85-
'org.scijava:scijava-collections',
86-
'org.scijava:scijava-common3',
87-
'org.scijava:scijava-concurrent',
88-
'org.scijava:scijava-discovery-test',
89-
'org.scijava:scijava-discovery',
90-
'org.scijava:scijava-function',
91-
'org.scijava:scijava-legacy',
92-
'org.scijava:scijava-meta',
93-
'org.scijava:scijava-ops-api',
94-
'org.scijava:scijava-ops-benchmarks',
95-
'org.scijava:scijava-ops-engine',
96-
'org.scijava:scijava-ops-ext-parser',
97-
'org.scijava:scijava-ops-flim',
98-
'org.scijava:scijava-ops-image',
99-
'org.scijava:scijava-ops-indexer',
100-
'org.scijava:scijava-ops-opencv',
101-
'org.scijava:scijava-ops-spi',
102-
'org.scijava:scijava-ops-tutorial',
103-
'org.scijava:scijava-priority',
104-
'org.scijava:scijava-progress',
105-
'org.scijava:scijava-struct',
106-
'org.scijava:scijava-taglets',
107-
'org.scijava:scijava-testutil',
108-
'org.scijava:scijava-types',
109-
'mpicbg:mpicbg', 'mpicbg:mpicbg_',
110-
# NB: Skip artifacts requiring minimum Java version >11.
111-
'net.algart:algart-tiff',
112-
'org.morphonets:SNT',
113-
# NB: Skip closed-source artifacts.
114-
'org.bonej:bonej-plus',
11579
# NB: The following artifacts have messy dependency trees.
11680
# Too many problems to test as part of the melt action.
11781
# See WARNING block in pom-scijava's pom.xml for details.
11882
'net.imagej:imagej-server',
11983
'org.apache.spark:spark-core_2.11',
120-
# NB: Skip scijava forks of third-party projects.
121-
# These are very stable, with few/no dependencies, and
122-
# don't need to be retested as pom-scijava evolves.
123-
'org.scijava:j3dcore',
124-
'org.scijava:j3dutils',
125-
'org.scijava:jep',
126-
'org.scijava:junit-benchmarks',
127-
'org.scijava:vecmath',
12884
# NB: Skip alternate flavors of other managed components.
12985
'org.jogamp.gluegen:gluegen', # uberjar flavor of gluegen-rt
13086
'org.jogamp.jogl:jogl-all-noawt', # slimmed down flavor of jogl-all

0 commit comments

Comments
 (0)