From f738037d19df81a50cb9d681bfa191f55923933f Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Tue, 8 Jan 2013 22:44:56 +0200 Subject: [PATCH] Change the way the version check works so that nightlies check a nightly file, dev releases a dev file, and stable releases a version file. --- openlp/.version | 2 +- openlp/core/utils/__init__.py | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/openlp/.version b/openlp/.version index cd5ac039d..d41002840 100644 --- a/openlp/.version +++ b/openlp/.version @@ -1 +1 @@ -2.0 +2.1.0-bzr2141 diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 2a303e87d..b90ea4b86 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -29,12 +29,13 @@ """ The :mod:`openlp.core.utils` module provides the utility libraries for OpenLP. """ -from datetime import datetime +from datetime import datetime, timedelta from distutils.version import LooseVersion import logging import locale import os import re +from reportlab.graphics.charts.utils import seconds2str from subprocess import Popen, PIPE import sys import urllib2 @@ -277,20 +278,31 @@ def check_latest_version(current_version): ``current_version`` The current version of OpenLP. + + **Rules around versions and version files:** + + * If a version number has a build (i.e. -bzr1234), then it is a nightly. + * If a version number's minor version is an odd number, it is a development release. + * If a version number's minor version is an even number, it is a stable release. """ version_string = current_version[u'full'] # set to prod in the distribution config file. settings = Settings() settings.beginGroup(u'general') - last_test = settings.value(u'last version test', datetime.now().date()) + # This defaults to yesterday in order to force the update check to run when you've never run it before. + last_test = settings.value(u'last version test', datetime.now().date() - timedelta(days=1)) this_test = datetime.now().date() settings.setValue(u'last version test', this_test) settings.endGroup() if last_test != this_test: if current_version[u'build']: - req = urllib2.Request(u'http://www.openlp.org/files/dev_version.txt') + req = urllib2.Request(u'http://www.openlp.org/files/nightly_version.txt') else: - req = urllib2.Request(u'http://www.openlp.org/files/version.txt') + version_parts = current_version[u'version'].split(u'.') + if int(version_parts[1]) % 2 != 0: + req = urllib2.Request(u'http://www.openlp.org/files/dev_version.txt') + else: + req = urllib2.Request(u'http://www.openlp.org/files/version.txt') req.add_header(u'User-Agent', u'OpenLP/%s' % current_version[u'full']) remote_version = None try: