From f904e567e9ec4d9518e9c483a00c25bf4f518943 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Mon, 18 May 2026 14:34:12 -0500 Subject: [PATCH 01/33] Update pombast.toml to current standards * The name 'bombast' was already taken on PyPI * Add SciJava Maven repository to pombast config * Various key additions, renames, reorganization * Use Unlicense instead of CC0 in mega-melt POM template --- bombast.toml => pombast.toml | 156 +++++++++++++++++++++++------------ tests/mega-melt-template.xml | 4 +- 2 files changed, 103 insertions(+), 57 deletions(-) rename bombast.toml => pombast.toml (58%) diff --git a/bombast.toml b/pombast.toml similarity index 58% rename from bombast.toml rename to pombast.toml index 0b37d1db..466ac5cc 100644 --- a/bombast.toml +++ b/pombast.toml @@ -1,28 +1,19 @@ -[filter] -includes = [ - "ca.mcgill:*", - "io.scif:*", - "jitk:*", - "mpicbg:*", - "net.imagej:*", - "net.imglib2:*", - "net.preibisch:*", - "org.bonej:*", - "org.janelia.saalfeldlab:*", - "org.janelia:*", - "org.morphonets:*", - "org.scijava:*", - "sc.fiji:*", -] +[common] +default-java-version = 8 +repositories = ["scijava.public=https://maven.scijava.org/content/groups/public"] + +[melt] +java-version = 11 +template = "tests/mega-melt-template.xml" excludes = [ # TEMP: Exclude org.bytedeco:hdf5 until cisd:jhdf5 is gone. 'org.bytedeco:hdf5', # TEMP: Skip components within multi-module reactors. - # Neither melting-pot.sh nor release-version.sh understand - # multi-module repositories; release-version.sh needs to learn - # how to tag and release individual components from multi-module - # repos, so that when melting-pot.sh shallow clones the repo at - # that tag and invokes a build, it will be building only the + # Neither pombast nor release-version.sh understand multi- + # module repositories; release-version.sh needs to learn how + # to tag and release individual components from multi-module + # repos, so that when pombast shallow clones the repo at that + # tag and invokes a build, it will be building only the # released component as it does with single-component repos. 'org.scijava:scijava-collections', 'org.scijava:scijava-common3', @@ -49,23 +40,23 @@ excludes = [ 'org.scijava:scijava-testutil', 'org.scijava:scijava-types', 'mpicbg:mpicbg', 'mpicbg:mpicbg_', - # NB: Skip artifacts requiring minimum Java version >8. - '*:algart-tiff', - '*:javafx-base', - '*:javafx-controls', - '*:javafx-fxml', - '*:javafx-graphics', - '*:javafx-media', - '*:javafx-swing', - '*:javafx-web', - '*:SNT', + # NB: Skip artifacts requiring minimum Java version >11. + 'net.algart:algart-tiff', + 'org.openjfx:javafx-base', + 'org.openjfx:javafx-controls', + 'org.openjfx:javafx-fxml', + 'org.openjfx:javafx-graphics', + 'org.openjfx:javafx-media', + 'org.openjfx:javafx-swing', + 'org.openjfx:javafx-web', + 'org.morphonets:SNT', # NB: Skip closed-source artifacts. - '*:bonej-plus', + 'org.bonej:bonej-plus', # NB: The following artifacts have messy dependency trees. # Too many problems to test as part of the mega-melt. # See WARNING block in pom-scijava's pom.xml for details. 'net.imagej:imagej-server', - '*:spark-core_2.11', + 'org.apache.spark:spark-core_2.11', # NB: Skip scijava forks of third-party projects. # These are very stable, with few/no dependencies, and # don't need to be retested as pom-scijava evolves. @@ -75,25 +66,25 @@ excludes = [ 'org.scijava:junit-benchmarks', 'org.scijava:vecmath', # NB: Skip alternate flavors of other managed components. - '*:gluegen', # uberjar flavor of gluegen-rt - '*:jogl-all-noawt', # slimmed down flavor of jogl-all + 'org.jogamp.gluegen:gluegen', # uberjar flavor of gluegen-rt + 'org.jogamp.jogl:jogl-all-noawt', # slimmed down flavor of jogl-all # NB: All the SWT platform JARs have the same classes. # The current platform will be brought in transitively. - '*:org.eclipse.swt.cocoa.macosx', - '*:org.eclipse.swt.cocoa.macosx.x86_64', - '*:org.eclipse.swt.gtk.aix.ppc', - '*:org.eclipse.swt.gtk.aix.ppc64', - '*:org.eclipse.swt.gtk.hpux.ia64', - '*:org.eclipse.swt.gtk.linux.ppc', - '*:org.eclipse.swt.gtk.linux.ppc64', - '*:org.eclipse.swt.gtk.linux.s390', - '*:org.eclipse.swt.gtk.linux.s390x', - '*:org.eclipse.swt.gtk.linux.x86', - '*:org.eclipse.swt.gtk.linux.x86_64', - '*:org.eclipse.swt.gtk.solaris.sparc', - '*:org.eclipse.swt.gtk.solaris.x86', - '*:org.eclipse.swt.win32.win32.x86', - '*:org.eclipse.swt.win32.win32.x86_64', + 'org.eclipse.swt:org.eclipse.swt.cocoa.macosx', + 'org.eclipse.swt:org.eclipse.swt.cocoa.macosx.x86_64', + 'org.eclipse.swt:org.eclipse.swt.gtk.aix.ppc', + 'org.eclipse.swt:org.eclipse.swt.gtk.aix.ppc64', + 'org.eclipse.swt:org.eclipse.swt.gtk.hpux.ia64', + 'org.eclipse.swt:org.eclipse.swt.gtk.linux.ppc', + 'org.eclipse.swt:org.eclipse.swt.gtk.linux.ppc64', + 'org.eclipse.swt:org.eclipse.swt.gtk.linux.s390', + 'org.eclipse.swt:org.eclipse.swt.gtk.linux.s390x', + 'org.eclipse.swt:org.eclipse.swt.gtk.linux.x86', + 'org.eclipse.swt:org.eclipse.swt.gtk.linux.x86_64', + 'org.eclipse.swt:org.eclipse.swt.gtk.solaris.sparc', + 'org.eclipse.swt:org.eclipse.swt.gtk.solaris.x86', + 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86', + 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86_64', # NB: All SLF4J bindings have the same classes. # We'll rely on logback-classic being present here. 'org.slf4j:slf4j-jcl', @@ -105,11 +96,66 @@ excludes = [ 'org.slf4j:jcl-over-slf4j', ] -[build] -min-java-version = 8 - -[skip-tests] -components = [ +[smelt] +includes = [ + "ca.mcgill:*", + "io.scif:*", + "jitk:*", + "mpicbg:*", + "net.imagej:*", + "net.imglib2:*", + "net.preibisch:*", + "org.bonej:*", + "org.janelia.saalfeldlab:*", + "org.janelia:*", + "org.morphonets:*", + "org.scijava:*", + "sc.fiji:*", +] +excludes = [ + # NB: Skip closed-source artifacts. + 'org.bonej:bonej-plus', + # NB: Skip scijava forks of third-party projects. + # These are very stable, with few/no dependencies, and + # don't need to be retested as pom-scijava evolves. + 'org.scijava:j3dcore', + 'org.scijava:j3dutils', + 'org.scijava:jep', + 'org.scijava:junit-benchmarks', + 'org.scijava:vecmath', + # TEMP: Skip components within multi-module reactors. + # Neither pombast nor release-version.sh understand multi- + # module repositories; release-version.sh needs to learn how + # to tag and release individual components from multi-module + # repos, so that when pombast shallow clones the repo at that + # tag and invokes a build, it will be building only the + # released component as it does with single-component repos. + 'org.scijava:scijava-collections', + 'org.scijava:scijava-common3', + 'org.scijava:scijava-concurrent', + 'org.scijava:scijava-discovery-test', + 'org.scijava:scijava-discovery', + 'org.scijava:scijava-function', + 'org.scijava:scijava-legacy', + 'org.scijava:scijava-meta', + 'org.scijava:scijava-ops-api', + 'org.scijava:scijava-ops-benchmarks', + 'org.scijava:scijava-ops-engine', + 'org.scijava:scijava-ops-ext-parser', + 'org.scijava:scijava-ops-flim', + 'org.scijava:scijava-ops-image', + 'org.scijava:scijava-ops-indexer', + 'org.scijava:scijava-ops-opencv', + 'org.scijava:scijava-ops-spi', + 'org.scijava:scijava-ops-tutorial', + 'org.scijava:scijava-priority', + 'org.scijava:scijava-progress', + 'org.scijava:scijava-struct', + 'org.scijava:scijava-taglets', + 'org.scijava:scijava-testutil', + 'org.scijava:scijava-types', +] +skip-tests = [ # java.lang.AssertionError # at org.scijava.minimaven.BasicTest.testClassifiers(BasicTest.java:216) "org.scijava:minimaven", diff --git a/tests/mega-melt-template.xml b/tests/mega-melt-template.xml index c8709f34..d776adc6 100644 --- a/tests/mega-melt-template.xml +++ b/tests/mega-melt-template.xml @@ -19,8 +19,8 @@ - CC0 1.0 Universal License - https://creativecommons.org/publicdomain/zero/1.0/ + Unlicense + https://unlicense.org/ repo From 51629ccf3da05eb730a0fdb98aaf08f59ba92351 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 19 May 2026 15:22:02 -0500 Subject: [PATCH 02/33] Add pombast status configuration This generates the web content of status.scijava.org, and eliminates the need for a separate mainline branch of the status.scijava.org repository -- only gh-pages needed now. --- ci-badges.txt | 45 ++++++++++++++ footer.html | 50 +++++++++++++++ header.html | 1 + pombast.toml | 9 +++ projects.txt | 25 ++++++++ timestamps.txt | 161 +++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 291 insertions(+) create mode 100644 ci-badges.txt create mode 100644 footer.html create mode 100644 header.html create mode 100644 projects.txt create mode 100644 timestamps.txt diff --git a/ci-badges.txt b/ci-badges.txt new file mode 100644 index 00000000..cfe892d2 --- /dev/null +++ b/ci-badges.txt @@ -0,0 +1,45 @@ +bigdataviewer/bigvolumeviewer-core +fiji/Colocalisation_Analysis +imagej/imagej-common +imagej/imagej-legacy +imglib/imglib2-mesh +imagej/imagej-matlab +ome/bioformats +ome/ome-codecs +ome/ome-common-java +ome/ome-metakit +ome/ome-model +ome/ome-poi +ome/omero-blitz +ome/omero-common +ome/omero-dsl-plugin +ome/omero-gateway-java +ome/omero-model +ome/omero-renderer +ome/omero-romio +ome/omero-server +scijava/java3d-core None +scijava/java3d-utils None +scijava/jep None +scijava/junit-benchmarks None +scijava/minimaven +scijava/native-lib-loader +scijava/parsington +scijava/scijava-coding-style +scijava/scijava-common +scijava/scijava-config +scijava/scijava-log-slf4j +scijava/scijava-maven-plugin +scijava/script-editor-scala +scijava/swing-checkbox-tree +scijava/vecmath None +trackmate-sc/TrackMate +trackmate-sc/TrackMate-CSVImporter +trackmate-sc/TrackMate-Cellpose +trackmate-sc/TrackMate-ExTrack +trackmate-sc/TrackMate-Ilastik +trackmate-sc/TrackMate-MorphoLibJ +trackmate-sc/TrackMate-Oneat +trackmate-sc/TrackMate-Skeleton +trackmate-sc/TrackMate-StarDist +trackmate-sc/TrackMate-Weka diff --git a/footer.html b/footer.html new file mode 100644 index 00000000..4d7603b2 --- /dev/null +++ b/footer.html @@ -0,0 +1,50 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/header.html b/header.html new file mode 100644 index 00000000..16d992a7 --- /dev/null +++ b/header.html @@ -0,0 +1 @@ + diff --git a/pombast.toml b/pombast.toml index 466ac5cc..89b0e802 100644 --- a/pombast.toml +++ b/pombast.toml @@ -204,3 +204,12 @@ skip-tests = [ [components."net.imglib2:imglib2-mesh"] "java-version" = 11 + +[status] +rules = "rules.xml" +projects = "projects.txt" +badges = "ci-badges.txt" +timestamps = "timestamps.txt" +html = "index.html" +header = "header.html" +footer = "footer.html" diff --git a/projects.txt b/projects.txt new file mode 100644 index 00000000..49959fef --- /dev/null +++ b/projects.txt @@ -0,0 +1,25 @@ +mpicbg:mpicbg https://github.com/axtimwalde/mpicbg +mpicbg:mpicbg_ https://github.com/axtimwalde/mpicbg +net.imagej:ij https://github.com/imagej/ImageJ +net.imglib2:imglib2-label-multisets https://github.com/saalfeldlab/imglib2-label-multisets +ome:bio-formats_plugins https://github.com/ome/bioformats +ome:formats-api https://github.com/ome/bioformats +ome:formats-bsd https://github.com/ome/bioformats +ome:formats-gpl https://github.com/ome/bioformats +org.janelia:H5J_Loader_Plugin https://github.com/fiji/H5J_Loader_Plugin +org.openmicroscopy:metakit https://github.com/ome/ome-metakit +org.openmicroscopy:ome-common https://github.com/ome/ome-common-java +org.openmicroscopy:ome-xml https://github.com/ome/ome-model +org.openmicroscopy:omero-gateway https://github.com/ome/omero-gateway-java +org.openmicroscopy:specification https://github.com/ome/ome-model +org.scijava:j3dcore https://github.com/scijava/java3d-core +org.scijava:j3dutils https://github.com/scijava/java3d-utils +sc.fiji:T2-NIT https://github.com/trakem2/T2-NIT +sc.fiji:T2-TreelineGraph https://github.com/trakem2/T2-TreelineGraph +sc.fiji:TrakEM2_ https://github.com/trakem2/TrakEM2 +sc.fiji:VectorString https://github.com/trakem2/VectorString +sc.fiji:bigwarp_fiji https://github.com/saalfeldlab/bigwarp +sc.fiji:spim_data https://github.com/bigdataviewer/spimdata +sc.fiji:trakem2-transform https://github.com/trakem2/trakem2-transform +sc.fiji:trakem2_tps https://github.com/saalfeldlab/trakem2-tps +sc.fiji:z_spacing https://github.com/saalfeldlab/z-spacing diff --git a/timestamps.txt b/timestamps.txt new file mode 100644 index 00000000..d3b86f2f --- /dev/null +++ b/timestamps.txt @@ -0,0 +1,161 @@ +# Stable forks of third-party projects. +org.scijava:j3dcore 20180905120000 +org.scijava:j3dutils 20180905120000 +org.scijava:jep 20171225120000 +org.scijava:junit-benchmarks 20180905120000 +org.scijava:vecmath 20180905120000 + +# Newer versions break stuff... freeze for now. +hsqldb:hsqldb 20190101000000 +org.codehaus.groovy:groovy 20250101000000 +org.codehaus.groovy:groovy-ant 20250101000000 +org.codehaus.groovy:groovy-astbuilder 20250101000000 +org.codehaus.groovy:groovy-bsf 20250101000000 +org.codehaus.groovy:groovy-cli-commons 20250101000000 +org.codehaus.groovy:groovy-cli-picocli 20250101000000 +org.codehaus.groovy:groovy-console 20250101000000 +org.codehaus.groovy:groovy-datetime 20250101000000 +org.codehaus.groovy:groovy-dateutil 20250101000000 +org.codehaus.groovy:groovy-docgenerator 20250101000000 +org.codehaus.groovy:groovy-groovydoc 20250101000000 +org.codehaus.groovy:groovy-groovysh 20250101000000 +org.codehaus.groovy:groovy-jaxb 20250101000000 +org.codehaus.groovy:groovy-jmx 20250101000000 +org.codehaus.groovy:groovy-json 20250101000000 +org.codehaus.groovy:groovy-jsr223 20250101000000 +org.codehaus.groovy:groovy-macro 20250101000000 +org.codehaus.groovy:groovy-nio 20250101000000 +org.codehaus.groovy:groovy-servlet 20250101000000 +org.codehaus.groovy:groovy-sql 20250101000000 +org.codehaus.groovy:groovy-swing 20250101000000 +org.codehaus.groovy:groovy-templates 20250101000000 +org.codehaus.groovy:groovy-test 20250101000000 +org.codehaus.groovy:groovy-test-junit5 20250101000000 +org.codehaus.groovy:groovy-testng 20250101000000 +org.codehaus.groovy:groovy-xml 20250101000000 +org.codehaus.groovy:groovy-yaml 20250101000000 +org.mockito:mockito-core 20250101000000 +org.ojalgo:ojalgo 20250101000000 +org.python:jython-slim 20230309000000 +org.springframework:spring-aop 20250101000000 +org.springframework:spring-beans 20250101000000 +org.springframework:spring-core 20250101000000 +org.tensorflow:libtensorflow 20200701000000 +org.tensorflow:libtensorflow_jni 20200701000000 +org.tensorflow:libtensorflow_jni_gpu 20200701000000 +org.tensorflow:proto 20200701000000 +org.tensorflow:tensorflow 20200701000000 + +# Not maintaining ImageJ Server currently... +net.imagej:imagej-server 20250101000000 + +# SciJava projects with only CI+POM changes. +io.scif:scifio-cli 20230309000000 +io.scif:scifio-hdf5 20230309000000 +io.scif:scifio-jai-imageio 20230309000000 +io.scif:scifio-labeling 20230309000000 +io.scif:scifio-lifesci 20230309000000 +net.imagej:imagej-deprecated 20230309000000 +net.imagej:imagej-mesh 20230309000000 +net.imagej:imagej-mesh-io 20230309000000 +net.imagej:imagej-notebook 20230309000000 +net.imagej:imagej-plugins-batch 20230309000000 +net.imagej:imagej-plugins-commands 20230309000000 +net.imagej:imagej-plugins-tools 20230309000000 +net.imagej:imagej-plugins-uploader-ssh 20230309000000 +net.imagej:imagej-ui-awt 20230309000000 +net.imagej:op-finder 20230309000000 +net.imglib2:imglib2-algorithm-fft 20230309000000 +net.imglib2:imglib2-algorithm-gpl 20230309000000 +net.imglib2:imglib2-unsafe 20230309000000 +org.scijava:minimaven 20230309000000 +org.scijava:native-lib-loader 20230309000000 +org.scijava:scijava-cache 20230309000000 +org.scijava:scijava-grab 20230309000000 +org.scijava:scijava-io-http 20230309000000 +org.scijava:scijava-java3d 20230309000000 +org.scijava:scijava-listeners 20211021000000 +org.scijava:scijava-maven-plugin 20230309000000 +org.scijava:scijava-optional 20230309000000 +org.scijava:scijava-plot 20230309000000 +org.scijava:scijava-plugins-platforms 20230309000000 +org.scijava:scijava-plugins-text-markdown 20230309000000 +org.scijava:scijava-ui-awt 20230309000000 +org.scijava:scripting-clojure 20230309000000 +org.scijava:scripting-java 20230309000000 +org.scijava:scripting-jruby 20230309000000 +org.scijava:scripting-matlab 20230309000000 +org.scijava:scripting-scala 20230309000000 +org.scijava:swing-checkbox-tree 20230309000000 +sc.fiji:3D_Objects_Counter 20230313000000 +sc.fiji:3D_Viewer 20230313000000 +sc.fiji:AnalyzeSkeleton_ 20230309000000 +sc.fiji:Anisotropic_Diffusion_2D 20230309000000 +sc.fiji:Archipelago_Plugins 20230309000000 +sc.fiji:Arrow_ 20230309000000 +sc.fiji:Auto_Local_Threshold 20230309000000 +sc.fiji:BalloonSegmentation_ 20230309000000 +sc.fiji:Bug_Submitter 20230309000000 +sc.fiji:Calculator_Plus 20230309000000 +sc.fiji:Cell_Counter 20230309000000 +sc.fiji:Colocalisation_Analysis 20230309000000 +sc.fiji:Color_Histogram 20230309000000 +sc.fiji:Color_Inspector_3D 20230309000000 +sc.fiji:Colour_Deconvolution 20230309000000 +sc.fiji:Correct_3D_Drift 20230309000000 +sc.fiji:Dichromacy_ 20230309000000 +sc.fiji:Directionality_ 20230309000000 +sc.fiji:Fiji_Archipelago 20230309000000 +sc.fiji:Fiji_Package_Maker 20230309000000 +sc.fiji:FlowJ_ 20230309000000 +sc.fiji:Graph_Cut 20230309000000 +sc.fiji:Gray_Morphology 20230309000000 +sc.fiji:Helmholtz_Analysis 20230309000000 +sc.fiji:IJ_Robot 20230309000000 +sc.fiji:Image_5D 20230309000000 +sc.fiji:Image_Expression_Parser 20230309000000 +sc.fiji:Interactive_3D_Surface_Plot 20230309000000 +sc.fiji:IsoData_Classifier 20230309000000 +sc.fiji:Kappa 20230309000000 +sc.fiji:Kuwahara_Filter 20230309000000 +sc.fiji:LSM_Reader 20230309000000 +sc.fiji:LSM_Toolbox 20230309000000 +sc.fiji:Lasso_and_Blow_Tool 20230309000000 +sc.fiji:Linear_Kuwahara 20230309000000 +sc.fiji:LocalThickness_ 20230309000000 +sc.fiji:MTrack2_ 20230309000000 +sc.fiji:M_I_P 20230309000000 +sc.fiji:Manual_Tracking 20230309000000 +sc.fiji:Multi_Kymograph 20230309000000 +sc.fiji:OMEVisual 20230309000000 +sc.fiji:PIV_analyser 20230309000000 +sc.fiji:QuickPALM_ 20230309000000 +sc.fiji:RATS_ 20230309000000 +sc.fiji:SPIM_Opener 20230309000000 +sc.fiji:Samples_ 20230309000000 +sc.fiji:Series_Labeler 20230309000000 +sc.fiji:Siox_Segmentation 20230309000000 +sc.fiji:Skeletonize3D_ 20230309000000 +sc.fiji:SplineDeformationGenerator_ 20230309000000 +sc.fiji:Stack_Manipulation 20230309000000 +sc.fiji:Statistical_Region_Merging 20230309000000 +sc.fiji:Sync_Win 20230309000000 +sc.fiji:Thread_Killer 20230309000000 +sc.fiji:Time_Lapse 20230309000000 +sc.fiji:Time_Stamper 20230309000000 +sc.fiji:ToAST_ 20230309000000 +sc.fiji:TopoJ_ 20230309000000 +sc.fiji:VIB-lib 20230309000000 +sc.fiji:Vaa3d_Reader 20230309000000 +sc.fiji:Vaa3d_Writer 20230309000000 +sc.fiji:Video_Editing 20230309000000 +sc.fiji:bUnwarpJ_ 20230309000000 +sc.fiji:bij 20230309000000 +sc.fiji:fiji-lib 20230309000000 +sc.fiji:level_sets 20230309000000 +sc.fiji:pal-optimization 20230309000000 +sc.fiji:panorama_ 20230309000000 +sc.fiji:registration_3d 20230309000000 +sc.fiji:spimdata 20230309000000 +sc.fiji:trakem2-transform 20230309000000 +sc.fiji:weave_jy2java 20230309000000 From 7fd534f8148b4eb5aa26f438dfd30876c7fb129b Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 19 May 2026 18:49:53 -0500 Subject: [PATCH 03/33] CI: try another way of deleting the cache --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c2298d4a..1a9a5e49 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,6 +13,8 @@ on: jobs: build: runs-on: ubuntu-latest + permissions: + actions: write steps: - uses: actions/checkout@v4 @@ -52,7 +54,7 @@ jobs: run: | gh api --method DELETE -H "Accept: application/vnd.github+json" /repos/scijava/pom-scijava/actions/caches?key=${{ runner.os }}-cache || true env: - GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Save the melting-pot cache if: env.cacheChanged == 'true' From ecc1062267f79ce0a7fb388a4ae24a04f6f5dfa8 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 19 May 2026 18:55:46 -0500 Subject: [PATCH 04/33] pombast: move status section up --- pombast.toml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pombast.toml b/pombast.toml index 89b0e802..a21e2b9f 100644 --- a/pombast.toml +++ b/pombast.toml @@ -2,6 +2,15 @@ default-java-version = 8 repositories = ["scijava.public=https://maven.scijava.org/content/groups/public"] +[status] +rules = "rules.xml" +projects = "projects.txt" +badges = "ci-badges.txt" +timestamps = "timestamps.txt" +html = "index.html" +header = "header.html" +footer = "footer.html" + [melt] java-version = 11 template = "tests/mega-melt-template.xml" @@ -204,12 +213,3 @@ skip-tests = [ [components."net.imglib2:imglib2-mesh"] "java-version" = 11 - -[status] -rules = "rules.xml" -projects = "projects.txt" -badges = "ci-badges.txt" -timestamps = "timestamps.txt" -html = "index.html" -header = "header.html" -footer = "footer.html" From a766882243aedcd418dc9ff8462f5cd2e62450ad Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 19 May 2026 18:56:06 -0500 Subject: [PATCH 05/33] pombast: remove unneeded quotes --- pombast.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pombast.toml b/pombast.toml index a21e2b9f..0f0868a3 100644 --- a/pombast.toml +++ b/pombast.toml @@ -209,7 +209,7 @@ skip-tests = [ "sc.fiji:labkit-ui" = ["sc.fiji.labkit.ui.plugin.CalculateProbabilityMapWithLabkitIJ1PluginTest"] [components."net.imagej:ij"] -"java-version" = 11 +java-version = 11 [components."net.imglib2:imglib2-mesh"] -"java-version" = 11 +java-version = 11 From 96e6a3e9c287dc4b2a7ba2be712ce6e74f412787 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 19 May 2026 18:56:12 -0500 Subject: [PATCH 06/33] pombast: note BoneJ components needing Java 11+ --- pombast.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pombast.toml b/pombast.toml index 0f0868a3..07a86529 100644 --- a/pombast.toml +++ b/pombast.toml @@ -213,3 +213,9 @@ java-version = 11 [components."net.imglib2:imglib2-mesh"] java-version = 11 + +[components."org.bonej:bonej-legacy-plugins_"] +java-version = 11 + +[components."org.bonej:bonej-ops"] +java-version = 11 From be4acd78392a9bcc9504e4facde486c687b0243d Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 19 May 2026 19:21:28 -0500 Subject: [PATCH 07/33] Overhaul CI to use pombast smelt/status instead of melting-pot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build.yml: - Replace old tests/run.sh (melting-pot) with pombast smelt - Drop the melting-pot cache restore/save/delete steps and exit.sh trick - Add astral-sh/setup-uv and webfactory/ssh-agent (master push only) - On master push: publish smelt.json to status.scijava.org gh-pages New status.yml: - Runs daily (and on master push) to regenerate status.scijava.org index.html - Lives in pom-scijava to avoid GitHub's 60-day dormancy kill of scheduled jobs - Installs pombast, runs pombast status --config pombast.toml, publishes index.html release.yml: - Use release-setup.sh (no apt packages -- only needed for smelt builds) - Use simplified build.sh (no melting-pot logic) Script renames and new files: - setup.sh → build-setup.sh (drops libxml2-utils, keeps smelt native deps) - new release-setup.sh (ci-setup-github-actions.sh only) - build.sh stripped to just ci-build.sh (no release detection, no melting-pot) - new smelt.sh (installs pombast, runs smelt, writes smelt.json) - new status.sh (installs pombast, runs status, publishes index.html) - new publish.sh (shared helper: commit a file to status.scijava.org gh-pages) - exit.sh deleted (no longer needed) pombast.toml: - Add nexus-base to [status] section Co-Authored-By: Claude Sonnet 4.6 --- .github/build-setup.sh | 10 +++++++ .github/build.sh | 56 ++--------------------------------- .github/exit.sh | 8 ----- .github/publish.sh | 25 ++++++++++++++++ .github/release-setup.sh | 3 ++ .github/setup.sh | 11 ------- .github/smelt.sh | 3 ++ .github/status.sh | 5 ++++ .github/workflows/build.yml | 46 ++++++++++------------------ .github/workflows/release.yml | 7 ++--- .github/workflows/status.yml | 26 ++++++++++++++++ pombast.toml | 1 + 12 files changed, 94 insertions(+), 107 deletions(-) create mode 100755 .github/build-setup.sh delete mode 100755 .github/exit.sh create mode 100755 .github/publish.sh create mode 100755 .github/release-setup.sh delete mode 100755 .github/setup.sh create mode 100755 .github/smelt.sh create mode 100755 .github/status.sh create mode 100644 .github/workflows/status.yml diff --git a/.github/build-setup.sh b/.github/build-setup.sh new file mode 100755 index 00000000..64b4c955 --- /dev/null +++ b/.github/build-setup.sh @@ -0,0 +1,10 @@ +#!/bin/sh +curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/main/ci-setup-github-actions.sh +sh ci-setup-github-actions.sh + +# Install native libraries needed to build and test smelt components. +pkgs="libxcb-shape0" # org.janelia:H5J_Loader_Plugin +pkgs="$pkgs libgtk2.0-0" # net.imagej:imagej-opencv +pkgs="$pkgs libblosc1" # org.janelia.saalfeldlab:n5-blosc +sudo apt-get update +sudo apt-get -y install $pkgs diff --git a/.github/build.sh b/.github/build.sh index ba5e7a29..523abeb8 100755 --- a/.github/build.sh +++ b/.github/build.sh @@ -1,55 +1,3 @@ #!/bin/sh - -# Discern whether this is a release build. -releasing= -if [ -f release.properties ]; then - releasing=1 -fi - -# Run the SciJava CI build script. -curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/main/ci-build.sh && -sh ci-build.sh || { echo "Maven build failed. Skipping melting pot tests."; exit 1; } - -# Skip melting pot if cutting a release. -if [ "$releasing" ]; then - exit 0 -fi - -# Helper method to get the last cache modified date as seconds since epoch -last_cache_modified() { - find "$HOME/.cache/scijava/melting-pot" -type f | while read f - do - stat -c '%Y' "$f" - done | sort -nr 2>/dev/null | head -n1 -} - -# Record the last time of cache modification before running melting-pot -cache_modified_pre=0 -cache_modified_post=0 - -if [ -d "$HOME/.cache/scijava/melting-pot" ]; then - cache_modified_pre=$(last_cache_modified) -fi - -# run melting-pot -tests/run.sh -meltResult=$? - -# Record the last time of cache modification after running melting-pot -if [ -d "$HOME/.cache/scijava/melting-pot" ]; then - cache_modified_post=$(last_cache_modified) -fi - -# Determine if cache needs to be re-generated -echo "cache_modified_pre=$cache_modified_pre" -echo "cache_modified_post=$cache_modified_post" -if [ "$cache_modified_post" -gt "$cache_modified_pre" ]; then - echo "cacheChanged=true" - echo "cacheChanged=true" >> $GITHUB_ENV -else - echo "cacheChanged=false" - echo "cacheChanged=false" >> $GITHUB_ENV -fi - -# NB: This script exits 0, but saves the exit code for a later build step. -echo $meltResult > exit-code +curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/main/ci-build.sh +sh ci-build.sh diff --git a/.github/exit.sh b/.github/exit.sh deleted file mode 100755 index b5ab4d19..00000000 --- a/.github/exit.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -test -f exit-code || { - echo "[ERROR] No build exit code was saved!" - exit 255 -} -exitCode=$(cat exit-code) -rm -f exit-code -exit $exitCode diff --git a/.github/publish.sh b/.github/publish.sh new file mode 100755 index 00000000..ac79edb3 --- /dev/null +++ b/.github/publish.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# Commit a file to the status.scijava.org gh-pages branch. +# Usage: publish.sh [commit-message] +# Requires SSH agent to be running with write access to status.scijava.org. +set -e +file=$1 +message=${2:-"Update $(basename "$file")"} +test -f "$file" || { echo "File not found: $file" >&2; exit 1; } +dest=$(basename "$file") + +git config --global user.name github-actions +git config --global user.email github-actions@github.com + +git clone --depth=1 --branch=gh-pages git@github.com:scijava/status.scijava.org site-publish +cp "$file" "site-publish/$dest" +cd site-publish +if git diff --quiet "$dest" +then + echo "== No changes to $dest ==" +else + echo "== Committing $dest ==" + git add "$dest" + git commit -m "$message" + git push +fi diff --git a/.github/release-setup.sh b/.github/release-setup.sh new file mode 100755 index 00000000..a03464be --- /dev/null +++ b/.github/release-setup.sh @@ -0,0 +1,3 @@ +#!/bin/sh +curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/main/ci-setup-github-actions.sh +sh ci-setup-github-actions.sh diff --git a/.github/setup.sh b/.github/setup.sh deleted file mode 100755 index 6f254a7e..00000000 --- a/.github/setup.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/main/ci-setup-github-actions.sh -sh ci-setup-github-actions.sh - -# Install needed packages. -pkgs="libxml2-utils" # needed for melting pot -pkgs="$pkgs libxcb-shape0" # org.janelia:H5J_Loader_Plugin (fiji/H5J_Loader_Plugin@d026a1bb) -pkgs="$pkgs libgtk2.0-0" # net.imagej:imagej-opencv (imagej/imagej-opencv@21113e08) -pkgs="$pkgs libblosc1" # org.janelia.saalfeldlab:n5-blosc -sudo apt-get update -sudo apt-get -y install $(echo "$pkgs") diff --git a/.github/smelt.sh b/.github/smelt.sh new file mode 100755 index 00000000..1a92a196 --- /dev/null +++ b/.github/smelt.sh @@ -0,0 +1,3 @@ +#!/bin/sh +uv tool install "git+https://github.com/scijava/pombast.git@66a1e3abff431846a900703f7450e0c21f1456cc" +pombast smelt --config pombast.toml --json smelt.json . diff --git a/.github/status.sh b/.github/status.sh new file mode 100755 index 00000000..f94d572e --- /dev/null +++ b/.github/status.sh @@ -0,0 +1,5 @@ +#!/bin/sh +uv tool install "git+https://github.com/scijava/pombast.git@66a1e3abff431846a900703f7450e0c21f1456cc" +pombast status --config pombast.toml --html index.html . +commitNote="$(TZ=UTC date +'%Y-%m-%d %H:%M:%S UTC')" +.github/publish.sh index.html "Update component table ($commitNote)" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1a9a5e49..197a336c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,16 +8,16 @@ on: branches: - master schedule: - - cron: "4 5 * * 0" # every Sunday at 0405, to keep cache alive + # Run weekly on Sunday to keep the Maven cache alive. + - cron: '4 5 * * 0' jobs: build: runs-on: ubuntu-latest - permissions: - actions: write steps: - uses: actions/checkout@v4 + - name: Set up Java uses: actions/setup-java@v4 with: @@ -26,18 +26,17 @@ jobs: distribution: 'zulu' cache: 'maven' - - name: Set up CI environment - run: .github/setup.sh + - uses: astral-sh/setup-uv@v6 - - name: Restore the melting-pot cache - id: restore-cache - uses: actions/cache/restore@v3 + - uses: webfactory/ssh-agent@v0.9.0 + if: github.ref == 'refs/heads/master' && github.event_name == 'push' with: - path: ~/.cache/scijava/melting-pot - key: ${{ runner.os }}-cache + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Set up build environment + run: .github/build-setup.sh - - name: Execute the build - id: execute-build + - name: Maven CI build run: .github/build.sh env: GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }} @@ -48,22 +47,9 @@ jobs: CENTRAL_PASS: ${{ secrets.CENTRAL_PASS }} SIGNING_ASC: ${{ secrets.SIGNING_ASC }} - - name: Delete the melting-pot cache - if: env.cacheChanged == 'true' - id: delete-cache - run: | - gh api --method DELETE -H "Accept: application/vnd.github+json" /repos/scijava/pom-scijava/actions/caches?key=${{ runner.os }}-cache || true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Save the melting-pot cache - if: env.cacheChanged == 'true' - id: save-cache - uses: actions/cache/save@v3 - with: - path: ~/.cache/scijava/melting-pot - key: ${{ runner.os }}-cache + - name: Smelt components + run: .github/smelt.sh - - name: Return the exit code - id: exit-build - run: .github/exit.sh + - name: Publish smelt results + if: always() && github.ref == 'refs/heads/master' && github.event_name == 'push' + run: .github/publish.sh smelt.json "Update smelt results" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1848a199..046834ad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,11 +19,10 @@ jobs: distribution: 'zulu' cache: 'maven' - - name: Set up CI environment - run: .github/setup.sh + - name: Set up release environment + run: .github/release-setup.sh - - name: Execute the build - id: execute-build + - name: Execute the release run: .github/build.sh env: GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }} diff --git a/.github/workflows/status.yml b/.github/workflows/status.yml new file mode 100644 index 00000000..9826cdb9 --- /dev/null +++ b/.github/workflows/status.yml @@ -0,0 +1,26 @@ +name: status + +on: + schedule: + # Run daily at 0500 UTC. + - cron: '0 5 * * *' + push: + branches: + - master + workflow_dispatch: + +jobs: + status: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: astral-sh/setup-uv@v6 + + - uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Generate and publish status page + run: .github/status.sh diff --git a/pombast.toml b/pombast.toml index 07a86529..c83f285b 100644 --- a/pombast.toml +++ b/pombast.toml @@ -10,6 +10,7 @@ timestamps = "timestamps.txt" html = "index.html" header = "header.html" footer = "footer.html" +nexus-base = "https://maven.scijava.org" [melt] java-version = 11 From 7393e30b3e6e88266ae11b2c9f0b6be78d004020 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 19 May 2026 19:25:29 -0500 Subject: [PATCH 08/33] CI: declare bash shell In case we ever run any of these jobs on Windows. --- .github/workflows/build.yml | 4 ++++ .github/workflows/release.yml | 2 ++ .github/workflows/status.yml | 1 + 3 files changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 197a336c..e7c4d77b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,9 +35,11 @@ jobs: - name: Set up build environment run: .github/build-setup.sh + shell: bash - name: Maven CI build run: .github/build.sh + shell: bash env: GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} @@ -49,7 +51,9 @@ jobs: - name: Smelt components run: .github/smelt.sh + shell: bash - name: Publish smelt results if: always() && github.ref == 'refs/heads/master' && github.event_name == 'push' run: .github/publish.sh smelt.json "Update smelt results" + shell: bash diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 046834ad..00302b65 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,9 +21,11 @@ jobs: - name: Set up release environment run: .github/release-setup.sh + shell: bash - name: Execute the release run: .github/build.sh + shell: bash env: GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} diff --git a/.github/workflows/status.yml b/.github/workflows/status.yml index 9826cdb9..d3cf85e2 100644 --- a/.github/workflows/status.yml +++ b/.github/workflows/status.yml @@ -24,3 +24,4 @@ jobs: - name: Generate and publish status page run: .github/status.sh + shell: bash From e333d84af31159ec540b85490f18b98e1b76f59c Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 20 May 2026 12:57:14 -0500 Subject: [PATCH 09/33] CI: restore pombast cache across smelt runs Adds restore/delete/save steps for ~/.cache/pombast around the smelt step, matching the pattern used for the old melting-pot cache. Cache must be deleted before re-saving because GitHub Actions does not allow overwriting an existing cache key. Both delete and save run unconditionally (if: always()) so the cache is preserved even when smelt has failures. Co-Authored-By: Claude Sonnet 4.6 --- .github/{build-setup.sh => setup-build.sh} | 4 +-- .../{release-setup.sh => setup-release.sh} | 0 .github/workflows/build.yml | 26 ++++++++++++++++++- .github/workflows/release.yml | 2 +- .github/workflows/status.yml | 1 - 5 files changed, 28 insertions(+), 5 deletions(-) rename .github/{build-setup.sh => setup-build.sh} (72%) rename .github/{release-setup.sh => setup-release.sh} (100%) diff --git a/.github/build-setup.sh b/.github/setup-build.sh similarity index 72% rename from .github/build-setup.sh rename to .github/setup-build.sh index 64b4c955..ff44a365 100755 --- a/.github/build-setup.sh +++ b/.github/setup-build.sh @@ -3,8 +3,8 @@ curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/main/ci-set sh ci-setup-github-actions.sh # Install native libraries needed to build and test smelt components. -pkgs="libxcb-shape0" # org.janelia:H5J_Loader_Plugin +pkgs="libxcb-shape0" # org.janelia:H5J_Loader_Plugin pkgs="$pkgs libgtk2.0-0" # net.imagej:imagej-opencv -pkgs="$pkgs libblosc1" # org.janelia.saalfeldlab:n5-blosc +pkgs="$pkgs libblosc1" # org.janelia.saalfeldlab:n5-blosc sudo apt-get update sudo apt-get -y install $pkgs diff --git a/.github/release-setup.sh b/.github/setup-release.sh similarity index 100% rename from .github/release-setup.sh rename to .github/setup-release.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e7c4d77b..909668a8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,6 +14,8 @@ on: jobs: build: runs-on: ubuntu-latest + permissions: + actions: write # needed to delete and re-save the pombast cache steps: - uses: actions/checkout@v4 @@ -34,7 +36,7 @@ jobs: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Set up build environment - run: .github/build-setup.sh + run: .github/setup-build.sh shell: bash - name: Maven CI build @@ -49,10 +51,32 @@ jobs: CENTRAL_PASS: ${{ secrets.CENTRAL_PASS }} SIGNING_ASC: ${{ secrets.SIGNING_ASC }} + - name: Restore pombast cache + uses: actions/cache/restore@v4 + with: + path: ~/.cache/pombast + key: ${{ runner.os }}-pombast-cache + - name: Smelt components run: .github/smelt.sh shell: bash + - name: Delete old pombast cache + if: always() + run: | + gh api --method DELETE \ + -H "Accept: application/vnd.github+json" \ + "/repos/scijava/pom-scijava/actions/caches?key=${{ runner.os }}-pombast-cache" || true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Save pombast cache + if: always() + uses: actions/cache/save@v4 + with: + path: ~/.cache/pombast + key: ${{ runner.os }}-pombast-cache + - name: Publish smelt results if: always() && github.ref == 'refs/heads/master' && github.event_name == 'push' run: .github/publish.sh smelt.json "Update smelt results" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 00302b65..27edfcb2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ jobs: cache: 'maven' - name: Set up release environment - run: .github/release-setup.sh + run: .github/setup-release.sh shell: bash - name: Execute the release diff --git a/.github/workflows/status.yml b/.github/workflows/status.yml index d3cf85e2..b74a2746 100644 --- a/.github/workflows/status.yml +++ b/.github/workflows/status.yml @@ -7,7 +7,6 @@ on: push: branches: - master - workflow_dispatch: jobs: status: From 885cfd1d77b31e25e6ba25965cce805999465875 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 20 May 2026 13:04:34 -0500 Subject: [PATCH 10/33] CI: cache pombast timestamps in status workflow Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/status.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/status.yml b/.github/workflows/status.yml index b74a2746..c9eceeec 100644 --- a/.github/workflows/status.yml +++ b/.github/workflows/status.yml @@ -21,6 +21,19 @@ jobs: with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + - name: Restore pombast cache + uses: actions/cache/restore@v4 + with: + path: ~/.cache/pombast/pom-timestamps + restore-keys: ${{ runner.os }}-pombast-status- + - name: Generate and publish status page run: .github/status.sh shell: bash + + - name: Save pombast cache + if: always() + uses: actions/cache/save@v4 + with: + path: ~/.cache/pombast/pom-timestamps + key: ${{ runner.os }}-pombast-status-${{ github.run_id }} From ceec3072169ee176d22a489f88a8d5107faf9431 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 20 May 2026 17:30:25 -0500 Subject: [PATCH 11/33] CI: also run the pombast *melt* command --- .github/melt.sh | 4 ++++ .github/setup-build.sh | 2 +- .github/smelt.sh | 3 --- .github/status.sh | 2 +- .github/workflows/build.yml | 4 ++-- 5 files changed, 8 insertions(+), 7 deletions(-) create mode 100755 .github/melt.sh delete mode 100755 .github/smelt.sh diff --git a/.github/melt.sh b/.github/melt.sh new file mode 100755 index 00000000..b15e478d --- /dev/null +++ b/.github/melt.sh @@ -0,0 +1,4 @@ +#!/bin/sh +uv tool install "git+https://github.com/scijava/pombast.git +pombast melt . || true +pombast smelt --json smelt.json . diff --git a/.github/setup-build.sh b/.github/setup-build.sh index ff44a365..bdc2ff72 100755 --- a/.github/setup-build.sh +++ b/.github/setup-build.sh @@ -2,7 +2,7 @@ curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/main/ci-setup-github-actions.sh sh ci-setup-github-actions.sh -# Install native libraries needed to build and test smelt components. +# Install native libraries needed to smelt components. pkgs="libxcb-shape0" # org.janelia:H5J_Loader_Plugin pkgs="$pkgs libgtk2.0-0" # net.imagej:imagej-opencv pkgs="$pkgs libblosc1" # org.janelia.saalfeldlab:n5-blosc diff --git a/.github/smelt.sh b/.github/smelt.sh deleted file mode 100755 index 1a92a196..00000000 --- a/.github/smelt.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -uv tool install "git+https://github.com/scijava/pombast.git@66a1e3abff431846a900703f7450e0c21f1456cc" -pombast smelt --config pombast.toml --json smelt.json . diff --git a/.github/status.sh b/.github/status.sh index f94d572e..86500ccf 100755 --- a/.github/status.sh +++ b/.github/status.sh @@ -1,5 +1,5 @@ #!/bin/sh uv tool install "git+https://github.com/scijava/pombast.git@66a1e3abff431846a900703f7450e0c21f1456cc" -pombast status --config pombast.toml --html index.html . +pombast status . commitNote="$(TZ=UTC date +'%Y-%m-%d %H:%M:%S UTC')" .github/publish.sh index.html "Update component table ($commitNote)" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 909668a8..b55033b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,8 +57,8 @@ jobs: path: ~/.cache/pombast key: ${{ runner.os }}-pombast-cache - - name: Smelt components - run: .github/smelt.sh + - name: Run pombast melt+smelt commands + run: .github/melt.sh shell: bash - name: Delete old pombast cache From 75f968447fa08083b9e4a1c47159bf2bafc8770b Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Fri, 22 May 2026 17:43:48 -0500 Subject: [PATCH 12/33] CI: publish pombast team reports, improve caching Co-authored-by: Claude Sonnet 4.6 --- .github/publish.sh | 39 ++++++++++++++++++++---------- .github/status.sh | 6 ++--- .github/workflows/build.yml | 2 +- .github/workflows/status.yml | 46 ++++++++++++++++++++++++++++++++---- 4 files changed, 72 insertions(+), 21 deletions(-) diff --git a/.github/publish.sh b/.github/publish.sh index ac79edb3..be5b0745 100755 --- a/.github/publish.sh +++ b/.github/publish.sh @@ -1,25 +1,40 @@ #!/bin/sh # Commit a file to the status.scijava.org gh-pages branch. -# Usage: publish.sh [commit-message] # Requires SSH agent to be running with write access to status.scijava.org. set -e -file=$1 -message=${2:-"Update $(basename "$file")"} -test -f "$file" || { echo "File not found: $file" >&2; exit 1; } -dest=$(basename "$file") + +test $# -gt 1 || { + echo "Usage: publish.sh \"Commit message\" file1 [file2 ...]" + exit 2 +} + +datestamp="$(TZ=UTC date +'%Y-%m-%d %H:%M:%S UTC')" +message="$1 ($datestamp)" +shift git config --global user.name github-actions git config --global user.email github-actions@github.com -git clone --depth=1 --branch=gh-pages git@github.com:scijava/status.scijava.org site-publish -cp "$file" "site-publish/$dest" -cd site-publish -if git diff --quiet "$dest" +dest_dir=site-publish + +git clone --depth=1 --branch=gh-pages git@github.com:scijava/status.scijava.org "$dest_dir" + +while [ $# -gt 0 ] +do + file=$1 + shift + test -f "$file" || { echo "File not found: $file" >&2; exit 1; } + dest=$(basename "$file") + cp "$file" "$dest_dir/$dest" + (cd "$dest_dir" && git add "$dest") +done + +cd "$dest_dir" +if git diff --quiet . then - echo "== No changes to $dest ==" + echo "== No changes ==" else - echo "== Committing $dest ==" - git add "$dest" + echo "== Committing changes ==" git commit -m "$message" git push fi diff --git a/.github/status.sh b/.github/status.sh index 86500ccf..d06ecd1d 100755 --- a/.github/status.sh +++ b/.github/status.sh @@ -1,5 +1,5 @@ #!/bin/sh -uv tool install "git+https://github.com/scijava/pombast.git@66a1e3abff431846a900703f7450e0c21f1456cc" +uv tool install "git+https://github.com/scijava/pombast.git@1cece3cab4d9be78fe06203db6f9b87d4db99f2f" pombast status . -commitNote="$(TZ=UTC date +'%Y-%m-%d %H:%M:%S UTC')" -.github/publish.sh index.html "Update component table ($commitNote)" +pombast team . --html team.html +.github/publish.sh "Update status reports" index.html team.html diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b55033b7..6b8cd558 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,5 +79,5 @@ jobs: - name: Publish smelt results if: always() && github.ref == 'refs/heads/master' && github.event_name == 'push' - run: .github/publish.sh smelt.json "Update smelt results" + run: .github/publish.sh "Update smelt results" smelt.json shell: bash diff --git a/.github/workflows/status.yml b/.github/workflows/status.yml index c9eceeec..6809dd19 100644 --- a/.github/workflows/status.yml +++ b/.github/workflows/status.yml @@ -11,6 +11,8 @@ on: jobs: status: runs-on: ubuntu-latest + permissions: + actions: write # needed to delete and re-save caches steps: - uses: actions/checkout@v4 @@ -24,16 +26,50 @@ jobs: - name: Restore pombast cache uses: actions/cache/restore@v4 with: - path: ~/.cache/pombast/pom-timestamps - restore-keys: ${{ runner.os }}-pombast-status- + path: ~/.cache/pombast + key: ${{ runner.os }}-pombast-status + restore-keys: ${{ runner.os }}-pombast-cache - - name: Generate and publish status page + - name: Restore monoqueue cache + uses: actions/cache/restore@v4 + with: + path: ~/.cache/monoqueue + key: ${{ runner.os }}-monoqueue-status + + - name: Generate and publish status and team pages run: .github/status.sh shell: bash + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Delete old pombast status cache + if: always() + run: | + gh api --method DELETE \ + -H "Accept: application/vnd.github+json" \ + "/repos/scijava/pom-scijava/actions/caches?key=${{ runner.os }}-pombast-status" || true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Save pombast cache if: always() uses: actions/cache/save@v4 with: - path: ~/.cache/pombast/pom-timestamps - key: ${{ runner.os }}-pombast-status-${{ github.run_id }} + path: ~/.cache/pombast + key: ${{ runner.os }}-pombast-status + + - name: Delete old monoqueue cache + if: always() + run: | + gh api --method DELETE \ + -H "Accept: application/vnd.github+json" \ + "/repos/scijava/pom-scijava/actions/caches?key=${{ runner.os }}-monoqueue-status" || true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Save monoqueue cache + if: always() + uses: actions/cache/save@v4 + with: + path: ~/.cache/monoqueue + key: ${{ runner.os }}-monoqueue-status From e02ec7ec7147dbdbe8324f3c7ceb13b25e07165a Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Sat, 23 May 2026 08:39:10 -0500 Subject: [PATCH 13/33] CI: further improve caching --- .github/delete-cache.sh | 5 +++++ .github/workflows/build.yml | 10 ++++------ .github/workflows/status.yml | 14 +++++--------- 3 files changed, 14 insertions(+), 15 deletions(-) create mode 100755 .github/delete-cache.sh diff --git a/.github/delete-cache.sh b/.github/delete-cache.sh new file mode 100755 index 00000000..6c3dbb9c --- /dev/null +++ b/.github/delete-cache.sh @@ -0,0 +1,5 @@ +#!/bin/sh +test "$1" || { echo "Usage: delete-cache.sh cache-key"; exit 1; } +gh api --method DELETE \ + -H "Accept: application/vnd.github+json" \ + "/repos/scijava/pom-scijava/actions/caches?key=$1" || true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6b8cd558..a29e656c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: uses: actions/cache/restore@v4 with: path: ~/.cache/pombast - key: ${{ runner.os }}-pombast-cache + key: ${{ runner.os }}-pombast-build - name: Run pombast melt+smelt commands run: .github/melt.sh @@ -63,10 +63,8 @@ jobs: - name: Delete old pombast cache if: always() - run: | - gh api --method DELETE \ - -H "Accept: application/vnd.github+json" \ - "/repos/scijava/pom-scijava/actions/caches?key=${{ runner.os }}-pombast-cache" || true + run: .github/delete-cache.sh "${{ runner.os }}-pombast-build" + shell: bash env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -75,7 +73,7 @@ jobs: uses: actions/cache/save@v4 with: path: ~/.cache/pombast - key: ${{ runner.os }}-pombast-cache + key: ${{ runner.os }}-pombast-build - name: Publish smelt results if: always() && github.ref == 'refs/heads/master' && github.event_name == 'push' diff --git a/.github/workflows/status.yml b/.github/workflows/status.yml index 6809dd19..c14eaf3d 100644 --- a/.github/workflows/status.yml +++ b/.github/workflows/status.yml @@ -28,8 +28,8 @@ jobs: with: path: ~/.cache/pombast key: ${{ runner.os }}-pombast-status - restore-keys: ${{ runner.os }}-pombast-cache + # The monoqueue library is used by pombast to read GitHub issues. - name: Restore monoqueue cache uses: actions/cache/restore@v4 with: @@ -44,10 +44,8 @@ jobs: - name: Delete old pombast status cache if: always() - run: | - gh api --method DELETE \ - -H "Accept: application/vnd.github+json" \ - "/repos/scijava/pom-scijava/actions/caches?key=${{ runner.os }}-pombast-status" || true + run: .github/delete-cache.sh "${{ runner.os }}-pombast-status" + shell: bash env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -60,10 +58,8 @@ jobs: - name: Delete old monoqueue cache if: always() - run: | - gh api --method DELETE \ - -H "Accept: application/vnd.github+json" \ - "/repos/scijava/pom-scijava/actions/caches?key=${{ runner.os }}-monoqueue-status" || true + run: .github/delete-cache.sh "${{ runner.os }}-monoqueue-status" + shell: bash env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 9c7697b0c0a9aba183a67f1d90437322bdf97fc4 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Sun, 24 May 2026 13:29:05 -0500 Subject: [PATCH 14/33] Update component versions * scijava-common: 2.99.2 -> 2.100.1 * scijava-optional: 1.0.1 -> 1.0.2 * scijava-table: 1.0.2 -> 1.0.3 These releases support the release of imagej-server 0.2.0. --- pom.xml | 6 +++--- pombast.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index a5a49c2c..615fee0c 100644 --- a/pom.xml +++ b/pom.xml @@ -376,7 +376,7 @@ ${scijava-cache.version} - 2.99.2 + 2.100.1 ${scijava-common.version} @@ -408,7 +408,7 @@ ${scijava-log-slf4j.version} - 1.0.1 + 1.0.2 ${scijava-optional.version} @@ -436,7 +436,7 @@ ${scijava-search.version} - 1.0.2 + 1.0.3 ${scijava-table.version} diff --git a/pombast.toml b/pombast.toml index c83f285b..f875df8a 100644 --- a/pombast.toml +++ b/pombast.toml @@ -63,7 +63,7 @@ excludes = [ # NB: Skip closed-source artifacts. 'org.bonej:bonej-plus', # NB: The following artifacts have messy dependency trees. - # Too many problems to test as part of the mega-melt. + # Too many problems to test as part of the melt action. # See WARNING block in pom-scijava's pom.xml for details. 'net.imagej:imagej-server', 'org.apache.spark:spark-core_2.11', From f74416be686791f00f3d3d5d4c25cab3fd426608 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Mon, 25 May 2026 17:34:37 -0500 Subject: [PATCH 15/33] Update SNT: 4.2.1 -> 5.0.9 --- pom.xml | 2 +- pombast.toml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 615fee0c..99bff93c 100644 --- a/pom.xml +++ b/pom.xml @@ -1257,7 +1257,7 @@ ${bonej-utilities.version} - 4.2.1 + 5.0.9 ${SNT.version} diff --git a/pombast.toml b/pombast.toml index f875df8a..3108add1 100644 --- a/pombast.toml +++ b/pombast.toml @@ -220,3 +220,6 @@ java-version = 11 [components."org.bonej:bonej-ops"] java-version = 11 + +[components."org.morphonets:SNT"] +java-version = 21 From 1d877ac0347f78afd37db27c31a6659289b3b846 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Mon, 25 May 2026 17:45:27 -0500 Subject: [PATCH 16/33] Set Java version to 21 for pombast melt This lets the melt action pass -- for now. A comment explains why this is tenuous, though. --- pombast.toml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pombast.toml b/pombast.toml index 3108add1..724d6953 100644 --- a/pombast.toml +++ b/pombast.toml @@ -13,7 +13,13 @@ footer = "footer.html" nexus-base = "https://maven.scijava.org" [melt] -java-version = 11 +# Some managed components require Java 21+. So it makes sense to melt with that version of Java. +# Unfortunately, the scijava.jvm.version is currently set to 11 by default. +# So even though OpenJDK 21 is being used to run Maven, the enforcer plugin still +# complains when encountering any Java libraries with bytecode newer than 11. +# Setting scijava.jvm.version to 21 by default would avoid the issue, but... +# is that really a good idea? Setting to 11 seems like a nice baseline compromise right now. +java-version = 21 # Maximum Java version of all included component + deps. template = "tests/mega-melt-template.xml" excludes = [ # TEMP: Exclude org.bytedeco:hdf5 until cisd:jhdf5 is gone. From 9380ff482f1da533b7ba097c1204096e8342aa2d Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 26 May 2026 14:05:40 -0500 Subject: [PATCH 17/33] CI: always use latest pombast (for now) --- .github/status.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/status.sh b/.github/status.sh index d06ecd1d..7a8ade8d 100755 --- a/.github/status.sh +++ b/.github/status.sh @@ -1,5 +1,5 @@ #!/bin/sh -uv tool install "git+https://github.com/scijava/pombast.git@1cece3cab4d9be78fe06203db6f9b87d4db99f2f" +uv tool install "git+https://github.com/scijava/pombast.git pombast status . pombast team . --html team.html .github/publish.sh "Update status reports" index.html team.html From 15ae0c6665b5cdc110495fbd797debef78def15c Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 26 May 2026 14:06:09 -0500 Subject: [PATCH 18/33] Exclude OME artifacts from team analysis --- pombast.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pombast.toml b/pombast.toml index 724d6953..56716c8e 100644 --- a/pombast.toml +++ b/pombast.toml @@ -12,6 +12,9 @@ header = "header.html" footer = "footer.html" nexus-base = "https://maven.scijava.org" +[team] +excludes = ["ome:*", "org.openmicroscopy:*"] + [melt] # Some managed components require Java 21+. So it makes sense to melt with that version of Java. # Unfortunately, the scijava.jvm.version is currently set to 11 by default. From 2ec9b488bc30f83b77005259b7def7e1861b035a Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Tue, 26 May 2026 23:44:44 -0500 Subject: [PATCH 19/33] Consolidate status sidecars into pombast.toml --- ci-badges.txt | 45 --- pombast.toml | 821 ++++++++++++++++++++++++++++++++++++++++++++++++- projects.txt | 25 -- timestamps.txt | 161 ---------- 4 files changed, 818 insertions(+), 234 deletions(-) delete mode 100644 ci-badges.txt delete mode 100644 projects.txt delete mode 100644 timestamps.txt diff --git a/ci-badges.txt b/ci-badges.txt deleted file mode 100644 index cfe892d2..00000000 --- a/ci-badges.txt +++ /dev/null @@ -1,45 +0,0 @@ -bigdataviewer/bigvolumeviewer-core -fiji/Colocalisation_Analysis -imagej/imagej-common -imagej/imagej-legacy -imglib/imglib2-mesh -imagej/imagej-matlab -ome/bioformats -ome/ome-codecs -ome/ome-common-java -ome/ome-metakit -ome/ome-model -ome/ome-poi -ome/omero-blitz -ome/omero-common -ome/omero-dsl-plugin -ome/omero-gateway-java -ome/omero-model -ome/omero-renderer -ome/omero-romio -ome/omero-server -scijava/java3d-core None -scijava/java3d-utils None -scijava/jep None -scijava/junit-benchmarks None -scijava/minimaven -scijava/native-lib-loader -scijava/parsington -scijava/scijava-coding-style -scijava/scijava-common -scijava/scijava-config -scijava/scijava-log-slf4j -scijava/scijava-maven-plugin -scijava/script-editor-scala -scijava/swing-checkbox-tree -scijava/vecmath None -trackmate-sc/TrackMate -trackmate-sc/TrackMate-CSVImporter -trackmate-sc/TrackMate-Cellpose -trackmate-sc/TrackMate-ExTrack -trackmate-sc/TrackMate-Ilastik -trackmate-sc/TrackMate-MorphoLibJ -trackmate-sc/TrackMate-Oneat -trackmate-sc/TrackMate-Skeleton -trackmate-sc/TrackMate-StarDist -trackmate-sc/TrackMate-Weka diff --git a/pombast.toml b/pombast.toml index 56716c8e..7a6fc3ef 100644 --- a/pombast.toml +++ b/pombast.toml @@ -4,9 +4,6 @@ repositories = ["scijava.public=https://maven.scijava.org/content/groups/public" [status] rules = "rules.xml" -projects = "projects.txt" -badges = "ci-badges.txt" -timestamps = "timestamps.txt" html = "index.html" header = "header.html" footer = "footer.html" @@ -15,6 +12,24 @@ nexus-base = "https://maven.scijava.org" [team] excludes = ["ome:*", "org.openmicroscopy:*"] +[badges] +includes = [ + "io.scif:*", + "de.nanoimaging:*", + "fr.inra.ijpb:*", + "mpicbg:*", + "net.imagej:*", + "net.imglib2:*", + "net.preibisch:*", + "ome:*", + "org.bonej:*", + "org.janelia*:*", + "org.morphonets:*", + "org.openmicroscopy:*", + "org.scijava:*", + "sc.fiji:*", +] + [melt] # Some managed components require Java 21+. So it makes sense to melt with that version of Java. # Unfortunately, the scijava.jvm.version is currently set to 11 by default. @@ -218,17 +233,817 @@ skip-tests = [ # at sc.fiji.labkit.ui.plugin.CalculateProbabilityMapWithLabkitIJ1PluginTest.test(CalculateProbabilityMapWithLabkitIJ1PluginTest.java:65) "sc.fiji:labkit-ui" = ["sc.fiji.labkit.ui.plugin.CalculateProbabilityMapWithLabkitIJ1PluginTest"] +[components."fr.inra.ijpb:MorphoLibJ"] +ci-build = "build-main" + +[components."hsqldb:hsqldb"] +last-vetted = "20190101000000" + +[components."io.scif:scifio-bf-compat"] +ci-build = "build-main" + +[components."io.scif:scifio-cli"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."io.scif:scifio-hdf5"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."io.scif:scifio-jai-imageio"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."io.scif:scifio-labeling"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."io.scif:scifio-lifesci"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."io.scif:scifio-ome-xml"] +ci-build = "build-main" + [components."net.imagej:ij"] java-version = 11 +[components."net.imagej:imagej-deprecated"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-mesh"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-mesh-io"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-notebook"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-omero"] +ci-build = "build-main" + +[components."net.imagej:imagej-omero-legacy"] +ci-build = "build-main" + +[components."net.imagej:imagej-opencv"] +ci-build = "build-main" + +[components."net.imagej:imagej-ops"] +ci-build = "build-main" + +[components."net.imagej:imagej-plugins-batch"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-plugins-commands"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-plugins-tools"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-plugins-uploader-ssh"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-plugins-uploader-webdav"] +ci-build = "build-main" + +[components."net.imagej:imagej-scripting"] +ci-build = "build-main" + +[components."net.imagej:imagej-server"] +last-vetted = "20250101000000" + +[components."net.imagej:imagej-tensorflow"] +ci-build = "build-main" + +[components."net.imagej:imagej-ui-awt"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imagej:imagej-ui-swing"] +ci-build = "build-main" + +[components."net.imagej:imagej-updater"] +ci-build = "build-main" + +[components."net.imagej:op-finder"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."net.imglib2:imglib2-algorithm"] +ci-build = "build-main" + +[components."net.imglib2:imglib2-algorithm-fft"] +last-vetted = "20230309000000" + +[components."net.imglib2:imglib2-algorithm-gpl"] +last-vetted = "20230309000000" + [components."net.imglib2:imglib2-mesh"] java-version = 11 +[components."net.imglib2:imglib2-unsafe"] +last-vetted = "20230309000000" + +[components."net.preibischlab:multiview-simulation"] +ci-build = "build-main" + +[components."ome:bioformats"] +ci-build = "maven" + +[components."ome:ome-codecs"] +ci-build = "maven" + +[components."ome:ome-common-java"] +ci-build = "maven" + +[components."ome:ome-metakit"] +ci-build = "maven" + +[components."ome:ome-model"] +ci-build = "maven" + +[components."ome:ome-poi"] +ci-build = "maven" + [components."org.bonej:bonej-legacy-plugins_"] java-version = 11 +ci-build = "build-main" [components."org.bonej:bonej-ops"] java-version = 11 +ci-build = "build-main" + +[components."org.codehaus.groovy:groovy"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-ant"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-astbuilder"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-bsf"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-cli-commons"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-cli-picocli"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-console"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-datetime"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-dateutil"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-docgenerator"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-groovydoc"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-groovysh"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-jaxb"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-jmx"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-json"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-jsr223"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-macro"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-nio"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-servlet"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-sql"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-swing"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-templates"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-test"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-test-junit5"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-testng"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-xml"] +last-vetted = "20250101000000" + +[components."org.codehaus.groovy:groovy-yaml"] +last-vetted = "20250101000000" + +[components."org.janelia.saalfeldlab:jitk-tps"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:n5-aws-s3"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:n5-google-cloud"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:n5-hdf5"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:n5-ij"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:n5-imglib2"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:n5-universe"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:n5-viewer"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:trakem2-tps"] +ci-build = "build-main" + +[components."org.janelia.saalfeldlab:z-spacing"] +ci-build = "build-main" + +[components."org.mockito:mockito-core"] +last-vetted = "20250101000000" [components."org.morphonets:SNT"] java-version = 21 + +[components."org.ojalgo:ojalgo"] +last-vetted = "20250101000000" + +[components."org.openmicroscopy:omero-blitz"] +ci-build = "gradle" + +[components."org.openmicroscopy:omero-common"] +ci-build = "gradle" + +[components."org.openmicroscopy:omero-dsl-plugin"] +ci-build = "gradle" + +[components."org.openmicroscopy:omero-gateway-java"] +ci-build = "gradle" + +[components."org.openmicroscopy:omero-model"] +ci-build = "gradle" + +[components."org.openmicroscopy:omero-renderer"] +ci-build = "gradle" + +[components."org.openmicroscopy:omero-romio"] +ci-build = "gradle" + +[components."org.openmicroscopy:omero-server"] +ci-build = "gradle" + +[components."org.python:jython-slim"] +last-vetted = "20230309000000" + +[components."org.scijava:batch-processor"] +ci-build = "build-main" + +[components."org.scijava:j3dcore"] +last-vetted = "20180905120000" + +[components."org.scijava:j3dutils"] +last-vetted = "20180905120000" + +[components."org.scijava:java3d-core"] +ci-build = false + +[components."org.scijava:java3d-utils"] +ci-build = false + +[components."org.scijava:jep"] +ci-build = false +last-vetted = "20171225120000" + +[components."org.scijava:junit-benchmarks"] +ci-build = false +last-vetted = "20180905120000" + +[components."org.scijava:minimaven"] +last-vetted = "20230309000000" + +[components."org.scijava:native-lib-loader"] +last-vetted = "20230309000000" + +[components."org.scijava:scijava-cache"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scijava-grab"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scijava-io-http"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scijava-java3d"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scijava-listeners"] +last-vetted = "20211021000000" + +[components."org.scijava:scijava-maven-plugin"] +last-vetted = "20230309000000" + +[components."org.scijava:scijava-optional"] +last-vetted = "20230309000000" + +[components."org.scijava:scijava-plot"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scijava-plugins-commands"] +ci-build = "build-main" + +[components."org.scijava:scijava-plugins-platforms"] +last-vetted = "20230309000000" + +[components."org.scijava:scijava-plugins-text-markdown"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scijava-plugins-text-plain"] +ci-build = "build-main" + +[components."org.scijava:scijava-search"] +ci-build = "build-main" + +[components."org.scijava:scijava-table"] +ci-build = "build-main" + +[components."org.scijava:scijava-ui-awt"] +last-vetted = "20230309000000" + +[components."org.scijava:scijava-ui-swing"] +ci-build = "build-main" + +[components."org.scijava:script-editor"] +ci-build = "build-main" + +[components."org.scijava:script-editor-jython"] +ci-build = "build-main" + +[components."org.scijava:scripting-beanshell"] +ci-build = "build-main" + +[components."org.scijava:scripting-clojure"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scripting-groovy"] +ci-build = "build-main" + +[components."org.scijava:scripting-java"] +last-vetted = "20230309000000" + +[components."org.scijava:scripting-javascript"] +ci-build = "build-main" + +[components."org.scijava:scripting-jruby"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scripting-jython"] +ci-build = "build-main" + +[components."org.scijava:scripting-kotlin"] +ci-build = "build-main" + +[components."org.scijava:scripting-matlab"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:scripting-renjin"] +ci-build = "build-main" + +[components."org.scijava:scripting-scala"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."org.scijava:swing-checkbox-tree"] +last-vetted = "20230309000000" + +[components."org.scijava:ui-behaviour"] +ci-build = "build-main" + +[components."org.scijava:vecmath"] +ci-build = false +last-vetted = "20180905120000" + +[components."org.springframework:spring-aop"] +last-vetted = "20250101000000" + +[components."org.springframework:spring-beans"] +last-vetted = "20250101000000" + +[components."org.springframework:spring-core"] +last-vetted = "20250101000000" + +[components."org.tensorflow:libtensorflow"] +last-vetted = "20200701000000" + +[components."org.tensorflow:libtensorflow_jni"] +last-vetted = "20200701000000" + +[components."org.tensorflow:libtensorflow_jni_gpu"] +last-vetted = "20200701000000" + +[components."org.tensorflow:proto"] +last-vetted = "20200701000000" + +[components."org.tensorflow:tensorflow"] +last-vetted = "20200701000000" + +[components."sc.fiji:3D_Blob_Segmentation"] +ci-build = "build-main" + +[components."sc.fiji:3D_Objects_Counter"] +ci-build = "build-main" +last-vetted = "20230313000000" + +[components."sc.fiji:3D_Viewer"] +ci-build = "build-main" +last-vetted = "20230313000000" + +[components."sc.fiji:AnalyzeSkeleton"] +ci-build = "build-main" + +[components."sc.fiji:AnalyzeSkeleton_"] +last-vetted = "20230309000000" + +[components."sc.fiji:Anisotropic_Diffusion_2D"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Archipelago_Plugins"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Arrow"] +ci-build = "build-main" + +[components."sc.fiji:Arrow_"] +last-vetted = "20230309000000" + +[components."sc.fiji:Auto_Local_Threshold"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Auto_Threshold"] +ci-build = "build-main" + +[components."sc.fiji:BalloonSegmentation"] +ci-build = "build-main" + +[components."sc.fiji:BalloonSegmentation_"] +last-vetted = "20230309000000" + +[components."sc.fiji:Bug_Submitter"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:CPU_Meter"] +ci-build = "build-main" + +[components."sc.fiji:Calculator_Plus"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Cell_Counter"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Colocalisation_Analysis"] +last-vetted = "20230309000000" + +[components."sc.fiji:Color_Histogram"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Color_Inspector_3D"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Colour_Deconvolution"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:CorrectBleach"] +ci-build = "build-main" + +[components."sc.fiji:Correct_3D_Drift"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Descriptor_based_registration"] +ci-build = "build-main" + +[components."sc.fiji:Dichromacy"] +ci-build = "build-main" + +[components."sc.fiji:Dichromacy_"] +last-vetted = "20230309000000" + +[components."sc.fiji:Directionality"] +ci-build = "build-main" + +[components."sc.fiji:Directionality_"] +last-vetted = "20230309000000" + +[components."sc.fiji:FS_Align_TrakEM2"] +ci-build = "build-main" + +[components."sc.fiji:Feature_Detection"] +ci-build = "build-main" + +[components."sc.fiji:Fiji_Archipelago"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Fiji_Developer"] +ci-build = "build-main" + +[components."sc.fiji:Fiji_Package_Maker"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:FlowJ"] +ci-build = "build-main" + +[components."sc.fiji:FlowJ_"] +last-vetted = "20230309000000" + +[components."sc.fiji:Graph_Cut"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Gray_Morphology"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:H5J_Loader_Plugin"] +ci-build = "build-main" + +[components."sc.fiji:HDF5_Vibez"] +ci-build = "build-main" + +[components."sc.fiji:Helmholtz_Analysis"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:IJ_Robot"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:IO"] +ci-build = "build-main" + +[components."sc.fiji:Image_5D"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Image_Expression_Parser"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Interactive_3D_Surface_Plot"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:IsoData_Classifier"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Kappa"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Kuwahara_Filter"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:LSM_Reader"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:LSM_Toolbox"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Lasso_and_Blow_Tool"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Linear_Kuwahara"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:LocalThickness"] +ci-build = "build-main" + +[components."sc.fiji:LocalThickness_"] +last-vetted = "20230309000000" + +[components."sc.fiji:MTrack2"] +ci-build = "build-main" + +[components."sc.fiji:MTrack2_"] +last-vetted = "20230309000000" + +[components."sc.fiji:M_I_P"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:MaMuT"] +ci-build = "build-main" + +[components."sc.fiji:Manual_Tracking"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Multi_Kymograph"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:OMEVisual"] +last-vetted = "20230309000000" + +[components."sc.fiji:PIV_analyser"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:QuickPALM"] +ci-build = "build-main" + +[components."sc.fiji:QuickPALM_"] +last-vetted = "20230309000000" + +[components."sc.fiji:RATS"] +ci-build = "build-main" + +[components."sc.fiji:RATS_"] +last-vetted = "20230309000000" + +[components."sc.fiji:Reconstruct_Reader"] +ci-build = "build-main" + +[components."sc.fiji:SPIM_Opener"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:SPIM_Registration"] +ci-build = "build-main" + +[components."sc.fiji:Samples"] +ci-build = "build-main" + +[components."sc.fiji:Samples_"] +last-vetted = "20230309000000" + +[components."sc.fiji:Series_Labeler"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Siox_Segmentation"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Skeletonize3D"] +ci-build = "build-main" + +[components."sc.fiji:Skeletonize3D_"] +last-vetted = "20230309000000" + +[components."sc.fiji:SplineDeformationGenerator"] +ci-build = "build-main" + +[components."sc.fiji:SplineDeformationGenerator_"] +last-vetted = "20230309000000" + +[components."sc.fiji:Stack_Manipulation"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Statistical_Region_Merging"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Stitching"] +ci-build = "build-main" + +[components."sc.fiji:Sync_Win"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:T2-NIT"] +ci-build = "build-main" + +[components."sc.fiji:T2-TreelineGraph"] +ci-build = "build-main" + +[components."sc.fiji:Thread_Killer"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Time_Lapse"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:Time_Stamper"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:ToAST_"] +last-vetted = "20230309000000" + +[components."sc.fiji:TopoJ_"] +last-vetted = "20230309000000" + +[components."sc.fiji:VIB-lib"] +last-vetted = "20230309000000" + +[components."sc.fiji:Vaa3d_Reader"] +last-vetted = "20230309000000" + +[components."sc.fiji:Vaa3d_Writer"] +last-vetted = "20230309000000" + +[components."sc.fiji:Video_Editing"] +last-vetted = "20230309000000" + +[components."sc.fiji:bUnwarpJ_"] +last-vetted = "20230309000000" + +[components."sc.fiji:bij"] +last-vetted = "20230309000000" + +[components."sc.fiji:fiji-lib"] +last-vetted = "20230309000000" + +[components."sc.fiji:legacy-imglib1"] +ci-build = "build-main" + +[components."sc.fiji:level_sets"] +last-vetted = "20230309000000" + +[components."sc.fiji:pal-optimization"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:panorama_"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:register_virtual_stack_slices"] +ci-build = "build-main" + +[components."sc.fiji:registration_3d"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:spimdata"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:trakem2-transform"] +ci-build = "build-main" +last-vetted = "20230309000000" + +[components."sc.fiji:weave_jy2java"] +ci-build = "build-main" +last-vetted = "20230309000000" diff --git a/projects.txt b/projects.txt deleted file mode 100644 index 49959fef..00000000 --- a/projects.txt +++ /dev/null @@ -1,25 +0,0 @@ -mpicbg:mpicbg https://github.com/axtimwalde/mpicbg -mpicbg:mpicbg_ https://github.com/axtimwalde/mpicbg -net.imagej:ij https://github.com/imagej/ImageJ -net.imglib2:imglib2-label-multisets https://github.com/saalfeldlab/imglib2-label-multisets -ome:bio-formats_plugins https://github.com/ome/bioformats -ome:formats-api https://github.com/ome/bioformats -ome:formats-bsd https://github.com/ome/bioformats -ome:formats-gpl https://github.com/ome/bioformats -org.janelia:H5J_Loader_Plugin https://github.com/fiji/H5J_Loader_Plugin -org.openmicroscopy:metakit https://github.com/ome/ome-metakit -org.openmicroscopy:ome-common https://github.com/ome/ome-common-java -org.openmicroscopy:ome-xml https://github.com/ome/ome-model -org.openmicroscopy:omero-gateway https://github.com/ome/omero-gateway-java -org.openmicroscopy:specification https://github.com/ome/ome-model -org.scijava:j3dcore https://github.com/scijava/java3d-core -org.scijava:j3dutils https://github.com/scijava/java3d-utils -sc.fiji:T2-NIT https://github.com/trakem2/T2-NIT -sc.fiji:T2-TreelineGraph https://github.com/trakem2/T2-TreelineGraph -sc.fiji:TrakEM2_ https://github.com/trakem2/TrakEM2 -sc.fiji:VectorString https://github.com/trakem2/VectorString -sc.fiji:bigwarp_fiji https://github.com/saalfeldlab/bigwarp -sc.fiji:spim_data https://github.com/bigdataviewer/spimdata -sc.fiji:trakem2-transform https://github.com/trakem2/trakem2-transform -sc.fiji:trakem2_tps https://github.com/saalfeldlab/trakem2-tps -sc.fiji:z_spacing https://github.com/saalfeldlab/z-spacing diff --git a/timestamps.txt b/timestamps.txt deleted file mode 100644 index d3b86f2f..00000000 --- a/timestamps.txt +++ /dev/null @@ -1,161 +0,0 @@ -# Stable forks of third-party projects. -org.scijava:j3dcore 20180905120000 -org.scijava:j3dutils 20180905120000 -org.scijava:jep 20171225120000 -org.scijava:junit-benchmarks 20180905120000 -org.scijava:vecmath 20180905120000 - -# Newer versions break stuff... freeze for now. -hsqldb:hsqldb 20190101000000 -org.codehaus.groovy:groovy 20250101000000 -org.codehaus.groovy:groovy-ant 20250101000000 -org.codehaus.groovy:groovy-astbuilder 20250101000000 -org.codehaus.groovy:groovy-bsf 20250101000000 -org.codehaus.groovy:groovy-cli-commons 20250101000000 -org.codehaus.groovy:groovy-cli-picocli 20250101000000 -org.codehaus.groovy:groovy-console 20250101000000 -org.codehaus.groovy:groovy-datetime 20250101000000 -org.codehaus.groovy:groovy-dateutil 20250101000000 -org.codehaus.groovy:groovy-docgenerator 20250101000000 -org.codehaus.groovy:groovy-groovydoc 20250101000000 -org.codehaus.groovy:groovy-groovysh 20250101000000 -org.codehaus.groovy:groovy-jaxb 20250101000000 -org.codehaus.groovy:groovy-jmx 20250101000000 -org.codehaus.groovy:groovy-json 20250101000000 -org.codehaus.groovy:groovy-jsr223 20250101000000 -org.codehaus.groovy:groovy-macro 20250101000000 -org.codehaus.groovy:groovy-nio 20250101000000 -org.codehaus.groovy:groovy-servlet 20250101000000 -org.codehaus.groovy:groovy-sql 20250101000000 -org.codehaus.groovy:groovy-swing 20250101000000 -org.codehaus.groovy:groovy-templates 20250101000000 -org.codehaus.groovy:groovy-test 20250101000000 -org.codehaus.groovy:groovy-test-junit5 20250101000000 -org.codehaus.groovy:groovy-testng 20250101000000 -org.codehaus.groovy:groovy-xml 20250101000000 -org.codehaus.groovy:groovy-yaml 20250101000000 -org.mockito:mockito-core 20250101000000 -org.ojalgo:ojalgo 20250101000000 -org.python:jython-slim 20230309000000 -org.springframework:spring-aop 20250101000000 -org.springframework:spring-beans 20250101000000 -org.springframework:spring-core 20250101000000 -org.tensorflow:libtensorflow 20200701000000 -org.tensorflow:libtensorflow_jni 20200701000000 -org.tensorflow:libtensorflow_jni_gpu 20200701000000 -org.tensorflow:proto 20200701000000 -org.tensorflow:tensorflow 20200701000000 - -# Not maintaining ImageJ Server currently... -net.imagej:imagej-server 20250101000000 - -# SciJava projects with only CI+POM changes. -io.scif:scifio-cli 20230309000000 -io.scif:scifio-hdf5 20230309000000 -io.scif:scifio-jai-imageio 20230309000000 -io.scif:scifio-labeling 20230309000000 -io.scif:scifio-lifesci 20230309000000 -net.imagej:imagej-deprecated 20230309000000 -net.imagej:imagej-mesh 20230309000000 -net.imagej:imagej-mesh-io 20230309000000 -net.imagej:imagej-notebook 20230309000000 -net.imagej:imagej-plugins-batch 20230309000000 -net.imagej:imagej-plugins-commands 20230309000000 -net.imagej:imagej-plugins-tools 20230309000000 -net.imagej:imagej-plugins-uploader-ssh 20230309000000 -net.imagej:imagej-ui-awt 20230309000000 -net.imagej:op-finder 20230309000000 -net.imglib2:imglib2-algorithm-fft 20230309000000 -net.imglib2:imglib2-algorithm-gpl 20230309000000 -net.imglib2:imglib2-unsafe 20230309000000 -org.scijava:minimaven 20230309000000 -org.scijava:native-lib-loader 20230309000000 -org.scijava:scijava-cache 20230309000000 -org.scijava:scijava-grab 20230309000000 -org.scijava:scijava-io-http 20230309000000 -org.scijava:scijava-java3d 20230309000000 -org.scijava:scijava-listeners 20211021000000 -org.scijava:scijava-maven-plugin 20230309000000 -org.scijava:scijava-optional 20230309000000 -org.scijava:scijava-plot 20230309000000 -org.scijava:scijava-plugins-platforms 20230309000000 -org.scijava:scijava-plugins-text-markdown 20230309000000 -org.scijava:scijava-ui-awt 20230309000000 -org.scijava:scripting-clojure 20230309000000 -org.scijava:scripting-java 20230309000000 -org.scijava:scripting-jruby 20230309000000 -org.scijava:scripting-matlab 20230309000000 -org.scijava:scripting-scala 20230309000000 -org.scijava:swing-checkbox-tree 20230309000000 -sc.fiji:3D_Objects_Counter 20230313000000 -sc.fiji:3D_Viewer 20230313000000 -sc.fiji:AnalyzeSkeleton_ 20230309000000 -sc.fiji:Anisotropic_Diffusion_2D 20230309000000 -sc.fiji:Archipelago_Plugins 20230309000000 -sc.fiji:Arrow_ 20230309000000 -sc.fiji:Auto_Local_Threshold 20230309000000 -sc.fiji:BalloonSegmentation_ 20230309000000 -sc.fiji:Bug_Submitter 20230309000000 -sc.fiji:Calculator_Plus 20230309000000 -sc.fiji:Cell_Counter 20230309000000 -sc.fiji:Colocalisation_Analysis 20230309000000 -sc.fiji:Color_Histogram 20230309000000 -sc.fiji:Color_Inspector_3D 20230309000000 -sc.fiji:Colour_Deconvolution 20230309000000 -sc.fiji:Correct_3D_Drift 20230309000000 -sc.fiji:Dichromacy_ 20230309000000 -sc.fiji:Directionality_ 20230309000000 -sc.fiji:Fiji_Archipelago 20230309000000 -sc.fiji:Fiji_Package_Maker 20230309000000 -sc.fiji:FlowJ_ 20230309000000 -sc.fiji:Graph_Cut 20230309000000 -sc.fiji:Gray_Morphology 20230309000000 -sc.fiji:Helmholtz_Analysis 20230309000000 -sc.fiji:IJ_Robot 20230309000000 -sc.fiji:Image_5D 20230309000000 -sc.fiji:Image_Expression_Parser 20230309000000 -sc.fiji:Interactive_3D_Surface_Plot 20230309000000 -sc.fiji:IsoData_Classifier 20230309000000 -sc.fiji:Kappa 20230309000000 -sc.fiji:Kuwahara_Filter 20230309000000 -sc.fiji:LSM_Reader 20230309000000 -sc.fiji:LSM_Toolbox 20230309000000 -sc.fiji:Lasso_and_Blow_Tool 20230309000000 -sc.fiji:Linear_Kuwahara 20230309000000 -sc.fiji:LocalThickness_ 20230309000000 -sc.fiji:MTrack2_ 20230309000000 -sc.fiji:M_I_P 20230309000000 -sc.fiji:Manual_Tracking 20230309000000 -sc.fiji:Multi_Kymograph 20230309000000 -sc.fiji:OMEVisual 20230309000000 -sc.fiji:PIV_analyser 20230309000000 -sc.fiji:QuickPALM_ 20230309000000 -sc.fiji:RATS_ 20230309000000 -sc.fiji:SPIM_Opener 20230309000000 -sc.fiji:Samples_ 20230309000000 -sc.fiji:Series_Labeler 20230309000000 -sc.fiji:Siox_Segmentation 20230309000000 -sc.fiji:Skeletonize3D_ 20230309000000 -sc.fiji:SplineDeformationGenerator_ 20230309000000 -sc.fiji:Stack_Manipulation 20230309000000 -sc.fiji:Statistical_Region_Merging 20230309000000 -sc.fiji:Sync_Win 20230309000000 -sc.fiji:Thread_Killer 20230309000000 -sc.fiji:Time_Lapse 20230309000000 -sc.fiji:Time_Stamper 20230309000000 -sc.fiji:ToAST_ 20230309000000 -sc.fiji:TopoJ_ 20230309000000 -sc.fiji:VIB-lib 20230309000000 -sc.fiji:Vaa3d_Reader 20230309000000 -sc.fiji:Vaa3d_Writer 20230309000000 -sc.fiji:Video_Editing 20230309000000 -sc.fiji:bUnwarpJ_ 20230309000000 -sc.fiji:bij 20230309000000 -sc.fiji:fiji-lib 20230309000000 -sc.fiji:level_sets 20230309000000 -sc.fiji:pal-optimization 20230309000000 -sc.fiji:panorama_ 20230309000000 -sc.fiji:registration_3d 20230309000000 -sc.fiji:spimdata 20230309000000 -sc.fiji:trakem2-transform 20230309000000 -sc.fiji:weave_jy2java 20230309000000 From 333d6d54879699aed3c2823ea8cf03f86585027a Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 27 May 2026 15:42:46 -0500 Subject: [PATCH 20/33] Manage version of scijava-desktop The scijava-desktop component now unifies scijava-links and scijava-plugins-platforms into a single artifact, responsible for managing OS-platform-level integrations. --- pom.xml | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/pom.xml b/pom.xml index 99bff93c..51ac8d41 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ pom-scijava - 44.0.1-SNAPSHOT + 45.0.0-SNAPSHOT pom SciJava Parent POM @@ -383,6 +383,10 @@ 2.0.3 ${scijava-config.version} + + 1.0.0 + ${scijava-desktop.version} + 0.1.2 ${scijava-grab.version} @@ -395,10 +399,6 @@ 0.1.0 ${scijava-java3d.version} - - 1.0.0 - ${scijava-links.version} - 1.0.0-beta-3 ${scijava-listeners.version} @@ -419,10 +419,6 @@ 0.2.5 ${scijava-plugins-commands.version} - - 0.3.1 - ${scijava-plugins-platforms.version} - 0.1.3 ${scijava-plugins-text-markdown.version} @@ -2651,6 +2647,13 @@ ${org.scijava.scijava-config.version} + + + org.scijava + scijava-desktop + ${org.scijava.scijava-desktop.version} + + org.scijava @@ -2672,13 +2675,6 @@ ${org.scijava.scijava-java3d.version} - - - org.scijava - scijava-links - ${org.scijava.scijava-links.version} - - org.scijava @@ -2714,13 +2710,6 @@ ${org.scijava.scijava-plugins-commands.version} - - - org.scijava - scijava-plugins-platforms - ${org.scijava.scijava-plugins-platforms.version} - - org.scijava From b8f1adca85dc3fe7a0828eca7574a78f94b70974 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 27 May 2026 15:47:14 -0500 Subject: [PATCH 21/33] Fix build badge locations for all components --- pombast.toml | 187 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 118 insertions(+), 69 deletions(-) diff --git a/pombast.toml b/pombast.toml index 7a6fc3ef..1ec8670d 100644 --- a/pombast.toml +++ b/pombast.toml @@ -14,9 +14,10 @@ excludes = ["ome:*", "org.openmicroscopy:*"] [badges] includes = [ - "io.scif:*", "de.nanoimaging:*", "fr.inra.ijpb:*", + "io.scif:*", + "jitk:*", "mpicbg:*", "net.imagej:*", "net.imglib2:*", @@ -233,7 +234,7 @@ skip-tests = [ # at sc.fiji.labkit.ui.plugin.CalculateProbabilityMapWithLabkitIJ1PluginTest.test(CalculateProbabilityMapWithLabkitIJ1PluginTest.java:65) "sc.fiji:labkit-ui" = ["sc.fiji.labkit.ui.plugin.CalculateProbabilityMapWithLabkitIJ1PluginTest"] -[components."fr.inra.ijpb:MorphoLibJ"] +[components."fr.inra.ijpb:MorphoLibJ_"] ci-build = "build-main" [components."hsqldb:hsqldb"] @@ -265,6 +266,9 @@ last-vetted = "20230309000000" [components."io.scif:scifio-ome-xml"] ci-build = "build-main" +[components."jitk:jitk-tps"] +ci-build = "build-main" + [components."net.imagej:ij"] java-version = 11 @@ -353,32 +357,35 @@ java-version = 11 [components."net.imglib2:imglib2-unsafe"] last-vetted = "20230309000000" -[components."net.preibischlab:multiview-simulation"] +[components."net.preibisch:multiview-simulation"] ci-build = "build-main" -[components."ome:bioformats"] +[components."ome:formats-api"] ci-build = "maven" -[components."ome:ome-codecs"] +[components."ome:formats-bsd"] ci-build = "maven" -[components."ome:ome-common-java"] +[components."ome:formats-gpl"] ci-build = "maven" -[components."ome:ome-metakit"] -ci-build = "maven" +[components."org.bonej:bonej-legacy-plugins_"] +java-version = 11 +ci-build = "build-main" -[components."ome:ome-model"] -ci-build = "maven" +[components."org.bonej:bonej-legacy-util_"] +java-version = 11 +ci-build = "build-main" -[components."ome:ome-poi"] -ci-build = "maven" +[components."org.bonej:bonej-ops"] +java-version = 11 +ci-build = "build-main" -[components."org.bonej:bonej-legacy-plugins_"] +[components."org.bonej:bonej-plugins"] java-version = 11 ci-build = "build-main" -[components."org.bonej:bonej-ops"] +[components."org.bonej:bonej-utilities"] java-version = 11 ci-build = "build-main" @@ -463,7 +470,7 @@ last-vetted = "20250101000000" [components."org.codehaus.groovy:groovy-yaml"] last-vetted = "20250101000000" -[components."org.janelia.saalfeldlab:jitk-tps"] +[components."org.janelia:H5J_Loader_Plugin"] ci-build = "build-main" [components."org.janelia.saalfeldlab:n5-aws-s3"] @@ -484,13 +491,7 @@ ci-build = "build-main" [components."org.janelia.saalfeldlab:n5-universe"] ci-build = "build-main" -[components."org.janelia.saalfeldlab:n5-viewer"] -ci-build = "build-main" - -[components."org.janelia.saalfeldlab:trakem2-tps"] -ci-build = "build-main" - -[components."org.janelia.saalfeldlab:z-spacing"] +[components."org.janelia.saalfeldlab:n5-viewer_fiji"] ci-build = "build-main" [components."org.mockito:mockito-core"] @@ -502,6 +503,23 @@ java-version = 21 [components."org.ojalgo:ojalgo"] last-vetted = "20250101000000" +[components."org.openmicroscopy:metakit"] +project-url = "https://github.com/ome/ome-metakit" +ci-build = "maven" + +[components."org.openmicroscopy:ome-codecs"] +ci-build = "maven" + +[components."org.openmicroscopy:ome-common"] +ci-build = "maven" + +[components."org.openmicroscopy:ome-poi"] +ci-build = "maven" + +[components."org.openmicroscopy:ome-xml"] +project-url = "https://github.com/ome/ome-model" +ci-build = "maven" + [components."org.openmicroscopy:omero-blitz"] ci-build = "gradle" @@ -511,7 +529,8 @@ ci-build = "gradle" [components."org.openmicroscopy:omero-dsl-plugin"] ci-build = "gradle" -[components."org.openmicroscopy:omero-gateway-java"] +[components."org.openmicroscopy:omero-gateway"] +project-url = "https://github.com/ome/omero-gateway-java" ci-build = "gradle" [components."org.openmicroscopy:omero-model"] @@ -526,6 +545,10 @@ ci-build = "gradle" [components."org.openmicroscopy:omero-server"] ci-build = "gradle" +[components."org.openmicroscopy:specification"] +project-url = "https://github.com/ome/ome-model" +ci-build = "maven" + [components."org.python:jython-slim"] last-vetted = "20230309000000" @@ -700,10 +723,8 @@ last-vetted = "20230313000000" ci-build = "build-main" last-vetted = "20230313000000" -[components."sc.fiji:AnalyzeSkeleton"] -ci-build = "build-main" - [components."sc.fiji:AnalyzeSkeleton_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:Anisotropic_Diffusion_2D"] @@ -714,10 +735,8 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:Arrow"] -ci-build = "build-main" - [components."sc.fiji:Arrow_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:Auto_Local_Threshold"] @@ -727,10 +746,8 @@ last-vetted = "20230309000000" [components."sc.fiji:Auto_Threshold"] ci-build = "build-main" -[components."sc.fiji:BalloonSegmentation"] -ci-build = "build-main" - [components."sc.fiji:BalloonSegmentation_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:Bug_Submitter"] @@ -763,7 +780,7 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:CorrectBleach"] +[components."sc.fiji:CorrectBleach_"] ci-build = "build-main" [components."sc.fiji:Correct_3D_Drift"] @@ -773,16 +790,12 @@ last-vetted = "20230309000000" [components."sc.fiji:Descriptor_based_registration"] ci-build = "build-main" -[components."sc.fiji:Dichromacy"] -ci-build = "build-main" - [components."sc.fiji:Dichromacy_"] -last-vetted = "20230309000000" - -[components."sc.fiji:Directionality"] ci-build = "build-main" +last-vetted = "20230309000000" [components."sc.fiji:Directionality_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:FS_Align_TrakEM2"] @@ -802,10 +815,8 @@ ci-build = "build-main" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:FlowJ"] -ci-build = "build-main" - [components."sc.fiji:FlowJ_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:Graph_Cut"] @@ -816,9 +827,6 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:H5J_Loader_Plugin"] -ci-build = "build-main" - [components."sc.fiji:HDF5_Vibez"] ci-build = "build-main" @@ -830,7 +838,7 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:IO"] +[components."sc.fiji:IO_"] ci-build = "build-main" [components."sc.fiji:Image_5D"] @@ -873,16 +881,12 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:LocalThickness"] -ci-build = "build-main" - [components."sc.fiji:LocalThickness_"] -last-vetted = "20230309000000" - -[components."sc.fiji:MTrack2"] ci-build = "build-main" +last-vetted = "20230309000000" [components."sc.fiji:MTrack2_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:M_I_P"] @@ -907,16 +911,12 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:QuickPALM"] -ci-build = "build-main" - [components."sc.fiji:QuickPALM_"] -last-vetted = "20230309000000" - -[components."sc.fiji:RATS"] ci-build = "build-main" +last-vetted = "20230309000000" [components."sc.fiji:RATS_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:Reconstruct_Reader"] @@ -929,10 +929,8 @@ last-vetted = "20230309000000" [components."sc.fiji:SPIM_Registration"] ci-build = "build-main" -[components."sc.fiji:Samples"] -ci-build = "build-main" - [components."sc.fiji:Samples_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:Series_Labeler"] @@ -943,16 +941,12 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:Skeletonize3D"] -ci-build = "build-main" - [components."sc.fiji:Skeletonize3D_"] -last-vetted = "20230309000000" - -[components."sc.fiji:SplineDeformationGenerator"] ci-build = "build-main" +last-vetted = "20230309000000" [components."sc.fiji:SplineDeformationGenerator_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:Stack_Manipulation"] @@ -963,7 +957,7 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:Stitching"] +[components."sc.fiji:Stitching_"] ci-build = "build-main" [components."sc.fiji:Sync_Win"] @@ -989,36 +983,85 @@ ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:ToAST_"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:TopoJ_"] +ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:Trainable_Segmentation"] +ci-build = "build-main" + +[components."sc.fiji:TrakEM2_"] +ci-build = "build-main" + +[components."sc.fiji:TrakEM2_Archipelago"] +ci-build = "build-main" + [components."sc.fiji:VIB-lib"] +ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:VIB_"] +ci-build = "build-main" + [components."sc.fiji:Vaa3d_Reader"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:Vaa3d_Writer"] +ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:VectorString"] +ci-build = "build-main" + [components."sc.fiji:Video_Editing"] +ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:Volume_Calculator"] +ci-build = "build-main" + +[components."sc.fiji:Volume_Viewer"] +ci-build = "build-main" + [components."sc.fiji:bUnwarpJ_"] +ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:bigdataviewer-server"] +ci-build = "build-main" + +[components."sc.fiji:bigdataviewer-vistools"] +ci-build = "build-main" + +[components."sc.fiji:bigdataviewer_fiji"] +ci-build = "build-main" + [components."sc.fiji:bij"] +ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:blockmatching_"] +ci-build = "build-main" + [components."sc.fiji:fiji-lib"] +ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:labkit-pixel-classification"] +ci-build = "build-main" + +[components."sc.fiji:labkit-ui"] +ci-build = "build-main" + [components."sc.fiji:legacy-imglib1"] ci-build = "build-main" [components."sc.fiji:level_sets"] +ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:pal-optimization"] @@ -1036,7 +1079,7 @@ ci-build = "build-main" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:spimdata"] +[components."sc.fiji:spim_data"] ci-build = "build-main" last-vetted = "20230309000000" @@ -1044,6 +1087,12 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:trakem2_tps"] +ci-build = "build-main" + [components."sc.fiji:weave_jy2java"] ci-build = "build-main" last-vetted = "20230309000000" + +[components."sc.fiji:z_spacing"] +ci-build = "build-main" From 982f7b9f9a4e1c7e29cd49e18424065102405f8c Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 27 May 2026 15:53:28 -0500 Subject: [PATCH 22/33] Include MorphoLibJ in the smelt action --- pombast.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pombast.toml b/pombast.toml index 1ec8670d..285bdb4c 100644 --- a/pombast.toml +++ b/pombast.toml @@ -134,6 +134,7 @@ excludes = [ [smelt] includes = [ "ca.mcgill:*", + "fr.inra.ijpb:*", "io.scif:*", "jitk:*", "mpicbg:*", From ed2739e10fd392d050d23c2978fadc7a088c9780 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 27 May 2026 15:53:45 -0500 Subject: [PATCH 23/33] Remove obsolete vetting timestamps --- pombast.toml | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/pombast.toml b/pombast.toml index 285bdb4c..3512af47 100644 --- a/pombast.toml +++ b/pombast.toml @@ -258,7 +258,6 @@ last-vetted = "20230309000000" [components."io.scif:scifio-labeling"] ci-build = "build-main" -last-vetted = "20230309000000" [components."io.scif:scifio-lifesci"] ci-build = "build-main" @@ -275,11 +274,9 @@ java-version = 11 [components."net.imagej:imagej-deprecated"] ci-build = "build-main" -last-vetted = "20230309000000" [components."net.imagej:imagej-mesh"] ci-build = "build-main" -last-vetted = "20230309000000" [components."net.imagej:imagej-mesh-io"] ci-build = "build-main" @@ -307,7 +304,6 @@ last-vetted = "20230309000000" [components."net.imagej:imagej-plugins-commands"] ci-build = "build-main" -last-vetted = "20230309000000" [components."net.imagej:imagej-plugins-tools"] ci-build = "build-main" @@ -323,9 +319,6 @@ ci-build = "build-main" [components."net.imagej:imagej-scripting"] ci-build = "build-main" -[components."net.imagej:imagej-server"] -last-vetted = "20250101000000" - [components."net.imagej:imagej-tensorflow"] ci-build = "build-main" @@ -349,15 +342,9 @@ ci-build = "build-main" [components."net.imglib2:imglib2-algorithm-fft"] last-vetted = "20230309000000" -[components."net.imglib2:imglib2-algorithm-gpl"] -last-vetted = "20230309000000" - [components."net.imglib2:imglib2-mesh"] java-version = 11 -[components."net.imglib2:imglib2-unsafe"] -last-vetted = "20230309000000" - [components."net.preibisch:multiview-simulation"] ci-build = "build-main" @@ -550,9 +537,6 @@ ci-build = "gradle" project-url = "https://github.com/ome/ome-model" ci-build = "maven" -[components."org.python:jython-slim"] -last-vetted = "20230309000000" - [components."org.scijava:batch-processor"] ci-build = "build-main" @@ -579,20 +563,15 @@ last-vetted = "20180905120000" [components."org.scijava:minimaven"] last-vetted = "20230309000000" -[components."org.scijava:native-lib-loader"] -last-vetted = "20230309000000" - [components."org.scijava:scijava-cache"] ci-build = "build-main" last-vetted = "20230309000000" [components."org.scijava:scijava-grab"] ci-build = "build-main" -last-vetted = "20230309000000" [components."org.scijava:scijava-io-http"] ci-build = "build-main" -last-vetted = "20230309000000" [components."org.scijava:scijava-java3d"] ci-build = "build-main" @@ -604,9 +583,6 @@ last-vetted = "20211021000000" [components."org.scijava:scijava-maven-plugin"] last-vetted = "20230309000000" -[components."org.scijava:scijava-optional"] -last-vetted = "20230309000000" - [components."org.scijava:scijava-plot"] ci-build = "build-main" last-vetted = "20230309000000" @@ -647,14 +623,10 @@ ci-build = "build-main" [components."org.scijava:scripting-clojure"] ci-build = "build-main" -last-vetted = "20230309000000" [components."org.scijava:scripting-groovy"] ci-build = "build-main" -[components."org.scijava:scripting-java"] -last-vetted = "20230309000000" - [components."org.scijava:scripting-javascript"] ci-build = "build-main" @@ -677,7 +649,6 @@ ci-build = "build-main" [components."org.scijava:scripting-scala"] ci-build = "build-main" -last-vetted = "20230309000000" [components."org.scijava:swing-checkbox-tree"] last-vetted = "20230309000000" @@ -722,7 +693,6 @@ last-vetted = "20230313000000" [components."sc.fiji:3D_Viewer"] ci-build = "build-main" -last-vetted = "20230313000000" [components."sc.fiji:AnalyzeSkeleton_"] ci-build = "build-main" @@ -766,9 +736,6 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:Colocalisation_Analysis"] -last-vetted = "20230309000000" - [components."sc.fiji:Color_Histogram"] ci-build = "build-main" last-vetted = "20230309000000" @@ -786,7 +753,6 @@ ci-build = "build-main" [components."sc.fiji:Correct_3D_Drift"] ci-build = "build-main" -last-vetted = "20230309000000" [components."sc.fiji:Descriptor_based_registration"] ci-build = "build-main" @@ -884,7 +850,6 @@ last-vetted = "20230309000000" [components."sc.fiji:LocalThickness_"] ci-build = "build-main" -last-vetted = "20230309000000" [components."sc.fiji:MTrack2_"] ci-build = "build-main" @@ -1082,7 +1047,6 @@ last-vetted = "20230309000000" [components."sc.fiji:spim_data"] ci-build = "build-main" -last-vetted = "20230309000000" [components."sc.fiji:trakem2-transform"] ci-build = "build-main" From 85cb53895c7d7860913b703ad96033930f1aae54 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 27 May 2026 17:37:15 -0500 Subject: [PATCH 24/33] Mark which components are considered cuttable A cuttable component is one for which SciJava maintainers can cut new releases. Such components are assumed to abide by SciJava development principles, particularly having a release-ready mainline branch. --- pombast.toml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pombast.toml b/pombast.toml index 3512af47..e7815278 100644 --- a/pombast.toml +++ b/pombast.toml @@ -8,6 +8,21 @@ html = "index.html" header = "header.html" footer = "footer.html" nexus-base = "https://maven.scijava.org" +cuttable = [ + "de.nanoimaging:*", + "fr.inra.ijpb:*", + "io.scif:*", + "jitk:*", + "mpicbg:*", + "net.imagej:*", + "net.imglib2:*", + "net.preibisch:*", + "org.bonej:*", + "org.janelia*:*", + "org.morphonets:*", + "org.scijava:*", + "sc.fiji:*", +] [team] excludes = ["ome:*", "org.openmicroscopy:*"] @@ -134,6 +149,7 @@ excludes = [ [smelt] includes = [ "ca.mcgill:*", + "de.nanoimaging:*", "fr.inra.ijpb:*", "io.scif:*", "jitk:*", From 488cb544bec8b8c4e492b89894caca5e5475a524 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Wed, 27 May 2026 18:04:02 -0500 Subject: [PATCH 25/33] Update View5D: 2.5.4 -> 2.5.6 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 51ac8d41..cf2eb15f 100644 --- a/pom.xml +++ b/pom.xml @@ -1028,7 +1028,7 @@ - 2.5.4 + 2.5.6 ${View5D.version} ${View5D_.version} From 41b64495f789464f012c8e2866c3a6cb4c407b8a Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Thu, 28 May 2026 13:06:20 -0500 Subject: [PATCH 26/33] Update status header and footer Move pom-scijava and pom-scijava-base to header from footer. Use immediate src attribute on footer images. (Otherwise nothing populates them and they remain blank.) --- footer.html | 28 ++++++++-------------------- header.html | 23 ++++++++++++++++++++++- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/footer.html b/footer.html index 4d7603b2..2227e84a 100644 --- a/footer.html +++ b/footer.html @@ -4,47 +4,35 @@ Build -scijava/pom-scijava-base - - - -scijava/pom-scijava - - - -scijava/status.scijava.org - - - scijava/incubator - + imagej/list-of-update-sites - + imagej/tutorials - + fiji/fiji-builds - + scijava/jgo - + scijava/scyjava - + imglib/imglyb - + imagej/pyimagej - + diff --git a/header.html b/header.html index 16d992a7..832e4d59 100644 --- a/header.html +++ b/header.html @@ -1 +1,22 @@ - + + + From 806c9face3432f899ef31e334b3684c6d132963c Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Thu, 28 May 2026 13:07:11 -0500 Subject: [PATCH 27/33] Add includes to pombast team, to limit org search Without this, 65 orgs get searched, most of which are not under the purview of SciJava maintenance. --- pombast.toml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pombast.toml b/pombast.toml index e7815278..13b00c8b 100644 --- a/pombast.toml +++ b/pombast.toml @@ -25,7 +25,21 @@ cuttable = [ ] [team] -excludes = ["ome:*", "org.openmicroscopy:*"] +includes = [ + "de.nanoimaging:*", + "fr.inra.ijpb:*", + "io.scif:*", + "jitk:*", + "mpicbg:*", + "net.imagej:*", + "net.imglib2:*", + "net.preibisch:*", + "org.bonej:*", + "org.janelia*:*", + "org.morphonets:*", + "org.scijava:*", + "sc.fiji:*", +] [badges] includes = [ From febba1f9b3f9fed5f73ca2469d36f942f0018b25 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Thu, 28 May 2026 16:51:05 -0500 Subject: [PATCH 28/33] Let status and team pages share common navigation --- footer.html => footer-status.html | 3 ++ footer-team.html | 2 ++ header-status.html | 47 +++++++++++++++++++++++++++++++ header-team.html | 27 ++++++++++++++++++ header.html | 22 --------------- pombast.toml | 9 ++++-- 6 files changed, 85 insertions(+), 25 deletions(-) rename footer.html => footer-status.html (99%) create mode 100644 footer-team.html create mode 100644 header-status.html create mode 100644 header-team.html delete mode 100644 header.html diff --git a/footer.html b/footer-status.html similarity index 99% rename from footer.html rename to footer-status.html index 2227e84a..e5c038dd 100644 --- a/footer.html +++ b/footer-status.html @@ -36,3 +36,6 @@ + +
+👍 diff --git a/footer-team.html b/footer-team.html new file mode 100644 index 00000000..64db37f1 --- /dev/null +++ b/footer-team.html @@ -0,0 +1,2 @@ +
+👍 diff --git a/header-status.html b/header-status.html new file mode 100644 index 00000000..923b0e61 --- /dev/null +++ b/header-status.html @@ -0,0 +1,47 @@ + + + + diff --git a/header-team.html b/header-team.html new file mode 100644 index 00000000..41befe76 --- /dev/null +++ b/header-team.html @@ -0,0 +1,27 @@ + + diff --git a/header.html b/header.html deleted file mode 100644 index 832e4d59..00000000 --- a/header.html +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/pombast.toml b/pombast.toml index 13b00c8b..18c18895 100644 --- a/pombast.toml +++ b/pombast.toml @@ -4,9 +4,9 @@ repositories = ["scijava.public=https://maven.scijava.org/content/groups/public" [status] rules = "rules.xml" -html = "index.html" -header = "header.html" -footer = "footer.html" +html = "../status.scijava.org/index.html" +header = "header-status.html" +footer = "footer-status.html" nexus-base = "https://maven.scijava.org" cuttable = [ "de.nanoimaging:*", @@ -25,6 +25,9 @@ cuttable = [ ] [team] +html = "../status.scijava.org/team.html" +header = "header-team.html" +footer = "footer-team.html" includes = [ "de.nanoimaging:*", "fr.inra.ijpb:*", From e5cb5def39e43c90d9b553aed6b3849b6dd83af1 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Sat, 30 May 2026 12:58:03 -0500 Subject: [PATCH 29/33] CI: generate badges.json as part of status refresh --- .github/status.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/status.sh b/.github/status.sh index 7a8ade8d..60f1a401 100755 --- a/.github/status.sh +++ b/.github/status.sh @@ -1,5 +1,6 @@ #!/bin/sh uv tool install "git+https://github.com/scijava/pombast.git pombast status . -pombast team . --html team.html -.github/publish.sh "Update status reports" index.html team.html +pombast badges -o badges.json . +pombast team . +.github/publish.sh "Update status reports" index.html badges.json team.html From 9144d92598d07add02bbf1f7d3cf5e0504c59ae6 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Sat, 30 May 2026 15:46:35 -0500 Subject: [PATCH 30/33] Downgrade recommended JavaFX version to v19 This is so that the recommended/default JavaFX aligns with the recommended/default version of Java: currently version 11. When scijava.jvm.version is increased, we can/should/will also increase the recommended/default version of JavaFX. This alignment is necessary for pombast validation checks; whereas with them misaligned, the javafx components in the pombast melt dependency graph result in enforcer validation errors: [ERROR] Rule 6: org.codehaus.mojo.extraenforcer.dependencies.EnforceBytecodeVersion failed with message: [ERROR] Found Banned Dependency: org.openjfx:javafx-media:jar:linux:23.0.2 [ERROR] Found Banned Dependency: org.openjfx:javafx-swing:jar:linux:23.0.2 [ERROR] Found Banned Dependency: org.openjfx:javafx-fxml:jar:linux:23.0.2 [ERROR] Found Banned Dependency: org.openjfx:javafx-web:jar:linux:23.0.2 [ERROR] Found Banned Dependency: org.openjfx:javafx-base:jar:linux:23.0.2 [ERROR] Found Banned Dependency: org.openjfx:javafx-controls:jar:linux:23.0.2 [ERROR] Found Banned Dependency: org.openjfx:javafx-graphics:jar:linux:23.0.2 [ERROR] Use 'mvn dependency:tree' to locate the source of the banned dependencies. The reason the javafx components are part of the pombast melt's dependency graph is because several other included components (OMEVisual, FilamentDetector, multiview-reconstruction) depend on javafx, so even with javafx components excluded from the melt operation's direct dependency graph, they still come in transitively. We could alternately work around the issue by excluding all the components depending on javafx, but that would be a hacky workaround compared to just unifying expectations here. With this adjustment, errors could now surface in the "other direction": if a component Foo21 overrides scijava.jvm.version to 21 and javafx.version to v23, it will be buildable and releasable -- but if that Foo21 component is then added to the pom-scijava BOM, it will be smelted with JavaFX v19, meaning any too-new API of JavaFX v23 will not be available, and the Foo21 smelt will fail accordingly. But this is actually correct: we are asserting that all versions of components in the BOM actually work together, and if Foo21 tries to make use of a too-new JavaFX, it *would* fail at runtime if a downstream component added dependencies on Foo21 and JavaFX at the BOM's declared versions. So: working as intended! --- pom.xml | 2 +- pombast.toml | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index cf2eb15f..6c3c204a 100644 --- a/pom.xml +++ b/pom.xml @@ -2115,7 +2115,7 @@ 26 | 24 27 | 25 --> - 23.0.2 + 19.0.2.1 ${javafx.version} ${javafx.version} ${javafx.version} diff --git a/pombast.toml b/pombast.toml index 18c18895..5b6af95b 100644 --- a/pombast.toml +++ b/pombast.toml @@ -109,13 +109,6 @@ excludes = [ 'mpicbg:mpicbg', 'mpicbg:mpicbg_', # NB: Skip artifacts requiring minimum Java version >11. 'net.algart:algart-tiff', - 'org.openjfx:javafx-base', - 'org.openjfx:javafx-controls', - 'org.openjfx:javafx-fxml', - 'org.openjfx:javafx-graphics', - 'org.openjfx:javafx-media', - 'org.openjfx:javafx-swing', - 'org.openjfx:javafx-web', 'org.morphonets:SNT', # NB: Skip closed-source artifacts. 'org.bonej:bonej-plus', From e4955b8a27fd5460534bbf44b25c82542df777af Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Sat, 30 May 2026 17:34:14 -0500 Subject: [PATCH 31/33] Update component versions * imagej-tensorflow: 1.1.8 -> 1.1.9 * scifio: 0.48.0 -> 0.49.0 * FilamentDetector: 2.0.1 -> 3.0.0 * OMEVisual: 2.0.0 -> 3.0.0 * mpicbg: 1.6.5 -> 1.6.6 * bigdataviewer-server: 3.1.2 -> 4.0.0 * TrackMate: 7.14.0 -> 8.0.0 * TrackMate-Cellpose: 0.1.2 -> 1.0.1 * TrackMate-CSVImporter: 3.1.4 -> 4.0.0 * TrackMate-Ilastik: 1.4.0 -> 2.0.0 * TrackMate-MorphoLibJ: 1.2.1 -> 2.0.0 * TrackMate-Weka: 1.3.1 -> 2.0.0 * BigStitcher: 2.5.2 -> 2.6.1 * multiview-reconstruction: 7.0.6 -> 9.0.0 * MaMuT: 7.1.1 -> 8.0.1 --- pom.xml | 30 +++++++++++++++--------------- pombast.toml | 8 +++++++- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/pom.xml b/pom.xml index 6c3c204a..e733cc1e 100644 --- a/pom.xml +++ b/pom.xml @@ -600,7 +600,7 @@ ${imagej-server.version} - 1.1.8 + 1.1.9 ${imagej-tensorflow.version} @@ -672,7 +672,7 @@ - 0.48.0 + 0.49.0 ${scifio.version} @@ -806,7 +806,7 @@ 3.2.0 ${Fiji_Plugins.version} - 2.0.1 + 3.0.0 ${FilamentDetector.version} 2.0.1 @@ -887,7 +887,7 @@ 3.0.1 ${Multi_Kymograph.version} - 2.0.0 + 3.0.0 ${OMEVisual.version} 2.0.0 @@ -1042,7 +1042,7 @@ ${bigwarp_fiji.version} - 1.6.5 + 1.6.6 ${mpicbg.version} ${mpicbg.version} ${mpicbg_.version} @@ -1062,7 +1062,7 @@ ${bigdataviewer-core.version} - 3.1.2 + 4.0.0 ${bigdataviewer-server.version} @@ -1088,15 +1088,15 @@ - 7.14.0 + 8.0.0 ${TrackMate.version} - 0.1.2 + 1.0.1 ${TrackMate-Cellpose.version} - 3.1.4 + 4.0.0 ${TrackMate-CSVImporter.version} @@ -1110,11 +1110,11 @@ ${TrackMate-ExTrack.version} - 1.4.0 + 2.0.0 ${TrackMate-Ilastik.version} - 1.2.1 + 2.0.0 ${TrackMate-MorphoLibJ.version} @@ -1130,7 +1130,7 @@ ${TrackMate-StarDist.version} - 1.3.1 + 2.0.0 ${TrackMate-Weka.version} @@ -1232,8 +1232,8 @@ ${clijx-weka_.version} - 2.5.2 - 7.0.6 + 2.6.1 + 9.0.0 0.2.0 ${BigStitcher.version} ${multiview-reconstruction.version} @@ -1257,7 +1257,7 @@ ${SNT.version} - 7.1.1 + 8.0.1 ${MaMuT.version} diff --git a/pombast.toml b/pombast.toml index 5b6af95b..400a943d 100644 --- a/pombast.toml +++ b/pombast.toml @@ -371,6 +371,9 @@ last-vetted = "20230309000000" [components."net.imglib2:imglib2-mesh"] java-version = 11 +[components."net.preibisch:multiview-reconstruction"] +java-version = 11 + [components."net.preibisch:multiview-simulation"] ci-build = "build-main" @@ -808,6 +811,9 @@ ci-build = "build-main" ci-build = "build-main" last-vetted = "20230309000000" +[components."sc.fiji:FilamentDetector"] +java-version = 11 + [components."sc.fiji:FlowJ_"] ci-build = "build-main" last-vetted = "20230309000000" @@ -897,7 +903,7 @@ ci-build = "build-main" last-vetted = "20230309000000" [components."sc.fiji:OMEVisual"] -last-vetted = "20230309000000" +java-version = 11 [components."sc.fiji:PIV_analyser"] ci-build = "build-main" From cf746eb26496082c2fd990fe58510eff5fbd550f Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Mon, 1 Jun 2026 14:09:50 -0500 Subject: [PATCH 32/33] Tidy up the pombast/mega-melt configuration * Move pombast-specific templates into pombast subfolder. * Remove tests subfolder containing obsolete shell scripts. --- pombast.toml | 10 +- .../footer-status.html | 0 footer-team.html => pombast/footer-team.html | 0 .../header-status.html | 0 header-team.html => pombast/header-team.html | 0 {tests => pombast}/mega-melt-template.xml | 0 tests/filter-build-log.py | 48 -- tests/generate-mega-melt.py | 147 ------ tests/run.sh | 484 ------------------ 9 files changed, 5 insertions(+), 684 deletions(-) rename footer-status.html => pombast/footer-status.html (100%) rename footer-team.html => pombast/footer-team.html (100%) rename header-status.html => pombast/header-status.html (100%) rename header-team.html => pombast/header-team.html (100%) rename {tests => pombast}/mega-melt-template.xml (100%) delete mode 100644 tests/filter-build-log.py delete mode 100644 tests/generate-mega-melt.py delete mode 100755 tests/run.sh diff --git a/pombast.toml b/pombast.toml index 400a943d..36035129 100644 --- a/pombast.toml +++ b/pombast.toml @@ -5,8 +5,8 @@ repositories = ["scijava.public=https://maven.scijava.org/content/groups/public" [status] rules = "rules.xml" html = "../status.scijava.org/index.html" -header = "header-status.html" -footer = "footer-status.html" +header = "pombast/header-status.html" +footer = "pombast/footer-status.html" nexus-base = "https://maven.scijava.org" cuttable = [ "de.nanoimaging:*", @@ -26,8 +26,8 @@ cuttable = [ [team] html = "../status.scijava.org/team.html" -header = "header-team.html" -footer = "footer-team.html" +header = "pombast/header-team.html" +footer = "pombast/footer-team.html" includes = [ "de.nanoimaging:*", "fr.inra.ijpb:*", @@ -71,7 +71,7 @@ includes = [ # Setting scijava.jvm.version to 21 by default would avoid the issue, but... # is that really a good idea? Setting to 11 seems like a nice baseline compromise right now. java-version = 21 # Maximum Java version of all included component + deps. -template = "tests/mega-melt-template.xml" +template = "pombast/mega-melt-template.xml" excludes = [ # TEMP: Exclude org.bytedeco:hdf5 until cisd:jhdf5 is gone. 'org.bytedeco:hdf5', diff --git a/footer-status.html b/pombast/footer-status.html similarity index 100% rename from footer-status.html rename to pombast/footer-status.html diff --git a/footer-team.html b/pombast/footer-team.html similarity index 100% rename from footer-team.html rename to pombast/footer-team.html diff --git a/header-status.html b/pombast/header-status.html similarity index 100% rename from header-status.html rename to pombast/header-status.html diff --git a/header-team.html b/pombast/header-team.html similarity index 100% rename from header-team.html rename to pombast/header-team.html diff --git a/tests/mega-melt-template.xml b/pombast/mega-melt-template.xml similarity index 100% rename from tests/mega-melt-template.xml rename to pombast/mega-melt-template.xml diff --git a/tests/filter-build-log.py b/tests/filter-build-log.py deleted file mode 100644 index 4e8f1942..00000000 --- a/tests/filter-build-log.py +++ /dev/null @@ -1,48 +0,0 @@ -# -# filter-build-log.py - Cuts out cruft to focus on build failure details. -# - -# This script filters build logs down to only [WARNING] and [ERROR] lines, -# and consolidates lengthy duplicate class listings down to packages only. - -import sys - -def print_filtered_log(log): - dups = [] - parsingdups = False - atbeginning = True - for line in log: - line = line.rstrip('\n') - if line.startswith('[INFO]'): - # Filter out non-error build messages. - continue - if line.startswith('Download') or line.startswith('Progress'): - # Filter out details of remote resource queries. - continue - if atbeginning and not line.strip(): - # Filter out leading blank lines. - continue - atbeginning = False - if parsingdups: - if line.startswith(' '): - if line.find('/') >= 0: - # Strip to containing package only. - line = line[:line.rindex('/')] - dups.append(line) - else: - parsingdups = False - for dup in sorted(set(dups)): - print(dup) - print('') - dups = [] - else: - if line == ' Duplicate classes:': - print(' Duplicate packages:') - parsingdups = True - else: - print(line) - -for arg in sys.argv[1:]: - with open(arg) as f: - print_filtered_log(f) - diff --git a/tests/generate-mega-melt.py b/tests/generate-mega-melt.py deleted file mode 100644 index fef2758d..00000000 --- a/tests/generate-mega-melt.py +++ /dev/null @@ -1,147 +0,0 @@ -# -# generate-mega-melt.py - Make a POM depending on everything in pom-scijava. -# - -import os, re, sys -from xml.dom import minidom - -def child(node, tag): - nodes = node.getElementsByTagName(tag) - return None if len(nodes) == 0 else nodes[0] - -script_dir = os.path.dirname(os.path.realpath(__file__)) if __file__ else '.' -out = minidom.parse(os.path.join(script_dir, 'mega-melt-template.xml')) -out.getElementsByTagName('project')[0].appendChild(out.createElement('dependencies')) -outDeps = out.getElementsByTagName('dependencies')[0] - -psj = minidom.parse(os.path.join(script_dir, '..', 'pom.xml')) -depMgmt = psj.getElementsByTagName('dependencyManagement')[0] -deps = depMgmt.getElementsByTagName('dependencies')[0] -depList = deps.getElementsByTagName('dependency') - -# Artifacts to exclude from the mega melt. -ignoredArtifacts = [ - # TEMP: Exclude org.bytedeco:hdf5 until cisd:jhdf5 is gone. - 'hdf5', - # TEMP: The original ImageJ requires Java 9+ to compile, - # because it has a module-info.java, so skip it until the - # component collection is updated from Java 8 to Java 11. - 'ij', - # TEMP: Skip components within multi-module reactors. - # Neither melting-pot.sh nor release-version.sh understand - # multi-module repositories; release-version.sh needs to learn - # how to tag and release individual components from multi-module - # repos, so that when melting-pot.sh shallow clones the repo at - # that tag and invokes a build, it will be building only the - # released component as it does with single-component repos. - 'scijava-collections', - 'scijava-common3', - 'scijava-concurrent', - 'scijava-discovery-test', - 'scijava-discovery', - 'scijava-function', - 'scijava-legacy', - 'scijava-meta', - 'scijava-ops-api', - 'scijava-ops-benchmarks', - 'scijava-ops-engine', - 'scijava-ops-ext-parser', - 'scijava-ops-flim', - 'scijava-ops-image', - 'scijava-ops-indexer', - 'scijava-ops-opencv', - 'scijava-ops-spi', - 'scijava-ops-tutorial', - 'scijava-priority', - 'scijava-progress', - 'scijava-struct', - 'scijava-taglets', - 'scijava-testutil', - 'scijava-types', - 'mpicbg', 'mpicbg_', - # NB: Skip artifacts requiring minimum Java version >8. - 'algart-tiff', - 'javafx-base', - 'javafx-controls', - 'javafx-fxml', - 'javafx-graphics', - 'javafx-media', - 'javafx-swing', - 'javafx-web', - 'SNT', - # NB: Skip closed-source artifacts. - 'bonej-plus', - # NB: The following artifacts have messy dependency trees. - # Too many problems to test as part of the mega-melt. - # See WARNING block in pom-scijava's pom.xml for details. - 'imagej-server', - 'spark-core_2.11', - # NB: Skip scijava forks of third-party projects. - # These are very stable, with few/no dependencies, and - # don't need to be retested as pom-scijava evolves. - 'j3dcore', - 'j3dutils', - 'jep', - 'junit-benchmarks', - 'vecmath', - # NB: Skip alternate flavors of other managed components. - 'gluegen', # uberjar flavor of gluegen-rt - 'jogl-all-noawt', # slimmed down flavor of jogl-all - # NB: All the SWT platform JARs have the same classes. - # The current platform will be brought in transitively. - 'org.eclipse.swt.cocoa.macosx', - 'org.eclipse.swt.cocoa.macosx.x86_64', - 'org.eclipse.swt.gtk.aix.ppc', - 'org.eclipse.swt.gtk.aix.ppc64', - 'org.eclipse.swt.gtk.hpux.ia64', - 'org.eclipse.swt.gtk.linux.ppc', - 'org.eclipse.swt.gtk.linux.ppc64', - 'org.eclipse.swt.gtk.linux.s390', - 'org.eclipse.swt.gtk.linux.s390x', - 'org.eclipse.swt.gtk.linux.x86', - 'org.eclipse.swt.gtk.linux.x86_64', - 'org.eclipse.swt.gtk.solaris.sparc', - 'org.eclipse.swt.gtk.solaris.x86', - 'org.eclipse.swt.win32.win32.x86', - 'org.eclipse.swt.win32.win32.x86_64', - # NB: All SLF4J bindings have the same classes. - # We'll rely on logback-classic being present here. - 'slf4j-jcl', - 'slf4j-jdk14', - 'slf4j-nop', - 'slf4j-simple', - # NB: Cannot include both commons-logging and jcl-over-slf4j; - # see: http://www.slf4j.org/codes.html#jclDelegationLoop - 'jcl-over-slf4j' -] - -for dep in depList: - # Harvest relevant information (ignore exclusions and version). - groupId = child(dep, 'groupId') - artifactId = child(dep, 'artifactId') - classifier = child(dep, 'classifier') - scope = child(dep, 'scope') - - if artifactId.firstChild.data in ignoredArtifacts: - continue - - outDep = out.createElement('dependency') - outDep.appendChild(groupId) - outDep.appendChild(artifactId) - if classifier: - outDep.appendChild(classifier) - if scope: - outDep.appendChild(scope) - outDeps.appendChild(outDep) - -# Filter XML through a hacky substitution to avoid unwanted whitespace. -xml = re.sub('\n[\n\r\t]*\n', '\n', out.toprettyxml()) - -outDir = sys.argv[1] if len(sys.argv) > 1 else 'mega-melt' -try: - os.mkdir(outDir) -except: - pass - -with open(os.path.join(outDir, 'pom.xml'), 'w') as outPOM: - outPOM.write(xml) diff --git a/tests/run.sh b/tests/run.sh deleted file mode 100755 index 6ddc8716..00000000 --- a/tests/run.sh +++ /dev/null @@ -1,484 +0,0 @@ -#!/bin/sh - -# -# run.sh - Tests correctness of the pom-scijava BOM. -# - -die () { echo "$*" >&2; exit 1; } - -changed () { ! diff $@ >/dev/null; } - -sectionStart() { - startTime=$(date +%s) - echo - printf "$1... " -} - -sectionEnd() { - endTime=$(date +%s) - echo "Done! [$((endTime-startTime))s]" -} - -# Check prerequisites. - -# HACK: Work around macOS Python naming inconsistency. -if command -v python3 >/dev/null 2>&1; then - PYTHON=python3 -elif command -v python >/dev/null 2>&1; then - PYTHON=python -else - die "This script requires Python." -fi - -sectionStart 'Generating mega-melt project' - -dir=$(cd "$(dirname "$0")" && pwd) -pom="$dir/../pom.xml" -test -f "$pom" || die 'Where is pom.xml?!' - -generateMegaMeltScript="$dir/generate-mega-melt.py" -filterBuildLogScript="$dir/filter-build-log.py" - -megaMeltDir="$dir/../target/mega-melt" -megaMeltDir=$(mkdir -p "$megaMeltDir" && cd "$megaMeltDir" && pwd) -pomParent="$megaMeltDir/../pom.xml" -versionSwapLog="$megaMeltDir/version-swap.log" -dependencyTreeLog="$megaMeltDir/dependency-tree.log" -validationLog="$megaMeltDir/validation.log" -validationErrorsLog="$megaMeltDir/validation-errors.log" -megaMeltPOM="$megaMeltDir/pom.xml" -meltingPotLocal="$dir/../../scijava-scripts/melting-pot.sh" -meltingPotURL=https://raw.githubusercontent.com/scijava/scijava-scripts/main/melting-pot.sh -meltingPotScript="$megaMeltDir/melting-pot.sh" -meltingPotLog="$megaMeltDir/melting-pot.log" -meltingPotDir="$megaMeltDir/melting-pot" -skipTestsFile="$meltingPotDir/skipTests.txt" -meltScript="$meltingPotDir/melt.sh" - -# HACK: List of artifacts with known-duplicate short version properties. -shortVersionClashes=\ -'net.sourceforge.findbugs.annotations'\ -'|antlr.antlr'\ -'|org.jogamp.jocl.jocl'\ -'|net.sf.opencsv.opencsv'\ -'|org.jetbrains.intellij.deps.trove4j' - -rm -rf "$megaMeltDir" && mkdir -p "$megaMeltDir" || die "Creation of $megaMeltDir failed!" -cp "$pom" "$pomParent" && -mvn -B -f "$pomParent" versions:set -DnewVersion=999-mega-melt > "$versionSwapLog" && - mvn -B -f "$pomParent" install:install >> "$versionSwapLog" || - die "pom-scijava version update failed:\n$(cat "$versionSwapLog")" -$PYTHON "$generateMegaMeltScript" "$megaMeltDir" || die 'Generation failed!' -sectionEnd # Generating mega-melt project - -# Ensure the mega-melt dependency structure validates. -# In particular, this runs our enforcer rules: the build -# will fail if there are any snapshot dependencies, or -# any duplicate classes across artifacts on the classpath. -sectionStart 'Validating mega-melt project' -mvn -B -f "$megaMeltPOM" dependency:tree > "$dependencyTreeLog" || - die "Invalid dependency tree:\n$(cat "$dependencyTreeLog")" -mvn -B -f "$megaMeltPOM" -U clean package > "$validationLog" || { - $PYTHON "$filterBuildLogScript" "$validationLog" > "$validationErrorsLog" - die "Validation build failed!\n\nDependency tree:\n$(cat "$dependencyTreeLog")\n\nBuild log:\n$(cat "$validationErrorsLog")" -} -sectionEnd # Validating mega-melt project - -# Run mega-melt through the melting pot, with all SciJava-affiliated groupIds, -# minus excluded artifacts (see ignoredArtifacts in generate-mega-melt.py). -echo && -echo 'Generating melting pot...' && -if [ -e "$meltingPotLocal" ] -then - cp "$meltingPotLocal" "$meltingPotScript" -else - curl -fsL "$meltingPotURL" > "$meltingPotScript" -fi || - die "Failed to obtain melting pot script!" - -# Build the melting pot structure. -chmod +x "$meltingPotScript" && -"$meltingPotScript" "$megaMeltDir" \ - -r scijava.public::::https://maven.scijava.org/content/groups/public \ - -o "$meltingPotDir" \ - -i 'ca.mcgill:*' \ - -i 'io.scif:*' \ - -i 'jitk:*' \ - -i 'mpicbg:*' \ - -i 'net.imagej:*' \ - -i 'net.imglib2:*' \ - -i 'net.preibisch:*' \ - -i 'org.bonej:*' \ - -i 'org.janelia.saalfeldlab:*' \ - -i 'org.janelia:*' \ - -i 'org.morphonets:*' \ - -i 'org.scijava:*' \ - -i 'sc.fiji:*' \ - -e 'net.imagej:ij' \ - -e 'net.imglib2:imglib2-mesh' \ - -e 'org.bonej:bonej-plus' \ - -e 'org.openjfx:*' \ - -e 'org.scijava:j3dcore' \ - -e 'org.scijava:j3dutils' \ - -e 'org.scijava:jep' \ - -e 'org.scijava:junit-benchmarks' \ - -e 'org.scijava:vecmath' \ - -f -v -s $@ 2>&1 | tee "$meltingPotLog" - -# NB: The pipe to tee eats the melting-pot error code. -# Even with the POSIX-unfriendly pipefail flag set. -# So we resort to this hacky error check of the log. -test "$(grep -F "[ERROR]" "$meltingPotLog" | grep -v "using default branch")" && - die 'Melting pot generation failed!' - -buildScript="$meltingPotDir/build.sh" -versionPins="$meltingPotDir/version-pins.xml" - -echo -echo 'Hacking in any changed components...' - -# Mix in changed components. Syntax is: -# -# groupId|artifactId|path-to-remote|remote-ref -# -# Example: -# -# components=' -# org.janelia.saalfeldlab|n5-imglib2|git@github.com:saalfeldlab/n5-imglib2|pull/54/head -# sc.fiji|SPIM_Registration|git@github.com:fiji/SPIM_Registration|pull/142/head -# sc.fiji|labkit-ui|git@github.com:juglab/labkit-ui|pull/115/head -# sc.fiji|labkit-pixel-classification|git@github.com:juglab/labkit-pixel-classification|pull/12/head -# sc.fiji|z_spacing|git@github.com:saalfeldlab/z-spacing|pull/28/head -# net.imagej|imagej-common|git@github.com:imagej/imagej-common|pull/112/head -# sc.fiji|TrackMate|git@github.com:trackmate-sc/TrackMate|pull/289/head -# sc.fiji|TrackMate-Skeleton|git@github.com:trackmate-sc/TrackMate-Skeleton|pull/2/head -# sc.fiji|bigwarp_fiji|git@github.com:saalfeldlab/bigwarp|pull/170/head -# net.imagej|imagej-ops|git@github.com:imagej/imagej-ops|pull/654/head -# ' -# -# One entry per line inside the components variable declaration. -# No leading or trailing whitespace anywhere. -# -# Each component will: -# 1. Be updated to that ref (cloning as needed); -# 2. Have its version adjusted to 999 in its pom.xml and gav marker; -# 3. Be `mvn install`ed to the local repo cache at that version; -# 4. Have its version adjusted to 999 in melting pot's build.sh; -# 5. Be added to the list of components to build in melt.sh (if not already present). -components=' -' -failFile="$meltingPotDir/fail" -rm -f "$failFile" -echo "$components" | while read component -do - test "$component" || continue - - g=${component%%|*}; r=${component#*|} - a=${r%%|*}; r=${r#*|} - remote=${r%%|*}; ref=${r#*|} - test "$g" -a "$a" -a "$remote" -a "$ref" || { - touch "$failFile" - die "Invalid component line: $component" - } - d="$meltingPotDir/$g/$a" - printf "[$g:$a] " - - # Update component working copy to desired ref (cloning as needed). - mkdir -p "$d" && - echo "Log of actions for custom version of $g:$a" > "$d/surgery.log" && - echo >> "$d/surgery.log" && - test -f "$d/.git" || git init "$d" >> "$d/surgery.log" || { - touch "$failFile" - die "Failed to access or initialize repository in directory $d" - } - printf . - cd "$d" && - git remote add mega-melt "$remote" >> surgery.log && - printf . && - git fetch mega-melt --depth 1 "$ref":mega-melt >> surgery.log 2>&1 && - printf . && - git switch mega-melt >> surgery.log 2>&1 || { - touch "$failFile" - die "$g:$a: failed to fetch ref '$ref' from remote $remote" - } - printf . - - # Adjust component version to 999. - mvn versions:set -DnewVersion=999 >> surgery.log || { - touch "$failFile" - die "$g:$a: failed to adjust pom.xml version" - } - printf . - if [ -f gav ] - then - mv gav gav.prehacks - sed -E "s;:[^:]*$;:999;" gav.prehacks > gav && changed gav.prehacks gav || { - touch "$failFile" - die "$g:$a: failed to adjust gav version" - } - fi - printf . - - # Install changed component into the local repo cache. - mvn -Denforcer.skip -Dmaven.test.skip install >> surgery.log || { - touch "$failFile" - die "$g:$a: failed to build and install component" - } - printf . - - # Adjust component version to 999 in melting pot's version-pins.xml. - cd "$meltingPotDir" - test -f "$versionPins.prehacks" || cp "$versionPins" "$versionPins.prehacks" || { - touch "$failFile" - die "$g:$a: failed to back up $versionPins" - } - printf . - echo "$a" | grep -q '^[0-9]' && aa="_$a" || aa="$a" - mv -f "$versionPins" "$versionPins.tmp" && - sed -E "s;<\($g\\.$a\|$aa\)\\.version>[^<]*;<\1.version>999;g" "$versionPins.tmp" > "$versionPins" && - changed "$versionPins.tmp" "$versionPins" || - { - touch "$failFile" - die "$g:$a: failed to adjust component version in $versionPins" - } - printf . - - # Add component to the build list in melt.sh (if not already present). - grep -q "\b$g/$a\b" "$meltScript" || { - test -f "$meltScript.prehacks" || cp "$meltScript" "$meltScript.prehacks" - mv -f "$meltScript" "$meltScript.tmp" && - perl -0777 -pe 's;\n+do\n;\n '"$g/$a"' \\$&;igs' "$meltScript.tmp" > "$meltScript" - } || { - touch "$failFile" - die "$g:$a: failed to add component to the build list in $meltScript" - } - printf ".\n" -done -rm -f "$versionPins.tmp" "$meltScript.tmp" -test ! -f "$failFile" || - die "Failed to hack in changed components!" - -sectionStart 'Adjusting the melting pot: version-pins.xml configuration' - -cp "$versionPins" "$versionPins.original" && - -# HACK: Remove known-duplicate short version properties, keeping -# the short version declaration only for the more common groupId. -# E.g.: org.antlr:antlr is preferred over antlr:antlr, so we set -# antlr.version to match org.antlr:antlr, not antlr:antlr. -mv -f "$versionPins" "$versionPins.tmp" && -sed -E 's;(<('"$shortVersionClashes"')\.version>[^ ]*) <[^ ]*;\1;' "$versionPins.tmp" > "$versionPins" && - changed "$versionPins.tmp" "$versionPins" || - die 'Error adjusting melting pot version pins! [1]' - -# HACK: Add non-standard version properties used prior to -# pom-scijava 32.0.0-beta-1; see d0bf752070d96a2613c42e4e1ab86ebdd07c29ee. -mv -f "$versionPins" "$versionPins.tmp" && -sed -E 's; ([^<]*);& \1;' "$versionPins.tmp" > "$versionPins" && - changed "$versionPins.tmp" "$versionPins" && -mv -f "$versionPins" "$versionPins.tmp" && -sed -E 's; ([^<]*);& \2;' "$versionPins.tmp" > "$versionPins" && - changed "$versionPins.tmp" "$versionPins" || - die 'Error adjusting melting pot version pins! [2]' - -# HACK: Add non-standard net.imagej:ij version property used prior to -# pom-scijava 28.0.0; see 7d2cc442b107b3ac2dcb799d282f2c0b5822649d. -mv -f "$versionPins" "$versionPins.tmp" && -sed -E 's; ([^<]*);& \1;' "$versionPins.tmp" > "$versionPins" && - changed "$versionPins.tmp" "$versionPins" || - die 'Error adjusting melting pot version pins! [3]' - -rm "$versionPins.tmp" || - die 'Error adjusting melting pot version pins! [4]' - -sectionEnd # Adjusting the melting pot: version-pins.xml configuration - -sectionStart 'Adjusting the melting pot: build.sh script' - -cp "$buildScript" "$buildScript.original" && - -# HACK: Add explicit kotlin.version to match our pom-scijava-base. -# Otherwise, components built on older pom-scijava-base will have -# mismatched kotlin component versions. The sed expression avoids -# a bug in mvn's batch mode that results in [0m[0m still -# appearing as a leading ANSI sequence when echoing the property. -kotlinVersion=$( - mvn -B -U -q -Denforcer.skip=true -Dexec.executable=echo \ - -Dexec.args='${kotlin.version}' --non-recursive validate exec:exec 2>&1 | - head -n1 | sed 's;\(.\[[0-9]m\)*;;') && -# TEMP: Also fix the version of maven-enforcer-plugin, to prevent n5 from -# overriding it with a too-old version. Even though we pass enforcer.skip, -# so that the enforcer plugin does not actually do any checking, this version -# mismatch still triggers a problem: -# -# [ERROR] Failed to execute goal -# org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce -# (enforce-rules) on project n5-blosc: Unable to parse configuration of -# mojo org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce -# for parameter banDuplicateClasses: Cannot create instance of interface -# org.apache.maven.enforcer.rule.api.EnforcerRule: -# org.apache.maven.enforcer.rule.api.EnforcerRule.() -> [Help 1] -# -# Once n5 components stop doing that version pin, we can remove this here. -enforcerVersion=$( - mvn -B -U -q -Denforcer.skip=true -Dexec.executable=echo \ - -Dexec.args='${maven-enforcer-plugin.version}' --non-recursive validate exec:exec 2>&1 | - head -n1 | sed 's;\(.\[[0-9]m\)*;;') && -mv -f "$buildScript" "$buildScript.tmp" && -sed -E "s;mvn .*-Denforcer.skip;& -Dmaven-enforcer-plugin.version=$enforcerVersion -Dkotlin.version=$kotlinVersion;" "$buildScript.tmp" > "$buildScript" && - changed "$buildScript.tmp" "$buildScript" && - -chmod +x "$buildScript" && -rm "$buildScript.tmp" || - die 'Error adjusting melting pot build script!' - -sectionEnd # Adjusting the melting pot: build.sh script - -sectionStart 'Adjusting the melting pot: component POMs' - -# HACK: Adjust component POMs to satisfy Maven HTTPS strictness. -find "$meltingPotDir" -name pom.xml | - while read pom -do - mv "$pom" "$pom.original" && - sed -E -e 's_(https?://maven.imagej.net|http://maven.scijava.org)_https://maven.scijava.org_g' \ - -e 's_http://maven.apache.org/xsd_https://maven.apache.org/xsd_g' "$pom.original" > "$pom" || - die "Failed to adjust $pom" -done - -# HACK: Make component POMs extend the same version of pom-scijava -# being tested. This reduces dependency skew for transitively inherited -# components that were not managed at the time of that component release. -find "$meltingPotDir" -name pom.xml | while read pom -do - perl -0777 -i -pe 's/(\s*org.scijava<\/groupId>\s*pom-scijava<\/artifactId>\s*)[^\n]*/${1}999-mega-melt<\/version>/igs' "$pom" -done - -sectionEnd # Adjusting the melting pot: component POMs - -sectionStart 'Adjusting the melting pot: melt.sh script' - -# HACK: Skip tests for projects with known problems. - -mv "$meltScript" "$meltScript.original" && -sed 's_\s*"$dir/build.sh"_\ -# HACK: If project is on the skipTests list, then skip the tests.\ -buildFlags=-Djava.awt.headless=true\ -grep -qxF "$f" $dir/skipTests.txt \&\& buildFlags=-DskipTests\ -\ -& $buildFlags_' "$meltScript.original" > "$meltScript" && -chmod +x "$meltScript" || - die "Failed to adjust $meltScript" - -sectionEnd # Adjusting the melting pot: melt.sh script - -sectionStart 'Adjusting the melting pot: unit test hacks' - -# Remove flaky tests. - -# CachedOpEnvironmentTest fails intermittently. Of course, it should be -# somehow fixed in imagej-ops. But for now, let's not let it ruin the melt. -rm -f "$meltingPotDir/net.imagej/imagej-ops/src/test/java/net/imagej/ops/cached/CachedOpEnvironmentTest.java" - -# In org.janelia.saalfeldlab.n5.metadata.ome.ngff.v04.WriteAxesTests.testXYT: -# java.util.NoSuchElementException: No value present -rm -f "$meltingPotDir/org.janelia.saalfeldlab/n5-ij/src/test/java/org/janelia/saalfeldlab/n5/metadata/ome/ngff/v04/WriteAxesTests.java" - -# Avoid notNull assertion error at -# org.janelia.saalfeldlab.n5.universe.metadata.MetadataTests.testEmptyBase(MetadataTests.java:346) -rm -f "$meltingPotDir/org.janelia.saalfeldlab/n5-universe/src/test/java/org/janelia/saalfeldlab/n5/universe/metadata/MetadataTests.java" - -# In org.janelia.saalfeldlab.n5.zarr.ZarrCachedFSTest.cacheBehaviorTest: -# arrays first differed at element [0]; expected:<[a]> but was:<[c]> -rm -f "$meltingPotDir/org.janelia.saalfeldlab/n5-zarr/src/test/java/org/janelia/saalfeldlab/n5/zarr/ZarrCachedFSTest.java" -# Note: The above test is fixed with saalfeldlab/n5-zarr@e7edcec3, -# but the fix is only available in n5-zarr 2.0.0-alpha-1, and we -# do not want to update the SciJava BOM to the alpha version. - -# In sc.fiji.labkit.ui.plugin.CalculateProbabilityMapWithLabkitIJ1PluginTest.test: -# Macro Error: "probability map for blobs.tif" not found in line 4 -# selectImage ( <"probability map for blobs.tif"> ) ; -# java.lang.RuntimeException: Macro canceled -# at ij.macro.Interpreter.error(Interpreter.java:1403) -# at ij.macro.Functions.selectImage(Functions.java:3225) -# at ij.macro.Functions.doFunction(Functions.java:136) -# at ij.macro.Interpreter.doStatement(Interpreter.java:280) -# at ij.macro.Interpreter.doStatements(Interpreter.java:266) -# at ij.macro.Interpreter.run(Interpreter.java:162) -# at ij.macro.Interpreter.run(Interpreter.java:92) -# at sc.fiji.labkit.ui.plugin.CalculateProbabilityMapWithLabkitIJ1PluginTest.test(CalculateProbabilityMapWithLabkitIJ1PluginTest.java:65) -rm -f "$meltingPotDir/sc.fiji/labkit-ui/src/test/java/sc/fiji/labkit/ui/plugin/CalculateProbabilityMapWithLabkitIJ1PluginTest.java" - -# Skip testing of components with non-working tests. - -# java.lang.AssertionError -# at org.scijava.minimaven.BasicTest.testClassifiers(BasicTest.java:216) -echo "org.scijava/minimaven" >> "$skipTestsFile" || - die "Failed to generate $skipTestsFile" - -# Error while checking the CLIJ2 installation: null -echo "sc.fiji/labkit-pixel-classification" >> "$skipTestsFile" || - die "Failed to generate $skipTestsFile" - -sectionEnd # Adjusting the melting pot: unit test hacks - -# Run the melting pot now, unless -s flag was given. -doMelt=t -for arg in "$@" -do - if [ "$arg" = '-s' ] || [ "$arg" = '--skipBuild' ] - then - doMelt= - fi -done -if [ "$doMelt" ] -then - echo - cd "$meltingPotDir" - sh melt.sh - meltResult=$? - - # Dump logs for failing builds and/or tests. - for d in */* - do - test -d "$d" || continue - - # Check for failing build log. - buildLog="$d/build.log" - if [ -f "$buildLog" ] - then - if grep -qF 'BUILD FAILURE' "$buildLog" - then - echo - echo "[$buildLog]" - cat "$buildLog" - fi - fi - - # Check for failing test logs. - testLogsDir="$dir/target/surefire-reports" - if [ -d "$testLogsDir" ] - then - find "$testLogsDir" -name '*.txt' | - while read report - do - if grep -qF 'FAILURE!' "$report" - then - echo - echo "[$report]" - cat "$report" - fi - done - fi - done - - # Terminate the script with same exit code if the melt failed. - test "$meltResult" -eq 0 || exit "$meltResult" -else - echo && - echo 'Melting the pot... SKIPPED' -fi - -# Complete! -echo -echo 'All checks succeeded! :-D' From 2745c4059a1ebfc8437d3337e7759597c4c86741 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Mon, 1 Jun 2026 14:58:10 -0500 Subject: [PATCH 33/33] pombast: remove overridden MaMuT badge It confirms to standard naming now. --- pombast.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pombast.toml b/pombast.toml index 36035129..fe0c8e8d 100644 --- a/pombast.toml +++ b/pombast.toml @@ -891,9 +891,6 @@ last-vetted = "20230309000000" ci-build = "build-main" last-vetted = "20230309000000" -[components."sc.fiji:MaMuT"] -ci-build = "build-main" - [components."sc.fiji:Manual_Tracking"] ci-build = "build-main" last-vetted = "20230309000000"