From 8f724d081eeb16d00de05c83a52bf341044becc1 Mon Sep 17 00:00:00 2001 From: Rosalyn Tan Date: Tue, 3 Dec 2024 15:10:53 -0800 Subject: [PATCH 1/2] Clean up the fdccompatiblemode experiment. --- src/dataconnect/schemaMigration.ts | 22 +++++++------------ src/experiments.ts | 7 ------ src/init/features/dataconnect/index.ts | 7 +----- .../dataconnect-fdccompatiblemode.yaml | 12 ---------- templates/init/dataconnect/dataconnect.yaml | 1 + 5 files changed, 10 insertions(+), 39 deletions(-) delete mode 100644 templates/init/dataconnect/dataconnect-fdccompatiblemode.yaml diff --git a/src/dataconnect/schemaMigration.ts b/src/dataconnect/schemaMigration.ts index e26df809eed..8ed600ecd7f 100644 --- a/src/dataconnect/schemaMigration.ts +++ b/src/dataconnect/schemaMigration.ts @@ -41,13 +41,11 @@ export async function diffSchema( let diffs: Diff[] = []; // If the schema validation mode is unset, we surface both STRICT and COMPATIBLE mode diffs, starting with COMPATIBLE. - let validationMode: SchemaValidation = experiments.isEnabled("fdccompatiblemode") - ? schemaValidation ?? "COMPATIBLE" - : "STRICT"; + let validationMode: SchemaValidation = schemaValidation ?? "COMPATIBLE"; setSchemaValidationMode(schema, validationMode); try { - if (!schemaValidation && experiments.isEnabled("fdccompatiblemode")) { + if (!schemaValidation) { logLabeledBullet("dataconnect", `generating required schema changes...`); } await upsertSchema(schema, /** validateOnly=*/ true); @@ -78,7 +76,7 @@ export async function diffSchema( } // If the validation mode is unset, then we also surface any additional optional STRICT diffs. - if (experiments.isEnabled("fdccompatiblemode") && !schemaValidation) { + if (!schemaValidation) { validationMode = "STRICT"; setSchemaValidationMode(schema, validationMode); try { @@ -127,9 +125,7 @@ export async function migrateSchema(args: { let diffs: Diff[] = []; // If the schema validation mode is unset, we surface both STRICT and COMPATIBLE mode diffs, starting with COMPATIBLE. - let validationMode: SchemaValidation = experiments.isEnabled("fdccompatiblemode") - ? schemaValidation ?? "COMPATIBLE" - : "STRICT"; + let validationMode: SchemaValidation = schemaValidation ?? "COMPATIBLE"; setSchemaValidationMode(schema, validationMode); try { @@ -183,7 +179,7 @@ export async function migrateSchema(args: { } // If the validation mode is unset, then we also surface any additional optional STRICT diffs. - if (experiments.isEnabled("fdccompatiblemode") && !schemaValidation) { + if (!schemaValidation) { validationMode = "STRICT"; setSchemaValidationMode(schema, validationMode); try { @@ -274,11 +270,9 @@ function diffsEqual(x: Diff[], y: Diff[]): boolean { } function setSchemaValidationMode(schema: Schema, schemaValidation: SchemaValidation) { - if (experiments.isEnabled("fdccompatiblemode")) { - const postgresDatasource = schema.datasources.find((d) => d.postgresql); - if (postgresDatasource?.postgresql) { - postgresDatasource.postgresql.schemaValidation = schemaValidation; - } + const postgresDatasource = schema.datasources.find((d) => d.postgresql); + if (postgresDatasource?.postgresql) { + postgresDatasource.postgresql.schemaValidation = schemaValidation; } } diff --git a/src/experiments.ts b/src/experiments.ts index 644fd2b5e78..334b75176ab 100644 --- a/src/experiments.ts +++ b/src/experiments.ts @@ -137,13 +137,6 @@ export const ALL_EXPERIMENTS = experiments({ default: true, public: false, }, - - fdccompatiblemode: { - shortDescription: "Enable Data Connect schema migrations in Compatible Mode", - fullDescription: "Enable Data Connect schema migrations in Compatible Mode", - default: true, - public: false, - }, }); export type ExperimentName = keyof typeof ALL_EXPERIMENTS; diff --git a/src/init/features/dataconnect/index.ts b/src/init/features/dataconnect/index.ts index fdb68825286..fe57a2ef1da 100644 --- a/src/init/features/dataconnect/index.ts +++ b/src/init/features/dataconnect/index.ts @@ -25,9 +25,6 @@ import * as sdk from "./sdk"; import { getPlatformFromFolder } from "../../../dataconnect/fileUtils"; const DATACONNECT_YAML_TEMPLATE = readTemplateSync("init/dataconnect/dataconnect.yaml"); -const DATACONNECT_YAML_COMPAT_EXPERIMENT_TEMPLATE = readTemplateSync( - "init/dataconnect/dataconnect-fdccompatiblemode.yaml", -); const CONNECTOR_YAML_TEMPLATE = readTemplateSync("init/dataconnect/connector.yaml"); const SCHEMA_TEMPLATE = readTemplateSync("init/dataconnect/schema.gql"); const QUERIES_TEMPLATE = readTemplateSync("init/dataconnect/queries.gql"); @@ -239,9 +236,7 @@ function subDataconnectYamlValues(replacementValues: { connectorDirs: "__connectorDirs__", locationId: "__location__", }; - let replaced = experiments.isEnabled("fdccompatiblemode") - ? DATACONNECT_YAML_COMPAT_EXPERIMENT_TEMPLATE - : DATACONNECT_YAML_TEMPLATE; + let replaced = DATACONNECT_YAML_TEMPLATE; for (const [k, v] of Object.entries(replacementValues)) { replaced = replaced.replace(replacements[k], JSON.stringify(v)); } diff --git a/templates/init/dataconnect/dataconnect-fdccompatiblemode.yaml b/templates/init/dataconnect/dataconnect-fdccompatiblemode.yaml deleted file mode 100644 index 1529d097f8d..00000000000 --- a/templates/init/dataconnect/dataconnect-fdccompatiblemode.yaml +++ /dev/null @@ -1,12 +0,0 @@ -specVersion: "v1beta" -serviceId: __serviceId__ -location: __location__ -schema: - source: "./schema" - datasource: - postgresql: - database: __cloudSqlDatabase__ - cloudSql: - instanceId: __cloudSqlInstanceId__ - # schemaValidation: "COMPATIBLE" -connectorDirs: __connectorDirs__ diff --git a/templates/init/dataconnect/dataconnect.yaml b/templates/init/dataconnect/dataconnect.yaml index f798ef9410f..1529d097f8d 100644 --- a/templates/init/dataconnect/dataconnect.yaml +++ b/templates/init/dataconnect/dataconnect.yaml @@ -8,4 +8,5 @@ schema: database: __cloudSqlDatabase__ cloudSql: instanceId: __cloudSqlInstanceId__ + # schemaValidation: "COMPATIBLE" connectorDirs: __connectorDirs__ From 866eb495241b47df97214d82197541269fa03256 Mon Sep 17 00:00:00 2001 From: Rosalyn Tan Date: Tue, 3 Dec 2024 15:15:50 -0800 Subject: [PATCH 2/2] Clean up imports. --- src/dataconnect/schemaMigration.ts | 1 - src/init/features/dataconnect/index.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/src/dataconnect/schemaMigration.ts b/src/dataconnect/schemaMigration.ts index 8ed600ecd7f..1741a35bd5a 100644 --- a/src/dataconnect/schemaMigration.ts +++ b/src/dataconnect/schemaMigration.ts @@ -24,7 +24,6 @@ import { Schema } from "./types"; import { Options } from "../options"; import { FirebaseError } from "../error"; import { logLabeledBullet, logLabeledWarning, logLabeledSuccess } from "../utils"; -import * as experiments from "../experiments"; import * as errors from "./errors"; export async function diffSchema( diff --git a/src/init/features/dataconnect/index.ts b/src/init/features/dataconnect/index.ts index fe57a2ef1da..20546eb3851 100644 --- a/src/init/features/dataconnect/index.ts +++ b/src/init/features/dataconnect/index.ts @@ -8,7 +8,6 @@ import { provisionCloudSql } from "../../../dataconnect/provisionCloudSql"; import { checkFreeTrialInstanceUsed, upgradeInstructions } from "../../../dataconnect/freeTrial"; import * as cloudsql from "../../../gcp/cloudsql/cloudsqladmin"; import { ensureApis, ensureSparkApis } from "../../../dataconnect/ensureApis"; -import * as experiments from "../../../experiments"; import { listLocations, listAllServices,