RubyGems Metadata Extraction
Implementation plan (~1-3 MRs)
Based on initial findings in working with the Gem module, these services might fitting into 1-3 MRs.
-
Packages::RubyGems::MetadataExtractionService- Takes a GemSpec object and a package object and populates thepackages_rubygems_metadatarecord for the package. We also rename the package and set the version here. -
Packages::RubyGems::CreateDependenciesService- Takes a GemSpec object and a package object and populates dependencies, associating them with the package. -
Packages::RubyGems::CreateGemspecService- Takes a GemSpec object and a package object and writes to a new PackageFile object that is associated with that package. -
Packages::RubyGems::ProcessGemService- The service responsible for running all of the above services. It takes a package and a package file (the temporary.gemfile) and by the time it is finished we have fully defined RubyGems package in the registry.
Notes
- See the linked notes below, but it will be possible to use the
Gemmodule to help with the metadata/dependency extraction
References
- Upload notes are here: #216517 (comment 484946959)
- A summary of all routes are listed here: #216517 (comment 485886685)
- Main RubyGems issue: #803
- Investigation issue: #216517 (closed)
Edited by Steve Abrams