Skip to content

Commit 92df273

Browse files
committed
Merge branch 'master' into feat/sass-import-deprecation
2 parents b73b43c + 1a0755f commit 92df273

File tree

150 files changed

+5495
-7844
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+5495
-7844
lines changed

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,30 @@ AppEngine version, listed here to ease deployment and troubleshooting.
33

44
## Next Release (replace with git tag when deployed)
55

6+
## `20241119t142300-all`
7+
8+
## `20241119t084600-all`
9+
* Bump runtimeVersion to `2024.11.18`.
10+
* Upgraded stable Flutter analysis SDK to `3.24.5`.
11+
12+
## `20241114t102300-all`
13+
14+
## `20241111t133300-all`
15+
16+
## `20241111t124500-all`
17+
* Note: `search` increased `description` weight from `0.9` to `1.0`.
18+
* Bump runtimeVersion to `2024.11.11`.
19+
* Enabled generation of `ExportedApi`.
20+
21+
## `20241107t132800-all`
22+
* `search` uses the `IndexedScore` to reduce memory allocations.
23+
24+
## `20241031t095600-all`
25+
* Bumped runtimeVersion to `2024.10.29`.
26+
* Upgraded stable Dart analysis SDK to `3.5.4`
27+
* Upgraded stable Flutter analysis SDK to `3.24.4`.
28+
* Upgraded pana to `0.22.15`.
29+
630
## `20241022t092400-all`
731
* Bumped runtimeVersion to `2024.10.21`.
832

Dockerfile.app

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ COPY static /project/static
1717
COPY doc /project/doc
1818
COPY third_party /project/third_party
1919
COPY tool /project/tool
20+
COPY pubspec.lock /project/pubspec.lock
21+
COPY pubspec.yaml /project/pubspec.yaml
22+
2023

2124
WORKDIR /project/pkg/web_app
2225
RUN dart /project/tool/pub_get_offline.dart /project/pkg/web_app

Dockerfile.worker

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ RUN mkdir -p /home/worker/config/dart-stable
2323
RUN mkdir -p /home/worker/config/flutter-stable
2424

2525
# Setup Dart SDK into /home/worker/dart/{stable,preview}/
26-
RUN XDG_CONFIG_HOME=/home/worker/config/dart-stable tool/setup-dart.sh /home/worker/dart/stable 3.5.3
26+
RUN XDG_CONFIG_HOME=/home/worker/config/dart-stable tool/setup-dart.sh /home/worker/dart/stable 3.5.4
2727

2828
# Setup Flutter SDK into /home/worker/flutter/{stable,preview}/
29-
RUN XDG_CONFIG_HOME=/home/worker/config/flutter-stable tool/setup-flutter.sh /home/worker/flutter/stable 3.24.3
29+
RUN XDG_CONFIG_HOME=/home/worker/config/flutter-stable tool/setup-flutter.sh /home/worker/flutter/stable 3.24.5
3030

3131
# Setup webp
3232
RUN tool/setup-webp.sh /home/worker/bin

app/config/dartlang-pub-dev.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fallbackSearchServicePrefix: https://search-dot-dartlang-pub-dev.appspot.com
99
defaultServiceBaseUrl: https://{{GAE_VERSION}}-dot-{{GOOGLE_CLOUD_PROJECT}}.appspot.com
1010
popularityDumpBucketName: dartlang-pub-dev--popularity
1111
searchSnapshotBucketName: dartlang-pub-dev--search-snapshot
12-
exportedApiBucketName: null
12+
exportedApiBucketName: dartlang-pub-dev-exported-api
1313
maxTaskInstances: 50
1414
maxTaskRunHours: 2
1515
taskResultBucketName: dartlang-pub-dev-task-output

app/config/dartlang-pub.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ fallbackSearchServicePrefix: https://search-dot-dartlang-pub.appspot.com
1212
defaultServiceBaseUrl: https://{{GAE_VERSION}}-dot-{{GOOGLE_CLOUD_PROJECT}}.appspot.com
1313
popularityDumpBucketName: dartlang-pub--popularity
1414
searchSnapshotBucketName: dartlang-pub--search-snapshot
15-
exportedApiBucketName: null
15+
exportedApiBucketName: dartlang-pub-exported-api
1616
maxTaskInstances: 700
1717
maxTaskRunHours: 2
1818
taskResultBucketName: dartlang-pub-task-output

app/lib/admin/actions/actions.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5+
import 'package:pub_dev/admin/actions/exported-api-sync.dart';
6+
57
import '../../shared/exceptions.dart';
68
import 'download_counts_backfill.dart';
79
import 'download_counts_delete.dart';
@@ -92,6 +94,7 @@ final class AdminAction {
9294
downloadCountsBackfill,
9395
downloadCountsDelete,
9496
emailSend,
97+
exportedApiSync,
9598
mergeModeratedPackageIntoExisting,
9699
moderatePackage,
97100
moderatePackageVersion,

app/lib/admin/actions/email_send.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,11 @@ Future<List<String>> _resolveEmails(String value) async {
110110
case ModerationSubjectKind.package:
111111
case ModerationSubjectKind.packageVersion:
112112
final pkg = await packageBackend.lookupPackage(ms.package!);
113-
if (pkg!.publisherId != null) {
114-
final list =
115-
await publisherBackend.getAdminMemberEmails(ms.publisherId!);
113+
if (pkg == null) {
114+
throw InvalidInputException('Unknown package kind: ${ms.package}');
115+
}
116+
if (pkg.publisherId case final String publisher) {
117+
final list = await publisherBackend.getAdminMemberEmails(publisher);
116118
emails.addAll(list.nonNulls);
117119
} else {
118120
final list = await accountBackend
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'package:pub_dev/package/api_export/api_exporter.dart';
6+
7+
import 'actions.dart';
8+
9+
final exportedApiSync = AdminAction(
10+
name: 'exported-api-sync',
11+
summary: 'Synchronize exported API bucket',
12+
description: '''
13+
This command will trigger synchronization of exported API bucket.
14+
15+
This is the bucket from which API responses are served.
16+
17+
This synchronize packages specified with:
18+
--packages="foo bar"
19+
20+
Synchronize all packages with:
21+
--packages=ALL
22+
23+
Optionally, write rewrite of all files using:
24+
--force-write=true
25+
''',
26+
options: {
27+
'packages': 'Space separated list of packages, use "ALL" for all!',
28+
'force-write': 'true/false if writes should be forced (default: false)',
29+
},
30+
invoke: (options) async {
31+
final forceWriteString = options['force-write'] ?? 'false';
32+
InvalidInputException.checkAnyOf(
33+
forceWriteString,
34+
'force-write',
35+
['true', 'false'],
36+
);
37+
final forceWrite = forceWriteString == 'true';
38+
39+
final packagesOpt = options['packages'] ?? '';
40+
final syncAll = packagesOpt == 'ALL';
41+
if (syncAll) {
42+
await apiExporter!.synchronizeExportedApi(forceWrite: forceWrite);
43+
return {
44+
'packages': 'ALL',
45+
'forceWrite': forceWrite,
46+
};
47+
} else {
48+
final packages = packagesOpt.split(' ').map((p) => p.trim()).toList();
49+
for (final p in packages) {
50+
InvalidInputException.checkPackageName(p);
51+
}
52+
for (final p in packages) {
53+
await apiExporter!.synchronizePackage(p, forceWrite: forceWrite);
54+
}
55+
return {
56+
'packages': packages,
57+
'forceWrite': forceWrite,
58+
};
59+
}
60+
},
61+
);

app/lib/admin/actions/moderate_package.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
import '../../admin/backend.dart';
66
import '../../admin/models.dart';
7+
import '../../package/api_export/api_exporter.dart';
78
import '../../package/backend.dart';
89
import '../../package/models.dart';
910
import '../../shared/datastore.dart';
1011
import '../../task/backend.dart';
11-
import '../../tool/maintenance/update_public_bucket.dart';
1212
import 'actions.dart';
1313

1414
final moderatePackage = AdminAction(
@@ -82,8 +82,11 @@ Note: the action may take a longer time to complete as the public archive bucket
8282
return pkg;
8383
});
8484

85+
// sync exported API(s)
86+
await apiExporter?.synchronizePackage(package, forceDelete: true);
87+
8588
// retract or re-populate public archive files
86-
await updatePublicArchiveBucket(
89+
await packageBackend.tarballStorage.updatePublicArchiveBucket(
8790
package: package,
8891
ageCheckThreshold: Duration.zero,
8992
deleteIfOlder: Duration.zero,

app/lib/admin/actions/moderate_package_versions.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
import 'package:_pub_shared/utils/sdk_version_cache.dart';
66
import 'package:clock/clock.dart';
77

8+
import '../../package/api_export/api_exporter.dart';
89
import '../../package/backend.dart';
910
import '../../package/models.dart';
1011
import '../../scorecard/backend.dart';
1112
import '../../shared/datastore.dart';
1213
import '../../shared/versions.dart';
1314
import '../../task/backend.dart';
14-
import '../../tool/maintenance/update_public_bucket.dart';
1515

1616
import '../backend.dart';
1717
import '../models.dart';
@@ -115,8 +115,11 @@ Set the moderated flag on a package version (updating the flag and the timestamp
115115
return v;
116116
});
117117

118+
// sync exported API(s)
119+
await apiExporter?.synchronizePackage(package, forceDelete: true);
120+
118121
// retract or re-populate public archive files
119-
await updatePublicArchiveBucket(
122+
await packageBackend.tarballStorage.updatePublicArchiveBucket(
120123
package: package,
121124
ageCheckThreshold: Duration.zero,
122125
deleteIfOlder: Duration.zero,

0 commit comments

Comments
 (0)