lambci / docker-lambda

Docker images and test runners that replicate the live AWS Lambda environment
MIT License
5.83k stars 431 forks source link

use ruby 2.7 bundled bundler #287

Closed timoschilling closed 4 years ago

timoschilling commented 4 years ago

Since version 2.7 Ruby includes a version of Bundler, Lambci should use this version to ensure to use the same version as is used in the AWS Lambda environment.

mhart commented 4 years ago

Hey @timoschilling can you explain this PR a little more? The reason bundler is installed here is so it can be the latest (compatible) version – if there are bugfixes in bundler, then docker-lambda will be able to have the latest version instead of being held back by whatever's on Lambda at the time.

Have you been running into problems with the version of bundler used by docker-lambda?

timoschilling commented 4 years ago

I had an issue with that some month ago, but didn't time the time to make this PR back then.

The source of the problem was to use different bundler version for bundling and production when using gem's from an git source.

And it can be break if bundler 2.2 or 3.0 is released when aws still uses 2.1

mhart commented 4 years ago

Right, the '~> 2.1' protects against that

timoschilling commented 4 years ago

But that can result in the same problem from an other direction. What’s the problem with using the lambda given bundler version?

Your argument that the latest version maybe have bug fixes, has the problem that my CI has a bug fix but my production system don’t. I think that’s not a good thing.

mhart commented 4 years ago

I don't think it really can result in the same problem. You're suggesting that Bundler 2.1.5 used at development time will somehow break something at runtime on a Lambda using Bundler 2.1.4. That would require Bundler to break the contract of semver and there's a much much smaller chance of that happening than the chance that there are bugs in 2.1.4 that need to be fixed. I'm closing this.