Skip to content
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

(PA-5849) Consistently use miniruby when native compiling ruby 3.2 #801

Merged
merged 1 commit into from
Mar 13, 2024

Conversation

joshcooper
Copy link
Contributor

@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
3 checks passed
@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