RubyGems Metadata Extraction
~1-3 MRs)
Implementation plan (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_metadata
record 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.gem
file) 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
Gem
module 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