Rebuild with code declared stable.
[privoxy.git] / doc / webserver / developer-manual / newrelease.html
index 0f9882f..6814b0e 100644 (file)
@@ -1,11 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
 <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.79"><LINK
 REL="HOME"
 TITLE="Privoxy Developer Manual"
 HREF="index.html"><LINK
@@ -17,7 +17,10 @@ TITLE="Update the Webserver"
 HREF="webserver-update.html"><LINK
 REL="STYLESHEET"
 TYPE="text/css"
-HREF="../p_doc.css"></HEAD
+HREF="../p_doc.css"><META
+HTTP-EQUIV="Content-Type"
+CONTENT="text/html;
+charset=ISO-8859-1"></HEAD
 ><BODY
 CLASS="SECT1"
 BGCOLOR="#EEEEEE"
@@ -73,7 +76,9 @@ CLASS="SECT1"
 ><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"
@@ -108,7 +113,9 @@ CLASS="SECT2"
 ><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
@@ -165,6 +172,29 @@ CLASS="APPLICATION"
               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 <TT
+CLASS="LITERAL"
+>0.0.0</TT
+>, 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. 
+              <TT
+CLASS="LITERAL"
+>3.0.1 -&#62; 0.0.0 -&#62; 3.0.2</TT
+>.
+            </P
 ></LI
 ></UL
 >
@@ -173,18 +203,18 @@ CLASS="APPLICATION"
 >     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 -&#62; 3.0.1 -&#62; 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
+     <TT
+CLASS="LITERAL"
+>3.0</TT
+>, 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
+     -&#62; 3.0.1 -&#62; 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
@@ -192,7 +222,23 @@ CLASS="EMPHASIS"
 >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 <TT
+CLASS="LITERAL"
+>v_3_0_branch</TT
+> at the moment).
     </P
 ></DIV
 ><DIV
@@ -200,7 +246,9 @@ CLASS="SECT2"
 ><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"
@@ -383,7 +431,9 @@ CLASS="SECT2"
 ><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.
@@ -417,8 +467,8 @@ WIDTH="100%"
 CLASS="PROGRAMLISTING"
 >  mkdir dist # delete or choose different name if it already exists
   cd dist
-  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
-  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current</PRE
+  cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current</PRE
 ></TD
 ></TR
 ></TABLE
@@ -436,6 +486,36 @@ CLASS="EMPHASIS"
      all release packages, and with them, all future bug reports, are based
      on exactly the same code.
     </P
+><DIV
+CLASS="WARNING"
+><P
+></P
+><TABLE
+CLASS="WARNING"
+BORDER="1"
+WIDTH="100%"
+><TR
+><TD
+ALIGN="CENTER"
+><B
+>Warning</B
+></TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+><P
+>      Every significant release of Privoxy has included at least one 
+      package that either had incorrect versions of files, missing files, 
+      or incidental leftovers from a previous build process that gave 
+      unknown numbers of users headaches to try to figure out what was 
+      wrong. PLEASE, make sure you are using pristene sources, and are
+      following the prescribed process!
+     </P
+></TD
+></TR
+></TABLE
+></DIV
 ><P
 >     Please find additional instructions for the source tarball and the
      individual platform dependent binary packages below. And details 
@@ -446,7 +526,9 @@ CLASS="SECT3"
 ><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
@@ -648,15 +730,36 @@ CLASS="FILENAME"
 >        <TT
 CLASS="FILENAME"
 >user.action</TT
-> is designed for local preferences. 
-        Make sure this does not get overwritten!
+> and <TT
+CLASS="FILENAME"
+>user.filter</TT
+>
+        are designed for local preferences. Make sure these do not get overwritten!
+        <TT
+CLASS="FILENAME"
+>config</TT
+> should not be overwritten either. This 
+        has especially important configuration data in it.
+        <TT
+CLASS="FILENAME"
+>trust</TT
+> should be left in tact as well.
        </P
 ></LI
 ><LI
 ><P
->        Other configuration files should be installed as the new defaults, 
-        but all previously installed configuration files should be preserved
-        as backups. This is just good manners :-)
+>        Other configuration files (<TT
+CLASS="FILENAME"
+>default.action</TT
+> and
+        <TT
+CLASS="FILENAME"
+>default.filter</TT
+>) should be installed as the new
+        defaults, but all previously installed configuration files should be
+        preserved as backups. This is just good manners :-) These files are
+        likely to change between releases and contain important new features
+        and bug fixes.
        </P
 ></LI
 ><LI
@@ -692,7 +795,9 @@ CLASS="SECT3"
 ><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"
@@ -770,7 +875,9 @@ CLASS="SECT3"
 ><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
 CLASS="REPLACEABLE"
@@ -916,7 +1023,9 @@ CLASS="SECT3"
 ><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"
@@ -937,7 +1046,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup</PRE
+>  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co os2setup</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1051,7 +1160,9 @@ CLASS="SECT3"
 ><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
@@ -1132,7 +1243,9 @@ CLASS="SECT3"
 ><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
@@ -1162,7 +1275,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
+>  cvs -z3  -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1210,7 +1323,9 @@ CLASS="SECT3"
 ><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"
@@ -1236,7 +1351,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->  debchange -v 3.1.1-alpha-1 "New upstream version"</PRE
+>  debchange -v 3.0.11-stable-1 "New upstream version"</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1264,7 +1379,7 @@ CLASS="PROGRAMLISTING"
 >        This will create
         <TT
 CLASS="FILENAME"
->../privoxy_3.1.1-alpha-1_i386.deb</TT
+>../privoxy_3.0.11-stable-1_i386.deb</TT
 >
         which can be uploaded.  To upload the package to Sourceforge, simply
        issue
@@ -1290,7 +1405,9 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="NEWRELEASE-MACOSX">6.3.8. Mac OSX</H3
+NAME="NEWRELEASE-MACOSX"
+>6.3.8. Mac OS X</A
+></H3
 ><P
 >      First, <SPAN
 CLASS="emphasis"
@@ -1300,7 +1417,7 @@ CLASS="EMPHASIS"
         version into an empty directory</I
 ></SPAN
 >. (See "Building and releasing
-        packages" above). Then get the Mac OSX setup module:
+        packages" above). Then get the Mac OS X setup module:
        </P
 ><P
 >      <TABLE
@@ -1311,7 +1428,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup</PRE
+>  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co osxsetup</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1396,7 +1513,9 @@ CLASS="SECT3"
 ><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
@@ -1477,7 +1596,9 @@ CLASS="SECT3"
 ><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"
@@ -1514,7 +1635,9 @@ CLASS="SECT3"
 ><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"
@@ -1551,7 +1674,9 @@ CLASS="SECT3"
 ><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
@@ -1633,7 +1758,9 @@ CLASS="SECT2"
 ><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
@@ -1679,9 +1806,9 @@ CLASS="COMMAND"
     </P
 ><P
 >     Once this done go to <A
-HREF="http://sourceforge.net/project/admin/editpackages.php?group_id=11118"
+HREF="https://sourceforge.net/project/admin/editpackages.php?group_id=11118"
 TARGET="_top"
->http://sourceforge.net/project/admin/editpackages.php?group_id=11118</A
+>https://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
@@ -1696,7 +1823,7 @@ CLASS="LITERAL"
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
->3.1.1
+>3.0.11
      (beta)</I
 ></SPAN
 >.
@@ -1742,7 +1869,9 @@ CLASS="SECT2"
 ><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
@@ -1759,7 +1888,8 @@ TARGET="_top"
       location</A
 >, the release notes and the Changelog. Also, post an
       updated News item on the project page Sourceforge, and update the Home 
-      page and docs linked from the Home page (see below).
+      page and docs linked from the Home page (see below). Other news sites
+      and release oriented sites, such as Freshmeat, should also be notified.
      </P
 ></DIV
 ></DIV