User Tools

Site Tools


autoupdater

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
autoupdater [2011/01/14 15:53] – created autoupdater glaubitzautoupdater [2012/11/26 08:51] (current) – [Automatic Updates for QHiMDTransfer on MacOS] glaubitz
Line 1: Line 1:
 ====== AutoUpdater ====== ====== AutoUpdater ======
- 
-AutomaticUpdates 
----------------- 
  
 Since our MiniDisc software is subject to ongoing development, it is highly desirable for the users to always have the latest version installed to be able to benefit from the latest updates in the software. Since our MiniDisc software is subject to ongoing development, it is highly desirable for the users to always have the latest version installed to be able to benefit from the latest updates in the software.
Line 14: Line 11:
     - Omaha (Windows) - [[http://code.google.com/p/omaha/]]     - Omaha (Windows) - [[http://code.google.com/p/omaha/]]
  
-As mentioned before, Linux and most other Unix derivatives already include a package management system which takes care of periodic updates and thus there is no additional update management within the application necessary. In fact, all popular cross-plattform applications like Firefox or Google Chrome that provide an integrated update mechanism through a menu option, have this option disabled in their Linux versions since the package manager already take care of it. Thus, we will concentrate on integrating automatic updates into the software application on MacOSX and Windows only.+As mentioned before, Linux and most other Unix derivatives already include a package management system which takes care of periodic updates and thus there is no additional update management within the application necessary. In fact, all popular cross-plattform applications like Firefox or Google Chrome that provide an integrated update mechanism through a menu option, have this option disabled in their Linux versions since the package manager already takes care of it. Thus, we will concentrate on integrating automatic updates into the software application on MacOSX and Windows only. 
 + 
 +===== Software versioning ===== 
 + 
 +In order for the automatic updates to properly work, they need to be able to determine the version of the currently installed instance of the software package. The version number is commonly defined as a three-digit, dot-seperated number in the pattern: x.y.z where //x// denotes the //major//, //y// the minor and //z// the //patch level// version. 
 + 
 +The major version is usually increased when huge changes are introduced when reaching a milestone which justify a new milestone while the minor version is usually increased when new features are integrated or larger bugs are fixed. The patch level is increased when minor updates to the software were made, usually in form of smaller bugfixes and security updates. 
 + 
 +The first version of a software package is therefore usually denoted as //0.0.1//, which is also the case for [[qhimdtransfer]]. However, since the software is still under heavy development, we haven't made any official releases yet and are never increasing the version number up to now. In order to be still able to track any changes in development and thus updates, we can leverage the (abbreviated) hash of every individual commit which //git// creates. The hash for the current commit can be determined with //git describe//: 
 + 
 +<code> 
 +glaubitz@squeeze64:~/linux-minidisc> git describe --always 
 +0837a0b 
 +</code> 
 + 
 +The parameter "//--always//" when no tags are defined, i.e. version numbers. But since we want human-readable version numbers, we will simply use tags in future to define these and call //git describe// to read the full //tag// from git and display it in the about dialog as shown below. 
 + 
 +An updated about dialog displaying the version should look like this mock-up: 
 + 
 +{{:aboutdialog-version.png|200}} 
 + 
 +See: 
 + 
 +  * [[http://www.qtcentre.org/wiki/index.php?title=Version_numbering_using_QMake]] 
 +  * [[http://www.qtforum.org/article/25050/build-date-from-compiler-using-qmake.html]] 
 + 
 + 
 +===== Automatic Updates for QHiMDTransfer on MacOS =====
  
-Automatic Updates for QHiMDTransfer on MacOS 
  
 We will be using Sparkle We will be using Sparkle
  
-Automatic Updates for QHiMDTransfer on MacOS+See: [[http://el-tramo.be/blog/mixing-cocoa-and-qt]] 
 + 
 +===== Automatic Updates for QHiMDTransfer on Windows ===== 
 + 
 +We will be using WinSparkle 
 + 
 +See: [[http://winsparkle.org/wiki/Doc/BasicSetup]]
autoupdater.1295020431.txt.gz · Last modified: 2011/01/14 15:53 by glaubitz

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki