generated
[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.64
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 WIDTH="100%"
32 BORDER="0"
33 CELLPADDING="0"
34 CELLSPACING="0"
35 ><TR
36 ><TH
37 COLSPAN="3"
38 ALIGN="center"
39 >Privoxy Developer Manual</TH
40 ></TR
41 ><TR
42 ><TD
43 WIDTH="10%"
44 ALIGN="left"
45 VALIGN="bottom"
46 ><A
47 HREF="testing.html"
48 >Prev</A
49 ></TD
50 ><TD
51 WIDTH="80%"
52 ALIGN="center"
53 VALIGN="bottom"
54 ></TD
55 ><TD
56 WIDTH="10%"
57 ALIGN="right"
58 VALIGN="bottom"
59 ><A
60 HREF="webserver-update.html"
61 >Next</A
62 ></TD
63 ></TR
64 ></TABLE
65 ><HR
66 ALIGN="LEFT"
67 WIDTH="100%"></DIV
68 ><DIV
69 CLASS="SECT1"
70 ><H1
71 CLASS="SECT1"
72 ><A
73 NAME="NEWRELEASE"
74 >6. Releasing a New Version</A
75 ></H1
76 ><P
77 >        When we release versions of <SPAN
78 CLASS="APPLICATION"
79 >Privoxy</SPAN
80 >,
81         our work leaves our cozy secret lab and has to work in the cold
82         RealWorld[tm]. Once it is released, there is no way to call it
83         back, so it is very important that great care is taken to ensure
84         that everything runs fine, and not to introduce problems in the
85         very last minute.
86     </P
87 ><P
88 >        So when releasing a new version, please adhere exactly to the
89         procedure outlined in this chapter.
90     </P
91 ><P
92 >       The following programs are required to follow this process:
93         <TT
94 CLASS="FILENAME"
95 >ncftpput</TT
96 > (ncftp), <TT
97 CLASS="FILENAME"
98 >scp, ssh</TT
99 > (ssh),
100         <TT
101 CLASS="FILENAME"
102 >gmake</TT
103 > (GNU's version of make), autoconf, cvs.
104     </P
105 ><DIV
106 CLASS="SECT2"
107 ><H2
108 CLASS="SECT2"
109 ><A
110 NAME="VERSIONNUMBERS"
111 >6.1. Version numbers</A
112 ></H2
113 ><P
114 >      First you need to determine which version number the release will have. 
115       <SPAN
116 CLASS="APPLICATION"
117 >Privoxy</SPAN
118 > version numbers consist of three numbers,
119       separated by dots, like in X.Y.Z, where:
120         <P
121 ></P
122 ><UL
123 ><LI
124 ><P
125 >              X, the version major, is rarely ever changed. It is increased by one if
126               turning a development branch into stable substantially changes the functionality,
127               user interface or configuration syntax. Majors 1 and 2 were 
128               <SPAN
129 CLASS="APPLICATION"
130 >Junkbuster</SPAN
131 >, and 3 will be the first stable
132               <SPAN
133 CLASS="APPLICATION"
134 >Privoxy</SPAN
135 > release.
136             </P
137 ></LI
138 ><LI
139 ><P
140 >              Y, the version minor, represents the branch within the major version.
141               At any point in time, there are two branches being maintained:
142               The stable branch, with an even minor, say, 2N, in which no functionality is
143               being added and only bugfixes are made, and 2N+1, the development branch, in
144               which the further development of <SPAN
145 CLASS="APPLICATION"
146 >Privoxy</SPAN
147 > takes
148               place.
149               This enables us to turn the code upside down and inside out, while at the same time
150               providing and maintaining a stable version.
151               The minor is reset to zero (and one) when the major is inrcemented. When a development
152               branch has matured to the point where it can be turned into stable, the old stable branch
153               2N is given up (i.e. no longer maintained), the former development branch 2N+1 becomes the
154               new stable branch 2N+2, and a new development branch 2N+3 is opened.
155             </P
156 ></LI
157 ><LI
158 ><P
159 >              Z, the point or sub version, represents a release of the software within a branch.
160               It is therefore incremented immediately before each code freeze. 
161               In development branches, only the even point versions correspond to actual releases,
162               while the odd ones denote the evolving state of the sources on CVS in between.
163               It follows that Z is odd on CVS in development branches most of the time. There, it gets
164               increased to an even number immediately before a code freeze, and is increased to an odd
165               number again immediately thereafter.
166               This ensures that builds from CVS snapshots are easily distinguished from released versions.
167               The point version is reset to zero when the minor changes.
168             </P
169 ></LI
170 ></UL
171 >
172     </P
173 ></DIV
174 ><DIV
175 CLASS="SECT2"
176 ><H2
177 CLASS="SECT2"
178 ><A
179 NAME="BEFORERELEASE"
180 >6.2. Before the Release: Freeze</A
181 ></H2
182 ><P
183 >       The following <I
184 CLASS="EMPHASIS"
185 >must be done by one of the
186        developers</I
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 >.
211        </P
212 ></LI
213 ><LI
214 ><P
215 >        If <TT
216 CLASS="FILENAME"
217 >default.action</TT
218 > has changed since last
219         release (i.e. software release or standalone actions file release),
220         bump up its version info to A.B in this line:
221        </P
222 ><P
223
224         <TABLE
225 BORDER="0"
226 BGCOLOR="#E0E0E0"
227 WIDTH="90%"
228 ><TR
229 ><TD
230 ><PRE
231 CLASS="PROGRAMLISTING"
232 >  {+add-header{X-Actions-File-Version: A.B} -filter -no-popups}</PRE
233 ></TD
234 ></TR
235 ></TABLE
236 >
237        </P
238 ><P
239
240         Then change the version info in doc/webserver/actions/index.php,
241         line: '$required_actions_file_version = "A.B";'
242        </P
243 ></LI
244 ><LI
245 ><P
246 >        If the HTML documentation is not in sync with the SGML sources
247         you need to regenerate and upload it to the webserver. (If in
248         doubt, just do it.) See the Section "Updating the webserver" in
249         this manual for details.
250        </P
251 ></LI
252 ><LI
253 ><P
254 >        <I
255 CLASS="EMPHASIS"
256 >Commit all files that were changed in the above steps!</I
257 >
258        </P
259 ></LI
260 ><LI
261 ><P
262 >        Tag all files in CVS with the version number with
263         <SPAN
264 CLASS="QUOTE"
265 >"<B
266 CLASS="COMMAND"
267 >cvs tag v_X_Y_Z</B
268 >"</SPAN
269 >.
270         Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc.
271        </P
272 ></LI
273 ><LI
274 ><P
275 >        If the release was in a development branch, increase the point version
276         from even to odd (X.Y.(Z+1)) again in <TT
277 CLASS="FILENAME"
278 >configure.in</TT
279 > and
280         commit your change.
281        </P
282 ></LI
283 ><LI
284 ><P
285 >        On the webserver, copy the user manual to a new top-level directory
286         called <TT
287 CLASS="FILENAME"
288 >X.Y.Z</TT
289 >. This ensures that help links from the CGI
290         pages, which have the version as a prefix, will go into the right version of the manual.
291         If this is a development branch release, also symlink <TT
292 CLASS="FILENAME"
293 >X.Y.(Z-1)</TT
294 >
295         to <TT
296 CLASS="FILENAME"
297 >X.Y.Z</TT
298 > and <TT
299 CLASS="FILENAME"
300 >X.Y.(Z+1)</TT
301 > to
302         <TT
303 CLASS="FILENAME"
304 >.</TT
305 > (i.e. dot). 
306        </P
307 ></LI
308 ></UL
309 >
310      </P
311 ></DIV
312 ><DIV
313 CLASS="SECT2"
314 ><H2
315 CLASS="SECT2"
316 ><A
317 NAME="THERELEASE"
318 >6.3. Building and Releasing the Packages</A
319 ></H2
320 ><P
321 >      Now the individual packages can be built and released. Note that for
322       GPL reasons the first package to be released is always the source tarball.
323      </P
324 ><P
325 >      For <I
326 CLASS="EMPHASIS"
327 >all</I
328 > types of packages, including the source tarball,
329       <I
330 CLASS="EMPHASIS"
331 >you must make sure that you build from clean sources by exporting
332       the right version from CVS into an empty directory:</I
333 >.
334      </P
335 ><P
336 >      <TABLE
337 BORDER="0"
338 BGCOLOR="#E0E0E0"
339 WIDTH="100%"
340 ><TR
341 ><TD
342 ><PRE
343 CLASS="PROGRAMLISTING"
344 >  mkdir dist # delete or choose different name if it already exists
345   cd dist
346   cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
347   cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current</PRE
348 ></TD
349 ></TR
350 ></TABLE
351 >
352     </P
353 ><P
354 >     <I
355 CLASS="EMPHASIS"
356 >Do NOT change</I
357 > a single bit, including, but not limited to
358      version information after export from CVS. This is to make sure that
359      all release packages, and with them, all future bug reports, are based
360      on exactly the same code.
361     </P
362 ><P
363 >     Please find additional instructions for the source tarball and the
364      individual platform dependent binary packages below.
365     </P
366 ><DIV
367 CLASS="SECT3"
368 ><H3
369 CLASS="SECT3"
370 ><A
371 NAME="NEWRELEASE-TARBALL"
372 >6.3.1. Source Tarball</A
373 ></H3
374 ><P
375 >       First, <I
376 CLASS="EMPHASIS"
377 >make sure that you have freshly exported the right
378         version into an empty directory</I
379 >. (See "Building and releasing
380         packages" above). Then run:
381         </P
382 ><P
383 >       <TABLE
384 BORDER="0"
385 BGCOLOR="#E0E0E0"
386 WIDTH="100%"
387 ><TR
388 ><TD
389 ><PRE
390 CLASS="PROGRAMLISTING"
391 >  cd current
392   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
393 ></TD
394 ></TR
395 ></TABLE
396 >
397         </P
398 ><P
399 >       Then do:
400         </P
401 ><P
402 >       <TABLE
403 BORDER="0"
404 BGCOLOR="#E0E0E0"
405 WIDTH="100%"
406 ><TR
407 ><TD
408 ><PRE
409 CLASS="PROGRAMLISTING"
410 >  make tarball-dist</PRE
411 ></TD
412 ></TR
413 ></TABLE
414 >
415         </P
416 ><P
417 >       To upload the package to Sourceforge, simply issue
418         </P
419 ><P
420 >       <TABLE
421 BORDER="0"
422 BGCOLOR="#E0E0E0"
423 WIDTH="100%"
424 ><TR
425 ><TD
426 ><PRE
427 CLASS="PROGRAMLISTING"
428 >  make tarball-upload</PRE
429 ></TD
430 ></TR
431 ></TABLE
432 >
433         </P
434 ><P
435 >       Go to the displayed URL and release the file publicly on Sourceforge.
436         For the change log field, use the relevant section of the
437         <TT
438 CLASS="FILENAME"
439 >ChangeLog</TT
440 > file.
441       </P
442 ></DIV
443 ><DIV
444 CLASS="SECT3"
445 ><H3
446 CLASS="SECT3"
447 ><A
448 NAME="NEWRELEASE-RPM"
449 >6.3.2. SuSE or Red Hat RPM</A
450 ></H3
451 ><P
452 >        In following text, replace <TT
453 CLASS="REPLACEABLE"
454 ><I
455 >dist</I
456 ></TT
457 >
458         with either <SPAN
459 CLASS="QUOTE"
460 >"rh"</SPAN
461 > for Red Hat or <SPAN
462 CLASS="QUOTE"
463 >"suse"</SPAN
464 > for SuSE.
465         </P
466 ><P
467 >       First, <I
468 CLASS="EMPHASIS"
469 >make sure that you have freshly exported the right
470         version into an empty directory</I
471 >. (See "Building and releasing
472         packages" above). 
473         </P
474 ><P
475 >        As the only exception to not changing anything after export from CVS,
476         now examine the file <TT
477 CLASS="FILENAME"
478 >privoxy-</TT
479 ><TT
480 CLASS="REPLACEABLE"
481 ><I
482 >dist</I
483 ></TT
484 ><TT
485 CLASS="FILENAME"
486 >.spec</TT
487 >
488         and make sure that the version information and the RPM release number are
489         correct. The RPM release numbers for each version start at one. Hence it must
490         be reset to one if this is the first RPM for
491         <TT
492 CLASS="REPLACEABLE"
493 ><I
494 >dist</I
495 ></TT
496 > which is built from version
497         X.Y.Z. Check the
498         <A
499 HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
500 TARGET="_top"
501 >file
502         list</A
503 > if unsure. Else, it must be set to the highest already available RPM
504         release number for that version plus one.
505         </P
506 ><P
507 >        Then run:
508         </P
509 ><P
510 >       <TABLE
511 BORDER="0"
512 BGCOLOR="#E0E0E0"
513 WIDTH="100%"
514 ><TR
515 ><TD
516 ><PRE
517 CLASS="PROGRAMLISTING"
518 >  cd current
519   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
520 ></TD
521 ></TR
522 ></TABLE
523 >
524         </P
525 ><P
526 >       Then do
527         </P
528 ><P
529 >       <TABLE
530 BORDER="0"
531 BGCOLOR="#E0E0E0"
532 WIDTH="100%"
533 ><TR
534 ><TD
535 ><PRE
536 CLASS="PROGRAMLISTING"
537 >  make <TT
538 CLASS="REPLACEABLE"
539 ><I
540 >dist</I
541 ></TT
542 >-dist</PRE
543 ></TD
544 ></TR
545 ></TABLE
546 >
547         </P
548 ><P
549 >       To upload the package to Sourceforge, simply issue
550         </P
551 ><P
552 >       <TABLE
553 BORDER="0"
554 BGCOLOR="#E0E0E0"
555 WIDTH="100%"
556 ><TR
557 ><TD
558 ><PRE
559 CLASS="PROGRAMLISTING"
560 >  make <TT
561 CLASS="REPLACEABLE"
562 ><I
563 >dist</I
564 ></TT
565 >-upload <TT
566 CLASS="REPLACEABLE"
567 ><I
568 >rpm_packagerev</I
569 ></TT
570 ></PRE
571 ></TD
572 ></TR
573 ></TABLE
574 >
575         </P
576 ><P
577 >        where <TT
578 CLASS="REPLACEABLE"
579 ><I
580 >rpm_packagerev</I
581 ></TT
582 > is the
583         RPM release number as determined above.
584         Go to the displayed URL and release the file publicly on Sourceforge.
585         Use the release notes and change log from the source tarball package.
586       </P
587 ></DIV
588 ><DIV
589 CLASS="SECT3"
590 ><H3
591 CLASS="SECT3"
592 ><A
593 NAME="NEWRELEASE-OS2"
594 >6.3.3. OS/2</A
595 ></H3
596 ><P
597 >       First, <I
598 CLASS="EMPHASIS"
599 >make sure that you have freshly exported the right
600         version into an empty directory</I
601 >. (See "Building and releasing
602         packages" above). Then get the OS/2 Setup module:
603         </P
604 ><P
605 >       <TABLE
606 BORDER="0"
607 BGCOLOR="#E0E0E0"
608 WIDTH="100%"
609 ><TR
610 ><TD
611 ><PRE
612 CLASS="PROGRAMLISTING"
613 >  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup</PRE
614 ></TD
615 ></TR
616 ></TABLE
617 >
618         </P
619 ><P
620 >       You will need a mix of development tools.
621         The main compilation takes place with IBM Visual Age C++.
622         Some ancillary work takes place with GNU tools, available from
623         various sources like hobbes.nmsu.edu.
624         Specificially, you will need <TT
625 CLASS="FILENAME"
626 >autoheader</TT
627 >,
628         <TT
629 CLASS="FILENAME"
630 >autoconf</TT
631 > and <TT
632 CLASS="FILENAME"
633 >sh</TT
634 > tools.
635         The packaging takes place with WarpIN, available from various sources, including
636         its home page: <A
637 HREF="http://www.xworkplace.org/"
638 TARGET="_top"
639 >xworkplace</A
640 >.
641         </P
642 ><P
643 >       Change directory to the <TT
644 CLASS="FILENAME"
645 >os2setup</TT
646 > directory.
647         Edit the os2build.cmd file to set the final executable filename.
648         For example, 
649         </P
650 ><P
651 >       <TABLE
652 BORDER="0"
653 BGCOLOR="#E0E0E0"
654 WIDTH="100%"
655 ><TR
656 ><TD
657 ><PRE
658 CLASS="PROGRAMLISTING"
659 >  installExeName='privoxyos2_setup_X.Y.Z.exe'</PRE
660 ></TD
661 ></TR
662 ></TABLE
663 >
664         </P
665 ><P
666 >       Next, edit the <TT
667 CLASS="FILENAME"
668 >IJB.wis</TT
669 > file so the release number matches
670         in the <TT
671 CLASS="FILENAME"
672 >PACKAGEID</TT
673 > section:
674         </P
675 ><P
676 >       <TABLE
677 BORDER="0"
678 BGCOLOR="#E0E0E0"
679 WIDTH="100%"
680 ><TR
681 ><TD
682 ><PRE
683 CLASS="PROGRAMLISTING"
684 >  PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"</PRE
685 ></TD
686 ></TR
687 ></TABLE
688 >
689         </P
690 ><P
691 >       You're now ready to build.  Run:
692         </P
693 ><P
694 >       <TABLE
695 BORDER="0"
696 BGCOLOR="#E0E0E0"
697 WIDTH="100%"
698 ><TR
699 ><TD
700 ><PRE
701 CLASS="PROGRAMLISTING"
702 >  os2build</PRE
703 ></TD
704 ></TR
705 ></TABLE
706 >
707         </P
708 ><P
709 >         You will find the  WarpIN-installable executable in the
710         <TT
711 CLASS="FILENAME"
712 >./files</TT
713 > directory. Upload this anonymously to
714          <TT
715 CLASS="FILENAME"
716 >uploads.sourceforge.net/incoming</TT
717 >, create a release
718          for it, and you're done. Use the release notes and Change Log from the
719          source tarball package.
720         </P
721 ></DIV
722 ><DIV
723 CLASS="SECT3"
724 ><H3
725 CLASS="SECT3"
726 ><A
727 NAME="NEWRELEASE-SOLARIS"
728 >6.3.4. Solaris</A
729 ></H3
730 ><P
731 >       Login to Sourceforge's compilefarm via ssh:
732         </P
733 ><P
734 >       <TABLE
735 BORDER="0"
736 BGCOLOR="#E0E0E0"
737 WIDTH="100%"
738 ><TR
739 ><TD
740 ><PRE
741 CLASS="PROGRAMLISTING"
742 >  ssh cf.sourceforge.net</PRE
743 ></TD
744 ></TR
745 ></TABLE
746 >
747         </P
748 ><P
749 >       Choose the right operating system (not the Debian one).
750         When logged in, <I
751 CLASS="EMPHASIS"
752 >make sure that you have freshly exported the right
753         version into an empty directory</I
754 >. (See "Building and releasing
755         packages" above). Then run:
756         </P
757 ><P
758 >       <TABLE
759 BORDER="0"
760 BGCOLOR="#E0E0E0"
761 WIDTH="100%"
762 ><TR
763 ><TD
764 ><PRE
765 CLASS="PROGRAMLISTING"
766 >  cd current
767   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
768 ></TD
769 ></TR
770 ></TABLE
771 >
772         </P
773 ><P
774 >       Then run
775         </P
776 ><P
777 >       <TABLE
778 BORDER="0"
779 BGCOLOR="#E0E0E0"
780 WIDTH="100%"
781 ><TR
782 ><TD
783 ><PRE
784 CLASS="PROGRAMLISTING"
785 >  gmake solaris-dist</PRE
786 ></TD
787 ></TR
788 ></TABLE
789 >
790         </P
791 ><P
792 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
793 CLASS="COMMAND"
794 >make
795         solaris-upload</B
796 > on the Sourceforge machine (no ncftpput). You now have
797         to manually upload the archive to Sourceforge's ftp server and release
798         the file publicly. Use the release notes and Change Log from the
799         source tarball package.
800         </P
801 ></DIV
802 ><DIV
803 CLASS="SECT3"
804 ><H3
805 CLASS="SECT3"
806 ><A
807 NAME="NEWRELEASE-WINDOWS"
808 >6.3.5. Windows</A
809 ></H3
810 ><P
811 >        You should ensure you have the latest version of Cygwin (from
812         <A
813 HREF="http://www.cygwin.com/"
814 TARGET="_top"
815 >http://www.cygwin.com/</A
816 >).
817         Run the following commands from within a Cygwin bash shell.
818       </P
819 ><P
820 >       First, <I
821 CLASS="EMPHASIS"
822 >make sure that you have freshly exported the right
823         version into an empty directory</I
824 >. (See "Building and releasing
825         packages" above). Then get the Windows setup module:
826       </P
827 ><P
828 >      <TABLE
829 BORDER="0"
830 BGCOLOR="#E0E0E0"
831 WIDTH="100%"
832 ><TR
833 ><TD
834 ><PRE
835 CLASS="PROGRAMLISTING"
836 >        cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
837 ></TD
838 ></TR
839 ></TABLE
840 >
841       </P
842 ><P
843 >        Then you can build the package.  This is fully automated, and is
844         controlled by <TT
845 CLASS="FILENAME"
846 >winsetup/GNUmakefile</TT
847 >.
848         All you need to do is:
849       </P
850 ><P
851 >      <TABLE
852 BORDER="0"
853 BGCOLOR="#E0E0E0"
854 WIDTH="100%"
855 ><TR
856 ><TD
857 ><PRE
858 CLASS="PROGRAMLISTING"
859 >        cd winsetup
860         make</PRE
861 ></TD
862 ></TR
863 ></TABLE
864 >
865       </P
866 ><P
867 >        Now you can manually rename <TT
868 CLASS="FILENAME"
869 >privoxy_setup.exe</TT
870 > to
871         <TT
872 CLASS="FILENAME"
873 >privoxy_setup_X_Y_Z.exe</TT
874 >, and upload it to
875         SourceForge. When releasing the package on SourceForge, use the release notes
876         and Change Log from the source tarball package.
877       </P
878 ></DIV
879 ><DIV
880 CLASS="SECT3"
881 ><H3
882 CLASS="SECT3"
883 ><A
884 NAME="NEWRELEASE-DEBIAN"
885 >6.3.6. Debian</A
886 ></H3
887 ><P
888 >       First, <I
889 CLASS="EMPHASIS"
890 >make sure that you have freshly exported the right
891         version into an empty directory</I
892 >. (See "Building and releasing
893         packages" above). Then, run:
894         </P
895 ><P
896 >       <TABLE
897 BORDER="0"
898 BGCOLOR="#E0E0E0"
899 WIDTH="100%"
900 ><TR
901 ><TD
902 ><PRE
903 CLASS="PROGRAMLISTING"
904 >  cd current
905   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
906 ></TD
907 ></TR
908 ></TABLE
909 >
910         </P
911 ><P
912 >       Then do FIXME.
913         </P
914 ></DIV
915 ><DIV
916 CLASS="SECT3"
917 ><H3
918 CLASS="SECT3"
919 ><A
920 NAME="NEWRELEASE-MACOSX"
921 >6.3.7. Mac OSX</A
922 ></H3
923 ><P
924 >       First, <I
925 CLASS="EMPHASIS"
926 >make sure that you have freshly exported the right
927         version into an empty directory</I
928 >. (See "Building and releasing
929         packages" above). Then get the Mac OSX setup module:
930         </P
931 ><P
932 >       <TABLE
933 BORDER="0"
934 BGCOLOR="#E0E0E0"
935 WIDTH="100%"
936 ><TR
937 ><TD
938 ><PRE
939 CLASS="PROGRAMLISTING"
940 >  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup</PRE
941 ></TD
942 ></TR
943 ></TABLE
944 >
945         </P
946 ><P
947 >       Then run:
948         </P
949 ><P
950 >       <TABLE
951 BORDER="0"
952 BGCOLOR="#E0E0E0"
953 WIDTH="100%"
954 ><TR
955 ><TD
956 ><PRE
957 CLASS="PROGRAMLISTING"
958 >  cd osxsetup
959   build</PRE
960 ></TD
961 ></TR
962 ></TABLE
963 >
964         </P
965 ><P
966 >       This will run <TT
967 CLASS="FILENAME"
968 >autoheader</TT
969 >, <TT
970 CLASS="FILENAME"
971 >autoconf</TT
972 > and
973         <TT
974 CLASS="FILENAME"
975 >configure</TT
976 > as well as <TT
977 CLASS="FILENAME"
978 >make</TT
979 >.
980         Finally, it will copy over the necessary files to the ./osxsetup/files directory
981         for further processing by <TT
982 CLASS="FILENAME"
983 >PackageMaker</TT
984 >.
985         </P
986 ><P
987 >       Bring up PackageMaker with the PrivoxyPackage.pmsp definition file, modify the package
988         name to match the release, and hit the "Create package" button.
989         If you specify ./Privoxy.pkg as the output package name, you can then create
990         the distributable zip file with the command:
991         </P
992 ><P
993 >       <TABLE
994 BORDER="0"
995 BGCOLOR="#E0E0E0"
996 WIDTH="100%"
997 ><TR
998 ><TD
999 ><PRE
1000 CLASS="PROGRAMLISTING"
1001 >zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
1002 ></TD
1003 ></TR
1004 ></TABLE
1005 >
1006         </P
1007 ><P
1008 >       You can then upload <TT
1009 CLASS="FILENAME"
1010 >privoxyosx_setup_x.y.z.zip</TT
1011 > anonymously to 
1012         <TT
1013 CLASS="FILENAME"
1014 >uploads.sourceforge.net/incoming</TT
1015 >,
1016         create a release for it, and you're done. Use the release notes
1017         and Change Log from the source tarball package.
1018         </P
1019 ></DIV
1020 ><DIV
1021 CLASS="SECT3"
1022 ><H3
1023 CLASS="SECT3"
1024 ><A
1025 NAME="NEWRELEASE-FREEBSD"
1026 >6.3.8. FreeBSD</A
1027 ></H3
1028 ><P
1029 >       Login to Sourceforge's compilefarm via ssh:
1030         </P
1031 ><P
1032 >       <TABLE
1033 BORDER="0"
1034 BGCOLOR="#E0E0E0"
1035 WIDTH="100%"
1036 ><TR
1037 ><TD
1038 ><PRE
1039 CLASS="PROGRAMLISTING"
1040 >  ssh cf.sourceforge.net</PRE
1041 ></TD
1042 ></TR
1043 ></TABLE
1044 >
1045         </P
1046 ><P
1047 >       Choose the right operating system.
1048         When logged in, <I
1049 CLASS="EMPHASIS"
1050 >make sure that you have freshly exported the right
1051         version into an empty directory</I
1052 >. (See "Building and releasing
1053         packages" above). Then run:
1054         </P
1055 ><P
1056 >       <TABLE
1057 BORDER="0"
1058 BGCOLOR="#E0E0E0"
1059 WIDTH="100%"
1060 ><TR
1061 ><TD
1062 ><PRE
1063 CLASS="PROGRAMLISTING"
1064 >  cd current
1065   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1066 ></TD
1067 ></TR
1068 ></TABLE
1069 >
1070         </P
1071 ><P
1072 >       Then run:
1073         </P
1074 ><P
1075 >       <TABLE
1076 BORDER="0"
1077 BGCOLOR="#E0E0E0"
1078 WIDTH="100%"
1079 ><TR
1080 ><TD
1081 ><PRE
1082 CLASS="PROGRAMLISTING"
1083 >  gmake freebsd-dist</PRE
1084 ></TD
1085 ></TR
1086 ></TABLE
1087 >
1088         </P
1089 ><P
1090 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
1091 CLASS="COMMAND"
1092 >make
1093         freebsd-upload</B
1094 > on the Sourceforge machine (no ncftpput). You now have
1095         to manually upload the archive to Sourceforge's ftp server and release
1096         the file publicly. Use the release notes and Change Log from the
1097         source tarball package.
1098         </P
1099 ></DIV
1100 ><DIV
1101 CLASS="SECT3"
1102 ><H3
1103 CLASS="SECT3"
1104 ><A
1105 NAME="NEWRELEASE-HPUX"
1106 >6.3.9. HP-UX 11</A
1107 ></H3
1108 ><P
1109 >       First, <I
1110 CLASS="EMPHASIS"
1111 >make sure that you have freshly exported the right
1112         version into an empty directory</I
1113 >. (See "Building and releasing
1114         packages" above). Then run:
1115         </P
1116 ><P
1117 >       <TABLE
1118 BORDER="0"
1119 BGCOLOR="#E0E0E0"
1120 WIDTH="100%"
1121 ><TR
1122 ><TD
1123 ><PRE
1124 CLASS="PROGRAMLISTING"
1125 >  cd current
1126   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1127 ></TD
1128 ></TR
1129 ></TABLE
1130 >
1131         </P
1132 ><P
1133 >       Then do FIXME.
1134         </P
1135 ></DIV
1136 ><DIV
1137 CLASS="SECT3"
1138 ><H3
1139 CLASS="SECT3"
1140 ><A
1141 NAME="NEWRELEASE-AMIGA"
1142 >6.3.10. Amiga OS</A
1143 ></H3
1144 ><P
1145 >       First, <I
1146 CLASS="EMPHASIS"
1147 >make sure that you have freshly exported the right
1148         version into an empty directory</I
1149 >. (See "Building and releasing
1150         packages" above). Then run:
1151         </P
1152 ><P
1153 >       <TABLE
1154 BORDER="0"
1155 BGCOLOR="#E0E0E0"
1156 WIDTH="100%"
1157 ><TR
1158 ><TD
1159 ><PRE
1160 CLASS="PROGRAMLISTING"
1161 >  cd current
1162   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1163 ></TD
1164 ></TR
1165 ></TABLE
1166 >
1167         </P
1168 ><P
1169 >       Then do FIXME.
1170         </P
1171 ></DIV
1172 ><DIV
1173 CLASS="SECT3"
1174 ><H3
1175 CLASS="SECT3"
1176 ><A
1177 NAME="NEWRELEASE-AIX"
1178 >6.3.11. AIX</A
1179 ></H3
1180 ><P
1181 >       Login to Sourceforge's compilefarm via ssh:
1182         </P
1183 ><P
1184 >       <TABLE
1185 BORDER="0"
1186 BGCOLOR="#E0E0E0"
1187 WIDTH="100%"
1188 ><TR
1189 ><TD
1190 ><PRE
1191 CLASS="PROGRAMLISTING"
1192 >  ssh cf.sourceforge.net</PRE
1193 ></TD
1194 ></TR
1195 ></TABLE
1196 >
1197         </P
1198 ><P
1199 >       Choose the right operating system.
1200         When logged in, <I
1201 CLASS="EMPHASIS"
1202 >make sure that you have freshly exported the right
1203         version into an empty directory</I
1204 >. (See "Building and releasing
1205         packages" above). Then run:
1206         </P
1207 ><P
1208 >       <TABLE
1209 BORDER="0"
1210 BGCOLOR="#E0E0E0"
1211 WIDTH="100%"
1212 ><TR
1213 ><TD
1214 ><PRE
1215 CLASS="PROGRAMLISTING"
1216 >  cd current
1217   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1218 ></TD
1219 ></TR
1220 ></TABLE
1221 >
1222         </P
1223 ><P
1224 >       Then run:
1225         </P
1226 ><P
1227 >       <TABLE
1228 BORDER="0"
1229 BGCOLOR="#E0E0E0"
1230 WIDTH="100%"
1231 ><TR
1232 ><TD
1233 ><PRE
1234 CLASS="PROGRAMLISTING"
1235 >  make aix-dist</PRE
1236 ></TD
1237 ></TR
1238 ></TABLE
1239 >
1240         </P
1241 ><P
1242 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
1243 CLASS="COMMAND"
1244 >make
1245         aix-upload</B
1246 > on the Sourceforge machine (no ncftpput). You now have
1247         to manually upload the archive to Sourceforge's ftp server and release
1248         the file publicly. Use the release notes and Change Log from the
1249         source tarball package.
1250         </P
1251 ></DIV
1252 ></DIV
1253 ><DIV
1254 CLASS="SECT2"
1255 ><H2
1256 CLASS="SECT2"
1257 ><A
1258 NAME="RELEASING"
1259 >6.4. Uploading and Releasing Your Package</A
1260 ></H2
1261 ><P
1262 >      After the package is ready, it is time to upload it 
1263       to SourceForge, and go through the release steps. The upload
1264       is done via FTP:
1265     </P
1266 ><P
1267 >      <P
1268 ></P
1269 ><UL
1270 ><LI
1271 ><P
1272 >          Upload to: <A
1273 HREF="ftp://upload.sourceforge.net/incoming"
1274 TARGET="_top"
1275 >ftp://upload.sourceforge.net/incoming</A
1276 >
1277         </P
1278 ></LI
1279 ><LI
1280 ><P
1281 >         user: <TT
1282 CLASS="LITERAL"
1283 >anonymous</TT
1284 >
1285        </P
1286 ></LI
1287 ><LI
1288 ><P
1289 >         password: <TT
1290 CLASS="LITERAL"
1291 >ijbswa-developers@lists.sourceforge.net</TT
1292 >
1293        </P
1294 ></LI
1295 ></UL
1296 >
1297     </P
1298 ><P
1299 >     Once this done go to <A
1300 HREF="http://sourceforge.net/project/admin/editpackages.php?group_id=11118"
1301 TARGET="_top"
1302 >http://sourceforge.net/project/admin/editpackages.php?group_id=11118</A
1303 >, 
1304      making sure you are logged in. Find your target platform in the 
1305      second column, and click <TT
1306 CLASS="LITERAL"
1307 >Add Release</TT
1308 >. You will 
1309      then need to create a new release for your package, using the format 
1310      of <TT
1311 CLASS="LITERAL"
1312 >$VERSION ($CODE_STATUS)</TT
1313 >, e.g. <I
1314 CLASS="EMPHASIS"
1315 >2.9.15
1316      (beta)</I
1317 >.
1318     </P
1319 ><P
1320 >     Now just follow the prompts. Be sure to add any appropriate Release
1321      notes. You should see your freshly uploaded packages in 
1322      <SPAN
1323 CLASS="QUOTE"
1324 >"Step 2. Add Files To This Release"</SPAN
1325 >. Check the 
1326      appropriate box(es). Remember at each step to hit the 
1327      <SPAN
1328 CLASS="QUOTE"
1329 >"Refresh/Submit"</SPAN
1330 > buttons! You should now see your 
1331      file(s) listed in Step 3. Fill out the forms with the appropriate 
1332      information for your platform, being sure to hit <SPAN
1333 CLASS="QUOTE"
1334 >"Update"</SPAN
1335 >
1336      for each file. If anyone is monitoring your platform, check the 
1337      <SPAN
1338 CLASS="QUOTE"
1339 >"email"</SPAN
1340 > box at the very bottom to notify them of 
1341      the new package. This should do it!
1342     </P
1343 ><P
1344 >     If you have made errors, or need to make changes, you can go through 
1345      essentially the same steps, but select <TT
1346 CLASS="LITERAL"
1347 >Edit Release</TT
1348 >, 
1349      instead of <TT
1350 CLASS="LITERAL"
1351 >Add Release</TT
1352 >.
1353     </P
1354 ></DIV
1355 ><DIV
1356 CLASS="SECT2"
1357 ><H2
1358 CLASS="SECT2"
1359 ><A
1360 NAME="AFTERRELEASE"
1361 >6.5. After the Release</A
1362 ></H2
1363 ><P
1364 >      When all (or: most of the) packages have been uploaded and made available,
1365       send an email to the <A
1366 HREF="mailto:ijbswa-announce@lists.sourceforge.net"
1367 TARGET="_top"
1368 >announce
1369       mailing list</A
1370 >, Subject: "Version X.Y.Z available for download". Be sure to
1371       include the
1372       <A
1373 HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
1374 TARGET="_top"
1375 >download
1376       location</A
1377 >, the release notes and the change log.
1378      </P
1379 ></DIV
1380 ></DIV
1381 ><DIV
1382 CLASS="NAVFOOTER"
1383 ><HR
1384 ALIGN="LEFT"
1385 WIDTH="100%"><TABLE
1386 WIDTH="100%"
1387 BORDER="0"
1388 CELLPADDING="0"
1389 CELLSPACING="0"
1390 ><TR
1391 ><TD
1392 WIDTH="33%"
1393 ALIGN="left"
1394 VALIGN="top"
1395 ><A
1396 HREF="testing.html"
1397 >Prev</A
1398 ></TD
1399 ><TD
1400 WIDTH="34%"
1401 ALIGN="center"
1402 VALIGN="top"
1403 ><A
1404 HREF="index.html"
1405 >Home</A
1406 ></TD
1407 ><TD
1408 WIDTH="33%"
1409 ALIGN="right"
1410 VALIGN="top"
1411 ><A
1412 HREF="webserver-update.html"
1413 >Next</A
1414 ></TD
1415 ></TR
1416 ><TR
1417 ><TD
1418 WIDTH="33%"
1419 ALIGN="left"
1420 VALIGN="top"
1421 >Testing Guidelines</TD
1422 ><TD
1423 WIDTH="34%"
1424 ALIGN="center"
1425 VALIGN="top"
1426 >&nbsp;</TD
1427 ><TD
1428 WIDTH="33%"
1429 ALIGN="right"
1430 VALIGN="top"
1431 >Update the Webserver</TD
1432 ></TR
1433 ></TABLE
1434 ></DIV
1435 ></BODY
1436 ></HTML
1437 >