| 26 | | ----------------------- |
|---|
| 27 | | |
|---|
| 28 | | The cvs version does not included the HTML documentation. |
|---|
| 29 | | The HTML docs are built from the swish_website module (also in cvs) |
|---|
| 30 | | using the same templates that http://swish-e.org uses. |
|---|
| 31 | | The tools to build the HTML docs can also be fetched via cvs |
|---|
| 32 | | from SourceForge (see the swish_website cvs module). |
|---|
| 33 | | |
|---|
| 34 | | The swish_website module requires several Perl modules, |
|---|
| 35 | | including Template-Toolkit, Pod::POM and a few others. |
|---|
| 36 | | Once you have swish_website downloaded and can build the site |
|---|
| 37 | | using the swish_website/bin/build script, |
|---|
| | 26 | ======================= |
|---|
| | 27 | |
|---|
| | 28 | The cvs version does not included the HTML documentation. The HTML docs are |
|---|
| | 29 | built from the swish_website module (also in cvs) using the same templates that |
|---|
| | 30 | http://swish-e.org uses. Links not pointing to the local documentation are |
|---|
| | 31 | adjusted in the distribuiton documentation to point to http://swish-e.org. |
|---|
| | 32 | |
|---|
| | 33 | The tools to build the HTML docs can also be fetched via cvs from SourceForge |
|---|
| | 34 | (see the swish_website cvs module). |
|---|
| | 35 | |
|---|
| | 36 | The swish_website module requires several Perl modules, including |
|---|
| | 37 | Template-Toolkit, Pod::POM and a few others. Once you have swish_website |
|---|
| | 38 | downloaded and can build the site using the swish_website/bin/build script, |
|---|
| 52 | | from tarball) via cron. See script for details. |
|---|
| | 58 | from tarball) via cron. In a top-level build directory a dated sub-directory is |
|---|
| | 59 | created and the source is fetched, compiled and installed. For example: |
|---|
| | 60 | |
|---|
| | 61 | swish-daily.pl \ |
|---|
| | 62 | --topdir=$HOME/swish/swish_daily_build |
|---|
| | 63 | --tardir=$HOME/swish/swish-daily |
|---|
| | 64 | |
|---|
| | 65 | Which creates a directory structure like: |
|---|
| | 66 | |
|---|
| | 67 | $ ls -l swish_daily_build/ |
|---|
| | 68 | latest_swish_build -> swish-e-2005-05-29 |
|---|
| | 69 | swish-e-2005-05-26 |
|---|
| | 70 | swish-e-2005-05-27 |
|---|
| | 71 | swish-e-2005-05-28 |
|---|
| | 72 | swish-e-2005-05-29 |
|---|
| | 73 | |
|---|
| | 74 | See the documentation in the swish-daily.pl script for more details. |
|---|
| 59 | | --------------- |
|---|
| 60 | | |
|---|
| 61 | | 1) Run cvs update to make sure have current sources and cvs -nq update to |
|---|
| 62 | | make sure there's nothing left to check in |
|---|
| | 81 | =============== |
|---|
| | 82 | |
|---|
| | 83 | There's two parts to making a release. One is building the tarball |
|---|
| | 84 | and the other is updating the website. (Plus, announce the relase, |
|---|
| | 85 | of course). |
|---|
| | 86 | |
|---|
| | 87 | Building the tarball is done on your own machine, and then testing that tarball. |
|---|
| | 88 | |
|---|
| | 89 | Updating the site requires using the swish-daily.pl script to fetch the tarball, |
|---|
| | 90 | build it and then update the website. There's a script called Make_Release.sh that |
|---|
| | 91 | automates this process. |
|---|
| | 92 | |
|---|
| | 93 | |
|---|
| | 94 | Building the tarball |
|---|
| | 95 | -------------------- |
|---|
| | 96 | |
|---|
| | 97 | 1) Run "cvs -nq update" to make sure your copy is up-to-date. |
|---|
| | 98 | Watch carefully for merge errors. |
|---|
| 70 | | 5) Make sure you have the swish_website module available from cvs and that |
|---|
| 71 | | it will build correctly. |
|---|
| 72 | | |
|---|
| 73 | | 6) run make distcheck to make sure it all builds correctly. |
|---|
| 74 | | |
|---|
| 75 | | **** Bill TODO: how are HTML docs made now? does distcheck do it? ****** |
|---|
| 76 | | |
|---|
| 77 | | 7) good idea to upload the tarball created by make distcheck someplace and |
|---|
| | 106 | 5) Make sure you have the swish_website module available and can build |
|---|
| | 107 | the docs. See above about building the docs. |
|---|
| | 108 | |
|---|
| | 109 | 6) Run make distcheck to make sure it all builds correctly. |
|---|
| | 110 | |
|---|
| | 111 | $ mkdir temp && cd temp |
|---|
| | 112 | $ ../swish-e/configure >/dev/null (/dev/null is up to you) |
|---|
| | 113 | $ make distcheck > /dev/null |
|---|
| | 114 | |
|---|
| | 115 | That will create a tarball in the current directory. |
|---|
| | 116 | |
|---|
| | 117 | 7) Good idea to upload the tarball created by make distcheck someplace and |
|---|
| | 132 | |
|---|
| | 133 | |
|---|
| | 134 | Update Site |
|---|
| | 135 | ----------- |
|---|
| | 136 | |
|---|
| | 137 | Updating the site for a new release means updating the web site, such as the |
|---|
| | 138 | main page to announce the new release, and to build the web site using the new |
|---|
| | 139 | release so the on-line documentation is up to date. |
|---|
| | 140 | |
|---|
| | 141 | This is always a bit more hands-on due to changes in the build system between |
|---|
| | 142 | releases. |
|---|
| | 143 | |
|---|
| | 144 | See swish_website/README for more details on building the web site, but |
|---|
| | 145 | basically the swish_website script (bin/build) needs to know where to find the |
|---|
| | 146 | source for both the release and the current development builds. This is currently done by |
|---|
| | 147 | two symlinks "swishsrc" and "develsrc". develsrc points to the daily build directory: |
|---|
| | 148 | |
|---|
| | 149 | |
|---|
| | 150 | For example: |
|---|
| | 151 | |
|---|
| | 152 | develsrc -> /home/bmoseley/swish/swish_daily_build/latest_swish_build/source |
|---|
| | 153 | |
|---|
| | 154 | The daily builds are created with the swish-daily.pl script. swish-daily.pl fetches the |
|---|
| | 155 | source via cvs (with daily builds) or via a URL (for releases), unpacks into the "source" |
|---|
| | 156 | directory and builds swish-e. If all goes well a symlink is created to the |
|---|
| | 157 | "latest_swish_build". |
|---|
| | 158 | |
|---|
| | 159 | This same process can be used to build a release. But, instead of fetching from cvs[1] |
|---|
| | 160 | you fetch a tarball built above and placed in some location to fetch by URL. |
|---|
| | 161 | |
|---|
| | 162 | The swish_website/Build_Release.sh script does this by running: |
|---|
| | 163 | |
|---|
| | 164 | #!/bin/sh |
|---|
| | 165 | |
|---|
| | 166 | DIR="${BASE_DIR:=$HOME/swish}" |
|---|
| | 167 | |
|---|
| | 168 | if test ! -n "$1"; then |
|---|
| | 169 | echo "Must specify URL to fetch" |
|---|
| | 170 | exit 1 |
|---|
| | 171 | fi |
|---|
| | 172 | |
|---|
| | 173 | TAR_URL="$1" |
|---|
| | 174 | |
|---|
| | 175 | swish-daily.pl \ |
|---|
| | 176 | --fetchtarurl="$TAR_URL" \ |
|---|
| | 177 | --topdir=$DIR/swish_release_build \ |
|---|
| | 178 | --noremove \ |
|---|
| | 179 | --notimestamp \ |
|---|
| | 180 | --verbose \ |
|---|
| | 181 | --tardir=$DIR/swish-releases || exit 1; |
|---|
| | 182 | |
|---|
| | 183 | So, run that script and pass a URL, swish-daily.pl will fetch the script, attempt to |
|---|
| | 184 | build and install swish-e, and then build a tarball and place it in the swish-releases |
|---|
| | 185 | directory and upate the latest.tar.gz link. That basically makes the tarball available in |
|---|
| | 186 | the download directory, but it cannot be seen yet until the website is updated. |
|---|
| | 187 | |
|---|
| | 188 | For that you can run the swish_website/build.sh script, passing -a to tell it to build the |
|---|
| | 189 | entire site. |
|---|
| | 190 | |
|---|
| | 191 | |
|---|
| 185 | | ************ Bill TODO *********** |
|---|
| 186 | | Update Site |
|---|
| 187 | | ----------- |
|---|
| 188 | | |
|---|
| 189 | | These are notes from the README on the swish-e.org site (in the builds directory). |
|---|
| 190 | | Some of these notes duplicate comments from above. |
|---|
| 191 | | |
|---|
| 192 | | |
|---|
| 193 | | To make a release: |
|---|
| 194 | | |
|---|
| 195 | | This uses the swish-daily.pl script. It still needs updating to |
|---|
| 196 | | work better with a "release" (namely the script used here has been modified |
|---|
| 197 | | to not remove old tarballs and to not copy the build logs to the Download directory. |
|---|
| 198 | | |
|---|
| 199 | | Need to find time to update the swish-daily script to read params from a soruce file. |
|---|
| 200 | | |
|---|
| 201 | | To create a release: |
|---|
| 202 | | |
|---|
| 203 | | 1) update configure.in's version number and run a make distcheck. |
|---|
| 204 | | Then cvs ci to update the version in cvs |
|---|
| 205 | | And tag the files: cvs tar rel-2-4-0 |
|---|
| 206 | | |
|---|
| 207 | | 2) I scp the tarball to swish-e.org's top directory (just a place with web access) |
|---|
| 208 | | 3) run the build scrip: |
|---|
| 209 | | |
|---|
| 210 | | ./swish-daily.pl -notimestamp -fetchtarurl=http://swish-e.org/swish-e-2.4.0.tar.gz |
|---|
| 211 | | |
|---|
| 212 | | (Be careful about permissions here as it does try and move links around) |
|---|
| 213 | | |
|---|
| 214 | | That will fetch the tarball, unpack into a build directory, and make install into |
|---|
| 215 | | an install directory (all this happens in the /data/_a/webdata/SWISH-E/builds directory. |
|---|
| 216 | | |
|---|
| 217 | | The HTML docs are indexed and the symlink at /data/_a/webdata/SWISH-E/current/docs is |
|---|
| 218 | | updated to point to this install directory. |
|---|
| 219 | | |
|---|
| 220 | | Then make dist is run and the resulting tarball is copied to |
|---|
| 221 | | /data/_a/webdata/SWISH-E/Download |
|---|
| 222 | | |
|---|
| 223 | | The --notimestamp option disables the timestamp option used by configure to add a date to |
|---|
| 224 | | the version number. |
|---|
| 225 | | |
|---|
| 226 | | Note that a "lastinstall" file is used to track the last installation directory. So next |
|---|
| 227 | | time a build is created the old installation directory is removed. |
|---|
| 228 | | |
|---|
| 229 | | 4) Edit Download/HEADER, index.html, swish-daily/HEADER to reflect the right version |
|---|
| 230 | | |
|---|
| 231 | | 5) Announce on list. |
|---|
| 232 | | |
|---|
| 233 | | 6) back at cvs, change to a new dev version by editing configure.in, ./bootstrap and |
|---|
| 234 | | checkin. |
|---|
| 235 | | |
|---|
| 236 | | |
|---|