An extension is a piece of software that adds functionality to PostgreSQL itself. Examples are data types (citext, hstore), utilities (dblink, pgTAP), and procedural languages (PL/Perl, PL/R), among others. See Extending SQL for details.
Open-source PostgreSQL extension release packages. The How To documents the contents of such packages. Following the CPAN example, “no commercial software of any kind, not even share/guilt/donateware, will be allowed…any other policy would be open to nitpicking, or maybe even legal challenges.”
Non-package files (that is, files that are not tarballs, bzip-balls, or zip archives), closed-source distributions, and distributions with no license.
Any registered user.
Anyone who applies. Such registrations will be approved by volunteers, but we’re usually pretty quick to respond to requests.
Head on over to PGXN Manager and hit the “Request Account” link. Once you’ve signed up, unless you’re obviously a troll, your account will be quickly approved.
Short answer: No, because PGXN needs to KISS. Longer answer: No. Again following the CPAN example, PGXN “is and will stay an open and free forum, where the authors decide what they upload. Any further selection belongs to different fora.” This is because “the first goal of PGXN is to make it easy to submit code and redistribute it. Ease of use and quality control are not the central problems ~[it~] tries to solve.” (Original quotation lost to time and internet entropy.) Frankly, moderation of releases is a significant reason that other communities have failed to duplicate the success of CPAN.
Basically, you upload an archive file with a META.json file describing the distribution. Have a look at the How To for all the details.
Yes! You can use the pgxn-tools Docker image as part of your release workflows. It supports both testing an extension with multiple versions of Postgres, as well as releasing extensions on GitHub and PGXN. For details, check out these blog posts:
Yes, there is a Google Group for this very purpose. Join us!
The first step is the PGXN search engine, accessible via the home page, which will allow you to find extensions relevant to you and to read their documentation. This will “often ~[be~] enough to distinguish the good stuff from the crap,” as Robert Haas says. As more extensions are released on PGXN with competing features and functionality, the addition of ratings features and dedicated testing will also make it easier to evaluate competing options.
There is! Install it with this command:
sudo easy_install pgxnclient
If you use Homebrew:
brew install pgxnclient
Then you can install PGXN extensions with a simple command:
pgxn install pair
Run pgxn help
to get a list of supported commands; or check out the
introductory blog posts, the complete documentation or the source
code.
It uses JSON-based API available on every PGXN mirror to find, download, build, and install extensions. It relies on PGXS to do the heavy lifting to build extensions.
The PGXN client follows the lead of the PostgreSQL core on installing extensions. If support for installing extensions on Windows improves such that a compiler is no longer required, the PGXN client will be modified as appropriate to take advantage of it. This applies not specifically to Windows, but to the ability of the core installer (or any future community-supported installer) to work on any platform.
Each release package has an accompanying SHA1 hash that the PGXN client verifies before installing an extension.
The PostgreSQL License. Note that the actual extensions themselves may be under any open source license, determined by their authors.
Definitely! Contributions and help with refining the specification are very welcome. Major code contributions may be funded out of the PGXN fund based on circumstances. Any contributions must be submitted under The PostgreSQL License.
Absolutely! See mirroring for the details.
Currently, PGXN is hosted on a box owned by depesz. Eventually it may run on community servers, as the PostgreSQL.org Web Team determines. Or it may end up on one or more servers to be contributed to the PostgreSQL Funds Group. In any case, the PGXN master index and server will always be contributed to the PostgreSQL community.
On GitHub. Please feel free to fork and send pull requests!
Mostly Perl. The database used by PGXN Manager is written in SQL, PL/pgSQL, and PL/Perl — and even uses semver, a semantic version data type written in C and distributed right here on PGXN!
Yes! The PGXN API provides centralized index and API of distribution metadata, as well as the search APIs used here.
Yes, see identity for the license details and downloadable artwork.