Skip to content

Copilot content addressable test - #191

Draft
jenshenny wants to merge 9 commits into
masterfrom
copilot-content-addressable-test
Draft

Copilot content addressable test#191
jenshenny wants to merge 9 commits into
masterfrom
copilot-content-addressable-test

Conversation

@jenshenny

Copy link
Copy Markdown

What was the end-user or developer problem that led to this PR?

What is your fix for the problem, implemented in this PR?

Make sure the following tasks are checked

OughtPuts and others added 9 commits August 28, 2026 00:27
Co-authored-by: Jenny Shen <jenny.shen@shopify.com>
Co-authored-by: Gira Chawda <gira.chawda@shopify.com>
Co-authored-by: Jenny Shen <jenny.shen@shopify.com>
Co-authored-by: Jenny Shen <jenny.shen@shopify.com>
Co-authored-by: Jenny Shen <jenny.shen@shopify.com>
…metadata

Co-authored-by: Gira Chawda <gira.chawda@shopify.com>
Co-authored-by: Jenny Shen <jenny.shen@shopify.com>
…al cache

Co-authored-by: Jenny Shen <jenny.shen@shopify.com>
Assisted-By: devx/54c45e18-0bd1-4563-826a-f8cbc21a3b90
Assisted-By: devx/54c45e18-0bd1-4563-826a-f8cbc21a3b90
…iants

Assisted-By: devx/25d3c4be-88ab-425e-a76b-08a00d8e9d71

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds content-addressable platform gems keyed by SHA-256 prefixes and Ruby ABI metadata across RubyGems and Bundler.

Changes:

  • Adds content-address-aware building, installation, fetching, resolution, and compact-index handling.
  • Extends specifications, tuples, lockfiles, and CLI commands with content-address and Ruby ABI data.
  • Adds broad RubyGems and Bundler test coverage.

Reviewed changes

Copilot reviewed 83 out of 83 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
Manifest.txt Packages the new content-address module.
lib/rubygems.rb Autoloads content-address support.
lib/rubygems/basic_specification.rb Uses content addresses in full names.
lib/rubygems/content_address.rb Defines address validation and applicability.
lib/rubygems/specification.rb Adds content-address and Ruby ABI metadata.
lib/rubygems/stub_specification.rb Parses content-addressed gemspec stubs.
lib/rubygems/name_tuple.rb Extends tuples with address and ABI fields.
lib/rubygems/package.rb Builds and verifies addressed packages.
lib/rubygems/package_task.rb Moves the filename returned by package builds.
lib/rubygems/installer.rb Assigns verified addresses during installation.
lib/rubygems/source.rb Decodes compact-index content-address metadata.
lib/rubygems/source/local.rb Verifies local addressed packages.
lib/rubygems/spec_fetcher.rb Decodes and filters addressed tuples.
lib/rubygems/compact_index_client.rb Renames the compact-index suffix field.
lib/rubygems/safe_marshal.rb Permits tuple address and ABI fields.
lib/rubygems/query_utils.rb Displays platform and ABI variants.
lib/rubygems/resolver.rb Prefers addressed resolver candidates.
lib/rubygems/resolver/specification.rb Adds resolver address metadata.
lib/rubygems/resolver/spec_specification.rb Delegates specification addresses.
lib/rubygems/resolver/installer_set.rb Preserves local package addresses.
lib/rubygems/resolver/index_specification.rb Distinguishes addressed index specifications.
lib/rubygems/resolver/api_specification.rb Interprets compact-index address suffixes.
lib/rubygems/resolver/api_set.rb Passes suffix metadata to API specifications.
lib/rubygems/commands/build_command.rb Adds the --ruby-abi build option.
lib/rubygems/commands/dependency_command.rb Decodes addressed remote dependencies.
lib/rubygems/commands/outdated_command.rb Uses addresses for cooldown timestamps.
lib/rubygems/commands/push_command.rb Adds platform and ABI package selection.
lib/rubygems/commands/update_command.rb Handles addressed cooldown tuples.
lib/rubygems/commands/yank_command.rb Sends Ruby ABI data when yanking.
lib/bundler/endpoint_specification.rb Decodes addressed endpoint specifications.
lib/bundler/fetcher.rb Treats index field three as a suffix.
lib/bundler/lazy_specification.rb Persists addresses through locking.
lib/bundler/lockfile_parser.rb Parses addressed lockfile entries.
lib/bundler/match_platform.rb Prefers compatible addressed variants.
lib/bundler/remote_specification.rb Adds address-aware remote names.
lib/bundler/resolver.rb Retains distinct addressed variants.
lib/bundler/rubygems_ext.rb Adds cross-version compatibility extensions.
lib/bundler/rubygems_gem_installer.rb Assigns addresses in Bundler installs.
lib/bundler/rubygems_integration.rb Reads and verifies package addresses.
lib/bundler/source/rubygems.rb Preserves addresses after downloads.
lib/bundler/stub_specification.rb Copies addresses from RubyGems stubs.
spec/bundler/endpoint_specification_spec.rb Tests endpoint address metadata.
spec/bundler/lockfile_parser_spec.rb Tests addressed lockfile parsing.
spec/bundler/override_spec.rb Updates override test doubles.
spec/bundler/remote_specification_spec.rb Tests legacy remote suffix handling.
spec/install/cooldown_spec.rb Migrates cooldown tests to the v2 index.
spec/install/gemfile/content_addressable_spec.rb Tests addressed Bundler installation flows.
spec/other/ext_spec.rb Tests address-aware lock names.
spec/support/artifice/compact_index_cooldown.rb Removes the old cooldown endpoint.
spec/support/artifice/compact_index_v2.rb Activates the v2 compact-index endpoint.
spec/support/artifice/helpers/compact_index.rb Uses full names for checksums.
spec/support/artifice/helpers/compact_index_cooldown.rb Removes the old cooldown helper.
spec/support/artifice/helpers/compact_index_v2.rb Adds addressed compact-index fixtures.
spec/support/builders.rb Supports building Ruby ABI variants.
test/rubygems/helper.rb Adds addressed gem fixture helpers.
test/rubygems/test_gem_commands_build_command.rb Tests ABI-scoped builds.
test/rubygems/test_gem_commands_dependency_command.rb Tests addressed dependency output.
test/rubygems/test_gem_commands_fetch_command.rb Tests addressed fetching.
test/rubygems/test_gem_commands_info_command.rb Tests platform and ABI details.
test/rubygems/test_gem_commands_list_command.rb Tests addressed remote listings.
test/rubygems/test_gem_commands_outdated_command.rb Tests addressed cooldown reporting.
test/rubygems/test_gem_commands_push_command.rb Tests push selectors and ambiguity handling.
test/rubygems/test_gem_commands_search_command.rb Tests addressed search output.
test/rubygems/test_gem_commands_update_command.rb Tests addressed updates and cooldowns.
test/rubygems/test_gem_commands_yank_command.rb Tests ABI-aware yanking.
test/rubygems/test_gem_compact_index_client.rb Updates suffix-index assertions.
test/rubygems/test_gem_content_address.rb Tests address recognition and applicability.
test/rubygems/test_gem_dependency_installer.rb Tests local addressed installation.
test/rubygems/test_gem_installer.rb Tests verification and coexistence.
test/rubygems/test_gem_name_tuple.rb Tests extended tuple behavior.
test/rubygems/test_gem_package.rb Tests ABI builds and validation.
test/rubygems/test_gem_package_task.rb Tests returned build filenames.
test/rubygems/test_gem_remote_fetcher.rb Tests addressed download and installation.
test/rubygems/test_gem_resolver.rb Tests addressed candidate preference.
test/rubygems/test_gem_resolver_api_set.rb Tests addressed API-set results.
test/rubygems/test_gem_resolver_api_specification.rb Tests addressed API specifications.
test/rubygems/test_gem_resolver_index_specification.rb Tests addressed index identity.
test/rubygems/test_gem_safe_marshal.rb Tests tuple metadata unmarshalling.
test/rubygems/test_gem_source.rb Tests compact-index metadata decoding.
test/rubygems/test_gem_source_local.rb Tests rejection of mismatched local addresses.
test/rubygems/test_gem_spec_fetcher.rb Tests addressed tuple fetching.
test/rubygems/test_gem_specification.rb Tests ABI derivation and serialization.
test/rubygems/test_gem_stub_specification.rb Tests addressed stub parsing.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread lib/rubygems/stub_specification.rb
Comment thread lib/rubygems/content_address.rb
Comment thread lib/bundler/match_platform.rb
Comment thread lib/rubygems/resolver/api_specification.rb
INFO_NAME = 0
INFO_VERSION = 1
INFO_PLATFORM = 2
INFO_SUFFIX = 2
Comment thread spec/support/artifice/helpers/compact_index_v2.rb
Comment thread lib/bundler/endpoint_specification.rb
Comment thread lib/rubygems/source.rb
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