fix: scope internal crate names, pin path-dep versions for crates.io publish - #100
Conversation
…publish
The workspace was recently split into agentflare + ponytail +
agent-registry + skill-registry, but nobody completed a crates.io
release since — the release-plz publish step has been failing (even
the scheduled run last night) because path dependencies had no
`version` requirement, which crates.io's publish verification
requires ("all dependencies must have a version requirement
specified when publishing").
- Add `version = ...` to every internal path dependency (root
Cargo.toml's ponytail/agent-registry/skill-registry deps,
skill-registry's agent-registry dep).
- Rename the generic, easily-confused crate names to be
agentflare-scoped: agent-registry -> agentflare-agent-registry,
skill-registry -> agentflare-skill-registry (mirrors mise's own
convention: purely-internal crates get the tool's prefix, while
crates wrapping an independent upstream identity, like ponytail
here mirroring the DietrichGebert/ponytail JS project, don't).
Dependents keep importing them under their original short names via
Cargo's `package = "..."` remap, so no call-site changes were
needed anywhere except skill-registry's own integration test, which
imports its crate under its real name.
`ponytail@0.1.0` and `agent-registry@0.1.0` were already published to
crates.io today under a failed release attempt; `agent-registry`
should be yanked separately (requires crates.io credentials this
session doesn't have) since agentflare-agent-registry replaces it.
📝 WalkthroughWalkthroughThe ChangesCrate renaming and dependency updates
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
crates/skill-registry/Cargo.toml (1)
16-16: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDuplicated version pin risks drift from workspace declaration.
This entry repeats
package,path, andversionforagentflare-agent-registrythat's already declared in the root[workspace.dependencies](Cargo.toml Line 60). Consider using workspace inheritance (agent-registry = { workspace = true }) to keep the version single-sourced.♻️ Suggested refactor
-agent-registry = { package = "agentflare-agent-registry", path = "../agent-registry", version = "0.1.0" } +agent-registry.workspace = true🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@crates/skill-registry/Cargo.toml` at line 16, The `agent-registry` dependency in `skill-registry` is duplicating the `package`, `path`, and `version` settings already defined in the workspace dependencies. Update the `Cargo.toml` entry to use workspace inheritance for `agent-registry` so it is single-sourced from the root `[workspace.dependencies]`, and keep the dependency name aligned with the existing `agent-registry` key.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@crates/skill-registry/Cargo.toml`:
- Line 16: The `agent-registry` dependency in `skill-registry` is duplicating
the `package`, `path`, and `version` settings already defined in the workspace
dependencies. Update the `Cargo.toml` entry to use workspace inheritance for
`agent-registry` so it is single-sourced from the root
`[workspace.dependencies]`, and keep the dependency name aligned with the
existing `agent-registry` key.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: a1a37d2d-adc5-4619-a31c-f9d6dd51d703
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (4)
Cargo.tomlcrates/agent-registry/Cargo.tomlcrates/skill-registry/Cargo.tomlcrates/skill-registry/tests/golden_queries.rs
Summary
The workspace was recently split into
agentflare+ponytail+agent-registry+skill-registry, but no crates.io release has completed since —release-plz's publish step has been failing (including last night's scheduled run) because path dependencies lacked aversionrequirement, which crates.io's publish verification requires:version = ...to every internal path dependency (rootCargo.toml'sponytail/agent-registry/skill-registrydeps,skill-registry's ownagent-registrydep).agent-registry->agentflare-agent-registry,skill-registry->agentflare-skill-registry. Mirrors mise's convention (checked their actual repo): purely-internal crates get the tool's prefix (mise-sigstore,mise-shim), while crates wrapping an independent upstream identity don't (vfox,aqua-registry) —ponytailhere is the latter case (it mirrors the separateDietrichGebert/ponytailJS project), so it keeps its name.package = "..."remap, so no call-site changes were needed anywhere exceptskill-registry's own integration test (which imports its crate under its real package name, not a dependency alias).Context
ponytail@0.1.0andagent-registry@0.1.0are already published to crates.io from today's release attempt.agent-registryshould be yanked separately once this merges (needs crates.io credentials):cargo yank --version 0.1.0 agent-registry.Test plan
cargo build --workspacecargo test --workspace(190 passed, no regressions)cargo clippy --workspace --all-targets— no new errorscargo publish --dry-runforagentflare-agent-registrysucceedscargo publish --dry-runforagentflare-skill-registryfails only becauseagentflare-agent-registryisn't on crates.io yet (expected — release-plz publishes in dependency order, same as it did for ponytail -> agent-registry today)Summary by CodeRabbit