From e899d27eaab172ae3de5a529053d716ccac94831 Mon Sep 17 00:00:00 2001 From: Bryce Lampe Date: Tue, 15 Oct 2024 10:25:05 -0700 Subject: [PATCH] Migration to fixup bridge imports --- tools/sourcemigrator/bridge-imports.patch | 48 ++++++++++ tools/sourcemigrator/index.ts | 53 ++++++----- .../sourcemigrator/respectSchemaVersion.patch | 91 ------------------- 3 files changed, 74 insertions(+), 118 deletions(-) create mode 100644 tools/sourcemigrator/bridge-imports.patch delete mode 100644 tools/sourcemigrator/respectSchemaVersion.patch diff --git a/tools/sourcemigrator/bridge-imports.patch b/tools/sourcemigrator/bridge-imports.patch new file mode 100644 index 000000000..d67f9954f --- /dev/null +++ b/tools/sourcemigrator/bridge-imports.patch @@ -0,0 +1,48 @@ +@@ +var alias identifier +@@ +-import alias "github.com/pulumi/pulumi-terraform-bridge/pf" ++import alias "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/pf" + + alias + +@@ +var alias identifier +@@ +-import alias "github.com/pulumi/pulumi-terraform-bridge/pf/proto" ++import alias "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/pf/proto" + + alias + +@@ +var alias identifier +@@ +-import alias "github.com/pulumi/pulumi-terraform-bridge/pf/tfgen" ++import alias "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/pf/tfgen" + + alias + +@@ +var alias identifier +@@ +-import alias "github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge" ++import alias "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/pf/tfbridge" + + alias + +@@ +var alias identifier +@@ +-import alias "github.com/pulumi/pulumi-terraform-bridge/testing/x" ++import alias "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/x/testing" + + alias + +@@ +var alias identifier +@@ +-import alias "github.com/pulumi/pulumi-terraform-bridge/x/muxer" ++import alias "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/x/muxer" + + alias + diff --git a/tools/sourcemigrator/index.ts b/tools/sourcemigrator/index.ts index d8685c660..a46dfa66f 100644 --- a/tools/sourcemigrator/index.ts +++ b/tools/sourcemigrator/index.ts @@ -72,32 +72,31 @@ function run(command: string): shell.ShellString { return checkError(shell.exec(command)); } -// function respectSchemaVersion(): SourceMigration { -// return { -// name: "Respect Schema Version", -// async execute(context) { -// const patchPath = fs.realpathSync("respectSchemaVersion.patch"); -// shell.pushd(context.dir); -// try { -// // Apply patch -// run( -// `go run github.com/uber-go/gopatch@latest -p "${patchPath}" ./provider/resources.go` -// ); -// // Format the code - twice to ensure that the code is formatted correctly -// run(`go install mvdan.cc/gofumpt@latest`); -// run(`gofumpt -w ./provider/resources.go`); -// run(`gofumpt -w ./provider/resources.go`); -// // Check if we've made changes -// const gitStatus = run(`git status --porcelain`).stdout; -// if (gitStatus.includes("provider/resources.go")) { -// run(`make tfgen build`); -// } -// } finally { -// shell.popd(); -// } -// }, -// }; -// } +function fixupBridgeImports(): SourceMigration { + return { + name: "Fixup Bridge Imports", + async execute(context) { + const patchPath = fs.realpathSync("bridge-imports.patch"); + shell.pushd(context.dir); + try { + // Apply patch + run(`go run github.com/uber-go/gopatch@v0.4.0 -p "${patchPath}" .`); + run( + `for MODFILE in $(find . -name go.mod); do pushd $(dirname $MODFILE); go mod tidy; popd; done` + ); + // Format the code - twice to ensure that the code is formatted correctly + run( + `go run mvdan.cc/gofumpt@v0.7.0 -w $(git diff --name-only) || true` + ); + run( + `go run mvdan.cc/gofumpt@v0.7.0 -w $(git diff --name-only) || true` + ); + } finally { + shell.popd(); + } + }, + }; +} function removeExplicitSDKDependency(): SourceMigration { return { @@ -137,7 +136,7 @@ async function runMigrations( } function allMigrations(): SourceMigration[] { - return [removeExplicitSDKDependency()]; + return [fixupBridgeImports(), removeExplicitSDKDependency()]; } async function main() { diff --git a/tools/sourcemigrator/respectSchemaVersion.patch b/tools/sourcemigrator/respectSchemaVersion.patch deleted file mode 100644 index ca20a613e..000000000 --- a/tools/sourcemigrator/respectSchemaVersion.patch +++ /dev/null @@ -1,91 +0,0 @@ -@@ -// JS: Respect schema version -var tfbridge identifier -@@ - import tfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - - tfbridge.JavaScriptInfo{ - ..., -+ RespectSchemaVersion: true, - } - -@@ -// JS: Don't duplicate schema version -var tfbridge identifier -@@ - import tfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - - tfbridge.JavaScriptInfo{ - ..., - RespectSchemaVersion: true, -- RespectSchemaVersion: true, - } - -@@ -// Py: Respect schema version -var tfbridge identifier -@@ - import tfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - - tfbridge.PythonInfo{ -+ RespectSchemaVersion: true, - ..., - } - -@@ -// Py: Don't duplicate schema version -var tfbridge identifier -@@ - import tfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - - tfbridge.PythonInfo{ - RespectSchemaVersion: true, -- RespectSchemaVersion: true, - ..., - } - -@@ -// Go: Respect schema version -var tfbridge identifier -@@ - import tfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - - tfbridge.GolangInfo{ - ..., -+ RespectSchemaVersion: true, - } - -@@ -// Go: Don't duplicate schema version -var tfbridge identifier -@@ - import tfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - - tfbridge.GolangInfo{ - ..., - RespectSchemaVersion: true, -- RespectSchemaVersion: true, - } - -@@ -// CSharp: Respect schema version -var tfbridge identifier -@@ - import tfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - - tfbridge.CSharpInfo{ -+ RespectSchemaVersion: true, - ..., - } - -@@ -// CSharp: Don't duplicate schema version -var tfbridge identifier -@@ - import tfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - - tfbridge.CSharpInfo{ - RespectSchemaVersion: true, -- RespectSchemaVersion: true, - ..., - }