trakem2 / TrakEM2

ImageJ plugin for morphological data mining, 3D modeling and image stitching, registration, editing and annotation.
https://imagej.net/TrakEM2
GNU General Public License v3.0
30 stars 32 forks source link

Enable maven-enforcer-plugin again #10

Closed hinerm closed 9 years ago

hinerm commented 9 years ago

Updated to pom-fiji 6.1.3, which allows the maven-enforcer-plugin to be used again.

ctrueden commented 9 years ago

Rock on. You are a paragon of integrity and honor!

ctrueden commented 9 years ago

@axtimwalde To briefly explain: @hinerm updated the requireReproducibleBuilds rule to be smarter about multi-module builds. It now only fails if there are SNAPSHOT couplings outside the reactor. This should be particularly helpful in ensuring well-formed "release commits" are always done.

Now the only thing left to do is to turn on the deployAtEnd flag in the maven-deploy-plugin configuration. Otherwise, malformed release commits could result in partial releases.

axtimwalde commented 9 years ago

Thanks a lot. I assume that you've tested the build. But I do not understand anything starting at "reactor" (you don't mean the thing in nuclear power plants right?). What of all this is Jenkins related and what else is to be observed? Sorry for being dumb.

ctrueden commented 9 years ago

@axtimwalde: Sorry, "reactor" is a term referring to a multi-module build. Saying something is "within the reactor" means that it is part of that build. So for example, in TrakEM2, the TrakEM2_ component depends on VectorString at the version given in pom-trakem2. If the version of VectorString declared in pom-trakem2 matches the version of VectorString declared in VectorString/pom.xml, then the TrakEM2_ component's dependency on VectorString is "within the reactor" in that it references that same version. But if those two version numbers get out of sync, then TrakEM2_ will depend on a different version of VectorString than the one being built during the multi-module build. And if that dependency version is a snapshot, then the build will be irreproducible (since Maven will try to download the snapshot from the remote repository, and the state of that snapshot is subject to change).

Now I throw the ball to first base, whoever it is drops the ball, so the guy runs to second. Who picks up the ball and throws it to What. What throws it to I Don't Know. I Don't Know throws it back to Tomorrow---a triple play.

All clear now???

axtimwalde commented 9 years ago

Klar wie Kloßbrühe! Thanks @ctrueden!