On 6. 8. 25 09:44, Daniel Sahlberg wrote:
Hi,
Does anyone have notes on how the ABI Timeline on the website[1] was
created?
Never been there.
I'm trying to recreate it and after fighting with different distributions
trying to build all historic versions, I believe I've managed to do it
(using Debian 8 to get an old-enough Python), but I'm not able to generate
a webpage.
The goal of the above was to generate a new list of public APIs that has
changed - in particular to get an idea of the new APIs in trunk (=>upcoming
1.5).
Looking at the ABI tracker, I see some issues: first of all, the SONAME
is wrong pretty much everywhere. It combines the actual SONAME and the
major version. It would be better to have two columns, the library base
name (e.g., serf-0, serf-1, serf-2) and the SONAME (0, 1, 2), which is
the actual compatibility version of the shared lib. For example, in
'libserf-1.1.dylib', the SONAME is the '.1.' part not the '-1.1.' part.
It is also not true that we've removed a public API in trunk, I'm not
sure where that came from.
This is possibly an artefact of the comparison, the header diff shows an
unnamed public struct "removed" and replaced by "struct serf_databuf_t",
but it's the same structure.
Another problem is that in some cases, whatever generated this also
compared serf_private.h and then reported a 90.3% backward compatibility
... serf_private.h is not a public header and has no effect on the ABI.
Second question is to generate a public API documentation, similar to
Subversion's. It seems Jim Jagielski asked about this a few years ago[2]. I
have thought about borrowing Subversion's doxygen config and just try to
generate something based on this to add to the website. Thoughts?
We can use Subversion's or APR's config, yes. The Doxygen markup isn't
complete, but should be good enough, I suppose. I suggest generating
only the latest version of each supported branch, so that would be 1.3.x
and maybe trunk for the curious.
Cheers,
Daniel
[1]https://serf.apache.org/abi/timeline/serf/index.html
[2]https://lists.apache.org/thread/v58msct774q2bc6p7l3qnocgtnp7qf7n