Frantisek Zatloukal wrote:

> On Thu, Jul 20, 2023 at 11:58 AM Peter Robinson <pbrobin...@gmail.com>
> wrote:
>> You can evolve APIs with versioning to ensure backwards compatibility
>> while also evolving the usecases.
> 
> Well, this is exactly the case, isn't it? You have dnf4/dnf5, all nice and
> versioned.

It is not. Versioning would mean DNF 5 would support both the DNF 4 and the 
DNF 5 API in parallel, e.g., with namespaces (e.g., import dnf4 vs. import 
dnf5 in Python), prefixed symbol names (e.g., dnf4_* vs. dnf5_* in any 
programming language, even in C where namespaces are not natively 
supported), or ELF symbol versioning (but that makes it hard to compile 
against the compatibility API, symbol versioning is mostly designed for 
runtime binary compatibility), so that code using the DNF 4 API would still 
get the DNF 5 implementation for free, with no porting effort.

What you are doing is providing a compatibility library, which should be the 
minimum standard when a library breaks binary compatibility (because 
otherwise everything not yet ported will just be broken), but is not the 
same as actually providing versioned APIs in the library.

        Kevin Kofler
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to