Skip to content

RFC: ToolHive Core Shared Library with Package Graduation Criteria#32

Merged
JAORMX merged 2 commits into
mainfrom
rfc/toolhive-core-shared-library
Feb 2, 2026
Merged

RFC: ToolHive Core Shared Library with Package Graduation Criteria#32
JAORMX merged 2 commits into
mainfrom
rfc/toolhive-core-shared-library

Conversation

@JAORMX
Copy link
Copy Markdown
Contributor

@JAORMX JAORMX commented Jan 29, 2026

Summary

Proposes creating toolhive-core, a shared Go library with explicit API stability guarantees for the ToolHive ecosystem. Establishes formal graduation criteria for promoting packages from internal to shared status.

Key Points

  • Graduation criteria: stability (3+ months production), quality (≥80% coverage), dependencies (minimal, stable), governance (sponsorship, RFC)
  • Tier 1 packages: logger, errors, validation, healthcheck, versions, env
  • Based on actual exploration of toolhive, toolhive-registry-server, and dockyard codebases
  • Go 1.25+ minimum version (matching ecosystem)

Problem Addressed

  • dockyard already imports from toolhive (pkg/logger, pkg/container/images, pkg/runner) with no stability guarantees
  • No graduation path for mature internal packages
  • Pattern divergence without documented rationale (e.g., zap vs slog)

Open Questions

  1. Release cadence: Monthly minor releases, or release when ready?
  2. Tier 2 timeline: When should we start evaluating secrets/auth for graduation?
  3. Logger choice: zap (current toolhive) vs slog (stdlib, used by registry-server) vs adapters for both?

🤖 Generated with Claude Code

@JAORMX JAORMX force-pushed the rfc/toolhive-core-shared-library branch 2 times, most recently from 4c745de to ae07bb2 Compare January 29, 2026 11:24
Proposes creating toolhive-core, a shared Go library with explicit API
stability guarantees for the ToolHive ecosystem. Establishes formal
graduation criteria for promoting packages from internal to shared status.

Key points:
- Graduation criteria: stability, quality, dependencies, governance
- Tier 1 packages: logger, errors, validation, healthcheck, versions, env
- Based on actual exploration of toolhive, toolhive-registry-server, dockyard
@JAORMX JAORMX force-pushed the rfc/toolhive-core-shared-library branch from ae07bb2 to cb55ce2 Compare January 29, 2026 11:26
jhrozek
jhrozek previously approved these changes Jan 29, 2026
Copy link
Copy Markdown
Contributor

@jhrozek jhrozek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a good proposal. We'll only have more projects.

Comment thread rfcs/THV-0032-toolhive-core-shared-library.md
Comment thread rfcs/THV-0032-toolhive-core-shared-library.md
Comment thread rfcs/THV-0032-toolhive-core-shared-library.md Outdated
Comment thread rfcs/THV-0032-toolhive-core-shared-library.md
Comment thread rfcs/THV-0032-toolhive-core-shared-library.md
rdimitrov
rdimitrov previously approved these changes Jan 29, 2026
Comment thread rfcs/THV-0032-toolhive-core-shared-library.md
- Add note clarifying operator independence is out of scope (RunConfig
  format stability would need separate consideration)
- Add future sharing opportunities: pkg/oauth refactoring, pkg/networking
  patterns (HTTP builder, endpoint validation)
- Add guiding principle about packages being genuinely reusable
- Add pkg/recovery to Tier 1 immediate graduation candidates
- Add auth/metadata to Tier 2 for protected resource metadata extraction
- Add registry/types, container/verifier, and cache to Tier 3
- Add cache consolidation opportunity note

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@JAORMX JAORMX dismissed stale reviews from rdimitrov and jhrozek via 62d908a January 30, 2026 08:27
@JAORMX JAORMX requested review from jerm-dro and jhrozek February 2, 2026 12:32
@JAORMX JAORMX merged commit c472878 into main Feb 2, 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.

4 participants