ace-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcel Offermans <marcel.offerm...@luminis.nl>
Subject [DISCUSS] Moving the build to BndTools
Date Thu, 28 Jun 2012 08:37:31 GMT
Hi all,

When ACE entered the incubator a few years ago, we were using a highly customized Ant based
build. At that time, as a community we decided that it would be easier to get started with
ACE if we moved the build to Maven.

Now, I think we have arrived at a point where we need to revisit that decision and consider
moving to BndTools [1].

Probably the biggest reason for migrating from Maven to BndTools is to speed up and simplify
development. In case you're not familiar with BndTools, it is an Eclipse plugin that provides
an OSGi development environment based on Bnd. Compared to other environments, it is really
fast. As soon as you hit "save" on one of your source files, a new version of your bundle
is created and deployed, making any changes almost "instant". Bundles themselves are defined
using "bnd" files and the plugin provides nice editors for those, as well as many different
abstractions to talk to external repositories through OBR. There are many other advantages,
such as tooling to help us correctly use semantic versioning throughout our project and easy
ways to run and debug different bundle configurations. Headless builds are supported, as are
unit and integration testing. An interesting twist is that deploying directly to ACE itself
is also supported, so we as a project integrate nicely with this environment.

Another reason to move is that it could make our release process a lot simpler. Recent discussions
within Apache about what constitutes an official release have emphasized that only source
releases are "official" Apache releases and that those are the ones we should vote on. Afterwards
we can obviously still make binary releases available, and I think in the case of ACE we should.
During our releases in the incubator we have tried to strike a balance between doing "big
bang" and "component" releases, setting up everything in such a way that we could do both.
This has proven to be very complicated and doing releases was painful. With BndTools we can
create one source archive that can be used "out of the box" to build everything and since
this embeds all bundle and package versions we can decide to only bump those if something
actually changes. For convenience we can then still provide both separate artifacts for Maven
as well as shrink-wrapped binaries that can be used out of the box.

So, the main point I'd like to discuss is, what is your view on moving to BndTools?

Greetings, Marcel

[1] http://bndtools.org/


Mime
View raw message