On 17/08/18 15:30, Jean-Baptiste Onofré wrote:
> Hi Robert,

Hello JB,

> thanks for your feedback, and I fully agree with you.
> 
> For the release, it's largely my fault for 4.2.1: I wanted to include
> too much fixes, upgrades and new features. My bad, and apologize for
> that. That's why I wanted to propose to reduce scope of the releases and
> do it on a regular pace, much more predictable to users/devs like you.
> 
> For the changes, we are now much more "strict" in the changes we are
> doing. Any breaking changes is not allowed on a minor release.

That is absolutely fantastic.

> For the documentation, we started a huge work on this one. You can
> already see the user guide is largely better than before IMHO. Now the
> target is on the dev guide and related examples.

Awesome, that will help us immensely.

> I see your point the way you are "packaging" the features. Any reason
> why you don't manage your features repository by hand ?

There are couple of reasons for that, actually, some of which may be
historical, but have gotten us where we are. Given the history, there is
reluctance to do another big migration unless the outcome is guaranteed
to work and be easier to use than we have now.

The first problem comes from the fact that OpenDaylight is a collection
of projects, each with its own release cycle and versioning. Each of
them focuses on a problem area -- so to get OpenDaylight "core" you need
to assemble 4 projects, for "platform" it is 6-8 projects and the Karaf
distro available for download contains something like 16-20 projects.
The end result needs to be version-converged, obviously.

Hence we need to communicate versions between projects and retain strong
version requirements. This is done through bill-of-material poms
published by an upstream project and ingested by downstreams as a
scope=import dependency. We therefore need to pick up versions used in
features -- and use of properties is not an acceptable solution.

To address this, we used to have hand-written feature.xml templates,
which we processed with a rather arcane script
(https://github.com/opendaylight/odlparent/blob/stable/lithium/features-parent/pom.xml#L75).

The second problem is that the developers found it somewhere between
unfriendly and downright hostile, as features did not "just work", but
tended to fail on our SFT with a bundle resolution error of various
complexity -- ranging from simple missing imports to rather arcane class
mismatches, depending what sort of mistake the dev made.

Normal folk get scared by these and if they cannot solve them easily
they just walk away. When this is coupled with the unfamiliar paradigms
used in OpenDaylight proper, this can easily lead to the perception that
OpenDaylight/Karaf is not something mere mortals can use :(

Our hope was that we could solve this usability problem by resorting to
generated features during our migration to Karaf-4.0.x. This has the
problem of massive over-inclusion, resulting in features which
explicitly pull in bundles observed at compile-time, even when those
bundles are provided in a feature somewhere else. The generated features
are ugly, but 95-99% of the time they Just Work(tm). This allows people
to get started quickly, with the features getting eventually cleaned up.

Over the course of past of two years we (well, mostly Stephen Kitt) have
contributed the missing bits to the karaf plugin and configured our
build system in ways which make this work reasonably well.

Now we are coming to complete the circle, where for some projects we are
considering hand-written features, but to justify that migration, we
need solid documentation on how to use features to their full extent.

Even then, though, the main challenge remains: how can we on-board a
developer, who has never heard of OSGi nor features, so she can work on
their code rather than to going through a bootcamp of OSGi/Karaf pain :(

> Anyway, 4.1.6 has been released and 4.2.1 will be on vote tonight.
> Starting for there, I will send the release agenda with a release every
> two months for both Karaf Container but also the subprojects.

Great, we are targeting both those versions for inclusion in our current
release trains. I am looking for those agenda emails!

Thanks,
Robert

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to