Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tracecompass-dev] Master branch: 2.0 or 1.1 ?

Hi Alex (and others)

Yes, the main issue is that we expose to many APIs which don't need to be API especially in the UI. The core parts (e.g. tmf.core) are usually in a much better shape. I'm not debating the clean-up for the Neon release. I think everybody is on the same page to have Trace Compass 2.0 for Neon. One thing we have to make sure that the clean-up is done early (soon) and not postponed. Otherwise we end-up in the same discussion after Neon.

Working on 2 branches with 2 different baselines are always challenging, no matter which baseline is for master and which one is not. Ideally we would work with only one baseline and on master. But that's not the reality.

What I'd like to achieve is to have new features available for Mars SR1 and SR2. Right now we already added some nice (smaller) improvements to the Events Table which I'd like to have in SR1/SR2 and not only in Neon. Some others in the pipeline would be great to have also in SR1/SR2 like dependency analysis or virtual machine analysis view (hopefully it's possible with the current API).

Please keep in mind that often user like to work with released versions and not work on a nightly build. Released versions tell them that there were some kind of quality assurance. Nightly builds might be unstable. We are used to work with such instabilities, but not everybody is. Especially, if they have to work in tight deadlines. They don't have time to deal with these issues and might not use Trace Compass then. We are not ready for continuous deployment. We at Ericsson are working on increasing the test coverage during CI but we are not there yet for continuous integration. Too many manual test cases every release. Increasing test automation should be an effort across companies involved in Trace Compass.

What I would like to avoid is also that people change the API for new features because it's easier to do so or because something is not using the latest cool thing. Changes in APIs should make sense and should add value. We should try to work with the existing APIs as much as possible.

At last I think that which option we decide to go, all committers from every company should work on getting valuable releases 1.x and 2.0 for the sake of the overall project and it shouldn't just be one company's responsibility. 

When making our final decision we need to thing what would be the least work for us to achieve the points above.

/Bernd


On 06/15/2015 03:55 PM, Alexandre Montplaisir wrote:
Hi Bernd,

As I pointed out in the other sub-thread, because we expose so many APIs, I feel we are not in a very comfortable position right now to commit to adding many features without bumping the major version. Doing so would mean a lot of IThing2 workarounds, and that's if we are even able to do so.

We've been asking ourselves this very question every cycle for the last 3-4 cycles now. At some point we will have to bite the bullet and do a major API cleanup, which will then allow us to commit to a more stable API. But, of course, such cleanup is an API break in itself...
No matter what branch 2.0 is, we should try to fit the cleanup at some point within this cycle, so that at the same date next year, we don't have to jump to 3.0 right away like we do now.


I agree with Marc-André, that normally master represents the "latest". Here's an idea: instead of the stable-1.0 branch, we could start a new "stable-1.x" branch, possibly after the chain of move-to-subdir patches, so that we can continue to cherry-pick easily. We've tried the merge workflow the past 3 times, maybe we can give the cherry-pick workflow a try this time? (those patches could bypass Gerrit to make it simpler, just like the merge conflicts resolution also bypassed Gerrit the last few times)

Thoughts?

Alex


On 2015-06-15 03:25 PM, Bernd Hufmann wrote:
Hi Alex

I have a similar concern as Marc-Andre. If we aim for 2.0 in master right away (option 1), my concern is that Mars SR1 won't get much attention and new features won't be included in SR1. Developers tend to not backport them to older release baselines. That means that users of Trace Compass who rely on released versions (not nightly builds) would have to wait till June 2016 to get these features. I'm not sure how we can make sure that certain features and bugfixes would be in SR1 and later SR2 if we go with option 1. Any thoughts?

Bernd


On 06/15/2015 01:14 PM, Marc-André Laperle wrote:
Hi Alex,

The way I see it, the major difference between 1) and 2) is which version do we perceive as our main focus and what we want the community to see as the main focus. Contributors just clone and start working on master. I think for us (at least at Ericsson?) the main focus is 1.1. If master is 2.0, there are some concerns that people will not take care of backporting everything of value to 1.1 and the SR1 release will be light on content. But I do like the simplicity of master being "the latest and greatest" with everything permitted. I'm not sure it's enough counter weight to the risk of not having a feature rich 1.1.

Marc-Andre

________________________________________
From: tracecompass-dev-bounces@xxxxxxxxxxx [tracecompass-dev-bounces@xxxxxxxxxxx] on behalf of Alexandre Montplaisir [alexmonthy@xxxxxxxxxxxx]
Sent: Friday, 12 June 2015 11:03 AM
To: tracecompass-dev@xxxxxxxxxxx
Subject: [tracecompass-dev] Master branch: 2.0 or 1.1 ?

Hi all,

Branching off (pun intended) the discussion here to talk about our
branching strategy for SR releases and Eclipse Neon.

  From the way I see it, we basically have 2 options:
1) Bump master to 2.0 right away, allowing API breaks all around. Then
build the SR releases from the stable-1.0 (which would rather become a
stable-1.x) branch.
2) Bump master to 1.1, and build SR releases from there. Since You Can't
Stop Progress (tm), this would imply having to create a -neon branch,
which could contain API breaks, and to which we would regularly merge
from master.

I am strongly in favor of option 1). We used the option 2) workflow back
in Linux Tools for about one full release and a half, and it was a
*major* *pain*.

To show how limiting it is to not allow API breaks in master, consider
this : 1.0 is not even released yet, and we already have such API breaks
in master!
(About this, I recommend to all contributors to setup their 1.0 baseline
in their workspace, so that they can be made aware of these breaks. It
is now much easier to do, thanks to targets-as-baselines. I have updated
the instructions to do so at [1].)
So if we were to go with 2), we would have to rectify this first.

Thoughts, comments?

Cheers,
Alex


[1]
https://wiki.eclipse.org/Trace_Compass/Development_Environment_Setup#Define_an_API_baseline
_______________________________________________
tracecompass-dev mailing list
tracecompass-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/tracecompass-dev
_______________________________________________
tracecompass-dev mailing list
tracecompass-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/tracecompass-dev


_______________________________________________
tracecompass-dev mailing list
tracecompass-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/tracecompass-dev



Back to the top