Re: RFC: Remove contrib entirely - Mailing list pgsql-hackers

From Stephen Frost
Subject Re: RFC: Remove contrib entirely
Date
Msg-id 20150528193556.GH26667@tamriel.snowman.net
Whole thread Raw
In response to RFC: Remove contrib entirely  ("Joshua D. Drake" <jd@commandprompt.com>)
Responses Re: RFC: Remove contrib entirely
Re: RFC: Remove contrib entirely
List pgsql-hackers
JD,

* Joshua D. Drake (jd@commandprompt.com) wrote:
> Contrib according to the docs is:
>
> "These include porting tools, analysis utilities, and plug-in
> features that are not part of the core PostgreSQL system, mainly
> because they address a limited audience or are too experimental to
> be part of the main source tree. This does not preclude their
> usefulness."

We certainly seem to have moved on from that definition.  If nothing
else, it'd be valuable to clarify what contrib is and then rearrange
things accordingly.

> It has also been mentioned many times over the years that contrib is
> a holding tank for technology that would hopefully be pushed into
> core someday.

I continue to feel this is a good use-case for contrib.

> What I am suggesting:
>
> 1. Analyze the current contrib modules for inclusion into -core. A
> few of these are pretty obvious:
>
>     pg_stat_statements
>     citext
>     postgres_fdw
>     hstore
>     pg_crypto
>     [...]

We don't really have a place in "-core" for them..  There has been
ongoing discussion about that but nothing has changed in that regard, as
far as I'm aware.  We have moved a few things out of contrib and into
bin, but that doesn't make sense for the above.

What we would need for this is an 'extensions' directory, or similar,
and a clear definition of what the requirements are around getting into
it are.  With that, we could decide for each module currently in contrib
if it should go into the 'extensions' directory.  I'm not sure that we
would necessairly have to remove the contrib module or any modules which
are deemed to not be appropriate for the 'extensions' directory.

> I am sure there will be plenty of fun to be had with what should or
> shouldn't be merged into core. I think if we argue about the
> guidelines of how to analyze what should be in core versus the
> merits of any particular module, life will be easier. Here are some
> for a start:
>
>     A. Must have been in contrib for at least two releases
>     B. Must have visible community (and thus use case)

I don't particularly like having a time-based requirement drive what's
in which area, especially one that's double the length of our major
release cycle.

> 2. Push the rest out into a .Org project called contrib. Let those
> who are interested in the technology work on them or use them. This
> project since it is outside of core proper can work just like other
> extension projects. Alternately, allow the maintainers push them
> wherever they like (Landscape, Github, Savannah, git.postgresql.org
> ...).

That's an interesting idea, but it's unclear how this would be any
different from PGXN..?
Thanks!
    Stephen

pgsql-hackers by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: Improving GEQO
Next
From: Atri Sharma
Date:
Subject: Re: Improving GEQO