v2.1.0
Five years to the day [1] after launching Babeltrace 2.0 “Amqui”, we're
releasing Babeltrace 2.1 “Brossard”! 🎉
BACKGROUND
━━━━━━━━━━
The DiaMon Workgroup [2] worked on the CTF 2 specification [3] from 2016
until its publication in March 2024.
CTF 2 is a major revision of CTF 1.8 [4], bringing many improvements,
such as:
• Using JSON text sequences [5] for the metadata stream.
• Simplifying the metadata stream.
• Adding new field classes (bit array, bit map, boolean, LEB128 [6],
BLOB, and optional) and improving existing ones.
• Supporting UTF-16 and UTF-32 string fields.
• Using predefined roles instead of reserved structure member names to
identify meaningful fields.
• Adding the attribute and extension features to extend and customize
the format.
EfficiOS [7] is the primary organization driving the development of both
the LTTng [8] and Babeltrace projects. As of this date, the LTTng
project intends to add CTF 2 production support soon, potentially
enabling the addition of new features that aren't currently possible due
to the limitations of CTF 1.8. Consequently, it seemed important to us
that Babeltrace support this format and that it be released before any
tracer officially adopts CTF 2.
Although the visible impacts for CLI users are quite minimal, adding
CTF 2 support to the project required a significant amount of work on
the core library (libbabeltrace2) and, consequently, on all the
components of the project that depend on its C API, directly
or indirectly:
• The Python bindings API.
• All the official plugins, especially ctf.
• The command-line interface.
Of course, the documentation and testing of all those components were
also updated and improved.
REFERENCES
━━━━━━━━━━
[1]: https://babeltrace.org/docs/release-notes/babeltrace-2.0.0-release-notes.html
[2]: https://diamon.org/
[3]: https://diamon.org/ctf/
[4]: https://diamon.org/ctf/v1.8.3/
[5]: https://datatracker.ietf.org/doc/html/rfc7464
[6]: https://en.wikipedia.org/wiki/LEB128
[7]: https://www.efficios.com/
[8]: https://lttng.org/