<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib/rubygems/ext/builder.rb, branch v4.0.4</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Merge RubyGems/Bundler 4.0.5</title>
<updated>2026-02-10T01:38:24+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-02-10T01:07:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=87b544b8c4400ef2b37405f132846e5c3738213b'/>
<id>87b544b8c4400ef2b37405f132846e5c3738213b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/rubygems] Pass down value of `BUNDLE_JOBS` to RubyGems before compiling:</title>
<updated>2025-12-16T04:21:49+00:00</updated>
<author>
<name>Edouard CHIN</name>
<email>chin.edouard@gmail.com</email>
</author>
<published>2025-12-08T21:02:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9f593156b6184718a65f99905e6b07002058ebe6'/>
<id>9f593156b6184718a65f99905e6b07002058ebe6</id>
<content type='text'>
- ### Problem

  Since https://github.com/ruby/rubygems/pull/9131, we are now
  compiling make rules simultaneously. The number of jobs
  is equal to the number of processors.
  This may be problematic for some users as they want to control
  this value.

  ### Solution

  The number of jobs passed to `make` will now be equal to the
  `BUNDLE_JOBS` value.

  ### Side note

  It's also worth to note that since Bundler installs gems in
  parallel, we may end up running multiple `make -j&lt;JOB&gt;` in parallel
  which would cause exhaust the number of processors we have.
  This problem can be fixed by implementing a GNU jobserver, which I
  plan to do. But I felt that this would be too much change in one PR.

https://github.com/ruby/rubygems/commit/d51995deb9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- ### Problem

  Since https://github.com/ruby/rubygems/pull/9131, we are now
  compiling make rules simultaneously. The number of jobs
  is equal to the number of processors.
  This may be problematic for some users as they want to control
  this value.

  ### Solution

  The number of jobs passed to `make` will now be equal to the
  `BUNDLE_JOBS` value.

  ### Side note

  It's also worth to note that since Bundler installs gems in
  parallel, we may end up running multiple `make -j&lt;JOB&gt;` in parallel
  which would cause exhaust the number of processors we have.
  This problem can be fixed by implementing a GNU jobserver, which I
  plan to do. But I felt that this would be too much change in one PR.

https://github.com/ruby/rubygems/commit/d51995deb9
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] :Revamp CmakeBuilder to fix the issues described in #8572. Specifically:</title>
<updated>2025-10-17T08:24:02+00:00</updated>
<author>
<name>Charlie Savage</name>
<email>cfis@savagexi.com</email>
</author>
<published>2025-06-06T06:30:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5ced99dddb384762a79c9aa07de130e460479f06'/>
<id>5ced99dddb384762a79c9aa07de130e460479f06</id>
<content type='text'>
* Correctly pass command line arguments to CMake
* Call CMake twice - once to configure a project and a second time to build (which is the standard way to use CMake). This fixes the previously incorrect assumption that CMake generates a Make file.
* Update the tests to specify a CMake minimum version of 3.26 (which is already two years old). 3.26 is a bit arbritary but it aligns with Rice, and updates from the ancient 3.5 version being used (which CMake generates a warning message saying stop using it!)
* Update the CMake call to use CMAKE_RUNTIME_OUTPUT_DIRECTORY and CMAKE_LIBRARY_OUTPUT_DIRECTORY to tell CMake to copy compiled binaries to the a Gem's lib directory.

Note the updated builder took inspiration from the Cargo Builder, meaning you first create an instance of CmakeBuilder versus just calling class methods.

https://github.com/rubygems/rubygems/commit/9e248d4679
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Correctly pass command line arguments to CMake
* Call CMake twice - once to configure a project and a second time to build (which is the standard way to use CMake). This fixes the previously incorrect assumption that CMake generates a Make file.
* Update the tests to specify a CMake minimum version of 3.26 (which is already two years old). 3.26 is a bit arbritary but it aligns with Rice, and updates from the ancient 3.5 version being used (which CMake generates a warning message saying stop using it!)
* Update the CMake call to use CMAKE_RUNTIME_OUTPUT_DIRECTORY and CMAKE_LIBRARY_OUTPUT_DIRECTORY to tell CMake to copy compiled binaries to the a Gem's lib directory.

Note the updated builder took inspiration from the Cargo Builder, meaning you first create an instance of CmakeBuilder versus just calling class methods.

https://github.com/rubygems/rubygems/commit/9e248d4679
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Don't worry about missing Makefile.</title>
<updated>2025-08-18T03:31:51+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-07-27T23:08:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d4bf58b56e7c31b9e838d9ff86e2b13027cb54ea'/>
<id>d4bf58b56e7c31b9e838d9ff86e2b13027cb54ea</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/0e92346d88
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/0e92346d88
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Remove shellwords autoload</title>
<updated>2025-04-25T02:12:03+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-04-10T14:42:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6f336d1b154e608d5200bd8de484737ed3f8bda6'/>
<id>6f336d1b154e608d5200bd8de484737ed3f8bda6</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/2af1646776
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/2af1646776
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Add `--target-rbconfig` option to `gem install` and `gem update` commands</title>
<updated>2024-06-18T00:59:35+00:00</updated>
<author>
<name>Yuta Saito</name>
<email>kateinoigakukun@gmail.com</email>
</author>
<published>2024-05-04T21:23:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=273d41b9e3c90d4d3fe2ffcb88477197d528b9a0'/>
<id>273d41b9e3c90d4d3fe2ffcb88477197d528b9a0</id>
<content type='text'>
This patch adds `--target-rbconfig` option to specify the rbconfig.rb file
for the deployment target platform. This is useful when cross-compiling
gems. At the moment, this option is only available for `extconf.rb`-based
extensions.

https://github.com/rubygems/rubygems/commit/cf2843f7a2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds `--target-rbconfig` option to specify the rbconfig.rb file
for the deployment target platform. This is useful when cross-compiling
gems. At the moment, this option is only available for `extconf.rb`-based
extensions.

https://github.com/rubygems/rubygems/commit/cf2843f7a2
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Revert "Simplify how extensions are built"</title>
<updated>2024-02-05T18:17:24+00:00</updated>
<author>
<name>David Rodriguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-02-02T20:19:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ca7a48110fc2a207cabffff94ceb2147986d1948'/>
<id>ca7a48110fc2a207cabffff94ceb2147986d1948</id>
<content type='text'>
This reverts commit https://github.com/rubygems/rubygems/commit/0b8faf1e3926.

https://github.com/rubygems/rubygems/commit/7528e0f1ce
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit https://github.com/rubygems/rubygems/commit/0b8faf1e3926.

https://github.com/rubygems/rubygems/commit/7528e0f1ce
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Simplify how extensions are built</title>
<updated>2024-01-29T03:20:44+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2022-12-15T22:59:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e99951edfad6c636f561f1e6f3eda2e0609e8fbb'/>
<id>e99951edfad6c636f561f1e6f3eda2e0609e8fbb</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/0b8faf1e39
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/0b8faf1e39
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Stream output from ext builds when --verbose</title>
<updated>2023-12-11T11:07:36+00:00</updated>
<author>
<name>Daisuke Aritomo</name>
<email>osyoyu@osyoyu.com</email>
</author>
<published>2023-12-09T04:13:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1ab91b12fa5f7e98bba2e59e2f40b57004d9acf1'/>
<id>1ab91b12fa5f7e98bba2e59e2f40b57004d9acf1</id>
<content type='text'>
Uses Open3.popen2e in place of Open3.capture2e in Gem::Ext::Builder.
This change aims to stream stdout/stderr of ext builds when in verbose
mode, instead of printing everything at once when the build completes.

Nice for debugging gem builds that consumes longer times.

https://github.com/rubygems/rubygems/commit/dcdcb5adda
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Uses Open3.popen2e in place of Open3.capture2e in Gem::Ext::Builder.
This change aims to stream stdout/stderr of ext builds when in verbose
mode, instead of printing everything at once when the build completes.

Nice for debugging gem builds that consumes longer times.

https://github.com/rubygems/rubygems/commit/dcdcb5adda
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Use modern hashes consistently</title>
<updated>2023-12-07T22:29:33+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2023-12-07T21:10:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2755cb1b2fbc4a5f08ca56345b5945bd452da74e'/>
<id>2755cb1b2fbc4a5f08ca56345b5945bd452da74e</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/bb66253f2c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/bb66253f2c
</pre>
</div>
</content>
</entry>
</feed>
