Re: Version management for extensions - Mailing list pgsql-general

From Jeff Janes
Subject Re: Version management for extensions
Date
Msg-id CAMkU=1xoONr1CZ6zY5G8WiSw=i42nvdwD_78Q3Nwq+qy3J26xw@mail.gmail.com
Whole thread Raw
In response to Re: Version management for extensions  (Albe Laurenz <laurenz.albe@wien.gv.at>)
Responses Re: Version management for extensions  (Jim Nasby <Jim.Nasby@BlueTreble.com>)
List pgsql-general
On Fri, Oct 9, 2015 at 1:36 AM, Albe Laurenz <laurenz.albe@wien.gv.at> wrote:
Jeff Janes wrote:
> I am facing a scenario where I have different version of an extension, say 1.0 and 2.0, which have
> some different functionality between them (so not merely a bug fix), so people might want to continue
> to use 1.0.
>
> But changes to the PostgreSQL software between major versions requires changes to the extension's
> source code.
>
> So I  basically have 4 versions to carry:
>
> 1.0_for_9.4_or_before
> 2.0_for_9.4_or_before
> 1.0_for_9.5
> 2.0_for_9.5
>
>
> Is there some easy way to handle this?  Are there examples of existing modules which have a similar
> situation (and which handle it well) on PGXN or pgfoundry or other public repositories?

I don't think that there is an easy solution.

Could some #ifdefs make the same code work for 9.4 and 9.5?

Probably.  But I probably shouldn't just pretend that the #ifdefs were there all along for the already-released code. So if 1.0 was already in the wild while 2.0 was not, you would still be left with something like:

1.0_for_9.4_or_before (perhaps make it uninstallable for new installations)
1.1_for_any_version_(so_far)
2.0_for_any_version_(so_far)

It seems like there should be some way to mark a feature-release of an extension, versus a server-compatibility-only release (also versus a bug-fix-in-extension release).


Cheers,

Jeff

pgsql-general by date:

Previous
From: Melvin Davidson
Date:
Subject: Re: PSQL Tools
Next
From: Francisco Olarte
Date:
Subject: Re: Can we make regexp processing more friendly by recognizing "\r\n" as a "newline" for "^$" purposes?