[armedbear-devel] Maven & ABCL

Alessio Stalla alessiostalla at gmail.com
Wed Feb 9 20:36:18 UTC 2011


On Fri, Feb 4, 2011 at 12:48 PM, Alessio Stalla <alessiostalla at gmail.com> wrote:
> when I understand better how the whole [Maven] release process works, I'll
> report here with more information.

Ok, so I experimented a bit with Maven and the free Sonatype
repositories. To do a release, you need to produce the jar,
sources-jar, and javadoc-jar of your project, and sign them with a gpg
key. You then have to publish them to the repository; doing it (i.e.
signing + publishing) with Maven is probably the easiest thing,
although there's a way to do it with Ant too (but you have to have
additional Maven Ant tasks installed on your system). As a bonus, you
can ask your repository to be automatically synced to Maven Central,
making it super easy for Maven users to use your project. The release
must be manually confirmed to be migrated from the "staging"
repository to the "public releases" repository; this is the only
non-automatic step. The full process is detailed here:
<https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide>

As far as I can tell, no special format is *required* for the sources
and javadoc jars, although the ones generated by Maven of course have
a precise format: basically the packed src directory for sources, and
the packed doc root directory for javadocs (you can see an example
here: <https://oss.sonatype.org/content/repositories/releases/com/googlecode/ehcache-spring-annotations/ehcache-spring-annotations/1.1.2/>.
ABCL doesn't have many javadocs, and anyway those are certainly not
the main part of the documentation; but the javadoc jar is required
and, if it follows the convention, it can be automatically picked up
by Eclipse when you add ABCL as a Maven dependency.

Morale: this is not terribly complicated, and it would make ABCL
available through another distribution channel. OTOH, I can't hide the
fact that - besides my own personal convenience for my shared project
- probably no-one is using ABCL in Maven projects right now, and
having ABCL released through Maven would complicate its release
process, not much for technical reasons but for organizational ones
(e.g. who keeps ABCL's GPG key? How is it managed?).
So, if you accept Maven release to be an official step in ABCL's
release process, that would be great for me and I could of course help
in setting it up, solving issues etc. Else, if you're ok with it, I
can publish ABCL on Sonatype's repo on my own, without making it part
of our official release policy; that means less hassle for ABCL, but
more risk of stale Maven releases and other problems caused by having
the release depend on a single person (of course I'll take the release
seriously, but still, depending on a single individual is always
problematic). The third option is NOT to release ABCL with Maven at
all: if you think that it would hurt ABCL, either by complicating the
release process too much, or by having too high a risk of out-of-date
releases out in the wild, I will accept that.

Let me know of your opinions.

Bye,
Alessio




More information about the armedbear-devel mailing list