Hi Daniel. Your argument makes sense. Daniel Shahaf wrote: > To be concrete, I propose that we have exactly two kinds of public APIs: > > [[[ > - Standard public APIs are supported through the end of the major > release line (1.x, 2.x, etc) they appear in. > > - Experimental public APIs are named svn_x_* and are supported through > the end of the minor release line (1.11.x, 1.12.x, etc) they appear > in. A particular API may make stronger promises in its docstring, but > not weaker. (If we ever need to make even weaker a promise than this, > APIs covered by it should be in a different namespace.) > > Experimental public APIs may be graduated to non-experimental status > at any minor release. > ]]]
I would like to add, after a brief IRC discussion with brane and yourself: - Each experimental public API SHOULD also have the "SVN_EXPERIMENTAL" function decorator (where applicable) and the "@warning EXPERIMENTAL" Doxygen tag. (These MUST NOT be used on a standard public API.) - The 'svn' command-line UI SHOULD also use an "x-" prefix for subcommands (and "--x-" for options). However it MAY also supply aliases without the prefix. > And I further propose that we implement this convention on the 1.11.x > branch before 1.11.0. I will prepare a patch, but not commit it until we have waited a bit longer for consensus, and I will get ready to roll another RC. -- - Julian