summaryrefslogtreecommitdiff
path: root/lib/bundler/cli/gem.rb
AgeCommit message (Collapse)Author
2025-11-19[ruby/rubygems] Add `--ext=go` to `bundle gem`Go Sueyoshi
(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 <top (required)>' # /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 <hsbt@ruby-lang.org>
2025-11-07[ruby/rubygems] Use Dir.pwd instead of Pathname.pwdHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/6c161b253d
2025-11-07[ruby/rubygems] Removed unnecessary loading of pathnameHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/6e965b7872
2025-10-28[ruby/rubygems] Update new gem CoC and promptdysonreturns
Prompt wording "prefer safe, respectful, productive, and collaborative spaces" is copied verbatim from Ruby Community Conduct Guideline. https://github.com/ruby/rubygems/commit/6cdf5f6d8a
2025-09-16[rubygems/rubygems] Complete rubocop flags and settings removalDavid Rodríguez
If the CLI flags are used, we abort early as usual. As per the settings, I decided to ignore them. We've been migrating them automatically to the new name for a long time and we don't yet have a standard way to deprecate and remove settings (we should probably use the existing setting validators). So I think it's fine for now to do what we normally do (ignore the setting). https://github.com/rubygems/rubygems/commit/8311de6e69
2025-09-16[rubygems/rubygems] Fix `--no-rubocop` deprecation messageDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2c16b0e11e
2025-09-16[rubygems/rubygems] Fix `rubocop` config removal messageDavid Rodríguez
In Bundler 4, configuration will no longer be updated. https://github.com/rubygems/rubygems/commit/33a4718d7a
2025-07-09[rubygems/rubygems] Update gemspec based on provided github username when existsSweta Sanghavi
* Conditionally set changelog_url if gh username passed and enabled * conditionally set homepage, source code uri, homepage uri when gh username passed in * update documentation to say username will also be used for gemspec file https://github.com/rubygems/rubygems/commit/1c1ada593b
2025-07-09[rubygems/rubygems] Add blank line after every questionDavid Rodríguez
To try make output a bit less messy. https://github.com/rubygems/rubygems/commit/92c8bc6769
2025-07-09[rubygems/rubygems] Use shorter questions as prompts in `bundle gem`David Rodríguez
If we use long explanations as prompts, sometimes the prompt gets printed twice due to a (I think) reline/readline bug. https://github.com/rubygems/rubygems/commit/987e0dfa90
2025-07-09[rubygems/rubygems] Reword MIT explanation to make sense after reorderingDavid Rodríguez
Previous wording assumed explanation was displayed after the question, not before. https://github.com/rubygems/rubygems/commit/04eb3430ba
2025-06-30[rubygems/rubygems] Added --bundle option for triggering bundle install ↵Hiroshi SHIBATA
automatically after bundle gem https://github.com/rubygems/rubygems/commit/59ac0db26b
2025-06-03[rubygems/rubygems] Only ignore `.gitignore` when generating gems with gitTangRufus
https://github.com/rubygems/rubygems/commit/aec5a7887d
2025-06-03[rubygems/rubygems] Ignore `Gemfile`, `gems.rb` & `gems.locked` according to ↵TangRufus
`init_gems_rb` preference https://github.com/rubygems/rubygems/commit/88aeb66f41
2025-06-03[rubygems/rubygems] Remove `.git` from `spec.files` default ignore listTangRufus
https://github.com/rubygems/rubygems/commit/4f96e12ff3
2025-06-03[rubygems/rubygems] Rename `ignore_files` to `ignore_paths`TangRufus
https://github.com/rubygems/rubygems/commit/c07e3a88aa
2025-06-03[rubygems/rubygems] Add `.gitignore`, `gems.rb` & `gems.locked` into ↵TangRufus
`spec.files` default ignore list https://github.com/rubygems/rubygems/commit/6390ed7a2b
2025-06-03[rubygems/rubygems] Remove `features/` from `spec.files` default ignore listTangRufus
https://github.com/rubygems/rubygems/commit/77ba4192a7
2025-06-03[rubygems/rubygems] Only ignore `test/` when generating gems with `minitest` ↵TangRufus
or `test-unit` https://github.com/rubygems/rubygems/commit/c464f2036a
2025-06-03[rubygems/rubygems] Suffix `.circleci` with `/` in `spec.files` in the ↵TangRufus
`.gemspec` template https://github.com/rubygems/rubygems/commit/e48c6beaf6
2025-06-03[rubygems/rubygems] Suffix `.github` with `/` in `spec.files` in the ↵TangRufus
`.gemspec` template https://github.com/rubygems/rubygems/commit/edf13f7e60
2025-06-03[rubygems/rubygems] Exclude `spec` from `spec.files` in the `.gemspec` ↵TangRufus
template only when using RSpec https://github.com/rubygems/rubygems/commit/a42387b8be
2025-06-03[rubygems/rubygems] Exclude `.rspec` from `spec.files` in the `.gemspec` ↵TangRufus
template https://github.com/rubygems/rubygems/commit/331901941d
2025-06-03[rubygems/rubygems] Exclude `.rubocop.yml` and `.standard.yml` from ↵TangRufus
`spec.files` in the `.gemspec` template https://github.com/rubygems/rubygems/commit/9d937d4f7f
2025-06-03[rubygems/rubygems] Remove `appveyor` from `spec.files` default ignore listTangRufus
https://github.com/rubygems/rubygems/commit/2f2046c97b
2025-06-03[rubygems/rubygems] Refactor `spec.files` ignore list generationTangRufus
https://github.com/rubygems/rubygems/commit/c11539f325
2025-05-26[rubygems/rubygems] Remove reference to validate_rust_builder_rubygems_versionSamuel Giddins
Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/f8baf13ab0
2025-05-26[rubygems/rubygems] Bump required_ruby_version to 3.2Samuel Giddins
Ruby 3.1 was EOL March 2025 Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/29c21b1e78
2024-10-04[rubygems/rubygems] Update required_ruby_version to 3.1Samuel Giddins
3.0 has been EOL since march, drop support for it before the 3.4 release is cut Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/fc1f03b06a
2024-09-11[rubygems/rubygems] Make an exe file executable when generating new gemsYuji Yaginuma
Currently, an exe file isn't executable when generating new gems because it doesn't have the correct permission. This PR sets the correct permission same as files under the `bin`. https://github.com/rubygems/rubygems/commit/6509bf128a
2024-07-25[rubygems/rubygems] bundle-gem learns to find Gemfile template correctlyJason Karns
Removes the symlink for gems.rb.tt and instead uses the singular template file. Only the destination filename for the gemfile reads from the `init_gems_rb` setting. https://github.com/rubygems/rubygems/commit/43ce0e1666
2024-06-26[rubygems/rubygems] Add --no-test, --no-ci, and --no-linter optionsJerome Dalbert
https://github.com/rubygems/rubygems/commit/f58660ffcc
2024-01-29[rubygems/rubygems] Remove `travis_removal_info`Masato Ohba
`travis_removal_info` is added by https://github.com/rubygems/rubygems/pull/6150. According to the comment, it's supposed to be removed at bundler v2.5.0 but it hasn't. https://github.com/rubygems/rubygems/commit/e18797d43f
2024-01-27[rubygems/rubygems] Bump Ruby version to be used in `bundle gem` templateMasato Ohba
since 2.6 and 2.7 are EOL and bundler dropped their support by https://github.com/rubygems/rubygems/pull/7116. https://github.com/rubygems/rubygems/commit/b562d9a822
2023-12-08[rubygems/rubygems] Use `Minitest::TestTask` in a template file for `minitest`Yuji Yaginuma
`minitest` has introduced a rake task for running test on 5.16.0. https://github.com/minitest/minitest/blob/master/History.rdoc#5160--2022-06-14- This has some tasks related to running tests and it's useful for `minitest` user I think. https://github.com/minitest/minitest#rake-tasks- This PR changed to use the task in a template file for `minitest` https://github.com/rubygems/rubygems/commit/7a86d13062
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
2023-12-01[rubygems/rubygems] Many major_deprecations supply :removed_messageEric Mueller
Generally the removed message is very similar, but often it needs to specify that the feature has "been removed" instead of "will be removed", or "been deprecated". And a few chunks of text needed more substantial updates. And a number of them seemed to have been carefully crafted to make sense in either context, so I left those alone. https://github.com/rubygems/rubygems/commit/8d42cf9104
2023-10-25[rubygems/rubygems] Handle CI configuration on ignore list for ↵Hiroshi SHIBATA
Gem::Specification#files https://github.com/rubygems/rubygems/commit/4bb0ef3e55
2023-09-21[rubygems/rubygems] Remove usage of Dir.chdir that just execute a subprocessSamuel Giddins
Preferring instead to spawn the subprocess in the correct directory https://github.com/rubygems/rubygems/commit/ad5abd6a45
2023-07-12[rubygems/rubygems] Update GitHub organization of Standard RubyKoichi ITO
## What was the end-user or developer problem that led to this PR? The old URL https://github.com/testdouble/standard is mentioned. ## What is your fix for the problem, implemented in this PR? This PR updates to the new URL https://github.com/standardrb/standard. https://github.com/rubygems/rubygems/commit/eeafba72fc
2022-12-24Merge RubyGems-3.4.0 and Bundler-2.4.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6987
2022-12-20Merge RubyGems/Bundler masterHiroshi SHIBATA
Pick from https://github.com/rubygems/rubygems/commit/ba3adad4d80038ffd7bea015da2f11d3e8a2ff82 Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Turn `--ext` option into string. Deprecate usage without ↵Josef Šimánek
explicit value. - this is preparation for onboarding Rust based extension gem generator https://github.com/rubygems/rubygems/commit/d32801bdbc Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-12Merge RubyGems/Bundler masterHiroshi SHIBATA
from https://github.com/rubygems/rubygems/commit/bfb0ae69776069155d2092702bfbb5a12617d85a Notes: Merged: https://github.com/ruby/ruby/pull/6906
2022-09-08Resync Bundler & RubyGemsDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/6330
2022-01-20[rubygems/rubygems] Change generated namespaced test class name in minitestYusuke Nakamura
* `foo` => `TestFoo` * `foo_bar` => `TestFooBar` * `foo-bar` => `Foo::TestBar` https://github.com/rubygems/rubygems/commit/353cdd61c3
2022-01-20[rubygems/rubygems] Update generated minitest file styleYusuke Nakamura
foo => test/test_foo.rb foo-bar => test/foo/test_bar.rb foo_bar => test/test_foo_bar.rb https://github.com/rubygems/rubygems/commit/c795e5d40d
2022-01-20[rubygems/rubygems] Create minitest file to underscored path in "bundle gem" ↵Yusuke Nakamura
command ...with dashed gem name In "bundle gem" command with dashed name gem (e.g. foo-bar) generates `test/test_foo/bar.rb`, but this file contains undefined class `TestFoo` and moreover, does not include in "bundle exec rake test" target. Therefore, intentially the first test after gem created is fail, but in case of gem name contains dash character is not. The change doings... (when "bundle gem foo-bar" called) * create `test/test_foo_bar.rb` * define `TestFooBar` class in `test/test_foo_bar.rb` https://github.com/rubygems/rubygems/commit/5d9a69fc0f
2021-12-01Merge rubygems master fd676ac464491afaa0baf5435cb11b3f86229cbdHiroshi SHIBATA
2021-10-09Newly generated gems require Ruby 2.6.0OKURA Masafumi
In 2021, Ruby 2.5 and older are EOL. We can set the default required Ruby version to 2.6.0 to encourage people to use newer Ruby. If the command is executed with old Ruby, it falls back to 2.3.0. It's still possible to create a gem for older Ruby just by changing two lines of code (one in gemspec and another is in rubocop.yml).