+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Releasing a New Version</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
><H1
CLASS="SECT1"
><A
-NAME="NEWRELEASE">6. Releasing a New Version</H1
+NAME="NEWRELEASE"
+>6. Releasing a New Version</A
+></H1
><P
> When we release versions of <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="VERSIONNUMBERS">6.1. Version numbers</H2
+NAME="VERSIONNUMBERS"
+>6.1. Version numbers</A
+></H2
><P
> First you need to determine which version number the release will have.
<SPAN
This ensures that builds from CVS snapshots are easily distinguished from released versions.
The point version is reset to zero when the minor changes.
</P
+><P
+> Stable branches work a little differently, since there should be
+ little to no development happening in such branches. Remember,
+ only bugfixes, which presumably should have had some testing
+ before being committed. Stable branches will then have their
+ version reported as <VAR
+CLASS="LITERAL"
+>0.0.0</VAR
+>, during that period
+ between releases when changes are being added. This is to denote
+ that this code is <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>not for release</I
+></SPAN
+>. Then
+ as the release nears, the version is bumped according: e.g.
+ <VAR
+CLASS="LITERAL"
+>3.0.1 -> 0.0.0 -> 3.0.2</VAR
+>.
+ </P
></LI
></UL
>
> In summary, the main CVS trunk is the development branch where new
features are being worked on for the next stable series. This should
almost always be where the most activity takes place. There is always at
- least one stable branch from the trunk, e.g now it is 3.0, which is only
- used to release stable versions. Once the initial .0 release of the
- stable branch has been done, then as a rule, only bugfixes that have had
- prior testing should be committed to the stable branch. At that point, it
- is mostly <SPAN
-CLASS="QUOTE"
->"hands off"</SPAN
->. Once there are enough bugfixes to
- justify a new release, the version of this branch is again incremented
- Example: 3.0.0 -> 3.0.1 -> 3.0.2, etc are all stable releases from within
- the stable branch. 3.1.x is currently the main trunk, and where work on
- 3.2.x is taking place. If any questions, please post to the devel list
+ least one stable branch from the trunk, e.g now it is
+ <VAR
+CLASS="LITERAL"
+>3.0</VAR
+>, which is only used to release stable versions.
+ Once the initial *.0 release of the stable branch has been done, then as a
+ rule, only bugfixes that have had prior testing should be committed to
+ the stable branch. Once there are enough bugfixes to justify a new
+ release, the version of this branch is again incremented Example: 3.0.0
+ -> 3.0.1 -> 3.0.2, etc are all stable releases from within the stable
+ branch. 3.1.x is currently the main trunk, and where work on 3.2.x is
+ taking place. If any questions, please post to the devel list
<SPAN
CLASS="emphasis"
><I
>before</I
></SPAN
> committing to a stable branch!
-
+ </P
+><P
+> Developers should remember too that if they commit a bugfix to the stable
+ branch, this will more than likely require a separate submission to the
+ main trunk, since these are separate development trees within CVS. If you
+ are working on both, then this would require at least two separate check
+ outs (i.e main trunk, <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>and</I
+></SPAN
+> the stable release branch,
+ which is <VAR
+CLASS="LITERAL"
+>v_3_0_branch</VAR
+> at the moment).
</P
></DIV
><DIV
><H2
CLASS="SECT2"
><A
-NAME="BEFORERELEASE">6.2. Before the Release: Freeze</H2
+NAME="BEFORERELEASE"
+>6.2. Before the Release: Freeze</A
+></H2
><P
> The following <SPAN
CLASS="emphasis"
>
link from the main page since we need to keep manuals for various
versions available). The CGI pages will link to something like
- <TT
+ <VAR
CLASS="LITERAL"
->http://privoxy.org/$(VERSION)/user-manual/</TT
+>http://privoxy.org/$(VERSION)/user-manual/</VAR
>. This
will need to be updated for each new release. There is no Makefile
target for this at this time!!! It needs to be done manually.
><H2
CLASS="SECT2"
><A
-NAME="THERELEASE">6.3. Building and Releasing the Packages</H2
+NAME="THERELEASE"
+>6.3. Building and Releasing the Packages</A
+></H2
><P
> Now the individual packages can be built and released. Note that for
GPL reasons the first package to be released is always the source tarball.
><H3
CLASS="SECT3"
><A
-NAME="PACK-GUIDELINES">6.3.1. Note on Privoxy Packaging</H3
+NAME="PACK-GUIDELINES"
+>6.3.1. Note on Privoxy Packaging</A
+></H3
><P
> Please keep these general guidelines in mind when putting together
your package. These apply to <SPAN
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-TARBALL">6.3.2. Source Tarball</H3
+NAME="NEWRELEASE-TARBALL"
+>6.3.2. Source Tarball</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-RPM">6.3.3. SuSE, Conectiva or Red Hat RPM</H3
+NAME="NEWRELEASE-RPM"
+>6.3.3. SuSE, Conectiva or Red Hat RPM</A
+></H3
><P
-> In following text, replace <TT
+> In following text, replace <VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
+>dist</VAR
>
with either <SPAN
CLASS="QUOTE"
now examine the file <TT
CLASS="FILENAME"
>privoxy-</TT
-><TT
+><VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
+>dist</VAR
><TT
CLASS="FILENAME"
>.spec</TT
and make sure that the version information and the RPM release number are
correct. The RPM release numbers for each version start at one. Hence it must
be reset to one if this is the first RPM for
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
+>dist</VAR
> which is built from version
X.Y.Z. Check the
<A
><TD
><PRE
CLASS="PROGRAMLISTING"
-> make <TT
+> make <VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
+>dist</VAR
>-dist</PRE
></TD
></TR
><TD
><PRE
CLASS="PROGRAMLISTING"
-> make <TT
+> make <VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
->-upload <TT
+>dist</VAR
+>-upload <VAR
CLASS="REPLACEABLE"
-><I
->rpm_packagerev</I
-></TT
+>rpm_packagerev</VAR
></PRE
></TD
></TR
>
</P
><P
-> where <TT
+> where <VAR
CLASS="REPLACEABLE"
-><I
->rpm_packagerev</I
-></TT
+>rpm_packagerev</VAR
> is the
RPM release number as determined above.
Go to the displayed URL and release the file publicly on Sourceforge.
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-OS2">6.3.4. OS/2</H3
+NAME="NEWRELEASE-OS2"
+>6.3.4. OS/2</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-SOLARIS">6.3.5. Solaris</H3
+NAME="NEWRELEASE-SOLARIS"
+>6.3.5. Solaris</A
+></H3
><P
> Login to Sourceforge's compilefarm via ssh:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-WINDOWS">6.3.6. Windows</H3
+NAME="NEWRELEASE-WINDOWS"
+>6.3.6. Windows</A
+></H3
><P
> You should ensure you have the latest version of Cygwin (from
<A
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-DEBIAN">6.3.7. Debian</H3
+NAME="NEWRELEASE-DEBIAN"
+>6.3.7. Debian</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
><TD
><PRE
CLASS="PROGRAMLISTING"
-> debchange -v 3.1.1-alpha-1 "New upstream version"</PRE
+> debchange -v 3.0.3-stable-1 "New upstream version"</PRE
></TD
></TR
></TABLE
> This will create
<TT
CLASS="FILENAME"
->../privoxy_3.1.1-alpha-1_i386.deb</TT
+>../privoxy_3.0.3-stable-1_i386.deb</TT
>
which can be uploaded. To upload the package to Sourceforge, simply
issue
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-MACOSX">6.3.8. Mac OSX</H3
+NAME="NEWRELEASE-MACOSX"
+>6.3.8. Mac OSX</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-FREEBSD">6.3.9. FreeBSD</H3
+NAME="NEWRELEASE-FREEBSD"
+>6.3.9. FreeBSD</A
+></H3
><P
> Login to Sourceforge's compile-farm via ssh:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-HPUX">6.3.10. HP-UX 11</H3
+NAME="NEWRELEASE-HPUX"
+>6.3.10. HP-UX 11</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-AMIGA">6.3.11. Amiga OS</H3
+NAME="NEWRELEASE-AMIGA"
+>6.3.11. Amiga OS</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-AIX">6.3.12. AIX</H3
+NAME="NEWRELEASE-AIX"
+>6.3.12. AIX</A
+></H3
><P
> Login to Sourceforge's compilefarm via ssh:
</P
><H2
CLASS="SECT2"
><A
-NAME="RELEASING">6.4. Uploading and Releasing Your Package</H2
+NAME="RELEASING"
+>6.4. Uploading and Releasing Your Package</A
+></H2
><P
> After the package is ready, it is time to upload it
to SourceForge, and go through the release steps. The upload
></LI
><LI
><P
-> user: <TT
+> user: <VAR
CLASS="LITERAL"
->anonymous</TT
+>anonymous</VAR
>
</P
></LI
><LI
><P
-> password: <TT
+> password: <VAR
CLASS="LITERAL"
->ijbswa-developers@lists.sourceforge.net</TT
+>ijbswa-developers@lists.sourceforge.net</VAR
>
</P
></LI
>http://sourceforge.net/project/admin/editpackages.php?group_id=11118</A
>,
making sure you are logged in. Find your target platform in the
- second column, and click <TT
+ second column, and click <VAR
CLASS="LITERAL"
->Add Release</TT
+>Add Release</VAR
>. You will
then need to create a new release for your package, using the format
- of <TT
+ of <VAR
CLASS="LITERAL"
->$VERSION ($CODE_STATUS)</TT
+>$VERSION ($CODE_STATUS)</VAR
>, e.g. <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
->3.1.1
+>3.0.3
(beta)</I
></SPAN
>.
</P
><P
> If you have made errors, or need to make changes, you can go through
- essentially the same steps, but select <TT
+ essentially the same steps, but select <VAR
CLASS="LITERAL"
->Edit Release</TT
+>Edit Release</VAR
>,
- instead of <TT
+ instead of <VAR
CLASS="LITERAL"
->Add Release</TT
+>Add Release</VAR
>.
</P
></DIV
><H2
CLASS="SECT2"
><A
-NAME="AFTERRELEASE">6.5. After the Release</H2
+NAME="AFTERRELEASE"
+>6.5. After the Release</A
+></H2
><P
> When all (or: most of the) packages have been uploaded and made available,
send an email to the <A