db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <rick.hille...@oracle.com>
Subject Re: Maven debug and source artifacts for Derby
Date Thu, 03 May 2012 19:52:55 GMT
Thanks for starting this conversation, Kristian. Here's my $0.02:

I see a number of issues here:

1) An impedance mismatch between the Derby and Maven concepts of release 

2) The bewildering number of Derby release artifacts today.

3) A request for different Derby release artifacts.

4) A request for a source Maven artifact.

Just to be clear, I think we should try to drive our release process 
toward producing fewer artifacts, not more.

------- Impedance Mismatch Between Derby and Maven ----------

For Derby, a release artifact is a zip (or tar) ball containing a 
complete system of jar files which cohere with one another. For Maven, a 
release artifact is a single jar file which can be mixed and matched 
with other jar files at different rev levels. The two world views 
diverge at a very high level:

a) For Derby, jar files are children of version numbers

b) For Maven, version numbers are children of jar files

I don't know how we go about bridging this gap. The Maven model allows 
for mixing Derby jars from different versions, something which we don't 
generally allow. Maybe there is a way in Maven to declare that the 
version numbers of derbynet.jar and derby.jar must agree.

------- Bewildering Number of Derby Release Artifacts ----------

IMHO we already produce too many Derby artifacts. Do we really need bin 
and lib artifacts? Do we really need zips and tarballs? I'd be happy 
with zip-only artifacts representing the following:

i) Source (I believe this is the only artifact required by Apache)

ii) Docs, templates, and demos

iii) Bin (executable code, including jars and shell scripts)

iv) Debug-bin

That's 4 artifacts rather than the 8 we produce today (remember, we're 
deprecating the Eclipse bits).

-------  Different Derby Artifacts ----------

There's a request to produce an artifact which is half-way between our 
bin and debug-bin artifact, viz., executable code which includes line 
numbers but no assertions. How much extra value does this add?

I think this would provide extra information for heisenbugs which don't 
have repros, but in my experience we don't make much headway on those 
bugs, with or without line numbers.

For bugs which have repros, we (the Derby developers who do almost all 
of the bug fixing around here) see the line numbers as soon as we run 
the repro, because we're all using sane builds in our sandboxes.

So who is this new artifact for? Are there other developers out there 
who would be contributing fixes back to the community if we provided an 
artifact with line numbers? These would be people who would take the 
time to script, debug, and fix an issue. To do this, they would need to 
download the source distro or set up a subversion client on one of our 
branches. But they wouldn't be willing to download a debug distro.

-------  Source Maven Artifacts ----------

I don't have any objection to providing a source Maven artifact for the 
purposes described by DERBY-5668. Does the source artifact need to be in 
some special format to be usable by IDEs?


View raw message