Release Process/Win

From Audacity Wiki
Revision as of 19:39, 15 February 2012 by Vaughan (talk | contribs) (Build the Installer)
Jump to: navigation, search



This page provides an overview of how to build Audacity(R) Releases for Microsoft Windows(R).
If the advice here is inaccurate or incomplete, please e-mail audacity-devel_AT_lists_DOT_sourceforge_DOT_net.
 
Related article(s):

Release Builds

There are currently two types of release builds for Windows, contained in the MSVC project configurations: Release (for Windows 98/ME) and Unicode_Release (for 2000/XP/Vista and later). These instructions apply for either one, but example values are for Unicode_Release.


Manual

Remove the old manual and make sure you can rebuild a new one:

  1. Make sure you have Python installed and on your PATH.
  2. Delete audacity\help\manual if it exists.
  3. The manual should be built in audacity\help\manual by the main Solution (See "Build the executable" below).
  4. If you have disabled the 'Help' project during testing you will have to build it separately.
  5. If you just want to get the manual, go to audacity\scripts\mw2html_audacity, run wiki2htm and wait for it to complete.

A currently optional step, at least for beta builds, is to reduce the size of the manual by reducing the size of the .png files. A way to do this on Windows with ImageMagick installed is shown as a batch script below, started from the image directory:

 FOR /R %%a IN (*.png) DO mogrify -posterize 64 %%a 
 FOR /R %%a IN (*.png) DO convert -quality 90 %%a %%a

This reduces the number of colors to 64 and then uses a hint to the .png compressor to be aggressive about compression. The %%a works on Win7. Martyn found that %a was needed instead on his platform (Win XP?). This reduces total images size from about 12Mb to about 5.2Mb. Some of the largest files are already being replaced on the wiki. If we do the whole wiki, then this step can be removed. If someone wants to post the equivalent script for Linux that would be appreciated.


Build the executable

  1. Check that your build of wxWidgets is the agreed version for this release and that it includes the modified setup.h that switches on accessibility features (see step 2 of the building guide).
  2. Make sure you have a current source version from SVN.
  3. Make sure to turn off ASIO support (see compile.txt) if you are creating the installer for public release. We cannot publicly post a build that supports ASIO, for licensing reasons (more detail in compile.txt).
  4. Make sure you have the DirectSound SDK installed so the build will support DirectSound (see step 5 of the building guide).
  5. Check that the following #defines in Audacity.h are up-to-date:
    • IS_BETA
    • AUDACITY_VERSION
    • AUDACITY_RELEASE
    • AUDACITY_REVISION
    • AUDACITY_SUFFIX
    Especially check the overriding "-alpha-<date>" line. (Vaughan believes we have never changed AUDACITY_MODLEVEL, so it can be ignored.)


  • It's safer to not only do a Build > Clean Solution beforehand, but to also delete the directory (e.g., audacity\win\unicode_release). Safest of all is a fresh checkout.
  • Make sure to build the "locale" project, either separately or as part of Build > Batch Build. You will need msgfmt.exe in your PATH for that. Get it from http://audacity.sourceforge.net/files/msgfmt.zip.


Copy other necessities to release build folder

  1. We are still keeping some of the LADSPA plug-ins in the Audacity installer, even though we are now offering a separate installer that includes all the LADSPA plug-ins built from version 0.4.15. We include gverb_1216.dll, hard_limiter_1413.dll and sc4_1882.dll. So:
    1. Check http://plugin.org.uk/ for updates.
    2. If none, just grab the dlls from a previous release.
    3. If updated, build these via the audacity\win\LADSPA_plugins-win project (see audacity\win\LADSPA_plugins-win\readme_LADSPA_plugins-win.txt).
    4. Once you have these DLL files, put them in the plug-ins folder, e.g., audacity\win\unicode_release\plug-ins.
  2. Make sure you copied to the build folder the appropriate wxWidgets DLLs from C:\wxWidgets-2.8.10\lib\vc_dll. For details, refer to "Provide access to the wxWidgets DLLs" at "MSVC++ STEP 5: Build Audacity" in "compile.txt".
  3. We currently manually add wxstd.mo files to the "Languages" folder in the Audacity build directory. This may be automated in future. Until then:
    1. Go to http://www.audacity.homerow.net/index.php?dir=windows and download "locales-2.8.10-msw.zip".
    2. Extract the contents into the "Languages" folder. You want each wxstd.mo file in the appropriate language directory/folder.
    3. Go to the newly added "gl_ES" and "zh_CN" folders in turn and copy the "wxstd.mo" files from each into the "gl" and zh" folders respectively.
    4. Delete the "gl_ES" and "zh_CN" folders.
      • MJS: I can't make the standard XP extractor do what is required here. I can make 7-zip do it by navigating into locales-2.8.10-msw.zip\locales-2.8.10\, selecting all the folders then extracting into the Languages folder.

Build the Installer

  1. Install the latest Inno Setup (http://www.jrsoftware.org/isinfo.php).
    Note: For ANSI builds that target Windows 98/ME, you need the standard Inno Setup (not the Unicode version).
  2. Open the appropriate Inno Setup script:
    • audacity\win\audacity_ansi.iss for Release or
    • audacity\win\audacity.iss for Unicode_Release.
  3. Change the version strings as necessary. These are current for Unicode_Release:
    • OutputBaseFilename=audacity-win-unicode-1.3.10
    • AppName=Audacity 1.3 Beta (Unicode)
      For stable releases, this should just be "Audacity (Unicode)"
    • AppVerName=Audacity 1.3.10 (Unicode)
    • DefaultDirName={pf}\Audacity 1.3 Beta (Unicode)
      For stable releases, this should just be "Audacity (Unicode)"
  4. Compile and test the installer.
    • Install to 'Audacity 1.3 Beta (Unicode)', or as agreed for a 'Stable' (you may be offered something else, depending on your previous installation status) (this is important when it come to making the zip).
      • GA: I don't follow that. I think user will be offered whatever unzip directory they chose to download to?
      • MJS: The point is to zip the 'Audacity 1.3 Beta (Unicode)' folder, which defaults to a 'Audacity 1.3 Beta (Unicode).zip' file name (here at least) containing the 'Audacity 1.3 Beta (Unicode)' folder. Unzipping this into 'Program Files' leaves a neat folder name that follows previous conventions. I know that you have done the last few differently but I prefer the previous convention.
      • GA: Yes, your zips have the Audacity files inside an "Audacity 1.3 Beta (Unicode)" folder. I arrange them to be inside an "audacity-win-unicode-1.3.x" folder to match the file name, where "x" is the release number. On Mac, the files in the zip are inside a "audacity-macosx-ub-1.3.x" folder. I think my practice makes sense for the Alphas, and might make sense for Betas too given they are now more frequent. Plus, I think people perhaps want more flexibility in location anyway if they are downloading a zip, the point being that they are not installing the files as they would if they ran an .exe. But I don't feel very strongly about it.
    • The result appears in audacity\win\Output.
  5. Check the inbuilt manual to make sure that the 'look' is pretty similar to the previous version. Some changes to style sheets may 'break' the mw2html.py script and cause it to leave in / miss out some vital bits.
  6. Rename it as a release candidate, e.g. "audacity-win-unicode-1.3.10rc1.exe" for "release candidate 1".

Create the zip version

  1. Go to to the installed version, e.g., C:\Program Files\Audacity 1.3 Beta (Unicode).
  2. Remove the unins*.* files and the "help" folder.
  3. Zip the folder and rename it e.g. "audacity-win-unicode-1.3.10rc1.zip".


Testing

  1. Put the release candidate somewhere on the web for other people to test.
  2. Publicise this on audacity-devel.
  3. Get people to test the installer in both a fresh directory and over the top of previous recent and older versions.
    • Hopefully people can test both cases on several Win OSes, like XP and 7.
  4. If changes are necessary, name successive candidates rcN.
  5. When the final rcN is approved, remove the rcN suffix from the name on the exe and zip files. Those are then the release installer and zip.