Skip to content

chore: add crates.io metadata to imt-tree, fix ypir/spiral-rs package renames#19

Merged
czarcas7ic merged 4 commits into
mainfrom
adam/p6-p9-lockfile
Apr 10, 2026
Merged

chore: add crates.io metadata to imt-tree, fix ypir/spiral-rs package renames#19
czarcas7ic merged 4 commits into
mainfrom
adam/p6-p9-lockfile

Conversation

@czarcas7ic

@czarcas7ic czarcas7ic commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds description, license (MIT OR Apache-2.0), and repository fields to imt-tree/Cargo.toml for crates.io publication. imt-tree v0.1.0 has been published: https://crates.io/crates/imt-tree
  • Switches all workspace members from path deps (imt-tree = { path = "..." }) to the published crates.io version (imt-tree = "0.1"). A workspace-level [patch.crates-io] redirects to the local source for development. This means downstream consumers (librustvoting) that pull pir-client as a git dep see imt-tree = "0.1" and resolve from crates.io — no more duplicate imt-tree from mismatched sources.
  • Fixes ypir/spiral-rs package renames: adds package = "valar-ypir" / package = "valar-spiral-rs" so cargo resolves the renamed packages in the audited valargroup forks while code keeps the original import names

Context

Sean's review (P6) identified that imt-tree was unregistered on crates.io, creating a namesquatting/supply-chain risk. The mismatched git URL forms across consumers also caused a double-compile in the iOS SDK build. Publishing to crates.io and having all consumers use the published version eliminates both issues.

The valargroup forks of ypir and spiral-rs renamed their packages (ypir -> valar-ypir, spiral-rs -> valar-spiral-rs), which broke fresh cargo update / cargo generate-lockfile for any downstream consumer of pir-client. The package key fix keeps using the audited forks.

Test plan

  • cargo publish --dry-run passes
  • cargo publish succeeded
  • Verified on crates.io: https://crates.io/crates/imt-tree
  • Downstream cargo test --workspace passes in librustvoting (125 tests)
  • grep -c '^name = "imt-tree"' Cargo.lock returns 1 in librustvoting (no duplicate)

Add description, license (MIT OR Apache-2.0), and repository fields
required for crates.io publication.
The valargroup forks renamed their packages (ypir -> valar-ypir,
spiral-rs -> valar-spiral-rs). Add `package` keys so cargo finds the
renamed packages while code continues using the original import names.
Keeps using the audited valargroup forks, not upstream.
@czarcas7ic czarcas7ic force-pushed the adam/p6-p9-lockfile branch from 0a058dc to 2fe0623 Compare April 10, 2026 18:10
@czarcas7ic czarcas7ic changed the title chore: add crates.io metadata to imt-tree chore: add crates.io metadata to imt-tree, fix ypir/spiral-rs package renames Apr 10, 2026
Now that imt-tree v0.1.0 is on crates.io, workspace members depend on
the published version instead of path deps. A workspace-level
[patch.crates-io] redirects to the local source for development.

When downstream consumers (librustvoting) pull pir-client as a git dep,
cargo sees `imt-tree = "0.1"` and resolves from crates.io — no more
duplicate imt-tree from mismatched git vs crates.io sources.
@czarcas7ic czarcas7ic marked this pull request as ready for review April 10, 2026 20:29
Lockfile now reflects:
- imt-tree resolved via [patch.crates-io] to local path
- valar-ypir from valargroup/ypir (was ypir)
- valar-spiral-rs from crates.io (was spiral-rs from git)
@czarcas7ic czarcas7ic merged commit 9e7261c into main Apr 10, 2026
1 check passed
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