On Mon, 27 Mar 2023 at 06:24, Daniel Macks <dma...@netspace.org> wrote:
>  Could you clarify the nature of the API instability?

0.9.x -> 0.10.0 is a big break. Some early adopters were able to port
to 0.10.0 with no/few questions. There's currently no 0.9.x -> 0.10.0
migration guide. We could still try to make one but that depends on
time availability. The goal for 0.10.0 -> 1.0.0 is to reach a stable
API: I expect breakings to be smaller and we should definitely report
API breakings during the process. Because of the nature of C++, ABI
stability is a non goal.

> The usual library approach is that backward-incompatible interface changes 
> would jump to .2. and successive.
>

Maybe you followed our recent discussion about SONAME/SOVERSION in the
ML, maybe not: what you suggest is exactly what we want to happen.
Summarizing the previous discussion, this is what you get with 0.10.0:

libpodofo.so -> libpodofo.so.1
libpodofo.so.1 -> libpodofo.so.0.10.0
libpodofo.so.0.10.0                # The actual library

That is the result of setting CMake target property VERSION[1] to
"0.10.0", similarly to what was done before in 0.9.x, and setting
SOVERSION[2] to "1", in what is a semantical change compared to 0.9.x
(before it was matching the VERSION property). We'll make sure the
SOVERSION property is incremented each time the ABI breaks.

Regards,
Francesco

[1] https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html
[2] https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html


_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to