Move fast, use experimental APIs to not break stable things

Remi Forax <[email protected]> Mon, 14 May 2018 12:18:35 +0200 (CEST)
Newsgroups gmane.comp.java.objectweb.asm
Message-ID <[email protected]>
Hi all,
as you all know, the release cadence of the JDK has changed and we have troubled to keep with the pace of the changes, our main issue is that we are currently not able to provide a version of ASM to test the changes of a release, by example test the changes of the jdk 11 before the jdk 11 is at least in the release candidate state.

So we are moving into a rolling release model (or a feature flag release mode if you prefer), starting with ASM 6.2 (to be released soon), we introduce the concept of experimental APIs which as you can predict are API classes/methods/fields that are experimental and may be introduced in the next release (ASM 7) or in a later release if a feature is pull out from one JDK to be included in the next one.

To be able to use those APIs, we introduce a new flag, ASM7_EXPERIMENTAL, that you pass as as argument when you create a visitor, this flag is deprecated and will be removed when we will be released ASM7 (a new experimental flag ASM8_EXPERIMENTAL will be created at that point). All API points introduced will be suffixed by the String "Experimental" and deprecated to make clear that those are experimental feature APIs not part from the stable API.
Furthermore, by default, ASM ClassReader will always support the current unreleased JDK, which means that a the time of the release of ASM7, ASM7 will support the jdk12 version even if it doesn't support all the feature of the jdk12. This will enable people to test the new jdk without having to wait a release of ASM.

From the development point of view it means that implementation of features will not be stuck in a particular branch and that we will be able to commit a feature into the master under the experimental feature flag of the moment. We also hope to have more people testing those experimental APIs.

So, ASM 6.x will support all the jdk11 features as experimental APIs and when the jdk11 release candidate will be out, we will release ASM 7 that will froze all the features that are really in jdk11, ASM 7.x will also in the future support all the features of the jdk 12 as experimental API.

Obviously, you may disagree, in that case, please speak now if you have a good reason for us to not follow this new model.

regards,
Rémi


-- 
You receive this message as a subscriber of the [email protected] mailing list.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws