Rust consumers pin a CultLib revision through cargo git dependencies, which is how Ghostlight, Epiphany, CodexConnector and Odin already consume the core stack. npm and pip cannot take a package from a subdirectory of a git repo at all, which is why the TypeScript and Python consumers vendored forks instead: there was nothing else to depend on. This gives them a versioned artifact. Tagging cultcache-ts-v* or cultcache-py-v* builds, tests and publishes. The tag version must match the manifest version or the workflow refuses rather than shipping a mislabelled artifact. PyPI uses trusted publishing, so no long-lived token is stored; npm needs an NPM_TOKEN secret. cultcache-ts is now @gamecult/cultcache-ts. The scope is not cosmetic: it makes the package unambiguously org-owned on a public registry, and it is what lets CultLib hold the name rather than racing for an unscoped one. CultLib's own cultmesh-ts and cultnet-ts and their imports move with it; all three packages typecheck and cultcache-ts passes 12 of 13 tests, the exception being the cross-runtime store test that shells out to Python, which cannot run on this machine because its Python has no msgpack. Licensing was inconsistent with the repo. cultcache-py declared itself "Private GameCult infrastructure" and cultcache-rs and cultmesh-rs declared nothing, inside a repo whose LICENSE is MIT and whose every other package says MIT. All three now say MIT. That was load-bearing here: a package that calls itself private is not one to push to a public registry. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
21 lines
387 B
TOML
21 lines
387 B
TOML
[package]
|
|
name = "cultmesh-rs"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
license = "MIT"
|
|
publish = false
|
|
|
|
[lib]
|
|
name = "cultmesh_rs"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
anyhow = "1"
|
|
cultcache-rs = { path = "../cultcache-rs" }
|
|
cultnet-rs = { path = "../cultnet-rs" }
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
[dev-dependencies]
|
|
pretty_assertions = "1.4.1"
|
|
rmp-serde = "1"
|
|
tempfile = "3"
|