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