]> Cypherpunks repositories - gostls13.git/commitdiff
misc/makerelease: set version number in Windows installer
authorJens Frederich <jfrederich@gmail.com>
Tue, 21 Oct 2014 23:56:26 +0000 (10:56 +1100)
committerAndrew Gerrand <adg@golang.org>
Tue, 21 Oct 2014 23:56:26 +0000 (10:56 +1100)
Set correct version number at Windows installer based on
Go's Mercurial tag.

Name                                     | Version
------------------------------------------------
Go Programming Language amd64 go1.3.3    | 1.3.3
Go Programming Language amd64 go1.2rc3   | 1.2
Go Programming Language amd64 go1.2beta1 | 1.2

Fixes #8239.

LGTM=adg
R=adg, c.emil.hessman, alex.brainman
CC=golang-codereviews
https://golang.org/cl/160950044

misc/makerelease/makerelease.go
misc/makerelease/windows/installer.wxs

index 3094856dd44561440f4dfe5ea3761613ebdb5591..9b2373307fa388bd4bf9ab1d90c78174035aa466 100644 (file)
@@ -437,7 +437,8 @@ func (b *Build) Do() error {
                // Build package.
                _, err = b.run(work, "candle",
                        "-nologo",
-                       "-dVersion="+version,
+                       "-dGoVersion="+version,
+                       "-dWixGoVersion="+wixVersion(version),
                        "-dArch="+b.Arch,
                        "-dSourceDir=go",
                        installer, appfiles)
@@ -471,6 +472,22 @@ func (b *Build) Do() error {
        return err
 }
 
+var versionRe = regexp.MustCompile(`^go([0-9]+(\.[0-9]+)*)`)
+
+// The Microsoft installer requires version format major.minor.build
+// (http://msdn.microsoft.com/en-us/library/aa370859%28v=vs.85%29.aspx).
+// Where the major and minor field has a maximum value of 255 and build 65535.
+// The offical Go version format is goMAJOR.MINOR.PATCH at $GOROOT/VERSION.
+// It's based on the Mercurial tag. Remove prefix and suffix to make the
+// installer happy.
+func wixVersion(v string) string {
+       m := versionRe.FindStringSubmatch(v)
+       if m == nil {
+               return "0.0.0"
+       }
+       return m[1]
+}
+
 // extras fetches the go.tools, go.blog, and go-tour repositories,
 // builds them and copies the resulting binaries and static assets
 // to the new GOROOT.
index b170b98dc4572c50b50a0a699d629114f4d8e29f..66e0913ba8af4957981eb7db6fa209f8ed718bbb 100644 (file)
 \r
 <Product\r
     Id="FF5B30B2-08C2-11E1-85A2-6ACA4824019B"\r
-    Name="Go Programming Language $(var.Arch) $(var.Version)"\r
+    Name="Go Programming Language $(var.Arch) $(var.GoVersion)"\r
     Language="1033"\r
     Codepage="1252"\r
-    Version="0.0.0.0"\r
+    Version="$(var.WixGoVersion)"\r
     Manufacturer="http://golang.org"\r
     UpgradeCode="$(var.UpgradeCode)" >\r
-    <!-- Version="$(var.Version)" TODO: Version requires X.X.X.X format -->\r
 \r
 <Package\r
     Id='*' \r