API stability is borderline critical for a project like VPP I think. Yes, it 
can be used stand-alone, but real value is added by building products on top of 
it.

Also important is having an API framework that allows for backward-compatible 
changes to the API for making improvements.

I'm not sure if VPP has the latter, but if there's too much pain with your 
proposed rules I think the latter should addressed rather than sacrificing the 
former. So I support your rules.

Thanks,
Chris.

> On May 14, 2020, at 8:28 AM, Ole Troan <otr...@employees.org> wrote:
> 
> Andrew and I have discussed a process around API changes with the goal to 
> limit the impact on VPP consumers.
> One big painpoint in tracking VPP releases for users of the VPP binary has 
> been API changes.
> 
> We want to ensure:
> - A production API never changes.
> 
> - A production API can be deprecated with one release notice.
> E.g. show_version_2 is introduced in 20.01 and show_version_1 is marked as 
> deprecated.
> show_version_1 is marked with "option delete_by = "v20.05";
> 
> - APIs marked as experimental / not released can change with no notice.
> Added support for option status = "in_progress";
> 
> This patch:
> https://gerrit.fd.io/r/c/vpp/+/26881
> 
> has a tool "crcchecker" that we intend to run as part of the verify job.
> It will block modifications to existing production APIs.
> make checkstyle-api
> It also supports dumping API manifests and make API comparisions across 
> releases/revisions/commits.
> 
> A production API is defined by having .api semantic major version > 0.
> New messages can override that by setting status="in_progress".
> 
> The consequence of this is that developers must maintain two (or more) 
> versions of an API for some time.
> This is obviously painful, but at least it aligns cost and benefit better 
> than when we forced the API users to do it.
> 
> Looking back from 17.01 onwards, it looks like we on average have done about 
> 50 backwards incompatible changes per release.
> That's ignoring the work on API typing, which have resulted in significantly 
> more changes.
> 
> The hope is that we can start v20.09 development with this process in place.
> 
> What do people think?
> 
> Best regards,
> Ole

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#16381): https://lists.fd.io/g/vpp-dev/message/16381
Mute This Topic: https://lists.fd.io/mt/74203477/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to