diff options
| author | Tobias Markmann <tm@ayena.de> | 2016-11-17 11:07:38 (GMT) | 
|---|---|---|
| committer | Tobias Markmann <tm@ayena.de> | 2016-11-17 14:13:56 (GMT) | 
| commit | dd6f025037faa6b946d71bbd21c729a931178176 (patch) | |
| tree | 1dfc992571d6361b4b1641dbd16bd9159934660d | |
| parent | 8743d5714244a63d301d73fca622f648ac374771 (diff) | |
| download | swift-dd6f025037faa6b946d71bbd21c729a931178176.zip swift-dd6f025037faa6b946d71bbd21c729a931178176.tar.bz2 | |
Fix version strings generated by GenerateAppCastFeeds.py
Check for updates on start.
Test-Information:
Manually verified a random sample of 50 Swift version string
pairs, that Sparkle currently compares them and detects the
new version.
Change-Id: Ic88a5fdc5feab42cdcb4cc3c2740d4c24718eb7b
| -rwxr-xr-x | BuildTools/GenerateAppCastFeeds.py | 24 | ||||
| -rw-r--r-- | SwifTools/AutoUpdater/SparkleAutoUpdater.mm | 2 | 
2 files changed, 14 insertions, 12 deletions
| diff --git a/BuildTools/GenerateAppCastFeeds.py b/BuildTools/GenerateAppCastFeeds.py index 204961b..8135134 100755 --- a/BuildTools/GenerateAppCastFeeds.py +++ b/BuildTools/GenerateAppCastFeeds.py @@ -16,8 +16,10 @@ import urlparse  class Release:      def __init__(self, version, absoluteURL, sizeInBytes, date): -        self.version = version -        self.shortVersion = version.split('-', 1)[1] +        # This is the version string used for update detection. +        self.fullVersion = version.split('-', 1)[1] +        # This is a human readable version string, only used for presentation. +        self.presentationVersion = version          self.url = absoluteURL          self.sizeInBytes = sizeInBytes          self.date = date @@ -26,10 +28,10 @@ class Release:          self.dateString = eut.formatdate(dateTimestamp)      def __str__(self): -        return "Release(%s, %s, %s, %s)" % (self.version, self.url, self.sizeInBytes, self.date) +        return "Release(%s, %s, %s, %s)" % (self.fullVersion, self.url, self.sizeInBytes, self.date)      def __repr__(self): -        return "Release(%s, %s, %s, %s)" % (self.version, self.url, self.sizeInBytes, self.date) +        return "Release(%s, %s, %s, %s)" % (self.fullVersion, self.url, self.sizeInBytes, self.date)  def getReleaseFromAbsoluteFilePath(absolutePath, downloadsFolder, releasesURL):      version = os.path.splitext(absolutePath.split('/')[-1])[0] @@ -84,18 +86,18 @@ def writeAppcastFile(filename, title, description, regexPattern, appcastURL, rel      <description>{{ description }}</description>      <language>en</language>      {% for item in releases %}<item> -        <title>Swift version {{ item.version }}</title> +        <title>Swift version {{ item.fullVersion }}</title>              <pubDate>{{ item.dateString }}</pubDate>              <enclosure url="{{ item.url }}" -                sparkle:version="{{ item.version }}" -                sparkle:shortVersionString="{{ item.shortVersion }}" +                sparkle:version="{{ item.fullVersion }}" +                sparkle:shortVersionString="{{ item.presentationVersion }}"                  length="{{ item.sizeInBytes }}"                  type="application/octet-stream" />      </item>      {% endfor %}</channel>  </rss>''') -    matchingReleases = [i for i in releases if re.match(regexPattern, i.version)] +    matchingReleases = [i for i in releases if re.match(regexPattern, i.fullVersion)]      matchingReleases = matchingReleases[:2] # only include the first two matches in the appcast      appcastContent = template.render(title=title, appcast_url=appcastURL, description=description, releases=matchingReleases) @@ -134,18 +136,18 @@ automaticReleases.sort(key=lambda release: release.date, reverse=True)  writeAppcastFile(filename=os.path.join(args.outputFolder, "swift-stable-appcast-mac.xml"),      title="Swift Stable Releases",      description="", -    regexPattern="^Swift\-\d+(\.\d+)?(\.\d+)?$", +    regexPattern="^\d+(\.\d+)?(\.\d+)?$",      appcastURL=urlparse.urljoin(args.downloadsURL, "swift-stable-appcast-mac.xml"),      releases=manualReleases)  writeAppcastFile(filename=os.path.join(args.outputFolder, "swift-testing-appcast-mac.xml"),      title="Swift Testing Releases",      description="", -    regexPattern="^Swift\-\d+(\.\d+)?(\.\d+)?(beta\d+)?(rc\d+)?$", +    regexPattern="^\d+(\.\d+)?(\.\d+)?(beta\d+)?(rc\d+)?$",      appcastURL=urlparse.urljoin(args.downloadsURL, "swift-testing-appcast-mac.xml"),      releases=manualReleases)  writeAppcastFile(filename=os.path.join(args.outputFolder, "swift-development-appcast-mac.xml"),      title="Swift Development Releases",      description="", -    regexPattern="^Swift\-\d+(\.\d+)?(\.\d+)?(alpha)?(beta\d+)?(rc\d+)?(-dev\d+)?$", +    regexPattern="^\d+(\.\d+)?(\.\d+)?(alpha)?(beta\d+)?(rc\d+)?(-dev\d+)?$",      appcastURL=urlparse.urljoin(args.downloadsURL, "swift-development-appcast-mac.xml"),      releases=automaticReleases) diff --git a/SwifTools/AutoUpdater/SparkleAutoUpdater.mm b/SwifTools/AutoUpdater/SparkleAutoUpdater.mm index ed5f094..0c296ee 100644 --- a/SwifTools/AutoUpdater/SparkleAutoUpdater.mm +++ b/SwifTools/AutoUpdater/SparkleAutoUpdater.mm @@ -51,7 +51,7 @@ void SparkleAutoUpdater::setAppcastFeed(const std::string& appcastFeed) {  }  void SparkleAutoUpdater::checkForUpdates() { -    //[d->updater resetUpdateCycle]; // This is useful for testing to force a check ot start. +    [d->updater resetUpdateCycle];      [d->updater checkForUpdatesInBackground];  } | 
 Swift
 Swift