On Sun, Sep 16, 2018 at 12:30:24PM +0000, Daniel Shahaf wrote:
> Thanks for elaborating on that, Greg.  I agree that the scenario you
> describe is something we should design to prevent.
> 
> In a nutshell, I think the point is that we promise ABI forward
> compatibility should deliver that even for experimental entry points.

I'm starting to wonder what the point of public experimental APIs really is.
They seem to just muddle up our simple public API rules for no good reason.

It seems to actual goal here is to encourage third party authors to integrate
experimental features in their clients for users to test. Is there more to it?

What about just making such APIs private and available under include/private?
There is no technical reason why third party clients would be unable to link
those functions into their program if they wish to. The private nature makes
it very clear that these APIs cannot be relied upon after upgrades.

That model is very simple to understand so I would encourage us to not
invent anything else if there is no urgent need. So far, I don't see how
adding more exceptions and rules to our API guidelines improves anything.

Note that our own 'svn' client is already calling private APIs:

shelf-cmd.c:      
SVN_ERR(svn_client__get_diff_summarize_callbacks(&diff_processor,
shelf-cmd.c:      SVN_ERR(svn_client__get_diff_writer_svn(
shelf-cmd.c:  SVN_ERR(svn_client__shelf_diff(shelf_version, "",
util.c:  err = svn_client__assert_homogeneous_target_type(targets);

Reply via email to