mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Add FAQ item about how patches are reviewed.
This commit is contained in:
91
doc/FAQ_DEV
91
doc/FAQ_DEV
@ -1,7 +1,7 @@
|
||||
|
||||
Developer's Frequently Asked Questions (FAQ) for PostgreSQL
|
||||
|
||||
Last updated: Mon Mar 19 12:52:30 EDT 2007
|
||||
Last updated: Sat May 5 00:09:15 EDT 2007
|
||||
|
||||
Current maintainer: Bruce Momjian (bruce@momjian.us)
|
||||
|
||||
@ -15,22 +15,23 @@ General Questions
|
||||
1.2) What development environment is required to develop code?
|
||||
1.3) What areas need work?
|
||||
1.4) What do I do after choosing an item to work on?
|
||||
1.5) I've developed a patch, what next?
|
||||
1.6) Where can I learn more about the code?
|
||||
1.7) How do I download/update the current source tree?
|
||||
1.8) How do I test my changes?
|
||||
1.9) What tools are available for developers?
|
||||
1.10) What books are good for developers?
|
||||
1.11) What is configure all about?
|
||||
1.12) How do I add a new port?
|
||||
1.13) Why don't you use threads, raw devices, async-I/O, <insert your
|
||||
1.5) I have developed a patch, what next?
|
||||
1.6) How is a patch reviewed?
|
||||
1.7) Where can I learn more about the code?
|
||||
1.8) How do I download/update the current source tree?
|
||||
1.9) How do I test my changes?
|
||||
1.10) What tools are available for developers?
|
||||
1.11) What books are good for developers?
|
||||
1.12) What is configure all about?
|
||||
1.13) How do I add a new port?
|
||||
1.14) Why don't you use threads, raw devices, async-I/O, <insert your
|
||||
favorite wizz-bang feature here>?
|
||||
1.14) How are RPM's packaged?
|
||||
1.15) How are CVS branches handled?
|
||||
1.16) Where can I get a copy of the SQL standards?
|
||||
1.17) Where can I get technical assistance?
|
||||
1.18) How do I get involved in PostgreSQL web site development?
|
||||
1.19) Why haven't you replaced CVS with SVN, Git, Monotone, VSS,
|
||||
1.15) How are RPM's packaged?
|
||||
1.16) How are CVS branches handled?
|
||||
1.17) Where can I get a copy of the SQL standards?
|
||||
1.18) Where can I get technical assistance?
|
||||
1.19) How do I get involved in PostgreSQL web site development?
|
||||
1.20) Why haven't you replaced CVS with SVN, Git, Monotone, VSS,
|
||||
<insert your favorite SCM system here>?
|
||||
|
||||
Technical Questions
|
||||
@ -51,7 +52,7 @@ General Questions
|
||||
|
||||
1.1) How do I get involved in PostgreSQL development?
|
||||
|
||||
Download the code and have a look around. See 1.7.
|
||||
Download the code and have a look around. See 1.8.
|
||||
|
||||
Subscribe to and read the pgsql-hackers mailing list (often termed
|
||||
'hackers'). This is where the major contributors and core members of
|
||||
@ -93,7 +94,7 @@ General Questions
|
||||
http://www.postgresql.org/docs/faqs.TODO.html.
|
||||
|
||||
You can learn more about these features by consulting the archives,
|
||||
the SQL standards and the recommend texts (see 1.10).
|
||||
the SQL standards and the recommend texts (see 1.11).
|
||||
|
||||
1.4) What do I do after choosing an item to work on?
|
||||
|
||||
@ -113,7 +114,7 @@ General Questions
|
||||
being kept for the next release,
|
||||
http://momjian.postgresql.org/cgi-bin/pgpatches_hold.
|
||||
|
||||
1.5) I've developed a patch, what next?
|
||||
1.5) I have developed a patch, what next?
|
||||
|
||||
You will need to submit the patch to pgsql-patches@postgresql.org. It
|
||||
will be reviewed by other contributors to the project and will be
|
||||
@ -122,7 +123,7 @@ General Questions
|
||||
make sure your submission conforms to the following guidelines:
|
||||
1. Ensure that your patch is generated against the most recent
|
||||
version of the code, which for developers is CVS HEAD. For more on
|
||||
branches in PostgreSQL, see 1.15.
|
||||
branches in PostgreSQL, see 1.16.
|
||||
2. Try to make your patch as readable as possible by following the
|
||||
project's code-layout conventions. This makes it easier for the
|
||||
reviewer, and there's no point in trying to layout things
|
||||
@ -145,7 +146,7 @@ General Questions
|
||||
6. If you are adding a new feature, confirm that it has been tested
|
||||
thoroughly. Try to test the feature in all conceivable scenarios.
|
||||
7. New feature patches should also be accompanied by documentation
|
||||
patches. If you need help checking the SQL standard, see 1.16.
|
||||
patches. If you need help checking the SQL standard, see 1.17.
|
||||
8. Provide an implementation overview, preferably in code comments.
|
||||
Following the surrounding code commenting style is usually a good
|
||||
approach.
|
||||
@ -162,14 +163,32 @@ General Questions
|
||||
You will be notified via email when the patch is applied, and your
|
||||
name will appear in the next version of the release notes.
|
||||
|
||||
1.6) Where can I learn more about the code?
|
||||
1.6) How is a patch reviewed?
|
||||
|
||||
Patch committers check several things before applying a patch:
|
||||
* Patch follows the SQL standard or community agreed-upon behavior
|
||||
* Style merges seamlessly into the surrounding code
|
||||
* Written as simply and efficiently as possible
|
||||
* Uses the available PostgreSQL subsystems properly
|
||||
* Contains sufficient comments
|
||||
* Contains code that works on all supported operating systems
|
||||
* Has proper documentation
|
||||
* Passes all regression tests
|
||||
* Behaves as expected, even under unusual cirumstances
|
||||
* Contains no reliability risks
|
||||
* Does not overly complicate the source code
|
||||
* If performance-related, has a measureable performance benefit
|
||||
* Is of sufficient usefulness to the average PostgreSQL user
|
||||
* Follows existing PostgreSQL coding standards
|
||||
|
||||
1.7) Where can I learn more about the code?
|
||||
|
||||
Other than documentation in the source tree itself, you can find some
|
||||
papers/presentations discussing the code at
|
||||
http://www.postgresql.org/developer. An excellent presentation is at
|
||||
http://neilconway.org/talks/hacking/
|
||||
|
||||
1.7) How do I download/update the current source tree?
|
||||
1.8) How do I download/update the current source tree?
|
||||
|
||||
There are several ways to obtain the source tree. Occasional
|
||||
developers can just get the most recent source tree snapshot from
|
||||
@ -180,7 +199,7 @@ General Questions
|
||||
in CVS. For details of how to obtain the source from CVS see
|
||||
http://developer.postgresql.org/docs/postgres/cvs.html.
|
||||
|
||||
1.8) How do I test my changes?
|
||||
1.9) How do I test my changes?
|
||||
|
||||
Basic system testing
|
||||
|
||||
@ -223,7 +242,7 @@ General Questions
|
||||
you are using GCC you can use the --enable-depend option of configure
|
||||
to have the compiler compute the dependencies automatically.
|
||||
|
||||
1.9) What tools are available for developers?
|
||||
1.10) What tools are available for developers?
|
||||
|
||||
First, all the files in the src/tools directory are designed for
|
||||
developers.
|
||||
@ -316,7 +335,7 @@ General Questions
|
||||
is also a script called unused_oids in pgsql/src/include/catalog that
|
||||
shows the unused oids.
|
||||
|
||||
1.10) What books are good for developers?
|
||||
1.11) What books are good for developers?
|
||||
|
||||
I have four good books, An Introduction to Database Systems, by C.J.
|
||||
Date, Addison, Wesley, A Guide to the SQL Standard, by C.J. Date, et.
|
||||
@ -326,7 +345,7 @@ General Questions
|
||||
There is also a database performance site, with a handbook on-line
|
||||
written by Jim Gray at http://www.benchmarkresources.com..
|
||||
|
||||
1.11) What is configure all about?
|
||||
1.12) What is configure all about?
|
||||
|
||||
The files configure and configure.in are part of the GNU autoconf
|
||||
package. Configure allows us to test for various capabilities of the
|
||||
@ -348,7 +367,7 @@ General Questions
|
||||
removed, so you see only the file contained in the source
|
||||
distribution.
|
||||
|
||||
1.12) How do I add a new port?
|
||||
1.13) How do I add a new port?
|
||||
|
||||
There are a variety of places that need to be modified to add a new
|
||||
port. First, start in the src/template directory. Add an appropriate
|
||||
@ -365,7 +384,7 @@ General Questions
|
||||
src/makefiles directory for port-specific Makefile handling. There is
|
||||
a backend/port directory if you need special files for your OS.
|
||||
|
||||
1.13) Why don't you use threads, raw devices, async-I/O, <insert your
|
||||
1.14) Why don't you use threads, raw devices, async-I/O, <insert your
|
||||
favorite wizz-bang feature here>?
|
||||
|
||||
There is always a temptation to use the newest operating system
|
||||
@ -391,7 +410,7 @@ General Questions
|
||||
cautious about their adoption. The TODO list often contains links to
|
||||
discussions showing our reasoning in these areas.
|
||||
|
||||
1.14) How are RPMs packaged?
|
||||
1.15) How are RPMs packaged?
|
||||
|
||||
This was written by Lamar Owen and Devrim Gündüz:
|
||||
|
||||
@ -472,7 +491,7 @@ General Questions
|
||||
As to why all these files aren't part of the source tree, well, unless
|
||||
there was a large cry for it to happen, we don't believe it should.
|
||||
|
||||
1.15) How are CVS branches managed?
|
||||
1.16) How are CVS branches managed?
|
||||
|
||||
This was written by Tom Lane:
|
||||
|
||||
@ -531,7 +550,7 @@ General Questions
|
||||
tree right away after a major release --- we wait for a dot-release or
|
||||
two, so that we won't have to double-patch the first wave of fixes.
|
||||
|
||||
1.16) Where can I get a copy of the SQL standards?
|
||||
1.17) Where can I get a copy of the SQL standards?
|
||||
|
||||
There are three versions of the SQL standard: SQL-92, SQL:1999, and
|
||||
SQL:2003. They are endorsed by ANSI and ISO. Draft versions can be
|
||||
@ -548,7 +567,7 @@ General Questions
|
||||
* http://www.contrib.andrew.cmu.edu/~shadow/sql.html#syntax (SQL-92)
|
||||
* http://dbs.uni-leipzig.de/en/lokal/standards.pdf (paper)
|
||||
|
||||
1.17) Where can I get technical assistance?
|
||||
1.18) Where can I get technical assistance?
|
||||
|
||||
Many technical questions held by those new to the code have been
|
||||
answered on the pgsql-hackers mailing list - the archives of which can
|
||||
@ -561,7 +580,7 @@ General Questions
|
||||
questions about development of new features, on IRC at
|
||||
irc.freenode.net in the #postgresql channel.
|
||||
|
||||
1.18) How do I get involved in PostgreSQL web site development?
|
||||
1.19) How do I get involved in PostgreSQL web site development?
|
||||
|
||||
PostgreSQL website development is discussed on the
|
||||
pgsql-www@postgresql.org mailing list. The is a project page where the
|
||||
@ -569,7 +588,7 @@ General Questions
|
||||
http://gborg.postgresql.org/project/pgweb/projdisplay.php , the code
|
||||
for the next version of the website is under the "portal" module.
|
||||
|
||||
1.19) Why haven't you replaced CVS with SVN, Git, Monotone, VSS, <insert your
|
||||
1.20) Why haven't you replaced CVS with SVN, Git, Monotone, VSS, <insert your
|
||||
favorite SCMS here>?
|
||||
|
||||
Currently the core developers see no SCMS that will provide enough
|
||||
@ -745,7 +764,7 @@ typedef struct nameData
|
||||
those structures (in particular, the files copyfuncs.c and
|
||||
equalfuncs.c. Make sure you add support for your new field to these
|
||||
files. Find any other places the structure might need code for your
|
||||
new field. mkid is helpful with this (see 1.9).
|
||||
new field. mkid is helpful with this (see 1.10).
|
||||
|
||||
2.5) Why do we use palloc() and pfree() to allocate memory?
|
||||
|
||||
|
Reference in New Issue
Block a user