General Updater Tasks: * Elevation for Linux [done] * Set file permissions for Unix [done] * Elevation for Mac [done] * Basic functionality for Mac [done] * Unit test working under Mac [done] * Set file permissions for Windows [skipped for now] * Basic functionality for Windows [done] * Elevation for Windows [done] * Win32 UI for Windows [done] * Cocoa UI for Mac [done] * Gtk or Qt UI for Linux [done - GTK UI] * Unit test working under Windows [done] * Start new application once installation is finished [done] * Use message box for errors [done] * Retry/cancel support if updater cannot overwrite file (eg. due to file being in use by Microsoft Word or another application) * Write log file entries to an actual log file [partially done - needs to write to correct location] * Fix package dir cleanup failing on Win32 due to executable being in use * Test updater on an old Windows system without Visual Studio installed and statically link C++ runtime libraries if necessary Mendeley-specific Updater Tasks: * Use the Mendeley icon for the window on Windows [done] * Use the Mendeley icon for the binary on Windows [done] * Use the Mendeley icon for the window on Mac (N/A? - No icon in window decorations on Mac) * Use the Mendeley icon for the window on Linux * Advise the user to download Mendeley Desktop afresh from http://www.mendeley.com/download-mendeley-desktop in the event of an updater problem Mendeley Desktop <= 1.0 auto-update system compatibility: * Support for MD <= 1.0 updater command-line syntax [done] * Backwards compatible structure for XML file [done] Auto-update preparation tools: * Tool to create .zip packages for a release and upload them to S3 * Tool to generate backwards-compatible structure for XML file * Tool to generate new structure for XML file Nice To Have ============ Telemetry: * Call a project-specific URL to report successful/failed update installation and starting of new app after update Source: * Ensure no Mendeley branding in standalone project and publish code