<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/spec/bundler/quality_spec.rb, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[ruby/rubygems] Add `--ext=go` to `bundle gem`</title>
<updated>2025-11-19T00:47:07+00:00</updated>
<author>
<name>Go Sueyoshi</name>
<email>sue445@users.noreply.github.com</email>
</author>
<published>2025-11-19T00:46:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4423facbffd5bd523541ebf42dc274272b1de732'/>
<id>4423facbffd5bd523541ebf42dc274272b1de732</id>
<content type='text'>
(https://github.com/ruby/rubygems/pull/8183)

* Add new gem templates

* Add `--ext=go` in `bundle gem`

* Add setup-go to .github/workflows/main.yml

* Embed go version in go.mod

* Use go in bundler CI

* Add example method to template

* Install Go in .circleci/config.yml

* Install Go in .gitlab-ci.yml

* Allow hard tabs in go template

* Run `rake update_manifest`

* Fix test

* Move go_gem to gemspec

Respect to 9b0ec80

* nits: :golf:

* includes valid module name in go.mod

* generate header file

* Run `go mod tidy` to create `go.sum`

* Check if `go.sum` is generated only when Go is installed

To avoid test failure in environments where Go is not installed

* Run CI

* Workaround for hung up

c.f. https://github.com/rubygems/rubygems/actions/runs/11639408044/job/32415545422

* Write man for --ext=go

* Re-generate man with `./bin/rake man:build`

* pinning :pushpin:

* Update with `./bin/rake man:build`

* nits: Extract to method

* nits: Use `sys_exec` instead of `system`

* Clean go module cache after test

Workaround following error

```
1) bundle gem gem naming with underscore --ext parameter set with go includes go_gem extension in extconf.rb
   Failure/Error: FileUtils.rm_r(dir)

   Errno::EACCES:
     Permission denied @ apply2files - /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
   # ./spec/support/helpers.rb:37:in `block in reset!'
   # ./spec/support/helpers.rb:21:in `each'
   # ./spec/support/helpers.rb:21:in `reset!'
   # ./spec/spec_helper.rb:130:in `block (2 levels) in &lt;top (required)&gt;'
   # /home/runner/work/rubygems/rubygems/lib/rubygems.rb:303:in `load'
   # /home/runner/work/rubygems/rubygems/lib/rubygems.rb:303:in `activate_and_load_bin_path'
```

Files installed with `go get` have permissions set to 444
ref. https://github.com/golang/go/issues/35615

```
$ ls -l /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
-r--r--r-- 1 runner runner 42320 Nov 15 06:38 /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
```

So they cannot be deleted by `FileUtils.rm_r`.
Therefore, this is necessary to execute `go clean -modcache` separately from `FileUtils.rm_r` to circumvent it.

* Remove needless changes

ref. https://github.com/ruby/rubygems/pull/8183#discussion_r2532902051

* ci: setup-go is needless

* Don't run go command in `bundle gem`

ref. https://github.com/ruby/rubygems/pull/8183#discussion_r2532765470

* Revert unrelated date changes

---------

https://github.com/ruby/rubygems/commit/260d7d60b3

Co-authored-by: Hiroshi SHIBATA &lt;hsbt@ruby-lang.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/rubygems/pull/8183)

* Add new gem templates

* Add `--ext=go` in `bundle gem`

* Add setup-go to .github/workflows/main.yml

* Embed go version in go.mod

* Use go in bundler CI

* Add example method to template

* Install Go in .circleci/config.yml

* Install Go in .gitlab-ci.yml

* Allow hard tabs in go template

* Run `rake update_manifest`

* Fix test

* Move go_gem to gemspec

Respect to 9b0ec80

* nits: :golf:

* includes valid module name in go.mod

* generate header file

* Run `go mod tidy` to create `go.sum`

* Check if `go.sum` is generated only when Go is installed

To avoid test failure in environments where Go is not installed

* Run CI

* Workaround for hung up

c.f. https://github.com/rubygems/rubygems/actions/runs/11639408044/job/32415545422

* Write man for --ext=go

* Re-generate man with `./bin/rake man:build`

* pinning :pushpin:

* Update with `./bin/rake man:build`

* nits: Extract to method

* nits: Use `sys_exec` instead of `system`

* Clean go module cache after test

Workaround following error

```
1) bundle gem gem naming with underscore --ext parameter set with go includes go_gem extension in extconf.rb
   Failure/Error: FileUtils.rm_r(dir)

   Errno::EACCES:
     Permission denied @ apply2files - /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
   # ./spec/support/helpers.rb:37:in `block in reset!'
   # ./spec/support/helpers.rb:21:in `each'
   # ./spec/support/helpers.rb:21:in `reset!'
   # ./spec/spec_helper.rb:130:in `block (2 levels) in &lt;top (required)&gt;'
   # /home/runner/work/rubygems/rubygems/lib/rubygems.rb:303:in `load'
   # /home/runner/work/rubygems/rubygems/lib/rubygems.rb:303:in `activate_and_load_bin_path'
```

Files installed with `go get` have permissions set to 444
ref. https://github.com/golang/go/issues/35615

```
$ ls -l /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
-r--r--r-- 1 runner runner 42320 Nov 15 06:38 /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
```

So they cannot be deleted by `FileUtils.rm_r`.
Therefore, this is necessary to execute `go clean -modcache` separately from `FileUtils.rm_r` to circumvent it.

* Remove needless changes

ref. https://github.com/ruby/rubygems/pull/8183#discussion_r2532902051

* ci: setup-go is needless

* Don't run go command in `bundle gem`

ref. https://github.com/ruby/rubygems/pull/8183#discussion_r2532765470

* Revert unrelated date changes

---------

https://github.com/ruby/rubygems/commit/260d7d60b3

Co-authored-by: Hiroshi SHIBATA &lt;hsbt@ruby-lang.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/rubygems] build gems directly instead of shelling out</title>
<updated>2025-11-11T04:57:12+00:00</updated>
<author>
<name>Aaron Patterson</name>
<email>tenderlove@ruby-lang.org</email>
</author>
<published>2025-11-03T18:29:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d3138912b8019591573c671662c1a2d9930aa034'/>
<id>d3138912b8019591573c671662c1a2d9930aa034</id>
<content type='text'>
I'm trying to speed up the bundler tests. The tests shell out a lot in
order to build gems. We can build gems without creating a sub-process.
This change reduced the test suite time from ~24 minutes, to about ~21
minutes on my machine.  Once we have more of these "asset generation"
routines done in the same process, I think we can start caching the
outputs for further improvements

https://github.com/ruby/rubygems/commit/ebf27056c6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I'm trying to speed up the bundler tests. The tests shell out a lot in
order to build gems. We can build gems without creating a sub-process.
This change reduced the test suite time from ~24 minutes, to about ~21
minutes on my machine.  Once we have more of these "asset generation"
routines done in the same process, I think we can start caching the
outputs for further improvements

https://github.com/ruby/rubygems/commit/ebf27056c6
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Complete remembered options removal</title>
<updated>2025-09-11T02:54:49+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>2887858+deivid-rodriguez@users.noreply.github.com</email>
</author>
<published>2025-09-09T12:37:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ecd1284bf246ae739890d154706f4f533bc8d77e'/>
<id>ecd1284bf246ae739890d154706f4f533bc8d77e</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/573ffad3ea
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/573ffad3ea
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge specs checking CLI flags and subcommands are documented</title>
<updated>2025-08-18T03:31:51+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-08-11T18:01:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f0ee7630ed8993ef80cd11b12330c78616819ff0'/>
<id>f0ee7630ed8993ef80cd11b12330c78616819ff0</id>
<content type='text'>
We had them duplicated, but with slightly different features:

* The ones in `other/cli_man_pages.rb` enforced a specific structure to
  document CLI options, so were less likely to have false positives.

* The ones in `quality_spec.rb` were able to check subcommands and their
  flags.

This commit merges both and preserves the best of both.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We had them duplicated, but with slightly different features:

* The ones in `other/cli_man_pages.rb` enforced a specific structure to
  document CLI options, so were less likely to have false positives.

* The ones in `quality_spec.rb` were able to check subcommands and their
  flags.

This commit merges both and preserves the best of both.
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Document missing options from man pages:</title>
<updated>2025-07-25T02:10:42+00:00</updated>
<author>
<name>Edouard CHIN</name>
<email>chin.edouard@gmail.com</email>
</author>
<published>2025-07-24T12:57:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=da3c47bcfc47c647d265de66a4cbc61b35f4c00b'/>
<id>da3c47bcfc47c647d265de66a4cbc61b35f4c00b</id>
<content type='text'>
- The `bundle plugin uninstall --all` was missing.
- The `bundle plugin install --local-git` was missing due to being
  deprecated. We decided to reintroduce the doc for more clarity.

https://github.com/rubygems/rubygems/commit/4da252945c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- The `bundle plugin uninstall --all` was missing.
- The `bundle plugin install --local-git` was missing due to being
  deprecated. We decided to reintroduce the doc for more clarity.

https://github.com/rubygems/rubygems/commit/4da252945c
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Add a quality spec to ensure man pages are up to date:</title>
<updated>2025-07-25T02:10:41+00:00</updated>
<author>
<name>Edouard CHIN</name>
<email>chin.edouard@gmail.com</email>
</author>
<published>2025-07-23T14:10:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4dd708bf5d833c3999c786169abfcfc79cd4e676'/>
<id>4dd708bf5d833c3999c786169abfcfc79cd4e676</id>
<content type='text'>
- Ref #8802
- ### Problem

  Whenever a bundler command options is added, we want to make
  sure that the associated command man page is updated to reflect
  the new option (e.g. this mistake was made in #8624)

  ### Solution

  In #8802 we discussed a bit on the implementation which would rely
  on parsing ronn files and introduce some conventions on how options
  documented in man pages should be written.

  I figured I would try a simpler approach by just checking if the man
  page of a command list options using a simple regex.

  Pros:

  - Simpler as we don't have to parse ronn files.
  - No need to modify all existing man pages.

  Cons:

  - We can only verify one way (CLI options -&gt; man pages).
    If a CLI option get removed, we won't be able to warn that
    the existing document man page option needs to be removed.

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

  Whenever a bundler command options is added, we want to make
  sure that the associated command man page is updated to reflect
  the new option (e.g. this mistake was made in #8624)

  ### Solution

  In #8802 we discussed a bit on the implementation which would rely
  on parsing ronn files and introduce some conventions on how options
  documented in man pages should be written.

  I figured I would try a simpler approach by just checking if the man
  page of a command list options using a simple regex.

  Pros:

  - Simpler as we don't have to parse ronn files.
  - No need to modify all existing man pages.

  Cons:

  - We can only verify one way (CLI options -&gt; man pages).
    If a CLI option get removed, we won't be able to warn that
    the existing document man page option needs to be removed.

https://github.com/rubygems/rubygems/commit/e10e60bd33
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix language quality spec no longer getting run properly</title>
<updated>2025-07-25T02:10:39+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-07-24T09:54:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=416fde11eb28fa01f9da738354facdd728d5ec68'/>
<id>416fde11eb28fa01f9da738354facdd728d5ec68</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/c65e34a904
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/c65e34a904
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Use Bundler.settings[gem.bundle]</title>
<updated>2025-06-30T03:56:50+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-06-27T07:46:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=949f125f0f5a22e41732565d40f566b5c70ad8f9'/>
<id>949f125f0f5a22e41732565d40f566b5c70ad8f9</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/b16511598e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/b16511598e
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Extract stdboth spec helper</title>
<updated>2025-06-06T01:09:14+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-06-05T08:52:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d95f7a3c43fb2014e5865ab6bc01dd4ac6d26c79'/>
<id>d95f7a3c43fb2014e5865ab6bc01dd4ac6d26c79</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/bb13f4e702
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/bb13f4e702
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Moved the REMEMBERING OPTIONS section to be after CONFIGURATION KEYS</title>
<updated>2025-06-02T22:47:14+00:00</updated>
<author>
<name>Matthew Hively</name>
<email>matthewhively@viz.com</email>
</author>
<published>2025-05-22T19:26:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=21a14ea2308d765e2860b6c4a33697c8c20a73ed'/>
<id>21a14ea2308d765e2860b6c4a33697c8c20a73ed</id>
<content type='text'>
Since the remembering options are discouraged, the preferred method should be explained first.

Slight tweak to wording

Fix documentation spec test as per suggested patch

https://github.com/rubygems/rubygems/commit/9f082ccf31
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since the remembering options are discouraged, the preferred method should be explained first.

Slight tweak to wording

Fix documentation spec test as per suggested patch

https://github.com/rubygems/rubygems/commit/9f082ccf31
</pre>
</div>
</content>
</entry>
</feed>
