On 07/15/11 08:44, Stefan Bodewig wrote:

<snip>

> I don't really see how Maven or Ant would fit if the only integration to
> their flagships is by spawning a new process (or maybe run the scripts
> in VM using Jython, I don't know).
> 
> To me it sounds as if you are looking for a home for "a bunch of scripts
> we use around the release process".  Something we don't really have, so
> a new TLP seems more appropriate - if we have and keep the momentum.
> This new TLP would likely be more focussed on users that are expected to
> use trunk versions of the scripts than to have releases - no realy end
> users at all, this is quite similar to Gump.

Yes, quite similar to Gump to some ways but let me explain my thinking a
little more...

Some use cases (I think distinct) [1]

[Release Review]
* Comprehension - discovering and understanding what's there
* Audit - account for contents
[Build accounting for exceptions to general rules]
* Verification - check that new exceptions are intentional
* Documentation - describe exceptions

To take a recent example (from over in James-land)

  I discovered (assisted by comprehension tooling) that some
  jars were missing OSGi bindings. To ensure this issue was
  fixed, I needed to determine every jar with this problem
  and conform that they were fixed when the release was
  re-rolled. Going forward, adding verification rules
  to the build would catch this problem before release.

Reviewers of releases are under time pressure and care only about a
special case. For build time verification tools, releases are essential
and regression is high impact. Adding overly specific rules to
verification tools causes maintenance problems.

It's become clear to me that trying to resolve these competing needs
within a single code base is difficult. IMHO the right way forward is to
flow new rules down: comprehension -> audit -> verification ->
documentation (-> generation), and that's why I'm very keen on building
a single, language agnostic community.

To continue the example

  I recently added comprehension scripting for META-INF to eye,
  reporting on the contents of the META-INF in each jar. But
  checking this report manually is time consuming and error
  prone. So, next I'll add an audit report to print violations
  of a couple of suitable rules. These rules might need some
  refinement iterations. Once they work well for me, I'll
  set some time aside to talk to the community about the
  best way to support them in build-time verification.

Robert

[1] leaving out smart generation use cases eg license application and
legal document generation

Reply via email to