All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wido den Hollander <wido@42on.com>
To: Sage Weil <sweil@redhat.com>
Cc: Gregory Farnum <gfarnum@redhat.com>,
	Josh Durgin <jdurgin@redhat.com>,
	ceph-devel <ceph-devel@vger.kernel.org>
Subject: Re: librados.h version numbers
Date: Fri, 9 Sep 2016 08:51:41 +0200 (CEST)	[thread overview]
Message-ID: <383545525.3921.1473403901626@ox.pcextreme.nl> (raw)
In-Reply-To: <alpine.DEB.2.11.1609081337440.32742@piezo.us.to>


> Op 8 september 2016 om 15:38 schreef Sage Weil <sweil@redhat.com>:
> 
> 
> On Thu, 8 Sep 2016, Wido den Hollander wrote:
> > > Op 8 september 2016 om 15:24 schreef Sage Weil <sweil@redhat.com>:
> > > On Thu, 8 Sep 2016, Wido den Hollander wrote:
> > > > > Op 8 september 2016 om 3:08 schreef Gregory Farnum <gfarnum@redhat.com>:
> > > > > 
> > > > > 
> > > > > On Tue, Sep 6, 2016 at 4:16 PM, Josh Durgin <jdurgin@redhat.com> wrote:
> > > > > > On 09/06/2016 12:18 PM, Wido den Hollander wrote:
> > > > > >>
> > > > > >> Hi,
> > > > > >>
> > > > > >> wido@wido-laptop:~$ python -c "import rados; r = rados.Rados();
> > > > > >> print(r.version())"
> > > > > >> 0.69.1
> > > > > >> wido@wido-laptop:~$ dpkg -l|grep rados|awk '{print $2" "$3}'
> > > > > >> librados-dev 10.2.2-1trusty
> > > > > >> librados2 10.2.2-1trusty
> > > > > >> libradosstriper1 10.2.2-1trusty
> > > > > >> python-rados 10.2.2-1trusty
> > > > > >> wido@wido-laptop:~$
> > > > > >>
> > > > > >> Looking at librados.h in master I see:
> > > > > >>
> > > > > >> #define LIBRADOS_VER_MAJOR 0
> > > > > >> #define LIBRADOS_VER_MINOR 69
> > > > > >> #define LIBRADOS_VER_EXTRA 1
> > > > > >>
> > > > > >> Is this something which has just been forgotten to update?
> > > > > >
> > > > > >
> > > > > > Pretty much. Not much has relied on the librados/librbd version numbers
> > > > > > of this style. Adding tests for particular functions can be more
> > > > > > reliable than checking version numbers, since sometimes functions are
> > > > > > backported.
> > > > > >
> > > > > >> Looking at the 'ceph' tool I see:
> > > > > >>
> > > > > >> CEPH_GIT_NICE_VER="10.2.2"
> > > > > >>
> > > > > >> This is updated during packaging/build it seems.
> > > > > >>
> > > > > >> Should we maybe do that for librados.h as well?
> > > > > >
> > > > > >
> > > > > > I see no reason not to.
> > > > > 
> > > > > We at one point were trying to only increment the librados library
> > > > > version when stuff actually changed. Shockingly, that manual
> > > > > maintenance mostly resulted in it not getting updated. ;)
> > > > > But is it really that helpful to just provide another way of exposing
> > > > > the package version, instead of doing something that actually
> > > > > illustrates what functions are around? :/
> > > > 
> > > > I was using some Python code to gather Ceph information ( 
> > > > https://github.com/42on/ceph-collect ). One of the things I wanted to 
> > > > know is the installed Ceph version and I used the version() method.
> > > > 
> > > > It kept giving back 0.69.1 so I started looking into that.
> > > > 
> > > > I just try to avoid calling subprocesses when this isn't required.
> > > > 
> > > > Since the version() method is unreliable in giving back the version, 
> > > > what to do with it?
> > > 
> > > Let's remove those #defines from the header, and then do something like 
> > > include the auto-generated ceph_ver.h in the package, and update the 
> > > version functions to #include that and return an accurate string...
> > > 
> > 
> > yeah, one thing though.
> > 
> > #define CEPH_GIT_VER @CEPH_GIT_VER@
> > #define CEPH_GIT_NICE_VER "@CEPH_GIT_NICE_VER@"
> > 
> > librados.h:
> > 
> > CEPH_RADOS_API void rados_version(int *major, int *minor, int *extra);
> > 
> > We don't have major, minor and extra stored separately in ceph_ver.h at the moment.
> 
> Let's just replace it with
> 
> CEPH_RADOS_API const char *rados_version_string();
> CEPH_RADOS_API const char *rados_git_version_string();
> 
> We could parse the components out of the string, but I'm not sure it's 
> worth the effort?
> 

No, I don't think so. Seems good to me to add these functions and remove the old version() method.

Wido

> sage

      reply	other threads:[~2016-09-09  6:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-06 19:18 librados.h version numbers Wido den Hollander
2016-09-06 23:16 ` Josh Durgin
2016-09-08  1:08   ` Gregory Farnum
2016-09-08  6:59     ` Wido den Hollander
2016-09-08 13:24       ` Sage Weil
2016-09-08 13:29         ` Wido den Hollander
2016-09-08 13:38           ` Sage Weil
2016-09-09  6:51             ` Wido den Hollander [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=383545525.3921.1473403901626@ox.pcextreme.nl \
    --to=wido@42on.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=gfarnum@redhat.com \
    --cc=jdurgin@redhat.com \
    --cc=sweil@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.