Hi Folks,
I'd like to start a discussion around how we maintain various branches
(features vs bug-fixes), releases from various branches - stability,
release schedules etc.

This is how I look at the current active branches.
branch-0.7 - Mainly gets bug-fixes.
branch-0.8 - Targets improvements to external service integration
(TEZ-2003), bug fixes
master (0.9) - Gets everything for now.

Feature development is not at the same pace that it has been in the past.
The main features being worked on actively at the moment are
TEZ-3209(Handling skewed data without ordering requirements) and TEZ-2104
(CrossProductEdge), and UI enhancements.

Downstream projects typically need a released version to integrate with
(projects don't want to depend upon a SNAPSHOT in their main branches).

For 0.9, I think it will be useful to adopt a model where features are
added in point releases (the third digit changes). Also, make release more
often - on a schedule - every 1.5-2 months, when a feature reaches a
logical conclusion, and as and when required.
The main features for these releases would be TEZ-2104, TEZ-3209, UI, and
additional TEZ-2003 changes. Addition of more features can be discussed as
required - i.e. whether to continue landing them on 0.9 or create the next
'major' version. Bug fixes, would go into all active branches.

One thing we'll have to be careful about is to not destabilize the master
branch. Half done features are OK - but anything which could destabilize
the branch and needs multiple jiras to stabilize would be developed in a
branch (so that release can continue off of master).

The release notes which go out with a release can call out the new features
in various 0.9 releases, and there level of stability.

We can create a release from 0.9 once at least some set of features have
gone in. Meanwhile, external services continues to evolve via 0.8 releases
(Will create a new release later this week).


Thoughts?

Thanks,
Sid

Reply via email to