-
Notifications
You must be signed in to change notification settings - Fork 373
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
Split gemfiles for each runtime #4112
Conversation
e4ce6d9
to
48aa93a
Compare
BenchmarksBenchmark execution time: 2024-11-14 03:51:19 Comparing candidate commit 4d537f3 in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 28 metrics, 2 unstable metrics. scenario:tracing - Propagation - Datadog
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4112 +/- ##
==========================================
- Coverage 97.78% 97.78% -0.01%
==========================================
Files 1350 1350
Lines 81063 81079 +16
Branches 4085 4085
==========================================
+ Hits 79270 79282 +12
- Misses 1793 1797 +4 ☔ View full report in Codecov by Sentry. |
47ee77e
to
c771a9b
Compare
c771a9b
to
4d537f3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍🏼
Motivation:
The default behaviour for appraisal does not fit well with our requirements.
Our pain using appraisal
Appraisals
file, because theself
object isAppraisal::AppraisalFile
already been evaluated.eval_gemfile
(which is important to split gemfiles for each ruby version)Gemfile
at root, and creating gemfile symlink of each ruby version to avoid lockfile conflict.bundle exec appraisal install
returns false positive result about local gems satisfied the lockfile ends up missing dependencies.What does this PR do?
Gemfile
at root to its own gemfile for each ruby runtime andeval_gemfile
dynamicallyappraisal/generate.rb
(wrapped withbundle exec rake dependency:generate
to replacebundle exec appraisal generate
) contains our customize logic and is equivalent withAppraisals
.We are still using appraisal in terms of gemfile formatting (
bundle exec rake dependency:generate
andbundle exec appraisal generate
are creating the EXACT same content), hence theappraisal
gem cannot be removed yetThe changes from this PR makes us easier to customize the behaviour for gemfiles, and opens up the possibility to trim down the bloated groups for scaling.