Skip to content

Conversation

@joshcooper
Copy link
Collaborator

@joshcooper joshcooper commented Mar 8, 2024

Ruby's build process requires a "base" ruby. We also need an executable ruby that can install gems into /opt/puppetlabs/puppet/lib.

Previously, native compilation used whatever system ruby happened to be present. Since each distro ships a different ruby, our build process used everything from ruby 2.7 to 3.1 and everything in between.

This inconsistency made it more likely for our rubygem components with native extensions to fail to install.

It also meant bumping to ruby 3.3 in the future could fail because that version requires base ruby 3.0 or later, but some system rubies are still 2.7.

Additionally, in the past we've made the mistake of using pl-ruby because we thought we had to.

This commit ensures we use miniruby for all native compiles. Doing so eliminates all of the issues mentioned.

When cross-compiling, we still have to use either system ruby or pl-ruby.

agent-runtime-main all platforms but solaris 11 SPARC
agent-runtime-main solaris 11 SPARC

@joshcooper joshcooper requested review from a team as code owners March 8, 2024 23:35
Ruby's build process requires a "base" ruby. We also need an executable ruby
that can install gems into /opt/puppetlabs/puppet/lib.

Previously, native compilation used whatever system ruby happened to be present.
Since each distro ships a different ruby, our build process used everything from
ruby 2.7 to 3.1 and everything in between.

This inconsistency made it more likely for our rubygem components with native
extensions to fail to install.

It also meant bumping to ruby 3.3 in the future could fail because that version
requires base ruby 3.0 or later, but some system rubies are still 2.7.

Additionally, in the past we've made the mistake of using pl-ruby because we
thought we had to.

This commit ensures we use miniruby for all native compiles. Doing so eliminates
all of the issues mentioned.

When cross-compiling, we still have to use either system ruby or pl-ruby.
@mhashizume mhashizume merged commit 0ec2d4e into puppetlabs:master Mar 13, 2024
@joshcooper joshcooper deleted the useminiruby branch March 13, 2024 17:05
@joshcooper joshcooper added the enhancement New feature or request label Apr 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants