Please familiarize yourself with existing jclouds versioning scheme,
which I will summarize.

Thanks for putting this together, Gaul! Maybe it's just me, but I get a feeling we're actually having two discussions at once here, and it might make sense to split them:

1. We can make life easier for our users (and new committers!) by better documenting our deprecation policy and release cadence. 2. Does our current deprecation policy and versioning scheme make sense, and do we want to change them?

From what I can see, the former discussion is not really contentious. I'm pretty sure users will not automatically *look* at the deprecation policy, and I think good Javadocs are much more critical here. But it's something we can refer to in release notes and point to for new committers, and so I think it would be useful.

Publishing a release cadence also seems like a no-brainer: users have repeatedly asked for this, and I think minor releases at 6-week intervals seemed acceptable.

The second topic is more contentious. My take is roughly that the debate is essentially "benefit in terms of predictability of sticking with the current scheme" vs. "benefit of moving to a different scheme that is probably more widely adopted elsewhere". Or, looked at a slightly different way, "predictability for existing users vs. predictability for new users".

I don't recall seeing any direct user requests or questions in this area, so I personally find it harder to come down on either side of this debate at this point.

My suggestion would be:

1) We document the release cadence and deprecation policy as it is *right now*. We have to decide on a place for that, but the Wiki seems as good a place as any. We already have [1] and would then need to add a Release Cadence/Roadmap page. For the version numbers in the Roadmap, we would stick with the current scheme or simply say "MAJOR" and "MINOR" with something like "(provisionally 2.1.0)" or so next to the versions.

2) We continue the discussion about *modifying* the deprecation policy and versioning schemes as needed:

a) removing deprecated code in MAJOR+2 vs. MAJOR+1 as currently
b) moving from MAJOR = X.Y.0, MINOR = X.Y.Z to MAJOR = X.0.0, MINOR = X.Y.0, PATCH = X.Y.Z

Regards

ap

[1] https://wiki.apache.org/jclouds/DeprecationAndBetaPolicy

Reply via email to