On 6. 8. 25 10:51, Daniel Sahlberg wrote:
Den ons 6 aug. 2025 kl 10:16 skrev Branko Čibej<br...@apache.org>:
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.
Good catches, thanks. I'll have a look.
My initial goal is to regenerate the file Andreas previously to verify I'm
doing it right. Then incrementally improve it, taking these points into
consideration. Finally adding 1.3.10 and current trunk.
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.
Better than current state I'd say. I'll look at what is missing and try to
add these.
There are several places with ### in the docstrings, these need review.
Some of them are developer notes that should be recoreded some other
way. I know there are some functions that have a docstring but without
the proper /** */ comment format, those just need an extra * to make
them work.
-- Brane
Cheers,
Daniel
Cheers,
Daniel
[1]https://serf.apache.org/abi/timeline/serf/index.html
[2]https://lists.apache.org/thread/v58msct774q2bc6p7l3qnocgtnp7qf7n