>Releasing a New Version</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="testing.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="webserver-update.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="NEWRELEASE"
->6. Releasing a New Version</A
-></H1
+NAME="NEWRELEASE">6. Releasing a New Version</H1
><P
> When we release versions of <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="VERSIONNUMBERS"
->6.1. Version numbers</A
-></H2
+NAME="VERSIONNUMBERS">6.1. Version numbers</H2
><P
> First you need to determine which version number the release will have.
<SPAN
> Y, the version minor, represents the branch within the major version.
At any point in time, there are two branches being maintained:
The stable branch, with an even minor, say, 2N, in which no functionality is
- being added and only bugfixes are made, and 2N+1, the development branch, in
+ being added and only bug-fixes are made, and 2N+1, the development branch, in
which the further development of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
place.
This enables us to turn the code upside down and inside out, while at the same time
providing and maintaining a stable version.
- The minor is reset to zero (and one) when the major is inrcemented. When a development
+ The minor is reset to zero (and one) when the major is incremented. When a development
branch has matured to the point where it can be turned into stable, the old stable branch
2N is given up (i.e. no longer maintained), the former development branch 2N+1 becomes the
new stable branch 2N+2, and a new development branch 2N+3 is opened.
><H2
CLASS="SECT2"
><A
-NAME="BEFORERELEASE"
->6.2. Before the Release: Freeze</A
-></H2
+NAME="BEFORERELEASE">6.2. Before the Release: Freeze</H2
><P
-> The following <I
+> The following <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>must be done by one of the
developers</I
+></SPAN
> prior to each new release.
</P
><P
></LI
><LI
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>Commit all files that were changed in the above steps!</I
+></SPAN
>
</P
></LI
><H2
CLASS="SECT2"
><A
-NAME="THERELEASE"
->6.3. Building and Releasing the Packages</A
-></H2
+NAME="THERELEASE">6.3. Building and Releasing the Packages</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.
</P
><P
-> For <I
+> For <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> types of packages, including the source tarball,
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>you must make sure that you build from clean sources by exporting
the right version from CVS into an empty directory:</I
+></SPAN
>.
</P
><P
>
</P
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>Do NOT change</I
+></SPAN
> a single bit, including, but not limited to
version information after export from CVS. This is to make sure that
all release packages, and with them, all future bug reports, are based
><H3
CLASS="SECT3"
><A
-NAME="PACK-GUIDELINES"
->6.3.1. Note on Privoxy Packaging</A
-></H3
+NAME="PACK-GUIDELINES">6.3.1. Note on Privoxy Packaging</H3
><P
> Please keep these general guidelines in mind when putting together
- your package. These apply to <I
+ your package. These apply to <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> platforms!
</P
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>requires</I
+></SPAN
>
write access to: all <TT
CLASS="FILENAME"
> <TT
CLASS="FILENAME"
>LICENSE</TT
-> (toplevel directory)
+> (top-level directory)
</TD
></TR
></TBODY
> <TT
CLASS="FILENAME"
>README</TT
-> (toplevel directory)
+> (top-level directory)
</TD
></TR
></TBODY
> <TT
CLASS="FILENAME"
>AUTHORS</TT
-> (toplevel directory)
+> (top-level directory)
</TD
></TR
></TBODY
> <TT
CLASS="FILENAME"
>man page</TT
-> (toplevel directory, Unix-like
+> (top-level directory, Unix-like
platforms only)
</TD
></TR
CLASS="FILENAME"
>Developer Manual</TT
>
- (doc/webserver/devel-manual) and <TT
+ (doc/webserver/developer-manual) and <TT
CLASS="FILENAME"
>ChangeLog</TT
>
- (toplevel directory). <TT
+ (top-level directory). <TT
CLASS="FILENAME"
>FAQ</TT
> and the manuals are
to each other from parallel directories, and should be packaged
that way. <TT
CLASS="FILENAME"
+>privoxy-index.html</TT
+> can also be
+ included and can serve as a focal point for docs and other links of
+ interest (and possibly renamed to <TT
+CLASS="FILENAME"
>index.html</TT
-> can also be included and
- can serve as a focal point for docs and other links of interest.
- This should be one level up from the manuals. There are two
+>).
+ This should be one level up from the manuals. There is a link also
+ on this page to an HTMLized version of the man page. To avoid 404 for
+ this, it is in CVS as
+ <TT
+CLASS="FILENAME"
+>doc/webserver/man-page/privoxy-man-page.html</TT
+>,
+ and should be included along with the manuals. There is also a
css stylesheets that can be included for better presentation:
<TT
CLASS="FILENAME"
>p_doc.css</TT
-> and <TT
+>. This should be in the same directory
+ with <TT
CLASS="FILENAME"
->p_web.css</TT
->.
- These should be in the same directory with
- <TT
-CLASS="FILENAME"
->index.html</TT
->, (i.e. one level up from the manual
- directories).
+>privoxy-index.html</TT
+>, (i.e. one level up from
+ the manual directories).
</P
></LI
><LI
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-TARBALL"
->6.3.2. Source Tarball</A
-></H3
+NAME="NEWRELEASE-TARBALL">6.3.2. Source Tarball</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-RPM"
->6.3.3. SuSE, Conectiva or Red Hat RPM</A
-></H3
+NAME="NEWRELEASE-RPM">6.3.3. SuSE, Conectiva or Red Hat RPM</H3
><P
> In following text, replace <TT
CLASS="REPLACEABLE"
> for SuSE.
</P
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above).
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-OS2"
->6.3.4. OS/2</A
-></H3
+NAME="NEWRELEASE-OS2">6.3.4. OS/2</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then get the OS/2 Setup module:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-SOLARIS"
->6.3.5. Solaris</A
-></H3
+NAME="NEWRELEASE-SOLARIS">6.3.5. Solaris</H3
><P
> Login to Sourceforge's compilefarm via ssh:
</P
</P
><P
> Choose the right operating system (not the Debian one).
- When logged in, <I
+ When logged in, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-WINDOWS"
->6.3.6. Windows</A
-></H3
+NAME="NEWRELEASE-WINDOWS">6.3.6. Windows</H3
><P
> You should ensure you have the latest version of Cygwin (from
<A
Run the following commands from within a Cygwin bash shell.
</P
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then get the Windows setup module:
</P
><TD
><PRE
CLASS="PROGRAMLISTING"
-> cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
+> cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
></TD
></TR
></TABLE
><TD
><PRE
CLASS="PROGRAMLISTING"
-> cd winsetup
- make</PRE
+> cd winsetup
+ make</PRE
></TD
></TR
></TABLE
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-DEBIAN"
->6.3.7. Debian</A
-></H3
+NAME="NEWRELEASE-DEBIAN">6.3.7. Debian</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
->. (See "Building and releasing
- packages" above). Then, run:
- </P
+>make sure that you have freshly exported the
+ right version into an empty directory</I
+></SPAN
+>. (See
+ "Building and releasing packages" above). Then add a log
+ entry to <TT
+CLASS="FILENAME"
+>debian/changelog</TT
+>, if it is not
+ already there, for example by running:
+ </P
><P
-> <TABLE
+> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TD
><PRE
CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
+> debchange -v 2.9.15-beta-1 "New upstream version"</PRE
></TD
></TR
></TABLE
>
- </P
+ </P
><P
-> Then do FIXME.
- </P
+> Then, run:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> dpkg-buildpackage -rfakeroot -us -uc -b</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+><P
+> This will create
+ <TT
+CLASS="FILENAME"
+>../privoxy_2.9.15-beta-1_i386.deb</TT
+>
+ which can be uploaded. To upload the package to Sourceforge, simply
+ issue
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> make debian-upload</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-MACOSX"
->6.3.8. Mac OSX</A
-></H3
+NAME="NEWRELEASE-MACOSX">6.3.8. Mac OSX</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then get the Mac OSX setup module:
</P
><TD
><PRE
CLASS="PROGRAMLISTING"
->zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
+> zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
></TD
></TR
></TABLE
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-FREEBSD"
->6.3.9. FreeBSD</A
-></H3
+NAME="NEWRELEASE-FREEBSD">6.3.9. FreeBSD</H3
><P
-> Login to Sourceforge's compilefarm via ssh:
+> Login to Sourceforge's compile-farm via ssh:
</P
><P
> <TABLE
</P
><P
> Choose the right operating system.
- When logged in, <I
+ When logged in, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-HPUX"
->6.3.10. HP-UX 11</A
-></H3
+NAME="NEWRELEASE-HPUX">6.3.10. HP-UX 11</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-AMIGA"
->6.3.11. Amiga OS</A
-></H3
+NAME="NEWRELEASE-AMIGA">6.3.11. Amiga OS</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-AIX"
->6.3.12. AIX</A
-></H3
+NAME="NEWRELEASE-AIX">6.3.12. AIX</H3
><P
> Login to Sourceforge's compilefarm via ssh:
</P
</P
><P
> Choose the right operating system.
- When logged in, <I
+ When logged in, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H2
CLASS="SECT2"
><A
-NAME="RELEASING"
->6.4. Uploading and Releasing Your Package</A
-></H2
+NAME="RELEASING">6.4. Uploading and Releasing Your Package</H2
><P
> After the package is ready, it is time to upload it
to SourceForge, and go through the release steps. The upload
of <TT
CLASS="LITERAL"
>$VERSION ($CODE_STATUS)</TT
->, e.g. <I
+>, e.g. <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>2.9.15
(beta)</I
+></SPAN
>.
</P
><P
><H2
CLASS="SECT2"
><A
-NAME="AFTERRELEASE"
->6.5. After the Release</A
-></H2
+NAME="AFTERRELEASE">6.5. After the Release</H2
><P
> When all (or: most of the) packages have been uploaded and made available,
send an email to the <A
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="testing.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="webserver-update.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR