diff --git a/.github/scripts/perf-ir-hash-selftest.sh b/.github/scripts/perf-ir-hash-selftest.sh index d515fbe..494edea 100755 --- a/.github/scripts/perf-ir-hash-selftest.sh +++ b/.github/scripts/perf-ir-hash-selftest.sh @@ -89,8 +89,11 @@ fi g() { git -C "$1" -c user.name=selftest -c user.email=selftest@example.invalid -c commit.gpgsign=false \ -c core.hooksPath=/dev/null "${@:2}"; } +# set_json +set_json() { jq "$2" "$1" > "$1.new" && mv "$1.new" "$1"; } # The released repo: core-wasm's release, then a later SDK release that also -# changed the core, so each tag names a tree of its own. +# changed the core, so each tag names a tree of its own. The core's tag carries +# a dependenciesMeta, so a scenario can change or drop it. origin=$work/origin tree "$origin" cp "$scripts/../../release-please-config.json" "$scripts/../../.release-please-manifest.json" "$origin/" @@ -98,6 +101,7 @@ sdk_tag=cachekit-v$(jq -r '.["packages/cachekit"]' "$origin/.release-please-mani wasm_tag=cachekit-core-wasm-v$(jq -r '.["packages/cachekit-core-wasm"]' "$origin/.release-please-manifest.json") sdk=packages/cachekit/dist/index.js glue=packages/cachekit-core-wasm/pkg/glue.js added=packages/cachekit-core-wasm/pkg/added.js wasm=packages/cachekit-core-wasm +set_json "$origin/$wasm/package.json" '.dependenciesMeta = {"y": {"injected": true}}' g "$origin" init -q -b main g "$origin" add -A g "$origin" commit -q -m 'core-wasm release' @@ -106,8 +110,6 @@ echo '// SDK release' | tee -a "$origin/$sdk" >> "$origin/$glue" g "$origin" commit -q -am 'SDK release' g "$origin" tag "$sdk_tag" -# set_json -set_json() { jq "$2" "$1" > "$1.new" && mv "$1.new" "$1"; } # pick ...: append to each # on main after the releases (and run $DRIFT on the repo, if set), then open # the PR. A release PR edits what release-please edits: the package's version, @@ -144,6 +146,13 @@ core_api() { set_json "$1/$wasm/package.json" '.devDependencies = {"x": "^2.0.0"}' echo "WORKLOADS['added-since-tag'] = WORKLOADS.keygen;" >> "$1/packages/cachekit/bench/ir-workload.mjs" } +# A core change since its tag to dependenciesMeta alone, which the head's +# lockfile records like the dependency fields: changed, or dropped. +core_meta() { + set_json "$1/$wasm/package.json" '.dependenciesMeta = {"x": {"injected": true}}' + echo '# dependenciesMeta' >> "$1/pnpm-lock.yaml" +} +core_meta_dropped() { set_json "$1/$wasm/package.json" 'del(.dependenciesMeta)'; } out() { sed -n "s/^$2=//p" "$work/$1-out/base"; } assert() { # assert