wiki:BuildSetup

Version 8 (modified by Matthäus Wander, 11 years ago) (diff)

update

Our current configuration uses MsBuild to build a CT2 snapshot and WiX to package it into an MSI setup file.

Must-have Requirements

Requirement Ticket Implemented
Check for installation prerequisites (.NET 4, C++ runtimes for native DLLs). Propose download link to user. #8, #159 yes
After installation of CT2 any pathes (default project file, default project path) should be preconfigured to the installation directory selected by user. #96 yes
Use assembly versioning scheme which includes SVN revision number. yes
Allow coredevs to configure major/minor CT2 version in central location. yes
Upgrade CT2 when installing newer setup file. #144 yes
Remove obsolete files no longer included in new setup versions. #155 partly (cleans build directory, but does not purge files from installation directory)
Support inclusion of third-party libraries (e.g. msieve, peers@play, external WPF controls, bouncycastle, NativeCryptography). Let trunk developers decide which version of the library to include. Caveat 1: libs may lack strong-names (may conflict with Software Publisher Certificate signing, see below). Caveat 2: libs may lack versioning scheme (may fail upgrade installation). #149 partly
Support inclusion of data files outside of assemblies (e.g. statistics data, wordlists, example texts). Data store should be shared, so that multiple plugins can access the same data files. partly
Show Apache license to user during setup. #148 yes
Include only one .exe in installation directory. #150 yes
Support running setup as non-admin (may ask for admin privileges if necessary, but catch failures if not granted). #158 no
Automatically create nightly builds for website. yes
Send mail if nightly build fails. yes
Allow regular trunk developers without access to CrypWin/AnotherEditor sources to build and debug CT2 with both, Visual Studio and Visual C# Express. yes
Support internationalization/localization (I18N/L10N) in setup. Part of bigger task to support I18N in whole CT2. #127 yes

Nice-to-have Requirements

Requirement Ticket Implemented
Support x86 and x64. #106 yes, x86 build supports both
Use strong names signing for assemblies. yes
Sign setup with Software Publisher Certificate. yes
Bind deployment of project samples to build of plugin, i.e. if plugin is included in build, also include its project samples. If plugin is removed from build, do not install associated project files into sample directory. #151 partly
Support grouping of plugins into setup components. no