Regenerated docs for 3.0.0.
[privoxy.git] / doc / webserver / developer-manual / newrelease.html
1 <HTML
2 ><HEAD
3 ><TITLE
4 >Releasing a New Version</TITLE
5 ><META
6 NAME="GENERATOR"
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
8 "><LINK
9 REL="HOME"
10 TITLE="Privoxy Developer Manual"
11 HREF="index.html"><LINK
12 REL="PREVIOUS"
13 TITLE="Testing Guidelines"
14 HREF="testing.html"><LINK
15 REL="NEXT"
16 TITLE="Update the Webserver"
17 HREF="webserver-update.html"><LINK
18 REL="STYLESHEET"
19 TYPE="text/css"
20 HREF="../p_doc.css"></HEAD
21 ><BODY
22 CLASS="SECT1"
23 BGCOLOR="#EEEEEE"
24 TEXT="#000000"
25 LINK="#0000FF"
26 VLINK="#840084"
27 ALINK="#0000FF"
28 ><DIV
29 CLASS="NAVHEADER"
30 ><TABLE
31 SUMMARY="Header navigation table"
32 WIDTH="100%"
33 BORDER="0"
34 CELLPADDING="0"
35 CELLSPACING="0"
36 ><TR
37 ><TH
38 COLSPAN="3"
39 ALIGN="center"
40 >Privoxy Developer Manual</TH
41 ></TR
42 ><TR
43 ><TD
44 WIDTH="10%"
45 ALIGN="left"
46 VALIGN="bottom"
47 ><A
48 HREF="testing.html"
49 ACCESSKEY="P"
50 >Prev</A
51 ></TD
52 ><TD
53 WIDTH="80%"
54 ALIGN="center"
55 VALIGN="bottom"
56 ></TD
57 ><TD
58 WIDTH="10%"
59 ALIGN="right"
60 VALIGN="bottom"
61 ><A
62 HREF="webserver-update.html"
63 ACCESSKEY="N"
64 >Next</A
65 ></TD
66 ></TR
67 ></TABLE
68 ><HR
69 ALIGN="LEFT"
70 WIDTH="100%"></DIV
71 ><DIV
72 CLASS="SECT1"
73 ><H1
74 CLASS="SECT1"
75 ><A
76 NAME="NEWRELEASE">6. Releasing a New Version</H1
77 ><P
78 >        When we release versions of <SPAN
79 CLASS="APPLICATION"
80 >Privoxy</SPAN
81 >,
82         our work leaves our cozy secret lab and has to work in the cold
83         RealWorld[tm]. Once it is released, there is no way to call it
84         back, so it is very important that great care is taken to ensure
85         that everything runs fine, and not to introduce problems in the
86         very last minute.
87     </P
88 ><P
89 >        So when releasing a new version, please adhere exactly to the
90         procedure outlined in this chapter.
91     </P
92 ><P
93 >       The following programs are required to follow this process:
94         <TT
95 CLASS="FILENAME"
96 >ncftpput</TT
97 > (ncftp), <TT
98 CLASS="FILENAME"
99 >scp, ssh</TT
100 > (ssh),
101         <TT
102 CLASS="FILENAME"
103 >gmake</TT
104 > (GNU's version of make), autoconf, cvs.
105     </P
106 ><DIV
107 CLASS="SECT2"
108 ><H2
109 CLASS="SECT2"
110 ><A
111 NAME="VERSIONNUMBERS">6.1. Version numbers</H2
112 ><P
113 >      First you need to determine which version number the release will have. 
114       <SPAN
115 CLASS="APPLICATION"
116 >Privoxy</SPAN
117 > version numbers consist of three numbers,
118       separated by dots, like in X.Y.Z, where:
119         <P
120 ></P
121 ><UL
122 ><LI
123 ><P
124 >              X, the version major, is rarely ever changed. It is increased by one if
125               turning a development branch into stable substantially changes the functionality,
126               user interface or configuration syntax. Majors 1 and 2 were 
127               <SPAN
128 CLASS="APPLICATION"
129 >Junkbuster</SPAN
130 >, and 3 will be the first stable
131               <SPAN
132 CLASS="APPLICATION"
133 >Privoxy</SPAN
134 > release.
135             </P
136 ></LI
137 ><LI
138 ><P
139 >              Y, the version minor, represents the branch within the major version.
140               At any point in time, there are two branches being maintained:
141               The stable branch, with an even minor, say, 2N, in which no functionality is
142               being added and only bug-fixes are made, and 2N+1, the development branch, in
143               which the further development of <SPAN
144 CLASS="APPLICATION"
145 >Privoxy</SPAN
146 > takes
147               place.
148               This enables us to turn the code upside down and inside out, while at the same time
149               providing and maintaining a stable version.
150               The minor is reset to zero (and one) when the major is incremented. When a development
151               branch has matured to the point where it can be turned into stable, the old stable branch
152               2N is given up (i.e. no longer maintained), the former development branch 2N+1 becomes the
153               new stable branch 2N+2, and a new development branch 2N+3 is opened.
154             </P
155 ></LI
156 ><LI
157 ><P
158 >              Z, the point or sub version, represents a release of the software within a branch.
159               It is therefore incremented immediately before each code freeze. 
160               In development branches, only the even point versions correspond to actual releases,
161               while the odd ones denote the evolving state of the sources on CVS in between.
162               It follows that Z is odd on CVS in development branches most of the time. There, it gets
163               increased to an even number immediately before a code freeze, and is increased to an odd
164               number again immediately thereafter.
165               This ensures that builds from CVS snapshots are easily distinguished from released versions.
166               The point version is reset to zero when the minor changes.
167             </P
168 ></LI
169 ></UL
170 >
171     </P
172 ></DIV
173 ><DIV
174 CLASS="SECT2"
175 ><H2
176 CLASS="SECT2"
177 ><A
178 NAME="BEFORERELEASE">6.2. Before the Release: Freeze</H2
179 ><P
180 >       The following <SPAN
181 CLASS="emphasis"
182 ><I
183 CLASS="EMPHASIS"
184 >must be done by one of the
185        developers</I
186 ></SPAN
187 > prior to each new release.
188      </P
189 ><P
190 >      <P
191 ></P
192 ><UL
193 ><LI
194 ><P
195 >         Make sure that everybody who has worked on the code in the last
196          couple of days has had a chance to yell <SPAN
197 CLASS="QUOTE"
198 >"no!"</SPAN
199 > in case
200          they have pending changes/fixes in their pipelines. Announce the
201          freeze so that nobody will interfere with last minute changes.
202         </P
203 ></LI
204 ><LI
205 ><P
206 >         Increment the version number (point from odd to even in development
207          branches!) in <TT
208 CLASS="FILENAME"
209 >configure.in</TT
210 >. (RPM spec files 
211          will need to be incremented as well.)
212        </P
213 ></LI
214 ><LI
215 ><P
216 >        If <TT
217 CLASS="FILENAME"
218 >default.action</TT
219 > has changed since last
220         release (i.e. software release or standalone actions file release),
221         bump up its version info to A.B in this line:
222        </P
223 ><P
224
225         <TABLE
226 BORDER="0"
227 BGCOLOR="#E0E0E0"
228 WIDTH="90%"
229 ><TR
230 ><TD
231 ><PRE
232 CLASS="PROGRAMLISTING"
233 >  {+add-header{X-Actions-File-Version: A.B} -filter -no-popups}</PRE
234 ></TD
235 ></TR
236 ></TABLE
237 >
238        </P
239 ><P
240
241         Then change the version info in doc/webserver/actions/index.php,
242         line: '$required_actions_file_version = "A.B";'
243        </P
244 ></LI
245 ><LI
246 ><P
247 >        All documentation should be rebuild after the version bump.
248         Finished docs should be then be committed to CVS (for those 
249         without the ability to build these). Some docs may require 
250         rather obscure processing tools. <TT
251 CLASS="FILENAME"
252 >config</TT
253 >,
254         the man page (and the html version of the man page), and the PDF docs
255         fall in this category. REAMDE, the man page, AUTHORS, and config
256         should all also be committed to CVS for other packagers. The 
257         formal docs should be uploaded to the webserver. See the
258         Section "Updating the webserver" in this manual for details.
259        </P
260 ></LI
261 ><LI
262 ><P
263 >         The <I
264 CLASS="CITETITLE"
265 >User Manual</I
266 > is also used for context 
267          sensitive help for the CGI editor. This is version sensitive, so that
268          the user will get appropriate help for his/her release. So with 
269          each release a fresh version should be uploaded to the webserver
270          (this is in addition to the main <I
271 CLASS="CITETITLE"
272 >User Manual</I
273 >
274          link from the main page since we need to keep manuals for various 
275          versions available). The CGI pages will link to something like 
276          <TT
277 CLASS="LITERAL"
278 >http://privoxy.org/$(VERSION)/user-manual/</TT
279 >. This
280          will need to be updated for each new release. There is no Makefile
281          target for this at this time!!! It needs to be done manually.
282        </P
283 ></LI
284 ><LI
285 ><P
286 >        All developers should look at the <TT
287 CLASS="FILENAME"
288 >ChangeLog</TT
289 > and
290         make sure noteworthy changes are referenced.
291        </P
292 ></LI
293 ><LI
294 ><P
295 >        <SPAN
296 CLASS="emphasis"
297 ><I
298 CLASS="EMPHASIS"
299 >Commit all files that were changed in the above steps!</I
300 ></SPAN
301 >
302        </P
303 ></LI
304 ><LI
305 ><P
306 >        Tag all files in CVS with the version number with
307         <SPAN
308 CLASS="QUOTE"
309 >"<B
310 CLASS="COMMAND"
311 >cvs tag v_X_Y_Z</B
312 >"</SPAN
313 >.
314         Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc.
315        </P
316 ></LI
317 ><LI
318 ><P
319 >        If the release was in a development branch, increase the point version
320         from even to odd (X.Y.(Z+1)) again in <TT
321 CLASS="FILENAME"
322 >configure.in</TT
323 > and
324         commit your change.
325        </P
326 ></LI
327 ><LI
328 ><P
329 >        On the webserver, copy the user manual to a new top-level directory
330         called <TT
331 CLASS="FILENAME"
332 >X.Y.Z</TT
333 >. This ensures that help links from the CGI
334         pages, which have the version as a prefix, will go into the right version of the manual.
335         If this is a development branch release, also symlink <TT
336 CLASS="FILENAME"
337 >X.Y.(Z-1)</TT
338 >
339         to <TT
340 CLASS="FILENAME"
341 >X.Y.Z</TT
342 > and <TT
343 CLASS="FILENAME"
344 >X.Y.(Z+1)</TT
345 > to
346         <TT
347 CLASS="FILENAME"
348 >.</TT
349 > (i.e. dot). 
350        </P
351 ></LI
352 ></UL
353 >
354      </P
355 ></DIV
356 ><DIV
357 CLASS="SECT2"
358 ><H2
359 CLASS="SECT2"
360 ><A
361 NAME="THERELEASE">6.3. Building and Releasing the Packages</H2
362 ><P
363 >      Now the individual packages can be built and released. Note that for
364       GPL reasons the first package to be released is always the source tarball.
365      </P
366 ><P
367 >      For <SPAN
368 CLASS="emphasis"
369 ><I
370 CLASS="EMPHASIS"
371 >all</I
372 ></SPAN
373 > types of packages, including the source tarball,
374       <SPAN
375 CLASS="emphasis"
376 ><I
377 CLASS="EMPHASIS"
378 >you must make sure that you build from clean sources by exporting
379       the right version from CVS into an empty directory</I
380 ></SPAN
381 > (just press return when
382       asked for a password):
383      </P
384 ><P
385 >      <TABLE
386 BORDER="0"
387 BGCOLOR="#E0E0E0"
388 WIDTH="100%"
389 ><TR
390 ><TD
391 ><PRE
392 CLASS="PROGRAMLISTING"
393 >  mkdir dist # delete or choose different name if it already exists
394   cd dist
395   cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
396   cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current</PRE
397 ></TD
398 ></TR
399 ></TABLE
400 >
401     </P
402 ><P
403 >     <SPAN
404 CLASS="emphasis"
405 ><I
406 CLASS="EMPHASIS"
407 >Do NOT change</I
408 ></SPAN
409 > a single bit, including, but not limited to
410      version information after export from CVS. This is to make sure that
411      all release packages, and with them, all future bug reports, are based
412      on exactly the same code.
413     </P
414 ><P
415 >     Please find additional instructions for the source tarball and the
416      individual platform dependent binary packages below. And details 
417      on the Sourceforge release process below that.
418     </P
419 ><DIV
420 CLASS="SECT3"
421 ><H3
422 CLASS="SECT3"
423 ><A
424 NAME="PACK-GUIDELINES">6.3.1. Note on Privoxy Packaging</H3
425 ><P
426 >      Please keep these general guidelines in mind when putting together 
427       your package. These apply to <SPAN
428 CLASS="emphasis"
429 ><I
430 CLASS="EMPHASIS"
431 >all</I
432 ></SPAN
433 > platforms!
434      </P
435 ><P
436 >      <P
437 ></P
438 ><UL
439 ><LI
440 ><P
441 >          <SPAN
442 CLASS="APPLICATION"
443 >Privoxy</SPAN
444 > <SPAN
445 CLASS="emphasis"
446 ><I
447 CLASS="EMPHASIS"
448 >requires</I
449 ></SPAN
450 >
451           write access to: all <TT
452 CLASS="FILENAME"
453 >*.action</TT
454 > files, all 
455           logfiles, and the <TT
456 CLASS="FILENAME"
457 >trust</TT
458 > file. You will 
459           need to determine the best way to do this for your platform.
460         </P
461 ></LI
462 ><LI
463 ><P
464 >          Please include up to date documentation. At a bare minimum:
465         </P
466 ><P
467 ></P
468 ><TABLE
469 BORDER="0"
470 ><TBODY
471 ><TR
472 ><TD
473 >          <TT
474 CLASS="FILENAME"
475 >LICENSE</TT
476 > (top-level directory)
477          </TD
478 ></TR
479 ></TBODY
480 ></TABLE
481 ><P
482 ></P
483 ><P
484 ></P
485 ><TABLE
486 BORDER="0"
487 ><TBODY
488 ><TR
489 ><TD
490 >          <TT
491 CLASS="FILENAME"
492 >README</TT
493 > (top-level directory)
494          </TD
495 ></TR
496 ></TBODY
497 ></TABLE
498 ><P
499 ></P
500 ><P
501 ></P
502 ><TABLE
503 BORDER="0"
504 ><TBODY
505 ><TR
506 ><TD
507 >          <TT
508 CLASS="FILENAME"
509 >AUTHORS</TT
510 > (top-level directory)
511          </TD
512 ></TR
513 ></TBODY
514 ></TABLE
515 ><P
516 ></P
517 ><P
518 ></P
519 ><TABLE
520 BORDER="0"
521 ><TBODY
522 ><TR
523 ><TD
524 >          <TT
525 CLASS="FILENAME"
526 >man page</TT
527 > (top-level directory, Unix-like
528           platforms only)
529          </TD
530 ></TR
531 ></TBODY
532 ></TABLE
533 ><P
534 ></P
535 ><P
536 ></P
537 ><TABLE
538 BORDER="0"
539 ><TBODY
540 ><TR
541 ><TD
542 >          <TT
543 CLASS="FILENAME"
544 >The User Manual</TT
545 > (doc/webserver/user-manual/)
546          </TD
547 ></TR
548 ></TBODY
549 ></TABLE
550 ><P
551 ></P
552 ><P
553 ></P
554 ><TABLE
555 BORDER="0"
556 ><TBODY
557 ><TR
558 ><TD
559 >          <TT
560 CLASS="FILENAME"
561 >FAQ</TT
562 > (doc/webserver/faq/)
563          </TD
564 ></TR
565 ></TBODY
566 ></TABLE
567 ><P
568 ></P
569 ><P
570 >          Also suggested: <TT
571 CLASS="FILENAME"
572 >Developer Manual</TT
573 >
574           (doc/webserver/developer-manual) and <TT
575 CLASS="FILENAME"
576 >ChangeLog</TT
577 >
578           (top-level directory). <TT
579 CLASS="FILENAME"
580 >FAQ</TT
581 > and the manuals are
582           HTML docs. There are also text versions in
583           <TT
584 CLASS="FILENAME"
585 >doc/text/</TT
586 > which could conceivably also be
587           included.
588         </P
589 ><P
590 >         The documentation has been designed such that the manuals are linked
591          to each other from parallel directories, and should be packaged 
592          that way. <TT
593 CLASS="FILENAME"
594 >privoxy-index.html</TT
595 > can also be
596          included and can serve as a focal point for docs and other links of
597          interest (and possibly renamed to <TT
598 CLASS="FILENAME"
599 >index.html</TT
600 >).
601          This should be one level up from the manuals. There is a link also 
602          on this page to an HTMLized version of the man page. To avoid 404 for
603          this, it is in CVS as
604          <TT
605 CLASS="FILENAME"
606 >doc/webserver/man-page/privoxy-man-page.html</TT
607 >,
608          and should be included along with the manuals. There is also a
609          css stylesheets that can be included for better presentation:
610          <TT
611 CLASS="FILENAME"
612 >p_doc.css</TT
613 >. This should be in the same directory
614          with <TT
615 CLASS="FILENAME"
616 >privoxy-index.html</TT
617 >, (i.e. one level up from
618          the manual directories).
619         </P
620 ></LI
621 ><LI
622 ><P
623 >        <TT
624 CLASS="FILENAME"
625 >user.action</TT
626 > is designed for local preferences. 
627         Make sure this does not get overwritten!
628        </P
629 ></LI
630 ><LI
631 ><P
632 >        Other configuration files should be installed as the new defaults, 
633         but all previously installed configuration files should be preserved
634         as backups. This is just good manners :-)
635        </P
636 ></LI
637 ><LI
638 ><P
639 >       Please check platform specific notes in this doc, if you haven't 
640        done <SPAN
641 CLASS="QUOTE"
642 >"Privoxy"</SPAN
643 > packaging before for other platform 
644        specific issues. Conversely, please add any notes that you know 
645        are important for your platform (or contact one of the doc 
646        maintainers to do this if you can't).
647       </P
648 ></LI
649 ><LI
650 ><P
651 >       Packagers should do a <SPAN
652 CLASS="QUOTE"
653 >"clean"</SPAN
654 > install of their 
655        package after building it. So any previous installs should be 
656        removed first to ensure the integrity of the newly built package. 
657        Then run the package for a while to make sure there are no 
658        obvious problems, before uploading.
659      </P
660 ></LI
661 ></UL
662 >
663      </P
664 ></DIV
665 ><DIV
666 CLASS="SECT3"
667 ><H3
668 CLASS="SECT3"
669 ><A
670 NAME="NEWRELEASE-TARBALL">6.3.2. Source Tarball</H3
671 ><P
672 >       First, <SPAN
673 CLASS="emphasis"
674 ><I
675 CLASS="EMPHASIS"
676 >make sure that you have freshly exported the right
677         version into an empty directory</I
678 ></SPAN
679 >. (See "Building and releasing
680         packages" above). Then run:
681         </P
682 ><P
683 >       <TABLE
684 BORDER="0"
685 BGCOLOR="#E0E0E0"
686 WIDTH="100%"
687 ><TR
688 ><TD
689 ><PRE
690 CLASS="PROGRAMLISTING"
691 >  cd current
692   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
693 ></TD
694 ></TR
695 ></TABLE
696 >
697         </P
698 ><P
699 >       Then do:
700         </P
701 ><P
702 >       <TABLE
703 BORDER="0"
704 BGCOLOR="#E0E0E0"
705 WIDTH="100%"
706 ><TR
707 ><TD
708 ><PRE
709 CLASS="PROGRAMLISTING"
710 >  make tarball-dist</PRE
711 ></TD
712 ></TR
713 ></TABLE
714 >
715         </P
716 ><P
717 >       To upload the package to Sourceforge, simply issue
718         </P
719 ><P
720 >       <TABLE
721 BORDER="0"
722 BGCOLOR="#E0E0E0"
723 WIDTH="100%"
724 ><TR
725 ><TD
726 ><PRE
727 CLASS="PROGRAMLISTING"
728 >  make tarball-upload</PRE
729 ></TD
730 ></TR
731 ></TABLE
732 >
733         </P
734 ><P
735 >       Go to the displayed URL and release the file publicly on Sourceforge.
736         For the change log field, use the relevant section of the
737         <TT
738 CLASS="FILENAME"
739 >ChangeLog</TT
740 > file.
741       </P
742 ></DIV
743 ><DIV
744 CLASS="SECT3"
745 ><H3
746 CLASS="SECT3"
747 ><A
748 NAME="NEWRELEASE-RPM">6.3.3. SuSE, Conectiva or Red Hat RPM</H3
749 ><P
750 >        In following text, replace <TT
751 CLASS="REPLACEABLE"
752 ><I
753 >dist</I
754 ></TT
755 >
756         with either <SPAN
757 CLASS="QUOTE"
758 >"rh"</SPAN
759 > for Red Hat or <SPAN
760 CLASS="QUOTE"
761 >"suse"</SPAN
762 > for SuSE.
763         </P
764 ><P
765 >       First, <SPAN
766 CLASS="emphasis"
767 ><I
768 CLASS="EMPHASIS"
769 >make sure that you have freshly exported the right
770         version into an empty directory</I
771 ></SPAN
772 >. (See "Building and releasing
773         packages" above). 
774         </P
775 ><P
776 >        As the only exception to not changing anything after export from CVS,
777         now examine the file <TT
778 CLASS="FILENAME"
779 >privoxy-</TT
780 ><TT
781 CLASS="REPLACEABLE"
782 ><I
783 >dist</I
784 ></TT
785 ><TT
786 CLASS="FILENAME"
787 >.spec</TT
788 >
789         and make sure that the version information and the RPM release number are
790         correct. The RPM release numbers for each version start at one. Hence it must
791         be reset to one if this is the first RPM for
792         <TT
793 CLASS="REPLACEABLE"
794 ><I
795 >dist</I
796 ></TT
797 > which is built from version
798         X.Y.Z. Check the
799         <A
800 HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
801 TARGET="_top"
802 >file
803         list</A
804 > if unsure. Else, it must be set to the highest already available RPM
805         release number for that version plus one.
806         </P
807 ><P
808 >        Then run:
809         </P
810 ><P
811 >       <TABLE
812 BORDER="0"
813 BGCOLOR="#E0E0E0"
814 WIDTH="100%"
815 ><TR
816 ><TD
817 ><PRE
818 CLASS="PROGRAMLISTING"
819 >  cd current
820   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
821 ></TD
822 ></TR
823 ></TABLE
824 >
825         </P
826 ><P
827 >       Then do
828         </P
829 ><P
830 >       <TABLE
831 BORDER="0"
832 BGCOLOR="#E0E0E0"
833 WIDTH="100%"
834 ><TR
835 ><TD
836 ><PRE
837 CLASS="PROGRAMLISTING"
838 >  make <TT
839 CLASS="REPLACEABLE"
840 ><I
841 >dist</I
842 ></TT
843 >-dist</PRE
844 ></TD
845 ></TR
846 ></TABLE
847 >
848         </P
849 ><P
850 >       To upload the package to Sourceforge, simply issue
851         </P
852 ><P
853 >       <TABLE
854 BORDER="0"
855 BGCOLOR="#E0E0E0"
856 WIDTH="100%"
857 ><TR
858 ><TD
859 ><PRE
860 CLASS="PROGRAMLISTING"
861 >  make <TT
862 CLASS="REPLACEABLE"
863 ><I
864 >dist</I
865 ></TT
866 >-upload <TT
867 CLASS="REPLACEABLE"
868 ><I
869 >rpm_packagerev</I
870 ></TT
871 ></PRE
872 ></TD
873 ></TR
874 ></TABLE
875 >
876         </P
877 ><P
878 >        where <TT
879 CLASS="REPLACEABLE"
880 ><I
881 >rpm_packagerev</I
882 ></TT
883 > is the
884         RPM release number as determined above.
885         Go to the displayed URL and release the file publicly on Sourceforge.
886         Use the release notes and change log from the source tarball package.
887       </P
888 ></DIV
889 ><DIV
890 CLASS="SECT3"
891 ><H3
892 CLASS="SECT3"
893 ><A
894 NAME="NEWRELEASE-OS2">6.3.4. OS/2</H3
895 ><P
896 >       First, <SPAN
897 CLASS="emphasis"
898 ><I
899 CLASS="EMPHASIS"
900 >make sure that you have freshly exported the right
901         version into an empty directory</I
902 ></SPAN
903 >. (See "Building and releasing
904         packages" above). Then get the OS/2 Setup module:
905         </P
906 ><P
907 >       <TABLE
908 BORDER="0"
909 BGCOLOR="#E0E0E0"
910 WIDTH="100%"
911 ><TR
912 ><TD
913 ><PRE
914 CLASS="PROGRAMLISTING"
915 >  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup</PRE
916 ></TD
917 ></TR
918 ></TABLE
919 >
920         </P
921 ><P
922 >       You will need a mix of development tools.
923         The main compilation takes place with IBM Visual Age C++.
924         Some ancillary work takes place with GNU tools, available from
925         various sources like hobbes.nmsu.edu.
926         Specificially, you will need <TT
927 CLASS="FILENAME"
928 >autoheader</TT
929 >,
930         <TT
931 CLASS="FILENAME"
932 >autoconf</TT
933 > and <TT
934 CLASS="FILENAME"
935 >sh</TT
936 > tools.
937         The packaging takes place with WarpIN, available from various sources, including
938         its home page: <A
939 HREF="http://www.xworkplace.org/"
940 TARGET="_top"
941 >xworkplace</A
942 >.
943         </P
944 ><P
945 >       Change directory to the <TT
946 CLASS="FILENAME"
947 >os2setup</TT
948 > directory.
949         Edit the os2build.cmd file to set the final executable filename.
950         For example, 
951         </P
952 ><P
953 >       <TABLE
954 BORDER="0"
955 BGCOLOR="#E0E0E0"
956 WIDTH="100%"
957 ><TR
958 ><TD
959 ><PRE
960 CLASS="PROGRAMLISTING"
961 >  installExeName='privoxyos2_setup_X.Y.Z.exe'</PRE
962 ></TD
963 ></TR
964 ></TABLE
965 >
966         </P
967 ><P
968 >       Next, edit the <TT
969 CLASS="FILENAME"
970 >IJB.wis</TT
971 > file so the release number matches
972         in the <TT
973 CLASS="FILENAME"
974 >PACKAGEID</TT
975 > section:
976         </P
977 ><P
978 >       <TABLE
979 BORDER="0"
980 BGCOLOR="#E0E0E0"
981 WIDTH="100%"
982 ><TR
983 ><TD
984 ><PRE
985 CLASS="PROGRAMLISTING"
986 >  PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"</PRE
987 ></TD
988 ></TR
989 ></TABLE
990 >
991         </P
992 ><P
993 >       You're now ready to build.  Run:
994         </P
995 ><P
996 >       <TABLE
997 BORDER="0"
998 BGCOLOR="#E0E0E0"
999 WIDTH="100%"
1000 ><TR
1001 ><TD
1002 ><PRE
1003 CLASS="PROGRAMLISTING"
1004 >  os2build</PRE
1005 ></TD
1006 ></TR
1007 ></TABLE
1008 >
1009         </P
1010 ><P
1011 >         You will find the  WarpIN-installable executable in the
1012         <TT
1013 CLASS="FILENAME"
1014 >./files</TT
1015 > directory. Upload this anonymously to
1016          <TT
1017 CLASS="FILENAME"
1018 >uploads.sourceforge.net/incoming</TT
1019 >, create a release
1020          for it, and you're done. Use the release notes and Change Log from the
1021          source tarball package.
1022         </P
1023 ></DIV
1024 ><DIV
1025 CLASS="SECT3"
1026 ><H3
1027 CLASS="SECT3"
1028 ><A
1029 NAME="NEWRELEASE-SOLARIS">6.3.5. Solaris</H3
1030 ><P
1031 >       Login to Sourceforge's compilefarm via ssh:
1032         </P
1033 ><P
1034 >       <TABLE
1035 BORDER="0"
1036 BGCOLOR="#E0E0E0"
1037 WIDTH="100%"
1038 ><TR
1039 ><TD
1040 ><PRE
1041 CLASS="PROGRAMLISTING"
1042 >  ssh cf.sourceforge.net</PRE
1043 ></TD
1044 ></TR
1045 ></TABLE
1046 >
1047         </P
1048 ><P
1049 >       Choose the right operating system (not the Debian one).
1050         When logged in, <SPAN
1051 CLASS="emphasis"
1052 ><I
1053 CLASS="EMPHASIS"
1054 >make sure that you have freshly exported the right
1055         version into an empty directory</I
1056 ></SPAN
1057 >. (See "Building and releasing
1058         packages" above). Then run:
1059         </P
1060 ><P
1061 >       <TABLE
1062 BORDER="0"
1063 BGCOLOR="#E0E0E0"
1064 WIDTH="100%"
1065 ><TR
1066 ><TD
1067 ><PRE
1068 CLASS="PROGRAMLISTING"
1069 >  cd current
1070   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1071 ></TD
1072 ></TR
1073 ></TABLE
1074 >
1075         </P
1076 ><P
1077 >       Then run
1078         </P
1079 ><P
1080 >       <TABLE
1081 BORDER="0"
1082 BGCOLOR="#E0E0E0"
1083 WIDTH="100%"
1084 ><TR
1085 ><TD
1086 ><PRE
1087 CLASS="PROGRAMLISTING"
1088 >  gmake solaris-dist</PRE
1089 ></TD
1090 ></TR
1091 ></TABLE
1092 >
1093         </P
1094 ><P
1095 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
1096 CLASS="COMMAND"
1097 >make
1098         solaris-upload</B
1099 > on the Sourceforge machine (no ncftpput). You now have
1100         to manually upload the archive to Sourceforge's ftp server and release
1101         the file publicly. Use the release notes and Change Log from the
1102         source tarball package.
1103         </P
1104 ></DIV
1105 ><DIV
1106 CLASS="SECT3"
1107 ><H3
1108 CLASS="SECT3"
1109 ><A
1110 NAME="NEWRELEASE-WINDOWS">6.3.6. Windows</H3
1111 ><P
1112 >        You should ensure you have the latest version of Cygwin (from
1113         <A
1114 HREF="http://www.cygwin.com/"
1115 TARGET="_top"
1116 >http://www.cygwin.com/</A
1117 >).
1118         Run the following commands from within a Cygwin bash shell.
1119       </P
1120 ><P
1121 >       First, <SPAN
1122 CLASS="emphasis"
1123 ><I
1124 CLASS="EMPHASIS"
1125 >make sure that you have freshly exported the right
1126         version into an empty directory</I
1127 ></SPAN
1128 >. (See "Building and releasing
1129         packages" above). Then get the Windows setup module:
1130       </P
1131 ><P
1132 >      <TABLE
1133 BORDER="0"
1134 BGCOLOR="#E0E0E0"
1135 WIDTH="100%"
1136 ><TR
1137 ><TD
1138 ><PRE
1139 CLASS="PROGRAMLISTING"
1140 >  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
1141 ></TD
1142 ></TR
1143 ></TABLE
1144 >
1145       </P
1146 ><P
1147 >        Then you can build the package.  This is fully automated, and is
1148         controlled by <TT
1149 CLASS="FILENAME"
1150 >winsetup/GNUmakefile</TT
1151 >.
1152         All you need to do is:
1153       </P
1154 ><P
1155 >      <TABLE
1156 BORDER="0"
1157 BGCOLOR="#E0E0E0"
1158 WIDTH="100%"
1159 ><TR
1160 ><TD
1161 ><PRE
1162 CLASS="PROGRAMLISTING"
1163 >  cd winsetup
1164   make</PRE
1165 ></TD
1166 ></TR
1167 ></TABLE
1168 >
1169       </P
1170 ><P
1171 >        Now you can manually rename <TT
1172 CLASS="FILENAME"
1173 >privoxy_setup.exe</TT
1174 > to
1175         <TT
1176 CLASS="FILENAME"
1177 >privoxy_setup_X_Y_Z.exe</TT
1178 >, and upload it to
1179         SourceForge. When releasing the package on SourceForge, use the release notes
1180         and Change Log from the source tarball package.
1181       </P
1182 ></DIV
1183 ><DIV
1184 CLASS="SECT3"
1185 ><H3
1186 CLASS="SECT3"
1187 ><A
1188 NAME="NEWRELEASE-DEBIAN">6.3.7. Debian</H3
1189 ><P
1190 >        First, <SPAN
1191 CLASS="emphasis"
1192 ><I
1193 CLASS="EMPHASIS"
1194 >make sure that you have freshly exported the
1195         right version into an empty directory</I
1196 ></SPAN
1197 >. (See
1198         "Building and releasing packages" above).  Then add a log
1199         entry to <TT
1200 CLASS="FILENAME"
1201 >debian/changelog</TT
1202 >, if it is not
1203         already there, for example by running:
1204       </P
1205 ><P
1206 >        <TABLE
1207 BORDER="0"
1208 BGCOLOR="#E0E0E0"
1209 WIDTH="100%"
1210 ><TR
1211 ><TD
1212 ><PRE
1213 CLASS="PROGRAMLISTING"
1214 >  debchange -v 3.0.0-stable-1 "New upstream version"</PRE
1215 ></TD
1216 ></TR
1217 ></TABLE
1218 >
1219       </P
1220 ><P
1221 >        Then, run: 
1222       </P
1223 ><P
1224 >        <TABLE
1225 BORDER="0"
1226 BGCOLOR="#E0E0E0"
1227 WIDTH="100%"
1228 ><TR
1229 ><TD
1230 ><PRE
1231 CLASS="PROGRAMLISTING"
1232 >  dpkg-buildpackage -rfakeroot -us -uc -b</PRE
1233 ></TD
1234 ></TR
1235 ></TABLE
1236 >
1237       </P
1238 ><P
1239 >        This will create
1240         <TT
1241 CLASS="FILENAME"
1242 >../privoxy_3.0.0-stable-1_i386.deb</TT
1243 >
1244         which can be uploaded.  To upload the package to Sourceforge, simply
1245         issue
1246       </P
1247 ><P
1248 >        <TABLE
1249 BORDER="0"
1250 BGCOLOR="#E0E0E0"
1251 WIDTH="100%"
1252 ><TR
1253 ><TD
1254 ><PRE
1255 CLASS="PROGRAMLISTING"
1256 >  make debian-upload</PRE
1257 ></TD
1258 ></TR
1259 ></TABLE
1260 >
1261       </P
1262 ></DIV
1263 ><DIV
1264 CLASS="SECT3"
1265 ><H3
1266 CLASS="SECT3"
1267 ><A
1268 NAME="NEWRELEASE-MACOSX">6.3.8. Mac OSX</H3
1269 ><P
1270 >       First, <SPAN
1271 CLASS="emphasis"
1272 ><I
1273 CLASS="EMPHASIS"
1274 >make sure that you have freshly exported the right
1275         version into an empty directory</I
1276 ></SPAN
1277 >. (See "Building and releasing
1278         packages" above). Then get the Mac OSX setup module:
1279         </P
1280 ><P
1281 >       <TABLE
1282 BORDER="0"
1283 BGCOLOR="#E0E0E0"
1284 WIDTH="100%"
1285 ><TR
1286 ><TD
1287 ><PRE
1288 CLASS="PROGRAMLISTING"
1289 >  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup</PRE
1290 ></TD
1291 ></TR
1292 ></TABLE
1293 >
1294         </P
1295 ><P
1296 >       Then run:
1297         </P
1298 ><P
1299 >       <TABLE
1300 BORDER="0"
1301 BGCOLOR="#E0E0E0"
1302 WIDTH="100%"
1303 ><TR
1304 ><TD
1305 ><PRE
1306 CLASS="PROGRAMLISTING"
1307 >  cd osxsetup
1308   build</PRE
1309 ></TD
1310 ></TR
1311 ></TABLE
1312 >
1313         </P
1314 ><P
1315 >       This will run <TT
1316 CLASS="FILENAME"
1317 >autoheader</TT
1318 >, <TT
1319 CLASS="FILENAME"
1320 >autoconf</TT
1321 > and
1322         <TT
1323 CLASS="FILENAME"
1324 >configure</TT
1325 > as well as <TT
1326 CLASS="FILENAME"
1327 >make</TT
1328 >.
1329         Finally, it will copy over the necessary files to the ./osxsetup/files directory
1330         for further processing by <TT
1331 CLASS="FILENAME"
1332 >PackageMaker</TT
1333 >.
1334         </P
1335 ><P
1336 >       Bring up PackageMaker with the PrivoxyPackage.pmsp definition file, modify the package
1337         name to match the release, and hit the "Create package" button.
1338         If you specify ./Privoxy.pkg as the output package name, you can then create
1339         the distributable zip file with the command:
1340         </P
1341 ><P
1342 >       <TABLE
1343 BORDER="0"
1344 BGCOLOR="#E0E0E0"
1345 WIDTH="100%"
1346 ><TR
1347 ><TD
1348 ><PRE
1349 CLASS="PROGRAMLISTING"
1350 >  zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
1351 ></TD
1352 ></TR
1353 ></TABLE
1354 >
1355         </P
1356 ><P
1357 >       You can then upload <TT
1358 CLASS="FILENAME"
1359 >privoxyosx_setup_x.y.z.zip</TT
1360 > anonymously to 
1361         <TT
1362 CLASS="FILENAME"
1363 >uploads.sourceforge.net/incoming</TT
1364 >,
1365         create a release for it, and you're done. Use the release notes
1366         and Change Log from the source tarball package.
1367         </P
1368 ></DIV
1369 ><DIV
1370 CLASS="SECT3"
1371 ><H3
1372 CLASS="SECT3"
1373 ><A
1374 NAME="NEWRELEASE-FREEBSD">6.3.9. FreeBSD</H3
1375 ><P
1376 >       Login to Sourceforge's compile-farm via ssh:
1377         </P
1378 ><P
1379 >       <TABLE
1380 BORDER="0"
1381 BGCOLOR="#E0E0E0"
1382 WIDTH="100%"
1383 ><TR
1384 ><TD
1385 ><PRE
1386 CLASS="PROGRAMLISTING"
1387 >  ssh cf.sourceforge.net</PRE
1388 ></TD
1389 ></TR
1390 ></TABLE
1391 >
1392         </P
1393 ><P
1394 >       Choose the right operating system.
1395         When logged in, <SPAN
1396 CLASS="emphasis"
1397 ><I
1398 CLASS="EMPHASIS"
1399 >make sure that you have freshly exported the right
1400         version into an empty directory</I
1401 ></SPAN
1402 >. (See "Building and releasing
1403         packages" above). Then run:
1404         </P
1405 ><P
1406 >       <TABLE
1407 BORDER="0"
1408 BGCOLOR="#E0E0E0"
1409 WIDTH="100%"
1410 ><TR
1411 ><TD
1412 ><PRE
1413 CLASS="PROGRAMLISTING"
1414 >  cd current
1415   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1416 ></TD
1417 ></TR
1418 ></TABLE
1419 >
1420         </P
1421 ><P
1422 >       Then run:
1423         </P
1424 ><P
1425 >       <TABLE
1426 BORDER="0"
1427 BGCOLOR="#E0E0E0"
1428 WIDTH="100%"
1429 ><TR
1430 ><TD
1431 ><PRE
1432 CLASS="PROGRAMLISTING"
1433 >  gmake freebsd-dist</PRE
1434 ></TD
1435 ></TR
1436 ></TABLE
1437 >
1438         </P
1439 ><P
1440 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
1441 CLASS="COMMAND"
1442 >make
1443         freebsd-upload</B
1444 > on the Sourceforge machine (no ncftpput). You now have
1445         to manually upload the archive to Sourceforge's ftp server and release
1446         the file publicly. Use the release notes and Change Log from the
1447         source tarball package.
1448         </P
1449 ></DIV
1450 ><DIV
1451 CLASS="SECT3"
1452 ><H3
1453 CLASS="SECT3"
1454 ><A
1455 NAME="NEWRELEASE-HPUX">6.3.10. HP-UX 11</H3
1456 ><P
1457 >       First, <SPAN
1458 CLASS="emphasis"
1459 ><I
1460 CLASS="EMPHASIS"
1461 >make sure that you have freshly exported the right
1462         version into an empty directory</I
1463 ></SPAN
1464 >. (See "Building and releasing
1465         packages" above). Then run:
1466         </P
1467 ><P
1468 >       <TABLE
1469 BORDER="0"
1470 BGCOLOR="#E0E0E0"
1471 WIDTH="100%"
1472 ><TR
1473 ><TD
1474 ><PRE
1475 CLASS="PROGRAMLISTING"
1476 >  cd current
1477   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1478 ></TD
1479 ></TR
1480 ></TABLE
1481 >
1482         </P
1483 ><P
1484 >       Then do FIXME.
1485         </P
1486 ></DIV
1487 ><DIV
1488 CLASS="SECT3"
1489 ><H3
1490 CLASS="SECT3"
1491 ><A
1492 NAME="NEWRELEASE-AMIGA">6.3.11. Amiga OS</H3
1493 ><P
1494 >       First, <SPAN
1495 CLASS="emphasis"
1496 ><I
1497 CLASS="EMPHASIS"
1498 >make sure that you have freshly exported the right
1499         version into an empty directory</I
1500 ></SPAN
1501 >. (See "Building and releasing
1502         packages" above). Then run:
1503         </P
1504 ><P
1505 >       <TABLE
1506 BORDER="0"
1507 BGCOLOR="#E0E0E0"
1508 WIDTH="100%"
1509 ><TR
1510 ><TD
1511 ><PRE
1512 CLASS="PROGRAMLISTING"
1513 >  cd current
1514   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1515 ></TD
1516 ></TR
1517 ></TABLE
1518 >
1519         </P
1520 ><P
1521 >       Then do FIXME.
1522         </P
1523 ></DIV
1524 ><DIV
1525 CLASS="SECT3"
1526 ><H3
1527 CLASS="SECT3"
1528 ><A
1529 NAME="NEWRELEASE-AIX">6.3.12. AIX</H3
1530 ><P
1531 >       Login to Sourceforge's compilefarm via ssh:
1532         </P
1533 ><P
1534 >       <TABLE
1535 BORDER="0"
1536 BGCOLOR="#E0E0E0"
1537 WIDTH="100%"
1538 ><TR
1539 ><TD
1540 ><PRE
1541 CLASS="PROGRAMLISTING"
1542 >  ssh cf.sourceforge.net</PRE
1543 ></TD
1544 ></TR
1545 ></TABLE
1546 >
1547         </P
1548 ><P
1549 >       Choose the right operating system.
1550         When logged in, <SPAN
1551 CLASS="emphasis"
1552 ><I
1553 CLASS="EMPHASIS"
1554 >make sure that you have freshly exported the right
1555         version into an empty directory</I
1556 ></SPAN
1557 >. (See "Building and releasing
1558         packages" above). Then run:
1559         </P
1560 ><P
1561 >       <TABLE
1562 BORDER="0"
1563 BGCOLOR="#E0E0E0"
1564 WIDTH="100%"
1565 ><TR
1566 ><TD
1567 ><PRE
1568 CLASS="PROGRAMLISTING"
1569 >  cd current
1570   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1571 ></TD
1572 ></TR
1573 ></TABLE
1574 >
1575         </P
1576 ><P
1577 >       Then run:
1578         </P
1579 ><P
1580 >       <TABLE
1581 BORDER="0"
1582 BGCOLOR="#E0E0E0"
1583 WIDTH="100%"
1584 ><TR
1585 ><TD
1586 ><PRE
1587 CLASS="PROGRAMLISTING"
1588 >  make aix-dist</PRE
1589 ></TD
1590 ></TR
1591 ></TABLE
1592 >
1593         </P
1594 ><P
1595 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
1596 CLASS="COMMAND"
1597 >make
1598         aix-upload</B
1599 > on the Sourceforge machine (no ncftpput). You now have
1600         to manually upload the archive to Sourceforge's ftp server and release
1601         the file publicly. Use the release notes and Change Log from the
1602         source tarball package.
1603         </P
1604 ></DIV
1605 ></DIV
1606 ><DIV
1607 CLASS="SECT2"
1608 ><H2
1609 CLASS="SECT2"
1610 ><A
1611 NAME="RELEASING">6.4. Uploading and Releasing Your Package</H2
1612 ><P
1613 >      After the package is ready, it is time to upload it 
1614       to SourceForge, and go through the release steps. The upload
1615       is done via FTP:
1616     </P
1617 ><P
1618 >      <P
1619 ></P
1620 ><UL
1621 ><LI
1622 ><P
1623 >          Upload to: <A
1624 HREF="ftp://upload.sourceforge.net/incoming"
1625 TARGET="_top"
1626 >ftp://upload.sourceforge.net/incoming</A
1627 >
1628         </P
1629 ></LI
1630 ><LI
1631 ><P
1632 >         user: <TT
1633 CLASS="LITERAL"
1634 >anonymous</TT
1635 >
1636        </P
1637 ></LI
1638 ><LI
1639 ><P
1640 >         password: <TT
1641 CLASS="LITERAL"
1642 >ijbswa-developers@lists.sourceforge.net</TT
1643 >
1644        </P
1645 ></LI
1646 ></UL
1647 >
1648     </P
1649 ><P
1650 >     Or use the <B
1651 CLASS="COMMAND"
1652 >make</B
1653 > targets as described above.
1654     </P
1655 ><P
1656 >     Once this done go to <A
1657 HREF="http://sourceforge.net/project/admin/editpackages.php?group_id=11118"
1658 TARGET="_top"
1659 >http://sourceforge.net/project/admin/editpackages.php?group_id=11118</A
1660 >, 
1661      making sure you are logged in. Find your target platform in the 
1662      second column, and click <TT
1663 CLASS="LITERAL"
1664 >Add Release</TT
1665 >. You will 
1666      then need to create a new release for your package, using the format 
1667      of <TT
1668 CLASS="LITERAL"
1669 >$VERSION ($CODE_STATUS)</TT
1670 >, e.g. <SPAN
1671 CLASS="emphasis"
1672 ><I
1673 CLASS="EMPHASIS"
1674 >3.0.0
1675      (beta)</I
1676 ></SPAN
1677 >.
1678     </P
1679 ><P
1680 >     Now just follow the prompts. Be sure to add any appropriate Release
1681      notes. You should see your freshly uploaded packages in 
1682      <SPAN
1683 CLASS="QUOTE"
1684 >"Step 2. Add Files To This Release"</SPAN
1685 >. Check the 
1686      appropriate box(es). Remember at each step to hit the 
1687      <SPAN
1688 CLASS="QUOTE"
1689 >"Refresh/Submit"</SPAN
1690 > buttons! You should now see your 
1691      file(s) listed in Step 3. Fill out the forms with the appropriate 
1692      information for your platform, being sure to hit <SPAN
1693 CLASS="QUOTE"
1694 >"Update"</SPAN
1695 >
1696      for each file. If anyone is monitoring your platform, check the 
1697      <SPAN
1698 CLASS="QUOTE"
1699 >"email"</SPAN
1700 > box at the very bottom to notify them of 
1701      the new package. This should do it!
1702     </P
1703 ><P
1704 >     If you have made errors, or need to make changes, you can go through 
1705      essentially the same steps, but select <TT
1706 CLASS="LITERAL"
1707 >Edit Release</TT
1708 >, 
1709      instead of <TT
1710 CLASS="LITERAL"
1711 >Add Release</TT
1712 >.
1713     </P
1714 ></DIV
1715 ><DIV
1716 CLASS="SECT2"
1717 ><H2
1718 CLASS="SECT2"
1719 ><A
1720 NAME="AFTERRELEASE">6.5. After the Release</H2
1721 ><P
1722 >      When all (or: most of the) packages have been uploaded and made available,
1723       send an email to the <A
1724 HREF="mailto:ijbswa-announce@lists.sourceforge.net"
1725 TARGET="_top"
1726 >announce
1727       mailing list</A
1728 >, Subject: "Version X.Y.Z available for download". Be sure to
1729       include the
1730       <A
1731 HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
1732 TARGET="_top"
1733 >download
1734       location</A
1735 >, the release notes and the Changelog. Also, post an
1736       updated News item on the project page Sourceforge, and update the Home 
1737       page and docs linked from the Home page (see below).
1738      </P
1739 ></DIV
1740 ></DIV
1741 ><DIV
1742 CLASS="NAVFOOTER"
1743 ><HR
1744 ALIGN="LEFT"
1745 WIDTH="100%"><TABLE
1746 SUMMARY="Footer navigation table"
1747 WIDTH="100%"
1748 BORDER="0"
1749 CELLPADDING="0"
1750 CELLSPACING="0"
1751 ><TR
1752 ><TD
1753 WIDTH="33%"
1754 ALIGN="left"
1755 VALIGN="top"
1756 ><A
1757 HREF="testing.html"
1758 ACCESSKEY="P"
1759 >Prev</A
1760 ></TD
1761 ><TD
1762 WIDTH="34%"
1763 ALIGN="center"
1764 VALIGN="top"
1765 ><A
1766 HREF="index.html"
1767 ACCESSKEY="H"
1768 >Home</A
1769 ></TD
1770 ><TD
1771 WIDTH="33%"
1772 ALIGN="right"
1773 VALIGN="top"
1774 ><A
1775 HREF="webserver-update.html"
1776 ACCESSKEY="N"
1777 >Next</A
1778 ></TD
1779 ></TR
1780 ><TR
1781 ><TD
1782 WIDTH="33%"
1783 ALIGN="left"
1784 VALIGN="top"
1785 >Testing Guidelines</TD
1786 ><TD
1787 WIDTH="34%"
1788 ALIGN="center"
1789 VALIGN="top"
1790 >&nbsp;</TD
1791 ><TD
1792 WIDTH="33%"
1793 ALIGN="right"
1794 VALIGN="top"
1795 >Update the Webserver</TD
1796 ></TR
1797 ></TABLE
1798 ></DIV
1799 ></BODY
1800 ></HTML
1801 >