Project

General

Profile

« Previous | Next » 

Revision 7285e764

Added by deivid (David Rodríguez) over 1 year ago

Fix truffleruby removing gems from lockfile

When resolving on truffleruby, and multiple platforms are included in
the lockfile, Bundler will not respect existing platforms, but always
force ruby variants. That means removal of existing version specific
variants, introducing lockfile churn between implementations.

To prevent this, we introduce the distinction between
Dependency#force_ruby_platform, only settable via Gemfile, and
Dependency#default_force_ruby_platform, which is always true on
truffleruby for certain dependency names. This way, when resolving
lockfile gems for other platforms on truffleruby, we keep platform
specific variants in the lockfile.

However, that introduces the problem that if only platform specific
variants are locked in the lockfile, Bundler won't be able to
materialize on truffleruby because the generic variant will be missing.
To fix this additional problem, we make sure the generic "ruby" platform
is always added when resolving on truffleruby.