~ubuntu-branches/ubuntu/gutsy/libpgjava/gutsy

« back to all changes in this revision

Viewing changes to src/tools/RELEASE_CHANGES

  • Committer: Bazaar Package Importer
  • Author(s): Arnaud Vandyck
  • Date: 2005-04-21 14:25:11 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20050421142511-wibh5vc31fkrorx7
Tags: 7.4.7-3
Built with sources...

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
* Version numbers
 
2
    configure.in and configure
 
3
    bump interface version numbers
 
4
      o src/interfaces/*/Makefile
 
5
      o src/interfaces/libpq/libpq.rc (update for minor release)
 
6
      o src/include/pg_config.h.win32 (update for minor release)
 
7
 
 
8
* Release notes
 
9
    update doc/src/sgml/release.sgml and generate HISTORY
 
10
 
 
11
* Documentation
 
12
    document all new features
 
13
    update help output from inside the programs
 
14
    doc/src/sgml/ref manual pages
 
15
 
 
16
* Ports
 
17
    update ports list in doc/src/sgml/installation.sgml
 
18
    update INSTALL
 
19
    platform-specific FAQ's, if needed
 
20
 
 
21
* Miscellaneous files
 
22
    doc/bug.template
 
23
 
 
24
* Update pg_upgrade to handle new version, or disable
 
25
 
 
26
* Update copyright year?
 
27
 
 
28
 
 
29
---------------------------------------------------------------------------
 
30
 
 
31
                       Library Version Changes
 
32
                       =======================
 
33
 
 
34
Major Version
 
35
=============
 
36
 
 
37
The major version number should be updated whenever the source of the
 
38
library changes to make it binary incompatible. Such changes include,
 
39
but are not limited to:
 
40
 
 
41
1. Removing a public function or structure (or typedef, enum, ...)
 
42
 
 
43
2. Modifying a public functions arguments.
 
44
 
 
45
3. Removing a field from a public structure.
 
46
 
 
47
4. Adding a field to a public structure, unless steps have been
 
48
previously taken to shield users from such a change, for example by
 
49
such structures only ever being allocated/instantiated by a library
 
50
function which would give the new field a suitable default value.
 
51
 
 
52
Adding a new function would NOT force an increase in the major version
 
53
number. When the major version is increased all applications which
 
54
link to the library MUST be recompiled - this is not desirable. When
 
55
the major version is updated the minor version gets reset.
 
56
 
 
57
Minor Version
 
58
=============
 
59
 
 
60
The minor version number should be updated whenever the functionality
 
61
of the library has changed, typically and change in source code
 
62
between releases would mean an increase in the minor version number so
 
63
long as it does not require a major version increase.
 
64
 
 
65
Minimizing Changes
 
66
==================
 
67
 
 
68
When modifying public functions arguments, steps should be taken to
 
69
maintain binary compatibility across minor PostgreSQL releases (e.g. the
 
70
7.2 series, the 7.3 series, the 7.4/8.0 series). Consider the following
 
71
function:
 
72
 
 
73
        void print_stuff(int arg1, int arg2)
 
74
        {
 
75
            printf("stuff: %d %d\n", arg1, arg2);
 
76
        }
 
77
 
 
78
If we wanted to add a third argument:
 
79
        
 
80
        void print_stuff(int arg1, int arg2, int arg3)
 
81
        {
 
82
            printf("stuff: %d %d %d\n", arg1, arg2, arg3);
 
83
        }
 
84
 
 
85
Then doing it like this:
 
86
 
 
87
        void print_stuff2(int arg1, int arg2, int arg3)
 
88
        {
 
89
            printf("stuff: %d %d %d\n", arg1, arg2, arg3);
 
90
        }
 
91
 
 
92
        void print_stuff(int arg1, int arg2)
 
93
        {
 
94
            print_stuff(arg1, arg2, 0);
 
95
        }
 
96
 
 
97
would maintain binary compatibility. Obviously this would add a fair
 
98
bit of cruft if used extensively, but considering the changes between
 
99
minor versions would probably be worthwhile to avoid bumping library
 
100
major version. Naturally in the next major version print_stuff() would
 
101
assume the functionality and arguments of print_stuff2().
 
102
 
 
103
 
 
104
Lee Kindness