postgresql/src/tools/RELEASE_CHANGES

113 lines
3.4 KiB
Plaintext
Raw Normal View History

* Version numbers
2001-08-16 23:53:27 +02:00
configure.in and configure
doc/bug.template
bump interface version numbers
o src/interfaces/*/Makefile
2003-01-29 04:41:54 +01:00
o src/interfaces/libpq/libpq.rc (update for minor release)
o src/include/pg_config.h.win32 (update for minor release)
o port/win32ver.rc (update for minor release)
* Release notes
2003-01-29 04:41:54 +01:00
update doc/src/sgml/release.sgml and generate HISTORY
2004-07-24 05:06:47 +02:00
o scan cvs logs, use pgcvslog and flags in comments
o run spellchecker on result
o check dashed items from TODO to see they are complete
o group items into categories
o select major features
o select incompatibilities
2004-07-24 05:06:47 +02:00
o add comments for items
o add SGML markup
* Documentation
document all new features
2002-09-04 09:26:37 +02:00
update help output from inside the programs
2002-09-04 09:31:59 +02:00
doc/src/sgml/ref manual pages
* Ports
update config.guess and config.sub at the start of beta
2003-01-29 04:41:54 +01:00
update ports list in doc/src/sgml/installation.sgml
2002-12-18 21:07:32 +01:00
update INSTALL
2001-05-03 18:47:58 +02:00
platform-specific FAQ's, if needed
* Update pg_upgrade to handle new version, or disable
2002-07-24 19:58:24 +02:00
* Update copyright year?
---------------------------------------------------------------------------
2003-07-23 06:08:44 +02:00
Library Version Changes
=======================
Major Version
=============
The major version number should be updated whenever the source of the
library changes to make it binary incompatible. Such changes include,
but are not limited to:
1. Removing a public function or structure (or typedef, enum, ...)
2. Modifying a public functions arguments.
3. Removing a field from a public structure.
4. Adding a field to a public structure, unless steps have been
previously taken to shield users from such a change, for example by
such structures only ever being allocated/instantiated by a library
function which would give the new field a suitable default value.
Adding a new function would NOT force an increase in the major version
number. When the major version is increased all applications which
link to the library MUST be recompiled - this is not desirable. When
the major version is updated the minor version gets reset.
Minor Version
=============
The minor version number should be updated whenever the functionality
of the library has changed, typically and change in source code
between releases would mean an increase in the minor version number so
long as it does not require a major version increase.
Minimizing Changes
==================
When modifying public functions arguments, steps should be taken to
maintain binary compatibility across minor PostgreSQL releases (e.g. the
7.2 series, the 7.3 series, the 7.4/8.0 series). Consider the following
function:
void print_stuff(int arg1, int arg2)
{
printf("stuff: %d %d\n", arg1, arg2);
}
If we wanted to add a third argument:
void print_stuff(int arg1, int arg2, int arg3)
{
printf("stuff: %d %d %d\n", arg1, arg2, arg3);
}
Then doing it like this:
void print_stuff2(int arg1, int arg2, int arg3)
{
printf("stuff: %d %d %d\n", arg1, arg2, arg3);
}
void print_stuff(int arg1, int arg2)
{
print_stuff(arg1, arg2, 0);
}
would maintain binary compatibility. Obviously this would add a fair
bit of cruft if used extensively, but considering the changes between
minor versions would probably be worthwhile to avoid bumping library
major version. Naturally in the next major version print_stuff() would
assume the functionality and arguments of print_stuff2().
Lee Kindness