+1 for stable API. Untill now, we have been doing major changes to the API in every release. I think with 1.5, we have come to a state that we can call the exposed APIs to be fairly stable. Hence, I believe, we could base our future APIs on 1.5. Even if we want to change after 1.5, it is advisable to give a lot of thought on backward compatibility and deprecating before obsoleting.
As far as version numbering goes, well I just dont feel its the right time to discuss this - there are better things to do - like fixing 100+ issues in Jira :) Anyway, we cannot compare a C++ project to a Java project - given the complexities involved in the language itself. Thanks, Samisa... On Wed, 19 Jan 2005 14:49:58 -0600, Nadir Amra <[EMAIL PROTECTED]> wrote: > I think we need to come to a point where we think the public APIs are > solid. At that point in time, we should avoid changing the public APIs > unless absolutely necessary in order to avoid customers having to rebuild > their applications. > > Changes/enhancements to the engine itself should be OK, and I really do > not have an opinion whether it should be in a point release or major > release. However, I do think we should use point releases in the future > for fixes, platform support, etc. > > But the code base is continuously being enhanced and fixed, so I am not > sure when would be a good time to go to the release/versioning model. > > I do think we are moving through the major releases too fast....but not > sure what can be done about it..... > > "Lilantha Darshana" <[EMAIL PROTECTED]> wrote on 01/19/2005 02:22:00 PM: > > > According to this comment it seems like you suggest to have a > > flexible versioning model that aid us changing > > to public interfaces as we wish and would like to do lot more > > interface changes in most of our releases. > > This mean we do not have a good public API design at our hand at > > this moment. i.e. even after > > we have released 1.4 of the code. additionally it realize me that we > > need lot more changes in next couple of > > releases as well. This is a question about maturity of the public API. > > > > Even though, this comment say ppl are happy about the model of this > > public API change. > > In reality I would say that each time we change our public API > > anybody who wish to get esp. defect fixes > > and internal enhancements, need moving to next version and they > > should *always expect a incompatibility* of > > the integrated APIs. This should be measured from the perspective of > > resources, time, complexity and cost. > > > > Consider following example scenario which is realistic: > > if a customer uses 1.a of the axis and they have a webservices > > running on production server, and they are > > experiencing problem due to a defects in 1.a of the code. Imaging > > that resources who originally integrated axis > > into their product has left the company. Assume that their current > > development team inquired with apache > > axis site and have found that this defect has been fixed in 1.b of > > the code and suggested moving to 1.4. > > > > However, assume that in 1.4 we have made some changes to public API > > as well. This mean that, they need > > changing their code (to reflect new API changes in 1.4) and test > > this changed code with 1.4 release when > > they move. This also introduce a down time for their production > > server as well until the defect get fixed. And > > is not a cost effective transition. > > > > This scenario shows that in reality this is not a happy situation > > for any one. In contrast if we had a minor+point > > version, and had that defect fixed in those minor/point version, > > customer would have seamlessly moved to the > > defect fixed version and could have gain advantage of the minor > > enhancement done in the new version without > > even touching their code and just by a configuration change. (of > > cause with some minor testing) > > > > Considering above facts and lots of other reasons let me elaborate > > my proposal little more: > > > > Major releases signify significant changes to the library and > infrastructure. > > Developers may perform a major release if there have been > > substantial improvements > > to the component. Developers must perform a major release whenever > > the new release > > is not - at least interface-compatible the previous release. > > (We can relax on this hard rule little bit, by customizing this > > according to our need )- > > This mean clients need lot of code changes for them to use new > > version. To adhere to this > > model we need to work on a better/improve our design on public APIs. > > Ideally, when we > > publish and documents this API we should not change it until at > > least for the next major > > version. Although we can discuss this and customize as we wish. > > > > Minor releases signify enhancements to a component that do not > > necessitate a major release. > > Developers may perform a minor release if the release is at least > > external-interface-compatible > > with the previous release. In other words, whenever a client depends > > upon at most the external > > interface of a component with a given minor release, it will work > > with all subsequent minor releases > > within that major release. This does not refrain us been releasing > > new APIs keeping already > > published APIs intact. > > > > A point release typically involves simple bug fixes or optimizations > > that do not introduce new features. > > Developers may perform a point release if the release is at least > > interface-compatible with the previous > > release. In other words, whenever a client depends upon a component > > with a given point release, it > > will work with all subsequent point releases within that minor release > > > > Additionally we shall have alpha, beta, rc versions as currently we > have. > > > > > > I haven't heard from others, please provide your thoughts & suggestions? > > regards, > > -Lilantha > > -----Original Message----- > > From: John Hawkins [mailto:[EMAIL PROTECTED] > > Sent: Friday, January 14, 2005 5:11 AM > > To: Apache AXIS C Developers List > > Subject: Re: Proposal - release versioning and branching model. > > > > > I understand your concerns but I don't think we should get too hung > > up on this. > > > > If we look back at previous MINOR releases then it's usually had > > changes to the API. Thus should of actually been a candidate for a > > MAJOR release according to the model you are proposing, if I read it > > correctly. Even in this release which was supposed to me a bug fix > > release (thus a candidate for a POINT release) we have changed the > > Call interface and changed the names of the dlls as well as creating > > a NEW library model - no small changes ! > > > > I think what we're doing now is fine. As long as we make it quite > > clear, on the WIKI or release notes, what has changed. > > > > I think people seem to understand the quality and function of the > > code we have. > > > > -1 to changing what we do now - I think we are correct. > > > > > > John Hawkins > > > > > > > > > > > "Lilantha Darshana" <[EMAIL PROTECTED]> > > 13/01/2005 21:11 > > > > Please respond to > > "Apache AXIS C Developers List" > > > > To > > > > "axis \(E-mail\)" <axis-c-dev@ws.apache.org> > > > > cc > > > > Subject > > > > Proposal - release versioning and branching model. > > > > > > > > > > Hi All, > > I was thinking about the maturity scale of the Axis C++ compare to > > axis java and others. > > It seems like we move very fast in our release versioning and does > > not make much > > progress on the maturity scale of the project. Now we are going to > > release version 1.5. > > However, compare to axis java we are far behind in features, > > stability etc. in contrast > > axis java is in its 1.2RC yet. Where it has released it 1.1 on June > > 16, 2003, and has > > taken more than 1.5 years for releasing 1.2. (same goes with 1.0) > > Of cause, axis java is in its 3rd phase since IBM originally hand > > over it to apache > > and it has comes a very long way. I hope c++ version of axis can get > > all the experiences java version under went and can start from there to > grow. > > i.e. learn from experiences. > > Concerning these things, I would propose of having a process on > > release versioning. > > We can learn from other projects how they do it. For an example > > Jakarta-commons > > release versioning scheme . > > http://jakarta.apache.org/commons/releases/versioning.html > > and version numbering > > MAJOR.MINOR.POINT > > Where defect fixes and minor changes we release with 'Point' > > releases and minor enhancement > > go in Minor versions. API changes, architectural changes go in > Majorversions. > > These enhancements should be categorized and finalized in each > > version depends on the > > priority and feasibility. > > Further to this there should a proper process of selecting cvs > > branches for each releases. > > regards, > > -Lilantha >