jim 00/02/25 18:46:44
Modified: . how-to-release.html Log: Various changes, esp since the change to locus Revision Changes Path 1.60 +192 -179 apache-devsite/how-to-release.html Index: how-to-release.html =================================================================== RCS file: /home/cvs/apache-devsite/how-to-release.html,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- how-to-release.html 2000/02/25 15:40:44 1.59 +++ how-to-release.html 2000/02/26 02:46:44 1.60 @@ -38,80 +38,8 @@ <P> <BR> -<H2>Announcing a New Release</H2> + <H2><A NAME="tarball">How to build an Apache Unix release</A></H2> -<P>Once a release is built (<A HREF="#tarball">see below</A>), -it is time to announce it to the world. Ideally, the Announcement -should be composed and committed <B>before</B> the -Release is actually built. So we describe these steps at the beginning. - -<OL> -<HR> - - <B>[ Adjusting Announcement to taste ]</B><BR> - <P> - <LI>A prototype <CODE>Announcement</CODE> is included in - the main CVS source tree. This file should be updated - to reflect the current state of affairs concerning the - release. For example, the Release Version should reflect - what is actually being announced. Also, the key enhancements - of the Release should be noted.<BR> - <CODE><B>$ cvs checkout apache-1.<EM>X</EM>/Announcement</B></CODE><BR> - <CODE><B>$ cd apache-1.<EM>X</EM></B></CODE><BR> - <CODE><B>$ vi Announcement</B></CODE><BR> - <CODE><B>$ cvs commit Announcement</B></CODE><BR> - <CODE><B>$ cd ..</B></CODE><BR> - <CODE><B>$ cvs release -d apache-1.<EM>X</EM></B></CODE> - <P> - <B>Note:</B> This document is also present in the - <CODE>apache-site/dist/</CODE> directory, both in HTML and plain - text form. You may want to create one version out of the other. - <P> - <HR> - <B>[ Building the source release ]</B><BR> - <P> - <LI>First, build the source release (<A HREF="#tarball">see below</A>) - if not already done. - <P> - <HR> - <B>[ Posting the Announcement ]</B><BR> - <P> - <LI>Once the tarball is built, give the mirrors a good 24 hours - to get up to sync. This is really important if this this - a final (i.e.: non-beta) release. - <LI>Now, <CODE>Announcement</CODE> should be - posted to the following places: - <UL> - <LI>Unmoderated UseNet newsgroups (should be crossposted) - <UL> - <LI><CODE>comp.infosystems.www.servers.unix</CODE> - <LI><CODE>comp.infosystems.www.servers.ms-windows</CODE> - <LI><CODE>comp.infosystems.www.servers.misc</CODE> - <LI><CODE>de.comm.infosystems.www.servers</CODE> - </UL> - <LI>Moderated UseNet newsgroups (do <B>not</B> crosspost) - <UL> - <LI><CODE>comp.infosystems.www.announce</CODE> - </UL> - <LI>Mailing Lists - <UL> - <LI><CODE>[EMAIL PROTECTED]</CODE> - <LI><CODE>[EMAIL PROTECTED]</CODE> - </UL> - </UL> - <P> - <LI>Make sure that <CODE>Announcement.txt</CODE> and - <CODE>Announcement.html</CODE> in <CODE>apache-site</CODE> - in the <CODE>dist</CODE> directory are updated to include - these changes. - <LI>Bask in the glow -</OL> - -<P> -<BR> - -<H2><A NAME="tarball">How to build an Apache Unix release</A></H2> - <P><FONT COLOR="red">Note:</FONT> The below assumes that you are using <CODE>ssh</CODE> to login to your <CODE>dev.apache.org</CODE> account. If you are "rolling the tarball" remotely, the differences @@ -124,25 +52,41 @@ tarball and release. <OL> -<HR> -<LI> Checkout the Apache source if needed into a scratch directory:<BR> + <HR> + <LI> Checkout the Apache source if needed into a scratch directory:<BR> <CODE><B>$ cvs checkout apache-1.<EM>X</EM></B></CODE> -<P> -<LI> cd into the <CODE>apache-1.<EM>X</EM></CODE> CVS tree.<BR> + <P> + <LI> cd into the <CODE>apache-1.<EM>X</EM></CODE> CVS tree.<BR> <CODE><B>$ cd apache-1.<EM>X</EM></B></CODE> -<P> - -<HR> -<B>[ Only for final releases, not for internal pre-releases ]</B><BR> -<P> -<LI> Change <CODE>SERVER_VERSION</CODE> in <TT>src/include/httpd.h</TT> + <P><b>[ Adjusting Announcement to taste ]</b><br> + <LI> + <p> + <ul> + <li>A prototype <code>Announcement</code> is included in + the main CVS source tree. This file should be updated + to reflect the current state of affairs concerning the + release. For example, the Release Version should reflect + what is actually being announced. Also, the key enhancements + of the Release should be noted.<br> + <code><b>$ vi Announcement</b></code><br> + <code><b>$ cvs commit Announcement</b></code><br> + <p> + <b>Note:</b> This document is also present in the + <code>apache-site/dist/</code> directory, both in HTML and plain + text form. You may want to create one version out of the other. + </ul> + <HR> + <B>[ Only for final releases, not for internal pre-releases ]</B><BR> + <P> + <LI> Change <CODE>SERVER_VERSION</CODE> in <TT>src/include/httpd.h</TT> from ``<CODE>Apache/1.<EM>X.Y</EM>-dev</CODE>'' to ``<CODE>Apache/1.<EM>X.Y</EM></CODE>''. Then also change <CODE>APACHE_RELEASE</CODE> in the same file from ``<CODE>1<EM>XXYY0</EM>00</CODE>'' to ``<CODE>1<EM>XXYY1</EM>00</CODE>''. The format is something like <CODE>printf("%d%02d%02d%d%02d", major, minor, bugfix, final, - beta)</CODE>. <BR> Also update the Windows registry key: + beta)</CODE>. <BR> + Also update the Windows registry key: edit <SAMP>src/os/win32/registry.c</SAMP> and change the <CODE>VERSION</CODE> from <CODE>"1.<EM>X.Y</EM> dev"</CODE> to the string <CODE>"1.<EM>X.Y</EM>"</CODE>. @@ -150,47 +94,50 @@ <CODE><B>$ vi src/include/httpd.h</B></CODE><BR> <CODE><B>$ vi src/os/win32/registry.c</B></CODE><BR> <CODE><B>$ cvs commit src/include/httpd.h src/os/win32/registry.c</B></CODE> -<P> -<LI> Make sure your PGP keys are already present in the <CODE>KEYS</CODE> + <P> + <LI> Make sure your PGP keys are already present in the <CODE>KEYS</CODE> file. If they are not, extract your public key using the ``<CODE>pgp -kxa</CODE>'' command, add them to the <CODE>KEYS</CODE> file and commit it before tagging. -<P> -<LI> Tag the sources for this release:<BR> + <P> + <LI> Tag the sources for this release:<BR> (<EM>note: be sure to tag the whole thing, not just <CODE>src</CODE></EM>!)<BR> <CODE><B>$ cvs tag APACHE_1_<EM>X_Y</EM></B></CODE> -<P> -<HR> -<B>[ For all releases ]</B><BR> -<P> -<LI> Make an export version of the distribution: (this creates a second + <P> + <HR> + <B>[ For all releases ]</B><BR> + <P> + <LI> Make an export version of the distribution: (this creates a second subdirectory <CODE>apache-1.<EM>X.Y</EM></CODE> for the exported version beside the existing CVS tree in <CODE>apache-1.<EM>X</EM></CODE>)<BR> <CODE><B>$ cd ..</B></CODE><BR> <CODE><B>$ umask 022</B></CODE><BR> <CODE><B>$ cvs export -r APACHE_1_<EM>X_Y</EM> -d apache_1.<EM>X.Y</EM> apache-1.<EM>X</EM></B></CODE><BR> <CODE><B>$ cd apache_1.<EM>X.Y</EM></B></CODE><BR> - <UL> - <LI><FONT COLOR="red">Note:</FONT> There is a known problem + + <UL> + + <LI><FONT COLOR="red">Note:</FONT> There is a known problem using <CODE>cvs export</CODE> remotely with <CODE>cvs-1.9</CODE> and later. If this affects you, you will need to do a checkout instead:<BR> <CODE><B>$ umask 022</B></CODE><BR> <CODE><B>$ cvs checkout -r APACHE_1_<EM>X_Y</EM> -d apache_1.<EM>X.Y</EM> apache-1.<EM>X</EM></B></CODE><BR> <CODE><B>$ cd apache_1.<EM>X.Y</EM></B></CODE><BR> - </UL> -<P> -<LI> Make sure the master site's FAQ is up-to-date:<br> + + </UL> + <P> + <LI> Make sure the master site's FAQ is up-to-date:<br> <code><b>$ (cd /www/apache.org/docs/misc ; cvs update)</b></code> -<p> -<li> Extract the FAQ as a single file, as it appears on the Web:<br> + <p> + <li> Extract the FAQ as a single file, as it appears on the Web:<br> <code><b>$ lynx -source http://www.apache.org/docs/misc/FAQ.html > htdocs/manual/misc/FAQ.html</b></code> -<p> -<LI> Create <CODE>src/Configuration</CODE> file:<BR> + <p> + <LI> Create <CODE>src/Configuration</CODE> file:<BR> <CODE><B>$ cp src/Configuration.tmpl src/Configuration</B></CODE> -<P> -<LI> Remove <CODE>STATUS</CODE>, <CODE>RULES.CVS</CODE>, + <P> + <LI> Remove <CODE>STATUS</CODE>, <CODE>RULES.CVS</CODE>, <CODE>src/INDENT</CODE>, the multi-part FAQ, various <CODE>.cvsignore</CODE> and the developer's test subdirectories:<BR> @@ -198,52 +145,59 @@ htdocs/manual/misc/FAQ-*.html</B></CODE><BR> <CODE><B>$ find . -name ".cvsignore" -exec rm {} \;</B></CODE><BR> <CODE><B>$ rm -rf src/test src/modules/test</B></CODE> - <UL> - <LI><FONT COLOR="red">Note:</FONT> If you needed to do a + + <UL> + + <LI><FONT COLOR="red">Note:</FONT> If you needed to do a <CODE>checkout</CODE> instead of a <CODE>export</CODE>, you will also need to remove the CVS administrative files:<BR> <CODE><B>$ find . -type d -name "CVS" -exec rm -rf {} \;</B></CODE> - </UL> -<P> -<LI> Expand the Server-Side-Include directives in the manual:<BR> + + </UL> + <P> + <LI> Expand the Server-Side-Include directives in the manual:<BR> <CODE><B>$ cd htdocs/manual</B></CODE><BR> <CODE><B>$ ./expand.pl</B></CODE><BR> <CODE><B>$ rm ./expand.pl</B></CODE><BR> <CODE><B>$ cd ../../..</B></CODE> -<P> -<LI> Roll the distribution tarball:<BR> + <P> + <LI> Roll the distribution tarball:<BR> <CODE><B>$ tar cvf apache_1.<EM>X.Y</EM>.tar apache_1.<EM>X.Y</EM></B></CODE><BR> -<P> -<LI> Make the final packed distribution files:<BR> + <P> + <LI> Make the final packed distribution files:<BR> <CODE><B>$ cp -p apache_1.<EM>X.Y</EM>.tar xapache_1.<EM>X.Y</EM>.tar</B></CODE><BR> <CODE><B>$ gzip -9 apache_1.<EM>X.Y</EM>.tar</B></CODE><BR> <CODE><B>$ mv xapache_1.<EM>X.Y</EM>.tar apache_1.<EM>X.Y</EM>.tar</B></CODE><BR> <CODE><B>$ compress apache_1.<EM>X.Y</EM>.tar</B></CODE><BR> -<P> -<LI> Test the packed tar files and check for errors:<BR> + <P> + <LI> Test the packed tar files and check for errors:<BR> <CODE><B>$ gunzip -c apache_1.<EM>X.Y</EM>.tar.gz | tar tvf -</B></CODE><BR> <CODE><B>$ zcat apache_1.<EM>X.Y</EM>.tar.Z | tar tvf -</B></CODE><BR> -<P> -<LI> Sign the distribution files:<BR> + <P> + <LI> Sign the distribution files:<BR> <CODE><B>$ pgp -sba apache_1.<EM>X.Y</EM>.tar.gz</B></CODE><BR> <CODE><B>$ pgp -sba apache_1.<EM>X.Y</EM>.tar.Z</B></CODE><BR> - <UL> - <LI><FONT COLOR="red">Note:</FONT> Be sure your PGP key is already in the + + <UL> + + <LI><FONT COLOR="red">Note:</FONT> Be sure your PGP key is already in the <CODE>KEYS</CODE> file!<BR> - </UL> -<P> -<LI> Test the tarball signatures:<BR> + + </UL> + <P> + <LI> Test the tarball signatures:<BR> <CODE><B>$ pgp apache_1.<EM>X.Y</EM>.tar.gz.asc apache_1.<EM>X.Y</EM>.tar.gz</B></CODE><BR> <CODE><B>$ pgp apache_1.<EM>X.Y</EM>.tar.Z.asc apache_1.<EM>X.Y</EM>.tar.Z</B></CODE><BR> -<P> -<LI> Remember the CHANGES file:<BR> + <P> + <LI> Remember the CHANGES file:<BR> <CODE><B>$ cp apache_1.<EM>X.Y</EM>/src/CHANGES .</B></CODE> -<P> -<LI> Cleanup:<BR>(this deletes the export tree: it is now no longer + <P> + <LI> Cleanup:<BR> + (this deletes the export tree: it is now no longer required. We still need the CVS tree, see below)<BR> <CODE><B>$ rm -fr apache_1.<EM>X.Y</EM></B></CODE> -<P> -<LI> Make the tarball available for testing purposes + <P> + <LI> Make the tarball available for testing purposes (in <A HREF="http://dev.apache.org/dist/">http://dev.apache.org/dist/</A>):<BR> <CODE><B>$ chmod 664 CHANGES apache_1.<EM>X.Y</EM>.tar.*</B></CODE><BR> <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.gz /www/dev.apache.org/dist/</B></CODE><BR> @@ -251,20 +205,23 @@ <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.Z /www/dev.apache.org/dist/</B></CODE><BR> <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.Z.asc /www/dev.apache.org/dist/</B></CODE><BR> <CODE><B>$ chmod g+w /www/dev.apache.org/dist/apache_1.<EM>X.Y</EM>.tar.*</B></CODE><BR> - <UL> - <LI><FONT COLOR="red">Note:</FONT> If rolling the tarball + + <UL> + + <LI><FONT COLOR="red">Note:</FONT> If rolling the tarball remotely, you should use <CODE>scp</CODE> to place them in <CODE>dev.apache.org</CODE> in the <CODE>/www/dev.apache.org/dist</CODE> directory. - </UL> -<P> -<HR> -<B>[ Only for final releases, not for internal pre-releases ]</B><BR> -<P> -<LI> cd back into the CVS tree location.<BR> + + </UL> + <P> + <HR> + <B>[ Only for final releases, not for internal pre-releases ]</B><BR> + <P> + <LI> cd back into the CVS tree location.<BR> <CODE><B>$ cd apache-1.<EM>X</EM></B></CODE> -<P> -<LI> Change <CODE>SERVER_VERSION</CODE> in <CODE>src/include/httpd.h</CODE> + <P> + <LI> Change <CODE>SERVER_VERSION</CODE> in <CODE>src/include/httpd.h</CODE> from ``<CODE>Apache/1.<EM>X.Y</EM></CODE>'' to ``<CODE>Apache/1.<EM>X.(Y+1)</EM>-dev</CODE>'' and change <CODE>APACHE_RELEASE</CODE> to <CODE>1<EM>XX(YY+1)</EM>000</CODE>.<BR> @@ -291,47 +248,50 @@ src/Configure \<BR> src/CHANGES</B></CODE><BR> <CODE><B>$ cd ..</B></CODE><BR> -<P> -<HR> -<LI> Cleanup:<BR> + <P> + <HR> + <LI> Cleanup:<BR> (delete the CVS tree, after verification that it does not contain any uncommitted changes)<BR> <CODE><B>$ cvs release -d apache-1.<EM>X</EM></B></CODE> -<P> + <P> <B>[ Now wait for the group to test and approve the tarball ]</B> -<HR> -<B>[ Final release steps <U>after</U> the group has approved the tarball ]</B><BR> -<P> + <HR> + <B>[ Final release steps <U>after</U> the group has approved the tarball ]</B><BR> + <P> <EM><FONT COLOR="red">Note:</FONT> Do not continue with the rest of these instructions until the group really approves the tarball !</EM> -<P> -<LI> Make the distribution available + <P> + <LI> Make the distribution available (in <A HREF="http://www.apache.org/dist/">http://www.apache.org/dist/</A>):<BR> - <CODE><B>$ cp CHANGES /www/apache.org/dist/CHANGES_1.<EM>X</EM></B></CODE><BR> - <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.gz /www/apache.org/dist</B></CODE><BR> - <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.gz.asc /www/apache.org/dist</B></CODE><BR> - <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.Z /www/apache.org/dist</B></CODE><BR> - <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.Z.asc /www/apache.org/dist</B></CODE><BR> - <UL> - <LI><FONT COLOR="red">Note:</FONT> If rolling the tarball + <CODE><B>$ cp CHANGES /www/www.apache.org/dist/CHANGES_1.<EM>X</EM></B></CODE><BR> + <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.gz /www/www.apache.org/dist</B></CODE><BR> + <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.gz.asc /www/www.apache.org/dist</B></CODE><BR> + <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.Z /www/www.apache.org/dist</B></CODE><BR> + <CODE><B>$ cp apache_1.<EM>X.Y</EM>.tar.Z.asc /www/www.apache.org/dist</B></CODE><BR> + + <UL> + + <LI><FONT COLOR="red">Note:</FONT> If rolling the tarball remotely, you should use <CODE>scp</CODE> to place them in <CODE>dev.apache.org</CODE> in the <CODE>/www/apache.org/dist/</CODE> directory. - </UL> - If the Win32 binary is already built and tested at this point, + + </UL> + If the Win32 binary is already built and tested at this point, you can add it to the dist directory as well as to the <CODE>binaries/win32/</CODE> directory. -<P> -<LI> Checkout the Apache site if needed into a scratch directory:<BR> + <P> + <LI> Checkout the Apache site if needed into a scratch directory:<BR> <CODE><B>$ cvs checkout apache-site</B></CODE> -<P> -<LI> cd into the <CODE>apache-site</CODE> CVS tree.<BR> + <P> + <LI> cd into the <CODE>apache-site</CODE> CVS tree.<BR> <CODE><B>$ cd apache-site</B></CODE> -<P> -<LI> Edit the files - <A HREF="http://www.apache.org/dist/README.html"><CODE>README.html</CODE></A> as well as + <P> + <LI> Edit the files + <A HREF="http://www.apache.org/dist/README.html"><CODE>README.html</CODE></A> and <A HREF="http://www.apache.org/dist/HEADER.html"><CODE>HEADER.html</CODE></A> as well as <A HREF="http://www.apache.org/dist/Announcement.html"><CODE>Announcement.html</CODE></A> and its plaintext equivalent <A HREF="http://www.apache.org/dist/Announcement.txt"><CODE>Announcement.txt</CODE></A> plus the <A HREF="http://www.apache.org/dist/.htaccess"><CODE>.htaccess</CODE></A> file (which defines the @@ -339,39 +299,92 @@ from the <CODE>apache-site</CODE> CVS tree as required (all in the <A HREF="http://www.apache.org/dist/"><CODE>./dist</CODE></A> - subdirectory):<BR> + subdirectory). The <CODE>Announcement.*</CODE> files should be based on the <CODE>Announcement</CODE> file in the tagged CVS tree:<BR> + <CODE><B>$ vi dist/README.html \<BR> + dist/HEADER.html \<BR> dist/Announcement.html \<BR> dist/Announcement.txt \<BR> dist/.htaccess</B></CODE><BR> -<P> -<LI> Edit the Apache <CODE>index.html</CODE> from <CODE>apache-site</CODE> + <P> + <LI> Edit the Apache <CODE>httpd.html</CODE> from <CODE>apache-site</CODE> CVS tree as required:<BR> - <CODE><B>$ vi index.html</B></CODE><BR> -<P> -<LI> Commit the changes:<BR> - <CODE><B>$ cvs commit index.html \<BR> - dist/README.html \<BR> + <CODE><B>$ vi httpd.html</B></CODE><BR> + <P> + <LI> Commit the changes:<BR> + <CODE><B>$ cvs commit httpd.html \<BR> + dist/README.html \<br> + dist/HEADER.html \<br> dist/Announcement.html \<BR> dist/Announcement.txt \<BR> dist/.htaccess</B></CODE> -<P> -<LI> Update the checked-out versions of the <CODE>apache-site</CODE> documents + <P> + <LI> Update the checked-out versions of the <CODE>apache-site</CODE> documents for the web server:<BR> <CODE><B>$ umask 002</B></CODE><BR> - <CODE><B>$ cd /www/apache.org/</B></CODE><BR> + <CODE><B>$ cd /www/www.apache.org/</B></CODE><BR> <CODE><B>$ cvs update index.html \<BR> dist/README.html \<BR> - dist/Announcement.html \<BR> + dist/HEADER.html \<br> + dist/Announcement.html \<BR> dist/Announcement.txt \<BR> dist/.htaccess</B></CODE> -<P> -<LI> Create an empty directory for future patches:<BR> + <P> + <LI> Create an empty directory for future patches:<BR> <CODE><B>$ mkdir patches/apply_to_1.<EM>X.Y</EM></B></CODE> + <P> + <LI>At this +point, the web-site reflect the existance of the new release. </OL> -<P> -<BR> +<P> + +<h2>Announcing a New Release</h2> +<p>Once a release is built (<a href="#tarball">see below</a>), +it is time to announce it to the world. +<ol> + <hr> + <b>[ Grab the prepared Announcement ]</b><br> + <p> + <li>You can grab either the <CODE>Announcement</CODE> file in the tagged tree, or the <CODE>Announcement.txt</CODE> file from the web-site.<br> + <p> + <hr> + <b>[ Posting the Announcement ]</b><br> + <p> + <li>Once the tarball is built, give the mirrors a good 24 hours + to get up to sync. This is really important if this this + a final (i.e.: non-beta) release. + <p> + <li>Now, <code>Announcement</code> should be + posted to the following places: + <ul> + <li>Unmoderated UseNet newsgroups (should be crossposted) + <ul> + <li><code>comp.infosystems.www.servers.unix</code> + <li><code>comp.infosystems.www.servers.ms-windows</code> + <li><code>comp.infosystems.www.servers.misc</code> + <li><code>de.comm.infosystems.www.servers</code> + </ul> + <li>Moderated UseNet newsgroups (do <b>not</b> crosspost) + <ul> + <li><code>comp.infosystems.www.announce</code> + </ul> + <li>Mailing Lists + <ul> + <li><code>[EMAIL PROTECTED]</code> + <li><code>[EMAIL PROTECTED]</code> + </ul> + </ul> + <p> + <li>Make sure that <code>Announcement.txt</code> and + <code>Announcement.html</code> in <code>apache-site</code> + in the <code>dist</code> directory are updated to include + these changes. + <p> + <li>Bask in the glow +</ol> +<p> +<P><BR> <H2>How to build an Apache Windows release</H2> See <A HREF="how-to-release-win32">how to build a release of Apache