linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] tools lib traceevent: How to do library versioning being in the Linux kernel source?
@ 2020-01-02 17:20 Steven Rostedt
  2020-01-02 18:42 ` Arnaldo Carvalho de Melo
                   ` (3 more replies)
  0 siblings, 4 replies; 25+ messages in thread
From: Steven Rostedt @ 2020-01-02 17:20 UTC (permalink / raw)
  To: Sudip Mukherjee
  Cc: Ingo Molnar, Arnaldo Carvalho de Melo, Jiri Olsa, Namhyung Kim,
	Masami Hiramatsu, Linux Trace Devel, LKML, Linus Torvalds

First, I hope everyone had a Happy New Year!

Next, Sudip has been working to get the libtraceevent library into
Debian. As this has been happening, I've been working at how to get all
the projects that use this, to use the library installed on the system
if it does exist. I'm hoping that once it's in Debian, the other
distros will follow suit.

Currently, the home of libtraceevent lives in the Linux kernel source
tree under tools/lib/traceevent. This was because perf uses it to parse
the events, and it seemed logical (at the time) to use this location as
the main source tree for the distributions.

The problem I'm now having is that I'm looking at fixing and updating
some of the code in this library, and since library versioning is
critical for applications that depend on it, we need to have a way to
update the versions, and this does not correspond with the Linux
versions.

For example, we currently have:

 libtraceevent.so.1.1.0

If I make some bug fixes, I probably want to change it to:

 libtraceevent.so.1.1.1 or libtraceevent.so.1.2.0

But if I change the API, which I plan on doing soon, I would probably
need to update the major version.

 libtraceevent.so.2.0.0

The thing is, we shouldn't be making these changes for every update
that we send to the main kernel. I would like to have a minimum of tags
to state what the version should be, and perhaps even branches for
working on a development version.

This is a problem with living in the Linux source tree as tags and
branches in Linus's tree are for only the Linux kernel source itself.
This may work fine for perf, as it's not a library and there's not
tools depending on the version of it. But it is a problem when it comes
to shared libraries.

Should we move libtraceevent into a stand alone git repo (on
kernel.org), that can have tags and branches specifically for it? We
can keep a copy in the Linux source tree for perf to use till it
becomes something that is reliably in all distributions. It's not like
perf doesn't depend on other libraries today anyway.

Thoughts or suggestions?

Thanks!

-- Steve

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2020-01-07 17:44 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-02 17:20 [RFC] tools lib traceevent: How to do library versioning being in the Linux kernel source? Steven Rostedt
2020-01-02 18:42 ` Arnaldo Carvalho de Melo
2020-01-02 23:46   ` Steven Rostedt
2020-01-02 22:43 ` Sudip Mukherjee
2020-01-03 23:19   ` Steven Rostedt
2020-01-07 13:15     ` Namhyung Kim
2020-01-02 23:49 ` Jiri Olsa
2020-01-02 23:58   ` Steven Rostedt
2020-01-03  0:09     ` Sudip Mukherjee
2020-01-03 13:36     ` Jiri Olsa
2020-01-03 18:29       ` Sudip Mukherjee
2020-01-03 23:16       ` Steven Rostedt
2020-01-06 15:19         ` Jiri Olsa
2020-01-06 16:26           ` Arnaldo Carvalho de Melo
2020-01-06 16:36             ` Steven Rostedt
2020-01-06 19:47               ` Arnaldo Carvalho de Melo
2020-01-06 20:14                 ` Konstantin Ryabitsev
2020-01-06 22:00                   ` Arnaldo Carvalho de Melo
2020-01-06 20:47               ` [kernel.org users] " Jason Gunthorpe
2020-01-06 20:52                 ` Steven Rostedt
2020-01-07 17:44                   ` Jason Gunthorpe
2020-01-06 18:22           ` Konstantin Ryabitsev
2020-01-03 12:17 ` Masami Hiramatsu
2020-01-03 23:12   ` Steven Rostedt
2020-01-05 13:18     ` Masami Hiramatsu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).