Skip to content

Understand and document how to safely evolve the Compact Index #6412

@colby-swandale

Description

@colby-swandale

The compact index is critical infrastructure: it's what every Bundler and RubyGems client uses to resolve dependencies. #6380 adds created_at support, which enables dependency cooldowns, but it's not ready to ship. There are too many unknowns about the index itself. Before we can confidently land that, or anything else like platform metadata, we need to understand what we're actually working with.

Right now we don't have good answers to some basic questions: Can we regenerate the compact index on demand? How long does that take across nearly a million gem versions? Who is actually calling it beyond Bundler and RubyGems? What breaks if we change the format? Is the current test infrastructure sufficient to validate changes before they hit production?

@jenshenny and myself are taking this on, starting with Datadog data to map who's actually consuming the index. The goal is a short runbook that makes future compact index changes boring to ship rather than something we have to think twice about.

Open questions:

  • Can we regenerate the compact index from scratch? How long does it take?
  • Who is using the compact index beyond Bundler and RubyGems? (Need Datadog data)
  • What's the right rollout strategy for format changes (in-place or a parallel v2)?
  • Do we have sufficient test coverage to validate compact index changes safely?
  • What's the backwards compatibility guarantee for third-party clients?

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions