Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions docs/limitations.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,9 @@ resolved.
multi-instance scenarios.

The preflight check enforces a per-version hard floor: 8 GB for the
0.6 line (0.6.3, 0.6.4, 0.6.9/`latest`, 0.6.10, 0.6.11, the V2 alpha —
and any uncurated 0.6.x tag, which inherits the strictest catalogued
floor for its major), 4 GB for 0.5.18 and only for tags whose major
has no catalogued entry. The 12 GB figure is the coded recommendation
0.6, 0.7, and 0.8 lines (and any uncurated tag on those majors, which
inherits the strictest catalogued floor for its major), 4 GB for
0.5.18 and only for tags whose major has no catalogued entry. The 12 GB figure is the coded recommendation
threshold (`recommended_memory_bytes`) — below it preflight WARNs
but does not refuse.

Expand Down
6 changes: 6 additions & 0 deletions internal/localnet/adapters.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import (
"github.com/bitdynamics-ab/canton-devkit/internal/splice"
v05 "github.com/bitdynamics-ab/canton-devkit/internal/splice/v05"
v06 "github.com/bitdynamics-ab/canton-devkit/internal/splice/v06"
v07 "github.com/bitdynamics-ab/canton-devkit/internal/splice/v07"
v08 "github.com/bitdynamics-ab/canton-devkit/internal/splice/v08"
)

// adapterFor returns the splice.Adapter implementation for a Version.
Expand All @@ -21,6 +23,10 @@ func adapterFor(v splice.Version) (splice.Adapter, error) {
return v05.New(), nil
case "0.6":
return v06.New(), nil
case "0.7":
return v07.New(), nil
case "0.8":
return v08.New(), nil
default:
return nil, fmt.Errorf("no adapter registered for Splice major %q (tag %s) — this is a canton-devkit bug",
v.Major, v.Tag)
Expand Down
6 changes: 6 additions & 0 deletions internal/localnet/adapters_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,10 @@ func TestCoreServicesFor_VersionsAgree(t *testing.T) {
if !reflect.DeepEqual(v05, v06) {
t.Fatalf("core services drifted between majors: 0.5.18=%v 0.6.4=%v", v05, v06)
}
// 0.7.x and 0.8.x reuse the 0.6.x adapter (identical compose interface),
// so their core-services list must match too.
v08 := CoreServicesFor("0.8.0")
if !reflect.DeepEqual(v06, v08) {
t.Fatalf("core services drifted between majors: 0.6.4=%v 0.8.0=%v", v06, v08)
}
}
23 changes: 23 additions & 0 deletions internal/splice/v07/adapter.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Package v07 implements the Adapter contract for Splice LocalNet 0.7.x.
//
// The cluster/compose/localnet/ tree is unchanged from 0.6.x upstream —
// same compose files, env-file set, profile names, service/port map, and
// the env-var contract the adapter wires (IMAGE_TAG, IMAGE_REPO,
// PARTY_HINT, ALPHA_PROTOCOL_VERSION_ENV, …). So 0.7.x embeds the 0.6.x
// adapter and only relabels its major slot.
package v07

import (
"github.com/bitdynamics-ab/canton-devkit/internal/splice"
v06 "github.com/bitdynamics-ab/canton-devkit/internal/splice/v06"
)

// Adapter is the 0.6.x adapter under the 0.7 major label.
type Adapter struct{ *v06.Adapter }

// New returns a fresh 0.7.x adapter. Stateless — safe to reuse.
func New() *Adapter { return &Adapter{v06.New()} }

func (*Adapter) MajorVersion() string { return "0.7" }

var _ splice.Adapter = (*Adapter)(nil)
23 changes: 23 additions & 0 deletions internal/splice/v08/adapter.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Package v08 implements the Adapter contract for Splice LocalNet 0.8.x.
//
// The cluster/compose/localnet/ tree is unchanged from 0.6.x upstream —
// same compose files, env-file set, profile names, service/port map, and
// the env-var contract the adapter wires (IMAGE_TAG, IMAGE_REPO,
// PARTY_HINT, ALPHA_PROTOCOL_VERSION_ENV, …). So 0.8.x embeds the 0.6.x
// adapter and only relabels its major slot.
package v08

import (
"github.com/bitdynamics-ab/canton-devkit/internal/splice"
v06 "github.com/bitdynamics-ab/canton-devkit/internal/splice/v06"
)

// Adapter is the 0.6.x adapter under the 0.8 major label.
type Adapter struct{ *v06.Adapter }

// New returns a fresh 0.8.x adapter. Stateless — safe to reuse.
func New() *Adapter { return &Adapter{v06.New()} }

func (*Adapter) MajorVersion() string { return "0.8" }

var _ splice.Adapter = (*Adapter)(nil)
92 changes: 91 additions & 1 deletion internal/splice/versions.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "Splice version catalogue. See versions.go for field semantics.",
"_comment": "Maintainer flow: scripts/add-splice-version.sh <tag> resolves the tag → commit, downloads the archive, computes ContentSHA, and appends an entry here. Reviewer checks the diff before merging.",
"latest_alias": "0.6.12",
"latest_alias": "0.8.1",
"versions": [
{
"tag": "0.5.18",
Expand Down Expand Up @@ -66,6 +66,96 @@
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.6.13",
"commit": "52ccdd6841f3eda11fe86313e8cdf9540efedfb7",
"content_sha": "3fdb3d0667923febd80cf0a2ff225ba29acff14276459c195914057b6eee5528",
"size": 184831583,
"major": "0.6",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.6.14",
"commit": "398919a5b13479877fd61587003ba7a4ba00091b",
"content_sha": "3fdb3d0667923febd80cf0a2ff225ba29acff14276459c195914057b6eee5528",
"size": 184835854,
"major": "0.6",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.7.0",
"commit": "a9076eb91f87a9bd9315d2f9e122d6350bdc9d4c",
"content_sha": "3fdb3d0667923febd80cf0a2ff225ba29acff14276459c195914057b6eee5528",
"size": 184005518,
"major": "0.7",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.7.1",
"commit": "c95e1ef5c939cef13cc344d7678f9d2ce2474c6a",
"content_sha": "7391d45fbc7134dd798639c53560282130e342a018bf55d612242b89e4971ec7",
"size": 184037338,
"major": "0.7",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.7.2",
"commit": "b1c3896fb9420d8de48537211a5c7046359c6d4e",
"content_sha": "7391d45fbc7134dd798639c53560282130e342a018bf55d612242b89e4971ec7",
"size": 184045327,
"major": "0.7",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.7.3",
"commit": "0dd6b9263510007e831bcc3ca3a44a41aa862a75",
"content_sha": "7391d45fbc7134dd798639c53560282130e342a018bf55d612242b89e4971ec7",
"size": 184041527,
"major": "0.7",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.7.4",
"commit": "e5c3661e7257a024b9f964617fa3f02dcf56d332",
"content_sha": "1cbd1a502f362d284a689af388910ff84d0bbef349beebdd722726b4da7801f6",
"size": 184092361,
"major": "0.7",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.7.5",
"commit": "858a7347aaeb958657b76b0957186102b74e3bd6",
"content_sha": "1cbd1a502f362d284a689af388910ff84d0bbef349beebdd722726b4da7801f6",
"size": 184129682,
"major": "0.7",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.8.0",
"commit": "9330dba9e31b8893bec09ece2f5dbb496fcf17b5",
"content_sha": "899706c4dc722667a998329e0910717544f5c88bcba2b7aed25269275c4c4016",
"size": 199850135,
"major": "0.8",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "0.8.1",
"commit": "fb3c8c8a9259e98cdeb1cffc0cc77eaa7cc69e52",
"content_sha": "899706c4dc722667a998329e0910717544f5c88bcba2b7aed25269275c4c4016",
"size": 199860530,
"major": "0.8",
"min_memory_bytes": 8000000000,
"recommended_memory_bytes": 12000000000
},
{
"tag": "token-standard-v2",
"commit": "de911e38af78ec79b6f0e6a9515e104b1e4c3d62",
Expand Down
2 changes: 2 additions & 0 deletions internal/splice/versions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ func TestSupportsTokenStandardV2(t *testing.T) {
{"0.6.11", true},
{"0.6.12", true},
{"0.7.0", true},
{"0.8.0", true},
{"0.8.1", true},
{"1.0.0", true},
{"token-standard-v2", true},
{"latest", false},
Expand Down
Loading