[asterisk-dev] Tension between trunk and release branches
Dan Austin
Dan_Austin at Phoenix.com
Thu May 31 11:17:15 MST 2007
Tony wrote:
> As I mentioned in my thread about a proposed new
> Meetme feature, there is an interesting tension
> between release branches and trunk, which I don't
> think has ever been adequately addressed:
This is mostly a 'me too' response
> a) People running production systems will naturally
> want to run a release branch, not the trunk. Trunk
> is used to test out new features, changes to
> architecture, etc., and is fine for "pure" developers,
> e.g. those at Digium whose job it is just to work on
> new features for the general enhancement of Asterisk.
> b) Most people deploying Asterisk in the field develop
> new features because they have a customer need to run
> that feature in a production system. Therefore they
> develop it for themselves on a release branch, such as
> 1.2 or 1.4. This is certainly what I do.
> c) On submitting such a feature to Mantis, it only ever
> gets accepted into trunk, and so the originator has to
> "forward-port" it to trunk, and also keep maintining his
> own backport until such time as trunk becomes a new
> release branch. It then still takes a long time until
> the release branch is bug-free enough to run in
> production systems.
If you can even get it looked at...
> d) How can the above points be addressed? It seems we need
> a mechanism to add non-invasive extra features to a
> production-quality branch after they have been sufficiently
> tested. By "non-invasive", I mean features that are
> effectively just clean additions without making
> architectural changes to Asterisk as a whole. All the
> dangerous completely-break-it-then-fix-it changes would
> still be done in the "experimental" trunk. (Yes, I know
> that team branches are used nowadays for many initial
> developments before they are ready for trunk).
Not sure. The whole concept of "non-invasive" is hard to
quantify. The recent DTMF rework was needed and valid.
On the surface it even appeared relatively non-invasive.
But it broke chan_skinny, and the channel has remained
broken for two 1.4 releases. The issue was truly a problem
with how the channel collects digits to place a call and
the proper fix was to change how the channel performed that
function. The resulting change is not "non-invasive", yet
I am not sure there is a better way to repair the channel.
I coded the fix against branches/1.4, and another user
ported it to Trunk. Both need it, but which should get it
first....
> Thoughts?
Sadly I think it would require a team of capable developers
to spend time evaluating the "invasive-ness" of each change.
I say sadly, as their time would likely be better spent coding.
Dan
More information about the asterisk-dev
mailing list