refactor: migrate plugin SDK imports from block/core to block/pluginsdk

Rewrite import prefix git.dev.alexdunmow.com/block/core/{plugin,blocks,
templates,abi} to git.dev.alexdunmow.com/block/pluginsdk/* across the CLI's
plugin build/verify logic (internal/bnp), plugin commands (cmd/ninja/cmd),
and the wasm build fixtures (testdata/fixture, testdata/capfixture). go.mod
adds pluginsdk@v0.1.0; core is retained only for cmd/ninja/cmd/theme.go
(ParseModFull), which is left untouched as in-flight work.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Alex Dunmow 2026-07-07 11:39:22 +08:00
parent 4e82b1ef41
commit 42789ffd0f
18 changed files with 34 additions and 31 deletions

View File

@ -15,7 +15,7 @@ import (
"connectrpc.com/connect" "connectrpc.com/connect"
"github.com/spf13/cobra" "github.com/spf13/cobra"
core "git.dev.alexdunmow.com/block/core/plugin" core "git.dev.alexdunmow.com/block/pluginsdk/plugin"
"git.dev.alexdunmow.com/block/cli/internal/bnp" "git.dev.alexdunmow.com/block/cli/internal/bnp"
"git.dev.alexdunmow.com/block/cli/internal/creds" "git.dev.alexdunmow.com/block/cli/internal/creds"

View File

@ -9,14 +9,14 @@ import (
"strings" "strings"
"testing" "testing"
abiv1 "git.dev.alexdunmow.com/block/core/abi/v1" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1"
"git.dev.alexdunmow.com/block/cli/internal/bnp" "git.dev.alexdunmow.com/block/cli/internal/bnp"
"github.com/klauspost/compress/zstd" "github.com/klauspost/compress/zstd"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
// fixtureDir resolves a guest-plugin fixture under this package's testdata/. // fixtureDir resolves a guest-plugin fixture under this package's testdata/.
// The fixtures compile against the cli module's pinned block/core@v0.18.x // The fixtures compile against the cli module's pinned block/pluginsdk
// (guest SDK), which is exactly what `ninja plugin build` drives in the wild. // (guest SDK), which is exactly what `ninja plugin build` drives in the wild.
func fixtureDir(t *testing.T, name string) string { func fixtureDir(t *testing.T, name string) string {
t.Helper() t.Helper()

View File

@ -10,7 +10,7 @@ import (
"connectrpc.com/connect" "connectrpc.com/connect"
"github.com/spf13/cobra" "github.com/spf13/cobra"
core "git.dev.alexdunmow.com/block/core/plugin" core "git.dev.alexdunmow.com/block/pluginsdk/plugin"
v1 "git.dev.alexdunmow.com/block/cli/internal/api/orchestrator/v1" v1 "git.dev.alexdunmow.com/block/cli/internal/api/orchestrator/v1"
"git.dev.alexdunmow.com/block/cli/internal/creds" "git.dev.alexdunmow.com/block/cli/internal/creds"

View File

@ -7,7 +7,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
core "git.dev.alexdunmow.com/block/core/plugin" core "git.dev.alexdunmow.com/block/pluginsdk/plugin"
"git.dev.alexdunmow.com/block/cli/internal/creds" "git.dev.alexdunmow.com/block/cli/internal/creds"
) )

View File

@ -11,7 +11,7 @@ import (
"connectrpc.com/connect" "connectrpc.com/connect"
"github.com/spf13/cobra" "github.com/spf13/cobra"
core "git.dev.alexdunmow.com/block/core/plugin" core "git.dev.alexdunmow.com/block/pluginsdk/plugin"
"git.dev.alexdunmow.com/block/cli/internal/creds" "git.dev.alexdunmow.com/block/cli/internal/creds"
"git.dev.alexdunmow.com/block/cli/internal/orchclient" "git.dev.alexdunmow.com/block/cli/internal/orchclient"
v1 "git.dev.alexdunmow.com/block/cli/internal/api/orchestrator/v1" v1 "git.dev.alexdunmow.com/block/cli/internal/api/orchestrator/v1"

View File

@ -8,7 +8,7 @@ import (
"strings" "strings"
"testing" "testing"
core "git.dev.alexdunmow.com/block/core/plugin" core "git.dev.alexdunmow.com/block/pluginsdk/plugin"
) )
func TestCheckRepoHasHEAD_NoCommitsReturnsFriendlyError(t *testing.T) { func TestCheckRepoHasHEAD_NoCommitsReturnsFriendlyError(t *testing.T) {

View File

@ -2,7 +2,7 @@
package main package main
import "git.dev.alexdunmow.com/block/core/plugin/wasmguest" import "git.dev.alexdunmow.com/block/pluginsdk/plugin/wasmguest"
func init() { wasmguest.Serve(Registration) } func init() { wasmguest.Serve(Registration) }
func main() {} // never called — reactor mode func main() {} // never called — reactor mode

View File

@ -10,11 +10,11 @@ import (
"fmt" "fmt"
// Registers the "bnwasm" database/sql driver (its init runs sql.Register). // Registers the "bnwasm" database/sql driver (its init runs sql.Register).
_ "git.dev.alexdunmow.com/block/core/plugin/wasmguest/bnwasm" _ "git.dev.alexdunmow.com/block/pluginsdk/plugin/wasmguest/bnwasm"
"git.dev.alexdunmow.com/block/core/blocks" "git.dev.alexdunmow.com/block/pluginsdk/blocks"
"git.dev.alexdunmow.com/block/core/plugin" "git.dev.alexdunmow.com/block/pluginsdk/plugin"
"git.dev.alexdunmow.com/block/core/templates" "git.dev.alexdunmow.com/block/pluginsdk/templates"
) )
var Registration = plugin.PluginRegistration{ var Registration = plugin.PluginRegistration{

View File

@ -2,7 +2,7 @@
package main package main
import "git.dev.alexdunmow.com/block/core/plugin/wasmguest" import "git.dev.alexdunmow.com/block/pluginsdk/plugin/wasmguest"
func init() { wasmguest.Serve(Registration) } func init() { wasmguest.Serve(Registration) }
func main() {} // never called — reactor mode func main() {} // never called — reactor mode

View File

@ -9,9 +9,9 @@ import (
"io" "io"
"strings" "strings"
"git.dev.alexdunmow.com/block/core/blocks" "git.dev.alexdunmow.com/block/pluginsdk/blocks"
"git.dev.alexdunmow.com/block/core/plugin" "git.dev.alexdunmow.com/block/pluginsdk/plugin"
"git.dev.alexdunmow.com/block/core/templates" "git.dev.alexdunmow.com/block/pluginsdk/templates"
) )
// capReport is populated by the Load hook from capability calls, then // capReport is populated by the Load hook from capability calls, then

7
go.mod
View File

@ -5,6 +5,8 @@ go 1.26.4
require ( require (
connectrpc.com/connect v1.20.0 connectrpc.com/connect v1.20.0
git.dev.alexdunmow.com/block/core v0.18.2 git.dev.alexdunmow.com/block/core v0.18.2
git.dev.alexdunmow.com/block/pluginsdk v0.1.0
github.com/chromedp/cdproto v0.0.0-20260321001828-e3e3800016bc
github.com/chromedp/chromedp v0.15.1 github.com/chromedp/chromedp v0.15.1
github.com/klauspost/compress v1.18.6 github.com/klauspost/compress v1.18.6
github.com/spf13/cobra v1.10.2 github.com/spf13/cobra v1.10.2
@ -15,7 +17,6 @@ require (
require ( require (
github.com/BurntSushi/toml v1.6.0 // indirect github.com/BurntSushi/toml v1.6.0 // indirect
github.com/chromedp/cdproto v0.0.0-20260321001828-e3e3800016bc // indirect
github.com/chromedp/sysutil v1.1.0 // indirect github.com/chromedp/sysutil v1.1.0 // indirect
github.com/go-json-experiment/json v0.0.0-20260214004413-d219187c3433 // indirect github.com/go-json-experiment/json v0.0.0-20260214004413-d219187c3433 // indirect
github.com/gobwas/httphead v0.1.0 // indirect github.com/gobwas/httphead v0.1.0 // indirect
@ -25,10 +26,10 @@ require (
github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
github.com/jackc/pgx/v5 v5.9.2 // indirect github.com/jackc/pgx/v5 v5.10.0 // indirect
github.com/kr/text v0.2.0 // indirect github.com/kr/text v0.2.0 // indirect
github.com/spf13/pflag v1.0.9 // indirect github.com/spf13/pflag v1.0.9 // indirect
golang.org/x/mod v0.34.0 // indirect golang.org/x/mod v0.37.0 // indirect
golang.org/x/sys v0.44.0 // indirect golang.org/x/sys v0.44.0 // indirect
golang.org/x/text v0.36.0 // indirect golang.org/x/text v0.36.0 // indirect
) )

10
go.sum
View File

@ -2,6 +2,8 @@ connectrpc.com/connect v1.20.0 h1:6TNDAB+WeNd2uolWNlYczB5E0KNNaVMNUEx8JEUsPmQ=
connectrpc.com/connect v1.20.0/go.mod h1:A2ygJrukXwWy32vkCAAHNVguZrqZ+jeZ9rGRnGR4dN4= connectrpc.com/connect v1.20.0/go.mod h1:A2ygJrukXwWy32vkCAAHNVguZrqZ+jeZ9rGRnGR4dN4=
git.dev.alexdunmow.com/block/core v0.18.2 h1:+3OfZ424yoc1k1CucXYARk8TBkh8Z693HRkhf5Ci2wU= git.dev.alexdunmow.com/block/core v0.18.2 h1:+3OfZ424yoc1k1CucXYARk8TBkh8Z693HRkhf5Ci2wU=
git.dev.alexdunmow.com/block/core v0.18.2/go.mod h1:GGuUu826AoJepC/hKLGJ7BX3PQaDss9ueCT0se6Ao2w= git.dev.alexdunmow.com/block/core v0.18.2/go.mod h1:GGuUu826AoJepC/hKLGJ7BX3PQaDss9ueCT0se6Ao2w=
git.dev.alexdunmow.com/block/pluginsdk v0.1.0 h1:Dgbt8Q5b+1o3HdftQ7yhV2byWI5q3exiN9oXhwz2MjM=
git.dev.alexdunmow.com/block/pluginsdk v0.1.0/go.mod h1:uz6oRurbuHdTcUxg47ymVgBqRARKlpXp1JIziXevzms=
github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk=
github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/chromedp/cdproto v0.0.0-20260321001828-e3e3800016bc h1:wkN/LMi5vc60pBRWx6qpbk/aEvq3/ZVNpnMvsw8PVVU= github.com/chromedp/cdproto v0.0.0-20260321001828-e3e3800016bc h1:wkN/LMi5vc60pBRWx6qpbk/aEvq3/ZVNpnMvsw8PVVU=
@ -33,8 +35,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
github.com/jackc/pgx/v5 v5.9.2 h1:3ZhOzMWnR4yJ+RW1XImIPsD1aNSz4T4fyP7zlQb56hw= github.com/jackc/pgx/v5 v5.10.0 h1:VhSvgU2jSli8o3AqIEOTJr7rZwAEUVo4E4XhR94Zfr0=
github.com/jackc/pgx/v5 v5.9.2/go.mod h1:mal1tBGAFfLHvZzaYh77YS/eC6IX9OWbRV1QIIM0Jn4= github.com/jackc/pgx/v5 v5.10.0/go.mod h1:mal1tBGAFfLHvZzaYh77YS/eC6IX9OWbRV1QIIM0Jn4=
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
github.com/klauspost/compress v1.18.6 h1:2jupLlAwFm95+YDR+NwD2MEfFO9d4z4Prjl1XXDjuao= github.com/klauspost/compress v1.18.6 h1:2jupLlAwFm95+YDR+NwD2MEfFO9d4z4Prjl1XXDjuao=
@ -64,8 +66,8 @@ github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD
github.com/tetratelabs/wazero v1.12.0 h1:DuWcpNu/FzgEXgGBDp8J1Spc+CWOvvtvVyjKlaZopYU= github.com/tetratelabs/wazero v1.12.0 h1:DuWcpNu/FzgEXgGBDp8J1Spc+CWOvvtvVyjKlaZopYU=
github.com/tetratelabs/wazero v1.12.0/go.mod h1:LvKtzl2RqO4gyF27BiXU+nKAjcV8f38U+kP/q2vgxh0= github.com/tetratelabs/wazero v1.12.0/go.mod h1:LvKtzl2RqO4gyF27BiXU+nKAjcV8f38U+kP/q2vgxh0=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

View File

@ -11,8 +11,8 @@ import (
"sort" "sort"
"strconv" "strconv"
abiv1 "git.dev.alexdunmow.com/block/core/abi/v1" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1"
core "git.dev.alexdunmow.com/block/core/plugin" core "git.dev.alexdunmow.com/block/pluginsdk/plugin"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )

View File

@ -8,8 +8,8 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
abiv1 "git.dev.alexdunmow.com/block/core/abi/v1" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1"
core "git.dev.alexdunmow.com/block/core/plugin" core "git.dev.alexdunmow.com/block/pluginsdk/plugin"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
) )

View File

@ -6,7 +6,7 @@ import (
"path/filepath" "path/filepath"
"testing" "testing"
abiv1 "git.dev.alexdunmow.com/block/core/abi/v1" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1"
) )
// writeFixture lays out a minimal codeless plugin repo. // writeFixture lays out a minimal codeless plugin repo.

View File

@ -15,7 +15,7 @@ import (
"fmt" "fmt"
"os" "os"
abiv1 "git.dev.alexdunmow.com/block/core/abi/v1" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1"
"github.com/tetratelabs/wazero" "github.com/tetratelabs/wazero"
"github.com/tetratelabs/wazero/api" "github.com/tetratelabs/wazero/api"
"github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1"

View File

@ -3,7 +3,7 @@ package bnp
import ( import (
"testing" "testing"
abiv1 "git.dev.alexdunmow.com/block/core/abi/v1" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1"
) )
// TestApplyManifestYAMLSupplementsWithoutWiping proves the WO-WZ-021 mixed-form // TestApplyManifestYAMLSupplementsWithoutWiping proves the WO-WZ-021 mixed-form

View File

@ -12,7 +12,7 @@ import (
"slices" "slices"
"strings" "strings"
abiv1 "git.dev.alexdunmow.com/block/core/abi/v1" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1"
"github.com/klauspost/compress/zstd" "github.com/klauspost/compress/zstd"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )