Skip to content

Pre-Release API Review #9

@gselzer

Description

@gselzer

The API has been greatly narrowed with #7, and I am currently planning to limit the API further by only exposing top-level packages in #8, but I'd like more eyes on the API before any releases. We should consider:

Whether the API is navigable and self-explanatory

One motivation for #7 was that I found the API to be confusing - similar functionality existed in multiple classes, each in different directories, without sufficient documentation to describe the benefits of the different implementations. I tried making that clearer with docstrings, but I'm not sure whether it is enough. I don't want to bikeshed forever here, but some refactoring with the input of others would be beneficial.

Whether the API is sufficient for our use cases

@ctrueden was kind enough to compile a (mostly correct, by his admission) list of some projects that use imglib2-ij (sorted by number of imports) - we should ensure transition to imglib2-imagej is seamless:

      1 3d/sciview-docs
      1 clij/clij-custom-convolution-plugin
      1 clij/clij-ops
      1 clij/clijx
      1 clij/clupath
      1 fiji/Graph_Cut
      1 fiji/Kappa
      1 flimlib/flimj-ops
      1 imagej/example-android-app
      1 imagej/imagej-modelzoo
      1 imagej/imagej-notebook
      1 knime/knip-stitching
      1 mastodon/mastodon-ellipsoid-fitting
      1 napari/napari-imagej
      1 sj-stuff/bigdataviewer-selector
      1 sj-stuff/Hadim_Scripts
      1 sj-stuff/ijp-imagetoatlas
      1 sj-stuff/imglib2-icy
      1 sj-stuff/mars-swing
      1 sj-stuff/pendent-drop
      1 sj-stuff/stardist-imagej
      1 trackmate/TrackMate-Ilastik
      1 training/i2k2020-imglib2-advanced
      1 training/i2k-2020-pyimagej
      2 3d/sciview
      2 bigdist/BigDistributor_DesktopApp
      2 clearvolume/imglib2-clearvolume
      2 clij/clij
      2 clij/clij-bdv
      2 clij/clij-benchmarking-jmh
      2 fiji/Correct_3D_Drift
      2 fiji/fiji
      2 fiji/fiji.github.io
      2 fiji/FilamentDetector
      2 fiji/legacy-imglib1
      2 imagej/imagej-ui-swing
      2 imglib/imglib2-realtransform
      2 knime/knip-externals
      2 knime/knip-scijava-bundles
      2 mastodon/mastodon
      2 mastodon/mastodon-collection
      2 n5/n5
      2 n5/n5-imglib2
      2 sj-stuff/deepimagej-plugin
      2 sj-stuff/mars-core
      2 sj-stuff/mobie-io
      2 sj-stuff/PHANTAST-FIJI
      2 sj-stuff/SAMJ-IJ
      2 trackmate/TrackMate-MorphoLibJ
      2 trackmate/TrackMate-Weka
      3 bigdist/BigDistributor-core
      3 clij/clicy
      3 clij/clij2-tests
      3 clij/clij-mandelbrot-example
      3 clij/clij-notebooks
      3 fiji/MaMuT
      3 fiji/simplified-io
      3 imagej/imagej-common
      3 n5/n5-utils
      3 n5/n5-viewer
      3 openspim/SPIMAcquisition
      3 science/bigcat
      3 sj-stuff/CircleSkinner
      3 sj-stuff/ilastik4ij
      3 sj-stuff/ImgLib2Access
      3 sj-stuff/Interactive-H-Watershed
      3 sj-stuff/LimeSeg
      3 sj-stuff/metaseg
      3 trackmate/TrackMate-Cellpose
      3 trackmate/trackmate-core
      3 trackmate/TrackMate-StarDist
      3 training/imagej-legacy-course
      4 bigdist/Dbio_headless
      4 bioimage-io/JDLL
      4 clij/clij2-fft
      4 fiji/blockmatching
      4 fiji/Trainable_Segmentation
      4 imagej/imagej-scripting
      4 sj-stuff/SAMJ-BDV
      4 trackmate/TrackMate-Oneat
      4 trackmate/TrackMate-Skeleton
      4 trakem2/TrakEM2
      5 bdv/bigdataviewer_fiji
      5 bdv/bigdataviewer-playground
      5 clij/clij-docs
      5 ctrueden/sandbox
      5 fiji/Image_Expression_Parser
      5 imagej/presentations
      5 n5/n5-spark
      5 sj-stuff/mobie-viewer-fiji
      6 clij/clij-boofcv
      6 fiji/Colocalisation_Analysis
      6 fiji-ext/z-spacing
      6 fiji/Stitching
      6 imagej/tutorials
      6 imglib/imglib2-blk
      6 sj-stuff/bigdataviewer-biop-tools
      6 sj-stuff/BigTrace
      7 3d/bigvolumeviewer-core
      7 bdp/bigdataprocessor2
      7 clij/clij-core
      8 openspim/micro-OpenSPIM
      9 3d/scenery
      9 imagej/ops-experiments
      9 sj-stuff/jipipe
      9 sj-stuff/MoMA
      9 sj-stuff/multiview-simulation
     11 bigdist/BigDistributor
     11 imagej/imagej-legacy
     11 trackmate/TrackMate
     12 imglib/imglib2-algorithm
     12 sj-stuff/BigStitcher
     12 sj-stuff/imagejfx
     12 sj-stuff/JEX
     12 sj-stuff/labkit-pixel-classification
     14 mia/mia
     14 sj-stuff/image-analysis-notebooks
     15 imagej/imagej.github.io
     16 knime/knip
     16 sj-stuff/SNT
     18 fiji-ext/bigwarp
     18 imglib/imglib2-introductory-workshop
     18 imglib/imglib2-www
     18 n5/n5-ij
     18 sj-stuff/fun.imagej
     23 sj-stuff/labkit-ui
     24 fiji/SPIM_Registration
     26 imglib/imglib2-advanced-workshop
     26 sj-stuff/RS-FISH
     26 training/learnathon-2019
     28 imglib/imglib2
     37 imglib/imglib2-tutorials
     39 sj-stuff/multiview-reconstruction
     46 sj-stuff/hot-knife
     60 training/learnathon-2017
     63 imglib/imglib2-tests
     69 imglib/imglib2-ij
     76 sj-stuff/MTrack

Other concerns?

cc @ctrueden @tpietzsch

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions