Difference between revisions of "Release Process/Win"

From Audacity Wiki
Jump to: navigation, search
m (Build the Release Executable)
(alert.)
 
(30 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
{{Template:Audacity Devel}}
 
{{Template:Audacity Devel}}
  
 
+
{{alert|1=[[Building On Windows]] is now the correct page for windows building instructions, ''including'' for the installer and zip file.  This page may still have some text worth plundering for it, but this page is no longer being maintained}}
{{Introrel|1=This page provides an overview of how to build Audacity(R) Releases for Microsoft Windows(R).|2=If the advice here is inaccurate or incomplete, please e-mail audacity-devel_AT_lists_DOT_sourceforge_DOT_net.|3=[[Developing On Windows]]
+
{{Introrel|1=This page provides an overview of how to build Audacity(R) Releases for Microsoft Windows(R).|2=If the advice here is inaccurate or incomplete, please email audacity-devel_AT_lists_DOT_sourceforge_DOT_net.|3=[[Building On Windows]]
 
* [[Release Process]]  
 
* [[Release Process]]  
* [[Editing audacity.sourceforge.net]]
+
* {{path|win/build.txt}} or the [https://github.com/audacity/audacity/blob/master/win/build.txt online version] for how to build the executables}}  
* {{path|win/compile.txt}} or the [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt online version] for how to build the executables}}  
 
  
 
== Build the Release Executable ==
 
== Build the Release Executable ==
# Check that your built version of wxWidgets is correct per [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt compile.txt] and includes our modified setup.h that switches on accessibility features (step 2.2 of [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt compile.txt]).   
+
# Check that your built version of wxWidgets is correct per [https://github.com/audacity/audacity/blob/master/win/compile.txt compile.txt] and includes our three patches, and in particular switches on accessibility features, (step 2.2 of [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt compile.txt]).   
# Check #define IS_ALPHA. Must be 0 for releases.  
+
# Check #define AUDACITY_BUILD_LEVEL. Must be 2 for releases.
# Make sure you have current source code from our [http://code.google.com/p/audacity/source/checkout source code repository].
+
# Make sure you have current source code from our [https://github.com/audacity/audacity source code repository].
# Make sure you have the DirectSound SDK installed (step 5.4.1 of [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt compile.txt]).
+
# Turn off ASIO support (step 5.4 in [https://github.com/audacity/audacity/blob/master/win/compile.txt compile.txt]).  We cannot publicly post a build that supports ASIO, for licensing reasons (detailed there).  
# Turn off ASIO support (step 5.4.2 in [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt compile.txt]).  We cannot publicly post a build that supports ASIO, for licensing reasons (detailed there).  
 
 
# Make sure the build configuration is set to Release.
 
# Make sure the build configuration is set to Release.
# Do a full *rebuild*, including the 'locale' project (off by default).  
+
# Do a full *rebuild*, making sure it includes the 'locale' project.  
 
 
 
{{Hint|
 
{{Hint|
*For the "locale" project, you will need msgfmt.exe in your PATH. Get it from http://audacity.sourceforge.net/files/msgfmt.zip.
+
*For the "locale" project, you will need msgfmt.exe in your PATH. Get the latest gettext-tools-static-*.zip from https://sourceforge.net/projects/cppcms/files/boost_locale/gettext_for_windows/.
*It's possibly safer to not only do Build > Clean Solution beforehand, but to also delete the directory (e.g., audacity-src\win\unicode_release) -- all except the five wxWidgets DLL'S, per [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt compile.txt] step 7, or you will have to copy them back in. Safest of all is a fresh checkout.
+
*It's possibly safer to not only do Build > Clean Solution beforehand, but to also delete the directory (e.g., audacity-src\win\release) -- all except the seven wxWidgets DLL'S, per [https://github.com/audacity/audacity/blob/master/win/compile.txt compile.txt] step 7, or you will have to copy them back in. Safest of all is a fresh checkout.
 
}}
 
}}
  
 
== Copy Other Necessities to Release Build Folder ==
 
== Copy Other Necessities to Release Build Folder ==
# 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 '''hard_limiter_1413.dll''' and '''sc4_1882.dll'''. (We no longer include '''gverb_1216.dll'''.) So:
+
# Copy the redistributable Windows DLL's msvcp120.dll and msvcr120.dll from wherever they are on your system (see audacity.iss) into {{path|audacity-src\win\release\}}
## Check http://plugin.org.uk/ for updates. As of 2012-08-09, these have not been updated for three years. Development has moved to LV2, so updates are not likely here.
+
# We are still keeping one of the LADSPA plug-ins ('''sc4_1882.dll''') 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. So:
### If none, just grab the dlls from a previous release.  
+
## Check http://plugin.org.uk/ for updates. As of 2015 these have not been updated for several years. Development has moved to LV2, so further updates are not likely.
 +
### If none, just grab the DLL's from a previous release.  
 
### If updated, build these via the {{path|audacity-src\win\LADSPA_plugins-win}} project (see {{path|audacity-src\win\LADSPA_plugins-win\readme_LADSPA_plugins-win.txt}}).  
 
### If updated, build these via the {{path|audacity-src\win\LADSPA_plugins-win}} project (see {{path|audacity-src\win\LADSPA_plugins-win\readme_LADSPA_plugins-win.txt}}).  
## Once you have these DLL files, put them in the plug-ins folder, e.g., {{path|audacity-src\win\unicode_release\plug-ins}}.  
+
## Once you have these DLL files, put them in the "Plug-Ins" folder, e.g., {{path|audacity-src\win\release\plug-ins}}.  
# Make sure you copied to the build folder the appropriate wxWidgets DLLs per "Provide access to the wxWidgets DLLs" at "MSVC++ STEP 7: Build Audacity" in [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt compile.txt].
+
# Make sure you copied to the build folder the appropriate wxWidgets DLLs per "Provide access to the wxWidgets DLLs" at "MSVC++ STEP 7: Build Audacity" in [https://github.com/audacity/audacity/blob/master/win/compile.txt compile.txt].
# Adding wxstd.mo files to the "Languages" folder in the Audacity build directory is now automated.  This next steps need automating as well:
+
# Adding wxstd.mo files to the "Languages" folder in the Audacity build directory is automated.  This next steps need automating as well:
## 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.
+
## Open the "gl_ES", "ko_KR" and "pt" folders in turn and move the "wxstd.mo" file in each to the "gl", "ko" and pt_PT folders respectively.
## Delete the "gl_ES" and "zh_CN" folders.
+
## Delete the "gl_ES", ko_KR and "pt" folders.
 +
## COPY (do not move) wxstd.mo from "eu" into "eu_ES".
  
 
== Manual ==
 
== Manual ==
  
You need to include the manual into the tree.  The appropriate one should be available on Google code http://code.google.com/p/audacity as a result of [[Create Local Manual]] and [[Release Process]].  If you are rolling your own, take a look at [[Create Local Manual]].
+
You need to include the manual into the tree.  The appropriate one should be available at the code repository folder(s) for this release, as a result of [[Create Local Manual]] and [[Release Process]].  If you are rolling your own, take a look at [[Create Local Manual]].
  
You need to unzip the 'manual' folder from the version on http://code.google.com/p/audacity to {{path|audacity-src\help\}} by first browsing into the help folder of the zip.
+
You need to unzip the 'manual' folder from the code repository folder(s) for this release to {{path|audacity-src\help\}} by first browsing into the help folder of the zip.
  
You should end up with a working {{path|audacity-src\help\manual\}} for the installer script to find.
+
You should end up with a working {{path|audacity-src\help\manual\}} for the installer script to find.  
  
 
== Build the Installer ==
 
== Build the Installer ==
# Install the latest Unicode Inno Setup (http://www.jrsoftware.org/isinfo.php).
+
{{ednote|'''Gale 29Aug16:''' On Win 10 I did not (running as admin) receive the issue where PowerShell failed to download the unofficial translation files. Might that too be a permissions issue? I wonder if all or most of these issues might be solved by right-click over C:\Program Files (x86)\Inno Setup 5\Compil32.exe and run as administrator?}}   
 +
# Install the latest Unicode Inno Setup (http://www.jrsoftware.org/isinfo.php). Generally we will use the same version of Inno for all alpha and RC win installers, even if for example a new Inno becomes available between frozen and RC1 or between RC1 and RC2. We thus don't need extra time retesting the installer. If a new Inno version fixes a bug that was blocking release, then we might update the Inno installer as the best way to fix the bug.
 +
#* If installing on Windows 8 or 10, you will need to set permissions on the C:\Program Files (x86)\Inno Setup 5\Languages\dummy  directory to allow .isl files to be written there.  You will also need to obtain the 'unofficial' .isl files yourself and place them in C:\Program Files (x86)\Inno Setup 5\Languages\unofficial.  They aren't installed by Inno setup, but you can obtain them from GitHub.  Easiest way to do that is to download the zip of https://github.com/jrsoftware/issrc and copy just those files out from it.
 
# Open the Inno Setup script:  
 
# Open the Inno Setup script:  
 
#* {{Path|audacity-src\win\audacity.iss}}
 
#* {{Path|audacity-src\win\audacity.iss}}
# Change the version strings as necessary. Typically need to change, e.g., 2.0.1 to 2.0.2, with:
+
# Audacity version numbers are generated automatically from the version numbers in our source code, so there should be no version changes needed. Consider people who install over an existing release.  Could there be files / directories left that we no longer ship (plug-ins etc.)?  If there are:
#* OutputBaseFilename=audacity-win-2.0.2
 
#* AppVerName=Audacity 2.0.2
 
#* AppVersion=2.0.2
 
# Consider people who install over and existing release.  Could there be files / directories left that we no longer ship (plugins etc.)?  If there are:
 
 
#* Add those files / directories to the [InstallDelete] section of the iss file.
 
#* Add those files / directories to the [InstallDelete] section of the iss file.
 
# Compile and test the installer.
 
# Compile and test the installer.
Line 64: Line 61:
  
 
== Testing ==
 
== Testing ==
# Put the release candidate files on http://code.google.com/p/audacity/downloads/list for open testing.  Mark any previous rc as 'Deprecated'. Tell RM, so that when all platforms are ready, the release cycle for this rc can be announced.  
+
# Put the release candidate files for this release on FossHub for open testing. Tell RM, so that when all platforms are ready, the rc can be announced.  
 
#* Ask people to test the installer in both a fresh directory and over the top of previous recent and older versions.
 
#* Ask people to test the installer in both a fresh directory and over the top of previous recent and older versions.
 
#* Ask people to test both cases on several Win OSes, like XP and 7.
 
#* Ask people to test both cases on several Win OSes, like XP and 7.

Latest revision as of 21:50, 15 September 2018


Warning icon Building On Windows is now the correct page for windows building instructions, including for the installer and zip file. This page may still have some text worth plundering for it, but this page is no longer being maintained
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 email audacity-devel_AT_lists_DOT_sourceforge_DOT_net.
 
Related article(s):

Build the Release Executable

  1. Check that your built version of wxWidgets is correct per compile.txt and includes our three patches, and in particular switches on accessibility features, (step 2.2 of compile.txt).
  2. Check #define AUDACITY_BUILD_LEVEL. Must be 2 for releases.
  3. Make sure you have current source code from our source code repository.
  4. Turn off ASIO support (step 5.4 in compile.txt). We cannot publicly post a build that supports ASIO, for licensing reasons (detailed there).
  5. Make sure the build configuration is set to Release.
  6. Do a full *rebuild*, making sure it includes the 'locale' project.
  • For the "locale" project, you will need msgfmt.exe in your PATH. Get the latest gettext-tools-static-*.zip from https://sourceforge.net/projects/cppcms/files/boost_locale/gettext_for_windows/.
  • It's possibly safer to not only do Build > Clean Solution beforehand, but to also delete the directory (e.g., audacity-src\win\release) -- all except the seven wxWidgets DLL'S, per compile.txt step 7, or you will have to copy them back in. Safest of all is a fresh checkout.

Copy Other Necessities to Release Build Folder

  1. Copy the redistributable Windows DLL's msvcp120.dll and msvcr120.dll from wherever they are on your system (see audacity.iss) into audacity-src\win\release\
  2. We are still keeping one of the LADSPA plug-ins (sc4_1882.dll) 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. So:
    1. Check http://plugin.org.uk/ for updates. As of 2015 these have not been updated for several years. Development has moved to LV2, so further updates are not likely.
      1. If none, just grab the DLL's from a previous release.
      2. If updated, build these via the audacity-src\win\LADSPA_plugins-win project (see audacity-src\win\LADSPA_plugins-win\readme_LADSPA_plugins-win.txt).
    2. Once you have these DLL files, put them in the "Plug-Ins" folder, e.g., audacity-src\win\release\plug-ins.
  3. Make sure you copied to the build folder the appropriate wxWidgets DLLs per "Provide access to the wxWidgets DLLs" at "MSVC++ STEP 7: Build Audacity" in compile.txt.
  4. Adding wxstd.mo files to the "Languages" folder in the Audacity build directory is automated. This next steps need automating as well:
    1. Open the "gl_ES", "ko_KR" and "pt" folders in turn and move the "wxstd.mo" file in each to the "gl", "ko" and pt_PT folders respectively.
    2. Delete the "gl_ES", ko_KR and "pt" folders.
    3. COPY (do not move) wxstd.mo from "eu" into "eu_ES".

Manual

You need to include the manual into the tree. The appropriate one should be available at the code repository folder(s) for this release, as a result of Create Local Manual and Release Process. If you are rolling your own, take a look at Create Local Manual.

You need to unzip the 'manual' folder from the code repository folder(s) for this release to audacity-src\help\ by first browsing into the help folder of the zip.

You should end up with a working audacity-src\help\manual\ for the installer script to find.

Build the Installer

Gale 29Aug16: On Win 10 I did not (running as admin) receive the issue where PowerShell failed to download the unofficial translation files. Might that too be a permissions issue? I wonder if all or most of these issues might be solved by right-click over C:\Program Files (x86)\Inno Setup 5\Compil32.exe and run as administrator?
  1. Install the latest Unicode Inno Setup (http://www.jrsoftware.org/isinfo.php). Generally we will use the same version of Inno for all alpha and RC win installers, even if for example a new Inno becomes available between frozen and RC1 or between RC1 and RC2. We thus don't need extra time retesting the installer. If a new Inno version fixes a bug that was blocking release, then we might update the Inno installer as the best way to fix the bug.
    • If installing on Windows 8 or 10, you will need to set permissions on the C:\Program Files (x86)\Inno Setup 5\Languages\dummy directory to allow .isl files to be written there. You will also need to obtain the 'unofficial' .isl files yourself and place them in C:\Program Files (x86)\Inno Setup 5\Languages\unofficial. They aren't installed by Inno setup, but you can obtain them from GitHub. Easiest way to do that is to download the zip of https://github.com/jrsoftware/issrc and copy just those files out from it.
  2. Open the Inno Setup script:
    • audacity-src\win\audacity.iss
  3. Audacity version numbers are generated automatically from the version numbers in our source code, so there should be no version changes needed. Consider people who install over an existing release. Could there be files / directories left that we no longer ship (plug-ins etc.)? If there are:
    • Add those files / directories to the [InstallDelete] section of the iss file.
  4. Compile and test the installer.
    • Delete any existing folder that you intend to install to (per previous iteration of next step).
    • Install to 'Audacity', or as agreed for other versions (you may be offered something else, depending on your previous installation status) (this is important when it comes to making the zip).
    • The result appears in audacity-src\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. Try installing over a couple of previous versions and make sure that the file structure is the same as a clean install.
  7. Rename it as a release candidate, e.g., "audacity-win-2.0.1rc1.exe" for "release candidate 1".

Create the .zip File

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

Testing

  1. Put the release candidate files for this release on FossHub for open testing. Tell RM, so that when all platforms are ready, the rc can be announced.
    • Ask people to test the installer in both a fresh directory and over the top of previous recent and older versions.
    • Ask people to test both cases on several Win OSes, like XP and 7.
  2. If changes are necessary, name successive candidates rcN and deprecate the previous version.
  3. 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.