Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ajdt-dev] Feedback requested: AJDT versioning

I agree with Martin on the API point to the extent that there should be binary compatibility for the minor versions.

I don't think that the 1.x version number is seen as 'immature' any more than I really think that Mylyn is mature due to it being v3.1 or TPTP being better than YourKit cos it's a higher version.

I do think there's a legacy relating to the JDKs and AJ versioning, which isn't that helpful and it would be more informative for an IDE tool for it to relate to it's JDT counterpart.

I think we should increment major versions when the user would expect them, for example:
- an indication to new users that there is something new, worthy of being in a New and Noteworthy document (i.e. 3.5 has N&Ns, but 3.4.2 naturally doesn't).  I think we should increment the major number when that changes (the change to the JDT weaving would therefore have been 1.6.x -> 1.7.  In AJ, the intro of @DeclareMixin would have equally been a notable change).
- an indication of API changes.  I think this is more of an issue for AJ than AJDT, although I guess it would be good to be able to be able to update AJDT core without updating the cross refs view etc.  I suspect those should update independently really.


In addition, let's look backward and forwards:

We could have had a major version change when the weaving service was introduced.  As far as I understand, it was a significant change to the API for people adopting AJDT, but probably more important to them would have been the change in documentation.  We should ensure that AJ and AJDT are UI and API-predictable for adopters.

I would be interested to hear feedback from people working on MyEclipse, JBuilder, and other Eclipse-based IDE distros.  So far, it seems that no-one has done anything to annoy any of them, but that probably means that neither is building commercial products on top of AJDT.

Most significant in terms of adopters is probably SpringSource's commercial offerings, which I've heard we have connections to ;) 

I'd suggest that Spring give some input of requirements. 

Going forwards, I think it would be good, both with AJ and AJDT to have some ability to push new API and even have some risk of breaking someone's use of assumed API.  An example I discovered is the change I'd like to see on the weaveinfo messages.  That change would impact Spring users, and it's something I'd consider part of clarifying the API to, in that case the AJ weaver.

While it may be a bit more overhead for the build management, I think it would be good to create the room to be bolder.  To a great extent, I'd say that AJ and AJDT only operate a maintenance branch, where the e3.5 code during the last year ought to be something that stimulates more adventurous input.

Perhaps a good aim for e4 would be to release AJDT builds with the milestone builds, from an advanced branch.

In that respect, it seems that defining the API more rigorously would help.  Perhaps it's worth doing a bug triage, and tagging [api] to get a sense of what we may be holding back on due to breakage concerns.

I think we could and should be bolder and look to the long term with the e3.5 stream, especially in preparation for e4, were I see no reason not to expect significant changes in IWorkspace, IWorkbench, IProject etc.  Minimally for e4, I hope to be seeing native support in JDT for test source and output folders, and support for flexibility in the location of .project .settings etc.  These will impact AJDT.

As for 3.4 vs 3.5, that's a challenge.  What are the plans after 3.5 is released?  Will the 3.4 release (i.e. 1.6.x as currently stands) get new features back ported, or just requested bug fixes for people stuck on an old release until MyEclipse, JBuilder, Rational etc update to 3.5?

Cheers,

Neale
















On 22/04/2009 07:47, Martin Lippert wrote:
Hi!

Just a thought that came into my mind when reading through this: Traditionally the versioning schema is somehow related to API compatibility. So changing only the minor version number means to have binary compatibility, changing the major version means to break compatibility. Haven't thought about what that means to the options you presented, but maybe this provides some guidance...?!?

Just some thoughts,
-Martin


Andrew Eisenberg wrote:
Hi all,

Because of the major changes that have occurred in AJDT over this last
year, we are considering bumping up the major version number soon.
This would most likely be for around the release of Galileo in late
June.  This change in versioning would symbolize a new level of
maturity of AJDT

However, before deciding on a new versioning scheme, we'd like to
discuss the options with the community and come up with something that
is indicative of AJDT's maturity, but at the same time would not be
confusing to new or existing users of the tool.


Option 1:
Next AJDT for Eclipse 3.4 becomes AJDT 2.0
Next AJDT for Eclipse 3.5 becomes AJDT 3.0  (was AJDT 1.7)

Benefits: this gives us a lot of room to increment AJDT's minor
version numbers for 3.4, and we can continue to increment the major
version every year for the next release of Eclipse
Disadvantages: breaks away from the tradition of incrementing minor
versions in step with Eclipse and micro versions throughout the year.
Could be confusing for existing users.  Also, AJDT 3.0 would not be
significantly different from 2.0 (in fact they should be mostly the
same except for changes specific to Eclipse 3.5).

Options 2:
Next AJDT for Eclipse 3.4 becomes AJDT 2.6.6
Next AJDT for Eclipse 3.5 becomes AJDT 2.7.0

Benefits: continues with the tradition of keeping minor versions in
step with Eclipse minor versions

Disadvantages: What happened to 2.0 and to 2.5?  Could be confusing
for new users.

Option 3:
Keep as is
Next AJDT for Eclipse 3.4 becomes AJDT 1.6.6
Next AJDT for Eclipse 3.5 becomes AJDT 1.7.0

Benefits: Each version of AJDT is only an incremental improvement over
the last one, and so perhaps bumping up the major version is not
justified.

Disadvantages: AJDT has changed significantly over the past year, that
perhaps this is justified.

Your input on this issue is greatly appreciated.  Also, other
possibilities will be considered if someone suggests them.


thanks,
--a
_______________________________________________
ajdt-dev mailing list
ajdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ajdt-dev


_______________________________________________
ajdt-dev mailing list
ajdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ajdt-dev

Back to the top