You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A full RubyGems mirror generated by gem mirror is not easy to consume - Both gem install and bundle fetches tons of gemspec.rz files if a faster index is not found (previously /api/v1/dependencies, now superseded by /versions + /info/), making a local mirror actually much slower even under terrible availability of rubygems.org (e.g. from mainland China).
If gem mirror could also fetch the versions file and populate the /info/ directory, downstream mirror sites will be much easier to use.
The text was updated successfully, but these errors were encountered:
I took a look at the existing code and it seems too entangled for me to handle. I hope someone from Ruby could take on this.
My ideas are:
Fetch /versions unconditionally and either:
Generate /versions.md5sum file so we (mirror sites) can serve its content as the ETag value for the /versions file, to maintain compatibility with Bundler 2.4.
Save the ETag server header to /versions.md5sum which may be even more compatible.
For every gem, fetch /info/#{gem.name} if either:
The target file is missing.
A new version of the gem is being fetched.
For every info file, delete it if deletion is enabled and the corresponding gem has gone.
@iBug Share one of our practices, which is to redirect the /info/ directory to the official address, so that no matter what package is downloaded and installed, the original metadata will be accessed.
According to issues like:
A full RubyGems mirror generated by
gem mirror
is not easy to consume - Bothgem install
andbundle
fetches tons ofgemspec.rz
files if a faster index is not found (previously/api/v1/dependencies
, now superseded by/versions
+/info/
), making a local mirror actually much slower even under terrible availability ofrubygems.org
(e.g. from mainland China).If
gem mirror
could also fetch theversions
file and populate the/info/
directory, downstream mirror sites will be much easier to use.The text was updated successfully, but these errors were encountered: