-
Notifications
You must be signed in to change notification settings - Fork 602
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add test:multiverse:gem_manifest rake task #1890
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A new `test:multiverse:gem_manifest` rake task has been added to produce a complete list of every top level (no dependencies) gem specified by all of the Multiverse's `Gemfile.x` files so that we can have a complete manifest of all versions that would be fetched at any given moment. This works by leveraging `bundle lock` which produces a `Gemfile.lock` file without actually installing anything.
$ brake test:multiverse:gem_manifest
Processing suite active_record...(0.415 secs)
Processing suite active_record_pg...(4.728 secs)
Processing suite activemerchant...(1.603 secs)
Processing suite agent_only...(1.193 secs)
Processing suite bare...(0.433 secs)
Processing suite bunny...(3.644 secs)
Processing suite capistrano...(2.634 secs)
Processing suite capistrano2...(1.575 secs)
Processing suite concurrent_ruby...(2.391 secs)
Processing suite config_file_loading...(2.463 secs)
Processing suite curb...(2.585 secs)
Processing suite deferred_instrumentation...(3.681 secs)
Processing suite delayed_job...(4.557 secs)
Processing suite elasticsearch...(3.188 secs)
Processing suite excon...(2.576 secs)
Processing suite grape...(3.066 secs)
Processing suite grpc...(1.462 secs)
Processing suite high_security...(1.244 secs)
Processing suite httpclient...(2.752 secs)
Processing suite httprb...(4.072 secs)
Processing suite infinite_tracing...(0.437 secs)
Processing suite json...(1.255 secs)
Processing suite logger...(0.431 secs)
Processing suite marshalling...(1.261 secs)
Processing suite memcache...(10.747 secs)
Processing suite mongo...(7.096 secs)
Processing suite net_http...(1.285 secs)
Processing suite padrino...(3.289 secs)
Processing suite rack...(7.716 secs)
Processing suite rails...(8.363 secs)
Processing suite rails_prepend...(7.633 secs)
Processing suite rake...(7.068 secs)
Processing suite redis...(3.738 secs)
Processing suite resque...(4.097 secs)
Processing suite sequel...(2.602 secs)
Processing suite sidekiq...(6.352 secs)
Processing suite sinatra...(4.96 secs)
Processing suite sinatra_agent_disabled...(4.92 secs)
Processing suite thread...(0.455 secs)
Processing suite tilt...(1.532 secs)
Processing suite typhoeus...(5.097 secs)
Processing suite unicorn...(4.038 secs)
Processing suite yajl...(4.883 secs)
Generating and parsing Gemfile.lock files took 149.522 secs total
Bundling the Multiverse would fetch these gems:
-------------------------------------------------
actioncable => ["7.0.4.3", "6.1.7.3"]
actionmailbox => ["7.0.4.3", "6.1.7.3"]
actionmailer => ["7.0.4.3", "6.1.7.3", "2.3.2"]
actionpack => ["7.0.4.3", "6.1.7.3", "2.3.2"]
actiontext => ["7.0.4.3", "6.1.7.3"]
actionview => ["7.0.4.3", "6.1.7.3"]
activejob => ["7.0.4.3", "6.1.7.3"]
activemerchant => ["1.126.0"]
activemodel => ["7.0.4.3", "6.1.7.3", "6.0.6.1"]
activerecord => ["7.0.4.3", "6.1.7.3", "2.3.2"]
activeresource => ["2.3.2"]
activestorage => ["7.0.4.3", "6.1.7.3"]
activesupport => ["7.0.4.3", "6.1.7.3", "6.0.6.1", "3.1.12", "2.3.2"]
addressable => ["2.8.1"]
airbrussh => ["1.4.1"]
amq-protocol => ["2.3.2"]
bson => ["4.15.0"]
builder => ["3.2.4"]
bunny => ["2.20.3", "2.19.0", "2.9.2"]
capistrano => ["3.17.2", "2.15.9"]
concurrent-ruby => ["1.2.2", "1.1.10"]
connection_pool => ["2.3.0"]
crass => ["1.0.6"]
curb => ["1.0.5"]
dalli => ["3.2.4", "3.2.0", "3.1.6", "3.1.0", "3.0.6", "2.7.11"]
date => ["3.3.3"]
delayed_job => ["4.1.11"]
delayed_job_active_record => ["4.1.7"]
delayed_job_mongoid => ["2.3.1"]
domain_name => ["0.5.20190701"]
dry-core => ["1.0.0"]
dry-inflector => ["1.0.0"]
dry-logic => ["1.5.0"]
dry-types => ["1.7.1"]
elastic-transport => ["8.2.0"]
elasticsearch => ["8.6.0", "7.17.7"]
elasticsearch-api => ["8.6.0", "7.17.7"]
elasticsearch-transport => ["7.17.7"]
erubi => ["1.12.0"]
ethon => ["0.16.0"]
excon => ["0.99.0", "0.56.0"]
fakefs => ["2.4.0"]
faraday => ["2.7.4", "1.10.3"]
faraday-em_http => ["1.0.0"]
faraday-em_synchrony => ["1.0.0"]
faraday-excon => ["1.1.0"]
faraday-httpclient => ["1.0.1"]
faraday-multipart => ["1.0.4"]
faraday-net_http => ["3.0.2", "1.0.1"]
faraday-net_http_persistent => ["1.2.0"]
faraday-patron => ["1.0.0"]
faraday-rack => ["1.0.0"]
faraday-retry => ["1.0.3"]
ffi => ["1.15.5"]
ffi-compiler => ["1.0.1"]
globalid => ["1.1.0"]
google-protobuf => ["3.22.2-x86_64-darwin"]
googleapis-common-protos-types => ["1.5.0"]
grape => ["1.7.0"]
grpc => ["1.52.0-x86_64-darwin"]
haml => ["5.1.2", "6.1.1"]
haml-rails => ["2.1.0"]
highline => ["2.1.0"]
http => ["5.1.1", "5.0.4"]
http-cookie => ["1.0.5"]
http-form_data => ["2.3.0"]
httpclient => ["2.8.3"]
i18n => ["1.12.0", "0.7.0"]
json => ["2.6.3"]
kgio => ["2.11.4"]
llhttp-ffi => ["0.4.0"]
loofah => ["2.19.1"]
mail => ["2.8.1"]
marcel => ["1.0.2"]
memcache-client => ["1.8.5"]
method_source => ["1.0.0"]
mime-types => ["3.4.1"]
mime-types-data => ["3.2023.0218.1"]
mini_mime => ["1.1.2"]
minitest => ["5.2.3", "5.1.0", "5.3.3", "5.18.0"]
moneta => ["1.1.1"]
mongo => ["2.18.2", "2.17.3", "2.15.1", "2.14.1", "2.12.4"]
mongoid => ["7.5.2"]
mongoid-compatibility => ["0.6.0"]
mono_logger => ["1.1.1"]
multi_json => ["1.15.0"]
multipart-post => ["2.3.0"]
mustermann => ["3.0.0", "1.1.2", "2.0.2"]
mustermann-grape => ["1.0.2"]
net-imap => ["0.3.4"]
net-pop => ["0.1.2"]
net-protocol => ["0.2.1"]
net-scp => ["4.0.0"]
net-sftp => ["4.0.0"]
net-smtp => ["0.3.3"]
net-ssh => ["7.1.0"]
net-ssh-gateway => ["2.0.0"]
nio4r => ["2.5.8"]
nokogiri => ["1.14.2-x86_64-darwin"]
padrino => ["0.15.3", "0.15.1"]
padrino-admin => ["0.15.3", "0.15.1"]
padrino-cache => ["0.15.3", "0.15.1"]
padrino-core => ["0.15.3", "0.15.1"]
padrino-gen => ["0.15.3", "0.15.1"]
padrino-helpers => ["0.15.3", "0.15.1"]
padrino-mailer => ["0.15.3", "0.15.1"]
padrino-support => ["0.15.3", "0.15.1"]
pg => ["1.4.6"]
psych => ["4.0.6", "3.3.4"]
public_suffix => ["5.0.1"]
puma => ["6.1.1", "5.6.5", "4.3.12", "3.12.6"]
racc => ["1.6.2"]
rack => ["3.0.6.1", "2.0.9.3", "2.2.6.4", "1.6.13", "2.2.4"]
rack-accept => ["0.4.5"]
rack-protection => ["3.0.5", "2.1.0", "1.5.5", "2.2.4", "2.0.8.1"]
rack-test => ["2.1.0"]
rails => ["7.0.4.3", "6.1.7.3", "2.3.2"]
rails-dom-testing => ["2.0.3"]
rails-html-sanitizer => ["1.5.0"]
railties => ["7.0.4.3", "6.1.7.3"]
raindrops => ["0.20.1"]
rake => ["13.0.6", "12.3.3"]
rbtree => ["0.4.6"]
redis => ["5.0.6", "4.8.1", "3.3.5"]
redis-client => ["0.14.0"]
redis-namespace => ["1.10.0"]
resque => ["2.5.0", "2.2.1", "1.27.4"]
rexml => ["3.2.5"]
ruby2_keywords => ["0.0.5"]
sequel => ["5.66.0", "5.58.0"]
set => ["1.0.3"]
sidekiq => ["7.0.7", "6.4.2", "5.0.5", "4.2.10"]
sinatra => ["3.0.5", "2.1.0", "1.4.8", "2.2.4", "2.0.8.1"]
sorted_set => ["1.0.3"]
sprockets => ["4.2.0"]
sprockets-rails => ["3.4.2"]
sqlite3 => ["1.4.4", "1.6.1-x86_64-darwin"]
sshkit => ["1.16.0"]
stringio => ["3.0.5"]
temple => ["0.10.0"]
thor => ["1.2.1"]
thread_safe => ["0.3.6"]
tilt => ["2.1.0"]
timeout => ["0.3.2"]
typhoeus => ["1.4.0", "1.3.1"]
tzinfo => ["2.0.6", "1.2.11"]
unf => ["0.1.4"]
unf_ext => ["0.0.8.2"]
unicorn => ["6.1.0", "4.9.0"]
vegas => ["0.1.11"]
websocket-driver => ["0.7.5"]
websocket-extensions => ["0.1.5"]
yajl-ruby => ["1.4.3", "1.3.1", "1.2.3"]
zeitwerk => ["2.6.7"] |
The `test:multiverse:gem_manifest` rake task has been sped up so that it instead of taking ~2.5 minutes, it'll only take ~3.5 seconds. This speedup is achieved by not concerning ourselves with twiddle wakka based versions that we are already aware of (considering them to be specific enough already) and simply taking a single trip to RubyGems.org via Bundler in order to fetch all of the "latest" version numbers for each core tech gem.
SimpleCov Report
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A new
test:multiverse:gem_manifest
rake task has been added to produce a complete list of every top level (no dependencies) gem specified by all of the Multiverse'sGemfile.x
files so that we can have a complete manifest of all versions that would be fetched at any given moment. This works by leveragingbundle lock
which produces aGemfile.lock
file without actually installing anything.