<div dir="ltr"><div><div><div><div><div><div>Hi all,<br><br> I wanted to share a brief case study on the current dependency skew of ImgLib2-algorithm-related components.<br><br> Last week, an <a href="https://github.com/imglib/imglib2-algorithm/commit/e1460f140a0b03554fcb6f3d14ca43362d7d86a5">innocent-looking commit</a> was merged into imglib2-algorithm. It then made its way into a patch release of imglib2-algorithm, and <a href="https://github.com/imagej/pom-imagej/commit/d28f954494f76898d80296b168b5352238d25915">patch release of pom-imagej</a>. Unfortunately, even a trivial package move like this is actually a breaking API change, and both the component and pom releases should have incremented a major version to indicate this.<br><br></div> Further, pom-imagej now declares a set of components that are incompatible with each other - as components downstream of imglib2-algorithm are not updated to use the new packages. Thus if these libraries were consolidated (e.g. to upload to Fiji), there would be hit by dependency skew.<br><br></div> For those interested, there are two possible solutions:<br><br></div>1) Track down all uses of the old packages, update them, cut releases, update pom-imagej.<br></div>or<br></div>2) Add deprecated, trivial extensions of the moved classes back to the old locations, which can then be removed at a later date.<br><br></div> Naturally, #2 is much simpler and thus looking more attractive right now. :) Either way, developers should be aware of the current problems with pom-imagej 5.12.3 and 5.13.0 (the latter also points to an unreleased ij1-patcher, due to incompatibilities with ImageJ 1.49p - so certainly don't use that one).<br><br><div><div><div><div><div><div><div><div> Our versioning practices are on the wiki: <a href="http://imagej.net/Architecture#Versioning" target="_blank">http://imagej.net/Architecture#Versioning</a> but please let us know if anything is unclear or hard to find.<br><br></div><div> The burden of manually accounting for SemVer changes is hopefully one we will soon be free from. For now, it's just something we have to consider whenever we cut releases.<br><br></div><div>Best,<br></div><div>Mark<br></div></div></div></div></div></div></div></div></div>