Re: Extensions, this time with a patch
David Wheeler <david@kineticode.com>
From: "David E. Wheeler" <david@kineticode.com>
To: Dimitri Fontaine <dimitri@2ndQuadrant.fr>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Itagaki Takahiro <itagaki.takahiro@gmail.com>, Alvaro Herrera <alvherre@commandprompt.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2010-10-20T23:14:40Z
Lists: pgsql-hackers
On Oct 20, 2010, at 3:12 PM, Dimitri Fontaine wrote:
> So, the idea is that $(EXTENSION) is a list of extensions you're
> providing from the Makefile (most often, a list of one extension, but
> contrib/spi is an exception here). Each extension in the list must have
> a corresponding $EXTENSION.control file.
>
> This control file contains at minimum a single line for the name of the
> extension, but it's better already with a comment for users. I've been
> filling them for our extensions, pasting from the documentation:
Might I suggest instead a META.json file like PGXN requires? Here's a simple example:
{
"name": "pair",
"abstract": "A key/value pair data type",
"version": "0.1.0",
"maintainer": "David E. Wheeler <david@justatheory.com>",
"license": "postgresql",
}
They can have a lot more information, too. Her's the one I actually shipped with pair:
http://github.com/theory/kv-pair/blob/master/META.json
The meta spec is here:
http://github.com/theory/pgxn/wiki/PGXN-Meta-Spec
Anyway, the point is that it might be useful for us to sync on this format. I went with JSON for a few reasons:
* CPAN is switching to it (from YAML)
* It's extremely widespread
* It's useful for ac-hoc REST-style requests
* The format will likely be in 9.1.
Thoughts?
BTW, really excited that you're finally getting EXTENSION done, Dim. This is going to be *great* for PostgreSQL developers. I'll have to work it into my talk at West.
https://www.postgresqlconference.org/content/building-and-distributing-postgresql-extensions-without-learning-c
Best,
David