Skip to content

Commit 6f052ca

Browse files
authored
Control over the dartdoc version. (#998)
* Move versions to shared * Control over the dartdoc version. * Comments to keep versions in-sync.
1 parent c9d30e7 commit 6f052ca

File tree

12 files changed

+30
-41
lines changed

12 files changed

+30
-41
lines changed

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
language: dart
55

66
dart:
7-
- dev
7+
# Keep version in-sync with Dockerfile
8+
- 2.0.0-dev.26.0
89

910
env:
1011
- PKG=app TASK=dartanalyzer

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
FROM google/dart-runtime-base:2.0.0-dev.20.0
1+
# Keep version in-sync with .travis.yml
2+
FROM google/dart-runtime-base:2.0.0-dev.26.0
23

34
# `apt-mark hold dart` ensures that Dart is not upgraded with the other packages
45
# We want to make sure SDK upgrades are explicit.

app/.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
language: dart
22

33
dart:
4-
- dev
4+
# Keep version in-sync with Dockerfile
5+
- 2.0.0-dev.26.0
56

67
dart_task:
78
- test

app/lib/analyzer/backend.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import '../frontend/models.dart';
1212
import '../shared/analyzer_memcache.dart';
1313
import '../shared/analyzer_service.dart';
1414
import '../shared/utils.dart';
15+
import '../shared/versions.dart';
1516

1617
import 'models.dart';
17-
import 'versions.dart';
1818

1919
/// Sets the backend service.
2020
void registerAnalysisBackend(AnalysisBackend backend) =>

app/lib/analyzer/models.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ import 'package:pub_semver/pub_semver.dart';
1111

1212
import '../shared/analyzer_service.dart' show AnalysisStatus;
1313
import '../shared/utils.dart';
14+
import '../shared/versions.dart' as versions;
1415

1516
import 'model_properties.dart';
16-
import 'versions.dart' as versions;
1717

1818
/// Analyzed package report.
1919
@db.Kind(name: 'PackageAnalysis', idType: db.IdType.String)

app/lib/analyzer/task_sources.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import 'package:gcloud/db.dart';
99
import '../shared/analyzer_service.dart' show AnalysisStatus;
1010
import '../shared/task_scheduler.dart';
1111
import '../shared/task_sources.dart';
12+
import '../shared/versions.dart';
1213

1314
import 'models.dart';
14-
import 'versions.dart';
1515

1616
/// Creates a task when a version uploaded in the past 10 minutes has no
1717
/// analysis yet.

app/lib/dartdoc/dartdoc_runner.dart

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import 'package:uuid/uuid.dart';
1414
import '../shared/configuration.dart' show envConfig;
1515
import '../shared/task_scheduler.dart' show Task, TaskRunner;
1616
import '../shared/utils.dart' show redirectDartdocPages;
17+
import '../shared/versions.dart';
1718

1819
import 'backend.dart';
1920
import 'models.dart';
@@ -26,14 +27,11 @@ const statusFilePath = 'status.json';
2627
const buildLogFilePath = 'log.txt';
2728

2829
class DartdocRunner implements TaskRunner {
29-
String _cachedDartdocVersion;
30-
3130
@override
3231
Future<bool> shouldSkipTask(Task task) async {
3332
if (redirectDartdocPages.containsKey(task.package)) {
3433
return true;
3534
}
36-
final dartdocVersion = await _getDartdocVersion();
3735
final shouldRun = await dartdocBackend.shouldRunTask(task, dartdocVersion);
3836
return !shouldRun;
3937
}
@@ -121,7 +119,7 @@ class DartdocRunner implements TaskRunner {
121119
uuid: _uuid.v4(),
122120
packageName: task.package,
123121
packageVersion: task.version,
124-
dartdocVersion: await _getDartdocVersion(),
122+
dartdocVersion: dartdocVersion,
125123
timestamp: new DateTime.now().toUtc(),
126124
hasContent: hasContent);
127125

@@ -135,30 +133,4 @@ class DartdocRunner implements TaskRunner {
135133

136134
return entry;
137135
}
138-
139-
Future<String> _getDartdocVersion() async {
140-
if (_cachedDartdocVersion != null) return _cachedDartdocVersion;
141-
final pr = await Process.run('dartdoc', ['--version']);
142-
if (pr.exitCode != 0) {
143-
_logger.severe('Unable to detect dartdoc version\n'
144-
'exitCode: ${pr.exitCode}\n'
145-
'stdout: ${pr.stdout}\n'
146-
'stderr: ${pr.stderr}\n');
147-
throw new Exception('dartdoc execution failed with code ${pr.exitCode}');
148-
}
149-
150-
final match = _versionRegExp.firstMatch(pr.stdout.toString().trim());
151-
if (match == null) {
152-
_logger.severe('Unable to parse dartdoc version: ${pr.stdout}');
153-
throw new Exception('Unable to parse dartdoc version: ${pr.stdout}');
154-
}
155-
156-
final version = match.group(1).trim();
157-
if (version.isNotEmpty) {
158-
_cachedDartdocVersion = version;
159-
}
160-
return _cachedDartdocVersion;
161-
}
162136
}
163-
164-
final RegExp _versionRegExp = new RegExp(r'dartdoc version: (.*)$');

app/lib/shared/analyzer_client.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import 'package:http/http.dart' as http;
1010
import 'package:logging/logging.dart';
1111
import 'package:pana/pana.dart';
1212

13-
import 'package:pub_dartlang_org/analyzer/versions.dart';
14-
1513
import 'analyzer_memcache.dart';
1614
import 'analyzer_service.dart';
1715
import 'configuration.dart';
@@ -20,6 +18,7 @@ import 'notification.dart' show notifyService;
2018
import 'platform.dart';
2119
import 'popularity_storage.dart';
2220
import 'utils.dart';
21+
import 'versions.dart';
2322

2423
export 'package:pana/pana.dart' show LicenseFile, PkgDependency, Suggestion;
2524
export 'analyzer_service.dart';

app/lib/analyzer/versions.dart renamed to app/lib/shared/versions.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,7 @@ final Version semanticPanaVersion = new Version.parse(panaVersion);
1111
// keep in-sync with app/script/setup-flutter.sh
1212
final String flutterVersion = '0.0.22';
1313
final Version semanticFlutterVersion = new Version.parse(flutterVersion);
14+
15+
// keep in-sync with SDK version in .travis.yml and Dockerfile
16+
final String dartdocVersion = '0.16.0';
17+
final Version semanticDartdocVersion = new Version.parse(dartdocVersion);

app/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ dependencies:
3030
stream_transform: ^0.0.7
3131
yaml: '^2.1.12'
3232
# pana version to be pinned
33-
# keep in-sync with app/lib/analyzer/versions.dart
33+
# keep in-sync with app/lib/shared/versions.dart
3434
pana: '0.10.2'
3535
# 3rd-party packages with pinned versions
3636
archive: '1.0.33'

app/script/setup-flutter.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fi
2424

2525
git clone -b v0.0.22 --single-branch https://github.com/flutter/flutter.git $FLUTTER_SDK
2626

27-
# Keep in-sync with app/lib/analyzer/versions.dart
27+
# Keep in-sync with app/lib/shared/versions.dart
2828
cd $FLUTTER_SDK
2929

3030
# Downloads the Dart SDK and disables analytics tracking – which we always want.

app/test/analyzer/analyzer_version_test.dart renamed to app/test/shared/versions_test.dart

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'dart:io';
77
import 'package:test/test.dart';
88
import 'package:yaml/yaml.dart';
99

10-
import 'package:pub_dartlang_org/analyzer/versions.dart';
10+
import 'package:pub_dartlang_org/shared/versions.dart';
1111

1212
void main() {
1313
test('analyzer version should match resolved pana version', () async {
@@ -25,4 +25,15 @@ void main() {
2525
contains("git clone -b v$flutterVersion --single-branch "
2626
"https://github.com/flutter/flutter.git \$FLUTTER_SDK"));
2727
});
28+
29+
test('dartdoc version should match SDK dartdoc', () async {
30+
final pr = await Process.run('dartdoc', ['--version']);
31+
final RegExp versionRegExp = new RegExp(r'dartdoc version: (.*)$');
32+
final match = versionRegExp.firstMatch(pr.stdout.toString().trim());
33+
if (match == null) {
34+
throw new Exception('Unable to parse dartdoc version: ${pr.stdout}');
35+
}
36+
final version = match.group(1).trim();
37+
expect(version, dartdocVersion);
38+
});
2839
}

0 commit comments

Comments
 (0)