Skip to content

feat: support gem.coop-exclusive gems in Resolver #50

Description

@cdhagmann

Summary

gem.coop is a community-owned RubyGems-compatible server that mirrors all of rubygems.org in real-time and additionally allows publishing gems into dedicated namespaces.

For mirrored gems, no change is needed — the Resolver already finds them via the rubygems.org API. For gems published only to gem.coop (dedicated namespace feature), rubygems.org has no record and the Resolver returns :unknown.

What needs to change

When the Resolver gets a miss from rubygems.org, fall back to querying the gem.coop API (if it exposes a RubyGems v1-compatible endpoint) before returning :unknown. If gem.coop's API is compatible, this may be a one-line fallback in the resolver; if not, a thin adapter is needed.

Acceptance

  • Gems sourced from gem.coop in a Gemfile.lock resolve correctly when they exist on rubygems.org (no regression)
  • Gems published only to gem.coop resolve to a Project rather than :unknown
  • Resolver fallback is covered by a unit test (VCR cassette)

Notes

  • Same class of work as #8 (GitLab adapter) — v1.x, not a v1.0 blocker.
  • Verify whether gem.coop exposes a RubyGems v1-compatible API before designing the fallback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    v1.xTargeted for a v1.x point release (after v1.0 lands real users)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions