Skip to content

Commit b9db8ab

Browse files
sortieCommit Queue
authored and
Commit Queue
committed
Fix beta version field becoming stuck when stable is promoted to beta.
Loosen the regular expression to match any versions and uniquely tag the lines that are being search and replaced. Fixes: b/326219296 Change-Id: I91d4c9bca3359416f01a3d455f449d3c4b8811b5 Reviewed-on: https://dart-review.googlesource.com/c/homebrew-dart/+/353460 Auto-Submit: Jonas Termansen <sortie@google.com> Reviewed-by: William Hesse <whesse@google.com> Commit-Queue: William Hesse <whesse@google.com>
1 parent 1351eba commit b9db8ab

File tree

4 files changed

+9
-11
lines changed

4 files changed

+9
-11
lines changed

Formula/dart-beta.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
class DartBeta < Formula
55
desc "Beta SDK"
66
homepage "https://dart.dev"
7-
version "3.1.0"
7+
version "3.3.0" # beta
88

99
conflicts_with "dart", because: "dart ships the same binaries"
1010
if OS.mac? && Hardware::CPU.intel?

Formula/dart.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class Dart < Formula
66
homepage "https://dart.dev"
77

88
head do
9-
version "3.4.0-154.0.dev"
9+
version "3.4.0-154.0.dev" # dev
1010
if OS.mac? && Hardware::CPU.intel?
1111
url "https://storage.googleapis.com/dart-archive/channels/dev/release/3.4.0-154.0.dev/sdk/dartsdk-macos-x64-release.zip"
1212
sha256 "cc1392b79b7fa5fe210b75669558970ac250ecf72fa20bb0128e6e14ee6aa7de"

lib/src/formula.dart

+5-7
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,19 @@ String updateFormula(String channel, String contents, String version,
77
// Replace the version identifier. Formulas with stable and pre-release
88
// versions have multiple identifiers and only the right one should be
99
// updated.
10-
var versionId = channel == 'stable'
11-
? RegExp(r'version \"\d+\.\d+.\d+\"')
12-
: RegExp(r'version \"\d+\.\d+.\d+\-.+\"');
13-
contents = contents.replaceAll(versionId, 'version "$version"');
10+
final versionId = RegExp(r'version \"\d+\.\d+.\d+(-[^"]+)?\" # ' + channel);
11+
contents = contents.replaceAll(versionId, 'version "$version" # $channel');
1412

1513
// Extract files and hashes that are stored in the formula in this format:
1614
// url "<url base>/<channel>/release/<version>/sdk/<artifact>.zip"
1715
// sha256 "<hash>"
18-
var filesAndHashes = RegExp(
16+
final filesAndHashes = RegExp(
1917
'channels/$channel/release'
2018
r'/\d[\w\d\-\.]*/sdk/([\w\d\-\.]+)\"\n(\s+)sha256 \"[\da-f]+\"',
2119
multiLine: true);
2220
return contents.replaceAllMapped(filesAndHashes, (m) {
23-
var artifact = m.group(1);
24-
var indent = m.group(2);
21+
final artifact = m.group(1);
22+
final indent = m.group(2);
2523
return 'channels/$channel/release/$version/sdk/$artifact"\n'
2624
'${indent}sha256 "${hashes[artifact]}"';
2725
});

test/formula_test.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:update_homebrew/src/formula.dart';
77

88
const _devFormula = '''
99
head do
10-
version "2.15.0-65.0.dev"
10+
version "2.15.0-65.0.dev" # dev
1111
if OS.mac? && Hardware::CPU.intel?
1212
url "https://storage.googleapis.com/dart-archive/channels/dev/release/2.15.0-65.0.dev/sdk/dartsdk-macos-x64-release.zip"
1313
sha256 "9c71429a806dd2ac7968542771764dd5d1b7c71fd03851c6870eb5c3f687fb1b"
@@ -36,7 +36,7 @@ const _devFormula = '''
3636

3737
const _devFormulaExpected = '''
3838
head do
39-
version "2.16.0-76.0.dev"
39+
version "2.16.0-76.0.dev" # dev
4040
if OS.mac? && Hardware::CPU.intel?
4141
url "https://storage.googleapis.com/dart-archive/channels/dev/release/2.16.0-76.0.dev/sdk/dartsdk-macos-x64-release.zip"
4242
sha256 "bbb"

0 commit comments

Comments
 (0)