The delivery repository's contracts and SDK live under modules/ as mesh-delivery-contracts and mesh-delivery-sdk, their Go module paths renamed to match the folders (the TypeScript names already did), and every importer in mesh-delivery, mesh-catalog, mesh-host, mesh-tools and mesh-sdk follows in the same group: a design as it should be, one path per module, checked by the group's check building every importer. Builds: design 47 G §427, §88 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
20 lines
584 B
Go
20 lines
584 B
Go
package buildstep
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
// goPosition matches a line that starts with a Go file's position, as go vet and the compiler write an error.
|
|
var goPosition = regexp.MustCompile(`^\S+\.go:\d+(:\d+)?: `)
|
|
|
|
var ansiEscape = regexp.MustCompile("\x1b\\[[0-9;]*m")
|
|
|
|
func stripANSI(s string) string { return ansiEscape.ReplaceAllString(s, "") }
|
|
|
|
// tapOk says a line is a passing test's "ok N - name", indented or not.
|
|
func tapOk(l string) bool {
|
|
rest, ok := strings.CutPrefix(strings.TrimSpace(l), "ok ")
|
|
return ok && rest != "" && rest[0] >= '0' && rest[0] <= '9'
|
|
}
|