Add Rails 8 / Ruby 4 / Bundler 4 SSI weblog app#7249
Draft
lloeki wants to merge 2 commits into
Draft
Conversation
Contributor
|
|
|
62cba37 to
acf9ee2
Compare
Introduce a Ruby 4.0 SSI target so lib-injection is exercised against Ruby 4, RubyGems 4, and Bundler 4. - Add the RB40 runtime (Ruby 4.0.1) to docker_ssi_runtimes.json. - Give Ruby 4.0 RubyGems/Bundler 4.0.14 in the SSI base image (ruby_install_runtimes.sh), replacing the 2.7.2 default, so the Bundler 4 path is actually exercised. - Add lib_injection_rails80_app: a copy of the Rails 7.0 lib-injection app upgraded to Rails 8.0 (load_defaults 8.0, Ruby 4.0.1) with a Bundler 4.0.14 lockfile. nokogiri is pinned to the ruby platform so it builds against the local glibc. - Add rails8-app SSI Dockerfiles (plain, deployment, vendored) that build from the new app. - Register rails8-app* in docker_ssi.json weblog lists and weblog specs (allowed_runtime_versions RB40). The ruby-app* weblogs stay on RB27-RB34: they build the Rails 7.0 app, which is not Ruby 4 ready.
acf9ee2 to
88f0583
Compare
The RB40 runtime used Ruby 4.0.1, which ruby-build (used by the SSI base image via rbenv) does not provide — only 4.0.5 — so base image builds failed. The docker_ssi scenario also rejected 4.0.1 because RubyRuntimeInstallableVersions had no RB40 entry. - docker_ssi_runtimes.json: RB40 -> 4.0.5. - docker_ssi_definitions.py: add the RB40 installable version (4.0.5). - lib_injection_rails80_app/.ruby-version: 4.0.5 for consistency (the SSI Dockerfiles strip it, but keep it aligned with the runtime).
This file contains hidden or 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
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.
Motivation
Unlock Ruby 4.0 / RubyGems 4.0 / Bundler 4.0 support for Ruby SSI (lib-injection).
This adds a Ruby 4 SSI target so injection is exercised against Ruby 4, RubyGems 4,
and Bundler 4, complementing the injector guard change in datadog-injector-rb#65.
Changes
RB40runtime (4.0.14) toutils/docker_ssi/docker_ssi_runtimes.json.lib-injection/build/docker/ruby/lib_injection_rails80_app: the Rails 7.0lib-injection app upgraded to Rails 8.0 (
load_defaults 8.0, Ruby 4.0.1) with aBundler 4 lockfile.
nokogiriis pinned to the ruby platform so it builds againstthe local glibc.
rails8-appSSI Dockerfiles (plain, deployment, vendored).rails8-app*indocker_ssi.jsonweblog lists and weblog specs(
allowed_runtime_versions: ["RB40"]), and extend theruby-app*specs withRB40.rails7-appDockerfile.Locally verified the app boots:
Rails 8.0.5 on Ruby 4.0.1(images-rb4.0-gnu-gcc).Depends on the Ruby 4 / Bundler 4 images-rb rollout and datadog-injector-rb#65.
Workflow
🚀 Once your PR is reviewed and the CI green, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist
tests/ormanifests/is modified ? I have the approval from R&P teambuild-XXX-imagelabel is present