Skip to content

fix(splice): curate memory floors for Splice 0.9.0 and run CI on catalogue changes - #363

Merged
zheli merged 2 commits into
mainfrom
srikanth/fix-splice-090-memory-floors
Oct 22, 2026
Merged

zheli merged 2 commits into
mainfrom
srikanth/fix-splice-090-memory-floors

Conversation

@srikanth-bitdynamics

Copy link
Copy Markdown
Collaborator

Why

go test ./internal/localnet/ fails on main:

TestSpliceMemoryFloors_NeverBelowDockerGate: splice.RecommendedMemoryFor("0.9.0") = 0 < MinMemoryFor = 4000000000

#353 catalogued Splice 0.9.0 without min_memory_bytes / recommended_memory_bytes. It is the only 0.9 entry, so there is no same-major floor to inherit. As a result, for localnet up --version 0.9.0 (CLI and Web UI pre-flight both use splice.MinMemoryFor / RecommendedMemoryFor):

  • the memory gate falls back to the 4 GB default instead of 8 GB, and
  • the low-memory warning is disabled (RecommendedMemoryFor returns 0).

This wasn't caught because CI's path filters don't include internal/splice/versions.json. The bot PR ran only the authorship check, and the merge to main skipped CI as well.

What

  • 0.9.0 floors: set to 8 GB minimum and 12 GB recommended, the same as 0.7.x/0.8.x. Upstream 0.9.0's cluster/compose/localnet/resource-constraints.yaml is identical to 0.8.1's (13 limits, 13.16 GiB total).
  • TestEveryCataloguedMajorHasCuratedFloor: fails when any catalogued major has no entry with both floors set, so a future new major can't ship with the 4 GB fallback.
  • CI: run the Go suite when internal/splice/versions.json, assets/** or internal/ui/dist/** change. All three are //go:embed inputs to the Go tests. The filters are added to both the pull_request and push lists, so refresh-versions bot PRs now run the tests above.
  • docs/versions.md: the maintainer flow now says that the first entry of a new major needs the floors.

Testing

  • go test ./...: all packages pass.
  • golangci-lint run (v2.12.2): 0 issues.
  • The new test fails against main's versions.json and passes with this change. TestSpliceMemoryFloors_NeverBelowDockerGate does the same.
  • scripts/ci/check-authorship.sh origin/main HEAD: OK.

No CLI/Web UI parity change: both surfaces read the same catalogue functions.

#353 catalogued 0.9.0 without min/recommended memory. It is the only 0.9
entry, so there was no same-major floor to inherit: the pre-flight gate
fell back to the 4 GiB default and the low-memory warning was disabled
(RecommendedMemoryFor = 0). TestSpliceMemoryFloors_NeverBelowDockerGate
has been failing on main since.

Upstream 0.9.0's LocalNet resource-constraints.yaml is identical to
0.8.1's (13 limits, 13.16 GiB total), so use the same 8 GB / 12 GB
floors. Add a catalogue test so a newly catalogued major cannot ship
without a curated floor again.
CI's path filters only matched Go, frontend and a few doc trees, so the
refresh-versions bot PR #353 (versions.json only) ran no Go tests and
merged with TestSpliceMemoryFloors_NeverBelowDockerGate failing; the
push to main skipped CI for the same reason. versions.json, assets/ and
internal/ui/dist/ are all //go:embed inputs to the Go suite, so add them
to both the pull_request and push filters.

Document that the first entry of a new Splice major needs curated
memory floors, which TestEveryCataloguedMajorHasCuratedFloor enforces.
@zheli
zheli merged commit ba28f1d into main Oct 22, 2026
5 checks passed
@zheli
zheli deleted the srikanth/fix-splice-090-memory-floors branch October 22, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants