Community
Participate
Working Groups
I was testing 0.23.0 "update-pom" (which, we run before the main build, do update the artifact version to the bundle version, if different) and the build failed with "Working tree is dirty" exception. This is because we set -Djgit.dirtyWorkingTree=error on the command line of the main build. I'm a little surprised we've not hit this before, since we've had the strict checking since 4.4 M3, and, I'd swear we have had a few builds, since then, that resulted in a "POM Update Required" message. It *might* be because I was using a feature as my test case, instead of a bundle ... or, my guess, is that the "checking" has become better in 0.23.0? (in either Tycho, or JGit?) = = = = = In any case, they are conceptually mutually exclusive goals, in any build. So, we will either have to stop using update-pom plugin, or, count "dirty tree" as a warning. My recommendation is to stop checking for "update-pom", and, if they are "out of synch", the build will simply fail at that point. My reasoning is that in the beginning, this was a very handy function, since we made that mistake often. but, now that we are more used to Tycho/Maven, and (I hope) more people are using the releng tool, with the checking done in the IDE, we do not seem to have that error hardly ever. This "bug" is simply to decide which path to take (i.e. everything is working as designed).
I do not think any change in our process is needed here, after all. I did some more testing, and for both 22 and 23, a *feature* that has a pom update applied, will trigger the dirty tree error (when set to "error"). BUT, *bundle* "pom update" with NOT trigger the "dirty tree" error, and instead we can post our usual "pom update required" message, like we always have. I guess we've never had a problem with features, before, so never noticed, this difference in behavior.
Igor, CC'd you on this bug just for your awareness, if you didn't already know. If you are surprised, or concerned, feel free to pursue, but as far as I am concerned, this difference between bundles and features -- and the interaction of pom updater, and dirty tree detection -- is not important enough to open a bug or require a 'fix' (though, not sure what a 'fix' would be, and why there is a difference, or if it implies anything else to you, such as maybe "dirty tree" is not working as expected)? Again, just letting you know. No action required.