Thread: pgbouncer many version madness

pgbouncer many version madness

From
Peter Eisentraut
Date:
Could someone explain to me the rationale of the Git repository
organization?  Over the past few months, I have submitted a few bug
fixes and improvements for pgbouncer.  I wanted to check into whether
they had been committed or released.

There are 58 pgbouncer.spec files in the git repository!

    rpm/$OS/$PGVERSION/pgbouncer/$OSVERSION/pgbouncer.spec

This doesn't make any sense, because pgbouncer doesn't care about the
PostgreSQL version, and a well-written spec file also shouldn't care
that much about the OS version.

I think my changes have only been merged into the 9.4 section (and
presumably later "branched" into 9.5).  Why?  It's not clear why some
commits but not others go into only the latest $PGVERSION subdirectory.

If I want to submit changes, where are they supposed to go?

What's totally crazy, however, is that when I download an RPM from the
web site, the file names don't include the $PGVERSION.  So there are RPM
files out there that are named identically, have similar timestamps, but
different features and bug fixes.

I don't know what the build infrastructure is or what file layout it
requires, but I think for non-extension modules, the layout ought to be
simply

    rpm/redhat/pgbouncer/pgbouncer.spec


Re: pgbouncer many version madness

From
Devrim GÜNDÜZ
Date:

Hi,

On Tue, 2015-09-22 at 14:51 -0400, Peter Eisentraut wrote:
> Could someone explain to me the rationale of the Git repository
> organization?

We have separate directories for each PostgreSQL major version, and
then each software and each distro that we support. This organization
is really historical, when we had only a few packages and a few distros
to support.

>  Over the past few months, I have submitted a few bug
> fixes and improvements for pgbouncer.  I wanted to check into whether
> they had been committed or released.
>
> There are 58 pgbouncer.spec files in the git repository!
>
>     rpm/$OS/$PGVERSION/pgbouncer/$OSVERSION/pgbouncer.spec


See above.

> This doesn't make any sense, because pgbouncer doesn't care about the
> PostgreSQL version, and a well-written spec file also shouldn't care
> that much about the OS version.

The build script/system we use right now depends on the directory
structure.

> I think my changes have only been merged into the 9.4 section (and
> presumably later "branched" into 9.5).  Why?  It's not clear why some
> commits but not others go into only the latest $PGVERSION
> subdirectory.

That is my oversight. The policy is to apply the changes to all
branches.

> If I want to submit changes, where are they supposed to go?

All branches.

> What's totally crazy, however, is that when I download an RPM from
> the web site, the file names don't include the $PGVERSION.  So there
> are RPM files out there that are named identically, have similar
> timestamps, but different features and bug fixes.

This is is a rare exception, as I told above. Sorry about that.

> I don't know what the build infrastructure is or what file layout it
> requires, but I think for non-extension modules, the layout ought to
> be simply
>
>     rpm/redhat/pgbouncer/pgbouncer.spec

I know that current infrastructure is crazy to maintain, I think it is
easier when it comes to building the packages.

That said, I have some cycles in next few days. I'll take a look at
pgbouncer packaging.

Regards,

--
Devrim GÜNDÜZ
Principal Systems Engineer @ EnterpriseDB: http://www.enterprisedb.com
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR