X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fwebserver%2Fdeveloper-manual%2Fnewrelease.html;h=81cad14783769eb2954e17f0ed16395b2e1a6d3b;hb=321944b1997539a18dc73184c01a81f6b89acb65;hp=1a110949f9f3f4a9d2c1827175cc65b385870b2a;hpb=6c57654c56fc87fecf213110838dc0bad33a1d63;p=privoxy.git diff --git a/doc/webserver/developer-manual/newrelease.html b/doc/webserver/developer-manual/newrelease.html index 1a110949..81cad147 100644 --- a/doc/webserver/developer-manual/newrelease.html +++ b/doc/webserver/developer-manual/newrelease.html @@ -1,7 +1,7 @@
To minimize trouble with distribution contents, web-page - errors and the like, we strongly encourage you - to follow this section if you prepare a new release of - code or new pages on the webserver. +> When we release versions of Privoxy, + our work leaves our cozy secret lab and has to work in the cold + RealWorld[tm]. Once it is released, there is no way to call it + back, so it is very important that great care is taken to ensure + that everything runs fine, and not to introduce problems in the + very last minute. +
So when releasing a new version, please adhere exactly to the + procedure outlined in this chapter.
The following programs are required to follow this process: @@ -86,23 +95,89 @@ CLASS="FILENAME" >ncftpput (ncftp), scpscp, ssh (ssh), -gmake (GNU's version of make), autoconf, cvs, ???. +> (GNU's version of make), autoconf, cvs.
First you need to determine which version number the release will have. + Privoxy version numbers consist of three numbers, + separated by dots, like in X.Y.Z, where: +
X, the version major, is rarely ever changed. It is increased by one if + turning a development branch into stable substantially changes the functionality, + user interface or configuration syntax. Majors 1 and 2 were + Junkbuster, and 3 will be the first stable + Privoxy release. +
Y, the version minor, represents the branch within the major version. + At any point in time, there are two branches being maintained: + The stable branch, with an even minor, say, 2N, in which no functionality is + being added and only bugfixes are made, and 2N+1, the development branch, in + which the further development of Privoxy takes + place. + This enables us to turn the code upside down and inside out, while at the same time + providing and maintaining a stable version. + The minor is reset to zero (and one) when the major is inrcemented. When a development + branch has matured to the point where it can be turned into stable, the old stable branch + 2N is given up (i.e. no longer maintained), the former development branch 2N+1 becomes the + new stable branch 2N+2, and a new development branch 2N+3 is opened. +
Replace X, Y and Z with the actual version number (X = major, Y = minor, Z = point): +> Z, the point or sub version, represents a release of the software within a branch. + It is therefore incremented immediately before each code freeze. + In development branches, only the even point versions correspond to actual releases, + while the odd ones denote the evolving state of the sources on CVS in between. + It follows that Z is odd on CVS in development branches most of the time. There, it gets + increased to an even number immediately before a code freeze, and is increased to an odd + number again immediately thereafter. + This ensures that builds from CVS snapshots are easily distinguished from released versions. + The point version is reset to zero when the minor changes. +
The following "no!" in case - they have pending changes/fixes in their pipelines. + they have pending changes/fixes in their pipelines. Announce the + freeze so that nobody will interfere with last minute changes.
Increment the version number in configure.in in - CVS. Also, increase or reset the RPM release number in - configure.in as appropriate. Do NOT - touch version information after export from CVS. - All packages will use the version and release data - from Increment the version number (point from odd to even in development + branches!) in configure.in. - Local files should not be changed, except prior to a CVS commit!!! - This way we are all on the same page!
If the default If actionsfiledefault.action has changed since last - release, bump up its version info in this line: + release (i.e. software release or standalone actions file release), + bump up its version info to A.B in this line:
@@ -170,8 +229,7 @@ WIDTH="90%" >
{+add-header{X-Actions-File-Version: A.B} -filter -no-popups} -{+add-header{X-Actions-File-Version: A.B} -filter -no-popups}
If the HTML documentation is not in sync with the SGML sources + you need to regenerate and upload it to the webserver. (If in + doubt, just do it.) See the Section "Updating the webserver" in + this manual for details. +
Commit all files that were changed in the above steps!
The first package uploaded should be the official - "tarball" release, as required by the GPL. This is built - with the "make tarball-dist" Makefile - target, and then can be uploaded with - "make tarball-upload" (see below). +> If the release was in a development branch, increase the point version + from even to odd (X.Y.(Z+1)) again in configure.in and + commit your change. +
On the webserver, copy the user manual to a new top-level directory + called X.Y.Z. This ensures that help links from the CGI + pages, which have the version as a prefix, will go into the right version of the manual. + If this is a development branch release, also symlink X.Y.(Z-1) + to X.Y.Z and X.Y.(Z+1) to + . (i.e. dot).
All files must be group-readable and group-writable (or no one else - will be able to change them)! To update the webserver, create any - pages locally in the doc/webserver/* directory (or - create new directories under doc/webserver), then do -
Now the individual packages can be built and released. Note that for + GPL reasons the first package to be released is always the source tarball. +
make webserver -mkdir dist # delete or choose different name if it already exists + cd dist + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current |
This will do the upload to the webserver (www.privoxy.org). -
Do NOT change a single bit, including, but not limited to + version information after export from CVS. This is to make sure that + all release packages, and with them, all future bug reports, are based + on exactly the same code. +Note that "make dok" - (or "make redhat-dok") creates - doc/webserver/user-manual, - doc/webserver/developer-manual, - doc/webserver/faq and - doc/webserver/index.html automatically. - (doc/webserver/man-page/privoxy-man-page.html Please find additional instructions for the source tarball and the + individual platform dependent binary packages below. +
First, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then run: +
cd current + autoheader && autoconf && ./configure |
- Someone should also commit these to CVS so that packagers without the - ability to build docs locally, have access to them. This is a separate - step, and should also be done before each official release. -
Then do: +Please do NOT use any other means of transferring files to the - webserver. "make webserver" not only - uploads, but will make sure that the appropriate permissions are - preserved for shared group access. -
make tarball-dist |
Ensure that you have the latest code version. Hence run: +> To upload the package to Sourceforge, simply issue
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current -make tarball-upload |
first. +> Go to the displayed URL and release the file publicly on Sourceforge. + For the change log field, use the relevant section of the + ChangeLog file. +
In following text, replace dist + with either "rh" for Red Hat or "suse" for SuSE. +
First, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). +
As the only exception to not changing anything after export from CVS, + now examine the file privoxy-dist.spec + and make sure that the version information and the RPM release number are + correct. The RPM release numbers for each version start at one. Hence it must + be reset to one if this is the first RPM for + dist which is built from version + X.Y.Z. Check the + file + list if unsure. Else, it must be set to the highest already available RPM + release number for that version plus one. +
Then run:
autoheader && autoconf && ./configure -cd current + autoheader && autoconf && ./configure |
make suse-dist or make redhat-dist -make dist-dist
make suse-upload (or make redhat-upload) -make dist-upload rpm_packagerev
Go to the displayed URL and release the file publicly on Sourceforge. +> where rpm_packagerev is the + RPM release number as determined above. + Go to the displayed URL and release the file publicly on Sourceforge. + Use the release notes and change log from the source tarball package.
Ensure that you have the latest code version. Hence run: +> First, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then get the OS/2 Setup module:
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd .. - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup -cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup |
installExeName='privoxyos2_setup_X.Y.Z.exe' -installExeName='privoxyos2_setup_X.Y.Z.exe' |
Next, edit the IJB.wis file so the release number matches @@ -510,7 +671,9 @@ CLASS="FILENAME" CLASS="FILENAME" >PACKAGEID section: -
PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z" -PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z" |
os2build -os2build |
You will find the WarpIN-installable executable in the + ./files directory you will have the - WarpIN-installable executable. - Upload this anonymously to - directory. Upload this anonymously to + uploads.sourceforge.net/incoming, create a release - for it, and you're done. + for it, and you're done. Use the release notes and Change Log from the + source tarball package.
Login to Sourceforge's compilefarm via ssh -
ssh cf.sourceforge.net - |
Choose the right operating system (not the Debian one). If you have - downloaded Privoxy before, +> Login to Sourceforge's compilefarm via ssh:
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current -ssh cf.sourceforge.net |
If not, please checkout - Privoxy via CVS first. Run: +> Choose the right operating system (not the Debian one). + When logged in, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then run:
autoheader && autoconf && ./configure -cd current + autoheader && autoconf && ./configure |
gmake solaris-dist -gmake solaris-dist
Ensure that you have the latest code version. Hence run -
You should ensure you have the latest version of Cygwin (from + http://www.cygwin.com/). + Run the following commands from within a Cygwin bash shell. +
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current -cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup |
Run: -
Then you can build the package. This is fully automated, and is + controlled by winsetup/GNUmakefile. + All you need to do is: +
autoheader && autoconf && ./configure -cd winsetup + make |
Then do FIXME. -
Now you can manually rename privoxy_setup.exe to + privoxy_setup_X_Y_Z.exe, and upload it to + SourceForge. When releasing the package on SourceForge, use the release notes + and Change Log from the source tarball package. +Ensure that you have the latest code version. Hence run: -
8.3.6. Debian
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current - |
first. Run: +> First, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then, run:
autoheader && autoconf && ./configure -cd current + autoheader && autoconf && ./configure |
Ensure that you have the latest code version. Hence run: +> First, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then get the Mac OSX setup module:
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd .. - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup -cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup |
From the osxsetup directory, run: -
build -cd osxsetup + build |
zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg -zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg |
You can then upload privoxyosx_setup_x.y.z.zip anonymously to @@ -856,39 +1013,18 @@ CLASS="FILENAME" CLASS="FILENAME" >uploads.sourceforge.net/incoming, - create a release for it, and you're done. + create a release for it, and you're done. Use the release notes + and Change Log from the source tarball package.
Change the version number of Privoxy in the - configure.in file. Run: -
autoheader && autoconf && ./configure - |
Login to Sourceforge's compilefarm via ssh:
ssh cf.sourceforge.net -ssh cf.sourceforge.net
Choose the right operating system. + When logged in, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then run:
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current - |
Run: -
autoheader && autoconf && ./configure -cd current + autoheader && autoconf && ./configure |
gmake freebsd-dist -gmake freebsd-dist
Ensure that you have the right code version. Hence run: +> First, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then run:
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current -cd current + autoheader && autoconf && ./configure |
first. Run: -
autoheader && autoconf && ./configure - |
Then do: +> First, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then run:
make tarball-dist -cd current + autoheader && autoconf && ./configure |
To upload the package to Sourceforge, simply issue -
make tarball-upload - |
Goto the displayed URL and release the file publicly on Sourceforge. -
Ensure that you have the latest code version. Hence run: -
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current - |
first. Run: +> Login to Sourceforge's compilefarm via ssh:
autoheader && autoconf && ./configure -ssh cf.sourceforge.net |
Then do FIXME. -
Ensure that you have the latest code version. Hence run: +> Choose the right operating system. + When logged in, make sure that you have freshly exported the right + version into an empty directory. (See "Building and releasing + packages" above). Then run:
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current -cd current + autoheader && autoconf && ./configure |
first. Run: +> Then run:
autoheader && autoconf && ./configure -make aix-dist |
Then do FIXME. +> which creates a gzip'ed tar archive. Sadly, you cannot use make + aix-upload on the Sourceforge machine (no ncftpput). You now have + to manually upload the archive to Sourceforge's ftp server and release + the file publicly. Use the release notes and Change Log from the + source tarball package.
Login to Sourceforge's compilefarm via ssh: -
After the package is ready, it is time to upload it + to SourceForge, and go through the release steps. The upload + is done via FTP: +
ssh cf.sourceforge.net - |
Upload to: ftp://upload.sourceforge.net/incoming -
Choose the right operating system. If you have downloaded Privoxy - before: -
user: anonymous +
cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - cd current - |
If not, please Once this done go to checkout - Privoxy via CVS first. Run: -
http://sourceforge.net/project/admin/editpackages.php?group_id=11118, + making sure you are logged in. Find your target platform in the + second column, and click Add Release. You will + then need to create a new release for your package, using the format + of $VERSION ($CODE_STATUS), e.g. 2.9.14 + (beta). +
autoheader && autoconf && ./configure - |
Then run: -
"email" box at the very bottom to notify them of + the new package. This should do it! +
make aix-dist - |
which creates a gzip'ed tar archive. Sadly, you cannot use make - aix-upload on the Sourceforge machine (no ncftpput). You now have - to manually upload the archive to Sourceforge's ftp server and release - the file publicly. -
When all (or: most of the) packages have been uploaded and made available, + send an email to the announce + mailing list, Subject: "Version X.Y.Z available for download". Be sure to + include the + download + location, the release notes and the change log. +