From 39b94e82a433571af127d66acda46165147798ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Istv=C3=A1n=20So=C3=B3s?= Date: Wed, 16 Aug 2023 17:42:05 +0200 Subject: [PATCH] Remove experimental condition (dead code) from documentation API endpoint. (#6923) --- app/lib/dartdoc/backend.dart | 1 - app/lib/frontend/handlers/custom_api.dart | 79 +++++------------------ app/lib/shared/redis_cache.dart | 11 ---- 3 files changed, 15 insertions(+), 76 deletions(-) diff --git a/app/lib/dartdoc/backend.dart b/app/lib/dartdoc/backend.dart index 20210e6a7d..3593798692 100644 --- a/app/lib/dartdoc/backend.dart +++ b/app/lib/dartdoc/backend.dart @@ -163,7 +163,6 @@ class DartdocBackend { await Future.wait([ cache.dartdocEntry(entry.packageName, entry.packageVersion).purge(), cache.dartdocEntry(entry.packageName, 'latest').purge(), - cache.dartdocApiSummary(entry.packageName).purge(), ]); // Mark old content as expired. diff --git a/app/lib/frontend/handlers/custom_api.dart b/app/lib/frontend/handlers/custom_api.dart index 435f56a8df..ec823d490f 100644 --- a/app/lib/frontend/handlers/custom_api.dart +++ b/app/lib/frontend/handlers/custom_api.dart @@ -8,14 +8,12 @@ import 'dart:io'; import 'package:_pub_shared/data/package_api.dart'; import 'package:_pub_shared/search/search_form.dart'; import 'package:gcloud/storage.dart'; -import 'package:pub_dev/dartdoc/models.dart'; import 'package:pub_dev/shared/count_topics.dart'; import 'package:pub_dev/shared/storage.dart'; import 'package:pub_dev/task/backend.dart'; import 'package:pub_dev/task/models.dart'; import 'package:shelf/shelf.dart' as shelf; -import '../../dartdoc/backend.dart'; import '../../frontend/request_context.dart'; import '../../package/backend.dart'; import '../../package/models.dart'; @@ -45,69 +43,22 @@ Future apiDocumentationHandler( return jsonResponse({}, status: 404); } - if (requestContext.experimentalFlags.showSandboxedDartdoc) { - final status = await taskBackend.packageStatus(package); - return jsonResponse({ - 'name': package, - 'versions': status.versions.entries - .map((e) => { - 'version': e.key, - 'status': e.value.status == PackageVersionStatus.pending || - e.value.status == PackageVersionStatus.running - ? 'pending' - : (e.value.status == PackageVersionStatus.failed - ? 'failed' - : 'completed'), - 'hasDocumentation': e.value.docs, - }) - .toList(), - }); - } - - final cachedData = await cache.dartdocApiSummary(package).get(); - if (cachedData != null) { - return jsonResponse(cachedData); - } - - final versions = await packageBackend.listVersionsCached(package); - if (versions.versions.isEmpty) { - return jsonResponse({}, status: 404); - } - - // Limit versions to the latest few (sorted semantically). - final versionsToQuery = { - versions.latest.version, - ...versions.versions.map((e) => e.version).toList().reversed.take(30), - }; - - final dartdocEntries = await dartdocBackend.getEntriesForVersions( - package, versionsToQuery.toList()); - final dartdocEntriesMap = {}; - for (final entry in dartdocEntries) { - if (entry == null) continue; - dartdocEntriesMap[entry.packageVersion] = entry; - } - - final versionsData = []; - for (int i = 0; i < versions.versions.length; i++) { - final version = versions.versions[i].version; - final entry = dartdocEntriesMap[version]; - final hasDocumentation = entry != null && entry.hasContent; - final status = - entry == null ? 'pending' : (entry.hasContent ? 'success' : 'failed'); - versionsData.add({ - 'version': version, - 'status': status, - 'hasDocumentation': hasDocumentation, - }); - } - final data = { + final status = await taskBackend.packageStatus(package); + return jsonResponse({ 'name': package, - 'latestStableVersion': versions.latest.version, - 'versions': versionsData, - }; - await cache.dartdocApiSummary(package).set(data); - return jsonResponse(data); + 'versions': status.versions.entries + .map((e) => { + 'version': e.key, + 'status': e.value.status == PackageVersionStatus.pending || + e.value.status == PackageVersionStatus.running + ? 'pending' + : (e.value.status == PackageVersionStatus.failed + ? 'failed' + : 'completed'), + 'hasDocumentation': e.value.docs, + }) + .toList(), + }); } /// Handles requests for diff --git a/app/lib/shared/redis_cache.dart b/app/lib/shared/redis_cache.dart index a9f38e4179..23dce22f92 100644 --- a/app/lib/shared/redis_cache.dart +++ b/app/lib/shared/redis_cache.dart @@ -77,17 +77,6 @@ class CachePatterns { .withPrefix('dartdoc-blob-index-v1/') .withTTL(Duration(minutes: 60))[objectName]; - /// Cache for API summaries used by dartdoc. - Entry> dartdocApiSummary(String package) => _cache - .withPrefix('dartdoc-apisummary/') - .withTTL(Duration(minutes: 60)) - .withCodec(utf8) - .withCodec(json) - .withCodec(wrapAsCodec( - encode: (Map map) => map, - decode: (obj) => obj as Map, - ))[package]; - Entry uiPackagePage(String package, String? version) => _cache .withPrefix('ui-packagepage/') .withTTL(Duration(minutes: 10))