Re: [OpenDaylight Discuss] Hydrogen Stable Release Proposal

Luis Gomez

Agree with Omar, although it is not perfect, it is the best solution I can think to accommodate both: work on more stable controller and provide a place for new people to contribute with new ideas and projects

On May 6, 2014, at 1:53 PM, Omar Sultan (osultan) <osultan@...> wrote:

So, as a nascent project, I think there is a balance point in there between eliminating the technical debt, and maintaining forward momentum for the project and providing a place for folks to come and do cool new things.

The compromise was to use the Stable Release to clean up Hydrogen, then use Helium as the vehicle for new projects. Granted, the process has not been ideal, but I would chalk that up to project growing pains. The dialog on these lists would seem to indicate we have a better handle on how to structure things moving forward.


Sent from my iPad

On May 6, 2014, at 1:30 PM, "Moiz Raja (moraja)" <moraja@...> wrote:

I agree that we should not incur further technical debt. I don't want a single new feature to be added to Helium. We should fix what is broken and make Helium for the lack of a better word a "stable" release. All I am questioning is the need for producing a Hydrogen stable release.

Next time around let's NOT release till we are stable. That is the best way to avoid the problems we are in.

From: Omar Sultan (osultan)
Sent: Tuesday, May 06, 2014 12:41 PM
To: Moiz Raja (moraja)
Cc: Ed Warnicke (eaw); Chris Wright; <discuss@...>; tsc@...
Subject: Re: [OpenDaylight Discuss] [OpenDaylight TSC] Hydrogen Stable Release Proposal

So, I think the road to software hell is paved with such intentions, that we will fix things in the next release. My experience is the shiny new stuff gets more attention then fixing and documenting the old stuff.

If we have accumulated some technical debt, it would prefer we clear it and have something clean and stable that folks can use for a basis for Helium. Otherwise, it seems to me like we are starting work on the second story of house when the walls are still wobbly on the first floor.


Sent from my iPad

On May 6, 2014, at 12:21 PM, "Moiz Raja (moraja)" <moraja@...> wrote:

An honest question. Why do we need to do a stable release for Hydrogen? Wouldn't it be just easier to get to Helium and thereafter make sure that we start doing stable releases. It seems like we're using more energy in creating the stable release than what it's worth. AFAIK Hydrogen itself was a developer-only release (or atleast that's what it turned out to be) so we do not have any customers waiting for our fixes.

my 20 cents,

From: discuss-bounces@... [discuss-bounces@...] on behalf of Ed Warnicke (eaw)
Sent: Tuesday, May 06, 2014 10:22 AM
To: Chris Wright
Cc: <discuss@...>; tsc@...
Subject: Re: [OpenDaylight Discuss] [OpenDaylight TSC] Hydrogen Stable Release Proposal

On May 5, 2014, at 10:55 PM, Chris Wright <chrisw@...> wrote:

* Ed Warnicke (eaw) (eaw@...) wrote:
Trying to replay the sequences of patches, across all of our (12 I believe) projects with various
interdependencies between them has proven to be a herculean task, particularly in light of global
timezones and Jenkins verifies/merges. Lots of projects are getting wedged on other projects
as they attempt to cherry pick down historical patches to a relatively new stable branch.
Please be more specific. What issues, which projects, where are the
Sure… controller has been blocking almost daily on some issues or other related to
yangtools (either it played forward to fast, or it needs to catch up).

I’ve talked to the openflowplugin guys who are having blocking issues with synchronization
with controller.

Add timezone delays and Jenkins verify and merge delays… and everything slows to a crawl.

Mostly folks have been busy trying to solve these issues as they arise… making progress not reporting it...

It appears to me that the root issue is attempting to replay the past.
To resolve this I would suggest that we adopt the following tact:

1) Projects (if they so desire) pull their stable branches from a current point in time (today,or
if it takes us a while to discuss this a little later this week).
2) Projects update their versions to append the -1-SNAPSHOT (we’ve done this already in our first attempt
at this).
3) Projects revert the patches inappropriate for a stable branch (I think most projects have done the triage on this,
so its just a bit of doing, and since most projects have put almost all of their effort on master into bug fixing, is a much
smaller number of things).
4) Going forward we follow Chris’s recommendation to commit *new* bug fixes first to master and then (if appropriate)
to stable (such double committing should be done contemporaneously so we don’t fall back into needing to replay the past).

This should allow us to get unwedged on the ongoing ‘replay the past’ problem and get down to testing and hardening
the stable release.

I think you risk trading one problem for another and in a few weeks back
to where we are now.
I don’t think so… the fundamental problem is replaying the past, and the fact that we are
playing back a large number of bug fixes from the past to avoid a small number of non-bug fixes. And that introduces (unsurprisingly
when you think about it) a large number of ordering issues. At current rate of process, I suspect we would take
months of stop start stop start stop start trying to replay the past… with this approach I suspect we could
pull today, and revert the few patches that need reverting over the course of a week or so and get onto focusing
on hardening the release.

Think of it this way… we have a time ordered stream of patches, some of which depend on each other.
Those time ordered streams get distributed across our 12 projects in Hydrogen. This goes on for hundreds of patches,
all but tens of them bug fixes appropriate for stable.

Then we pull the stable branch and try to put humpty dumpty back together again. We still have hundreds of patches
to replay, in the correct dependency order, across 12 projects… and tens to exclude. Some projects get ahead, and thus
other projects can’t verify. Some projects are behind, and thus other projects must then coordinate and block waiting for them
to catch up.

When you look at what is actually implied by the current approach (the full problems of which were not immediately obvious to me until we
started hitting them)… I’m actually amazed we aren’t more blocked than we are.

The proposal is quite simple… come to a state we know is currently working (now), and revert the tens of patches that are not appropriate
to stable and proceed with the double commit strategy for things that need to go into stable going forward. Much smaller surface area to create difficulty.
Much fewer issues. From down here in the trenches its a much smaller chance of hitting these kinds of issues again.

Its basically putting us on the footing we would have been if we adopted the original plan *at the time of Hydrogen Release* instead of months later
when we had hundreds of patches worth of past to figure out how to replay in the right order.

To date there are exactly two stated issues:

1) bgpcep relying on config-manager change in controller as captured in Bug 903.
2) ovsdb relying on some unspecified change in controller
There have been way more than this… but as mentioned above, folks have been focused
on solving those problems rather than reporting them. Rather than filing bugs and reporting status
folks have been working on solving the problems and getting unblocked.

This is not "lots" it's only two. So either there are "lots" in which
case we need real details (and we have a very fundamental issue that
projects are not speaking up), or it's only two in which case we may
be able to work through those two issues.
Again, when you are closer to the code, and have your hands deeper in getting folks unblocked… you see


Discuss mailing list
Discuss mailing list
Discuss mailing list

Join { to automatically receive all group messages.