[chocolatey] Change version numbers to something that choco can handle

Because of https://github.com/chocolatey/chocolatey.org/issues/516, the
pre-release part of the version has to start with a character.

Change-Id: I903b63522377225366f1f7467e8878f0dbd3143c
Reviewed-on: https://dart-review.googlesource.com/c/recipes/+/143921
Reviewed-by: William Hesse <whesse@google.com>
diff --git a/recipes/dart/chocolatey.expected/beta.json b/recipes/dart/chocolatey.expected/beta.json
new file mode 100644
index 0000000..eb3faba
--- /dev/null
+++ b/recipes/dart/chocolatey.expected/beta.json
@@ -0,0 +1,28 @@
+[
+  {
+    "cmd": [
+      "[CLEANUP]\\chocolatey\\choco",
+      "pack",
+      "version=1.2.3.45-c-006-beta"
+    ],
+    "cwd": "[START_DIR]\\chocolatey-packages\\dart-sdk",
+    "env": {
+      "ChocolateyBinRoot": "[CLEANUP]\\bin_root",
+      "ChocolateyInstall": "[CLEANUP]\\chocolatey"
+    },
+    "name": "choco pack"
+  },
+  {
+    "cmd": [
+      "C:\\\\WINDOWS\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe",
+      "-Command",
+      "$secret = cat [CLEANUP]\\chocolatey.key; [CLEANUP]\\chocolatey\\choco push -k=\"$secret\" dart-sdk.1.2.3.45-c-006-beta.nupkg"
+    ],
+    "cwd": "[START_DIR]\\chocolatey-packages\\dart-sdk",
+    "env": {
+      "ChocolateyBinRoot": "[CLEANUP]\\bin_root",
+      "ChocolateyInstall": "[CLEANUP]\\chocolatey"
+    },
+    "name": "choco push"
+  }
+]
\ No newline at end of file
diff --git a/recipes/dart/chocolatey.expected/dev.json b/recipes/dart/chocolatey.expected/dev.json
index ab1da9b..e036459 100644
--- a/recipes/dart/chocolatey.expected/dev.json
+++ b/recipes/dart/chocolatey.expected/dev.json
@@ -3,7 +3,7 @@
     "cmd": [
       "[CLEANUP]\\chocolatey\\choco",
       "pack",
-      "version=1.2.3-045-000-dev"
+      "version=1.2.3.45-c-000-dev"
     ],
     "cwd": "[START_DIR]\\chocolatey-packages\\dart-sdk",
     "env": {
@@ -16,7 +16,7 @@
     "cmd": [
       "C:\\\\WINDOWS\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe",
       "-Command",
-      "$secret = cat [CLEANUP]\\chocolatey.key; [CLEANUP]\\chocolatey\\choco push -k=\"$secret\" dart-sdk.1.2.3-045-000-dev.nupkg"
+      "$secret = cat [CLEANUP]\\chocolatey.key; [CLEANUP]\\chocolatey\\choco push -k=\"$secret\" dart-sdk.1.2.3.45-c-000-dev.nupkg"
     ],
     "cwd": "[START_DIR]\\chocolatey-packages\\dart-sdk",
     "env": {
diff --git a/recipes/dart/chocolatey.py b/recipes/dart/chocolatey.py
index f4aaa9c..b921a27 100644
--- a/recipes/dart/chocolatey.py
+++ b/recipes/dart/chocolatey.py
@@ -80,12 +80,14 @@
       if channel != 'stable':
         # todo(athom): remove when chocolatey supports semver 2.0.0
         # See https://github.com/chocolatey/choco/issues/1610
-        # 2.1.4-22.13.dev -> 2.1.4-022-013-dev
+        # todo(athom): remove extra 'c' character when chocolatey bug is fixed:
+        # See https://github.com/chocolatey/chocolatey.org/issues/516
+        # 2.1.4-22.13.dev -> 2.1.4.22-c-013-dev
         (version, build) = version.split('-')
         parts = build.split('.')
         # pad with zeros, because chocolatey compares pre-release alphabetically
-        version = "%s-%s-%s-%s" % (
-            (version,) + tuple(part.zfill(3) for part in parts))
+        version = "%s.%s-c-%s-%s" % (
+            (version, parts.pop(0)) + tuple(part.zfill(3) for part in parts))
 
       api.step('choco pack', [choco, 'pack', 'version=%s' % version])
 
@@ -103,9 +105,9 @@
       api.properties.generic(channel='dev', version='1.2.3-45.0.dev'),
       api.post_process(Filter('choco pack', 'choco push')),
       api.post_process(StepCommandContains, 'choco pack',
-                       ['version=1.2.3-045-000-dev']),
+                       ['version=1.2.3.45-c-000-dev']),
       api.post_process(StepCommandRE, 'choco push',
-                       ['.*', '.*', r'.*1\.2\.3-045-000-dev.nupkg']),
+                       ['.*', '.*', r'.*1\.2\.3\.45-c-000-dev.nupkg']),
   )
   yield api.test(
       'beta',
@@ -113,9 +115,9 @@
       api.properties.generic(channel='beta', version='1.2.3-45.6.beta'),
       api.post_process(Filter('choco pack', 'choco push')),
       api.post_process(StepCommandContains, 'choco pack',
-                       ['version=1.2.3-045-006-beta']),
+                       ['version=1.2.3.45-c-006-beta']),
       api.post_process(StepCommandRE, 'choco push',
-                       ['.*', '.*', r'.*1\.2\.3-045-006-beta.nupkg']),
+                       ['.*', '.*', r'.*1\.2\.3\.45-c-006-beta.nupkg']),
   )
   yield api.test(
       'release',