pax_global_header00006660000000000000000000000064141675634660014534gustar00rootroot0000000000000052 comment=a13d015fcbec74ecb082eb4d8bb9cd6d75133eed rubygems-3.3.5/000077500000000000000000000000001416756346600134015ustar00rootroot00000000000000rubygems-3.3.5/.bundle/000077500000000000000000000000001416756346600147305ustar00rootroot00000000000000rubygems-3.3.5/.bundle/config000066400000000000000000000000401416756346600161120ustar00rootroot00000000000000--- BUNDLE_PATH__SYSTEM: "true" rubygems-3.3.5/.changelog.yml000066400000000000000000000016051416756346600161330ustar00rootroot00000000000000--- header_template: "# %new_version / %release_date" entry_template: "* %title. Pull request #%pull_request_number by %pull_request_author" extra_entry: template: "* %title." label: "rubygems: enhancement" release_date_format: "%Y-%m-%d" entry_wrapping: 74 changelog_label_mapping: "rubygems: security fix": "## Security fixes:" "rubygems: breaking change": "## Breaking changes:" "rubygems: deprecation": "## Deprecations:" "rubygems: feature": "## Features:" "rubygems: performance": "## Performance:" "rubygems: enhancement": "## Enhancements:" "rubygems: bug fix": "## Bug fixes:" "rubygems: documentation": "## Documentation:" "rubygems: backport": null patch_level_labels: - "rubygems: security fix" - "rubygems: deprecation" - "rubygems: enhancement" - "rubygems: bug fix" - "rubygems: performance" - "rubygems: documentation" - "rubygems: backport" rubygems-3.3.5/.codeclimate.yml000066400000000000000000000007001416756346600164500ustar00rootroot00000000000000--- engines: duplication: enabled: true config: languages: - ruby fixme: enabled: true rubocop: enabled: false ratings: paths: - "bundler/**.rb" - "bundler/bin/*" - "bundler/exe/*" exclude_paths: - bundler/bundler.gemspec - "bundler/*.md" - bundler/lib/bundler/ssl_certs/*.pem - bundler/lib/bundler/vendor/**/* - bundler/lib/bundler/templates/**/*.tt - bundler/man/* - bundler/spec/**/* - bundler/Rakefile rubygems-3.3.5/.gitattributes000066400000000000000000000002001416756346600162640ustar00rootroot00000000000000# git log -L:: *.rb diff=ruby *.gemspec diff=ruby bin/* diff=ruby bundler/bin/* diff=ruby bundler/exe/* diff=ruby rubygems-3.3.5/.githooks/000077500000000000000000000000001416756346600153065ustar00rootroot00000000000000rubygems-3.3.5/.githooks/pre-commit000077500000000000000000000005211416756346600173060ustar00rootroot00000000000000#!/usr/bin/env bash HOOKS="pre-commit-rubocop" for hook in $HOOKS; do if [ -f "$PWD/.githooks/$hook" ]; then echo "Running pre-commit hooks..." echo " > $hook" # Execute hook "$PWD/.githooks/$hook" if [ $? != 0 ]; then exit 1 fi else echo "Error: file $hook not found." exit 1 fi done rubygems-3.3.5/.githooks/pre-commit-rubocop000077500000000000000000000003621416756346600207600ustar00rootroot00000000000000#!/usr/bin/env bash files=$(git diff --name-only --cached --diff-filter=d) length=${#files} # Run rubocop hook only when analyzable files are present if [[ $length -ne 0 ]]; then ./util/rubocop $files else echo "No files to analyze" fi rubygems-3.3.5/.github/000077500000000000000000000000001416756346600147415ustar00rootroot00000000000000rubygems-3.3.5/.github/FUNDING.yml000066400000000000000000000000561416756346600165570ustar00rootroot00000000000000custom: rubytogether.org github: rubytogether rubygems-3.3.5/.github/ISSUE_TEMPLATE/000077500000000000000000000000001416756346600171245ustar00rootroot00000000000000rubygems-3.3.5/.github/ISSUE_TEMPLATE/bundler-related-issue.md000066400000000000000000000057631416756346600236600ustar00rootroot00000000000000--- name: Bundler related issue about: This template is intended for Bundler specific related issues. title: '' labels: 'Bundler' assignees: '' --- ### Describe the problem as clearly as you can ### Did you try upgrading rubygems & bundler? ### Post steps to reproduce the problem ### Which command did you run? ### What were you expecting to happen? ### What actually happened? ### If not included with the output of your command, run `bundle env` and paste the output below rubygems-3.3.5/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000001401416756346600211070ustar00rootroot00000000000000# If users select a blank issue the default template will be loaded. blank_issues_enabled: true rubygems-3.3.5/.github/ISSUE_TEMPLATE/rubygems-related-issue.md000066400000000000000000000014241416756346600240500ustar00rootroot00000000000000--- name: "RubyGems related issue" about: This template is intended for RubyGems specific related issues. title: '' labels: 'RubyGems' assignees: '' --- I'm having a problem or would like to suggest a feature. My current problem is _________ This issue is related to: - [ ] Network problems - [ ] Installing a library - [ ] Publishing a library - [ ] The command line `gem` - [ ] Other Here are my current environment details: ``` $ gem env PASTE HERE ``` I will abide by the [code of conduct](https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md). rubygems-3.3.5/.github/config.yml000066400000000000000000000015251416756346600167340ustar00rootroot00000000000000newPRWelcomeComment: | Thanks for opening a pull request and helping make RubyGems and Bundler better! Someone from the RubyGems team will take a look at your pull request shortly and leave any feedback. Please make sure that your pull request has tests for any changes or added functionality. We use GitHub Actions to test and make sure your change works functionally and uses acceptable conventions, you can review the current progress of GitHub Actions in the PR status window below. If you have any questions or concerns that you wish to ask, feel free to leave a comment in this PR or join our #rubygems or #bundler channel on [Slack](http://slack.bundler.io/). For more information about contributing to the RubyGems project feel free to review our [CONTRIBUTING](https://github.com/rubygems/rubygems/blob/master/CONTRIBUTING.md) guide rubygems-3.3.5/.github/pull_request_template.md000066400000000000000000000024221416756346600217020ustar00rootroot00000000000000 ## What was the end-user or developer problem that led to this PR? ## What is your fix for the problem, implemented in this PR? ## Make sure the following tasks are checked - [ ] Describe the problem / feature - [ ] Write [tests](https://github.com/rubygems/rubygems/blob/master/bundler/doc/development/PULL_REQUESTS.md#tests) for features and bug fixes - [ ] Write code to solve the problem - [ ] Make sure you follow the [current code style](https://github.com/rubygems/rubygems/blob/master/bundler/doc/development/PULL_REQUESTS.md#code-formatting) and [write meaningful commit messages without tags](https://github.com/rubygems/rubygems/blob/master/bundler/doc/development/PULL_REQUESTS.md#commit-messages) rubygems-3.3.5/.github/workflows/000077500000000000000000000000001416756346600167765ustar00rootroot00000000000000rubygems-3.3.5/.github/workflows/bundler.yml000066400000000000000000000045031416756346600211560ustar00rootroot00000000000000name: bundler on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: bundler: name: Bundler ${{ matrix.bundler.name }} on ${{ matrix.os.name }} (${{ matrix.ruby.name }}) runs-on: ${{ matrix.os.value }} strategy: fail-fast: false matrix: os: - { name: Ubuntu, value: ubuntu-20.04 } ruby: - { name: ruby-2.3, value: 2.3.8 } - { name: ruby-2.4, value: 2.4.10 } - { name: ruby-2.5, value: 2.5.9 } - { name: ruby-2.6, value: 2.6.9 } - { name: ruby-2.7, value: 2.7.5 } - { name: ruby-3.0, value: 3.0.3 } bundler: - { name: 2, value: '' } - { name: 3, value: 3.0.0 } exclude: - { bundler: { name: 3, value: 3.0.0 }, ruby: { name: ruby-2.3, value: 2.3.8 } } - { bundler: { name: 3, value: 3.0.0 }, ruby: { name: ruby-2.4, value: 2.4.10 } } - { bundler: { name: 3, value: 3.0.0 }, ruby: { name: ruby-2.5, value: 2.5.9 } } include: - { os: { name: MacOS, value: macos-11 }, bundler: { name: 2, value: '' }, ruby: { name: ruby-2.6, value: 2.6.9 } } - { os: { name: MacOS, value: macos-11 }, bundler: { name: 2, value: '' }, ruby: { name: ruby-3.0, value: 3.0.3 } } env: RGV: .. RUBYOPT: --disable-gems steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby.value }} bundler: none - name: Install graphviz (Ubuntu) run: sudo apt-get install graphviz -y if: matrix.bundler.value == '' && matrix.os.name == 'Ubuntu' - name: Install graphviz (MacOS) run: brew install graphviz if: matrix.bundler.value == '' && matrix.os.name == 'MacOS' - name: Replace version run: BUNDLER_SPEC_SUB_VERSION=${{ matrix.bundler.value }} bin/rake override_version if: matrix.bundler.value != '' working-directory: ./bundler - name: Prepare dependencies run: | bin/rake spec:parallel_deps working-directory: ./bundler - name: Run Test run: | bin/rake spec:all working-directory: ./bundler timeout-minutes: 60 rubygems-3.3.5/.github/workflows/daily-bundler.yml000066400000000000000000000024561416756346600222630ustar00rootroot00000000000000name: daily-bundler on: schedule: - cron: '0 0 * * *' jobs: daily_bundler: name: Bundler (ruby-head) runs-on: ubuntu-20.04 if: github.repository == 'rubygems/rubygems' env: RGV: .. steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ruby-head bundler: none - name: Show Ruby version run: ruby --version - name: Prepare dependencies run: | sudo apt-get install graphviz -y bin/rake spec:parallel_deps working-directory: ./bundler - name: Run Test run: | bin/rake spec:all working-directory: ./bundler - name: Get previous status if: always() run: echo "OLD_STATUS=$(curl -sS 'https://api.github.com/repos/rubygems/rubygems/actions/workflows/daily-bundler.yml/runs?event=schedule&branch=master' | jq '.workflow_runs | .[1].conclusion')" >> $GITHUB_ENV - uses: 8398a7/action-slack@v3 with: status: ${{ job.status }} fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required if: failure() && env.OLD_STATUS == '"success"' timeout-minutes: 60 rubygems-3.3.5/.github/workflows/daily-rubygems.yml000066400000000000000000000023771416756346600224670ustar00rootroot00000000000000name: daily-rubygems on: schedule: - cron: '0 0 * * *' jobs: daily_rubygems: name: Rubygems (ruby-head) runs-on: ubuntu-20.04 if: github.repository == 'rubygems/rubygems' strategy: fail-fast: false matrix: ruby: [ ruby-head, truffleruby-head ] env: TRUFFLERUBYOPT: "--experimental-options --testing-rubygems" steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler: none - name: Show Ruby version run: ruby --version - name: Test rubygems run: | rake setup rake test - name: Get previous status if: always() run: echo "OLD_STATUS=$(curl -sS 'https://api.github.com/repos/rubygems/rubygems/actions/workflows/daily-rubygems.yml/runs?event=schedule&branch=master' | jq '.workflow_runs | .[1].conclusion')" >> $GITHUB_ENV - uses: 8398a7/action-slack@v3 with: status: ${{ job.status }} fields: repo,message,commit,action,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required if: failure() && env.OLD_STATUS == '"success"' timeout-minutes: 60 rubygems-3.3.5/.github/workflows/install-rubygems.yml000066400000000000000000000073471416756346600230350ustar00rootroot00000000000000name: install-rubygems on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: install_rubygems_ubuntu: name: Install Rubygems on Ubuntu (${{ matrix.ruby.name }}, ${{ matrix.openssl.name }}) runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: ruby: - { name: "2.3", value: 2.3.8 } - { name: "2.4", value: 2.4.10 } - { name: "2.5", value: 2.5.9 } - { name: "2.6", value: 2.6.9 } - { name: "2.7", value: 2.7.5 } - { name: "3.0", value: 3.0.3 } - { name: jruby-9.3, value: jruby-9.3.2.0 } - { name: truffleruby-21, value: truffleruby-21.2.0 } openssl: - { name: "openssl", value: true } - { name: "no-openssl", value: false } steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby.value }} bundler: none - name: Check successful install without warnings run: | ruby -Ilib -S rake install 2> errors.txt || (cat errors.txt && exit 1) test ! -s errors.txt || (cat errors.txt && exit 1) - name: Check downgrading run: gem update --system 3.2.32 - name: Check installing fileutils run: gem install fileutils - name: Check installing with upgraded fileutils run: | ruby -Ilib -S rake install 2> errors.txt || (cat errors.txt && exit 1) test ! -s errors.txt || (cat errors.txt && exit 1) - name: Run a local rubygems command run: gem list bundler env: RUBYOPT: -Itest/rubygems/fake_certlib if: matrix.openssl.value == false - name: Run a local rubygems command run: gem list bundler if: matrix.openssl.value == true - name: Run a remote rubygems command run: gem outdated if: matrix.openssl.value == true - name: Run bundler installed as a default gem run: bundle --version - name: Check bundler man pages were installed and are properly picked up run: bundle install --help | grep -q BUNDLE-INSTALL - name: Check bundler fallback man pages are properly picked up run: sudo rm $(which man) && bundle install --help - name: Build bundler run: gem build bundler.gemspec working-directory: ./bundler - name: Install built bundler run: gem install bundler-*.gem --verbose --backtrace > output.txt working-directory: ./bundler - name: Check bundler install didn't hit the network run: if grep -q 'GET http' output.txt; then false; else true; fi working-directory: ./bundler - name: Check rails can be installed run: gem install rails --verbose --backtrace timeout-minutes: 10 install_rubygems_windows: name: Install Rubygems on Windows (${{ matrix.ruby.name }}) runs-on: windows-2019 strategy: fail-fast: false matrix: ruby: - { name: "3.0", value: 3.0.3 } - { name: jruby-9.3, value: jruby-9.3.2.0 } steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby.value }} bundler: none - name: Install rubygems run: ruby setup.rb shell: bash - name: Check installation didn't modify any source controlled files run: git diff --exit-code shell: bash - name: Check we can install a Gemfile with git sources run: bundle init && bundle add fileutils --git https://github.com/ruby/fileutils shell: bash timeout-minutes: 10 rubygems-3.3.5/.github/workflows/jruby-bundler.yml000066400000000000000000000020261416756346600223050ustar00rootroot00000000000000name: jruby-bundler on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: jruby_bundler: name: Bundler (JRuby) runs-on: ubuntu-20.04 env: RGV: .. steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: jruby-9.3.2.0 bundler: none - name: Prepare dependencies run: | bin/rake spec:parallel_deps working-directory: ./bundler - name: Run Test run: | bin/parallel_rspec --tag jruby working-directory: ./bundler - name: Install local bundler run: | bin/rake install:local working-directory: ./bundler - name: Run a warbler project run: | cd spec/realworld/fixtures/warbler bundle install bundle exec warble java -jar warbler.jar working-directory: ./bundler rubygems-3.3.5/.github/workflows/legacy-git.yml000066400000000000000000000012721416756346600215500ustar00rootroot00000000000000name: legacy-git on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: legacy_git: name: Verify behavior under old git runs-on: ubuntu-20.04 container: image: centos/ruby-27-centos7@sha256:b24b875dcdb6cb8f2145706dcaac74bb25ae3b9d9f7ba69d7ae700a7aee1e1bd options: --user=root steps: - uses: actions/checkout@v2 - name: Install rubygems run: ruby setup.rb - name: Check we can install a Gemfile with git sources run: bundle init && bundle add fileutils --git https://github.com/ruby/fileutils timeout-minutes: 10 rubygems-3.3.5/.github/workflows/macos-rubygems.yml000066400000000000000000000015621416756346600224620ustar00rootroot00000000000000name: macos-rubygems on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: macos_rubygems: name: Rubygems on MacOS (${{ matrix.ruby.name }}) runs-on: macos-11 strategy: fail-fast: false matrix: ruby: - { name: "2.4", value: 2.4.10 } - { name: "2.5", value: 2.5.9 } - { name: "2.6", value: 2.6.9 } - { name: "2.7", value: 2.7.5 } - { name: "3.0", value: 3.0.3 } steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby.value }} bundler: none - name: Install Dependencies run: rake setup - name: Run Test run: rake test timeout-minutes: 15 rubygems-3.3.5/.github/workflows/older-rubygems-bundler.yml000066400000000000000000000067601416756346600241230ustar00rootroot00000000000000name: older-rubygems-bundler on: pull_request: paths: - bundler/** - .github/workflows/older-rubygems-bundler.yml - .rubocop_bundler.yml push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: older_rubygems_bundler: name: Bundler ${{ matrix.bundler.name }} against old Rubygems (${{ matrix.ruby.name }}, ${{ matrix.rgv.name }}) runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: include: - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.3, value: 2.3.8 }, rgv: { name: rgv-2.5, value: v2.5.2 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.3, value: 2.3.8 }, rgv: { name: rgv-3.2, value: v3.2.32 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.4, value: 2.4.10 }, rgv: { name: rgv-2.6, value: v2.6.14 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.4, value: 2.4.10 }, rgv: { name: rgv-3.2, value: v3.2.32 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.5, value: 2.5.9 }, rgv: { name: rgv-2.7, value: v2.7.11 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.5, value: 2.5.9 }, rgv: { name: rgv-3.2, value: v3.2.32 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.6, value: 2.6.9 }, rgv: { name: rgv-3.0, value: v3.0.9 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.6, value: 2.6.9 }, rgv: { name: rgv-3.2, value: v3.2.30 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.7, value: 2.7.5 }, rgv: { name: rgv-3.1, value: v3.1.5 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-2.7, value: 2.7.5 }, rgv: { name: rgv-3.2, value: v3.2.32 } } - { bundler: { name: 2, value: '' }, ruby: { name: ruby-3.0, value: 3.0.3 }, rgv: { name: rgv-3.2, value: v3.2.32 } } - { bundler: { name: 3, value: 3.0.0 }, ruby: { name: ruby-2.6, value: 2.6.9 }, rgv: { name: rgv-3.2, value: v3.2.32 } } - { bundler: { name: 3, value: 3.0.0 }, ruby: { name: ruby-2.7, value: 2.7.5 }, rgv: { name: rgv-3.2, value: v3.2.32 } } - { bundler: { name: 3, value: 3.0.0 }, ruby: { name: ruby-3.0, value: 3.0.3 }, rgv: { name: rgv-3.2, value: v3.2.32 } } env: RGV: ${{ matrix.rgv.value }} RUBYOPT: --disable-gems steps: - uses: actions/checkout@v2 - uses: actions/checkout@v2 with: path: bundler/tmp/rubygems ref: ${{ matrix.rgv.value }} - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby.value }} bundler: none - name: Install graphviz run: sudo apt-get install graphviz -y if: matrix.bundler.value == '' - name: Replace version run: BUNDLER_SPEC_SUB_VERSION=${{ matrix.bundler.value }} bin/rake override_version if: matrix.bundler.value != '' working-directory: ./bundler - name: Prepare dependencies run: | bin/rake spec:parallel_deps working-directory: ./bundler - name: Run Test run: | bin/rake spec:all working-directory: ./bundler - name: Run Rubygems Requirement tests against local bundler, to make sure bundler monkeypatches preserve the behaviour run: | ruby -I../../lib:lib:test test/rubygems/test_gem_requirement.rb working-directory: ./bundler/tmp/rubygems timeout-minutes: 60 rubygems-3.3.5/.github/workflows/ruby-core.yml000066400000000000000000000035701416756346600214350ustar00rootroot00000000000000name: ruby-core on: pull_request: push: branches: - master concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: ruby_core: name: ${{matrix.target}} under a ruby-core setup runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: target: [Rubygems, Bundler] steps: - name: Set up latest ruby head uses: ruby/setup-ruby@v1 with: ruby-version: head bundler: none - name: Save latest buildable revision to environment run: echo "REF=$(ruby -v | cut -d')' -f1 | cut -d' ' -f5)" >> $GITHUB_ENV - uses: actions/checkout@v2 with: repository: ruby/ruby path: ruby/ruby fetch-depth: 10 - name: Checkout the latest buildable revision run: git switch -c ${{ env.REF }} working-directory: ruby/ruby - name: Install libraries run: | set -x sudo apt-get update -q || : sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev bison autoconf ruby - name: Build Ruby run: | autoconf ./configure -C --disable-install-doc make -j2 working-directory: ruby/ruby - uses: actions/checkout@v2 with: path: rubygems/rubygems - name: Sync tools run: | ruby tool/sync_default_gems.rb rubygems working-directory: ruby/ruby - name: Test RubyGems run: make -j2 -s test-all TESTS="rubygems --no-retry" working-directory: ruby/ruby if: matrix.target == 'Rubygems' - name: Test Bundler run: | git add . make test-bundler-parallel working-directory: ruby/ruby if: matrix.target == 'Bundler' rubygems-3.3.5/.github/workflows/truffleruby-bundler.yml000066400000000000000000000013051416756346600235220ustar00rootroot00000000000000name: truffleruby-bundler on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: truffleruby_bundler: name: Bundler (Truffleruby) runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: truffleruby-21.2 bundler: none - name: Prepare dependencies run: | bin/rake spec:parallel_deps working-directory: ./bundler - name: Run Test run: | bin/parallel_rspec --tag truffleruby working-directory: ./bundler rubygems-3.3.5/.github/workflows/ubuntu-lint.yml000066400000000000000000000015321416756346600220100ustar00rootroot00000000000000name: ubuntu-lint on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: ubuntu_lint: name: Lint runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: 3.0.3 bundler: none - name: Install Dependencies run: rake setup - name: Run Lint run: rake rubocop - name: Generate docs run: rake docs - name: Install & Check Dependencies run: bin/rake dev:frozen_deps working-directory: ./bundler - name: "Check RVM integration, man:check" run: bin/rake check_rvm_integration man:check working-directory: ./bundler timeout-minutes: 15 rubygems-3.3.5/.github/workflows/ubuntu-rubygems.yml000066400000000000000000000026511416756346600227020ustar00rootroot00000000000000name: ubuntu-rubygems on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: ubuntu_rubygems: name: Rubygems on Ubuntu (${{ matrix.ruby.name }}) runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: ruby: - { name: "2.3", value: 2.3.8 } - { name: "2.4", value: 2.4.10 } - { name: "2.5", value: 2.5.9 } - { name: "2.6", value: 2.6.9 } - { name: "2.7", value: 2.7.5 } - { name: "3.0", value: 3.0.3 } - { name: jruby-9.3, value: jruby-9.3.2.0 } - { name: truffleruby-21, value: truffleruby-21.2.0 } steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby.value }} bundler: none - name: Install Dependencies run: rake setup - name: Run Test run: rake test if: "!startsWith(matrix.ruby.name, 'truffleruby') && !startsWith(matrix.ruby.name, 'jruby')" - name: Run Test (JRuby) run: JRUBY_OPTS=--debug rake test if: startsWith(matrix.ruby.name, 'jruby') - name: Run Test (Truffleruby) run: TRUFFLERUBYOPT="--experimental-options --testing-rubygems" rake test if: startsWith(matrix.ruby.name, 'truffleruby') timeout-minutes: 60 rubygems-3.3.5/.github/workflows/windows-bundler.yml000066400000000000000000000023131416756346600226430ustar00rootroot00000000000000name: windows-bundler on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: windows_bundler: name: Bundler on Windows (${{ matrix.ruby.name }}) runs-on: windows-2019 env: RGV: .. strategy: fail-fast: false matrix: ruby: - { name: jruby-9.3, value: jruby-9.3.2.0 } - { name: ruby-2.5, value: 2.5.9 } - { name: ruby-3.0, value: 3.0.3 } steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby.value }} bundler: none - name: Setup java uses: actions/setup-java@v2 with: distribution: temurin java-version: 11 if: startsWith(matrix.ruby.name, 'jruby') - name: Install dependencies run: | bin/rake spec:parallel_deps working-directory: ./bundler shell: bash - name: Run specs run: | bin/parallel_rspec working-directory: ./bundler shell: bash if: "!startsWith(matrix.ruby.name, 'jruby')" rubygems-3.3.5/.github/workflows/windows-rubygems.yml000066400000000000000000000017211416756346600230470ustar00rootroot00000000000000name: windows-rubygems on: pull_request: push: branches: - master - 3.3 concurrency: group: ci-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: windows_rubygems: name: Rubygems on Windows (${{ matrix.ruby.name }}) runs-on: windows-2019 strategy: fail-fast: false matrix: ruby: - { name: "2.4", value: 2.4.10 } - { name: "2.5", value: 2.5.9 } - { name: "2.6", value: 2.6.9 } - { name: "2.7", value: 2.7.5 } - { name: "3.0", value: 3.0.3 } - { name: mswin, value: mswin } steps: - uses: actions/checkout@v2 - name: Setup ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby.value }} bundler: none - name: Install Dependencies and Run Test run: | rake setup rake test env: BUNDLE_WITHOUT: lint timeout-minutes: 15 rubygems-3.3.5/.gitignore000066400000000000000000000001441416756346600153700ustar00rootroot00000000000000*.rbc *.swp .DS_Store /.idea /.rdoc /.rvmrc /.envrc /TAGS /doc /misc /notes.txt /pkg /tmp /coverage rubygems-3.3.5/.rubocop.yml000066400000000000000000000051421416756346600156550ustar00rootroot00000000000000require: rubocop-performance AllCops: DisabledByDefault: true Exclude: - 'bundler/**/*' - 'lib/rubygems/resolver/molinillo/**/*' - 'lib/rubygems/tsort/**/*' - 'lib/rubygems/optparse/**/*' - 'pkg/**/*' - 'tmp/**/*' TargetRubyVersion: 2.3 Layout/AccessModifierIndentation: Enabled: true Layout/ArrayAlignment: Enabled: true Layout/BlockAlignment: Enabled: true Layout/CaseIndentation: Enabled: true Layout/ClosingParenthesisIndentation: Enabled: true Layout/CommentIndentation: Enabled: true Layout/ElseAlignment: Enabled: true Layout/EmptyLinesAroundAccessModifier: Enabled: true # Force Unix line endings. Layout/EndOfLine: Enabled: true EnforcedStyle: lf Layout/EmptyLines: Enabled: true Layout/EmptyLinesAroundClassBody: Enabled: true Layout/EmptyLinesAroundMethodBody: Enabled: true Layout/ExtraSpacing: Enabled: true Layout/FirstHashElementIndentation: Enabled: true EnforcedStyle: consistent Layout/FirstArrayElementIndentation: Enabled: true EnforcedStyle: consistent Layout/IndentationConsistency: Enabled: true Layout/IndentationWidth: Enabled: true Layout/LeadingEmptyLines: Enabled: true Layout/SpaceAroundOperators: Enabled: true Layout/SpaceInsideBlockBraces: Enabled: true SpaceBeforeBlockParameters: false Layout/SpaceInsideParens: Enabled: true Layout/TrailingEmptyLines: Enabled: true Layout/TrailingWhitespace: Enabled: true Lint/DuplicateMethods: Enabled: true Lint/ParenthesesAsGroupedExpression: Enabled: true Lint/Debugger: Enabled: true Layout/EndAlignment: Enabled: true Naming/HeredocDelimiterCase: Enabled: true Naming/HeredocDelimiterNaming: Enabled: true ForbiddenDelimiters: - ^RB$ Performance/StartWith: Enabled: true Performance/StringReplacement: Enabled: true Security/Open: Enabled: true Style/Encoding: Enabled: true Exclude: - test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec Style/EvalWithLocation: Enabled: true Style/IfInsideElse: Enabled: false Style/MethodCallWithoutArgsParentheses: Enabled: true Style/MethodDefParentheses: Enabled: true Style/MultilineIfThen: Enabled: true Style/MutableConstant: Enabled: true Style/NilComparison: Enabled: true Style/BlockDelimiters: Enabled: true Style/PercentLiteralDelimiters: Enabled: true # Having these make it easier to *not* forget to add one when adding a new # value and you can simply copy the previous line. Style/TrailingCommaInArrayLiteral: Enabled: true EnforcedStyleForMultiline: comma Style/TrailingCommaInHashLiteral: Enabled: true EnforcedStyleForMultiline: comma rubygems-3.3.5/.rubocop_bundler.yml000066400000000000000000000300611416756346600173660ustar00rootroot00000000000000require: rubocop-performance AllCops: DisabledByDefault: true TargetRubyVersion: 2.3 Include: - bundler/**/*.rb - bundler/**/*.gemspec - bundler/**/Rakefile - bundler/**/Gemfile - bundler/**/*.rake Exclude: - bin/* - pkg/**/* - util/**/* - bundler/tmp/**/* - bundler/lib/bundler/vendor/**/* DisplayCopNames: true CacheRootDirectory: tmp/rubocop MaxFilesInCache: 5000 # Bundler Bundler/DuplicatedGem: Enabled: true Bundler/InsecureProtocolSource: Enabled: true Bundler/OrderedGems: Enabled: true # Gemspec Gemspec/OrderedDependencies: Enabled: true Gemspec/RequiredRubyVersion: Enabled: true # Lint Lint/AmbiguousOperator: Enabled: true Lint/AmbiguousRegexpLiteral: Enabled: true Lint/BigDecimalNew: Enabled: true Lint/BooleanSymbol: Enabled: true Lint/Debugger: Enabled: true Lint/DeprecatedClassMethods: Enabled: true Lint/DuplicateCaseCondition: Enabled: true Lint/DuplicateMethods: Enabled: true Lint/DuplicateHashKey: Enabled: true Lint/EachWithObjectArgument: Enabled: true Lint/ElseLayout: Enabled: true Lint/EmptyEnsure: Enabled: true Lint/EmptyExpression: Enabled: true Lint/EmptyInterpolation: Enabled: true Lint/EndInMethod: Enabled: true Lint/EnsureReturn: Enabled: true Lint/ErbNewArguments: Enabled: true Lint/FlipFlop: Enabled: true Lint/FloatOutOfRange: Enabled: true Lint/FormatParameterMismatch: Enabled: true Lint/ImplicitStringConcatenation: Enabled: true Lint/InheritException: Enabled: true Lint/LiteralAsCondition: Enabled: true Lint/LiteralInInterpolation: Enabled: true Lint/Loop: Enabled: true Lint/MultipleComparison: Enabled: true Lint/NestedPercentLiteral: Enabled: true Lint/NextWithoutAccumulator: Enabled: true Lint/NonLocalExitFromIterator: Enabled: true Lint/OrderedMagicComments: Enabled: true Lint/ParenthesesAsGroupedExpression: Enabled: true Lint/PercentStringArray: Enabled: true Lint/PercentSymbolArray: Enabled: true Lint/RandOne: Enabled: true Lint/RedundantWithIndex: Enabled: true Lint/RedundantWithObject: Enabled: true Lint/RegexpAsCondition: Enabled: true Lint/RequireParentheses: Enabled: true Lint/RescueException: Enabled: true Lint/RescueType: Enabled: true Lint/ReturnInVoidContext: Enabled: true Lint/SafeNavigationChain: Enabled: true Lint/SafeNavigationConsistency: Enabled: true Lint/ScriptPermission: Enabled: true Exclude: - 'bundler/lib/bundler/templates/Executable' Lint/ShadowedArgument: Enabled: true Lint/ShadowingOuterLocalVariable: Enabled: true Lint/RedundantStringCoercion: Enabled: true Lint/Syntax: Enabled: true Lint/UnderscorePrefixedVariableName: Enabled: true Lint/UnifiedInteger: Enabled: true Lint/UnreachableCode: Enabled: true Lint/UnusedBlockArgument: Enabled: true Lint/UriEscapeUnescape: Enabled: true Lint/UriRegexp: Enabled: true Lint/UselessAccessModifier: Enabled: true Lint/UselessComparison: Enabled: true Lint/UselessElseWithoutRescue: Enabled: true Lint/UselessSetterCall: Enabled: true Lint/Void: Enabled: true # Layout Layout/AccessModifierIndentation: Enabled: true Layout/ArrayAlignment: Enabled: true Layout/ParameterAlignment: Enabled: true EnforcedStyle: with_fixed_indentation Layout/BlockAlignment: Enabled: true Layout/CaseIndentation: Enabled: true Layout/ClosingParenthesisIndentation: Enabled: true Layout/CommentIndentation: Enabled: true Layout/ConditionPosition: Enabled: true Layout/DefEndAlignment: Enabled: true Layout/DotPosition: Enabled: true EnforcedStyle: trailing Layout/ElseAlignment: Enabled: true Layout/EmptyComment: Enabled: true Layout/EmptyLineAfterMagicComment: Enabled: true Layout/EmptyLineBetweenDefs: Enabled: true Layout/EmptyLines: Enabled: true Layout/EmptyLinesAroundAccessModifier: Enabled: true Layout/EmptyLinesAroundArguments: Enabled: true Layout/EmptyLinesAroundBeginBody: Enabled: true Layout/EmptyLinesAroundBlockBody: Enabled: true Layout/EmptyLinesAroundClassBody: Enabled: true Layout/EmptyLinesAroundExceptionHandlingKeywords: Enabled: true Layout/EmptyLinesAroundMethodBody: Enabled: true Layout/EmptyLinesAroundModuleBody: Enabled: true Layout/EndAlignment: Enabled: true EnforcedStyleAlignWith: variable AutoCorrect: true Layout/EndOfLine: Enabled: true EnforcedStyle: lf Layout/ExtraSpacing: Enabled: true Layout/AssignmentIndentation: Enabled: true Layout/FirstArrayElementIndentation: Enabled: true EnforcedStyle: consistent Layout/FirstHashElementIndentation: Enabled: true EnforcedStyle: special_inside_parentheses Layout/FirstArgumentIndentation: Enabled: true Layout/IndentationConsistency: Enabled: true Layout/IndentationWidth: Enabled: true Layout/InitialIndentation: Enabled: true Layout/LeadingEmptyLines: Enabled: true Layout/LeadingCommentSpace: Enabled: true Layout/MultilineArrayBraceLayout: Enabled: true Layout/MultilineBlockLayout: Enabled: true Layout/MultilineHashBraceLayout: Enabled: true Layout/MultilineMethodCallBraceLayout: Enabled: true Layout/MultilineMethodDefinitionBraceLayout: Enabled: true Layout/MultilineOperationIndentation: Enabled: true EnforcedStyle: indented Layout/SpaceBeforeComma: Enabled: true Layout/SpaceBeforeComment: Enabled: true Layout/SpaceBeforeFirstArg: Enabled: true Layout/SpaceBeforeSemicolon: Enabled: true Layout/SpaceInLambdaLiteral: Enabled: true Layout/SpaceInsideArrayLiteralBrackets: Enabled: true Layout/SpaceInsideArrayPercentLiteral: Enabled: true Layout/SpaceInsideBlockBraces: Enabled: true SpaceBeforeBlockParameters: false Exclude: - bundler/lib/bundler/templates/Gemfile - bundler/lib/bundler/templates/gems.rb Layout/SpaceInsideHashLiteralBraces: Enabled: true Layout/SpaceInsideParens: Enabled: true Layout/SpaceInsidePercentLiteralDelimiters: Enabled: true Layout/SpaceInsideRangeLiteral: Enabled: true Layout/SpaceInsideReferenceBrackets: Enabled: true Layout/SpaceInsideStringInterpolation: Enabled: true Layout/Tab: Enabled: true Layout/TrailingEmptyLines: Enabled: true Layout/TrailingWhitespace: Enabled: true # Naming Naming/AsciiIdentifiers: Enabled: true Naming/BinaryOperatorParameterName: Enabled: true Naming/ClassAndModuleCamelCase: Enabled: true Naming/ConstantName: Enabled: true Naming/FileName: Enabled: true Exclude: - 'bundler/spec/realworld/fixtures/warbler/bin/warbler-example.rb' Naming/HeredocDelimiterCase: Enabled: true Naming/HeredocDelimiterNaming: Enabled: true ForbiddenDelimiters: - ^RB$ Naming/MethodName: Enabled: true Naming/BlockParameterName: Enabled: true Naming/VariableName: Enabled: true Naming/VariableNumber: Enabled: true # Performance Performance/Casecmp: Enabled: true Performance/CompareWithBlock: Enabled: true Performance/Count: Enabled: true Performance/Detect: Enabled: true Performance/DoubleStartEndWith: Enabled: true Performance/EndWith: Enabled: true Performance/FixedSize: Enabled: true Performance/RegexpMatch: Enabled: true Performance/ReverseEach: Enabled: true Performance/Size: Enabled: true Performance/StartWith: Enabled: true Performance/StringReplacement: Enabled: true Performance/TimesMap: Enabled: true Performance/UriDefaultParser: Enabled: true # Security Security/JSONLoad: Enabled: true Security/Open: Enabled: true # Style Style/Alias: Enabled: true EnforcedStyle: prefer_alias_method Style/AndOr: Enabled: true EnforcedStyle: always Style/ArrayJoin: Enabled: true Style/AsciiComments: Enabled: true Style/Attr: Enabled: true Style/BarePercentLiterals: Enabled: true Style/BeginBlock: Enabled: true Style/BlockComments: Enabled: true Style/BlockDelimiters: Enabled: true Style/CharacterLiteral: Enabled: true Style/ClassCheck: Enabled: true Style/ClassMethods: Enabled: true Style/ClassVars: Enabled: true Style/ColonMethodCall: Enabled: true Style/ColonMethodDefinition: Enabled: true Style/CommandLiteral: Enabled: true Style/CommentAnnotation: Enabled: true Style/DefWithParentheses: Enabled: true Style/Dir: Enabled: true Style/DoubleNegation: Enabled: true Style/EachForSimpleLoop: Enabled: true Style/EmptyBlockParameter: Enabled: true Style/EmptyCaseCondition: Enabled: true Style/EmptyElse: Enabled: true Style/EmptyLambdaParameter: Enabled: true Style/Encoding: Enabled: true Style/EndBlock: Enabled: true Style/EvalWithLocation: Enabled: true Style/EvenOdd: Enabled: true Style/For: Enabled: true Style/FormatString: Enabled: true Style/FrozenStringLiteralComment: Enabled: true EnforcedStyle: always # 1.8.7 support Style/HashSyntax: Enabled: true EnforcedStyle: hash_rockets Style/IdenticalConditionalBranches: Enabled: true Style/IfInsideElse: Enabled: false Style/IfUnlessModifierOfIfUnless: Enabled: true Style/IfWithSemicolon: Enabled: true Style/InfiniteLoop: Enabled: true Style/LambdaCall: Enabled: true Style/LineEndConcatenation: Enabled: true Style/MethodCallWithoutArgsParentheses: Enabled: true Style/MethodDefParentheses: Enabled: true Style/MinMax: Enabled: true Style/MixinGrouping: Enabled: true Style/MultilineIfThen: Enabled: true Style/MultilineMemoization: Enabled: true Style/MultilineTernaryOperator: Enabled: true Style/MultipleComparison: Enabled: true Style/MutableConstant: Enabled: true Style/NegatedIf: Enabled: true Style/NegatedWhile: Enabled: true Style/NestedModifier: Enabled: true Style/NestedParenthesizedCalls: Enabled: true Style/NestedTernaryOperator: Enabled: true Style/Next: Enabled: true Style/NilComparison: Enabled: true Style/NonNilCheck: Enabled: true Style/Not: Enabled: true Style/NumericLiteralPrefix: Enabled: true Style/NumericLiterals: Enabled: true Style/OneLineConditional: Enabled: true Style/OptionalArguments: Enabled: true Style/OrAssignment: Enabled: true Style/ParallelAssignment: Enabled: true Style/ParenthesesAroundCondition: Enabled: true Style/PercentLiteralDelimiters: Enabled: true Style/PercentQLiterals: Enabled: true Style/PreferredHashMethods: Enabled: true Style/Proc: Enabled: true Style/RandomWithOffset: Enabled: true Style/RedundantBegin: Enabled: true Style/RedundantConditional: Enabled: true Lint/RedundantCopDisableDirective: Enabled: true Lint/RedundantCopEnableDirective: Enabled: true Style/RedundantException: Enabled: true Style/RedundantInterpolation: Enabled: true Style/RedundantParentheses: Enabled: true Style/RedundantSelf: Enabled: true Style/RedundantSortBy: Enabled: true Lint/RedundantSplatExpansion: Enabled: true Style/RegexpLiteral: Enabled: true Style/RescueModifier: Enabled: true Style/RescueStandardError: Enabled: true Style/Sample: Enabled: true Style/SelfAssignment: Enabled: true Style/Semicolon: Enabled: true # We adopted raise instead of fail. Style/SignalException: Enabled: true EnforcedStyle: only_raise Style/SingleLineMethods: Enabled: true Style/StabbyLambdaParentheses: Enabled: true Style/StderrPuts: Enabled: true Style/StringLiterals: Enabled: true EnforcedStyle: double_quotes Style/StringLiteralsInInterpolation: Enabled: true EnforcedStyle: double_quotes Style/Strip: Enabled: true Style/StructInheritance: Enabled: true Style/SymbolArray: Enabled: true EnforcedStyle: brackets Style/SymbolLiteral: Enabled: true Style/SymbolProc: Enabled: true Style/TernaryParentheses: Enabled: true Style/TrailingBodyOnClass: Enabled: true Style/TrailingBodyOnMethodDefinition: Enabled: true Style/TrailingBodyOnModule: Enabled: true # Having these make it easier to *not* forget to add one when adding a new # value and you can simply copy the previous line. Style/TrailingCommaInArrayLiteral: Enabled: true EnforcedStyleForMultiline: comma Style/TrailingCommaInHashLiteral: Enabled: true EnforcedStyleForMultiline: comma Style/TrailingMethodEndStatement: Enabled: true Style/UnlessElse: Enabled: true Style/YodaCondition: Enabled: true rubygems-3.3.5/CHANGELOG.md000066400000000000000000006313151416756346600152230ustar00rootroot00000000000000# 3.3.5 / 2022-01-12 ## Enhancements: * Don't activate `yaml` gem from RubyGems. Pull request #5266 by deivid-rodriguez * Let `gem fetch` understand `:` syntax and `--[no-]suggestions` flag. Pull request #5242 by ximenasandoval * Installs bundler 2.3.5 as a default gem. ## Bug fixes: * Fix `gem install --force` crash. Pull request #5262 by deivid-rodriguez * Fix longstanding `gem install` failure on JRuby. Pull request #5228 by deivid-rodriguez ## Documentation: * Markup `Gem::Specification` documentation with RDoc notations. Pull request #5268 by nobu # 3.3.4 / 2021-12-29 ## Enhancements: * Don't redownload `rubygems-update` package if already there. Pull request #5230 by deivid-rodriguez * Installs bundler 2.3.4 as a default gem. ## Bug fixes: * Fix `gem update --system` crashing when latest version not supported. Pull request #5191 by deivid-rodriguez ## Performance: * Make SpecificationPolicy autoload constant. Pull request #5222 by pocke # 3.3.3 / 2021-12-24 ## Enhancements: * Installs bundler 2.3.3 as a default gem. ## Bug fixes: * Fix gem installation failing in Solaris due to bad `IO#flock` usage. Pull request #5216 by mame # 3.3.2 / 2021-12-23 ## Enhancements: * Fix deprecations when activating DidYouMean for misspelled command suggestions. Pull request #5211 by yuki24 * Installs bundler 2.3.2 as a default gem. ## Bug fixes: * Fix gemspec truncation. Pull request #5208 by deivid-rodriguez # 3.3.1 / 2021-12-22 ## Enhancements: * Fix compatibility with OpenSSL 3.0. Pull request #5196 by rhenium * Remove hard errors when matching major bundler not found. Pull request #5181 by deivid-rodriguez * Installs bundler 2.3.1 as a default gem. # 3.3.0 / 2021-12-21 ## Breaking changes: * Removed deprecated `gem server` command. Pull request #5034 by hsbt * Remove MacOS specific gem layout. Pull request #4833 by deivid-rodriguez * Default `gem update` documentation format is now only `ri`. Pull request #3888 by hsbt ## Features: * Give command misspelled suggestions via `did_you_mean` gem. Pull request #3904 by hsbt ## Performance: * Avoid some unnecessary stat calls. Pull request #3887 by kares * Improve spell checking suggestion performance by vendoring`DidYouMean::Levenshtein.distance` from `did_you_mean-1.4.0`. Pull request #3856 by austinpray ## Enhancements: * Set `BUNDLER_VERSION` when `bundle __` is passed. Pull request #5180 by deivid-rodriguez * Don't require `rdoc` for `gem uninstall`. Pull request #4691 by ndren * More focused rescue on extension builder exception to get more information on errors. Pull request #4189 by deivid-rodriguez * Installs bundler 2.3.0 as a default gem. ## Bug fixes: * Fix encoding mismatch issues when writing gem packages. Pull request #5162 by deivid-rodriguez * Fix broken brew formula due to loading `operating_system.rb` customizations too late. Pull request #5154 by deivid-rodriguez * Properly fetch `Gem#latest_spec_for` with multiple sources. Pull request #2764 by kevlogan90 * Fix upgrade crashing when multiple versions of `fileutils` installed. Pull request #5140 by deivid-rodriguez # 3.2.33 / 2021-12-07 ## Deprecations: * Deprecate typo name. Pull request #5109 by nobu ## Enhancements: * Add login & logout alias for the signin & signout commands. Pull request #5133 by colby-swandale * Fix race conditions when reading & writing gemspecs concurrently. Pull request #4408 by deivid-rodriguez * Installs bundler 2.2.33 as a default gem. ## Bug fixes: * Fix `ruby setup.rb` trying to write outside of `--destdir`. Pull request #5053 by deivid-rodriguez ## Documentation: * Move required_ruby_version gemspec attribute to recommended section. Pull request #5130 by simi * Ignore to generate the documentation from vendored libraries. Pull request #5118 by hsbt # 3.2.32 / 2021-11-23 ## Enhancements: * Refactor installer thread safety protections. Pull request #5050 by deivid-rodriguez * Allow gem activation from `operating_system.rb`. Pull request #5044 by deivid-rodriguez * Installs bundler 2.2.32 as a default gem. # 3.2.31 / 2021-11-08 ## Enhancements: * Don't pass empty `DESTDIR` to `nmake` since it works differently from standard `make`. Pull request #5057 by hsbt * Fix `gem install` vs `gem fetch` inconsistency. Pull request #5037 by deivid-rodriguez * Lazily load and vendor `optparse`. Pull request #4881 by deivid-rodriguez * Use a vendored copy of `tsort` internally. Pull request #5027 by deivid-rodriguez * Install bundler 2.2.31 as a default gem. ## Bug fixes: * Fix `ruby setup.rb` when `--prefix` is passed. Pull request #5051 by deivid-rodriguez * Don't apply `--destdir` twice when running `setup.rb`. Pull request #2768 by alyssais # 3.2.30 / 2021-10-26 ## Enhancements: * Add support to build and sign certificates with multiple key algorithms. Pull request #4991 by doodzik * Avoid loading the `digest` gem unnecessarily. Pull request #4979 by deivid-rodriguez * Prefer `require_relative` for all internal requires. Pull request #4978 by deivid-rodriguez * Add missing `require` of `time` within `Gem::Request.verify_certificate_message`. Pull request #4975 by nobu * Install bundler 2.2.30 as a default gem. ## Performance: * Speed up `gem install`, specially under Windows. Pull request #4960 by deivid-rodriguez # 3.2.29 / 2021-10-08 ## Enhancements: * Only disallow FIXME/TODO for first word of gemspec description. Pull request #4937 by duckinator * Install bundler 2.2.29 as a default gem. ## Bug fixes: * Fix `wordy` method in `SourceFetchProblem` changing the password of source. Pull request #4910 by Huangxiaodui ## Performance: * Improve `require` performance, particularly on systems with a lot of gems installed. Pull request #4951 by pocke # 3.2.28 / 2021-09-23 ## Enhancements: * Support MINGW-UCRT. Pull request #4925 by hsbt * Only check if descriptions *start with* FIXME/TODO. Pull request #4841 by duckinator * Avoid loading `uri` unnecessarily when activating gems. Pull request #4897 by deivid-rodriguez * Install bundler 2.2.28 as a default gem. ## Bug fixes: * Fix redacted credentials being sent to gemserver. Pull request #4919 by jdliss # 3.2.27 / 2021-09-03 ## Enhancements: * Redact credentails when printing URI. Pull request #4868 by intuxicated * Prefer `require_relative` to `require` for internal requires. Pull request #4858 by deivid-rodriguez * Prioritise gems with higher version for fetching metadata, and stop fetching once we find a valid candidate. Pull request #4843 by intuxicated * Install bundler 2.2.27 as a default gem. # 3.2.26 / 2021-08-17 ## Enhancements: * Enhance the error handling for loading the `rubygems/defaults/operating_system` file. Pull request #4824 by intuxicated * Ignore `RUBYGEMS_GEMDEPS` for the bundler gem. Pull request #4532 by deivid-rodriguez * Install bundler 2.2.26 as a default gem. ## Bug fixes: * Also load user installed rubygems plugins. Pull request #4829 by deivid-rodriguez # 3.2.25 / 2021-07-30 ## Enhancements: * Don't load the `base64` library since it's not used. Pull request #4785 by deivid-rodriguez * Don't load the `resolv` library since it's not used. Pull request #4784 by deivid-rodriguez * Lazily load `shellwords` library. Pull request #4783 by deivid-rodriguez * Check requirements class before loading marshalled requirements. Pull request #4651 by nobu * Install bundler 2.2.25 as a default gem. ## Bug fixes: * Add missing `require 'fileutils'` in `Gem::ConfigFile`. Pull request #4768 by ybiquitous # 3.2.24 / 2021-07-15 ## Enhancements: * Install bundler 2.2.24 as a default gem. ## Bug fixes: * Fix contradictory message about deletion of default gem. Pull request #4739 by jaredbeck ## Documentation: * Add a description about `GEM_HOST_OTP_CODE` to help text. Pull request #4742 by ybiquitous # 3.2.23 / 2021-07-09 ## Enhancements: * Rewind IO source to allow working with contents in memory. Pull request #4729 by drcapulet * Install bundler 2.2.23 as a default gem. # 3.2.22 / 2021-07-06 ## Enhancements: * Allow setting `--otp` via `GEM_HOST_OTP_CODE`. Pull request #4697 by CGA1123 * Fixes for the edge case when openssl library is missing. Pull request #4695 by rhenium * Install bundler 2.2.22 as a default gem. # 3.2.21 / 2021-06-23 ## Enhancements: * Fix typo in OpenSSL detection. Pull request #4679 by osyoyu * Add the most recent licenses from spdx.org. Pull request #4662 by nobu * Simplify setup.rb code to allow installing rubygems from source on truffleruby 21.0 and 21.1. Pull request #4624 by deivid-rodriguez * Install bundler 2.2.21 as a default gem. ## Bug fixes: * Create credentials folder when setting API keys if not there yet. Pull request #4665 by deivid-rodriguez # 3.2.20 / 2021-06-11 ## Security fixes: * Verify plaform before installing to avoid potential remote code execution. Pull request #4667 by sonalkr132 ## Enhancements: * Add better specification policy error description. Pull request #4658 by ceritium * Install bundler 2.2.20 as a default gem. # 3.2.19 / 2021-05-31 ## Enhancements: * Fix `gem help build` output format. Pull request #4613 by tnir * Install bundler 2.2.19 as a default gem. # 3.2.18 / 2021-05-25 ## Enhancements: * Don't leave temporary directory around when building extensions to improve build reproducibility. Pull request #4610 by baloo * Install bundler 2.2.18 as a default gem. # 3.2.17 / 2021-05-05 ## Enhancements: * Only print month & year in deprecation messages. Pull request #3085 by Schwad * Make deprecate method support ruby3's keyword arguments. Pull request #4558 by mame * Update the default bindir on macOS. Pull request #4524 by nobu * Prefer File.open instead of Kernel#open. Pull request #4529 by mame * Install bundler 2.2.17 as a default gem. ## Documentation: * Fix usage messages to reflect the current POSIX-compatible behaviour. Pull request #4551 by graywolf-at-work # 3.2.16 / 2021-04-08 ## Enhancements: * Install bundler 2.2.16 as a default gem. ## Bug fixes: * Correctly handle symlinks. Pull request #2836 by voxik # 3.2.15 / 2021-03-19 ## Enhancements: * Prevent downgrades to untested rubygems versions. Pull request #4460 by deivid-rodriguez * Install bundler 2.2.15 as a default gem. ## Bug fixes: * Fix missing require breaking `gem cert`. Pull request #4464 by lukehinds # 3.2.14 / 2021-03-08 ## Enhancements: * Less wrapping of network errors. Pull request #4064 by deivid-rodriguez * Install bundler 2.2.14 as a default gem. ## Bug fixes: * Revert addition of support for `musl` variants to restore graceful fallback on Alpine. Pull request #4434 by deivid-rodriguez # 3.2.13 / 2021-03-03 ## Enhancements: * Install bundler 2.2.13 as a default gem. ## Bug fixes: * Support non-gnu libc linux platforms. Pull request #4082 by lloeki # 3.2.12 / 2021-03-01 ## Enhancements: * Install bundler 2.2.12 as a default gem. ## Bug fixes: * Restore the ability to manually install extension gems. Pull request #4384 by cfis # 3.2.11 / 2021-02-17 ## Enhancements: * Optionally fallback to IPv4 when IPv6 is unreachable. Pull request #2662 by sonalkr132 * Install bundler 2.2.11 as a default gem. # 3.2.10 / 2021-02-15 ## Enhancements: * Install bundler 2.2.10 as a default gem. ## Documentation: * Add a `gem push` example to `gem help`. Pull request #4373 by deivid-rodriguez * Improve documentation for `required_ruby_version`. Pull request #4343 by AlexWayfer # 3.2.9 / 2021-02-08 ## Enhancements: * Install bundler 2.2.9 as a default gem. ## Bug fixes: * Fix error message when underscore selection can't find bundler. Pull request #4363 by deivid-rodriguez * Fix `Gem::Specification.stubs_for` returning wrong named specs. Pull request #4356 by tompng * Don't error out when activating a binstub unless necessary. Pull request #4351 by deivid-rodriguez * Fix `gem outdated` incorrectly handling platform specific gems. Pull request #4248 by deivid-rodriguez # 3.2.8 / 2021-02-02 ## Enhancements: * Install bundler 2.2.8 as a default gem. ## Bug fixes: * Fix `gem install` crashing on gemspec with nil required_ruby_version. Pull request #4334 by pbernays # 3.2.7 / 2021-01-26 ## Enhancements: * Install bundler 2.2.7 as a default gem. ## Bug fixes: * Generate plugin wrappers with relative requires. Pull request #4317 by deivid-rodriguez # 3.2.6 / 2021-01-18 ## Enhancements: * Fix `Gem::Platform#inspect` showing duplicate information. Pull request #4276 by deivid-rodriguez * Install bundler 2.2.6 as a default gem. ## Bug fixes: * Swallow any system call error in `ensure_gem_subdirs` to support jruby embedded paths. Pull request #4291 by kares * Restore accepting custom make command with extra options as the `make` env variable. Pull request #4271 by terceiro # 3.2.5 / 2021-01-11 ## Enhancements: * Install bundler 2.2.5 as a default gem. ## Bug fixes: * Don't load more specs after the whole set of specs has been setup. Pull request #4262 by deivid-rodriguez * Fix broken `bundler` executable after `gem update --system`. Pull request #4221 by deivid-rodriguez # 3.2.4 / 2020-12-31 ## Enhancements: * Use a CHANGELOG in markdown for rubygems. Pull request #4168 by deivid-rodriguez * Never spawn subshells when building extensions. Pull request #4190 by deivid-rodriguez * Install bundler 2.2.4 as a default gem. ## Bug fixes: * Fix fallback to the old index and installation from it not working. Pull request #4213 by deivid-rodriguez * Fix installing from source on truffleruby. Pull request #4201 by deivid-rodriguez # 3.2.3 / 2020-12-22 ## Enhancements: * Fix misspellings in default API key name. Pull request #4177 by hsbt * Install bundler 2.2.3 as a default gem. ## Bug fixes: * Respect `required_ruby_version` and `required_rubygems_version` constraints when looking for `gem install` candidates. Pull request #4110 by deivid-rodriguez # 3.2.2 / 2020-12-17 ## Enhancements: * Install bundler 2.2.2 as a default gem. ## Bug fixes: * Fix issue where CLI commands making more than one request to rubygems.org needing an OTP code would crash or ask for the code twice. Pull request #4162 by sonalkr132 * Fix building rake extensions that require openssl. Pull request #4165 by deivid-rodriguez * Fix `gem update --system` displaying too many changelog entries. Pull request #4145 by deivid-rodriguez # 3.2.1 / 2020-12-14 ## Enhancements: * Added help message for gem i webrick in gem server command. Pull request #4117 by hsbt * Install bundler 2.2.1 as a default gem. ## Bug fixes: * Added the missing loading of fileutils same as load_specs. Pull request #4124 by hsbt * Fix Resolver::APISet to always include prereleases when necessary. Pull request #4113 by deivid-rodriguez # 3.2.0 / 2020-12-07 ## Enhancements: * Do not override Kernel#warn when there is no need. Pull request #4075 by eregon * Update endpoint of gem signin command. Pull request #3840 by sonalkr132 * Omit deprecated commands from command help output. Pull request #4023 by landongrindheim * Suggest alternatives in `gem query` deprecation. Pull request #4021 by landongrindheim * Lazily load `time`, `cgi`, and `zlib`. Pull request #4010 by deivid-rodriguez * Don't hit the network when installing dependencyless local gemspec. Pull request #3968 by deivid-rodriguez * Add `--force` option to `gem sources` command. Pull request #3956 by andy-smith-msm * Lazily load `openssl`. Pull request #3850 by deivid-rodriguez * Pass more information when comparing platforms. Pull request #3817 by eregon * Install bundler 2.2.0 as a default gem. ## Bug fixes: * Use better owner & group for files in rubygems package. Pull request #4065 by deivid-rodriguez * Improve gem build -C flag. Pull request #3983 by bronzdoc * Handle unexpected behavior with URI#merge and subpaths missing trailing slashes. Pull request #3123 by drcapulet * Add missing `fileutils` require in rubygems installer. Pull request #4036 by deivid-rodriguez * Fix `--platform` option to `gem specification` being ignored. Pull request #4043 by deivid-rodriguez * Expose `--no-minimal-deps` flag to install the latest version of dependencies. Pull request #4030 by deivid-rodriguez * Fix "stack level too deep" error when overriding `Warning.warn`. Pull request #3987 by eregon * Append '.gemspec' extension only when it is not present. Pull request #3988 by voxik * Install to correct plugins dir when using `--build-root`. Pull request #3972 by deivid-rodriguez * Fix `--build-root` flag under Windows. Pull request #3975 by deivid-rodriguez * Fix `typo_squatting?` false positive for `rubygems.org` itself. Pull request #3951 by andy-smith-msm * Make `--default` and `--install-dir` options to `gem install` play nice together. Pull request #3906 by deivid-rodriguez ## Deprecations: * Deprecate server command. Pull request #3868 by bronzdoc ## Performance: * Don't change ruby process CWD when building extensions. Pull request #3498 by deivid-rodriguez # 3.2.0.rc.2 / 2020-10-08 ## Enhancements: * Make --dry-run flag consistent across rubygems commands. Pull request #3867 by bronzdoc * Disallow downgrades to too old versions. Pull request #3566 by deivid-rodriguez * Added `--platform` option to `build` command. Pull request #3079 by nobu * Have "gem update --system" pass through the `--silent` flag. Pull request #3789 by duckinator * Add writable check for cache dir. Pull request #3876 by xndcn * Warn on duplicate dependency in a specification. Pull request #3864 by bronzdoc * Fix indentation in `gem env`. Pull request #3861 by colby-swandale * Let more exceptions flow. Pull request #3819 by deivid-rodriguez * Ignore internal frames in RubyGems' Kernel#warn. Pull request #3810 by eregon ## Bug fixes: * Add missing fileutils require. Pull request #3911 by deivid-rodriguez * Fix false positive warning on Windows when PATH has `File::ALT_SEPARATOR`. Pull request #3829 by deivid-rodriguez * Fix Kernel#warn override to handle backtrace location with nil path. Pull request #3852 by jeremyevans * Don't format executables on `gem update --system`. Pull request #3811 by deivid-rodriguez * `gem install --user` fails with `Gem::FilePermissionError` on the system plugins directory. Pull request #3804 by nobu ## Performance: * Avoid duplicated generation of APISpecification objects. Pull request #3940 by mame * Eval defaults with frozen_string_literal: true. Pull request #3847 by casperisfine * Deduplicate the requirement operators in memory. Pull request #3846 by casperisfine * Optimize Gem.already_loaded?. Pull request #3793 by casperisfine # 3.2.0.rc.1 / 2020-07-04 ## Enhancements: * Test TruffleRuby in CI. Pull request #2797 by Benoit Daloze. * Rework plugins system and speed up rubygems. Pull request #3108 by David Rodríguez. * Specify explicit separator not to be affected by $;. Pull request #3424 by Nobuyoshi Nakada. * Enable `Layout/ExtraSpacing` cop. Pull request #3449 by David Rodríguez. * Rollback gem deprecate. Pull request #3530 by Luis Sagastume. * Normalize heredoc delimiters. Pull request #3533 by David Rodríguez. * Log messages to stdout in `rake package`. Pull request #3632 by David Rodríguez. * Remove explicit `psych` activation. Pull request #3636 by David Rodríguez. * Delay `fileutils` loading to fix some warnings. Pull request #3637 by David Rodríguez. * Make sure rubygems/package can be directly required reliably. Pull request #3670 by Luis Sagastume. * Make sure `tmp` folder exists before calling `Dir.tmpdir`. Pull request #3711 by David Rodríguez. * Add Gem.disable_system_update_message to disable gem update --system if needed. Pull request #3720 by Josef Å imánek. * Tweaks to play nice with ruby-core setup. Pull request #3733 by David Rodríguez. * Remove explicit require for auto-loaded constant. Pull request #3751 by Karol Bucek. * Test files should not be included in spec.files. Pull request #3758 by Marc-André Lafortune. * Remove TODO comment about warning on setting instead of pushing. Pull request #2823 by Luis Sagastume. * Add deprecate command method. Pull request #2935 by Luis Sagastume. * Simplify deprecate command method. Pull request #2974 by Luis Sagastume. * Fix Gem::LOADED_SPECS_MUTEX handling for recursive locking. Pull request #2985 by MSP-Greg. * Add `funding_uri ` metadata field to gemspec. Pull request #3060 by Colby Swandale. * Updates to some old gem-signing docs. Pull request #3063 by Tieg Zaharia. * Update the gem method for Gem::Installer. Pull request #3137 by Daniel Berger. * Simplify initial gem help output. Pull request #3148 by Olivier Lacan. * Resolve latest version via `gem contents`. Pull request #3149 by Dan Rice. * Install suggestions. Pull request #3151 by Sophia Castellarin. * Only rescue the errors we actually want to rescue. Pull request #3156 by David Rodríguez. ## Bug fixes: * Accept not only /usr/bin/env but also /bin/env in some tests. Pull request #3422 by Yusuke Endoh. * Skip a test that attempts to remove the current directory on Solaris. Pull request #3423 by Yusuke Endoh. * Fix race condition on bundler's parallel installer. Pull request #3440 by David Rodríguez. * Fix platform comparison check in #contains_requirable_file?. Pull request #3495 by Benoit Daloze. * Improve missing spec error. Pull request #3559 by Luis Sagastume. * Fix hidden bundler template installation from rubygems updater. Pull request #3674 by David Rodríguez. * Fix gem update --user-install. Pull request #2901 by Luis Sagastume. * Correct conflict list when uninstallation is prevented. Pull request #2973 by David Rodríguez. * Fix error when trying to find bundler with a deleted "working directo…. Pull request #3090 by Luis Sagastume. * Fix -I require priority. Pull request #3124 by David Rodríguez. * Fix `ruby setup.rb` for new plugins layout. Pull request #3144 by David Rodríguez. ## Deprecations: * Set deprecation warning on query command. Pull request #2967 by Luis Sagastume. ## Breaking changes: * Remove ruby 1.8 leftovers. Pull request #3442 by David Rodríguez. * Minitest cleanup. Pull request #3445 by David Rodríguez. * Remove `builder` gem requirement for `gem regenerate_index`. Pull request #3552 by David Rodríguez. * Remove modelines for consistency. Pull request #3714 by David Rodríguez. * Stop using deprecated OpenSSL::Digest constants. Pull request #3763 by Bart de Water. * Remove Gem module deprecated methods. Pull request #3101 by Luis Sagastume. * Remove ubygems.rb. Pull request #3102 by Luis Sagastume. * Remove Gem::Commands::QueryCommand. Pull request #3104 by Luis Sagastume. * Remove dependency installer deprecated methods. Pull request #3106 by Luis Sagastume. * Remove Gem::UserInteraction#debug method. Pull request #3107 by Luis Sagastume. * Remove options from Gem::GemRunner.new. Pull request #3110 by Luis Sagastume. * Remove deprecated Gem::RemoteFetcher#fetch_size. Pull request #3111 by Luis Sagastume. * Remove source_exception from Gem::Exception. Pull request #3112 by Luis Sagastume. * Requiring rubygems/source_specific_file is deprecated, remove it. Pull request #3114 by Luis Sagastume. # 3.1.4 / 2020-06-03 ## Enhancements: * Deprecate rubyforge_project attribute only during build time. Pull request #3609 by Josef Å imánek. * Update links. Pull request #3610 by Josef Å imánek. * Run CI at 3.1 branch head as well. Pull request #3677 by Josef Å imánek. * Remove failing ubuntu-rvm CI flow. Pull request #3611 by Josef Å imánek. # 3.1.3 / 2020-05-05 ## Enhancements: * Resolver: require NameTuple before use. Pull request #3171 by Olle Jonsson. * Use absolute paths with autoload. Pull request #3100 by David Rodríguez. * Avoid changing $SOURCE_DATE_EPOCH. Pull request #3088 by Ellen Marie Dash. * Use Bundler 2.1.4. Pull request #3072 by Hiroshi SHIBATA. * Add tests to check if Gem.ruby_version works with ruby git master. Pull request #3049 by Yusuke Endoh. ## Bug fixes: * Fix platform comparison check in #contains_requirable_file?. Pull request #3495 by Benoit Daloze. * Improve gzip errors logging. Pull request #3485 by David Rodríguez. * Fix incorrect `gem uninstall --all` message. Pull request #3483 by David Rodríguez. * Fix incorrect bundler version being required. Pull request #3458 by David Rodríguez. * Fix gem install from a gemdeps file with complex dependencies. Pull request #3054 by Luis Sagastume. # 3.1.2 / 2019-12-20 ## Enhancements: * Restore non prompting `gem update --system` behavior. Pull request #3040 by David Rodríguez. * Show only release notes for new code installed. Pull request #3041 by David Rodríguez. * Inform about installed `bundle` executable after `gem update --system`. Pull request #3042 by David Rodríguez. * Use Bundler 2.1.2. Pull request #3043 by SHIBATA Hiroshi. ## Bug fixes: * Require `uri` in source.rb. Pull request #3034 by mihaibuzgau. * Fix `gem update --system --force`. Pull request #3035 by David Rodríguez. * Move `require uri` to source_list. Pull request #3038 by mihaibuzgau. # 3.1.1 / 2019-12-16 ## Bug fixes: * Vendor Bundler 2.1.0 again. The version of Bundler with RubyGems 3.1.0 was Bundler 2.1.0.pre.3. Pull request #3029 by SHIBATA Hiroshi. # 3.1.0 / 2019-12-16 ## Enhancements: * Vendor bundler 2.1. Pull request #3028 by David Rodríguez. * Check for rubygems.org typo squatting sources. Pull request #2999 by Luis Sagastume. * Refactor remote fetcher. Pull request #3017 by David Rodríguez. * Lazily load `open3`. Pull request #3001 by David Rodríguez. * Remove `delegate` dependency. Pull request #3002 by David Rodríguez. * Lazily load `uri`. Pull request #3005 by David Rodríguez. * Lazily load `rubygems/gem_runner` during tests. Pull request #3009 by David Rodríguez. * Use bundler to manage development dependencies. Pull request #3012 by David Rodríguez. ## Bug fixes: * Remove unnecessary executable flags. Pull request #2982 by David Rodríguez. * Remove configuration that contained a typo. Pull request #2989 by David Rodríguez. ## Deprecations: * Deprecate `gem generate_index --modern` and `gem generate_index --no-modern`. Pull request #2992 by David Rodríguez. ## Breaking changes: * Remove 1.8.7 leftovers. Pull request #2972 by David Rodríguez. # 3.1.0.pre3 / 2019-11-11 ## Enhancements: * Fix gem pristine not accounting for user installed gems. Pull request #2914 by Luis Sagastume. * Refactor keyword argument test for Ruby 2.7. Pull request #2947 by SHIBATA Hiroshi. * Fix errors at frozen Gem::Version. Pull request #2949 by Nobuyoshi Nakada. * Remove taint usage on Ruby 2.7+. Pull request #2951 by Jeremy Evans. * Check Manifest.txt is up to date. Pull request #2953 by David Rodríguez. * Clarify symlink conditionals in tests. Pull request #2962 by David Rodríguez. * Update command line parsing to work under ps. Pull request #2966 by David Rodríguez. * Properly test `Gem::Specifications.stub_for`. Pull request #2970 by David Rodríguez. * Fix Gem::LOADED_SPECS_MUTEX handling for recursive locking. Pull request #2985 by MSP-Greg. # 3.1.0.pre2 / 2019-10-15 ## Enhancements: * Optimize Gem::Package::TarReader#each. Pull request #2941 by Jean byroot Boussier. * Time comparison around date boundary. Pull request #2944 by Nobuyoshi Nakada. # 3.1.0.pre1 / 2019-10-08 ## Enhancements: * Try to use bundler-2.1.0.pre.2. Pull request #2923 by SHIBATA Hiroshi. * [Require] Ensure -I beats a default gem. Pull request #1868 by Samuel Giddins. * [Specification] Prefer user-installed gems to default gems. Pull request #2112 by Samuel Giddins. * Multifactor authentication for yank command. Pull request #2514 by Qiu Chaofan. * Autoswitch to exact bundler version if present. Pull request #2583 by David Rodríguez. * Fix Gem::Requirement equality comparison when ~> operator is used. Pull request #2554 by Grey Baker. * Don't use a proxy if https_proxy env var is empty. Pull request #2567 by Luis Sagastume. * Fix typo in specs warning. Pull request #2585 by Rui. * Bin/gem: remove initial empty line. Pull request #2602 by Kenyon Ralph. * Avoid rdoc hook when it's failed to load rdoc library. Pull request #2604 by SHIBATA Hiroshi. * Refactor get_proxy_from_env logic. Pull request #2611 by Luis Sagastume. * Allow to easily bisect flaky failures. Pull request #2626 by David Rodríguez. * Fix `--ignore-dependencies` flag not installing platform specific gems. Pull request #2631 by David Rodríguez. * Make `gem install --explain` list platforms. Pull request #2634 by David Rodríguez. * Make `gem update --explain` list platforms. Pull request #2635 by David Rodríguez. * Refactoring install and update explanations. Pull request #2643 by David Rodríguez. * Restore transitiveness of version comparison. Pull request #2651 by David Rodríguez. * Undo requirement sorting. Pull request #2652 by David Rodríguez. * Update dummy version of Bundler for #2581. Pull request #2584 by SHIBATA Hiroshi. * Ignore to handle the different platform. Pull request #2672 by SHIBATA Hiroshi. * Make Gem::Specification.default_stubs to public methods. Pull request #2675 by SHIBATA Hiroshi. * Sort files and test_files in specifications. Pull request #2524 by Christopher Baines. * Fix comment of Gem::Specification#required_ruby_version=. Pull request #2732 by Alex Junger. * Config_file.rb - update path separator in ENV['GEMRC'] logic. Pull request #2735 by MSP-Greg. * Fix `ruby setup.rb` warnings. Pull request #2737 by David Rodríguez. * Don't use regex delimiters when searching for a dependency. Pull request #2738 by Luis Sagastume. * Refactor query command. Pull request #2739 by Luis Sagastume. * Don't remove default spec files from mapping after require. Pull request #2741 by David Rodríguez. * Cleanup base test case. Pull request #2742 by David Rodríguez. * Simplify Specification#gems_dir. Pull request #2745 by David Rodríguez. * Fix test warning. Pull request #2746 by David Rodríguez. * Extract an `add_to_load_path` method. Pull request #2749 by David Rodríguez. * Fix setup command if format_executable is true by default. Pull request #2766 by Jeremy Evans. * Update the certificate files to make the test pass on Debian 10. Pull request #2777 by Yusuke Endoh. * Write to the correct config file(.gemrc). Pull request #2779 by Luis Sagastume. * Fix for large values in UID/GID fields in tar archives. Pull request #2780 by Alexey Shein. * Lazy require stringio. Pull request #2781 by Luis Sagastume. * Make Gem::Specification#ruby_code handle OpenSSL::PKey::RSA objects. Pull request #2782 by Luis Sagastume. * Fix setup command test for bundler with program_suffix. Pull request #2783 by Sorah Fukumori. * Make sure `rake package` works. Pull request #2787 by David Rodríguez. * Synchronize access to the Gem::Specification::LOAD_CACHE Hash. Pull request #2789 by Benoit Daloze. * Task to install rubygems to local system. Pull request #2795 by David Rodríguez. * Add an attr_reader to Gem::Installer for the package instance variable. Pull request #2796 by Daniel Berger. * Switch CI script to bash. Pull request #2799 by David Rodríguez. * Move gemcutter utilities code to Gem::Command. Pull request #2803 by Luis Sagastume. * Add raw spec method to gem package. Pull request #2806 by Luis Sagastume. * Improve `rake package` test error message. Pull request #2815 by David Rodríguez. * Resolve `@@project_dir` from test file paths. Pull request #2843 by Nobuyoshi Nakada. * Remove dead code in Gem::Validator. Pull request #2537 by Ellen Marie Dash. * The date might have advanced since TODAY has been set. Pull request #2938 by Nobuyoshi Nakada. * Remove old ci configurations. Pull request #2917 by SHIBATA Hiroshi. * Add Gem::Dependency identity. Pull request #2936 by Luis Sagastume. * Filter dependency type and name strictly. Pull request #2930 by SHIBATA Hiroshi. * Always pass an encoding option to Zlib::GzipReader.wrap. Pull request #2933 by Nobuyoshi Nakada. * Introduce default prerelease requirement. Pull request #2925 by David Rodríguez. * Detect libc version, closes #2918. Pull request #2922 by fauno. * Use IAM role to extract security-credentials for EC2 instance. Pull request #2894 by Alexander Pakulov. * Improve `gem uninstall --all`. Pull request #2893 by David Rodríguez. * Use `RbConfig::CONFIG['rubylibprefix']`. Pull request #2889 by Nobuyoshi Nakada. * Build the first gemspec we found if no arguments are passed to gem build. Pull request #2887 by Luis Sagastume. * $LOAD_PATH elements should be real paths. Pull request #2885 by Nobuyoshi Nakada. * Use the standard RUBY_ENGINE_VERSION instead of JRUBY_VERSION. Pull request #2864 by Benoit Daloze. * Cleanup after testing `rake package`. Pull request #2862 by David Rodríguez. * Cherry-pick shushing deprecation warnings from ruby-core. Pull request #2861 by David Rodríguez. * Ext/builder.rb cleanup. Pull request #2849 by Luis Sagastume. * Fix @ran_rake assignment in builder.rb. Pull request #2850 by Luis Sagastume. * Remove test suite warnings. Pull request #2845 by Luis Sagastume. * Replace domain parameter with a parameter to suppress suggestions. Pull request #2846 by Luis Sagastume. * Move default specifications dir definition out of BasicSpecification. Pull request #2841 by Vít Ondruch. * There is no usage of @orig_env_* variables in test suite. Pull request #2838 by SHIBATA Hiroshi. * Use File#open instead of Kernel#open in stub_specification.rb. Pull request #2834 by Luis Sagastume. * Simplify #to_ruby code. Pull request #2825 by Nobuyoshi Nakada. * Add a gem attr to the Gem::Package class. Pull request #2828 by Daniel Berger. * Remove useless TODO comment. Pull request #2818 by Luis Sagastume. ## Bug fixes: * Fix typos in History.txt. Pull request #2565 by Igor Zubkov. * Remove unused empty sources array. Pull request #2598 by Aaron Patterson. * Fix windows specific executables generated by `gem install`. Pull request #2628 by David Rodríguez. * Gem::Specification#to_ruby needs OpenSSL. Pull request #2937 by Nobuyoshi Nakada. * Set SOURCE_DATE_EPOCH env var if not provided. Pull request #2882 by Ellen Marie Dash. * Installer.rb - fix #windows_stub_script. Pull request #2876 by MSP-Greg. * Fixed deprecation message. Pull request #2867 by Nobuyoshi Nakada. * Fix requiring default gems to consider prereleases. Pull request #2728 by David Rodríguez. * Forbid `find_spec_for_exe` without an `exec_name`. Pull request #2706 by David Rodríguez. * Do not prompt for passphrase when key can be loaded without it. Pull request #2710 by Luis Sagastume. * Add missing wrapper. Pull request #2690 by David Rodríguez. * Remove long ago deprecated methods. Pull request #2704 by David Rodríguez. * Renamed duplicate test. Pull request #2678 by Nobuyoshi Nakada. * File.exists? is deprecated. Pull request #2855 by SHIBATA Hiroshi. * Fixed to warn with shadowing outer local variable. Pull request #2856 by SHIBATA Hiroshi. * Fix explain with ignore-dependencies. Pull request #2647 by David Rodríguez. * Fix default gem executable installation when folder is not `bin/`. Pull request #2649 by David Rodríguez. * Fix cryptic error on local and ignore-dependencies combination. Pull request #2650 by David Rodríguez. ## Deprecations: * Make deprecate Gem::RubyGemsVersion and Gem::ConfigMap. Pull request #2857 by SHIBATA Hiroshi. * Deprecate Gem::RemoteFetcher#fetch_size. Pull request #2833 by Luis Sagastume. * Explicitly deprecate `rubyforge_project`. Pull request #2798 by David Rodríguez. * Deprecate unused Gem::Installer#unpack method. Pull request #2715 by Vít Ondruch. * Deprecate a few unused methods. Pull request #2674 by David Rodríguez. * Add deprecation warnings for cli options. Pull request #2607 by Luis Sagastume. ## Breaking changes: * Suppress keywords warning. Pull request #2934 by Nobuyoshi Nakada. * Suppress Ruby 2.7's real kwargs warning. Pull request #2912 by Koichi ITO. * Fix Kernel#warn override. Pull request #2911 by Jeremy Evans. * Remove conflict.rb code that was supposed to be removed in Rubygems 3. Pull request #2802 by Luis Sagastume. * Compatibility cleanups. Pull request #2754 by David Rodríguez. * Remove `others_possible` activation request param. Pull request #2747 by David Rodríguez. * Remove dependency installer deprecated code. Pull request #2740 by Luis Sagastume. * Removed guard condition with USE_BUNDLER_FOR_GEMDEPS. Pull request #2716 by SHIBATA Hiroshi. * Skip deprecation warning during specs. Pull request #2718 by David Rodríguez. * Remove QuickLoader reference. Pull request #2719 by David Rodríguez. * Removed circular require. Pull request #2679 by Nobuyoshi Nakada. * Removed needless environmental variable for Travis CI. Pull request #2685 by SHIBATA Hiroshi. * Removing yaml require. Pull request #2538 by Luciano Sousa. # 3.0.8 / 2020-02-19 ## Bug fixes: * Gem::Specification#to_ruby needs OpenSSL. Pull request #2937 by Nobuyoshi Nakada. # 3.0.7 / 2020-02-18 ## Bug fixes: * Fix underscore version selection for bundler #2908 by David Rodríguez. * Add missing wrapper. Pull request #2690 by David Rodríguez. * Make Gem::Specification#ruby_code handle OpenSSL::PKey::RSA objects. Pull request #2782 by Luis Sagastume. * Installer.rb - fix #windows_stub_script. Pull request #2876 by MSP-Greg. * Use IAM role to extract security-credentials for EC2 instance. Pull request #2894 by Alexander Pakulov. # 3.0.6 / 2019-08-17 ## Bug fixes: * Revert #2813. It broke the compatibility with 3.0.x versions. # 3.0.5 / 2019-08-16 ## Enhancements: * Use env var to configure api key on push. Pull request #2559 by Luis Sagastume. * Unswallow uninstall error. Pull request #2707 by David Rodríguez. * Expose windows path normalization utility. Pull request #2767 by David Rodríguez. * Clean which command. Pull request #2801 by Luis Sagastume. * Upgrading S3 source signature to AWS SigV4. Pull request #2807 by Alexander Pakulov. * Remove misleading comment, no reason to move Gem.host to Gem::Util. Pull request #2811 by Luis Sagastume. * Drop support for 'gem env packageversion'. Pull request #2813 by Luis Sagastume. * Take into account just git tracked files in update_manifest rake task. Pull request #2816 by Luis Sagastume. * Remove TODO comment, there's no Gem::Dirs constant. Pull request #2819 by Luis Sagastume. * Remove unused 'raise' from test_case. Pull request #2820 by Luis Sagastume. * Move TODO comment to an information comment. Pull request #2821 by Luis Sagastume. * Use File#open instead of Kernel#open in stub_specification.rb. Pull request #2834 by Luis Sagastume. * Make error code a gemcutter_utilities a constant. Pull request #2844 by Luis Sagastume. * Remove FIXME comment related to PathSupport. Pull request #2854 by Luis Sagastume. * Use gsub with Hash. Pull request #2860 by Kazuhiro NISHIYAMA. * Use the standard RUBY_ENGINE_VERSION instead of JRUBY_VERSION. Pull request #2864 by Benoit Daloze. * Do not mutate uri.query during s3 signature creation. Pull request #2874 by Alexander Pakulov. * Fixup #2844. Pull request #2878 by SHIBATA Hiroshi. ## Bug fixes: * Fix intermittent test error on Appveyor & Travis. Pull request #2568 by MSP-Greg. * Extend timeout on assert_self_install_permissions. Pull request #2605 by SHIBATA Hiroshi. * Better folder assertions. Pull request #2644 by David Rodríguez. * Fix default gem executable installation when folder is not `bin/`. Pull request #2649 by David Rodríguez. * Fix gem uninstall behavior. Pull request #2663 by Luis Sagastume. * Fix for large values in UID/GID fields in tar archives. Pull request #2780 by Alexey Shein. * Fixed task order for release. Pull request #2792 by SHIBATA Hiroshi. * Ignore GEMRC variable for test suite. Pull request #2837 by SHIBATA Hiroshi. # 3.0.4 / 2019-06-14 ## Enhancements: * Add support for TruffleRuby #2612 by Benoit Daloze * Serve a more descriptive error when --no-ri or --no-rdoc are used #2572 by Grey Baker * Improve test compatibility with CMake 2.8. Pull request #2590 by Vít Ondruch. * Restore gem build behavior and introduce the "-C" flag to gem build. Pull request #2596 by Luis Sagastume. * Enabled block call with util_set_arch. Pull request #2603 by SHIBATA Hiroshi. * Avoid rdoc hook when it's failed to load rdoc library. Pull request #2604 by SHIBATA Hiroshi. * Drop tests for legacy RDoc. Pull request #2608 by Nobuyoshi Nakada. * Update TODO comment. Pull request #2658 by Luis Sagastume. * Skip malicious extension test with mswin platform. Pull request #2670 by SHIBATA Hiroshi. * Check deprecated methods on release. Pull request #2673 by David Rodríguez. * Add steps to run bundler tests. Pull request #2680 by Aditya Prakash. * Skip temporary "No such host is known" error. Pull request #2684 by Takashi Kokubun. * Replaced aws-sdk-s3 instead of s3cmd. Pull request #2688 by SHIBATA Hiroshi. * Allow uninstall from symlinked GEM_HOME. Pull request #2720 by David Rodríguez. * Use current checkout in CI to uninstall RVM related gems. Pull request #2729 by David Rodríguez. * Update Contributor Covenant v1.4.1. Pull request #2751 by SHIBATA Hiroshi. * Added supported versions of Ruby. Pull request #2756 by SHIBATA Hiroshi. * Fix shadowing outer local variable warning. Pull request #2763 by Luis Sagastume. * Update the certificate files to make the test pass on Debian 10. Pull request #2777 by Yusuke Endoh. * Backport ruby core changes. Pull request #2778 by SHIBATA Hiroshi. ## Bug fixes: * Test_gem.rb - intermittent failure fix. Pull request #2613 by MSP-Greg. * Fix sporadic CI failures. Pull request #2617 by David Rodríguez. * Fix flaky bundler version finder tests. Pull request #2624 by David Rodríguez. * Fix gem indexer tests leaking utility gems. Pull request #2625 by David Rodríguez. * Clean up default spec dir too. Pull request #2639 by David Rodríguez. * Fix 2.6.1 build against vendored bundler. Pull request #2645 by David Rodríguez. * Fix comment typo. Pull request #2664 by Luis Sagastume. * Fix comment of Gem::Specification#required_ruby_version=. Pull request #2732 by Alex Junger. * Fix TODOs. Pull request #2748 by David Rodríguez. # 3.0.3 / 2019-03-05 Security fixes: * CVE-2019-8320: Delete directory using symlink when decompressing tar * CVE-2019-8321: Escape sequence injection vulnerability in `verbose` * CVE-2019-8322: Escape sequence injection vulnerability in `gem owner` * CVE-2019-8323: Escape sequence injection vulnerability in API response handling * CVE-2019-8324: Installing a malicious gem may lead to arbitrary code execution * CVE-2019-8325: Escape sequence injection vulnerability in errors # 3.0.2 / 2019-01-01 ## Enhancements: * Use Bundler-1.17.3. Pull request #2556 by SHIBATA Hiroshi. * Fix document flag description. Pull request #2555 by Luis Sagastume. ## Bug fixes: * Fix tests when ruby --program-suffix is used without rubygems --format-executable. Pull request #2549 by Jeremy Evans. * Fix Gem::Requirement equality comparison when ~> operator is used. Pull request #2554 by Grey Baker. * Unset SOURCE_DATE_EPOCH in the test cases. Pull request #2558 by Sorah Fukumori. * Restore SOURCE_DATE_EPOCH. Pull request #2560 by SHIBATA Hiroshi. # 3.0.1 / 2018-12-23 ## Bug fixes: * Ensure globbed files paths are expanded. Pull request #2536 by Tony Ta. * Dup the Dir.home string before passing it on. Pull request #2545 by Charles Oliver Nutter. * Added permissions to installed files for non-owners. Pull request #2546 by SHIBATA Hiroshi. * Restore release task without hoe. Pull request #2547 by SHIBATA Hiroshi. # 3.0.0 / 2018-12-19 ## Enhancements: * S3 source. Pull request #1690 by Aditya Prakash. * Download gems with threads. Pull request #1898 by André Arko. * Update to SPDX license list 3.0. Pull request #2152 by Mike Linksvayer. * [GSoC] Multi-factor feature for RubyGems. Pull request #2369 by Qiu Chaofan. * Use bundler 1.17.2. Pull request #2521 by SHIBATA Hiroshi. * Don't treat inaccessible working directories as build failures. Pull request #1135 by Pete. * Remove useless directory parameter from builders .build methods. [rebased]. Pull request #1433 by Kurtis Rainbolt-Greene. * Skipping more than one gem in pristine. Pull request #1592 by Henne Vogelsang. * Add info command to print information about an installed gem. Pull request #2023 by Colby Swandale. * Add --[no-]check-development option to cleanup command. Pull request #2061 by Lin Jen-Shin (godfat). * Show which gem referenced a missing gem. Pull request #2067 by Artem Khramov. * Prevent to delete to "bundler-" prefix gem like bundler-audit. Pull request #2086 by SHIBATA Hiroshi. * Fix rake install_test_deps once the rake clean_env does not exist. Pull request #2090 by Lucas Arantes. * Workaround common options mutation in Gem::Command test. Pull request #2098 by Thibault Jouan. * Extract a SpecificationPolicy validation class. Pull request #2101 by Olle Jonsson. * Handle environment that does not have `flock` system call. Pull request #2107 by SHIBATA Hiroshi. * Handle the explain option in gem update. Pull request #2110 by Colby Swandale. * Add Gem.operating_system_defaults to allow packagers to override defaults. Pull request #2116 by Vít Ondruch. * Update for compatibility with new minitest. Pull request #2118 by MSP-Greg. * Make Windows bin stubs portable. Pull request #2119 by MSP-Greg. * Avoid to warnings about gemspec loadings in rubygems tests. Pull request #2125 by SHIBATA Hiroshi. * Set whether bundler is used for gemdeps with an environmental variable. Pull request #2126 by SHIBATA Hiroshi. * Titleize "GETTING HELP" in readme. Pull request #2136 by Colby Swandale. * Improve the error message given when using --version with multiple gems in the install command. Pull request #2137 by Colby Swandale. * Use `File.open` instead of `open`. Pull request #2142 by SHIBATA Hiroshi. * Gem::Util.traverse_parents should not crash on permissions error. Pull request #2147 by Robert Ulejczyk. * [Installer] Avoid a #mkdir race condition. Pull request #2148 by Samuel Giddins. * Allow writing gemspecs from gem unpack to location specified by target option. Pull request #2150 by Colby Swandale. * Raise errors in `gem uninstall` when a file in a gem could not be removed . Pull request #2154 by Colby Swandale. * Remove PID from gem index directory. Pull request #2155 by SHIBATA Hiroshi. * Nil guard on `Gem::Specification`. Pull request #2164 by SHIBATA Hiroshi. * Skip broken test with macOS platform. Pull request #2167 by SHIBATA Hiroshi. * Support option for `--destdir` with upgrade installer. Pull request #2169 by SHIBATA Hiroshi. * To use constant instead of hard-coded version. Pull request #2171 by SHIBATA Hiroshi. * Add Rake task to install dev dependencies. Pull request #2173 by Ellen Marie Dash. * Add new sections to the README and explanation of what RubyGems is. Pull request #2174 by Colby Swandale. * Prefer to use `Numeric#zero?` instead of `== 0`. Pull request #2176 by SHIBATA Hiroshi. * Ignore performance test of version regexp pattern. Pull request #2179 by SHIBATA Hiroshi. * Ignore .DS_Store files in the update_manifest task. Pull request #2199 by Colby Swandale. * Allow building gems without having to be in the gem folder . Pull request #2204 by Colby Swandale. * Added coverage ability used by simplecov. Pull request #2207 by SHIBATA Hiroshi. * Improve invalid proxy error message. Pull request #2217 by Luis Sagastume. * Simplify home directory detection and platform condition. Pull request #2218 by SHIBATA Hiroshi. * Permission options. Pull request #2219 by Nobuyoshi Nakada. * Improve gemspec and package task. Pull request #2220 by SHIBATA Hiroshi. * Prefer to use util_spec in `Gem::TestCase`. Pull request #2227 by SHIBATA Hiroshi. * [Requirement] Treat requirements with == versions as equal. Pull request #2230 by Samuel Giddins. * Add a note for the non-semantically versioned case. Pull request #2242 by David Rodríguez. * Keep feature names loaded in the block. Pull request #2261 by Nobuyoshi Nakada. * Tweak warning recommendation. Pull request #2266 by David Rodríguez. * Show git path in gem env. Pull request #2268 by Luis Sagastume. * Add `--env-shebang` flag to setup command. Pull request #2271 by James Myers. * Support SOURCE_DATE_EPOCH to make gem spec reproducible. Pull request #2278 by Levente Polyak. * Chdir back to original directory when building an extension fails. Pull request #2282 by Samuel Giddins. * [Rakefile] Add a default task that runs the tests. Pull request #2283 by Samuel Giddins. * Support SOURCE_DATE_EPOCH to make gem tar reproducible. Pull request #2289 by Levente Polyak. * Reset hooks in test cases. Pull request #2297 by Samuel Giddins. * Minor typo: nokogiri. Pull request #2298 by Darshan Baid. * Ignore vendored molinillo from code coverage. Pull request #2302 by SHIBATA Hiroshi. * Support IO.copy_stream. Pull request #2303 by okkez. * Prepare beta release. Pull request #2304 by SHIBATA Hiroshi. * Add error message when trying to open a default gem. Pull request #2307 by Luis Sagastume. * Add alias command 'i' for 'install' command. Pull request #2308 by ota42y. * Cleanup rdoc task in Rakefile. Pull request #2318 by SHIBATA Hiroshi. * Add testcase to test_gem_text.rb. Pull request #2329 by Oliver. * Gem build strict option. Pull request #2332 by David Rodríguez. * Make spec reset more informative. Pull request #2333 by Luis Sagastume. * [Rakefile] Set bundler build metadata when doing a release. Pull request #2335 by Samuel Giddins. * Speed up globbing relative to given directories. Pull request #2336 by Samuel Giddins. * Remove semver gem build warning. Pull request #2351 by David Rodríguez. * Expand symlinks in gem path. Pull request #2352 by Benoit Daloze. * Normalize comment indentations. Pull request #2353 by David Rodríguez. * Add bindir flag to pristine. Pull request #2361 by Luis Sagastume. * Add --user-install behaviour to cleanup command. Pull request #2362 by Luis Sagastume. * Allow build options to be passed to Rake. Pull request #2382 by Alyssa Ross. * Add --re-sign flag to cert command. Pull request #2391 by Luis Sagastume. * Fix "interpreted as grouped expression" warning. Pull request #2399 by Colby Swandale. * [Gem::Ext::Builder] Comments to aid future refactoring. Pull request #2405 by Ellen Marie Dash. * Move CONTRIBUTING.rdoc and POLICIES.rdoc documents to markdown. Pull request #2412 by Colby Swandale. * Improve certificate expiration defaults. Pull request #2420 by Luis Sagastume. * Freeze all possible constants. Pull request #2422 by Colby Swandale. * Fix bundler rubygems binstub not properly looking for bundler. Pull request #2426 by David Rodríguez. * Make sure rubygems never leaks to another installation. Pull request #2427 by David Rodríguez. * Update README.md. Pull request #2428 by Marc-André Lafortune. * Restrict special chars from prefixing new gem names. Pull request #2432 by Luis Sagastume. * This removes support for dynamic API backend lookup via DNS SRV records. Pull request #2433 by Arlandis Word. * Fix link to CONTRIBUTING.md doc. Pull request #2434 by Arlandis Word. * Support Keyword args with Psych. Pull request #2439 by SHIBATA Hiroshi. * Bug/kernel#warn uplevel. Pull request #2442 by Nobuyoshi Nakada. * Improve certificate error message. Pull request #2454 by Luis Sagastume. * Update gem open command help text. Pull request #2458 by Aditya Prakash. * Uninstall with versions. Pull request #2466 by David Rodríguez. * Add output option to build command. Pull request #2501 by Colby Swandale. * Move rubocop into a separate stage in travis ci. Pull request #2510 by Colby Swandale. * Ignore warnings with test_gem_specification.rb. Pull request #2523 by SHIBATA Hiroshi. * Support the environment without OpenSSL. Pull request #2528 by SHIBATA Hiroshi. ## Bug fixes: * Fix undefined method error when printing alert. Pull request #1884 by Robert Ross. * Frozen string fix - lib/rubygems/bundler_version_finder.rb. Pull request #2115 by MSP-Greg. * Fixed typos. Pull request #2143 by SHIBATA Hiroshi. * Fix regression of destdir on Windows platform. Pull request #2178 by SHIBATA Hiroshi. * Fixed no assignment variables about default gems installation. Pull request #2181 by SHIBATA Hiroshi. * Fix spelling errors in the README. Pull request #2187 by Colby Swandale. * Missing comma creates ambiguous meaning. Pull request #2190 by Clifford Heath. * Fix getting started instructions. Pull request #2198 by Luis Sagastume. * Fix rubygems dev env. Pull request #2201 by Luis Sagastume. * Fix #1470: generate documentation when --install-dir is present. Pull request #2229 by Elias Hernandis. * Fix activation when multiple platforms installed. Pull request #2339 by MSP-Greg. * Fix required_ruby_version with prereleases and improve error message. Pull request #2344 by David Rodríguez. * Update tests for 'newer' Windows builds. Pull request #2348 by MSP-Greg. * Fix broken rubocop task by upgrading to 0.58.1. Pull request #2356 by David Rodríguez. * Gem::Version should handle nil like it used to before. Pull request #2363 by Luis Sagastume. * Avoid need of C++ compiler to pass the test suite. Pull request #2367 by Vít Ondruch. * Fix auto resign expired certificate. Pull request #2380 by Luis Sagastume. * Skip permissions-dependent test when root. Pull request #2386 by Alyssa Ross. * Fix test that depended on /usr/bin being in PATH. Pull request #2387 by Alyssa Ross. * Fixed test fail with mswin environment. Pull request #2390 by SHIBATA Hiroshi. * Fix broken builds using the correct rubocop version. Pull request #2396 by Luis Sagastume. * Fix extension builder failure when verbose. Pull request #2457 by Sorah Fukumori. * Fix test warnings. Pull request #2472 by MSP-Greg. * The test suite of bundler is not present ruby description. Pull request #2484 by SHIBATA Hiroshi. * Fix crash on certain gemspecs. Pull request #2506 by David Rodríguez. * Fixed test fails with the newer version of OpenSSL. Pull request #2507 by SHIBATA Hiroshi. * Fix broken symlink that points to ../*. Pull request #2516 by Akira Matsuda. * Fix remote fetcher tests. Pull request #2520 by Luis Sagastume. * Fix tests when --program-suffix and similar ruby configure options are used. Pull request #2529 by Jeremy Evans. ## Breaking changes: * IO.binread is not provided at Ruby 1.8. Pull request #2093 by SHIBATA Hiroshi. * Ignored to publish rdoc documentation of rubygems for docs.seattlerb.org. Pull request #2105 by SHIBATA Hiroshi. * Support pre-release RubyGems. Pull request #2128 by SHIBATA Hiroshi. * Relax minitest version for 5. Pull request #2131 by SHIBATA Hiroshi. * Remove zentest from dev dependency. Pull request #2132 by SHIBATA Hiroshi. * Remove hoe for test suite. Pull request #2160 by SHIBATA Hiroshi. * Cleanup deprecated tasks. Pull request #2162 by SHIBATA Hiroshi. * Drop to support Ruby < 2.2. Pull request #2182 by SHIBATA Hiroshi. * Cleanup deprecated style. Pull request #2193 by SHIBATA Hiroshi. * Remove CVEs from the rubygems repo. Pull request #2195 by Colby Swandale. * Removed needless condition for old version of ruby. Pull request #2206 by SHIBATA Hiroshi. * Removed deprecated methods over the limit day. Pull request #2216 by SHIBATA Hiroshi. * Remove syck support. Pull request #2222 by SHIBATA Hiroshi. * Removed needless condition for Encoding. Pull request #2223 by SHIBATA Hiroshi. * Removed needless condition for String#force_encoding. Pull request #2225 by SHIBATA Hiroshi. * Removed needless OpenSSL patch for Ruby 1.8. Pull request #2243 by SHIBATA Hiroshi. * Removed compatibility code for Ruby 1.9.2. Pull request #2244 by SHIBATA Hiroshi. * Removed needless version condition for the old ruby. Pull request #2252 by SHIBATA Hiroshi. * Remove needless define/respond_to condition. Pull request #2255 by SHIBATA Hiroshi. * Use File.realpath directly in Gem::Package. Pull request #2284 by SHIBATA Hiroshi. * Removed needless condition for old versions of Ruby. Pull request #2286 by SHIBATA Hiroshi. * Remove the --rdoc and --ri options from install/update. Pull request #2354 by Colby Swandale. * Move authors assigner to required attributes section of Gem::Specification. Pull request #2406 by Grey Baker. * Remove rubyforge_page functionality. Pull request #2436 by Nick Schwaderer. * Drop ruby 1.8 support and use IO.popen. Pull request #2441 by Nobuyoshi Nakada. * Drop ruby 2.2 support. Pull request #2487 by David Rodríguez. * Remove some old compatibility code. Pull request #2488 by David Rodríguez. * Remove .document from src. Pull request #2489 by Colby Swandale. * Remove old version support. Pull request #2493 by Nobuyoshi Nakada. * [BudlerVersionFinder] set .filter! and .compatible? to match only on major versions. Pull request #2515 by Colby Swandale. # 2.7.10 / 2019-06-14 ## Enhancements: * Fix bundler rubygems binstub not properly looking for bundler. Pull request #2426 by David Rodríguez. * [BudlerVersionFinder] set .filter! and .compatible? to match only on major versions. Pull request #2515 by Colby Swandale. + Update for compatibility with new minitest. Pull request #2118 by MSP-Greg. # 2.7.9 / 2019-03-05 Security fixes: * CVE-2019-8320: Delete directory using symlink when decompressing tar * CVE-2019-8321: Escape sequence injection vulnerability in `verbose` * CVE-2019-8322: Escape sequence injection vulnerability in `gem owner` * CVE-2019-8323: Escape sequence injection vulnerability in API response handling * CVE-2019-8324: Installing a malicious gem may lead to arbitrary code execution * CVE-2019-8325: Escape sequence injection vulnerability in errors # 2.7.8 / 2018-11-02 ## Enhancements: * [Requirement] Treat requirements with == versions as equal. Pull request #2230 by Samuel Giddins. * Fix exec_name documentation. Pull request #2239 by Luis Sagastume. * [TarHeader] Extract the empty header into a constant. Pull request #2247 by Samuel Giddins. * Simplify the code that lets us call the original, non-monkeypatched Kernel#require. Pull request #2267 by Leon Miller-Out. * Add install alias documentation. Pull request #2320 by ota42y. * [Rakefile] Set bundler build metadata when doing a release. Pull request #2335 by Samuel Giddins. * Backport commits from ruby core . Pull request #2347 by SHIBATA Hiroshi. * Sign in to the correct host before push. Pull request #2366 by Luis Sagastume. * Bump bundler-1.16.4. Pull request #2381 by SHIBATA Hiroshi. * Improve bindir flag description. Pull request #2383 by Luis Sagastume. * Update bundler-1.16.6. Pull request #2423 by SHIBATA Hiroshi. ## Bug fixes: * Fix #1470: generate documentation when --install-dir is present. Pull request #2229 by Elias Hernandis. * Fix no proxy checking. Pull request #2249 by Luis Sagastume. * Validate SPDX license exceptions. Pull request #2257 by Mikit. * Retry api specification spec with original platform. Pull request #2275 by Luis Sagastume. * Fix approximate recommendation with prereleases. Pull request #2345 by David Rodríguez. * Gem::Version should handle nil like it used to before. Pull request #2363 by Luis Sagastume. # 2.7.7 / 2018-05-08 ## Enhancements: * [RequestSet] Only suggest a gem version with an installable platform. Pull request #2175 by Samuel Giddins. * Fixed no assignment variables about default gems installation. Pull request #2181 by SHIBATA Hiroshi. * Backport improvements for test-case from Ruby core. Pull request #2189 by SHIBATA Hiroshi. * Fix ruby warnings in test suite. Pull request #2205 by Colby Swandale. * To use Gem::Specification#bindir of bundler instead of hard coded path. Pull request #2208 by SHIBATA Hiroshi. * Update gem push --help description. Pull request #2215 by Luis Sagastume. * Backport ruby core commits. Pull request #2264 by SHIBATA Hiroshi. ## Bug fixes: * Frozen string fix - lib/rubygems/bundler_version_finder.rb. Pull request #2115 by MSP-Greg. * Fixed tempfile leak for RubyGems 2.7.6. Pull request #2194 by SHIBATA Hiroshi. * Add missing requires. Pull request #2196 by David Rodríguez. * Fix Gem::Version.correct?. Pull request #2203 by Masato Nakamura. * Fix verify_entry regex for metadata. Pull request #2212 by Luis Sagastume. * Fix path checks for case insensitive filesystem. Pull request #2211 by Lars Kanis. ## Deprecations: * Deprecate unused code before removing them at #1524. Pull request #2197 by SHIBATA Hiroshi. * Deprecate for rubygems 3. Pull request #2214 by SHIBATA Hiroshi. * Mark deprecation to `ubygems.rb` for RubyGems 4. Pull request #2269 by SHIBATA Hiroshi. ## Breaking changes: * Update bundler-1.16.2. Pull request #2291 by SHIBATA Hiroshi. # 2.7.6 / 2018-02-16 Security fixes: * Prevent path traversal when writing to a symlinked basedir outside of the root. Discovered by nmalkin, fixed by Jonathan Claudius and Samuel Giddins. * Fix possible Unsafe Object Deserialization Vulnerability in gem owner. Fixed by Jonathan Claudius. * Strictly interpret octal fields in tar headers. Discovered by plover, fixed by Samuel Giddins. * Raise a security error when there are duplicate files in a package. Discovered by plover, fixed by Samuel Giddins. * Enforce URL validation on spec homepage attribute. Discovered by Yasin Soliman, fixed by Jonathan Claudius. * Mitigate XSS vulnerability in homepage attribute when displayed via `gem server`. Discovered by Yasin Soliman, fixed by Jonathan Claudius. * Prevent Path Traversal issue during gem installation. Discovered by nmalkin. # 2.7.5 ## Bug fixes: * To use bundler-1.16.1 #2121 by SHIBATA Hiroshi. * Fixed leaked FDs. Pull request #2127 by Nobuyoshi Nakada. * Support option for `--destdir` with upgrade installer. #2169 by Thibault Jouan. * Remove PID from gem index directory. #2155 by SHIBATA Hiroshi. * Avoid a #mkdir race condition #2148 by Samuel Giddins. * Gem::Util.traverse_parents should not crash on permissions error #2147 by Robert Ulejczyk. * Use `File.open` instead of `open`. #2142 by SHIBATA Hiroshi. * Set whether bundler is used for gemdeps with an environmental variable #2126 by SHIBATA Hiroshi. * Fix undefined method error when printing alert #1884 by Robert Ross. # 2.7.4 ## Bug fixes: * Fixed leaked FDs. Pull request #2127 by Nobuyoshi Nakada. * Avoid to warnings about gemspec loadings in rubygems tests. Pull request #2125 by SHIBATA Hiroshi. * Fix updater with rubygems-2.7.3 Pull request #2124 by SHIBATA Hiroshi. * Handle environment that does not have `flock` system call. Pull request #2107 by SHIBATA Hiroshi. # 2.7.3 ## Enhancements: * Removed needless version lock. Pull request #2074 by SHIBATA Hiroshi. * Add --[no-]check-development option to cleanup command. Pull request #2061 by Lin Jen-Shin (godfat). * Merge glob pattern using braces. Pull request #2072 by Kazuhiro NISHIYAMA. * Removed warnings of unused variables. Pull request #2084 by SHIBATA Hiroshi. * Call SPDX.org using HTTPS. Pull request #2102 by Olle Jonsson. * Remove multi load warning from plugins documentation. Pull request #2103 by Thibault Jouan. ## Bug fixes: * Fix test failure on Alpine Linux. Pull request #2079 by Ellen Marie Dash. * Avoid encoding issues by using binread in setup. Pull request #2089 by Mauro Morales. * Fix rake install_test_deps once the rake clean_env does not exist. Pull request #2090 by Lucas Oliveira. * Prevent to delete to "bundler-" prefix gem like bundler-audit. Pull request #2086 by SHIBATA Hiroshi. * Generate .bat files on Windows platform. Pull request #2094 by SHIBATA Hiroshi. * Workaround common options mutation in Gem::Command test. Pull request #2098 by Thibault Jouan. * Check gems dir existence before removing bundler. Pull request #2104 by Thibault Jouan. * Use setup command --regenerate-binstubs option flag. Pull request #2099 by Thibault Jouan. # 2.7.2 ## Bug fixes: * Added template files to vendoerd bundler. Pull request #2065 by SHIBATA Hiroshi. * Added workaround for non-git environment. Pull request #2066 by SHIBATA Hiroshi. # 2.7.1 (2017-11-03) ## Bug fixes: * Fix `gem update --system` with RubyGems 2.7+. Pull request #2054 by Samuel Giddins. # 2.7.0 (2017-11-02) ## Enhancements: * Update vendored bundler-1.16.0. Pull request #2051 by Samuel Giddins. * Use Bundler for Gem.use_gemdeps. Pull request #1674 by Samuel Giddins. * Add command `signin` to `gem` CLI. Pull request #1944 by Shiva Bhusal. * Add Logout feature to CLI. Pull request #1938 by Shiva Bhusal. * Added message to uninstall command for gem that is not installed. Pull request #1979 by anant anil kolvankar. * Add --trust-policy option to unpack command. Pull request #1718 by Nobuyoshi Nakada. * Show default gems for all platforms. Pull request #1685 by Konstantin Shabanov. * Add Travis and Appveyor build status to README. Pull request #1918 by Jun Aruga. * Remove warning `no email specified` when no email. Pull request #1675 by Leigh McCulloch. * Improve -rubygems performance. Pull request #1801 by Samuel Giddins. * Improve the performance of Kernel#require. Pull request #1678 by Samuel Giddins. * Improve user-facing messages by consistent casing of Ruby/RubyGems. Pull request #1771 by John Labovitz. * Improve error message when Gem::RuntimeRequirementNotMetError is raised. Pull request #1789 by Luis Sagastume. * Code Improvement: Inheritance corrected. Pull request #1942 by Shiva Bhusal. * [Source] Autoload fileutils. Pull request #1906 by Samuel Giddins. * Use Hash#fetch instead of if/else in Gem::ConfigFile. Pull request #1824 by Daniel Berger. * Require digest when it is used. Pull request #2006 by Samuel Giddins. * Do not index the doc folder in the `update_manifest` task. Pull request #2031 by Colby Swandale. * Don't use two postfix conditionals on one line. Pull request #2038 by Ellen Marie Dash. * [SafeYAML] Avoid warning when Gem::Deprecate.skip is set. Pull request #2034 by Samuel Giddins. * Update gem yank description. Pull request #2009 by David Radcliffe. * Fix formatting of installation instructions in README. Pull request #2018 by Jordan Danford. * Do not use #quick_spec internally. Pull request #1733 by Jon Moss. * Switch from docs to guides reference. Pull request #1886 by Jonathan Claudius. * Happier message when latest version is already installed. Pull request #1956 by Jared Beck. * Update specification reference docs. Pull request #1960 by Grey Baker. * Allow Gem.finish_resolve to respect already-activated specs. Pull request #1910 by Samuel Giddins. * Update cryptography for Gem::Security. Pull request #1691 by Sylvain Daubert. * Don't output mkmf.log message if compilation didn't fail. Pull request #1808 by Jeremy Evans. * Matches_for_glob - remove root path. Pull request #2010 by ahorek. * Gem::Resolver#search_for update for reliable searching/sorting. Pull request #1993 by MSP-Greg. * Allow local installs with transitive prerelease requirements. Pull request #1990 by Samuel Giddins. * Small style fixes to Installer Set. Pull request #1985 by Arthur Marzinkovskiy. * Setup cmd: Avoid terminating option string w/ dot. Pull request #1825 by Olle Jonsson. * Warn when no files are set. Pull request #1773 by Aidan Coyle. * Ensure `to_spec` falls back on prerelease specs. Pull request #1755 by André Arko. * [Specification] Eval setting default attributes in #initialize. Pull request #1739 by Samuel Giddins. * Sort ordering of sources is preserved. Pull request #1633 by Nathan Ladd. * Retry with :prerelease when no suggestions are found. Pull request #1696 by Aditya Prakash. * [Rakefile] Run `git submodule update --init` in `rake newb`. Pull request #1694 by Samuel Giddins. * [TestCase] Address comments around ui changes. Pull request #1677 by Samuel Giddins. * Eagerly resolve in activate_bin_path. Pull request #1666 by Samuel Giddins. * [Version] Make hash based upon canonical segments. Pull request #1659 by Samuel Giddins. * Add Ruby Together CTA, rearrange README a bit. Pull request #1775 by Michael Bernstein. * Update Contributing.rdoc with new label usage. Pull request #1716 by Lynn Cyrin. * Add --host sample to help. Pull request #1709 by Code Ahss. * Add a helpful suggestion when `gem install` fails due to required_rub…. Pull request #1697 by Samuel Giddins. * Add cert expiration length flag. Pull request #1725 by Luis Sagastume. * Add submodule instructions to manual install. Pull request #1727 by Joseph Frazier. * Allow usage of multiple `--version` operators. Pull request #1546 by James Wen. * Warn when requiring deprecated files. Pull request #1939 by Ellen Marie Dash. ## Deprecations: * Deprecate Gem::InstallerTestCase#util_gem_bindir and Gem::InstallerTestCase#util_gem_dir. Pull request #1729 by Jon Moss. * Deprecate passing options to Gem::GemRunner. Pull request #1730 by Jon Moss. * Add deprecation for Gem#datadir. Pull request #1732 by Jon Moss. * Add deprecation warning for Gem::DependencyInstaller#gems_to_install. Pull request #1731 by Jon Moss. ## Breaking changes: * Use `-rrubygems` instead of `-rubygems.rb`. Because ubygems.rb is unavailable on Ruby 2.5. Pull request #2028 #2027 #2029 by SHIBATA Hiroshi. * Update Code of Conduct to Contributor Covenant v1.4.0. Pull request #1796 by Matej. ## Bug fixes: * Fix issue for MinGW / MSYS2 builds and testing. Pull request #1876 by MSP-Greg. * Fixed broken links and overzealous URL encoding in gem server. Pull request #1809 by Nicole Orchard. * Fix a typo. Pull request #1722 by Koichi ITO. * Fix error message Gem::Security::Policy. Pull request #1724 by Nobuyoshi Nakada. * Fixing links markdown formatting in README. Pull request #1791 by Piotr Kuczynski. * Fix failing Bundler 1.8.7 CI builds. Pull request #1820 by Samuel Giddins. * Fixed test broken on ruby-head . Pull request #1842 by SHIBATA Hiroshi. * Fix typos with misspell. Pull request #1846 by SHIBATA Hiroshi. * Fix gem open to open highest version number rather than lowest. Pull request #1877 by Tim Pope. * Fix test_self_find_files_with_gemfile to sort expected files. Pull request #1878 by Kazuaki Matsuo. * Fix typos in CONTRIBUTING.rdoc. Pull request #1909 by Mark Sayson. * Fix some small documentation issues in installer. Pull request #1972 by Colby Swandale. * Fix links in Policies document. Pull request #1964 by Alyssa Ross. * Fix NoMethodError on bundler/inline environment. Pull request #2042 by SHIBATA Hiroshi. * Correct comments for Gem::InstallerTestCase#setup. Pull request #1741 by MSP-Greg. * Use File.expand_path for certification and key location. Pull request #1987 by SHIBATA Hiroshi. * Rescue EROFS. Pull request #1417 by Nobuyoshi Nakada. * Fix spelling of 'vulnerability'. Pull request #2022 by Philip Arndt. * Fix metadata link key names. Pull request #1896 by Aditya Prakash. * Fix a typo in uninstall_command.rb. Pull request #1934 by Yasuhiro Horimoto. * Gem::Requirement.create treat arguments as variable-length. Pull request #1830 by Toru YAGI. * Display an explanation when rake encounters an ontological problem. Pull request #1982 by Wilson Bilkovich. * [Server] Handle gems with names ending in `-\d`. Pull request #1926 by Samuel Giddins. * [InstallerSet] Avoid reloading _all_ local gems multiple times during dependency resolution. Pull request #1925 by Samuel Giddins. * Modify the return value of Gem::Version.correct?. Pull request #1916 by Tsukuru Tanimichi. * Validate metadata link keys. Pull request #1834 by Aditya Prakash. * Add changelog to metadata validation. Pull request #1885 by Aditya Prakash. * Replace socket error text message. Pull request #1823 by Daniel Berger. * Raise error if the email is invalid when building cert. Pull request #1779 by Luis Sagastume. * [StubSpecification] Don’t iterate through all loaded specs in #to_spec. Pull request #1738 by Samuel Giddins. # 2.6.14 / 2017-10-09 Security fixes: * Whitelist classes and symbols that are in loaded YAML. See CVE-2017-0903 for full details. Fix by Aaron Patterson. # 2.6.13 / 2017-08-27 Security fixes: * Fix a DNS request hijacking vulnerability. (CVE-2017-0902) Discovered by Jonathan Claudius, fix by Samuel Giddins. * Fix an ANSI escape sequence vulnerability. (CVE-2017-0899) Discovered by Yusuke Endoh, fix by Evan Phoenix. * Fix a DOS vulnerability in the `query` command. (CVE-2017-0900) Discovered by Yusuke Endoh, fix by Samuel Giddins. * Fix a vulnerability in the gem installer that allowed a malicious gem to overwrite arbitrary files. (CVE-2017-0901) Discovered by Yusuke Endoh, fix by Samuel Giddins. # 2.6.12 / 2017-04-30 ## Bug fixes: * Fix test_self_find_files_with_gemfile to sort expected files. Pull request #1880 by Kazuaki Matsuo. * Fix issue for MinGW / MSYS2 builds and testing. Pull request #1879 by MSP-Greg. * Fix gem open to open highest version number rather than lowest. Pull request #1877 by Tim Pope. * Add a test for requiring a default spec as installed by the ruby installer. Pull request #1899 by Samuel Giddins. * Fix broken --exact parameter to gem command. Pull request #1873 by Jason Frey. * [Installer] Generate backwards-compatible binstubs. Pull request #1904 by Samuel Giddins. * Fix pre-existing source recognition on add action. Pull request #1883 by Jonathan Claudius. * Prevent negative IDs in output of #inspect. Pull request #1908 by Vít Ondruch. * Allow Gem.finish_resolve to respect already-activated specs. Pull request #1910 by Samuel Giddins. # 2.6.11 / 2017-03-16 ## Bug fixes: * Fixed broken tests on ruby-head. Pull request #1841 by SHIBATA Hiroshi. * Update vendored Molinillo to 0.5.7. Pull request #1859 by Samuel Giddins. * Avoid activating Ruby 2.5 default gems when possible. Pull request #1843 by Samuel Giddins. * Use improved resolver sorting algorithm. Pull request #1856 by Samuel Giddins. # 2.6.10 / 2017-01-23 ## Bug fixes: * Fix `require` calling the wrong `gem` method when it is overridden. Pull request #1822 by Samuel Giddins. # 2.6.9 / 2017-01-20 ## Bug fixes: * Allow initializing versions with empty strings. Pull request #1767 by Luis Sagastume. * Fix TypeError on 2.4. Pull request #1788 by Nobuyoshi Nakada. * Don't output mkmf.log message if compilation didn't fail. Pull request #1808 by Jeremy Evans. * Fixed broken links and overzealous URL encoding in gem server. Pull request #1809 by Nicole Orchard. * Update vendored Molinillo to 0.5.5. Pull request #1812 by Samuel Giddins. * RakeBuilder: avoid frozen string issue. Pull request #1819 by Olle Jonsson. # 2.6.8 / 2016-10-29 ## Bug fixes: * Improve SSL verification failure message. Pull request #1751 by Eric Hodel. * Ensure `to_spec` falls back on prerelease specs. Pull request #1755 by André Arko. * Update vendored Molinillo to 0.5.3. Pull request #1763 by Samuel Giddins. # 2.6.7 / 2016-09-26 ## Bug fixes: * Install native extensions in the correct location when using the `--user-install` flag. Pull request #1683 by Noah Kantrowitz. * When calling `Gem.sources`, load sources from `configuration` if present, else use the default sources. Pull request #1699 by Luis Sagastume. * Fail gracefully when attempting to redirect without a Location. Pull request #1711 by Samuel Giddins. * Update vendored Molinillo to 0.5.1. Pull request #1714 by Samuel Giddins. # 2.6.6 / 2016-06-22 ## Bug fixes: * Sort installed versions to make sure we install the latest version when running `gem update --system`. As a one-time fix, run `gem update --system=2.6.6`. Pull request #1601 by David Radcliffe. # 2.6.5 / 2016-06-21 ## Enhancements: * Support for unified Integer in Ruby 2.4. Pull request #1618 by SHIBATA Hiroshi. * Update vendored Molinillo to 0.5.0 for performance improvements. Pull request #1638 by Samuel Giddins. ## Bug fixes: * Raise an explicit error if Signer#sign is called with no certs. Pull request #1605 by Daniel Berger. * Update `update_bundled_ca_certificates` utility script for directory nesting. Pull request #1583 by James Wen. * Fix broken symlink support in tar writer (+ fix broken test). Pull request #1578 by Cezary Baginski. * Remove extension directory before (re-)installing. Pull request #1576 by Jeremy Hinegardner. * Regenerate test CA certificates with appropriate extensions. Pull request #1611 by rhenium. * Rubygems does not terminate on failed file lock when not superuser. Pull request #1582 by Ellen Marie Dash. * Fix tar headers with a 101 character name. Pull request #1612 by PaweÅ‚ Tomulik. * Add Gem.platform_defaults to allow implementations to override defaults. Pull request #1644 by Charles Oliver Nutter. * Run Bundler tests on TravisCI. Pull request #1650 by Samuel Giddins. # 2.6.4 / 2016-04-26 ## Enhancements: * Use Gem::Util::NULL_DEVICE instead of hard coded strings. Pull request #1588 by Chris Charabaruk. * Use File.symlink on MS Windows if supported. Pull request #1418 by Nobuyoshi Nakada. ## Bug fixes: * Redact uri password from error output when gem fetch fails. Pull request #1565 by Brian Fletcher. * Suppress warnings. Pull request #1594 by Nobuyoshi Nakada. * Escape user-supplied content served on web pages by `gem server` to avoid potential XSS vulnerabilities. Samuel Giddins. # 2.6.3 / 2016-04-05 ## Enhancements: * Lazily calculate Gem::LoadError exception messages. Pull request #1550 by Aaron Patterson. * New fastly cert. Pull request #1548 by David Radcliffe. * Organize and cleanup SSL certs. Pull request #1555 by James Wen. * [RubyGems] Make deprecation message for paths= more helpful. Pull request #1562 by Samuel Giddins. * Show default gems when using "gem list". Pull request #1570 by Luis Sagastume. ## Bug fixes: * Stub ordering should be consistent regardless of how cache is populated. Pull request #1552 by Aaron Patterson. * Handle cases when the @@stubs variable contains non-stubs. Pull request #1558 by Per Lundberg. * Fix test on Windows for inconsistent temp path. Pull request #1554 by Hiroshi Shirosaki. * Fix `Gem.find_spec_for_exe` picks oldest gem. Pull request #1566 by Shinichi Maeshima. * [Owner] Fallback to email and userid when owner email is missing. Pull request #1569 by Samuel Giddins. * [Installer] Handle nil existing executable. Pull request #1561 by Samuel Giddins. * Allow two digit version numbers in the tests. Pull request #1575 by unak. # 2.6.2 / 2016-03-12 ## Bug fixes: * Fix wrong version of gem activation for bin stub. Pull request #1527 by Aaron Patterson. * Speed up gem activation failures. Pull request #1539 by Aaron Patterson. * Fix platform sorting in the resolver. Pull request #1542 by Samuel E. Giddins. * Ensure we unlock the monitor even if try_activate throws. Pull request #1538 by Charles Oliver Nutter. # 2.6.1 / 2016-02-28 ## Bug fixes: * Ensure `default_path` and `home` are set for paths. Pull request #1513 by Aaron Patterson. * Restore but deprecate support for Array values on `Gem.paths=`. Pull request #1514 by Aaron Patterson. * Fix invalid gem file preventing gem install from working. Pull request #1499 by Luis Sagastume. # 2.6.0 / 2016-02-26 ## Enhancements: * RubyGems now defaults the `gem push` to the gem's "allowed_push_host" metadata setting. Pull request #1486 by Josh Lane. * Update bundled Molinillo to 0.4.3. Pull request #1493 by Samuel E. Giddins. * Add version option to gem open command. Pull request #1483 by Hrvoje Å imić. * Feature/add silent flag. Pull request #1455 by Luis Sagastume. * Allow specifying gem requirements via env variables. Pull request #1472 by Samuel E. Giddins. ## Bug fixes: * RubyGems now stores `gem push` credentials under the host you signed-in for. Pull request #1485 by Josh Lane. * Move `coding` location to first line. Pull request #1471 by SHIBATA Hiroshi. * [PathSupport] Handle a regexp path separator. Pull request #1469 by Samuel E. Giddins. * Clean up the PathSupport object. Pull request #1094 by Aaron Patterson. * Join with File::PATH_SEPARATOR in Gem.use_paths. Pull request #1476 by Samuel E. Giddins. * Handle when the gem home and gem path aren't set in the config file. Pull request #1478 by Samuel E. Giddins. * Terminate TimeoutHandler. Pull request #1479 by Nobuyoshi Nakada. * Remove redundant cache. Pull request #1482 by Eileen M. Uchitelle. * Freeze `Gem::Version@segments` instance variable. Pull request #1487 by Ben Dean. * Gem cleanup is trying to uninstall gems outside GEM_HOME and reporting an error after it tries. Pull request #1353 by Luis Sagastume. * Avoid duplicated sources. Pull request #1489 by Luis Sagastume. * Better description for quiet flag. Pull request #1491 by Luis Sagastume. * Raise error if find_by_name returns with nil. Pull request #1494 by Zoltán Hegedüs. * Find_files only from loaded_gems when using gemdeps. Pull request #1277 by Michal Papis. # 2.5.2 / 2016-01-31 ## Bug fixes: * Fix memoization of Gem::Version#prerelease? Pull request #1125 by Matijs van Zuijlen. * Handle trailing colons in GEM_PATH, by Damien Robert. * Improve the Gemfile `gemspec` method, fixing #1204 and #1033. Pull request #1276 by Michael Papis. * Warn only once when a gemspec license is invalid. Pull request #1414 by Samuel E. Giddins. * Check for exact constants before using them, fixing Ruby bug #11940. Pull request #1438 by Nobuyoshi Nakada. * Fix building C extensions on Ruby 1.9.x on Windows. Pull request #1453 by Marie Markwell. * Handle symlinks containing ".." correctly. Pull request #1457 by Samuel E. Giddins. ## Enhancements: * Add `--no-rc` flag, which skips loading `.gemrc`. Pull request #1329 by Luis Sagastume. * Allow basic auth to be excluded from `allowed_push_host`. By Josh Lane. * Add `gem list --exact`, which finds gems by string match instead of regex. Pull request #1344 by Luis Sagastume. * Suggest alternatives when gem license is unknown. Pull request #1443 by Samuel E. Giddins. * Print a useful error if a binstub expects a newer version of a gem than is installed. Pull request #1407 by Samuel E. Giddins. * Allow the (supported) s3:// scheme to be used with `--source`. Pull request #1416 by Dave Adams. * Add `--[no-]post-install-message` to `install` and `update`. Pull request #1162 by Josef Å imánek. * Add `--host` option to `yank`, providing symmetry with `pull`. Pull request #1361 by Mike Virata-Stone. * Update bundled Molinillo to 0.4.1. Pull request #1452 by Samuel E. Giddins. * Allow calling `build` without '.gemspec'. Pull request #1454 by Stephen Blackstone. * Add support for `source` option on gems in Gemfile. Pull request #1355 by Michael Papis. * Function correctly when string literals are frozen on Ruby 2.3. Pull request #1408 by Samuel E. Giddins. # 2.5.1 / 2015-12-10 ## Bug fixes: * Ensure platform sorting only uses strings. Affected binary installs on Windows. Issue #1369 reported by Ryan Atball (among others). Pull request #1375 by Samuel E. Giddins. * Revert PR #1332. Unable to reproduce, and nil should be impossible. * Gem::Specification#to_fullpath now returns .rb extensions when such a file exists. Pull request #1114 by y-yagi. * RubyGems now handles Net::HTTPFatalError instead of crashing. Pull request #1314 by Samuel E. Giddins. * Updated bundled Molinillo to 0.4.0. Pull request #1322, #1396 by Samuel E. Giddins. * Improved performance of spec loading by reducing likelihood of loading the complete specification. Pull request #1373 by Aaron Patterson. * Improved caching of requirable files Pull request #1377 by Aaron Patterson. * Fixed activation of gems with development dependencies. Pull request #1388 by Samuel E. Giddins. * RubyGems now uses the same Molinillo vendoring strategy as Bundler. Pull request #1397 by Samuel E. Giddins. * Fixed documentation of Gem::Requirement.parse. Pull request #1398 by Juanito Fatas. * RubyGems no longer warns when a prerelease gem has prerelease dependencies. Pull request #1399 by Samuel E. Giddins. * Fixed Gem::Version documentation example. Pull request #1401 by Guilherme Goettems Schneider. * Updated documentation links to https://. Pull request #1404 by Suriyaa Kudo. * Fixed double word typo. Pull request #1411 by Jake Worth. # 2.5.0 / 2015-11-03 ## Enhancements: * Added the Gem::Licenses class which provides a set of standard license identifiers as set by spdx.org. This is now used by the Gem::Specification#license attribute to try to standardize (though not enforce) licenses set by gem authors. Pull request #1249 by Kyle Mitchell. * Use Molinillo as the resolver library. This is the same resolver as used by Bundler. Pull request #1189 by Samuel E. Giddins. * Add `--skip=gem_name` to Pristine command. Pull request #1018 by windwiny. * The parsed gem dependencies file is now available via Gem.gemdeps following Gem.use_gemdeps. Pull request #1224 by Hsing-Hui Hsu, issue #1213 by Michal Papis. * Moved description attribute to recommended for Gem::Specification. Pull request #1046 by Michal Papis * Moved `Gem::Indexer#abbreviate` and `#sanitize` to `Gem::Specification`. Pull request #1145 by Arthur Nogueira Neves * Cache Gem::Version segments for `#bump` and `#release`. Pull request #1131 by Matijs van Zuijlen * Fix edge case in `levenshtein_distance` for comparing longer strings. Pull request #1173 by Richard Schneeman * Remove duplication from List#to_a, improving from O(n^2) to O(n) time. Pull request #1200 by Marc Siegel. * Gem::Specification.add_specs is deprecated and will be removed from version 3.0 with no replacement. To add specs, install the gem, then reset the cache. * Gem::Specification.add_spec is deprecated and will be removed from version 3.0 with no replacement. To add specs, install the gem, then reset the cache. * Gem::Specification.remove_spec is deprecated and will be removed from version 3.0 with no replacement. To remove specs, uninstall the gem, then reset the cache by calling Gem::Specification.reset. * Call Array#compact before calling Array#uniq for minor speed improvement in the Gem::Specification#files method. Pull request #1253 by Marat Amerov. * Use stringio instead of custom String classes. Pull request #1250 by Petr Skocik. * Use URI#host instead of URI#hostname to retain backwards compatibility with Ruby 1.9.2 and earlier in util library. Pull request #1288 by Joe Rafaniello. * Documentation update for gem sources. Pull request #1324 by Ilya Vassilevsky. * Documentation update for required_ruby_version. Pull request #1321 by Matt Patterson. * Documentation update for gem update. Pull request #1306 by Tim Blair. * Emit a warning on SRV resolve failure. Pull request #1023 by Ivan Kuchin. * Allow duplicate dependencies between runtime and development. Pull request #1032 by Murray Steele. * The gem env command now shows the user installation directory. Pull request #1343 by Luis Sagastume. * The Gem::Platform#=== method now treats a nil cpu arch the same as 'universal'. Pull request #1356 by Daniel Berger. * Improved memory performance in Gem::Specification.traverse. Pull request #1188 by Aaron Patterson. * RubyGems packages now support symlinks. Pull request #1209 by Samuel E. Giddins. * RubyGems no longer outputs mkmf.log if it does not exist. Pull request #1222 by Andrew Hooker. * Added Bitrig platform. Pull request #1233 by John C. Vernaleo. * Improved error message for first-time RubyGems developers. Pull request #1241 by André Arko * Improved performance of Gem::Specification#load with cached specs. Pull request #1297 by Samuel E. Giddins. * Gem::RemoteFetcher allows users to set HTTP headers. Pull request #1363 by Agis Anastasopoulos. ## Bug fixes: * Fixed Rake homepage url in example for Gem::Specification#homepage. Pull request #1171 by Arthur Nogueira Neves * Don't crash if partially uninstalled gem can't be found. Pull request #1283 by Cezary Baginski. * Test warning cleanup. Pull request #1298 by Samuel E. Giddins. * Documentation fix for GemDependencyAPI. Pull request #1308 by Michael Papis. * Fetcher now ignores ENOLCK errors in single threaded environments. This handles an issue with gem installation on NFS as best we can. Addresses issue #1176 by Ryan Moore. Pull request #1327 by Daniel Berger. * Fix some path quoting issues in the test suite. Pull request #1328 by Gavin Miller. * Fix NoMethodError in running ruby processes when gems are uninstalled. Pull request #1332 by Peter Drake. * Fixed a potential NoMethodError for gem cleanup. Pull request #1333 by Peter Drake. * Fixed gem help bug. Issue #1352 reported by bogem, pull request #1357 by Luis Sagastume. * Remove temporary directories after tests finish. Pull request #1181 by Nobuyoshi Nokada. * Update links in RubyGems documentation. Pull request #1185 by Darío Hereñú. * Prerelease gem executables can now be run. Pull request #1186 by Samuel E. Giddins. * Updated RubyGems travis-ci ruby versions. Pull request #1187 by Samuel E. Giddins. * Fixed release date of RubyGems 2.4.6. Pull request #1190 by Frieder Bluemle. * Fixed bugs in gem activation. Pull request #1202 by Miklós Fazekas. * Fixed documentation for `gem list`. Pull request #1228 by Godfrey Chan. * Fixed #1200 history entry. Pull request #1234 by Marc Siegel. * Fixed synchronization issue when resetting the Gem::Specification gem list. Pull request #1239 by Samuel E. Giddins. * Fixed running tests in parallel. Pull request #1257 by SHIBATA Hiroshi. * Fixed running tests with `--program-prefix` or `--program-suffix` for ruby. Pull request #1258 by Shane Gibbs. * Fixed Gem::Specification#to_yaml. Pull request #1262 by Hiroaki Izu. * Fixed taintedness of Gem::Specification#raw_require_paths. Pull request #1268 by Sam Ruby. * Fixed sorting of platforms when installing gems. Pull request #1271 by nonsequitur. * Use `--no-document` over deprecated documentation options when installing dependencies on travis. Pull request #1272 by takiy33. * Improved support for IPv6 addresses in URIs. Pull request #1275 by Joe Rafaniello. * Spec validation no longer crashes if a file does not exist. Pull request #1278 by Samuel E. Giddins. * Gems can now be installed within `rescue`. Pull request #1282 by Samuel E. Giddins. * Increased Diffie-Hellman key size for tests for modern OpenSSL. Pull request #1290 by Vít Ondruch. * RubyGems handles invalid config files better. Pull request #1367 by Agis Anastasopoulos. # 2.4.8 / 2015-06-08 ## Bug fixes: * Tightened API endpoint checks for CVE-2015-3900 # 2.4.7 / 2015-05-14 ## Bug fixes: * Limit API endpoint to original security domain for CVE-2015-3900. Fix by claudijd # 2.4.6 / 2015-02-05 ## Bug fixes: * Fixed resolving gems with both upper and lower requirement boundaries. Issue #1141 by Jakub Jirutka. * Moved extension directory after require_paths to fix missing constant bugs in some gems with C extensions. Issue #784 by André Arko, pull request #1137 by Barry Allard. * Use Gem::Dependency#requirement when adding a dependency to an existing dependency instance. Pull request #1101 by Josh Cheek. * Fixed warning of shadowed local variable in Gem::Specification. Pull request #1109 by Rohit Arondekar * Gem::Requirement should always sort requirements before coercion to Hash. Pull request #1139 by Eito Katagiri. * The `gem open` command should change the current working directory before opening the editor. Pull request #1142 by Alex Wood. * Ensure quotes are stripped from the Windows launcher script used to install gems. Pull request #1115 by Youngjun Song. * Fixed errors when writing to NFS to to 0444 files. Issue #1161 by Emmanuel Hadoux. * Removed dead code in Gem::StreamUI. Pull request #1117 by mediaslave24. * Fixed typos. Pull request #1096 by hakeda. * Relaxed CMake dependency for RHEL 6 and CentOS 6. Pull request #1124 by Vít Ondruch. * Relaxed Psych dependency. Pull request #1128 by Vít Ondruch. # 2.4.5 / 2014-12-03 ## Bug fixes: * Improved speed of requiring gems. (Around 25% for a 60 gem test). Pull request #1060 by unak. * RubyGems no longer attempts to look up gems remotely with the --local flag. Pull request #1084 by Jeremy Evans. * Executable stubs use the correct gem version when RUBYGEMS_GEMDEPS is active. Issue #1072 by Michael Kaiser-Nyman. * Fixed handling of pinned gems in lockfiles with versions. Issue #1078 by Ian Ker-Seymer. * Fixed handling of git@example:gem.git URIs. Issue #1054 by Mogutan Mogu. * Fixed handling of platforms retrieved from the dependencies API. Issue #1058 and patch suggestion by tux-mind. * RubyGems now suggests a copy-pasteable `gem pristine` command when extensions are missing. Pull request #1057 by Shannon Skipper. * Improved errors for long file names when packaging. Pull request #1016 by Piotrek Bator. * `gem pristine` now skips gems cannot be found remotely. Pull request #1064 by Tuomas Kareinen. * `gem pristine` now caches gems to the proper directory. Pull request #1064 by Tuomas Kareinen. * `gem pristine` now skips bundled gems properly. Pull request #1064 by Tuomas Kareinen. * Improved interoperability of Vagrant with RubyGems. Pull request #1057 by Vít Ondruch. * Renamed CONTRIBUTING to CONTRIBUTING.rdoc to allow markup. Pull request #1090 by Roberto Miranda. * Switched from #partition to #reject as only one collection is used. Pull request #1074 by Tuomas Kareinen. * Fixed installation of gems on systems using memory-mapped files. Pull request #1038 by Justin Li. * Fixed bug in Gem::Text#min3 where `a == b < c`. Pull request #1026 by fortissimo1997. * Fixed uninitialized variable warning in BasicSpecification. Pull request #1019 by Piotr Szotkowski. * Removed unneeded exception handling for cyclic dependencies. Pull request #1043 by Jens Wille. * Fixed grouped expression warning. Pull request #1081 by André Arko. * Fixed handling of platforms when writing lockfiles. # 2.4.4 / 2014-11-12 ## Bug fixes: * Add alternate Root CA for upcoming certificate change. Fixes #1050 by Protosac # 2.4.3 / 2014-11-10 ## Bug fixes: * Fix redefine MirrorCommand issue. Pull request #1044 by @akr. * Fix typo in platform= docs. Pull request #1048 by @jasonrclark * Add root SSL certificates for upcoming certificate change. Fixes #1050 by Protosac # 2.4.2 / 2014-10-01 This release was sponsored by Ruby Central. ## Bug fixes: * RubyGems now correctly matches wildcard no_proxy hosts. Issue #997 by voelzemo. * Added support for missing git_source method in the gem dependencies API. * Fixed handling of git gems with an alternate install directory. * Lockfiles will no longer be truncated upon resolution errors. * Fixed messaging for `gem owner -a`. Issue #1004 by Aaron Patterson, Ryan Davis. * Removed meaningless ensure. Pull request #1003 by gogotanaka. * Improved wording of --source option help. Pull request #989 by Jason Clark. * Empty build_info files are now ignored. Issue #903 by Adan Alvarado. * Gem::Installer ignores dependency checks when installing development dependencies. Issue #994 by Jens Willie. * `gem update` now continues after dependency errors. Issue #993 by aaronchi. * RubyGems no longer warns about semantic version dependencies for the 0.x range. Issue #987 by Jeff Felchner, pull request #1006 by Hsing-Hui Hsu. * Added minimal lock to allow multithread installation of gems. Issue #982 and pull request #1005 by Yorick Peterse * RubyGems now considers prerelease dependencies as it did in earlier versions when --prerelease is given. Issue #990 by Jeremy Tryba. * Updated capitalization in README. Issue #1010 by Ben Bodenmiller. * Fixed activating gems from a Gemfile for default gems. Issue #991 by khoan. * Fixed windows stub script generation for Cygwin. Issue #1000 by Brett DiFrischia. * Allow gem bindir and ruby.exe to live in separate directories. Pull request #942 by Ian Flynn. * Fixed handling of gemspec in gem dependencies files to match Bundler behavior. Issue #1020 by Michal Papis. * Fixed `gem update` when updating to prereleases. Issue #1028 by Santiago Pastorino. * RubyGems now fails immediately when a git reference cannot be found instead of spewing git errors. Issue #1031 by Michal Papis # 2.4.1 / 2014-07-17 ## Bug fixes: * RubyGems can now be updated on Ruby implementations that do not support vendordir in RbConfig::CONFIG. Issue #974 by net1957. # 2.4.0 / 2014-07-16 ## Enhancements: * The contents command now supports a --show-install-dir option that shows only the directory the gem is installed in. Feature request #966 by Akinori MUSHA. * Added a --build-root option to the install command for packagers. Pull request #965 by Marcus Rückert. * Added vendor gem support to RubyGems. Package managers may now install gems in Gem.vendor_dir with the --vendor option to gem install. Issue #943 by Marcus Rückert. ## Bug fixes: * Kernel#gem now respects the prerelease flag when activating gems. Previously this behavior was undefined which could lead to bugs when a prerelease version was unintentionally activated. Bug #938 by Joe Ferris. * RubyGems now prefers gems from git over installed gems. This allows gems from git to override an installed gem with the same name and version. Bug #944 by Thomas Kriechbaumer. * Fixed handling of git gems in a lockfile with unversioned dependencies. Bug #940 by Michael Kaiser-Nyman. * The ruby directive in a gem dependencies file is ignored when installing. Bug #941 by Michael Kaiser-Nyman. * Added open to list of builtin commands (`gem open` now works). Reported by Espen Antonsen. * `gem open` now works with command-line editors. Pull request #962 by Tim Pope. * `gem install -g` now respects `--conservative`. Pull request #950 by Jeremy Evans. * RubyGems releases announcements now now include checksums. Bug #939 by Alexander E. Fischer. * RubyGems now expands ~ in $PATH when checking if installed executables will be runnable. Pull request #945 by Alex Talker. * Fixed `gem install -g --explain`. Issue #947 by Luis Lavena. Patch by Hsing-Hui Hsu. * RubyGems locks less during gem activation. Pull request #951 by Aaron Patterson and Justin Searls, #969 by Jeremy Tryba. * Kernel#gem is now thread-safe. Pull request #967 by Aaron Patterson. * RubyGems now handles spaces in directory names for some parts of extension building. Pull request #949 by Tristan Hill. * RubyGems no longer defines an empty Date class. Pull Request #948 by Benoit Daloze. * RubyGems respects --document options for `gem update` again. Bug 946 by jonforums. Patch by Hsing-Hui Hsu. * RubyGems generates documentation again with --ignore-dependencies. Bug #961 by Pulfer. * RubyGems can install extensions across partitions now. Pull request #970 by Michael Scherer. * `-s` is now short for `--source` which resolves an ambiguity with --no-suggestions. Pull request #955 by Alexander Kahn. * Added extra test for ~> for 0.0.X versions. Pull request #958 by Mark Lorenz. * Fixed typo in gem updated help. Pull request #952 by Per Modin. * Clarified that the gem description should not be excessively long. Part of bug #956 by Renier Morales. * Hid documentation of outdated test_files related methods in Specification. Guides issue #90 by Emil Soman. * RubyGems now falls back to the old index if the rubygems.org API fails during gem resolution. # 2.3.0 / 2014-06-10 ## Enhancements: * Added the `open` command which allows you to inspect the source of a gem using your editor. Issue #789 by Mike Perham. Pull request #804 by Vitali F. * The `update` command shows a summary of which gems were and were not updated. Issue #544 by Mark D. Blackwell. Pull request #777 by Tejas Bubane. * Improved "could not find 'gem'" error reporting. Pull request #913 by Richard Schneeman. * Gem.use_gemdeps now accepts an argument specifying the path of the gem dependencies file. When the file is not found an ArgumentError is raised. * Writing a .lock file for a gem dependencies file is now controlled by the --[no-]lock option. Pull request #774 by Jeremy Evans. * Suggestion of alternate names and spelling corrections during install can be suppressed with the --no-suggestions option. Issue #867 by Jimmy Cuadra. * Added mswin64 support. Pull request #881 by U. Nakamura. * A gem is installable from an IO again (as in RubyGems 1.8.x and older). Pull request #716 by Xavier Shay. * RubyGems no longer attempts to build extensions during activation. Instead a warning is issued instructing you to run `gem pristine` which will build the extensions for the current platform. Issue #796 by dunric. * Added Gem::UserInteraction#verbose which prints when the --verbose option is given. Pull request #811 by Aaron Patterson. * RubyGems can now fetch gems from private repositories using S3. Pull request #856 by Brian Palmer. * Added Gem::ConflictError subclass of Gem::LoadError so you can distinguish conflicts from other problems. Pull request #841 by Aaron Patterson. * Cleaned up unneeded load_yaml bootstrapping in Rakefile. Pull request #815 by Zachary Scott. * Improved performance of conflict resolution. Pull request #842 by Aaron Patterson. * Add documentation of "~> 0" to Gem::Version. Issue #896 by Aaron Suggs. * Added CONTRIBUTING file. Pull request #849 by Mark Turner. * Allow use of bindir in windows_stub_script in .bat Pull request #818 by @unak and @nobu * Use native File::PATH_SEPARATOR and remove $ before gem env on Gem::Dependency#to_specs. Pull request #915 by @parkr * RubyGems recommends SPDX IDs for licenses now. Pull request #917 by Benjamin Fleischer. ## Bug fixes: * RubyGems now only fetches the latest specs to find misspellings which speeds up gem suggestions. Pull request #808 by Aaron Patterson. * The given .gem is installed again when multiple versions of the same gem exist in the current directory. Bug #875 by Prem Sichanugrist. * Local gems are preferred by name over remote gems again. Bug #834 by jonforums. * RubyGems can install local prerelease gems again. Pull request #866 by Aaron Patterson. Issue #813 by André Arko. * RubyGems installs development dependencies correctly again. Issue #893 by Jens Wille. * RubyGems only installs prerelease versions when they are requested again. Issue #853 by Seth Vargo, special thanks to Zachary Scott and Ben Moss. Issue #884 by Nathaniel Bibler. * Fixed RubyGems list and search command help. Pull request #905 and #928 by Gabriel Gilder. * The list of gems to uninstall is always sorted now. Bug #918 by postmodern. * The update command only updates exactly matching gem names now. Bug #919 by postmodern. * Gem::Server now supports prerelease versions. Bug #857 by Marcelo Alvim. * RubyGems no longer raises an exception immediately when gems are missing with RUBYGEMS_GEMDEPS. A warning is printed instead. Issue #886 by Michael Kaiser-Nyman. * Commands using the rubygems.org API no longer try to sign-in when a non-rubygems API key has been chosen. Bug #826 by Ben Sedat. * Updated documentation of Gem::Specification#executables to indicate that only ruby scripts are allowed. Bug #830 by Geoff Nixon. * Gem dependency API supports multiple platforms for #platform and #platforms now. Bug #821 by johnny5-. * Gem dependency API supports lockfiles without explicit sources. Bug #820 by johnny5-. * Gem dependency API supports lockfiles with multiple sources. Bug #822 by johnny5-, bug #851 by sumit shah. * Gem dependency API supports lockfiles with git sources using branch, tag and ref. Bug #822 by johnny5-, #931 by Christoph Blank. * Gem dependency API no longer raises an exception when a gem does not exist in one of the configured sources. Bug #897 by Michael Kaiser-Nyman. * Gem dependency API no longer lists development dependencies in the lockfile. Bug #768 by Diego Viola, #916 by Santiago Pastorino. * SSL configuration entries in ~/.gemrc are properly round-tripped. Bug #837 by Noah Luck Easterly. * The environment command now shows the system configuration directory where the all-users gemrc lives. Bug #827 by Ben Langfeld. * Improved speed of conflict checking when activating gems. Pull request #843 by Aaron Patterson. * Improved speed of levenshtein distance for gem suggestion misspellings. Pull requests #809, #812 by Aaron Patterson. * Restored persistent connections. Pull request #869 by Aaron Patterson. * Reduced requests when fetching gems with the bundler API. Pull request #773 by Charlie Somerville. * Reduced dependency prefetching to improve install speed. Pull requests #871, #872 by Matthew Draper. * RubyGems now avoids net/http auto-proxy detection. Issue #824 by HINOHARA Hiroshi. * Removed conversion of Gem::List (used for debugging installs) to unless necessary. Pull request #870 by Aaron Patterson. * RubyGems now prints release notes from the current release. Bug #814 by André Arko. * RubyGems allows installation of unsigned gems again with -P MediumSecurity and lower. Bug #859 by Justin S. Collins. * Fixed typo in Jim Weirich's name. Ruby pull request #577 by Mo Khan. * Fixed typo in Gem.datadir documentation. Pull request #868 by Patrick Jones. * Fixed File.exists? warnings. Pull request #829 by SHIBATA Hiroshi. * Fixed show_release_notes test for LANG=C. Issue #862 by Luis Lavena. * Fixed Gem::Package from IO tests on windows. Patch from issue #861 by Luis Lavena. * Check for nil extensions as BasicSpecification does not initialize them. Pull request #882 by André Arko. * Fixed Gem::BasicSpecification#require_paths receives a String for @require_paths. Pull request #904 by @danielpclark * Fixed circular require warnings. Bug #908 by Zachary Scott. * Gem::Specification#require_paths can no longer accidentally be an Array. Pull requests #904, #909 by Daniel P. Clark. * Don't build extensions if `build_dir/extensions` isn't writable. Pull request #912 by @dunric * Gem::BasicSpecification#require_paths respects default_ext_dir_for now. Bug #852 by Vít Ondruch. # 2.2.5 / 2015-06-08 ## Bug fixes: * Tightened API endpoint checks for CVE-2015-3900 # 2.2.4 / 2015-05-14 ## Bug fixes: * Backport: Limit API endpoint to original security domain for CVE-2015-3900. Fix by claudijd # 2.2.3 / 2014-12-21 ## Bug fixes: * Backport: Add alternate Root CA for upcoming certificate change. Fixes #1050 by Protosac # 2.2.2 / 2014-02-05 ## Bug fixes: * Fixed ruby tests when BASERUBY is not set. Patch for #778 by Nobuyoshi Nakada. * Removed double requests in RemoteFetcher#cache_update_path to improve remote install speed. Pull request #772 by Charlie Somerville. * The mkmf.log is now placed next to gem_make.out when building extensions. * `gem install -g --local` no longer accesses the network. Bug #776 by Jeremy Evans. * RubyGems now correctly handles URL passwords with encoded characters. Pull request #781 by Brian Fletcher. * RubyGems now correctly escapes URL characters. Pull request #788 by Brian Fletcher. * RubyGems can now unpack tar files where the type flag is not given. Pull request #790 by Cody Russell. * Typo corrections. Pull request ruby/ruby#506 by windwiny. * RubyGems now uses both the default certificates and ssl_ca_cert instead of one or the other. Pull request #795 by zebardy. * RubyGems can now use the bundler API against hosted gem servers in a directory. Pull request #801 by Brian Fletcher. * RubyGems bin stubs now ignore non-versions. This allows RubyGems bin stubs to list file names like "_foo_". Issue #799 by Postmodern. * Restored behavior of Gem::Version::new when subclassed. Issue #805 by Sergio Rubio. # 2.2.1 / 2014-01-06 ## Bug fixes: * Platforms in the Gemfile.lock GEM section are now handled correctly. Bug #767 by Diego Viola. * RubyGems now displays which gem couldn't be uninstalled from the home directory. Pull request #757 by Michal Papis. * Removed unused method Gem::Resolver#find_conflict_state. Pull request #759 by Smit Shah. * Fixed installing gems from local files without dependencies. Issue #760 by Arash Mousavi, pull request #764 by Tim Moore. * Removed TODO about syntax that works in Ruby 1.8.7. Pull request #765 by Benjamin Fleischer. * Switched Gem.ruby_api_version to use RbConfig::CONFIG['ruby_version'] which has the same value but is overridable by packagers through --with-ruby-version= when configuring ruby. Bug #770 by Jeremy Evans. * RubyGems now prefers the bundler API for `gem install` to reduce HTTP requests. (This change was intended for RubyGems 2.2.0 but was missed.) This should address bug #762 by Dan Peterson and bug #766 by mipearson. * Added Gem::BasicSpecification#source_paths so documentation or analysis tools can work properly as require_paths no longer returns extension source directories. Bug #758 Vít Ondruch. * Gem.read_binary can read read-only files again. This caused file:// repositories to stop working. Bug #761 by John Anderson. * Fixed specification file sorting for Ruby 1.8.7 compatibility. Pull request #763 by James Mead # 2.2.0 / 2013-12-26 Special thanks to Vít Ondruch and Michal Papis for testing and finding bugs in RubyGems as it was prepared for the 2.2.0 release. ## Enhancements: * RubyGems can check for gem dependencies files (gem.deps.rb or Gemfile) when rubygems executables are started and uses the found dependencies. This means `rake` will work similar to `bundle exec rake`. To enable this set the `RUBYGEMS_GEMDEPS` environment variable to the location of your dependencies file. See Gem::use_gemdeps for further details. * A RubyGems directory may now be shared amongst multiple ruby versions. Upon activation RubyGems will automatically compile missing extensions for the current platform when the built objects are missing. Issue #596 by Michal Papis By default different platforms do not share gem install locations so this must be configured by setting GEM_HOME to a common directory. Some gems use fixed paths for requiring extensions and are not compatible with sharing gem directories. The default sharing location may be configured by RubyGems packagers through Gem.default_ext_dir_for. Pull Request #744 by Vít Ondruch. * RubyGems checks the 'allowed_push_host' metadata value when pushing a gem to prevent an accidental push to a public repository (such as rubygems.org). If you have private gems you should set this value in your gem specification metadata. Pull request #603 by Seamus Abshere. * `gem list` now shows results for multiple arguments. Pull request #604 by Zach Rabinovich. * `gem pristine --extensions` will restore only gems with extensions. Issue #619 by Postmodern. * Gem::Specification#files is now sorted. Pull request #612 by Justin George. * For `gem list` and friends, "LOCAL" and "REMOTE" headers are omitted if only local or remote gem information is requested with --quiet. Pull request #615 by Michal Papis. * Added Gem::Specification#full_require_paths which is like require_paths, but returns a fully-qualified results. Pull request #632 by Vít Ondruch. * RubyGems now looks for the https_proxy environment variable for https:// sources. RubyGems will fall back to http_proxy if there is no https_proxy. Issue #610 by mkristian. * RubyGems now creates directories in .gem files. Issue #631 by marksolaris. * RubyGems raises an exception when a specification includes its gem. Issue #623 by notEthan. * RubyGems now displays relevant release note information when updating RubyGems. Issue #647 by Trevor Wennblom. * Deprecated Gem::Installer::ExtensionBuildError in favor of Gem::Ext::BuildError. The old constant is an alias for the new constant. * When extensions are built the gem_make.out file is always written now, even on success. This will help with debugging bad builds that report success. * If a specification fails to validate RubyGems shows a link to the specification reference guide. Issue #656 by Markus Heiler. * When using `gem install -g`, RubyGems now detects the presence of an Isolate, Gemfile or gem.deps.rb file. * Added Gem::StubSpecification#stubbed? to help determine if a user should run `gem pristine` to speed up gem loading. Pull request #694 and #701 by Jon Leighton. * RubyGems now warns when a gem has a pessimistic version dependency that may be too strict. * RubyGems now warns when a gem has an open-ended dependency. * RubyGems now raises an exception when a dependency for a gem is defined twice. * Marked the license specification attribute as recommended. Pull request #713 by Benjamin Fleischer. * RubyGems uses io/console instead of `stty` when available. Pull request #740 by Nobuyoshi Nakada * Relaxed Gem.ruby tests for platforms that override where ruby lives. Pull Request #755 by strzibny. ## Bug fixes: * RubyGems now returns an error status when any file given to `gem which` cannot be found. Ruby bug #9004 by Eugene Vilensky. * Fixed command escaping when building rake extensions. Pull request #721 by Dmitry Ratnikov. * Fixed uninstallation of gems when GEM_HOME is a relative directory. Issue #708 by Ryan Davis. * Default gems are now ignored by Gem::Validator#alien. Issue #717 by David Bahar. * Fixed typos in RubyGems. Pull requests #723, #725, #731 by Akira Matsuda, pull request #736 by Leo Gallucci, pull request #746 by DV Suresh. * RubyGems now holds exclusive locks on cached gem files to prevent incorrect updates. Pull Request #737 by Smit Shah * Improved speed of `gem install --ignore-dependencies`. Patch by Terence Lee. # 2.1.11 / 2013-11-12 ## Bug fixes: * Gem::Specification::remove_spec no longer checks for existence of the spec to be removed. Issue #698 by Tiago Macedo. * Restored wildcard handling when installing gems. Issue #697 by Chuck Remes. * Added DigiCert High Assurance EV Root CA certificate for the cloudfront.net certificate change. * The Gem::RemoteFetcher tests now choose the test server port more reliably. Pull Request #706 by akr. # 2.1.10 / 2013-10-24 ## Bug fixes: * Use class check instead of :version method check when creating Gem::Version objects. Fixes #674 by jkanywhere. * Fail during `gem update` when an error occurs checking for newer versions. This means RubyGems no longer reports "nothing to update" when it cannot communicate with the server. Issue #688 by Jimmy Dee. * Allow installation of gems when the home directory does not exist. Issue #689 by Laurence Rowe * Fix updating gems which have multiple platforms. Issue #693 by Ookami Kenrou. * The gem server now uses user-provided directories. Issue #696 by Marcelo Alvim. * Improved resolution of gems when specific versions have conflicting dependencies. * RubyGems installs local gems regardless of platform again. Issue #695 * The --ignore-dependencies option for gem installation works again. Issue #695 # 2.1.9 / 2013-10-14 ## Bug fixes: * Reduce sorting when fetching specifications. This speeds up the update and outdated commands, and others. Issue #657 by windwiny. * Proxy usernames and passwords are now escaped properly. Ruby Bug #8979 by Masahiro Tomita, Issue #668 by Kouhei Sutou. # 2.1.8 / 2013-10-10 ## Bug fixes: * Fixed local installation of platform gem files. Issue #664 by Ryan Melton. * Files starting with "." in the root directory are installed again. Issue #680 by Ivo Wever, Pull Request #681 by Jeremy Evans. * The index generator no longer indexes default gems. Issue #661 by Jeremy Hinegardner. # 2.1.7 / 2013-10-09 ## Bug fixes: * `gem sources --list` now displays a list of sources. Pull request #672 by Nathan Marley. * RubyGems no longer alters Gem::Specification.dirs when installing. Pull Request #670 by Vít Ondruch * Use RFC 2616-compatible time in HTTP headers. Pull request #655 by Larry Marburger. * RubyGems now gives a more descriptive message for missing licenses on validation. Issue #656 by Markus Heiler. * Expand unpack destination directory. This fixes problems when File.realpath is missing and $GEM_HOME contains "..". Issue #679 by Charles Nutter. # 2.1.6 / 2013-10-08 ## Bug fixes: * Added certificates to follow the s3.amazonaws.com certificate change. Fixes #665 by emeyekayee. Fixes #671 by jonforums. * Remove redundant built-in certificates not needed for https://rubygems.org Fixes #654 by Vít Ondruch. * Added test for missing certificates for https://s3.amazonaws.com or https://rubygems.org. Pull request #673 by Hannes Georg. * RubyGems now allows a Pathname for Kernel#require like the built-in Kernel#require. Pull request #663 by Aaron Patterson. * Required rbconfig in Gem::ConfigFile for Ruby 1.9.1 compatibility. (Ruby 1.9.1 is no longer receiving security fixes, so please update to a newer version.) Issue #676 by Michal Papis. Issue wayneeseguin/rvm#2262 by Thomas Sänger. # 2.1.5 / 2013-09-24 Security fixes: * RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4363 for full details including vulnerable APIs. Fixed versions include 2.1.5, 2.0.10, 1.8.27 and 1.8.23.2 (for Ruby 1.9.3). # 2.1.4 / 2013-09-17 ## Bug fixes: * `gem uninstall foo --all` now force-uninstalls all versions of foo. Issue #650 by Kyle (remkade). * Fixed uninstalling gems installed in the home directory (as in `--user-install`). Issue #653 by Lin Jen-Shin. # 2.1.3 / 2013-09-12 ## Bug fixes: * Gems with files entries starting with "./" no longer install 0 files. Issue #644 by Darragh Curran, #645 by Brandon Turner, #646 by Alex Tambellini # 2.1.2 / 2013-09-11 ## Bug fixes: * Restore concurrent requires following the fix for ruby bug #8374. Pull request #637 and issue #640 by Charles Nutter. * Gems with extensions are now installed correctly when the --install-dir option is used. Issue #642 by Lin Jen-Shin. * Gem fetch now fetches the newest (not oldest) gem when --version is given. Issue #643 by Brian Shirai. # 2.1.1 / 2013-09-10 ## Bug fixes: * Only matching gems matching your local platform are considered for installation. Issue #638 by José M. Prieto, issue #639 by sawanoboly. # 2.1.0 / 2013-09-09 Security fixes: * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4287 for full details including vulnerable APIs. Fixed versions include 2.0.8, 1.8.26 and 1.8.23.1 (for Ruby 1.9.3). Issue #626 by Damir Sharipov. ## Enhancements: * RubyGems uses a new dependency resolver for gem installation which works similar to the bundler resolver. The new resolver can resolve conflicts the previous resolver could not and offers improved diagnostics when conflicts are discovered. * RubyGems now has improved platform matching for the ARM architecture. Gems built with a CPU of "arm" will match any specific ARM CPU. See `gem help platform` for further details. Fixes #532 by Kim Burgestrand. * The --version option now accepts compound requirements the same as in a gem dependency. The following invocation will install rails between 4.0.0.beta and 4.2: gem install rails -v '>= 4.0.0.beta, < 4.2' Fixes #531 by Gary S. Weaver * `gem clean` now allows `-n` as an alias for `--dryrun`. Pull Request #517 by Gastón Ramos * Added `gem update --system` to `gem help`. Pull Request #514 by Vince Wadhwani * Added PATH to `gem env` output. Pull Request #490 by Michal Papis * Added --host option to `gem owner` to match other commands using the gemcutter API. Pull Request #462 and issue #461 by Hugo Lopes Tavares * Added --abort-on-dependent to `gem uninstall`. This will abort instead of asking to uninstall a gem that is depended upon by another gem. Pull request #549 by Philip Arndt. * RubyGems no longer alters Gem::Specification.dirs when installing. Based on Pull Request #452 by Vít Ondruch * RubyGems uses ENV['MAKE'] or ENV['make'] over rbconfig.rb's make if present. Pull Request #443 by Erik Hollensbe * RubyGems can now save remote source cache files in an alternate directory controlled by `ENV["GEM_SPEC_CACHE"]`. Pull Request #489 by Michal Papis * Generated private keys are now encrypted. Pull Request #453 by pietro * Separated Gem::Request from Gem::RemoteFetcher. Pull Request #283 by Steve Klabnik. * RubyGems indicates when a .gem's content is corrupt while verifying. Bug #519 by William T Nelson. * Refactored common installer setup. Pull request #520 by Gastón Ramos * Moved activation tests to Gem::Specification. Pull request #521 by Gastón Ramos * When a --version option with a prerelease version is given RubyGems automatically enables prerelease versions but only the last version is used. If the first version is a prerelease version this is no longer sticky unless an explicit --[no-]prerelease was also given. Fixes part of #531. * RubyGems now supports an SSL client certificate. Pull request #550 by Robert Kenny. * RubyGems now suggests how to fix permission errors. Pull request #553 by Odin Dutton. * Added support for installing a gem as default gems for alternate ruby implementations. Pull request #566 by Charles Nutter. * Improved performance of Gem::Specification#load by caching the loaded gemspec. Pull request #569 by Charlie Somerville. * RubyGems now warns when an unsigned gem is verified if -P was given during installation even if the security policy allows unsigned gems and warns when an untrusted certificate is seen even if the security policy allows untrusted certificates. Issue #474 by Grant Olson * RubyGems can now rewrite executables with or without a shebang of /usr/bin/env via gem pristine --all --only-executables --env-[no-]shebang. Issue #579 by Paul Annesley. * RubyGems can now run its tests without OpenSSL. Ruby Bug #8557 by nobu. * Improved performance by caching Gem::Version objects and avoiding method_missing in Gem::Specification. Pull request #447 by Jon Leighton. * Files in a .gem now preserve their modification times. Pull request #582 by Jesse Bowes * Improved speed of looking up dependencies in SpecFetcher through Array#bsearch (when present). Pull request #595 by Andras Suller * Added `--all` option to `gem uninstall` which removes all gems in GEM_HOME. Pull request #584 by Shannon Skipper. * Added Gem.find_latest_files which is equivalent to Gem.find_files but only returns matching files from the latest version of each gem. Issue #186 by Ryan Davis. * Improved performance of `gem outdated` by reducing duplicate work (it is still slow, but I see a near 50% improvement for 250 gems on a fast connection). See also Gem::Specification::outdated_and_latest_version ## Bug fixes: * rubygems_plugin.rb files are now only loaded from the latest installed gem. * Fixed Gem.clear_paths when Security is defined at top-level. Pull request #625 by elarkin * Fixed credential creation for `gem push` when `--host` is not given. Pull request #622 by Arthur Nogueira Neves # 2.0.17 / 2015-06-08 ## Bug fixes: * Tightened API endpoint checks for CVE-2015-3900 # 2.0.16 / 2015-05-14 ## Bug fixes: * Backport: Limit API endpoint to original security domain for CVE-2015-3900. Fix by claudijd # 2.0.15 / 2014-12-21 ## Bug fixes: * Backport: Add alternate Root CA for upcoming certificate change. Fixes #1050 by Protosac # 2.0.14 / 2013-11-12 ## Bug fixes: * Gem::Specification::remove_spec no longer checks for existence of the spec to be removed. Issue #698 by Tiago Macedo. * Restored wildcard handling when installing gems. Issue #697 by Chuck Remes. * Added DigiCert High Assurance EV Root CA certificate for the cloudfront.net certificate change. * The Gem::RemoteFetcher tests now choose the test server port more reliably. Pull Request #706 by akr. # 2.0.13 / 2013-10-24 ## Bug fixes: * Use class check instead of :version method check when creating Gem::Version objects. Fixes #674 by jkanywhere. * Allow installation of gems when the home directory does not exist. Issue #689 by Laurence Rowe * Fix updating gems which have multiple platforms. Issue #693 by Ookami Kenrou. # 2.0.12 / 2013-10-14 ## Bug fixes: * Proxy usernames and passwords are now escaped properly. Ruby Bug #8979 by Masahiro Tomita, Issue #668 by Kouhei Sutou. # 2.0.11 / 2013-10-08 ## Bug fixes: * Added certificates to follow the s3.amazonaws.com certificate change. Fixes #665 by emeyekayee. Fixes #671 by jonforums. * Remove redundant built-in certificates not needed for https://rubygems.org Fixes #654 by Vít Ondruch. * Added test for missing certificates for https://s3.amazonaws.com or https://rubygems.org. Pull request #673 by Hannes Georg. * RubyGems now allows a Pathname for Kernel#require like the built-in Kernel#require. Pull request #663 by Aaron Patterson. * Required rbconfig in Gem::ConfigFile for Ruby 1.9.1 compatibility. (Ruby 1.9.1 is no longer receiving security fixes, so please update to a newer version.) Issue #676 by Michal Papis. Issue wayneeseguin/rvm#2262 by Thomas Sänger. # 2.0.10 / 2013-09-24 Security fixes: * RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4363 for full details including vulnerable APIs. Fixed versions include 2.1.5, 2.0.10, 1.8.27 and 1.8.23.2 (for Ruby 1.9.3). # 2.0.9 / 2013-09-13 ## Bug fixes: * Gem fetch now fetches the newest (not oldest) gem when --version is given. Issue #643 by Brian Shirai. * Fixed credential creation for `gem push` when `--host` is not given. Pull request #622 by Arthur Nogueira Neves # 2.0.8 / 2013-09-09 Security fixes: * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4287 for full details including vulnerable APIs. Fixed versions include 2.0.8, 1.8.26 and 1.8.23.1 (for Ruby 1.9.3). Issue #626 by Damir Sharipov. ## Bug fixes: * Fixed Gem.clear_paths when Security is defined at top-level. Pull request #625 by elarkin # 2.0.7 / 2013-08-15 ## Bug fixes: * Extensions may now be built in parallel (therefore gems may be installed in parallel). Bug #607 by Hemant Kumar. * Changed broken link to RubyGems Bookshelf to point to RubyGems guides. Ruby pull request #369 by è¬è‡´é‚¦. * Fixed various test failures due to platform differences or poor tests. Patches by Yui Naruse and Koichi Sasada. * Fixed documentation for Kernel#require. # 2.0.6 / 2013-07-24 ## Bug fixes: * Fixed the `--no-install` and `-I` options to `gem list` and friends. Bug #593 by Blargel. * Fixed crash when installing gems with extensions under the `-V` flag. Bug #601 by Nick Hoffman. * Fixed race condition retrieving HTTP connections in Gem::Request on JRuby. Bug #597 by Hemant Kumar. * Fixed building extensions on ruby 1.9.3 under mingw. Bug #594 by jonforums, Bug #599 by Chris Riesbeck * Restored default of remote search to `gem search`. # 2.0.5 / 2013-07-11 * Fixed building of extensions that run ruby in their makefiles. Bug #589 by Zachary Salzbank. # 2.0.4 / 2013-07-09 ## Bug fixes: * Fixed error caused by gem install not finding the right platform for your platform. Bug #576 by John Anderson * Fixed pushing gems with the default host. Bug #495 by Utkarsh Kukreti * Improved unhelpful error message from `gem owner --remove`. Bug #488 by Steve Klabnik * Fixed typo in `gem spec` help. Pull request #563 by oooooooo * Fixed creation of build_info with --install-dir. Bug #457 by Vít Ondruch. * RubyGems converts non-string dependency names to strings now. Bug #505 by Terence Lee * Outdated prerelease versions are now listed in `gem outdated`. * RubyGems now only calls fsync() on the specification when installing, not every file from the gem. This improves the performance of gem installation on some systems. Pull Request #556 by Grzesiek Kolodziejczyk * Removed surprise search term anchoring in `gem search` to restore 1.8-like search behavior while still defaulting to --remote. Pull request #562 by Ben Bleything * Fixed handling of DESTDIR when building extensions. Pull request #573 by Akinori MUSHA * Fixed documentation of `gem pristine` defaults (--all is not a default). Pull request #577 by Shannon Skipper * Fixed a windows extension-building test failure. Pull request #575 by Hiroshi Shirosaki * Fixed issue with `gem update` where it would attempt to use a Version instead of a Requirement to find the latest gem. Fixes #570 by Nick Cox. * RubyGems now ignores an empty but set RUBYGEMS_HOST environment variable. Based on pull request #558 by Robin Dupret. * Removed duplicate creation of gem subdirectories in Gem::DependencyInstaller. Pull Request #456 by Vít Ondruch * RubyGems now works with Ruby built with `--with-ruby-version=''`. Pull Request #455 by Vít Ondruch * Fixed race condition when two threads require the same gem. Ruby bug report #8374 by Joel VanderWerf * Cleaned up siteconf between extension build and extension install. Pull request #587 by Dominic Cleal * Fix deprecation warnings when converting gemspecs to yaml. Ruby commit r41148 by Yui Naruse # 2.0.3 / 2013-03-11 ## Bug fixes: * Reverted automatic upgrade to HTTPS as it breaks RubyGems APIs. Fixes #506 by André Arko * Use File.realpath to remove extra / while checking if files are installable. Issue #508 by Jacob Evans. * When installing RubyGems on JRuby, the standard library is no longer deleted. Fixes #504 by Juan Sanchez, #507 by Charles Oliver Nutter. * When building extconf.rb extensions use the intermediate destination directory. This addresses further issues with C extension building. * Use the absolute path to the generated siteconf in case the extension changes directories to run extconf.rb (like memcached). Fixes #498 by Chris Morris. * Fixed default gem key and cert locations. Pull request #511 by Samuel Cochran. # 2.0.2 / 2013-03-06 ## Bug fixes: * HTTPS URLs are preferred over HTTP URLs. RubyGems will now attempt to upgrade any HTTP source to HTTPS. Credit to Alex Gaynor. * SSL Certificates are now installed properly. Fixes #491 by hemanth.hm * Fixed HTTP to HTTPS upgrade for rubygems.org. # 2.0.1 / 2013-03-05 ## Bug fixes: * Lazily load RubyGems.org API credentials to avoid failure during RubyGems installation. Bug #465 by Isaac Sanders. * RubyGems now picks the latest prerelease to install. Fixes bug #468 by Santiago Pastorino. * Improved detection of missing Zlib::GzipReader encoding support. Works around JRuby-only bug #472 by Matt Beedle. * "Done installing documentation" is no longer displayed when documentation generation is disabled. Fixes bug #469 by Jeff Sandberg * The existing executable check now respects --format-executable. Pull request #471 by Jeremy Evans. * RubyGems no longer creates gem subdirectories when fetching gems. Fixes #482 by Loren Segal. * RubyGems does not require OpenSSL like RubyGems 1.8, but still prefers it. Fixes #481 by André Arko. * RubyGems only fetches specs for list, search and query commands when needed like RubyGems 1.x. Fixes bug #487 by bitbuerster, Ruby bug #8019 by Ike Miller. * Allow specification of mode for gem subdirectory creation. Ruby bug #7713 by nobu * Fix tests when an 'a.rb' exists. Ruby bug #7749 by nobu. # 2.0.0 / 2013-02-24 RubyGems 2.0 includes several new features and many breaking changes. Some of these changes will cause existing software to break. These changes are a result of improvements to the internals of RubyGems that make it more maintainable and improve APIs for RubyGems users. If you are using bundler be sure to install a 1.3.0.prerelease version or newer. Older versions of bundler will not work with RubyGems 2.0. Changes since RubyGems 1.8.25 (including past pre-releases): ## Breaking changes: * Deprecated Gem.unresolved_deps in favor of Gem::Specification.unresolved_deps * Merged Gem::Builder into Gem::Package. Use Gem::Package.build(spec) instead of Gem::Builder.new(spec).build * Merged Gem::Format into Gem::Package. Use Gem::Package.new instead of Gem::Format.from_file_by_path * Moved Gem::OldFormat to Gem::Package::Old. Gem::Package will automatically detect old gems for you, so there is no need to refer to it. * Removed Gem::DocManager, replaced by Gem::RDoc and done_installing hook * Removed Gem::Package::TarInput in favor of Gem::Package * Removed Gem::Package::TarOutput in favor of Gem::Package * Removed Gem::RemoteFetcher#open_uri_or_path. (steveklabnik) * Removed Gem::SSL in favor of using OpenSSL directly * Removed Gem.loaded_path * Removed RSS generation from the gem indexer * Removed benchmark option from .gemrc * Removed broken YAML gemspec support in `gem build` * Removed support for Ruby 1.9.1 * Removed many deprecated methods ## Enhancements: * Improved support for default gems shipping with ruby 2.0.0+ * A gem can have arbitrary metadata through Gem::Specification#metadata * `gem search` now defaults to --remote and is anchored like gem list. Fixes #166 * Added --document to replace --rdoc and --ri. Use --no-document to disable documentation, --document=rdoc to only generate rdoc. * Only ri-format documentation is generated by default. * `gem server` uses RDoc::Servlet from RDoc 4.0 to generate HTML documentation. * Add ability to install gems directly from a compatible gemdep file (Gemfile, Isolate, gem.deps.rb) gem install --file path * Add ability to load gem activation information from a gemdeps file (Gemfile, Isolate, gem.deps.rb). Set RUBYGEMS_GEMDEPS=path to have it loaded. Use - as the path to autodetect (current and parent directories are searched). * Added `gem check --doctor` to clean up after failed uninstallation. Bug #419 by Erik Hollensbe * RubyGems no longer defaults to uninstalling gems if a dependency would be broken. Now you must manually say "yes". Pull Request #406 by Shannon Skipper. * Gem::DependencyInstaller now passes build_args down to the installer. Pull Request #412 by Sam Rawlins. * Added a cmake builder. Pull request #265 by Allan Espinosa. * Removed rubyforge page from gem list output * Added --only-executables option to `gem pristine`. Fixes #326 * Added -I flag for 'gem query' to exclude installed items * Added Gem.install(name, version=default) for interactive sessions * Added Gem::FilePermissionError#directory * Added Gem::rubygems_version which is like Gem::ruby_version * Added RUBYGEMS_HOST documentation to `gem env` * Added a post_installs hook that runs after Gem::DependencyInstaller finishes installing a set of gems * Added a usage method for Gem::Commands::OwnerCommand. (ffmike) * Added an optional type parameter to Gem::Specification#doc_dir. * Added announcements url and clarified how to file tickets * Added guidance for how to use rdoc and ri in setup command. (jjb) * Attempting to install multiple gems with --version is now an error. You can specify per-gem versions like rake:0.9.5 * Clarified Gem::CommandManager example code to avoid multi load problems. (baroquebobcat) * Corrupt or bad cached specs are now re-downloaded. (cookrn) * Extension build arguments are saved from install and reused for pristine * If the OS allows it, documentation is built in a forked background process. (alexch) * Imported gem yank from the gemcutter gem. Fixes #177, #343 * Packaged gems now contain and verify SHA1 checksums * Removed commas from gem update summary so you can paste it back to cleanup. (amatsuda) * RubyGems will now warn when building gems with prerelease dependencies. Fixes #255 * The RUBYGEMS_HOST environment variable is used to determine appropriate API key for pushing or yanking gems * Uninstall is now performed in reverse topological order. * Users are told what to type when they try to uninstall a gem outside GEM_HOME * When building gems with non-world-readable files a warning is shown. ## Bug fixes: * Gem.refresh now maintains the active gem list. Clearing the list would cause double-loads which would cause other bugs. Pull Request #427 by Jeremy Evans * RubyGems now refuses to read the gem push credentials file if it has insecure permissions. Pull Request #438 by Shannon Skipper * RubyGems now requires a local gem name to end in '.gem'. Issue #407 by Santiago Pastorino. * Do not allow old-format gems to be installed with a security policy that verifies data. * Gem installation will fail if RubyGems cannot load the specification from the gem. Bug #419 by Erik Hollensbe * RubyGems tests now run in FIPS mode. Issue #365 by Vít Ondruch * Only update the spec cache when we have permission. Ruby Bug #7509 * gem install now ignores directories and non .gem files that match the gem to install. Bug #407 by Santiago Pastorino. * Added PID to setup bin_file while installing RubyGems to protect against errors. Fixes #328 by ConradIrwin * Added missing require in Gem::Uninstaller when format_executable is set. (sakuro) * Exact gem command name matches are now chosen even if a longer command overlaps the exact name * Fixed Gem.loaded_path? with a Pathname instance. (mattetti) * Fixed Gem::Dependency.new mismatch with rubygems.org checks * Fixed SecurityError in Gem::Specification.load when $SAFE=1. (ged) * Fixed SystemStackError with "gem list -r -a" on 1.9 (cldwalker) * Fixed `gem owners` command so that exceptions don't stop the rest of the command from completing * Fixed `gem unpack uninstalled_gem` default version picker. * Fixed defunct rubyforge urls in gem command line help * Fixed documentation for the various hooks collections * Fixed documentation generation on setup when the gem directory does not exist. Fixes #253 * Fixed documentation to reflect where defaults overrides are loaded from. (ferrous26) * Fixed editing of a Makefile with 8-bit characters. Fixes #181 * Fixed gem loading issue caused by dependencies not resolving. * Fixed independent testing of test_gem_package_tar_output. Ruby Bug #4686 by Shota Fukumori * Fixed typo in uninstall message. (sandal) * Gem::Requirement#<=> returns nil on non-requirement arg. * Gem::Requirement.satisfied_by? raises ArgumentError if given a non-version argument * Gem::Version#initialize no longer modifies its parameter. (miaout17) * Group-writable permissions are now allowed for gem repositories. (ctcherry) * Memoized values in Gem::Specification are now reset the version or platform changes. Fixes #78 * More specific errors are raised for bad requirements. (arsduo) * Removed reference to 'sources' gem in documentation * Removed unused block arguments to avoid creating Proc objects. (k-tsj) * RubyGems now asks before overwriting executable wrappers. Ruby Bug #1800 * The bindir is now created with mkdir_p during install. (voxik) * URI scheme matching is no longer case-sensitive. Fixes #322 * ext/builder now checks $MAKE as well as $make (okkez) Changes since RubyGems 2.0.0.rc.2: ## Bug fixes: * Gem.gzip and Gem.gunzip now return strings with BINARY encoding. Issue #450 by Jeremy Kemper * Fixed placement of executables with --user-install. Ruby bug #7779 by Jon Forums. * Fixed `gem update` with --user-install. Ruby bug #7779 by Jon Forums. * Fixed test_initialize_user_install for windows. Ruby bug #7885 by Luis Lavena. * Create extension destination directory before building extensions. Ruby Bug #7897 and patch by Kenta Murata. * Fixed verification of gems at LowSecurity due to missing signature. Thanks to André Arko. # 2.0.0.rc.2 / 2013-02-08 ## Bug fixes: * Fixed signature verification of gems which was broken only on master. Thanks to Brian Buchanan. * Proper exceptions are raised when verifying an unsigned gem. Thanks to André Arko. # 2.0.0.rc.1 / 2013-01-08 ## Enhancements: * This release of RubyGems can push gems to rubygems.org. Ordinarily prerelease versions of RubyGems cannot push gems. * Added `gem check --doctor` to clean up after failed uninstallation. Bug #419 by Erik Hollensbe ## Bug fixes: * Fixed exception raised when attempting to push gems to rubygems.org. Bug #418 by André Arko * Gem installation will fail if RubyGems cannot load the specification from the gem. Bug #419 by Erik Hollensbe # 2.0.0.preview2.2 / 2012-12-14 ## Enhancements: * Added a cmake builder. Pull request #265 by Allan Espinosa. * Removed rubyforge page from gem list output ## Bug fixes: * Restored RubyGems 1.8 packaging behavior of omitting directories. Bug #413 by Jeremy Kemper. # 2.0.0.preview2.1 / 2012-12-08 ## Enhancements: * Gem::DependencyInstaller now passes build_args down to the installer. Pull Request #412 by Sam Rawlins. * RubyGems no longer defaults to uninstalling gems if a dependency would be broken. Now you must manually say "yes". Pull Request #406 by Shannon Skipper. ## Bug fixes: * RubyGems tests now run in FIPS mode. Issue #365 by Vít Ondruch * Fixed Gem::Specification#base_dir for default gems. Ruby Bug #7469 * Only update the spec cache when we have permission. Ruby Bug #7509 * Restored order of version marking. Fixes an issue with bundler. Thanks to Aaron Patterson and Terence Lee. * Gem cleanup now skips default gems. Pull Request #409 by Kouhei Sutou * gem list, search and query can show remote gems again. Bug #410 by Henry Maddocks * gem install now ignores directories that match the gem to install. Bug #407 by Santiago Pastorino. # 2.0.0.preview2 / 2012-12-01 This release contains two commits not present in Ruby 2.0.0.preview2. One commit is for ruby 1.8.7 support, the second allows RubyGems to work under $SAFE=1. There is no functional difference compared to Ruby 2.0.0.preview2 ## Breaking changes: * Deprecated Gem.unresolved_deps in favor of Gem::Specification.unresolved_deps * Merged Gem::Builder into Gem::Package. Use Gem::Package.build(spec) instead of Gem::Builder.new(spec).build * Merged Gem::Format into Gem::Package. Use Gem::Package.new instead of Gem::Format.from_file_by_path * Moved Gem::OldFormat to Gem::Package::Old. Gem::Package will automatically detect old gems for you, so there is no need to refer to it. * Removed Gem::DocManager, replaced by Gem::RDoc and done_installing hook * Removed Gem::Package::TarInput in favor of Gem::Package * Removed Gem::Package::TarOutput in favor of Gem::Package * Removed Gem::RemoteFetcher#open_uri_or_path. (steveklabnik) * Removed Gem::SSL in favor of using OpenSSL directly * Removed Gem.loaded_path * Removed RSS generation from the gem indexer * Removed benchmark option from .gemrc * Removed broken YAML gemspec support in `gem build` * Removed support for Ruby 1.9.1 * Removed many deprecated methods ## Enhancements: * Improved support for default gems shipping with ruby 2.0.0+ * A gem can have arbitrary metadata through Gem::Specification#metadata * `gem search` now defaults to --remote and is anchored like gem list. Fixes #166 * Added --document to replace --rdoc and --ri. Use --no-document to disable documentation, --document=rdoc to only generate rdoc. * Only ri-format documentation is generated by default. * `gem server` uses RDoc::Servlet from RDoc 4.0 to generate HTML documentation. * Add ability to install gems directly from a compatible gemdep file (Gemfile, Isolate, gem.deps.rb) gem install --file path * Add ability to load gem activation information from a gemdeps file (Gemfile, Isolate, gem.deps.rb). Set RUBYGEMS_GEMDEPS=path to have it loaded. Use - as the path to autodetect (current and parent directories are searched). * Added --only-executables option to `gem pristine`. Fixes #326 * Added -I flag for 'gem query' to exclude installed items * Added Gem.install(name, version=default) for interactive sessions * Added Gem::FilePermissionError#directory * Added Gem::rubygems_version which is like Gem::ruby_version * Added RUBYGEMS_HOST documentation to `gem env` * Added a post_installs hook that runs after Gem::DependencyInstaller finishes installing a set of gems * Added a usage method for Gem::Commands::OwnerCommand. (ffmike) * Added an optional type parameter to Gem::Specification#doc_dir. * Added announcements url and clarified how to file tickets * Added guidance for how to use rdoc and ri in setup command. (jjb) * Attempting to install multiple gems with --version is now an error. You can specify per-gem versions like rake:0.9.5 * Clarified Gem::CommandManager example code to avoid multi load problems. (baroquebobcat) * Corrupt or bad cached specs are now re-downloaded. (cookrn) * Extension build arguments are saved from install and reused for pristine * If the OS allows it, documentation is built in a forked background process. (alexch) * Imported gem yank from the gemcutter gem. Fixes #177, #343 * Packaged gems now contain and verify SHA1 checksums * Removed commas from gem update summary so you can paste it back to cleanup. (amatsuda) * RubyGems will now warn when building gems with prerelease dependencies. Fixes #255 * The RUBYGEMS_HOST environment variable is used to determine appropriate API key for pushing or yanking gems * Uninstall is now performed in reverse topological order. * Users are told what to type when they try to uninstall a gem outside GEM_HOME * When building gems with non-world-readable files a warning is shown. ## Bug fixes: * Added PID to setup bin_file while installing RubyGems to protect against errors. Fixes #328 by ConradIrwin * Added missing require in Gem::Uninstaller when format_executable is set. (sakuro) * Exact gem command name matches are now chosen even if a longer command overlaps the exact name * Fixed Gem.loaded_path? with a Pathname instance. (mattetti) * Fixed Gem::Dependency.new mismatch with rubygems.org checks * Fixed SecurityError in Gem::Specification.load when $SAFE=1. (ged) * Fixed SystemStackError with "gem list -r -a" on 1.9 (cldwalker) * Fixed `gem owners` command so that exceptions don't stop the rest of the command from completing * Fixed `gem unpack uninstalled_gem` default version picker. * Fixed defunct rubyforge urls in gem command line help * Fixed documentation for the various hooks collections * Fixed documentation generation on setup when the gem directory does not exist. Fixes #253 * Fixed documentation to reflect where defaults overrides are loaded from. (ferrous26) * Fixed editing of a Makefile with 8-bit characters. Fixes #181 * Fixed gem loading issue caused by dependencies not resolving. * Fixed independent testing of test_gem_package_tar_output. Ruby Bug #4686 by Shota Fukumori * Fixed typo in uninstall message. (sandal) * Gem::Requirement#<=> returns nil on non-requirement arg. * Gem::Requirement.satisfied_by? raises ArgumentError if given a non-version argument * Gem::Version#initialize no longer modifies its parameter. (miaout17) * Group-writable permissions are now allowed for gem repositories. (ctcherry) * Memoized values in Gem::Specification are now reset the version or platform changes. Fixes #78 * More specific errors are raised for bad requirements. (arsduo) * Removed reference to 'sources' gem in documentation * Removed unused block arguments to avoid creating Proc objects. (k-tsj) * RubyGems now asks before overwriting executable wrappers. Ruby Bug #1800 * The bindir is now created with mkdir_p during install. (voxik) * URI scheme matching is no longer case-sensitive. Fixes #322 * ext/builder now checks $MAKE as well as $make (okkez) # 1.8.29 / 2013-11-23 ## Bug fixes: * Fixed installation when the LANG environment variable is empty. * Added DigiCert High Assurance EV Root CA to the default SSL certificates for cloudfront. # 1.8.28 / 2013-10-08 ## Bug fixes: * Added the Verisign Class 3 Public Primary Certification Authority G5 certificate and its intermediary to follow the s3.amazonaws.com certificate change. Fixes #665 by emeyekayee. Fixes #671 by jonforums. * Remove redundant built-in certificates not needed for https://rubygems.org Fixes #654 by Vít Ondruch. * Added test for missing certificates for https://s3.amazonaws.com or https://rubygems.org. Pull request #673 by Hannes Georg. # 1.8.27 / 2013-09-24 Security fixes: * RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4363 for full details including vulnerable APIs. Fixed versions include 2.1.5, 2.0.10, 1.8.27 and 1.8.23.2 (for Ruby 1.9.3). # 1.8.26 / 2013-09-09 Security fixes: * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4287 for full details including vulnerable APIs. Fixed versions include 2.0.8, 1.8.26 and 1.8.23.1 (for Ruby 1.9.3). Issue #626 by Damir Sharipov. ## Bug fixes: * Fixed editing of a Makefile with 8-bit characters. Fixes #181 # 1.8.25 / 2013-01-24 ## Bug fixes: * Added 11627 to setup bin_file location to protect against errors. Fixes #328 by ConradIrwin * Specification#ruby_code didn't handle Requirement with multiple * Fix error on creating a Version object with a frozen string. * Fix incremental index updates * Fix missing load_yaml in YAML-related requirement.rb code. * Manually backport encoding-aware YAML gemspec # 1.8.24 / 2012-04-27 ## Bug fixes: * Install the .pem files properly. Fixes #320 * Remove OpenSSL dependency from the http code path # 1.8.23.2 / 2013-09-24 Security fixes: * RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4363 for full details including vulnerable APIs. Fixed versions include 2.1.5, 2.0.10, 1.8.27 and 1.8.23.2 (for Ruby 1.9.3). # 1.8.23.1 / 2013-09-09 Security fixes: * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4287 for full details including vulnerable APIs. Fixed versions include 2.0.8, 1.8.26 and 1.8.23.1 (for Ruby 1.9.3). Issue #626 by Damir Sharipov. # 1.8.23 / 2012-04-19 This release increases the security used when RubyGems is talking to an https server. If you use a custom RubyGems server over SSL, this release will cause RubyGems to no longer connect unless your SSL cert is globally valid. You can configure SSL certificate usage in RubyGems through the :ssl_ca_cert and :ssl_verify_mode options in ~/.gemrc and /etc/gemrc. The recommended way is to set :ssl_ca_cert to the CA certificate for your server or a certificate bundle containing your CA certification. You may also set :ssl_verify_mode to 0 to completely disable SSL certificate checks, but this is not recommended. Security fixes: * Disallow redirects from https to http * Turn on verification of server SSL certs ## Enhancements: * Add --clear-sources to fetch ## Bug fixes: * Use File.identical? to check if two files are the same. * Fixed init_with warning when using psych # 1.8.22 / 2012-04-13 ## Bug fixes: * Workaround for psych/syck YAML date parsing issue * Don't trust the encoding of ARGV. Fixes #307 * Quiet default warnings about missing spec variables * Read a binary file properly (windows fix) # 1.8.21 / 2012-03-22 ## Bug fixes: * Add workaround for buggy yaml output from 1.9.2 * Force 1.9.1 to remove it's prelude code. Fixes #305 # 1.8.20 / 2012-03-21 ## Bug fixes: * Add --force to `gem build` to skip validation. Fixes #297 * Gracefully deal with YAML::PrivateType objects in Marshal'd gemspecs * Treat the source as a proper url base. Fixes #304 * Warn when updating the specs cache fails. Fixes #300 # 1.8.19 / 2012-03-14 ## Bug fixes: * Handle loading psych vs syck properly. Fixes #298 * Make sure Date objects don't leak in via Marshal * Perform Date => Time coercion on yaml loading. Fixes #266 # 1.8.18 / 2012-03-11 ## Bug fixes: * Use Psych API to emit more compatible YAML * Download and write inside `gem fetch` directly. Fixes #289 * Honor sysconfdir on 1.8. Fixes #291 * Search everywhere for a spec for `gem spec`. Fixes #288 * Fix Gem.all_load_path. Fixes #171 # 1.8.17 / 2012-02-17 ## Enhancements: * Add MacRuby to the list of special cases for platforms (ferrous26) * Add a default for where to install rubygems itself ## Bug fixes: * Fixed gem loading issue caused by dependencies not resolving. * Fixed umask error when stdlib is required and unresolved dependencies exist. * Shebang munging would only take one arg after the cmd * Define SUCKAGE better, ie only MRI 1.9.2 * Propagate env-shebang to the pristine command if set for install. # 1.8.16 / 2012-02-12 ## Bug fixes: * Fix gem specification loading when encoding is not UTF-8. #146 * Allow group writable if umask allows it already. * Uniquify the spec list based on directory order priority # 1.8.15 / 2012-01-06 ## Bug fixes: * Don't eager load yaml, it creates a bad loop. Fixes #256 # 1.8.14 / 2012-01-05 ## Bug fixes: * Ignore old/bad cache data in Version * Make sure our YAML workarounds are loaded properly. Fixes #250. # 1.8.13 / 2011-12-21 ## Bug fixes: * Check loaded_specs properly when trying to satisfy a dep ## Enhancements: * Remove using #loaded_path? for performance * Remove Zlib workaround for Windows build. # 1.8.12 / 2011-12-02 ## Bug fixes: * Handle more cases where Syck's DefaultKey showed up in requirements and wasn't cleaned out. # 1.8.11 / 2011-10-03 ## Bug fixes: * Deprecate was moved to Gem::Deprecate to stop polluting the top-level namespace. # 1.8.10 / 2011-08-25 RubyGems 1.8.10 contains a security fix that prevents malicious gems from executing code when their specification is loaded. See https://github.com/rubygems/rubygems/pull/165 for details. ## Bug fixes: * RubyGems escapes strings in ruby-format specs using #dump instead of #to_s and %q to prevent code injection. Issue #165 by Postmodern * RubyGems attempt to activate the psych gem now to obtain bugfixes from psych. * Gem.dir has been restored to the front of Gem.path. Fixes remaining problem with Issue #115 * Fixed Syck DefaultKey infecting ruby-format specifications. * `gem uninstall a b` no longer stops if gem "a" is not installed. # 1.8.9 / 2011-08-23 ## Bug fixes: * Fixed uninstalling multiple gems using `gem uninstall` * Gem.use_paths splatted to take multiple paths! Issue #148 # 1.8.8 / 2011-08-11 ## Bug fixes: * The encoding of a gem's YAML spec is now UTF-8. Issue #149 # 1.8.7 / 2011-08-04 ## Bug fixes: * Added missing require for `gem uninstall --format-executable` * The correct name of the executable being uninstalled is now displayed with --format-executable * Fixed `gem unpack uninstalled_gem` default version picker * RubyGems no longer claims a nonexistent gem can be uninstalled * `gem which` no longer claims directories are requirable files * `gem cleanup` continues cleaning up gems if one can't be uninstalled due to permissions. Issue #82 * Gem repository directories are no longer created world-writable. Patch by Sakuro OZAWA. Ruby Bug #4930 # 1.8.6 / 2011-07-25 ## Enhancements: * Add autorequires and delay startup of RubyGems until require is called. See Ruby bug #4962 ## Bug fixes: * Restore behavior of Gem::Specification#loaded? Ruby Bug #5032 * Clean up SourceIndex.add_specs to not be so damn noisy. (tadman) * Added missing APPLE_GEM_HOME in paths. * Extend YAML::Syck::DefaultKey fixing to `marshal_dump` as well. * Fix #29216: check correct bin_dir in check_that_user_bin_dir_is_in_path. * Revert Gem.latest_load_paths to working order (PathSupport revert). * Restore normalization of GEM_HOME. * Handle the Syck DefaultKey problem once and for all. * Fix SystemStackError occurring with "gem list -r -a" on 1.9. # 1.8.5 / 2011-05-31 ## Enhancements: * The -u option to 'update local source cache' is official deprecated. * Remove has_rdoc deprecations from Specification. ## Bug fixes: * Handle bad specs more gracefully. * Reset any Gem paths changed in the installer. # 1.8.4 / 2011-05-25 ## Enhancements: * Removed default_executable deprecations from Specification. # 1.8.3 / 2011-05-19 ## Bug fixes: * Fix independent testing of test_gem_package_tar_output. Ruby Bug #4686 by Shota Fukumori * Fix test failures for systems with separate ruby versions. Ruby Bug #3808 by Jeremy Evans * Fixed some bad calls left behind after rolling out some refactorings. * Syck has a parse error on (good) times output from Psych. (dazuma, et al) # 1.8.2 / 2011-05-11 ## Enhancements: * Moved #outdated from OutdatedCommand to Specification (for Isolate). * Print out a warning about missing executables. ## Bug fixes: * Added missing requires to fix various upgrade issues. * `gem pristine` respects multiple gem repositories. * setup.rb now execs with --disable-gems when possible # 1.8.1 / 2011-05-05 ## Enhancements: * Added Gem::Requirement#specific? and Gem::Dependency#specific? ## Bug fixes: * Typo on Indexer rendered it useless on Windows * gem dep can fetch remote dependencies for non-latest gems again. * gem uninstall with multiple versions no longer crashes with ArgumentError * Always use binary mode for File.open to keep Windows happy # 1.8.0 / 2011-04-34 This release focused on properly encapsulating functionality. Most of this work focused on moving functionality out of Gem::SourceIndex and Gem::GemPathSearcher into Gem::Specification where it belongs. After installing RubyGems 1.8.0 you will see deprecations when loading your exsting gems. Run `gem pristine --all --no-extensions` to regenerate your gem specifications safely. Currently RubyGems does not save the build arguments used to build gems with extensions. You will need to run `gem pristine gem_with_extension -- --build-arg` to regenerate a gem with an extension where it requires special build arguments. ## Deprecations: * DependencyList.from_source_index deprecated the source_index argument. * Deprecated Dependency.new(/regex/). * Deprecated Gem.searcher. * Deprecated Gem.source_index and Gem.available? * Deprecated Gem: activate_dep, activate_spec, activate, report_activate_error, and required_location. * Deprecated Gem::all_partials * Deprecated Gem::cache_dir * Deprecated Gem::cache_gem * Deprecated Gem::default_system_source_cache_dir * Deprecated Gem::default_user_source_cache_dir * Deprecated Platform#empty? * Deprecated Specification.cache_gem * Deprecated Specification.installation_path * Deprecated Specification.loaded, loaded?, and loaded= * Deprecated all of Gem::SourceIndex. * Deprecated all of Gem::GemPathSearcher. * Deprecated Gem::Specification#default_executable. ## Enhancements: * Gem::SourceIndex functionality has been moved to Gem::Specification. Gem::SourceIndex is completely disconnected from Gem::Specification * Refactored GemPathSearcher entirely out. RIPMF * Added CommandManager#unregister_command * Added Dependency#matching_specs + to_specs. * Added Dependency#to_spec * Added Gem.pre_reset_hook/s and post_reset_hook/s. * Added GemCommand.reset to reinitialize the singleton * Added Specification#activate. * Added Specification#activated, activated=, and activated? * Added Specification#base_dir. * Added Specification#bin_dir and bin_file. * Added Specification#cache_dir and cache_file. Aliased cache_gem. * Added Specification#doc_dir and ri_dir. * Added Specification#find(name_or_dep, *requirements). * Added Specification#gem_dir and gems_dir. * Added Specification#spec_dir and spec_file. * Added Specification.add_spec, add_specs, and remove_spec. * Added Specification.all=. If you use this, we will light you on fire. * Added Specification.all_names. * Added Specification.dirs and dirs=. dirs= resets. * Added Specification.find_all_by_name(name, *reqs) * Added Specification.latest_specs. SO TINY! * Added TestCase#all_spec_names to help clean up tests * Added TestCase#assert_path_exists and refute_path_exists. Will move to minitest. * Gem.sources no longer tries to load sources gem. Only uses default_sources. * Installer no longer accepts a source_index option. * More low-level integration. * Removed Gem::FileOperations since it is a dummy class * Removed a comment because I am dumb * Removed pkgs/sources/lib/sources.rb * Revamped indexer to mostly not use SourceIndex (legacy index requires it). * Rewrote our last functional test suite to be happy and fast * RubyGems is now under the Ruby License or the MIT license * Specification#== now only checks name, version, and platform. * Specification#authors= now forcefully flattens contents (bad rspec! no cookie!) * Specification#eql? checks all fields. * Specification#installation_path no longer raises if it hasn't been activated. * Specification#validate now ensures that authors is not empty. * TestCase.util_setup_spec_fetcher no longer returns a SourceIndex. * Uninstaller no longer passes around SourceIndex instances * Warn on loading bad spec array values (ntlm-http gem has nil in its cert chain) * `gem pristine` now accepts --no-executables to skip restoring gems with extensions. * `gem pristine` can now restore multiple gems. ## Bug fixes: * DependencyInstaller passed around a source_index instance but used Gem.source_index. * Fixed Platform#== and #hash so instances may be used as hash keys. * Fixed broken Specification#original_platform. It should never be nil. * Gem::Text#format_text now strips trailing whitespace * Normalize LOAD_PATH with File.expand_path * `gem build` errors should exit 1. * `gem pristine` can now restore non-latest gems where the cached gem was removed. # 1.7.1 / 2011-03-32 ## Bug fixes: * Fixed missing file in Manifest.txt. (Also a bug in hoe was fixed where `rake check_manifest` showing a diff would not exit with an error.) # 1.7.0 / 2011-03-32 ## Deprecations: * Deprecated Gem.all_load_paths, latest_load_paths, promote_load_path, and cache. * Deprecated RemoteFetcher#open_uri_or_path. * Deprecated SourceIndex#all_gems. * Deprecated SourceIndex#initialize(hash_of_specs). * Deprecated SourceIndex.from_installed_gems, from_gems_in, and load_specification. * Deprecated Specification#has_rdoc, default_executable, and test_suite_file(=). * Deprecated Specification#has_rdoc= and default_executable= ## Enhancements: * Added stupid simple deprecation module. * Added --spec option to `gem unpack` to output a gem's original metadata * Added packaging option to Specification#validate * Gem.bin_path requires the exec_name argument. * Read from cached specs if fetch fails for some reason * Refactored Specification#assign_defaults into #initialize. * RemoteFetcher#fetch_path now dispatches dynamically to 'fetch_' * Removed Specification @@gather. * Removed Specification.attribute. * Removed Specification.attribute_alias_singular. * Removed Specification.attribute_defaults. * Removed Specification.attributes * Removed Specification.overwrite_accessor. * Removed Specification.read_only. * Removed Specification.required_attribute. * Removed Specification::SPECIFICATION_VERSION_HISTORY and turned into rdoc * Removed blanket rescue in default_executable. Hope it doesn't blow up! :P * Removed nearly all metaprogramming from Specification. Yay for attr_accessor! * SourceIndex#initialize changed to prefer an array of spec dirs, defaulting to none. * SourceIndex.new is now the preferred way to create SourceIndex instances. *gasp* * Specification#validate now checks that array attribs are indeed arrays. * Specification.default_value is now an instance method. * Switched Specification::TODAY to be proper midnight @ UTC * Update Gem::RemoteFetcher\'s User-Agent to handle RUBY_ENGINE and RUBY_REVISION when patchlevel is -1 * UpdateCommand#gems_to_update now returns (name, version) pairs. * UpdateCommand#which_to_update now takes an optional system argument. ## Bug fixes: * Added missing remote fetcher require to pristine command (aarnell) * Building gems now checks to ensure all required fields are non-nil * Fix option parser when summary is nil. * Fixed `gem contents` to work with the lightweight specifications * Fixed `gem update --system x.y.z` where x.y.z == latest version. (MGPalmer) * Fixed gem contents sorting and tests. (MGPalmer) * Fixed intermittent problem in `gem fetch` with --platform specified (quix) * Fixed lightweight specifications so `gem rdoc` will generate proper documentation * MockGemUI#terminate_interaction should not raise Gem::SystemExitException. (MGPalmer) * RubyGems now raises a better error for broken .gem files. Bug #29067 by Elias Baixas * `gem update` now uniq's command line arguments. # 1.6.2 / 2011-03-08 ## Bug fixes: * require of an activated gem could cause activation conflicts. Fixes Bug #29056 by Dave Verwer. * `gem outdated` now works with up-to-date prerelease gems. # 1.6.1 / 2011-03-03 ## Bug fixes: * Installation no longer fails when a dependency from a version that won't be installed is unsatisfied. * README.rdoc now shows how to file tickets and get help. Pull Request #40 by Aaron Patterson. * Gem files are cached correctly again. Patch #29051 by Mamoru Tasaka. * Tests now pass with non-022 umask. Patch #29050 by Mamoru Tasaka. # 1.6.0 / 2011-02-29 ## Deprecations: * RubyGems no longer requires 'thread'. Rails < 3 will need to add require 'thread' to their applications. * Gem.cache is deprecated. Use Gem.source_index. * RbConfig.datadir is deprecated. Use Gem.datadir. * Gem::LoadError#version_requirements has been removed. Use Gem::LoadError#requirement. ## Enhancements: * Rewrote how Gem::activate (gem and require) resolves dependencies. * Gem::LoadError#version_requirement has been removed. Use Gem::LoadError#requirement. * Added --key to `gem push` for setting alternate API keys. * Added --format-executable support to gem uninstall. * Added Gem::DependencyList#clear. * Added Gem::DependencyList#remove_specs_unsatisfied_by * Added Gem.latest_spec_for, latest_version_for, and latest_rubygems_version. * Added Gem::Dependency#merge which merges requirements for two dependencies. * Added Gem::TestCase#util_spec for faster tests. * Added Gem::Specification#dependent_specs. * Added Gem::TestCase#new_spec and Gem::TestCase#install_specs. * Added flag to include prerelease gems in Gem::SourceIndex#latest_specs. * Gem.cache_dir always references the proper cache dir. Pass true to support a user path. * Gem.cache_gem, given a filename always references the cache gem. Pass true to support a user path. * Added Gem::Specification#conflicts * Removed rdoc gem/require from test_case.rb. * Rubygems will no longer let you push if you're using beta or unreleased rubygems. * Save RAM / GC churn by removing spec.files and rdoc options from locally cached gem specifications. * SpecFetcher.fetch_spec can now take a string source_uri. ## Bug fixes: * Added missing require of Gem::RemoteFetcher to the unpack command. * RubyGems now completely removes a previous install when reinstalling. * Fixed Gem::Installer#generate_bin to only chmod files that exist. * Fixed handling of Windows style file:/// uris. * Fixed requires in tests. (shota) * Fixed script generation on Windows. * Fixed test issues if you have older rubygems installed. * Gem::DependencyInstaller tests use Gem::Security, add the missing require. * Gem::Security used FileUtils but didn't require it. Reported by Elia Schito. * Gem::Uninstaller now respects --format-executable. # 1.5.3 / 2011-02-26 ## Bug fixes: * Fix for a bug in Syck which causes install failures for gems packaged with Psych. Bug #28965 by Aaron Patterson. # 1.5.2 / 2011-02-10 ## Bug fixes: * Fixed gem update --system. RubyGems can now update itself again. # 1.5.1 / 2011-02-09 #= NOTE: `gem update --system` is broken. See UPGRADING.rdoc. ## Enhancements: * Added ability to do gem update --system X.Y.Z. ## Bug fixes: * Scrub !!null YAML from 1.9.2 (install and build). * Added missing requires for user_interaction. * Wrote option processing tests for gem update. * Updated upgrading doco for new gem update --system option. * Fixed SilentUI for cygwin; try /dev/null first then fall back to NUL. * RubyGems now enforces ruby 1.8.7 or newer. # 1.5.0 / 2011-01-31 #= NOTE: `gem update --system` is broken. See UPGRADING.rdoc. ## Enhancements: * Finally fixed all known 1.9.x issues. Upgrading is now possible! * Merged huge 1.3.7/ruby-core changes to master. * Added UPGRADING.rdoc to help deal with 1.9 issues. * Gem::Format now gives better errors for corrupt gem files and includes paths * Pre-install hooks can now abort gem installation by returning false * Move shareable TestCase classes to lib/ to help plugin authors with tests. * Add post-build hooks that can cancel the gem install * Always require custom_require now that require_gem is gone * Added GemInstaller accessors for @options so plugins can reference them. * Optimized Gem.find_files. ~10% faster than 1.4.2. ~40% faster than ruby 1.9. * Gem::SilentUI now behaves like Gem::StreamUI for asking questions. Patch by Erik Hollensbe. ## Bug fixes: * `gem update` was implicitly doing --system. * 1.9.3: Fixed encoding errors causing gem installs to die during rdoc phase. * Add RubyForge URL to README. Closes #28825 * 1.9.3: Use chdir {} when building extensions to prevent warnings. Fixes #4337 * 1.9.2: Fix circular require warning. * Make requiring openssl even lazier at request of NaHi * `gem unpack` will now download the gem if it is not in the cache. Patch by Erik Hollensbe. * rubygems-update lists its development dependencies again # 1.4.2 / 2011-01-06 ## Bug fixes: * Gem::Versions: "1.b1" != "1.b.1", but "1.b1" eql? "1.b.1". Fixes gem indexing. * Fixed Gem.find_files. * Removed otherwise unused #find_all_dot_rb. Only 6 days old and hella buggy. # 1.4.1 / 2010-12-31 Since apparently nobody reads my emails, blog posts or the README: DO NOT UPDATE RUBYGEMS ON RUBY 1.9! See UPGRADING.rdoc for details. ## Bug fixes: * Specification#load was untainting a frozen string (via `gem build *.spec`) # 1.4.0 / 2010-12-30 NOTE: In order to better maintain rubygems and to get it in sync with the world (eg, 1.9's 1.3.7 is different from our 1.3.7), rubygems is switching to a 4-6 week release schedule. This release is the precursor to that process and as such may be a bit on the wild side! You have been warned! NOTE: We've switched to git/github. See README.rdoc for details. ## Features: * Added --launch option to `gem server`. (gthiesfeld) * Added fuzzy name matching on install failures. (gstark/presidentbeef) * Allow searching w/ file extensions: gem which fileutils.rb * Progress indicator during download (Ryan Melton) * Speed up Gem::Version#<=> by 2-3x in common cases. (raggi) * --source is now additive with your current sources. Use --clear-sources first to maintain previous behavior. ## Bug fixes: * Dependency "~>"s now respect lower-bound prerelease versions. * Ensure the gem directories exist on download. * Expand Windows user home candidates for Ruby 1.8. Bug #28371 & #28494 * Fix find_files to order by version. * Fix ivar typo. [Josh Peek] * Normalized requires and made many of them lazy. Do not depend on rubygems to require stdlib stuff for you. (raggi/tmm1) * Treat 1.0.a10 like 1.0.a.10 for sorting, etc. Fixes #27903. (dchelimsky) # 1.3.7 / 2010-05-13 NOTE: https://rubygems.org/ is now the default source for downloading gems. You may have sources set via ~/.gemrc, so you should replace http://gems.rubyforge.org with https://rubygems.org/ http://gems.rubyforge.org will continue to work for the foreseeable future. ## Features: * `gem` commands * `gem install` and `gem fetch` now report alternate platforms when a matching one couldn't be found. * `gem contents` --prefix is now the default as specified in --help. Bug #27211 by Mamoru Tasaka. * `gem fetch` can fetch of old versions again. Bug #27960 by Eric Hankins. * `gem query` and friends output now lists platforms. Bug #27856 by Greg Hazel. * `gem server` now allows specification of multiple gem dirs for documentation. Bug #27573 by Yuki Sonoda. * `gem unpack` can unpack gems again. Bug #27872 by Timothy Jones. * `gem unpack` now unpacks remote gems. * --user-install is no longer the default. If you really liked it, see Gem::ConfigFile to learn how to set it by default. (This change was made in 1.3.6) * RubyGems now has platform support for IronRuby. Patch #27951 by Will Green. ## Bug fixes: * Require rubygems/custom_require if --disable-gem was set. Bug #27700 by Roger Pack. * RubyGems now protects against exceptions being raised by plugins. * rubygems/builder now requires user_interaction. Ruby Bug #1040 by Phillip Toland. * Gem::Dependency support #version_requirements= with a warning. Fix for old Rails versions. Bug #27868 by Wei Jen Lu. * Gem::PackageTask depends on the package dir like the other rake package tasks so dependencies can be hooked up correctly. # 1.3.6 / 2010-02-17 ## Features: * `gem` commands * Added `gem push` and `gem owner` for interacting with modern/Gemcutter sources * `gem dep` now supports --prerelease. * `gem fetch` now supports --prerelease. * `gem server` now supports --bind. Patch #27357 by Bruno Michel. * `gem rdoc` no longer overwrites built documentation. Use --overwrite force rebuilding. Patch #25982 by Akinori MUSHA. * Capital letters are now allowed in prerelease versions. ## Bug fixes: * Development deps are no longer added to rubygems-update gem so older versions can update successfully. * Installer bugs: * Prerelease gems can now depend on non-prerelease gems. * Development dependencies are ignored unless explicitly needed. Bug #27608 by Roger Pack. * `gem` commands * `gem which` now fails if no paths were found. Adapted patch #27681 by Caio Chassot. * `gem server` no longer has invalid markup. Bug #27045 by Eric Young. * `gem list` and friends show both prerelease and regular gems when --prerelease --all is given * Gem::Format no longer crashes on empty files. Bug #27292 by Ian Ragsdale. * Gem::GemPathSearcher handles nil require_paths. Patch #27334 by Roger Pack. * Gem::RemoteFetcher no longer copies the file if it is where we want it. Patch #27409 by Jakub Šťastný. ## Deprecations: * lib/rubygems/timer.rb has been removed. * Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010. * Bulk index update is no longer supported. * Gem::manage_gems was removed in 1.3.3. * Time::today was removed in 1.3.3. # 1.3.5 / 2009-07-21 ## Bug fixes: * Fix use of prerelease gems. * Gem.bin_path no longer escapes path with spaces. Bug #25935 and #26458. ## Deprecations: * Bulk index update is no longer supported (the code currently remains, but not the tests) * Gem::manage_gems was removed in 1.3.3. * Time::today was removed in 1.3.3. # 1.3.4 / 2009-05-03 ## Bug fixes: * Fixed various warnings * Gem::ruby_version works correctly for 1.8 branch and trunk * Prerelease gems now show up in `gem list` and can be used * Fixed option name for `gem setup --format-executable` * RubyGems now matches Ruby > 1.9.1 gem paths * Gem::RemoteFetcher#download now works for explicit Windows paths across drives. Bug #25882 by Lars Christensen * Fix typo in Gem::Requirement#parse. Bug #26000 by Mike Gunderloy. ## Deprecations: * Bulk index update is no longer supported (the code currently remains, but not the tests) * Gem::manage_gems was removed in 1.3.3. * Time::today was removed in 1.3.3. # 1.3.3 / 2009-05-04 ## Features: * `gem server` allows port names (from /etc/services) with --port. * `gem server` now has search that jumps to RDoc. Patch #22959 by Vladimir Dobriakov. * `gem spec` can retrieve single fields from a spec (like `gem spec rake authors`). * Gem::Specification#has_rdoc= is deprecated and ignored (defaults to true) * RDoc is now generated regardless of Gem::Specification#has_rdoc? ## Bug fixes: * `gem clean` now cleans up --user-install gems. Bug #25516 by Brett Eisenberg. * Gem.bin_path now escapes paths with spaces. * Rake extension builder uses explicit correctly loads rubygems when invoking rake. * Prerelease versions now match "~>" correctly. Patch #25759 by Yossef Mendelssohn. * Check bindir for executables, not root when validating. Bug reported by David Chelimsky. * Remove Time.today, no way to override it before RubyGems loads. Bug #25564 by Emanuele Vicentini * Raise Gem::Exception for #installation_path when not installed. Bug #25741 by Daniel Berger. * Don't raise in Gem::Specification#validate when homepage is nil. Bug #25677 by Mike Burrows. * Uninstall executables from the correct directory. Bug #25555 by Brett Eisenberg. * Raise Gem::LoadError if Kernel#gem fails due to previously-loaded gem. Bug reported by Alf Mikula. ## Deprecations: * Gem::manage_gems has been removed. * Time::today has been removed early. There was no way to make it warn and be easy to override with user code. # 1.3.2 / 2009-04-15 ## Features: * RubyGems now loads plugins from rubygems_plugin.rb in installed gems. This can be used to add commands (See Gem::CommandManager) or add install/uninstall hooks (See Gem::Installer and Gem::Uninstaller). * Gem::Version now understands prerelease versions using letters. (eg. '1.2.1.b') Thanks to Josh Susser, Alex Vollmer and Phil Hagelberg. * RubyGems now includes a Rake task for creating gems which replaces rake's Rake::GemPackageTask. See Gem::PackageTask. * Gem::find_files now returns paths in $LOAD_PATH. * Added Gem::promote_load_path for use with Gem::find_files * Added Gem::bin_path to make finding executables easier. Patch #24114 by James Tucker. * Various improvements to build arguments for installing gems. * `gem contents` added --all and --no-prefix. * Gem::Specification * #validate strips directories and errors on not-files. * #description no longer removes newlines. * #name must be a String. * FIXME and TODO are no longer allowed in various fields. * Added support for a license attribute. Feature #11041 (partial). * Removed Gem::Specification::list, too much process growth. Bug #23668 by Steve Purcell. * `gem generate_index` * Can now generate an RSS feed. * Modern indicies can now be updated incrementally. * Legacy indicies can be updated separately from modern. ## Bug fixes: * Better gem activation error message. Patch #23082. * Kernel methods are now private. Patch #20801 by James M. Lawrence. * Fixed various usability issues with `gem check`. * `gem update` now rescues InstallError and continues. Bug #19268 by Gabriel Wilkins. * Allow 'https', 'file' as a valid schemes for --source. Patch #22485. * `gem install` * Now removes existing path before installing. Bug #22837. * Uses Gem::bin_path in executable stubs to work around Kernel#load bug in 1.9. * Correctly handle build args (after --) via the API. Bug #23210. * --user-install * `gem install --no-user-install` now works. Patch #23573 by Alf Mikula. * `gem uninstall` can now uninstall from ~/.gem. Bug #23760 by Roger Pack. * setup.rb * Clarify RubyGems RDoc installation location. Bug #22656 by Gian Marco Gherardi. * Allow setup to run from read-only location. Patch #21862 by Luis Herrera. * Fixed overwriting ruby executable when BASERUBY was not set. Bug #24958 by Michael Soulier. * Ensure we're in a RubyGems dir when installing. * Deal with extraneous quotation mark when autogenerating .bat file on MS Windows. Bug #22712. ## Deprecations: * Gem::manage_gems has been removed. * Time::today will be removed in RubyGems 1.4. Special thanks to Chad Wooley for backwards compatibility testing and Luis Lavena and Daniel Berger for continuing windows support. # 1.3.1 / 2008-10-28 ## Bug fixes: * Disregard ownership of ~ under Windows while creating ~/.gem. Fixes issues related to no uid support under Windows. * Fix requires for Gem::inflate, Gem::deflate, etc. * Make Gem.dir respect :gemhome value from config. (Note: this feature may be removed since it is hard to implement on 1.9.) * Kernel methods are now private. Patch #20801 by James M. Lawrence. * Gem::location_of_caller now behaves on Windows. Patch by Daniel Berger. * Silence PATH warning. ## Deprecations: * Gem::manage_gems will be removed on or after March 2009. # 1.3.0 / 2008-09-25 ## Features: * RubyGems doesn't print LOCAL/REMOTE titles for `gem query` and friends if stdout is not a TTY, except with --both. * Added Gem.find_files, allows a gem to discover features provided by other gems. * Added pre/post (un)install hooks for packagers of RubyGems. (Not for gems themselves). * RubyGems now installs gems into ~/.gem if GEM_HOME is not writable. Use --no-user-install command-line switch to disable this behavior. * Fetching specs for update now uses If-Modified-Since requests. * RubyGems now updates the ri cache when the rdoc gem is installed and documentation is generated. ## Deprecations: * Gem::manage_gems now warns when called. It will be removed on or after March 2009. ## Bug fixes: * RubyGems 1.3.0+ now updates when no previous rubygems-update is installed. Bug #20775 by Hemant Kumar. * RubyGems now uses the regexp we already have for `gem list --installed`. Bug #20876 by Nick Hoffman. * Platform is now forced to Gem::Platform::RUBY when nil or blank in the indexer. Fixes various uninstallable gems. * Handle EINVAL on seek. Based on patch in bug #20791 by Neil Wilson. * Fix HTTPS support. Patch #21072 by Alex Arnell. * RubyGems now loads all cache files even if latest has been loaded. Bug #20776 by Uwe Kubosch. * RubyGems checks for support of development dependencies for #to_ruby. Bug #20778 by Evan Weaver. * Now specifications from the future can be loaded. * Binary script uninstallation fixed. Bug #21234 by Neil Wilson. * Uninstallation with -i fixed. Bug #20812 by John Clayton. * Gem::Uninstaller#remove_all now calls Gem::Uninstaller#uninstall_gem so hooks get called. Bug #21242 by Neil Wilson. * Gem.ruby now properly escaped on windows. Fixes problem with extension compilation. * `gem lock --strict` works again. Patch #21814 by Sven Engelhardt. * Platform detection for Solaris was improved. Patch #21911 by Bob Remeika. ## Enhancements: * `gem help install` now describes _version_ argument to executable stubs * `gem help environment` describes environment variables and ~/.gemrc and /etc/gemrc * On-disk gemspecs are now read in UTF-8 and written with a UTF-8 magic comment * Rakefile * If the SETUP_OPTIONS environment variable is set, pass its contents as arguments to setup.rb * lib/rubygems/platform.rb * Remove deprecated constant warnings and really deprecate them. (WIN32, etc). * lib/rubygems/remote_fetcher.rb * Now uses ~/.gem/cache if the cache dir in GEM_HOME is not writable. * lib/rubygems/source_index.rb * Deprecate options to 'search' other than Gem::Dependency instances and issue warning until November 2008. * setup.rb * --destdir folder structure now built using Pathname, so it works for Windows platforms. * test/* * Fixes to run tests when under test/rubygems/. Patch by Yusuke ENDOH [ruby-core:17353]. * test/test_ext_configure_builder.rb * Locale-free patch by Yusuke Endoh [ruby-core:17444]. # 1.2.0 / 2008-06-21 ## Features: * RubyGems no longer performs bulk updates and instead only fetches the gemspec files it needs. Alternate sources will need to upgrade to RubyGems 1.2 to allow RubyGems to take advantage of the new metadata updater. If a pre 1.2 remote source is in the sources list, RubyGems will revert to the bulk update code for compatibility. * RubyGems now has runtime and development dependency types. Use #add_development_dependency and #add_runtime_dependency. All typeless dependencies are considered to be runtime dependencies. * RubyGems will now require rubygems/defaults/operating_system.rb and rubygems/defaults/#{RBX_ENGINE}.rb if they exist. This allows packagers and ruby implementers to add custom behavior to RubyGems via these files. (If the RubyGems API is insufficient, please suggest improvements via the RubyGems list.) * /etc/gemrc (and windows equivalent) for global settings * setup.rb now handles --vendor and --destdir for packagers * `gem stale` command that lists gems by last access time ## Bug fixes: * File modes from gems are now honored, patch #19737 * Marshal Gem::Specification objects from the future can now be loaded. * A trailing / is now added to remote sources when missing, bug #20134 * Gems with legacy platforms will now be correctly uninstalled, patch #19877 * `gem install --no-wrappers` followed by `gem install --wrappers` no longer overwrites executables * `gem pristine` now forces reinstallation of gems, bug #20387 * RubyGems gracefully handles ^C while loading .gemspec files from disk, bug #20523 * Paths are expanded in more places, bug #19317, bug #19896 * Gem::DependencyInstaller resets installed gems every install, bug #19444 * Gem.default_path is now honored if GEM_PATH is not set, patch #19502 ## Enhancements: * setup.rb * stub files created by RubyGems 0.7.x and older are no longer removed. When upgrading from these ancient versions, upgrade to 1.1.x first to clean up stubs. * RDoc is no longer required until necessary, patch #20414 * `gem server` * Now completely matches the output of `gem generate_index` and has correct content types * Refreshes from source directories for every hit. The server will no longer need to be restarted after installing gems. * `gem query --details` and friends now display author, homepage, rubyforge url and installed location * `gem install` without -i no longer reinstalls dependencies if they are in GEM_PATH but not in GEM_HOME * Gem::RemoteFetcher now performs persistent connections for HEAD requests, bug #7973 # 1.1.1 / 2008-04-11 ## Bug fixes: * Gem.prefix now returns non-nil only when RubyGems was installed outside sitelibdir or libdir. * The `gem server` gem list now correctly links to gem details. * `gem update --system` now passes --no-format-executable to setup.rb. * Gem::SourceIndex#refresh! now works with multiple gem repositories. * Downloaded gems now go into --install-dir's cache directory. * Various fixes to downloading gem metadata. * `gem install --force` now ignores network errors too. * `gem pristine` now rebuilds extensions. * `gem update --system` now works on virgin Apple ruby. * Gem::RemoteFetcher handles Errno::ECONNABORTED. * Printing of release notes fixed. # 1.1.0 / 2008-03-29 ## Features: * RubyGems now uses persistent connections on index updates. Index updates are much faster now. * RubyGems only updates from a latest index by default, cutting candidate gems for updates to roughly 1/4 (at present). Index updates are even faster still. * `gem list -r` may only show the latest version of a gem, add --all to see all gems. * `gem spec` now extracts specifications from .gem files. * `gem query --installed` to aid automation of checking for gems. ## Bug fixes: * RubyGems works with both Config and RbConfig now. * Executables are now cleaned upon uninstall. * You can now uninstall from a particular directory. * Updating from non-default sources fixed. * Executable stubs now use ruby install name in shebang. * `gem unpack` checks every directory in Gem.path now. * `gem install` now exits with non-zero exit code when appropriate. * `gem update` only updates gems that need updates. * `gem update` doesn't force remote-only updates. * `gem update` handles dependencies properly when updating. * Gems are now loaded in Gem.path order. * Gem stub scripts on windows now work outside Gem.bindir. * `gem sources -r` now works without network access. ## Enhancements: * RubyGems now requires Ruby > 1.8.3. * Release notes are now printed upon installation. * `gem env path` now prints a usable path. * `gem install` reverts to local-only installation upon network error. * Tar handling code refactoring and cleanup. * Gem::DependencyInstaller's API has changed. For a full list of changes to RubyGems, see the git log. # 1.0.1 / 2007-12-20 ## Bug fixes: * Installation on Ruby 1.8.3 through 1.8.5 fixed * `gem build` on 1.8.3 fixed ## Enhancements: * Since RubyGems 0.9.5, RubyGems is no longer supported on Ruby 1.8.2 or older, this is official in RubyGems 1.0.1. # 1.0.0 / 2007-12-20 ## Features: * RubyGems warns about various problems with gemspecs during gem building * More-consistent versioning for the RubyGems software ## Enhancements: * Fixed various bugs and problems with installing gems on Windows * Fixed using `gem server` for installing gems * Various operations are even more verbose with --verbose * Built gems are now backwards compatible with 0.9.4 * Improved detection of RUBYOPT loading rubygems * `ruby setup.rb` now has a --help option * Gem::Specification#bindir is now respected on installation * Executable stubs can now be installed to match ruby's name, so if ruby is installed as 'ruby18', foo_exec will be installed as 'foo_exec18' * `gem unpack` can now unpack into a specific directory with --target * OpenSSL is no longer required by default ## Breaking changes: * Kernel#require_gem has been removed * Executables without a shebang will not be wrapped in a future version, this may cause such executables to fail to operate on installation * Gem::Platform constants other than RUBY and CURRENT have been removed * Gem::RemoteInstaller was removed * Gem::Specification#test_suite_file and #test_suite_file= are deprecated in favor of #test_file and #test_file= * Gem::Specification#autorequire= has been deprecated * Time::today will be removed in a future version # 0.9.5 / 2007-11-19 ## Features: * Platform support * Automatic installation of platform gems * New bandwidth and memory friendlier index file format * "Offline" mode (--no-update-sources) * Bulk update threshold can be specified (-B, --bulk-threshold) * New `gem fetch` command * `gem` now has "really verbose" output when you specify -v * Improved stubs and `gem.bat` on mswin, including better compatibility with the One-Click Installer. ## Enhancements: * Time::today is deprecated and will be removed at a future date * Gem::manage_gems is deprecated and will be removed at a future date * `gem install --include-dependencies` (-y) is now deprecated since it is the default, use --ignore-dependencies to turn off automatic dependency installation * Multi-version diamond dependencies only are installed once * Processing a YAML bulk index update takes less memory * `gem install -i` makes sure all dependencies are installed * `gem update --system` reinstalls into the prefix it was originally installed in * `gem update --system` respects --no-rdoc and --no-ri flags * HTTP basic authentication support for proxies * Gem::Specification#platforms should no longer be a String, use Gem::Platform::CURRENT when building binary gems instead * `gem env` has more diagnostic information * require 'rubygems' loads less code * sources.gem is gone, RubyGems now uses built-in defaults * `gem install --source` will no longer add --source by default, use `gem sources --add` to make it a permanent extra source * `gem query` (list) no longer prints details by default * Exact gem names are matched in various places * mkrf extensions are now supported * A gem can depend on a specific RubyGems version * `gem_server` is now `gem server` * `gemlock` is now `gem lock` * `gem_mirror` is now `gem mirror` * `gemwhich` is now `gem which` * `gemri` is no longer included with RubyGems * `index_gem_repository.rb` is now `gem generate_index` * `gem` performs more validation of parameters * Custom rdoc styles are now supported * Gem indexer no longer removes quick index during index creation * Kernel#require only rescues a LoadError for the file being required now * `gem dependencies` can now display some information for remote gems * Updating RubyGems now works with RUBYOPT=-rubygems Special thanks to: * Daniel Berger * Luis Lavena * Tom Copeland * Wilson Bilkovich # 0.9.4 / 2007-05-23 If you are experiencing problems with the source index (e.g. strange "No Method" errors), or problems with zlib (e.g. "Buffer Error" message), we recommend upgrading to RubyGems 0.9.4. ## Bug fixes: * Several people have been experiencing problems with no method errors on the source index cache. The source index cache is now a bit more self healing. Furthermore, if the source index cache is irreparable, then it is automatically dropped and reloaded. * The source cache files may now be dropped with the "gem sources --clear-all" command. (This command may require root is the system source cache is in a root protected area). * Several sub-commands were accidentally dropped from the "gem" command. These commands have been restored. # 0.9.3 / 2007-05-10 ## Bug fixes: The ZLib library on Windows will occasionally complains about a buffer error when unpacking gems. The Gems software has a workaround for that problem, but the workaround was only enabled for versions of ZLib 1.2.1 or earlier. We have received several reports of the error occurring with ZLib 1.2.3, so we have permanently enabled the work around on all versions. # 0.9.2 / 2007-02-05 ## Bug fixes: * The "unpack" command now works properly. * User name and password are now passed properly to the authenticating proxy when downloading gems. # 0.9.1 / 2007-01-16 See git log # 0.9.0 / 2006-06-28 Finally, the much anticipated RubyGems version 0.9.0 is now available. This release includes a number of new features and bug fixes. The number one change is that we can now download the gem index incrementally. This will greatly speed up the gem command when only a few gems are out of date. ## Enhancements: * The gem index is now downloaded incrementally, only updating entries that are out of date. If more than 50 entries are out of date, we revert back to a bulk download. * Several patches related to allowing RubyGems to work with authenticating proxies (from Danie Roux and Anatol Pomozov). Just put the user and password in the proxy URL (e.g. -p http://user:password@proxy.address.com:8080) or use the HTTP_PROXY_USER and HTTP_PROXY_PASS environment variables. * The gem unpack command can now accept a file path rather than just a install gem name. * Both RI and RDOC documents are now generated by default. * A gemri command is included to read gem RI docs (only needed for Ruby 1.8.4 or earlier). * Version 0.0.0 is now a valid gem version. * Better detection of missing SSL functionality. * SSL is not required if the security policy does not require signature checking. * Rake built extensions are now supported (Tilman Sauerbeck). * Several autorequire bug fixes. * --traceback is now an alias for --backtrace (I can never remember which one it is). * SAFE=1 compatibility fixes. * .rbw is now a supported suffix for RubyGem's custom require. * Several Ruby 1.9 compatibility fixes (Eric Hodel). ## Bug fixes: * Added dashes to gemspecs generated in Ruby 1.8.3. This solves some cross-Ruby version compatibility issues. * Fixed bug where the wrong executables could be uninstalled (Eric Hodel). * Fixed bug where gem unpack occasionally unpacked the wrong gem. * Fixed bug where a fatal error occurred when permissions on .gemrc were too restrictive (reported by Luca Pireddu). * Fixed prefix handling for native expressions (patch by Aaron Patterson). * Fixed several Upgrade => Update typos. # 0.8.11 / 2005-07-13 * -y is a synonym for --include-dependencies. * Better handling of errors in the top level rescue clause. * Package list command (e.g. gem inspect GEM). * .gemrc now allows cvsrc-like options to set defaults per subcommand. * The autorequire gem spec field will now accept a list. * Substituted Time for Date in specs, increasing performance dramatically. * Fixed reported bug of gem directories ending in "-" (reported by Erik Hatcher). * Fixed but in installer that caused dependency installation to not work. * Added Paul Duncan's gem signing patch. * Added Mark Hubbart's Framework patch (for better integration with OS X). * Added David Glasser's install-from-mirror patch. * Additional internal structural cleanup and test reorganization. # 0.8.10 / 2005-03-27 * In multi-user environments, it is common to supply multiple versions of gems (for example Rails), allowing individual users to select the version of the gem they desire. This allows a user to be insulated from updates to that gem. RubyGems 0.8.10 fixes a problem where gems could occasionally become confused about the current versions of libraries selected by the user. * The other annoying bug is that if there are any existing rubygems-update gems installed, then the "gem update --system" command will download a new update, but install the latest update prior to the download. # 0.8.9 Never released # 0.8.8 / 2005-03-14 * Moved the master definition of class Requirement back under version. Kept the body of Requirement under Gem. # 0.8.7 / 2005-03-14 Even though it has only been a few weeks since that last release, there are quite a number of new features in 0.8.7. A complete list of new features will be given below, but here is a summary of the hot items. * The bug that prevented some users from installing rails has been squashed. A big thanks to Bill Guindon (aGorilla) for helping track that one down. There are several new commands available on the gem command: * gem cleanup GEMNAME -- Cleanup (uninstall) all the old versions of gem. If the gem name is omitted, the entire repository is cleaned. * gem dependency GEMNAME -- Show the dependencies for the named gems. This is really helpful when trying to figure out what gem needs what other gem. There changes to the existing commands as well. * gem uninstall is much smarter about removing gems from the repository. Lists of gems are now uninstalled in proper dependency order (ie. if A depends on B, A is uninstalled first). Also, warnings about broken dependencies occur only when removing the *last* gem that supports a dependency is removed. Both gem install and gem uninstall support some new command line options that can reduce the amount of yes/no queries given the user. For install we have: * --ignore-dependencies -- Only install requests gems, no dependendecies are automatically installed. * --include-dependencies -- Automatically install dependencies, without confirmation. For gem uninstall, the new options are: * --all -- Uninstall all matching gems without confirmation. * --ignore-dependencies -- Uninstall, even if dependencies are broken. * --executables -- Remove executables without confirmation Under general cleanup, gems will not, by default, run RDoc on packages that do not have the RDoc flag set. And finally there is a new library file 'gemconfigure' to aid in writing version sensitive applications (without undue dependencies on RubyGems); and 'gemwhich', a short script to locate libraries in the file system. You can read more about them here: * gemconfigure: http://docs.rubygems.org/read/chapter/4#page73 * gemwhich: http://docs.rubygems.org/read/chapter/17 # 0.8.6 / 2005-02-27 * Fixed a small bug with shebang construction # 0.8.5 / 2005-02-26 Do you know how you used to dread getting the following message while installing gems? Updating Gem source index for: http://gems.rubyforge.org It could take up to 30 seconds (on my machine, even worse on others) for that crazy source index to update. This latest release of RubyGems speeds that wait time up considerably. The following table gives the following times for installing RedCloth with a required source index update on three system we had available to us. No RDoc generation was included in the following times. RubyGems Linux Mac OSX Windows 0.8.4 33 secs 73 secs 58 secs 0.8.5 8 secs 14 secs 21 secs The new caching code is at least 3x faster than previous versions. Woo Hoo! # 0.8.4 / 2005-01-01 * Rubygems 0.8.3's installer was broken unless you already had an older version of RubyGems installed. That's fixed. * Change in the way Gem::Specification internally deals with lazy attributes and defaults, bringing (with some loadpath_manager changes) a fairly significant increase in speed. * Support for lower-cased Gem file names (for you, Paul Duncan :) * Erik Veenstra's patch for making Gem versions sortable. # 0.8.3 / 2004-12-07 No real earth shattering news here, but there were a number of really annoying issues involving other libraries that RubyGems depends upon. 0.8.3 contains some workarounds for these issues. In particular: * Added workaround for the null byte in Dir string issue. (see http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121702). (Thanks to Mauricio Fernández for the quick response on this one). * Added workaround for old version of Zlib on windows that caused Ruwiki to fail to install. (see http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121770) * Added workaround for large YAML file issues. (We dynamically cut down the size of the source index YAML file and seem to have worked around immediate issues. There has been some minor usability enhancements and changes ... * A user specific source index cache can be used when the site-wide cache is unwritable (i.e. because you are running as a non-admin). This *greatly* speeds up gem commands run in non-admin mode when the site-wide cache is out of date. * The gem command now used an HTTP HEAD command to detect if the server's source index needs to be downloaed. * gem check gemname --test will run unit tests on installed gems that have unit tests. * Multiple gem names are allowed on the gem install command line. This means you can do: gem install rake rails needle postgres-pr pimki (Ok, you get the idea) * Multiple authors my be specified in a Gem spec. * Switched to using setup.rb (rather than a custom install script) for the installation of RubyGems itself. If you have installed RubyGems before, double check the installation instructions and make sure you use setup.rb instead of install.rb. * Ryan Davis has provided a patch so you can use an env variable (GEM_SKIP), to tell loadpath_manager not to load gems of those names. This was useful for him while testing libs that he had in development. # 0.8.1 / 2004-09-17 * Quick release to capture some bug fixes. # 0.8.0 / 2004-09-15 * Remove need for library stubs. Set the RUBYOPT environment variable to include "rrubygems", and a normal require will find gem files. Continue to use 'require_gem gem_name, version' to specify gem versions. * Deprecated "test_suite_file" gemspec attribute in favor of "test_files" array. * Generates rdoc by default on installs. * Adopted tar/gzip file format, thanks to Mauricio Fernandez. * "gem rdoc" allows generation of rdoc after gem installation (will add a "gem test" * Application stubs can now accept an optional parameter of _VERSION_ that will run an arbitrary version of the application requested. * Various bug fixes * Various platform-independency improvements * "gem spec --all" displays spec info for all installed version of a given gem. * Dynamic caching of sources * Support for user-definable sources on the command line (thanks Assaph Mehr) * More intelligent support for platform-dependent gems. Use Platform::CURRENT when building a gem to set its platform to the one you're building on. Installation displays a choice of platform-dependent gems, allowing the user to pick. * Added "gem unpack" for "unpacking" a gem to the current directory # 0.7.0 / 2004-07-09 See git log # 0.6.1 / 2004-06-08 See git log # 0.6.0 / 2004-06-08 * Collapse output of --search and --list (and gem_server) operations so that each gem is listed only once, with each of its versions listed on the same line. * bin/gem: new --upgrade-all option allows one to upgrade every installed gem * new #required_ruby_version attribute added to gem specification for specifying a dependency on which version of ruby the gem needs. Format it accepts is the same as the Gem::Version::Requirement format: spec.required_ruby_version = "> 1.8.0" * --install-stub defaults to true, so library stubs are created # 0.5.0 / 2004-06-06 * Jim added the ability to specify version constraints to avoid API incompatibilities. This has been the subject of much debate for the past couple of months, with many ideas and code contributed by Eivind Eklund and Mauricio Fernandez. The following set of assertions shows how it works: assert_inadequate("1.3", "~> 1.4") assert_adequate( "1.4", "~> 1.4") assert_adequate( "1.5", "~> 1.4") assert_inadequate("2.0", "~> 1.4") # This one is key--the new operator # disallows major version number # differences. * Group gem search output when multiple versions exist for a given gem: activerecord (0.7.8, 0.7.7, 0.7.6, 0.7.5) Implements the ActiveRecord pattern for ORM. * Add arbitrary RDoc-able files via gemspec (not just Ruby source files) for people who have, for example, README.rdoc in their distributions. Add to gemspec via: spec.extra_rdoc_files = ["list", "of", "files"]. Ruby files are automatically included. * Some small bug fixes # 0.4.0 / 2004-05-30 * Minor bug fixes including Windows compatibility issues # 0.3.0 / 2004-04-30 * Cleanup of command-line arguments and handling. Most commands accept a --local or --remote modifier. * Creation of Application Gems (packages that include executable programs). See http://rubygems.rubyforge.org/wiki/wiki.pl?DeveloperGuide for information on how to use it. * Basic functionality for installing binary gems from source (:extensions property of gem specification holds an array of paths to extconf.rb files to be used for compilation) * Install library "stub" allowing a normal 'require' to work (which then does the rubygems require and 'require_gem' * --run-tests runs the test suite specified by the "test_suite_file" property of a gem specification * HTTP Proxy support works. Rewrite of HTTP code. * Unit and functional tests added (see Rakefile). * Prompt before remote-installing dependencies during gem installation. * Config file for storing preferences for 'gem' command usage. * Generally improved error messages (still more work to do) * Rearranged gem directory structure for cleanliness. # 0.2.0 / 2004-03-14 * Initial public release rubygems-3.3.5/CODE_OF_CONDUCT.md000066400000000000000000000122271416756346600162040ustar00rootroot00000000000000# RubyGems and Bundler Code of Conduct ## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ## Our Standards Examples of behavior that contributes to a positive environment for our community include: * Demonstrating empathy and kindness toward other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: * The use of sexualized language or imagery, and sexual attention or advances of any kind * Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or email address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ## Scope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at team@bundler.io, or directly contacting project team members via email or Slack. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. rubygems-3.3.5/CONTRIBUTING.md000066400000000000000000000175611416756346600156440ustar00rootroot00000000000000# How to contribute Community involvement is essential to RubyGems. We want to keep it as easy as possible to contribute changes. There are a few guidelines that we need contributors to follow to reduce the time it takes to get changes merged in. ## Guidelines 1. New features should be coupled with tests. 2. Ensure that your code blends well with ours: * No trailing whitespace * Match indentation (two spaces) * Match coding style (run `rake rubocop`) 3. If any new files are added or existing files removed in a commit or PR, please update the `Manifest.txt` accordingly. This can be done by running `rake update_manifest` 4. Don't modify the history file or version number. 5. If you have any questions, Feel free to join us on Slack, you can register by signing up at http://slack.bundler.io or file an issue here: http://github.com/rubygems/rubygems/issues For more information and ideas on how to contribute to RubyGems ecosystem, see here: https://guides.rubygems.org/contributing/ ## Getting Started rake setup > Optionally you can configure git hooks with: rake git_hooks To run commands like `gem install` from the repo: ruby -Ilib bin/gem install To run commands like `bundle install` from the repo: ruby bundler/spec/support/bundle.rb install ### Running Tests To run the entire test suite you can use: rake test To run an individual test file located for example in `test/rubygems/test_deprecate.rb` you can use: ruby -Ilib:test:bundler/lib test/rubygems/test_deprecate.rb And to run an individual test method named `test_default` within a test file, you can use: ruby -Ilib:test:bundler/lib test/rubygems/test_deprecate.rb -n /test_default/ ### Running bundler tests Everything needs to be run from the `bundler/` subfolder. To setup bundler tests: bin/rake spec:parallel_deps To run the entire bundler test suite in parallel (it takes a while): bin/parallel_rspec To run the entire bundler test suite sequentially (get a coffee because it's very slow): bin/rspec To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use: bin/rspec spec/install/gems/standalone_spec.rb ## Issues RubyGems uses labels to track all issues and pull requests. In order to provide guidance to the community this is documentation of how labels are used in the rubygems repository. ### Contribution These labels are made to guide contributors to issue/pull requests that they can help with. That are marked with a light gray `contribution: *` * **small** - The issue described here will take a small amount of work to resolve, and is a good option for a new contributor * **unclaimed** - The issue has not been claimed for work, and is awaiting willing volunteers! ### Type Issues might have a light green `type: *` label, which describes the type of the issue. * **bug report** - An issue describing a bug in rubygems. This would be something that is broken, confusing, unexpected behavior etc. * **feature request** - An issue describing a request for a new feature or enhancement. * **question** - An issue that is a more of a question than a call for specific changes in the codebase. * **cleanup** - An issue that proposes cleanups to the code base without fixing a bug or implementing a feature. * **major bump** - This issue request requires a major version bump * **administrative** - This issue relates to administrative tasks that need to take place as it relates to rubygems * **documentation** - This issue relates to improving the documentation for in this repo. Note that much of the rubygems documentation is here: https://github.com/rubygems/guides Pull request might have a light orange `rubygems: *` or a light blue `bundler: *` label which describes the pull request according to the following criteria: * **security fix** - A pull request that fixes a security issue. * **breaking change** - A pull request including any change that requires a major version bump. * **major enhancement** - A pull request including a backwards compatible change worth a special mention in the changelog * **deprecation** - A pull request that introduces a deprecation. * **feature** - A pull request implementing a feature request. * **deprecation** - A pull request that implements a performance improvement. * **documentation** - A pull request introducing documentation improvements worth mentioning to end users. * **minor enhancements** - A pull request introducing small but user visible changes. * **bug fix** - A pull request that fixes a bug report. In the case of `bundler`, these labels are set by maintainers on PRs and have special importance because they are used to automatically build the changelog. ### Workflow / Status The light yellow `status: *` labels that indicate the state of an issue, where it is in the process from being submitted to being closed. These are listed in rough progression order from submitted to closed. * **triage** - This is an issue or pull request that needs to be properly labeled by a maintainer. * **confirmed** - This issue/pull request has been accepted as valid, but is not yet immediately ready for work. * **ready** - An issue that is available for collaboration. This issue should have existing discussion on the problem, and a description of how to go about solving it. * **working** - An issue that has a specific individual assigned to and planning to do work on it. * **user feedback required** - The issue/pull request is blocked pending more feedback from an end user * **blocked / backlog** - the issue/pull request is currently unable to move forward because of some specific reason, generally this will be a reason that is outside RubyGems or needs feedback from some specific individual or group, and it may be a while before something it is resolved. ### Closed Reason Reasons are why an issue / pull request was closed without being worked on or accepted. There should also be more detailed information in the comments. The closed reason labels are maroon `closed: *`. * **duplicate** - This is a duplicate of an existing bug. The comments must reference the existing issue. * **abandoned** - This is an issue/pull request that has aged off, is no longer applicable or similar. * **declined** - An issue that won't be fixed/implemented or a pull request that is not accepted. * **deprecated** - An issue/pull request that no longer applies to the actively maintained codebase. * **discussion** - An issue/pull that is no longer about a concrete change, and is instead being used for discussion. ### Categories These are aspects of the codebase, or what general area the issue or pull request pertains too. Not all issues will have a category. All categorized issues have a blue `category: *` label. * **gemspec** - related to the gem specification itself * **API** - related to the public supported rubygems API. This is the code API, not a network related API. * **command** - related to something in `Gem::Commands` * **install** - related to gem installations * **documentation** - related to updating / fixing / clarifying documentation or guides ### Platforms If an issue or pull request pertains to only one platform, then it should have an appropriate purple `platform: *` label. Current platform labels: **windows**, **java**, **osx**, **linux** ### Git Please sign your commits. Although not required in order for you to contribute, it ensures that any code submitted by you wasn't altered while you were transferring it, and proves that it was you who submitted it and not someone else. Please see https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work or https://help.github.com/en/articles/signing-commits for details on how to to generate a signature and automatically sign your commits. rubygems-3.3.5/LICENSE.txt000066400000000000000000000043311416756346600152250ustar00rootroot00000000000000RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim Weirich and others. You can redistribute it and/or modify it under either the terms of the MIT license (see the file MIT.txt), or the conditions below: 1. You may make and give away verbatim copies of the source form of the software without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may modify your copy of the software in any way, provided that you do at least ONE of the following: a. place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or by allowing the author to include your modifications in the software. b. use the modified software only within your corporation or organization. c. give non-standard executables non-standard names, with instructions on where to get the original software distribution. d. make other distribution arrangements with the author. 3. You may distribute the software in object code or executable form, provided that you do at least ONE of the following: a. distribute the executables and library files of the software, together with instructions (in the manual page or equivalent) on where to get the original distribution. b. accompany the distribution with the machine-readable source of the software. c. give non-standard executables non-standard names, with instructions on where to get the original software distribution. d. make other distribution arrangements with the author. 4. You may modify and include the part of the software into any other software (possibly commercial). 5. The scripts and library files supplied as input to or produced as output from the software do not automatically fall under the copyright of the software, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this software. 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. rubygems-3.3.5/MAINTAINERS.txt000066400000000000000000000006071416756346600157170ustar00rootroot00000000000000Luis Sagastume (@bronzdoc) Daniel Berger (@djberg96) Ellen Marie Dash (@duckinator) Evan Phoenix (@evanphx) SHIBATA Hiroshi (@hsbt) André Arko (@indirect) Samuel Giddins (@segiddins) David Rodríguez (@deivid-rodriguez) rubygems-3.3.5/MIT.txt000066400000000000000000000021621416756346600145740ustar00rootroot00000000000000Copyright (c) Chad Fowler, Rich Kilmer, Jim Weirich and others. Portions copyright (c) Engine Yard and Andre Arko Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. rubygems-3.3.5/Manifest.txt000066400000000000000000000733331416756346600157210ustar00rootroot00000000000000CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md LICENSE.txt MAINTAINERS.txt MIT.txt Manifest.txt POLICIES.md README.md UPGRADING.md bin/gem bin/update_rubygems bundler/CHANGELOG.md bundler/LICENSE.md bundler/README.md bundler/UPGRADING.md bundler/bundler.gemspec bundler/exe/bundle bundler/exe/bundler bundler/lib/bundler.rb bundler/lib/bundler/.document bundler/lib/bundler/build_metadata.rb bundler/lib/bundler/capistrano.rb bundler/lib/bundler/cli.rb bundler/lib/bundler/cli/add.rb bundler/lib/bundler/cli/binstubs.rb bundler/lib/bundler/cli/cache.rb bundler/lib/bundler/cli/check.rb bundler/lib/bundler/cli/clean.rb bundler/lib/bundler/cli/common.rb bundler/lib/bundler/cli/config.rb bundler/lib/bundler/cli/console.rb bundler/lib/bundler/cli/doctor.rb bundler/lib/bundler/cli/exec.rb bundler/lib/bundler/cli/fund.rb bundler/lib/bundler/cli/gem.rb bundler/lib/bundler/cli/info.rb bundler/lib/bundler/cli/init.rb bundler/lib/bundler/cli/inject.rb bundler/lib/bundler/cli/install.rb bundler/lib/bundler/cli/issue.rb bundler/lib/bundler/cli/list.rb bundler/lib/bundler/cli/lock.rb bundler/lib/bundler/cli/open.rb bundler/lib/bundler/cli/outdated.rb bundler/lib/bundler/cli/platform.rb bundler/lib/bundler/cli/plugin.rb bundler/lib/bundler/cli/pristine.rb bundler/lib/bundler/cli/remove.rb bundler/lib/bundler/cli/show.rb bundler/lib/bundler/cli/update.rb bundler/lib/bundler/cli/viz.rb bundler/lib/bundler/compact_index_client.rb bundler/lib/bundler/compact_index_client/cache.rb bundler/lib/bundler/compact_index_client/gem_parser.rb bundler/lib/bundler/compact_index_client/updater.rb bundler/lib/bundler/constants.rb bundler/lib/bundler/current_ruby.rb bundler/lib/bundler/definition.rb bundler/lib/bundler/dep_proxy.rb bundler/lib/bundler/dependency.rb bundler/lib/bundler/deployment.rb bundler/lib/bundler/deprecate.rb bundler/lib/bundler/digest.rb bundler/lib/bundler/dsl.rb bundler/lib/bundler/endpoint_specification.rb bundler/lib/bundler/env.rb bundler/lib/bundler/environment_preserver.rb bundler/lib/bundler/errors.rb bundler/lib/bundler/feature_flag.rb bundler/lib/bundler/fetcher.rb bundler/lib/bundler/fetcher/base.rb bundler/lib/bundler/fetcher/compact_index.rb bundler/lib/bundler/fetcher/dependency.rb bundler/lib/bundler/fetcher/downloader.rb bundler/lib/bundler/fetcher/index.rb bundler/lib/bundler/friendly_errors.rb bundler/lib/bundler/gem_helper.rb bundler/lib/bundler/gem_helpers.rb bundler/lib/bundler/gem_tasks.rb bundler/lib/bundler/gem_version_promoter.rb bundler/lib/bundler/graph.rb bundler/lib/bundler/index.rb bundler/lib/bundler/injector.rb bundler/lib/bundler/inline.rb bundler/lib/bundler/installer.rb bundler/lib/bundler/installer/gem_installer.rb bundler/lib/bundler/installer/parallel_installer.rb bundler/lib/bundler/installer/standalone.rb bundler/lib/bundler/lazy_specification.rb bundler/lib/bundler/lockfile_generator.rb bundler/lib/bundler/lockfile_parser.rb bundler/lib/bundler/man/.document bundler/lib/bundler/man/bundle-add.1 bundler/lib/bundler/man/bundle-add.1.ronn bundler/lib/bundler/man/bundle-binstubs.1 bundler/lib/bundler/man/bundle-binstubs.1.ronn bundler/lib/bundler/man/bundle-cache.1 bundler/lib/bundler/man/bundle-cache.1.ronn bundler/lib/bundler/man/bundle-check.1 bundler/lib/bundler/man/bundle-check.1.ronn bundler/lib/bundler/man/bundle-clean.1 bundler/lib/bundler/man/bundle-clean.1.ronn bundler/lib/bundler/man/bundle-config.1 bundler/lib/bundler/man/bundle-config.1.ronn bundler/lib/bundler/man/bundle-doctor.1 bundler/lib/bundler/man/bundle-doctor.1.ronn bundler/lib/bundler/man/bundle-exec.1 bundler/lib/bundler/man/bundle-exec.1.ronn bundler/lib/bundler/man/bundle-gem.1 bundler/lib/bundler/man/bundle-gem.1.ronn bundler/lib/bundler/man/bundle-info.1 bundler/lib/bundler/man/bundle-info.1.ronn bundler/lib/bundler/man/bundle-init.1 bundler/lib/bundler/man/bundle-init.1.ronn bundler/lib/bundler/man/bundle-inject.1 bundler/lib/bundler/man/bundle-inject.1.ronn bundler/lib/bundler/man/bundle-install.1 bundler/lib/bundler/man/bundle-install.1.ronn bundler/lib/bundler/man/bundle-list.1 bundler/lib/bundler/man/bundle-list.1.ronn bundler/lib/bundler/man/bundle-lock.1 bundler/lib/bundler/man/bundle-lock.1.ronn bundler/lib/bundler/man/bundle-open.1 bundler/lib/bundler/man/bundle-open.1.ronn bundler/lib/bundler/man/bundle-outdated.1 bundler/lib/bundler/man/bundle-outdated.1.ronn bundler/lib/bundler/man/bundle-platform.1 bundler/lib/bundler/man/bundle-platform.1.ronn bundler/lib/bundler/man/bundle-pristine.1 bundler/lib/bundler/man/bundle-pristine.1.ronn bundler/lib/bundler/man/bundle-remove.1 bundler/lib/bundler/man/bundle-remove.1.ronn bundler/lib/bundler/man/bundle-show.1 bundler/lib/bundler/man/bundle-show.1.ronn bundler/lib/bundler/man/bundle-update.1 bundler/lib/bundler/man/bundle-update.1.ronn bundler/lib/bundler/man/bundle-viz.1 bundler/lib/bundler/man/bundle-viz.1.ronn bundler/lib/bundler/man/bundle.1 bundler/lib/bundler/man/bundle.1.ronn bundler/lib/bundler/man/gemfile.5 bundler/lib/bundler/man/gemfile.5.ronn bundler/lib/bundler/man/index.txt bundler/lib/bundler/match_platform.rb bundler/lib/bundler/mirror.rb bundler/lib/bundler/plugin.rb bundler/lib/bundler/plugin/api.rb bundler/lib/bundler/plugin/api/source.rb bundler/lib/bundler/plugin/dsl.rb bundler/lib/bundler/plugin/events.rb bundler/lib/bundler/plugin/index.rb bundler/lib/bundler/plugin/installer.rb bundler/lib/bundler/plugin/installer/git.rb bundler/lib/bundler/plugin/installer/rubygems.rb bundler/lib/bundler/plugin/source_list.rb bundler/lib/bundler/process_lock.rb bundler/lib/bundler/psyched_yaml.rb bundler/lib/bundler/remote_specification.rb bundler/lib/bundler/resolver.rb bundler/lib/bundler/resolver/spec_group.rb bundler/lib/bundler/retry.rb bundler/lib/bundler/ruby_dsl.rb bundler/lib/bundler/ruby_version.rb bundler/lib/bundler/rubygems_ext.rb bundler/lib/bundler/rubygems_gem_installer.rb bundler/lib/bundler/rubygems_integration.rb bundler/lib/bundler/runtime.rb bundler/lib/bundler/self_manager.rb bundler/lib/bundler/settings.rb bundler/lib/bundler/settings/validator.rb bundler/lib/bundler/setup.rb bundler/lib/bundler/shared_helpers.rb bundler/lib/bundler/similarity_detector.rb bundler/lib/bundler/source.rb bundler/lib/bundler/source/gemspec.rb bundler/lib/bundler/source/git.rb bundler/lib/bundler/source/git/git_proxy.rb bundler/lib/bundler/source/metadata.rb bundler/lib/bundler/source/path.rb bundler/lib/bundler/source/path/installer.rb bundler/lib/bundler/source/rubygems.rb bundler/lib/bundler/source/rubygems/remote.rb bundler/lib/bundler/source/rubygems_aggregate.rb bundler/lib/bundler/source_list.rb bundler/lib/bundler/source_map.rb bundler/lib/bundler/spec_set.rb bundler/lib/bundler/stub_specification.rb bundler/lib/bundler/templates/.document bundler/lib/bundler/templates/Executable bundler/lib/bundler/templates/Executable.bundler bundler/lib/bundler/templates/Executable.standalone bundler/lib/bundler/templates/Gemfile bundler/lib/bundler/templates/gems.rb bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt bundler/lib/bundler/templates/newgem/Gemfile.tt bundler/lib/bundler/templates/newgem/LICENSE.txt.tt bundler/lib/bundler/templates/newgem/README.md.tt bundler/lib/bundler/templates/newgem/Rakefile.tt bundler/lib/bundler/templates/newgem/bin/console.tt bundler/lib/bundler/templates/newgem/bin/setup.tt bundler/lib/bundler/templates/newgem/circleci/config.yml.tt bundler/lib/bundler/templates/newgem/exe/newgem.tt bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt bundler/lib/bundler/templates/newgem/gitignore.tt bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt bundler/lib/bundler/templates/newgem/newgem.gemspec.tt bundler/lib/bundler/templates/newgem/rspec.tt bundler/lib/bundler/templates/newgem/rubocop.yml.tt bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt bundler/lib/bundler/templates/newgem/standard.yml.tt bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt bundler/lib/bundler/templates/newgem/travis.yml.tt bundler/lib/bundler/ui.rb bundler/lib/bundler/ui/rg_proxy.rb bundler/lib/bundler/ui/shell.rb bundler/lib/bundler/ui/silent.rb bundler/lib/bundler/uri_credentials_filter.rb bundler/lib/bundler/vendor/.document bundler/lib/bundler/vendor/connection_pool/LICENSE bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb bundler/lib/bundler/vendor/fileutils/LICENSE.txt bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb bundler/lib/bundler/vendor/molinillo/LICENSE bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb bundler/lib/bundler/vendor/net-http-persistent/README.rdoc bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb bundler/lib/bundler/vendor/thor/LICENSE.md bundler/lib/bundler/vendor/thor/lib/thor.rb bundler/lib/bundler/vendor/thor/lib/thor/actions.rb bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb bundler/lib/bundler/vendor/thor/lib/thor/base.rb bundler/lib/bundler/vendor/thor/lib/thor/command.rb bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb bundler/lib/bundler/vendor/thor/lib/thor/error.rb bundler/lib/bundler/vendor/thor/lib/thor/group.rb bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb bundler/lib/bundler/vendor/thor/lib/thor/parser.rb bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb bundler/lib/bundler/vendor/thor/lib/thor/runner.rb bundler/lib/bundler/vendor/thor/lib/thor/shell.rb bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb bundler/lib/bundler/vendor/thor/lib/thor/util.rb bundler/lib/bundler/vendor/thor/lib/thor/version.rb bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb bundler/lib/bundler/vendor/tsort/LICENSE.txt bundler/lib/bundler/vendor/tsort/lib/tsort.rb bundler/lib/bundler/vendor/uri/LICENSE.txt bundler/lib/bundler/vendor/uri/lib/uri.rb bundler/lib/bundler/vendor/uri/lib/uri/common.rb bundler/lib/bundler/vendor/uri/lib/uri/file.rb bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb bundler/lib/bundler/vendor/uri/lib/uri/generic.rb bundler/lib/bundler/vendor/uri/lib/uri/http.rb bundler/lib/bundler/vendor/uri/lib/uri/https.rb bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb bundler/lib/bundler/vendor/uri/lib/uri/version.rb bundler/lib/bundler/vendor/uri/lib/uri/ws.rb bundler/lib/bundler/vendor/uri/lib/uri/wss.rb bundler/lib/bundler/vendored_fileutils.rb bundler/lib/bundler/vendored_molinillo.rb bundler/lib/bundler/vendored_persistent.rb bundler/lib/bundler/vendored_thor.rb bundler/lib/bundler/vendored_tmpdir.rb bundler/lib/bundler/vendored_tsort.rb bundler/lib/bundler/vendored_uri.rb bundler/lib/bundler/version.rb bundler/lib/bundler/version_ranges.rb bundler/lib/bundler/vlad.rb bundler/lib/bundler/worker.rb bundler/lib/bundler/yaml_serializer.rb hide_lib_for_update/note.txt lib/rubygems.rb lib/rubygems/available_set.rb lib/rubygems/basic_specification.rb lib/rubygems/bundler_version_finder.rb lib/rubygems/command.rb lib/rubygems/command_manager.rb lib/rubygems/commands/build_command.rb lib/rubygems/commands/cert_command.rb lib/rubygems/commands/check_command.rb lib/rubygems/commands/cleanup_command.rb lib/rubygems/commands/contents_command.rb lib/rubygems/commands/dependency_command.rb lib/rubygems/commands/environment_command.rb lib/rubygems/commands/fetch_command.rb lib/rubygems/commands/generate_index_command.rb lib/rubygems/commands/help_command.rb lib/rubygems/commands/info_command.rb lib/rubygems/commands/install_command.rb lib/rubygems/commands/list_command.rb lib/rubygems/commands/lock_command.rb lib/rubygems/commands/mirror_command.rb lib/rubygems/commands/open_command.rb lib/rubygems/commands/outdated_command.rb lib/rubygems/commands/owner_command.rb lib/rubygems/commands/pristine_command.rb lib/rubygems/commands/push_command.rb lib/rubygems/commands/query_command.rb lib/rubygems/commands/rdoc_command.rb lib/rubygems/commands/search_command.rb lib/rubygems/commands/server_command.rb lib/rubygems/commands/setup_command.rb lib/rubygems/commands/signin_command.rb lib/rubygems/commands/signout_command.rb lib/rubygems/commands/sources_command.rb lib/rubygems/commands/specification_command.rb lib/rubygems/commands/stale_command.rb lib/rubygems/commands/uninstall_command.rb lib/rubygems/commands/unpack_command.rb lib/rubygems/commands/update_command.rb lib/rubygems/commands/which_command.rb lib/rubygems/commands/yank_command.rb lib/rubygems/compatibility.rb lib/rubygems/config_file.rb lib/rubygems/core_ext/kernel_gem.rb lib/rubygems/core_ext/kernel_require.rb lib/rubygems/core_ext/kernel_warn.rb lib/rubygems/core_ext/tcpsocket_init.rb lib/rubygems/defaults.rb lib/rubygems/dependency.rb lib/rubygems/dependency_installer.rb lib/rubygems/dependency_list.rb lib/rubygems/deprecate.rb lib/rubygems/doctor.rb lib/rubygems/errors.rb lib/rubygems/exceptions.rb lib/rubygems/ext.rb lib/rubygems/ext/build_error.rb lib/rubygems/ext/builder.rb lib/rubygems/ext/cmake_builder.rb lib/rubygems/ext/configure_builder.rb lib/rubygems/ext/ext_conf_builder.rb lib/rubygems/ext/rake_builder.rb lib/rubygems/gem_runner.rb lib/rubygems/gemcutter_utilities.rb lib/rubygems/indexer.rb lib/rubygems/install_default_message.rb lib/rubygems/install_message.rb lib/rubygems/install_update_options.rb lib/rubygems/installer.rb lib/rubygems/installer_uninstaller_utils.rb lib/rubygems/local_remote_options.rb lib/rubygems/mock_gem_ui.rb lib/rubygems/name_tuple.rb lib/rubygems/openssl.rb lib/rubygems/optparse.rb lib/rubygems/optparse/.document lib/rubygems/optparse/COPYING lib/rubygems/optparse/lib/optionparser.rb lib/rubygems/optparse/lib/optparse.rb lib/rubygems/optparse/lib/optparse/ac.rb lib/rubygems/optparse/lib/optparse/date.rb lib/rubygems/optparse/lib/optparse/kwargs.rb lib/rubygems/optparse/lib/optparse/shellwords.rb lib/rubygems/optparse/lib/optparse/time.rb lib/rubygems/optparse/lib/optparse/uri.rb lib/rubygems/optparse/lib/optparse/version.rb lib/rubygems/package.rb lib/rubygems/package/digest_io.rb lib/rubygems/package/file_source.rb lib/rubygems/package/io_source.rb lib/rubygems/package/old.rb lib/rubygems/package/source.rb lib/rubygems/package/tar_header.rb lib/rubygems/package/tar_reader.rb lib/rubygems/package/tar_reader/entry.rb lib/rubygems/package/tar_writer.rb lib/rubygems/package_task.rb lib/rubygems/path_support.rb lib/rubygems/platform.rb lib/rubygems/psych_additions.rb lib/rubygems/psych_tree.rb lib/rubygems/query_utils.rb lib/rubygems/rdoc.rb lib/rubygems/remote_fetcher.rb lib/rubygems/request.rb lib/rubygems/request/connection_pools.rb lib/rubygems/request/http_pool.rb lib/rubygems/request/https_pool.rb lib/rubygems/request_set.rb lib/rubygems/request_set/gem_dependency_api.rb lib/rubygems/request_set/lockfile.rb lib/rubygems/request_set/lockfile/parser.rb lib/rubygems/request_set/lockfile/tokenizer.rb lib/rubygems/requirement.rb lib/rubygems/resolver.rb lib/rubygems/resolver/activation_request.rb lib/rubygems/resolver/api_set.rb lib/rubygems/resolver/api_set/gem_parser.rb lib/rubygems/resolver/api_specification.rb lib/rubygems/resolver/best_set.rb lib/rubygems/resolver/composed_set.rb lib/rubygems/resolver/conflict.rb lib/rubygems/resolver/current_set.rb lib/rubygems/resolver/dependency_request.rb lib/rubygems/resolver/git_set.rb lib/rubygems/resolver/git_specification.rb lib/rubygems/resolver/index_set.rb lib/rubygems/resolver/index_specification.rb lib/rubygems/resolver/installed_specification.rb lib/rubygems/resolver/installer_set.rb lib/rubygems/resolver/local_specification.rb lib/rubygems/resolver/lock_set.rb lib/rubygems/resolver/lock_specification.rb lib/rubygems/resolver/molinillo.rb lib/rubygems/resolver/molinillo/LICENSE lib/rubygems/resolver/molinillo/lib/molinillo.rb lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb lib/rubygems/resolver/molinillo/lib/molinillo/state.rb lib/rubygems/resolver/requirement_list.rb lib/rubygems/resolver/set.rb lib/rubygems/resolver/source_set.rb lib/rubygems/resolver/spec_specification.rb lib/rubygems/resolver/specification.rb lib/rubygems/resolver/stats.rb lib/rubygems/resolver/vendor_set.rb lib/rubygems/resolver/vendor_specification.rb lib/rubygems/s3_uri_signer.rb lib/rubygems/safe_yaml.rb lib/rubygems/security.rb lib/rubygems/security/policies.rb lib/rubygems/security/policy.rb lib/rubygems/security/signer.rb lib/rubygems/security/trust_dir.rb lib/rubygems/security_option.rb lib/rubygems/source.rb lib/rubygems/source/git.rb lib/rubygems/source/installed.rb lib/rubygems/source/local.rb lib/rubygems/source/lock.rb lib/rubygems/source/specific_file.rb lib/rubygems/source/vendor.rb lib/rubygems/source_list.rb lib/rubygems/spec_fetcher.rb lib/rubygems/specification.rb lib/rubygems/specification_policy.rb lib/rubygems/ssl_certs/.document lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem lib/rubygems/stub_specification.rb lib/rubygems/text.rb lib/rubygems/tsort.rb lib/rubygems/tsort/.document lib/rubygems/tsort/LICENSE.txt lib/rubygems/tsort/lib/tsort.rb lib/rubygems/uninstaller.rb lib/rubygems/unknown_command_spell_checker.rb lib/rubygems/uri.rb lib/rubygems/uri_formatter.rb lib/rubygems/user_interaction.rb lib/rubygems/util.rb lib/rubygems/util/licenses.rb lib/rubygems/util/list.rb lib/rubygems/validator.rb lib/rubygems/version.rb lib/rubygems/version_option.rb rubygems-update.gemspec setup.rb test/rubygems/alternate_cert.pem test/rubygems/alternate_cert_32.pem test/rubygems/alternate_key.pem test/rubygems/bad_rake.rb test/rubygems/ca_cert.pem test/rubygems/child_cert.pem test/rubygems/child_cert_32.pem test/rubygems/child_key.pem test/rubygems/client.pem test/rubygems/data/gem-private_key.pem test/rubygems/data/gem-public_cert.pem test/rubygems/data/null-required-ruby-version.gemspec.rz test/rubygems/data/null-required-rubygems-version.gemspec.rz test/rubygems/data/null-type.gemspec.rz test/rubygems/encrypted_private_key.pem test/rubygems/expired_cert.pem test/rubygems/fake_certlib/openssl.rb test/rubygems/foo/discover.rb test/rubygems/future_cert.pem test/rubygems/future_cert_32.pem test/rubygems/good_rake.rb test/rubygems/grandchild_cert.pem test/rubygems/grandchild_cert_32.pem test/rubygems/grandchild_key.pem test/rubygems/helper.rb test/rubygems/installer_test_case.rb test/rubygems/invalid_client.pem test/rubygems/invalid_issuer_cert.pem test/rubygems/invalid_issuer_cert_32.pem test/rubygems/invalid_key.pem test/rubygems/invalid_signer_cert.pem test/rubygems/invalid_signer_cert_32.pem test/rubygems/invalidchild_cert.pem test/rubygems/invalidchild_cert_32.pem test/rubygems/invalidchild_key.pem test/rubygems/package/tar_test_case.rb test/rubygems/packages/ascii_binder-0.1.10.1.gem test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem test/rubygems/plugin/exception/rubygems_plugin.rb test/rubygems/plugin/load/rubygems_plugin.rb test/rubygems/plugin/standarderror/rubygems_plugin.rb test/rubygems/private3072_key.pem test/rubygems/private_ec_key.pem test/rubygems/private_key.pem test/rubygems/public3072_cert.pem test/rubygems/public_cert.pem test/rubygems/public_cert_32.pem test/rubygems/public_key.pem test/rubygems/rubygems/commands/crash_command.rb test/rubygems/rubygems_plugin.rb test/rubygems/sff/discover.rb test/rubygems/simple_gem.rb test/rubygems/specifications/bar-0.0.2.gemspec test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec test/rubygems/specifications/rubyforge-0.0.1.gemspec test/rubygems/ssl_cert.pem test/rubygems/ssl_key.pem test/rubygems/test_bundled_ca.rb test/rubygems/test_config.rb test/rubygems/test_deprecate.rb test/rubygems/test_exit.rb test/rubygems/test_gem.rb test/rubygems/test_gem_available_set.rb test/rubygems/test_gem_bundler_version_finder.rb test/rubygems/test_gem_command.rb test/rubygems/test_gem_command_manager.rb test/rubygems/test_gem_commands_build_command.rb test/rubygems/test_gem_commands_cert_command.rb test/rubygems/test_gem_commands_check_command.rb test/rubygems/test_gem_commands_cleanup_command.rb test/rubygems/test_gem_commands_contents_command.rb test/rubygems/test_gem_commands_dependency_command.rb test/rubygems/test_gem_commands_environment_command.rb test/rubygems/test_gem_commands_fetch_command.rb test/rubygems/test_gem_commands_generate_index_command.rb test/rubygems/test_gem_commands_help_command.rb test/rubygems/test_gem_commands_info_command.rb test/rubygems/test_gem_commands_install_command.rb test/rubygems/test_gem_commands_list_command.rb test/rubygems/test_gem_commands_lock_command.rb test/rubygems/test_gem_commands_mirror.rb test/rubygems/test_gem_commands_open_command.rb test/rubygems/test_gem_commands_outdated_command.rb test/rubygems/test_gem_commands_owner_command.rb test/rubygems/test_gem_commands_pristine_command.rb test/rubygems/test_gem_commands_push_command.rb test/rubygems/test_gem_commands_query_command.rb test/rubygems/test_gem_commands_search_command.rb test/rubygems/test_gem_commands_server_command.rb test/rubygems/test_gem_commands_setup_command.rb test/rubygems/test_gem_commands_signin_command.rb test/rubygems/test_gem_commands_signout_command.rb test/rubygems/test_gem_commands_sources_command.rb test/rubygems/test_gem_commands_specification_command.rb test/rubygems/test_gem_commands_stale_command.rb test/rubygems/test_gem_commands_uninstall_command.rb test/rubygems/test_gem_commands_unpack_command.rb test/rubygems/test_gem_commands_update_command.rb test/rubygems/test_gem_commands_which_command.rb test/rubygems/test_gem_commands_yank_command.rb test/rubygems/test_gem_config_file.rb test/rubygems/test_gem_dependency.rb test/rubygems/test_gem_dependency_installer.rb test/rubygems/test_gem_dependency_list.rb test/rubygems/test_gem_dependency_resolution_error.rb test/rubygems/test_gem_doctor.rb test/rubygems/test_gem_ext_builder.rb test/rubygems/test_gem_ext_cmake_builder.rb test/rubygems/test_gem_ext_configure_builder.rb test/rubygems/test_gem_ext_ext_conf_builder.rb test/rubygems/test_gem_ext_rake_builder.rb test/rubygems/test_gem_gem_runner.rb test/rubygems/test_gem_gemcutter_utilities.rb test/rubygems/test_gem_impossible_dependencies_error.rb test/rubygems/test_gem_indexer.rb test/rubygems/test_gem_install_update_options.rb test/rubygems/test_gem_installer.rb test/rubygems/test_gem_local_remote_options.rb test/rubygems/test_gem_name_tuple.rb test/rubygems/test_gem_package.rb test/rubygems/test_gem_package_old.rb test/rubygems/test_gem_package_tar_header.rb test/rubygems/test_gem_package_tar_reader.rb test/rubygems/test_gem_package_tar_reader_entry.rb test/rubygems/test_gem_package_tar_writer.rb test/rubygems/test_gem_package_task.rb test/rubygems/test_gem_path_support.rb test/rubygems/test_gem_platform.rb test/rubygems/test_gem_rdoc.rb test/rubygems/test_gem_remote_fetcher.rb test/rubygems/test_gem_request.rb test/rubygems/test_gem_request_connection_pools.rb test/rubygems/test_gem_request_set.rb test/rubygems/test_gem_request_set_gem_dependency_api.rb test/rubygems/test_gem_request_set_lockfile.rb test/rubygems/test_gem_request_set_lockfile_parser.rb test/rubygems/test_gem_request_set_lockfile_tokenizer.rb test/rubygems/test_gem_requirement.rb test/rubygems/test_gem_resolver.rb test/rubygems/test_gem_resolver_activation_request.rb test/rubygems/test_gem_resolver_api_set.rb test/rubygems/test_gem_resolver_api_specification.rb test/rubygems/test_gem_resolver_best_set.rb test/rubygems/test_gem_resolver_composed_set.rb test/rubygems/test_gem_resolver_conflict.rb test/rubygems/test_gem_resolver_dependency_request.rb test/rubygems/test_gem_resolver_git_set.rb test/rubygems/test_gem_resolver_git_specification.rb test/rubygems/test_gem_resolver_index_set.rb test/rubygems/test_gem_resolver_index_specification.rb test/rubygems/test_gem_resolver_installed_specification.rb test/rubygems/test_gem_resolver_installer_set.rb test/rubygems/test_gem_resolver_local_specification.rb test/rubygems/test_gem_resolver_lock_set.rb test/rubygems/test_gem_resolver_lock_specification.rb test/rubygems/test_gem_resolver_requirement_list.rb test/rubygems/test_gem_resolver_specification.rb test/rubygems/test_gem_resolver_vendor_set.rb test/rubygems/test_gem_resolver_vendor_specification.rb test/rubygems/test_gem_security.rb test/rubygems/test_gem_security_policy.rb test/rubygems/test_gem_security_signer.rb test/rubygems/test_gem_security_trust_dir.rb test/rubygems/test_gem_silent_ui.rb test/rubygems/test_gem_source.rb test/rubygems/test_gem_source_fetch_problem.rb test/rubygems/test_gem_source_git.rb test/rubygems/test_gem_source_installed.rb test/rubygems/test_gem_source_list.rb test/rubygems/test_gem_source_local.rb test/rubygems/test_gem_source_lock.rb test/rubygems/test_gem_source_specific_file.rb test/rubygems/test_gem_source_subpath_problem.rb test/rubygems/test_gem_source_vendor.rb test/rubygems/test_gem_spec_fetcher.rb test/rubygems/test_gem_specification.rb test/rubygems/test_gem_stream_ui.rb test/rubygems/test_gem_stub_specification.rb test/rubygems/test_gem_text.rb test/rubygems/test_gem_uninstaller.rb test/rubygems/test_gem_unsatisfiable_dependency_error.rb test/rubygems/test_gem_uri.rb test/rubygems/test_gem_uri_formatter.rb test/rubygems/test_gem_util.rb test/rubygems/test_gem_validator.rb test/rubygems/test_gem_version.rb test/rubygems/test_gem_version_option.rb test/rubygems/test_kernel.rb test/rubygems/test_project_sanity.rb test/rubygems/test_remote_fetch_error.rb test/rubygems/test_require.rb test/rubygems/test_rubygems.rb test/rubygems/utilities.rb test/rubygems/wrong_key_cert.pem test/rubygems/wrong_key_cert_32.pem test/test_changelog_generator.rb rubygems-3.3.5/POLICIES.md000066400000000000000000000103061416756346600151320ustar00rootroot00000000000000## Pull Requests Contributions to RubyGems are made via GitHub pull requests, which must be approved by a project committer other than the author. To approve a PR, a maintainer can use GitHubs PR review feature. After that, if the original author is happy to merge the PR, she can press the merge button. ## Long-Term Support RubyGems will support Ruby versions for as long as the Ruby team supports that Ruby version. That means that the latest RubyGems release will always support the currently-supported Ruby versions, and RubyGems security fixes will be released for any RubyGems version that shipped inside a currently-supported Ruby version. ### Bugfix Releases RubyGems generally releases bugfixes from the master branch. We may mix bug fixes and new features in the same release. RubyGems does not guarantee it will ship bugfix releases for previous minor or major versions. For example, after RubyGems 2.5 is released, the RubyGems team will not provide non-security fixes for RubyGems 2.4, or any earlier versions. ### Security Releases Security releases will be made for RubyGems minor versions that were included in a currently-supported Ruby release. For example, since RubyGems 2.0 was shipped in Ruby 2.0, RubyGems 2.0 will receive security fixes until Ruby 2.0 reaches end-of-life. ### Ruby Version Support When a Ruby version reaches end-of-life the following minor release of RubyGems will drop backwards compatibility with that Ruby version. For example, since Ruby 2.2 has reached end-of-life, future RubyGems minor releases will only support Ruby 2.3 and above. As of this writing RubyGems is at version 2.7, so when RubyGems 2.8 is released, it will only support Ruby 2.3 and later. ## Release Process Releases of new versions should follow these steps, to ensure the process is smooth and no needed steps are missed. ### Recommendations for security releases * Obtain CVE numbers as needed from HackerOne or Red Hat. * Agree on a release date with ruby-core, so patches can be backported to older Ruby versions as needed. * Avoid releasing security updates on Fridays, so platform services don't have to work on weekends. * Continue with the regular release process below. ### Steps for patch releases * Confirm all PRs that you want backported are properly tagged with `rubygems: ` or `bundler: ` labels at GitHub. * Run `rake prepare_release[]`, create a PR and merge it to the stable branch once CI passes. * Switch to the stable branch and pull the PR just merged. * Release `bundler` with `(cd bundler && bin/rake release)`. * Release `rubygems` with `rake release`. ### Steps for minor and major releases * Confirm all PRs that you want listed in changelogs are properly tagged with `rubygems: ` or `bundler: ` labels at GitHub. * Run `rake prepare_release[]`. * Add the new stable branch `x.y` where `x.y` are the first two components of the rubygems version being released to the CI workflows as an extra commit on top of what the `prepare_release` task generated. * Create a PR to the main branch, and merge it once CI passes. * From the main branch, cut a new stable branch with `git pull && git checkout -b x.y`. * Push the stable branch and wait for CI to be green. * Release `bundler` with `(cd bundler && bin/rake release)`. * Release `rubygems` with `rake release`. ## Committer Access RubyGems committers may lose their commit privileges if they are inactive for longer than 12 months. Committer permission may be restored upon request by having a pull request merged. This is designed to improve the maintainability of RubyGems by requiring committers to maintain familiarity with RubyGems activity and to improve the security of RubyGems by preventing idle committers from having their commit permissions compromised or exposed. ## Changing These Policies These policies were set in order to reduce the burden of maintenance and to keep committers current with existing development and policies. RubyGems work is primarily volunteer-driven which limits the ability to provide long-term support. By joining [Ruby Together](https://rubytogether.org) you can help extend support for older RubyGems versions. rubygems-3.3.5/README.md000066400000000000000000000112731416756346600146640ustar00rootroot00000000000000# RubyGems [![Maintainability](https://api.codeclimate.com/v1/badges/30f913e9c2dd932132c1/maintainability)](https://codeclimate.com/github/rubygems/rubygems/maintainability) RubyGems is a package management framework for Ruby. A package (also known as a library) contains a set of functionality that can be invoked by a Ruby program, such as reading and parsing an XML file. We call these packages "gems" and RubyGems is a tool to install, create, manage and load these packages in your Ruby environment. RubyGems is also a client for [RubyGems.org](https://rubygems.org), a public repository of Gems that allows you to publish a Gem that can be shared and used by other developers. See our guide on publishing a Gem at [guides.rubygems.org](https://guides.rubygems.org/publishing/) ## Getting Started Installing and managing a Gem is done through the `gem` command. To install a Gem such as [Nokogiri](https://github.com/sparklemotion/nokogiri) which lets you read and parse XML in Ruby: $ gem install nokogiri RubyGems will download the Nokogiri Gem from RubyGems.org and install it into your Ruby environment. Finally, inside your Ruby program, load the Nokogiri gem and start parsing your XML: require 'nokogiri' Nokogiri.XML('

Hello World

') For more information about how to use RubyGems, see our RubyGems basics guide at [guides.rubygems.org](https://guides.rubygems.org/rubygems-basics/) ## Requirements * RubyGems 2.6 supports Ruby 2.4 or lower. * RubyGems 2.7 supports Ruby 2.5 or lower. * RubyGems 3.0 supports Ruby 2.3 or later. ## Installation RubyGems is already installed in your Ruby environment, you can check the version you have installed by running `gem --version` in your terminal emulator. In some cases Ruby & RubyGems may be provided as OS packages. This is not a recommended way to use Ruby & RubyGems. It's better to use a Ruby Version Manager, such as [rbenv](https://github.com/rbenv/rbenv) or [chruby](https://github.com/postmodern/chruby). If you still want to use the version provided by your OS package manager, please also use your OS package manager to upgrade rubygems, and disregard any other installation instructions given below. If you would like to manually install RubyGems: * Download from https://rubygems.org/pages/download, unpack, and `cd` into RubyGems' src * OR clone this repository and `cd` into the repository Install RubyGems by running: $ ruby setup.rb For more details and other options, see: $ ruby setup.rb --help ## Upgrading RubyGems To upgrade to the latest RubyGems, run: $ gem update --system See [UPGRADING](UPGRADING.md) for more details and alternative instructions. ## Documentation RubyGems uses [rdoc](https://github.com/rdoc/rdoc) for documentation. A compiled set of the docs can be viewed online at [rubydoc](https://www.rubydoc.info/github/rubygems/rubygems). RubyGems also provides a comprehensive set of guides which covers numerous topics such as creating a new gem, security practices and other resources at https://guides.rubygems.org ## Getting Help ### Filing Tickets Got a bug and you're not sure? You're sure you have a bug, but don't know what to do next? In any case, let us know about it! The best place for letting the RubyGems team know about bugs or problems you're having is [on the RubyGems issues page at GitHub](http://github.com/rubygems/rubygems/issues). ### Bundler Compatibility See http://bundler.io/compatibility for known issues. ### Supporting
Ruby Together pays some RubyGems maintainers for their ongoing work. As a grassroots initiative committed to supporting the critical Ruby infrastructure you rely on, Ruby Together is funded entirely by the Ruby community. Contribute today as an individual or even better, as a company, and ensure that RubyGems, Bundler, and other shared tooling is around for years to come. ### Contributing If you'd like to contribute to RubyGems, that's awesome, and we <3 you. Check out our [guide to contributing](CONTRIBUTING.md) for more information. While some RubyGems contributors are compensated by Ruby Together, the project maintainers make decisions independent of Ruby Together. As a project, we welcome contributions regardless of the author’s affiliation with Ruby Together. ### Code of Conduct Everyone interacting in the RubyGems project’s codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [contributor code of conduct](https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md). rubygems-3.3.5/Rakefile000066400000000000000000000367301416756346600150570ustar00rootroot00000000000000RakeFileUtils.verbose_flag = false require 'rubygems' require 'rubygems/package_task' require "rake/testtask" desc "Setup Rubygems dev environment" task :setup do sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "install", "--gemfile=dev_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--gemfile=release_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--gemfile=bundler/tool/bundler/test_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--gemfile=bundler/tool/bundler/rubocop_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--gemfile=bundler/tool/bundler/rubocop23_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--gemfile=bundler/tool/bundler/rubocop24_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--gemfile=bundler/tool/bundler/standard_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--gemfile=bundler/tool/bundler/standard23_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--gemfile=bundler/tool/bundler/standard24_gems.rb" end desc "Update Rubygems dev environment" task :update do |_, args| sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=dev_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=release_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=bundler/tool/bundler/test_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=bundler/tool/bundler/rubocop_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=bundler/tool/bundler/rubocop23_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=bundler/tool/bundler/rubocop24_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=bundler/tool/bundler/standard_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=bundler/tool/bundler/standard23_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "lock", "--update", *args, "--gemfile=bundler/tool/bundler/standard24_gems.rb" end desc "Update the locked bundler version in dev environment" task :update_locked_bundler do |_, args| sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=dev_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=release_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/test_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/rubocop_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/rubocop23_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/rubocop24_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/standard_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/standard23_gems.rb" sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/standard24_gems.rb" end desc "Setup git hooks" task :git_hooks do sh "git config core.hooksPath .githooks" end Rake::TestTask.new do |t| t.ruby_opts = %w[-w] t.ruby_opts << '-rdevkit' if RbConfig::CONFIG['host_os'].include?('mingw') t.libs << "test" t.libs << "bundler/lib" t.test_files = FileList['test/**/test_*.rb'] end task :default => :test spec = Gem::Specification.load('rubygems-update.gemspec') v = spec.version require 'rdoc/task' RDoc::Task.new :rdoc => 'docs', :clobber_rdoc => 'clobber_docs' do |doc| doc.main = 'README.md' doc.title = "RubyGems #{v} API Documentation" rdoc_files = Rake::FileList.new %w[lib bundler/lib] rdoc_files.add %w[CHANGELOG.md LICENSE.txt MIT.txt CODE_OF_CONDUCT.md CONTRIBUTING.md MAINTAINERS.txt Manifest.txt POLICIES.md README.md UPGRADING.md bundler/CHANGELOG.md bundler/doc/contributing/README.md bundler/LICENSE.md bundler/README.md hide_lib_for_update/note.txt].map(&:freeze) doc.rdoc_files = rdoc_files doc.rdoc_dir = 'doc' end # No big deal if Automatiek is not available. This might be just because # `rake` is executed from release tarball. if File.exist?("util/automatiek.rake") load "util/automatiek.rake" # We currently ship Molinillo master branch as of # https://github.com/CocoaPods/Molinillo/commit/7cc27a355e861bdf593e2cde7bf1bca3daae4303 Automatiek::RakeTask.new("molinillo") do |lib| lib.version = "master" lib.download = { :github => "https://github.com/CocoaPods/Molinillo" } lib.namespace = "Molinillo" lib.prefix = "Gem::Resolver" lib.vendor_lib = "lib/rubygems/resolver/molinillo" lib.license_path = "LICENSE" end desc "Vendor a specific version of tsort" Automatiek::RakeTask.new("tsort") do |lib| lib.version = "master" lib.download = { :github => "https://github.com/ruby/tsort" } lib.namespace = "TSort" lib.prefix = "Gem" lib.vendor_lib = "lib/rubygems/tsort" lib.license_path = "LICENSE.txt" end # We currently ship optparse 0.2.0 plus the following changes: # * Remove top aliasing the `::OptParse` constant to `OptionParser`, since we # don't need it and it triggers redefinition warnings since the default # optparse gem also does the aliasing. # * Restore support for old versions of `did_you_mean` so that our vendored # copy works consistently in all supported rubies. This one can be removed # once we drop ruby 2.4 support, since newer versions include a version of # `did_you_mean` that does not require any changes. desc "Vendor a specific version of optparse" Automatiek::RakeTask.new("optparse") do |lib| lib.version = "0.2.0" lib.download = { :github => "https://github.com/ruby/optparse" } lib.namespace = "OptionParser" lib.prefix = "Gem" lib.vendor_lib = "lib/rubygems/optparse" lib.license_path = "COPYING" end end namespace :rubocop do desc "Run rubocop for RubyGems. Pass positional arguments, e.g. -a, as Rake arguments." task(:rubygems) do |_, args| sh "util/rubocop", *args end desc "Run rubocop for Bundler. Pass positional arguments, e.g. -a, as Rake arguments." task(:bundler) do |_, args| sh "bundler/bin/rubocop", *args end end task rubocop: %w[rubocop:rubygems rubocop:bundler] # -------------------------------------------------------------------- # Creating a release task :prerelease => %w[clobber install_release_dependencies test bundler:build_metadata check_deprecations] task :postrelease => %w[upload guides:publish blog:publish bundler:build_metadata:clean] desc "Check for deprecated methods with expired deprecation horizon" task :check_deprecations do if v.segments[1] == 0 && v.segments[2] == 0 sh("util/rubocop -r ./util/cops/deprecations --only Rubygems/Deprecations") else puts "Skipping deprecation checks since not releasing a major version." end end desc "Install release dependencies" task :install_release_dependencies do require_relative "util/release" Release.install_dependencies! end desc "Prepare a release" task :prepare_release, [:version] => [:install_release_dependencies] do |_t, opts| require_relative "util/release" Release.new(opts[:version] || v.to_s).prepare! end desc "Install rubygems to local system" task :install => [:clear_package, :package] do sh "ruby -Ilib bin/gem install --no-document pkg/rubygems-update-#{v}.gem --backtrace && update_rubygems --no-document --backtrace" end desc "Clears previously built package" task :clear_package do rm_rf "pkg" end desc "Generates the changelog for a specific target version" task :generate_changelog, [:version] do |_t, opts| require_relative "util/release" Release.for_rubygems(opts[:version]).cut_changelog! end desc "Release rubygems-#{v}" task :release => :prerelease do Rake::Task["package"].invoke sh "gem push pkg/rubygems-update-#{v}.gem" Rake::Task["postrelease"].invoke end Gem::PackageTask.new(spec) {} Rake::Task["package"].enhance ["pkg/rubygems-#{v}.tgz", "pkg/rubygems-#{v}.zip"] file "pkg/rubygems-#{v}" => "pkg/rubygems-update-#{v}" do |t| require 'find' dest_root = File.expand_path t.name cd t.source do Find.find '.' do |file| dest = File.expand_path file, dest_root if File.directory? file mkdir_p dest else rm_f dest safe_ln file, dest end end end end file "pkg/rubygems-#{v}.zip" => "pkg/rubygems-#{v}" do cd 'pkg' do if Gem.win_platform? sh "7z a rubygems-#{v}.zip rubygems-#{v}" else sh "zip -q -r rubygems-#{v}.zip rubygems-#{v}" end end end file "pkg/rubygems-#{v}.tgz" => "pkg/rubygems-#{v}" do cd 'pkg' do if Gem.win_platform? && RUBY_VERSION < '2.4' sh "7z a -ttar rubygems-#{v}.tar rubygems-#{v}" sh "7z a -tgzip rubygems-#{v}.tgz rubygems-#{v}.tar" else tar_version = `tar --version` if tar_version =~ /bsdtar/ # bsdtar, as used by at least FreeBSD and macOS, uses `--uname` and `--gname`. sh "tar -czf rubygems-#{v}.tgz --uname=rubygems:0 --gname=rubygems:0 rubygems-#{v}" else # If a third variant is added, change this line to: elsif tar_version =~ /GNU tar/ # GNU Tar, as used by many Linux distros, uses `--owner` and `--group`. sh "tar -czf rubygems-#{v}.tgz --owner=rubygems:0 --group=rubygems:0 rubygems-#{v}" end end end end desc "Upload the release to GitHub releases" task :upload_to_github do require_relative "util/release" Release.for_rubygems(v).create_for_github! end desc "Upload release to S3" task :upload_to_s3 do require "aws-sdk-s3" s3 = Aws::S3::Resource.new(region:'us-west-2') %w[zip tgz].each do |ext| obj = s3.bucket('oregon.production.s3.rubygems.org').object("rubygems/rubygems-#{v}.#{ext}") obj.upload_file("pkg/rubygems-#{v}.#{ext}", acl: 'public-read') end end desc "Upload release to rubygems.org" task :upload => %w[upload_to_github upload_to_s3] directory '../guides.rubygems.org' do sh 'git', 'clone', 'https://github.com/rubygems/guides.git', '../guides.rubygems.org' end namespace 'guides' do task 'pull' => %w[../guides.rubygems.org] do chdir '../guides.rubygems.org' do sh 'git', 'pull' end end task 'update' => %w[../guides.rubygems.org] do lib_dir = File.join Dir.pwd, 'lib' chdir '../guides.rubygems.org' do ruby '-I', lib_dir, '-S', 'rake', 'command_guide' ruby '-I', lib_dir, '-S', 'rake', 'spec_guide' end end task 'commit' => %w[../guides.rubygems.org] do chdir '../guides.rubygems.org' do begin sh 'git', 'diff', '--quiet' rescue sh 'git', 'commit', 'command-reference.md', 'specification-reference.md', '-m', "Rebuild for RubyGems #{v}" end end end task 'push' => %w[../guides.rubygems.org] do chdir '../guides.rubygems.org' do sh 'git', 'push' end end desc 'Updates and publishes the guides for the just-released RubyGems' task 'publish' task 'publish' => %w[ guides:pull guides:update guides:commit guides:push ] end directory '../blog.rubygems.org' do sh 'git', 'clone', 'https://github.com/rubygems/rubygems.github.io.git', '../blog.rubygems.org' end namespace 'blog' do date = Time.now.strftime '%Y-%m-%d' post_page = "_posts/#{date}-#{v}-released.md" checksums = '' task 'checksums' => 'package' do require 'net/http' Dir['pkg/*{tgz,zip,gem}'].each do |file| digest = OpenSSL::Digest::SHA256.file(file).hexdigest basename = File.basename(file) checksums << "* #{basename} \n" checksums << " #{digest}\n" release_url = URI("https://rubygems.org/#{file.end_with?("gem") ? "gems" : "rubygems"}/#{basename}") response = Net::HTTP.get_response(release_url) if response.is_a?(Net::HTTPSuccess) released_digest = OpenSSL::Digest::SHA256.hexdigest(response.body) if digest != released_digest abort "Checksum of #{file} (#{digest}) doesn't match checksum of released package at #{release_url} (#{released_digest})" end elsif response.is_a?(Net::HTTPForbidden) abort "#{basename} has not been yet uploaded to rubygems.org" else abort "Error fetching released package to verify checksums: #{response}\n#{response.body}" end end end task 'pull' => %w[../blog.rubygems.org] do chdir '../blog.rubygems.org' do sh 'git', 'pull' end end path = File.join '../blog.rubygems.org', post_page task 'update' => [path] file path => 'checksums' do name = `git config --get user.name`.strip email = `git config --get user.email`.strip require_relative "util/changelog" history = Changelog.for_rubygems(v.to_s) require 'tempfile' Tempfile.open 'blog_post' do |io| io.write <<-ANNOUNCEMENT --- title: #{v} Released layout: post author: #{name} author_email: #{email} --- RubyGems #{v} includes #{history.change_types_for_blog}. To update to the latest RubyGems you can run: gem update --system To install RubyGems by hand see the [Download RubyGems][download] page. #{history.release_notes_for_blog.join("\n")} SHA256 Checksums: #{checksums} [download]: https://rubygems.org/pages/download ANNOUNCEMENT io.flush sh(ENV['EDITOR'] || 'vim', io.path) FileUtils.cp io.path, path end end task 'commit' => %w[../blog.rubygems.org] do chdir '../blog.rubygems.org' do sh 'git', 'add', post_page sh 'git', 'commit', post_page, '-m', "Added #{v} release announcement" end end task 'push' => %w[../blog.rubygems.org] do chdir '../blog.rubygems.org' do sh 'git', 'push' end end desc 'Updates and publishes the blog for the just-released RubyGems' task 'publish' => %w[ blog:pull blog:update blog:commit blog:push ] end # Misc Tasks --------------------------------------------------------- module Rubygems class ProjectFiles def self.all files = [] exclude = %r{\A(?:\.|dev_gems|release_gems|bundler/(?!lib|exe|[^/]+\.md|bundler.gemspec)|util/|Rakefile)} tracked_files = `git ls-files`.split("\n") tracked_files.each do |path| next unless File.file?(path) next if path =~ exclude files << path end files.sort end end end desc "Update the manifest to reflect what's on disk" task :update_manifest do File.open('Manifest.txt', 'w') {|f| f.puts(Rubygems::ProjectFiles.all) } end desc "Check the manifest is up to date" task :check_manifest do if File.read("Manifest.txt").split != Rubygems::ProjectFiles.all abort "Manifest is out of date. Run `rake update_manifest` to sync it" end end desc "Update License list from SPDX.org" task :update_licenses do load "util/generate_spdx_license_list.rb" end namespace :bundler do task :build_metadata do chdir('bundler') { sh "rake build_metadata" } end namespace :build_metadata do task :clean do chdir('bundler') { sh "rake build_metadata:clean" } end end end rubygems-3.3.5/UPGRADING.md000066400000000000000000000004461416756346600152470ustar00rootroot00000000000000# How to upgrade/downgrade Rubygems: ## Downgrade Recipe $ gem update --system 3.1.4 ## Upgrade Recipe $ gem update --system ## Install from source * Download from: https://rubygems.org/pages/download * Unpack into a directory and `cd` there * Install with: `ruby setup.rb` rubygems-3.3.5/bin/000077500000000000000000000000001416756346600141515ustar00rootroot00000000000000rubygems-3.3.5/bin/gem000077500000000000000000000003761416756346600146550ustar00rootroot00000000000000#!/usr/bin/env ruby #-- # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others. # All rights reserved. # See LICENSE.txt for permissions. #++ require 'rubygems' require 'rubygems/gem_runner' args = ARGV.clone Gem::GemRunner.new.run args rubygems-3.3.5/bin/update_rubygems000077500000000000000000000017451416756346600173050ustar00rootroot00000000000000#!/usr/bin/env ruby #-- # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others. # All rights reserved. # See LICENSE.txt for permissions. #++ require 'rubygems' if ARGV.include? '-h' or ARGV.include? '--help' $stderr.puts "rubygems_update [options]" $stderr.puts $stderr.puts "This will install the latest version of RubyGems." $stderr.puts $stderr.puts "\t--version=X.Y\tUpdate RubyGems from the X.Y version." exit end unless ARGV.grep(/--version=([\d\.]*)/).empty? exec Gem.ruby, '-S', $PROGRAM_NAME, "_#{$1}_" end update_dir = $LOAD_PATH.find {|dir| dir =~ /rubygems-update/ } if update_dir.nil? puts "Error: Cannot find RubyGems update path!" puts puts "RubyGems has already been updated." puts "The rubygems-update gem may now be uninstalled." puts "E.g. gem uninstall rubygems-update" else update_dir = File.dirname(update_dir) Dir.chdir update_dir ENV["GEM_PREV_VER"] = Gem::VERSION abort unless system(Gem.ruby, 'setup.rb', *ARGV) end rubygems-3.3.5/bundler/000077500000000000000000000000001416756346600150345ustar00rootroot00000000000000rubygems-3.3.5/bundler/.changelog.yml000066400000000000000000000014151416756346600175650ustar00rootroot00000000000000--- header_template: "# %new_version (%release_date)" entry_template: " - %title [#%pull_request_number](%pull_request_url)" release_date_format: "%B %-d, %Y" changelog_label_mapping: "bundler: security fix": "## Security fixes:" "bundler: breaking change": "## Breaking changes:" "bundler: deprecation": "## Deprecations:" "bundler: feature": "## Features:" "bundler: performance": "## Performance:" "bundler: enhancement": "## Enhancements:" "bundler: bug fix": "## Bug fixes:" "bundler: documentation": "## Documentation:" "bundler: backport": null patch_level_labels: - "bundler: security fix" - "bundler: deprecation" - "bundler: enhancement" - "bundler: bug fix" - "bundler: performance" - "bundler: documentation" - "bundler: backport" rubygems-3.3.5/bundler/.gitignore000066400000000000000000000005741416756346600170320ustar00rootroot00000000000000# Please do not submit patches for including directives to ignore IDE/editor # generated files. Use a global gitignore as described in # https://help.github.com/articles/ignoring-files and find useful gitignore # samples at https://github.com/github/gitignore # files created by running the specs /tmp/ # gems built by `rake build` /pkg/ # rspec failure tracking .rspec_status rubygems-3.3.5/bundler/.rspec000066400000000000000000000000701416756346600161460ustar00rootroot00000000000000--color --warnings --require spec_helper --order random rubygems-3.3.5/bundler/CHANGELOG.md000066400000000000000000006520121416756346600166530ustar00rootroot00000000000000# 2.3.5 (January 12, 2022) ## Enhancements: - Make `bundle update --bundler` actually lock to the latest bundler version (even if not yet installed) [#5182](https://github.com/rubygems/rubygems/pull/5182) - Use thor-1.2.1 [#5260](https://github.com/rubygems/rubygems/pull/5260) - Exclude bin directory for newgem template [#5259](https://github.com/rubygems/rubygems/pull/5259) ## Bug fixes: - Fix metadata requirements being bypassed when custom gem servers are used [#5256](https://github.com/rubygems/rubygems/pull/5256) - Fix `rake build:checksum` writing checksum of package path, not package contents [#5250](https://github.com/rubygems/rubygems/pull/5250) # 2.3.4 (December 29, 2021) ## Enhancements: - Improve error message when `BUNDLED WITH` version does not exist [#5205](https://github.com/rubygems/rubygems/pull/5205) ## Bug fixes: - Fix `bundle update --bundler` no longer updating lockfile [#5224](https://github.com/rubygems/rubygems/pull/5224) # 2.3.3 (December 24, 2021) ## Bug fixes: - Fix locked bundler not installed to the right path when `deployment` is set [#5217](https://github.com/rubygems/rubygems/pull/5217) # 2.3.2 (December 23, 2021) ## Enhancements: - Remove unnecessary lockfile upgrade warning [#5209](https://github.com/rubygems/rubygems/pull/5209) # 2.3.1 (December 22, 2021) ## Enhancements: - Vendor latest `thor` with fixes for latest `did_you_mean` deprecations [#5202](https://github.com/rubygems/rubygems/pull/5202) - Avoid unnecessary `shellwords` require on newer rubygems [#5195](https://github.com/rubygems/rubygems/pull/5195) - Re-exec prepending command with `Gem.ruby` if `$PROGRAM_NAME` is not executable [#5193](https://github.com/rubygems/rubygems/pull/5193) # 2.3.0 (December 21, 2021) ## Features: - Change `bundle install` with a lockfile to respect the `BUNDLED WITH` bundler version [#4076](https://github.com/rubygems/rubygems/pull/4076) ## Enhancements: - Print warning when running Bundler on potentially problematic RubyGems & Ruby combinations [#5177](https://github.com/rubygems/rubygems/pull/5177) - Error tracing should be printed to stderr [#5179](https://github.com/rubygems/rubygems/pull/5179) - Add `github` and `ref` options to `bundle add` [#5159](https://github.com/rubygems/rubygems/pull/5159) - Add require parameter to `bundle add` [#5021](https://github.com/rubygems/rubygems/pull/5021) - Enable parallel installation on Windows by default [#4822](https://github.com/rubygems/rubygems/pull/4822) - More logging when compact index is not used and we fallback to other APIs [#4546](https://github.com/rubygems/rubygems/pull/4546) - `bundle gem` generated MiniTest file and class now start with 'test' [#3893](https://github.com/rubygems/rubygems/pull/3893) - Add `Bundler::Definition.no_lock` accessor for skipping lock file creation/update [#3401](https://github.com/rubygems/rubygems/pull/3401) ## Bug fixes: - Fix crash when when no platform specific matches exist and show a proper error [#5168](https://github.com/rubygems/rubygems/pull/5168) - Ignore dependencies not actually locked from frozen check [#5152](https://github.com/rubygems/rubygems/pull/5152) - Fix `bundle cache --all-platforms` on Windows [#4552](https://github.com/rubygems/rubygems/pull/4552) ## Documentation: - Fix gemspec template typo [#4545](https://github.com/rubygems/rubygems/pull/4545) # 2.2.33 (December 7, 2021) ## Security fixes: - Pass "--" to git commands to separate positional and optional args [#5142](https://github.com/rubygems/rubygems/pull/5142) ## Enhancements: - Accept pull request URLs as github source [#5126](https://github.com/rubygems/rubygems/pull/5126) - Add `--version` parameter to `bundle info` command [#5137](https://github.com/rubygems/rubygems/pull/5137) - Let original `Errno::EACCES` error be raised in compact index updater [#5110](https://github.com/rubygems/rubygems/pull/5110) - Improve gemfile-lockfile source equivalence errors [#5120](https://github.com/rubygems/rubygems/pull/5120) - Avoid float-to-string loss of characters in GitHub Actions configuration labels in new gem template [#5089](https://github.com/rubygems/rubygems/pull/5089) - Add an initial rbs template to `bundle gem` skeleton [#5041](https://github.com/rubygems/rubygems/pull/5041) - Avoid shared libraries not getting environment passed right after argv in memory when `bundle exec` is used [#4815](https://github.com/rubygems/rubygems/pull/4815) ## Bug fixes: - Don't cleanup paths from gems already activated from `$LOAD_PATH` [#5111](https://github.com/rubygems/rubygems/pull/5111) - Fix handling prereleases of 0 versions, like 0.0.0.dev or 0.0.0.SNAPSHOT [#5116](https://github.com/rubygems/rubygems/pull/5116) - Fix escape of filenames in `bundle doctor` [#5102](https://github.com/rubygems/rubygems/pull/5102) - Don't unlock dependencies when running `bundle install` after changing global source [#5090](https://github.com/rubygems/rubygems/pull/5090) - Fix missing locked specs when depended on another platform [#5092](https://github.com/rubygems/rubygems/pull/5092) - Fix `bundle info` sometimes claiming that bundler has been deleted [#5097](https://github.com/rubygems/rubygems/pull/5097) ## Documentation: - Ignore to generate the documentation from vendored libraries [#5118](https://github.com/rubygems/rubygems/pull/5118) # 2.2.32 (November 23, 2021) ## Enhancements: - Clarify `bundle viz` deprecation [#5083](https://github.com/rubygems/rubygems/pull/5083) - Unlock dependencies that no longer match lockfile [#5068](https://github.com/rubygems/rubygems/pull/5068) - Use `shellsplit` instead of array of strings for git push [#5062](https://github.com/rubygems/rubygems/pull/5062) - Re-enable `default_ignores` option for standard [#5003](https://github.com/rubygems/rubygems/pull/5003) ## Bug fixes: - Fix downgrading dependencies by changing the `Gemfile` and running `bundle update` [#5078](https://github.com/rubygems/rubygems/pull/5078) # 2.2.31 (November 8, 2021) ## Enhancements: - Link to working `bundler-graph` plugin in `bundle viz` deprecation message [#5061](https://github.com/rubygems/rubygems/pull/5061) - Memoize materialized specs when requiring `bundler/setup` [#5033](https://github.com/rubygems/rubygems/pull/5033) - Allow custom LicenseRef [#5013](https://github.com/rubygems/rubygems/pull/5013) - Better error when installing a lockfile with git sources and git is not installed [#5036](https://github.com/rubygems/rubygems/pull/5036) - Only delete cached gem when it's corrupted [#5031](https://github.com/rubygems/rubygems/pull/5031) - Support gemified `tsort` [#5032](https://github.com/rubygems/rubygems/pull/5032) - Add standard option alongside rubocop to `bundle gem` [#4411](https://github.com/rubygems/rubygems/pull/4411) ## Bug fixes: - Fix system man pages no longer working after bundler overrides `MANPATH` [#5039](https://github.com/rubygems/rubygems/pull/5039) - Don't warn when a lockfile is locked to a dev version [#5018](https://github.com/rubygems/rubygems/pull/5018) # 2.2.30 (October 26, 2021) ## Enhancements: - Add a custom SHA1 digest implementation to no longer depend on the digest gem before we know which version to activate [#4989](https://github.com/rubygems/rubygems/pull/4989) - Ensure vendored gems have licenses [#4998](https://github.com/rubygems/rubygems/pull/4998) - Update broken link in Bundler::Fetcher::CertificateFailureError [#4987](https://github.com/rubygems/rubygems/pull/4987) - Give better errors for some permission issues [#4965](https://github.com/rubygems/rubygems/pull/4965) - Print better errors when `bundler/gem_tasks` fail [#4872](https://github.com/rubygems/rubygems/pull/4872) - Fix `bundle install` to reinstall deleted gems [#4974](https://github.com/rubygems/rubygems/pull/4974) - Unify issue template and ISSUES.md document [#4980](https://github.com/rubygems/rubygems/pull/4980) - Bump vendored connection_pool to 2.2.5 [#4738](https://github.com/rubygems/rubygems/pull/4738) ## Bug fixes: - Fix error message pointing to non existing file when using a global gem cache [#4999](https://github.com/rubygems/rubygems/pull/4999) - Fix install crash when lockfile has missing dependencies for the current platform [#4941](https://github.com/rubygems/rubygems/pull/4941) - Make `bundle info` show a proper warning every time it finds a deleted gem [#4971](https://github.com/rubygems/rubygems/pull/4971) # 2.2.29 (October 8, 2021) ## Enhancements: - Require at least Ruby 2.6.0 for gems created with recent rubies [#4920](https://github.com/rubygems/rubygems/pull/4920) - Include glob information in string representation of git sources to make generated lockfiles deterministic [#4947](https://github.com/rubygems/rubygems/pull/4947) - Add missing `rubygem_push` prerequisite [#4930](https://github.com/rubygems/rubygems/pull/4930) # 2.2.28 (September 23, 2021) ## Enhancements: - Use example.com in new gem template, since it will never have a potentially dangerous backing website [#4918](https://github.com/rubygems/rubygems/pull/4918) - Deprecate `--install` flag to `bundle remove` and trigger install by default [#4891](https://github.com/rubygems/rubygems/pull/4891) # 2.2.27 (September 3, 2021) ## Enhancements: - Optimize some requires [#4887](https://github.com/rubygems/rubygems/pull/4887) - Correctly redact credentials when using x-oauth-basic [#4866](https://github.com/rubygems/rubygems/pull/4866) ## Bug fixes: - Add missing key `branches:` to template for GitHub Actions [#4883](https://github.com/rubygems/rubygems/pull/4883) - Fix `bundle plugin install` detection of already installed plugins [#4869](https://github.com/rubygems/rubygems/pull/4869) - Make plugin installation idempotent [#4864](https://github.com/rubygems/rubygems/pull/4864) - Fix `bundle check` showing duplicated gems when multiple platforms are locked [#4854](https://github.com/rubygems/rubygems/pull/4854) - Fix `bundle check` incorrectly considering cached gems [#4853](https://github.com/rubygems/rubygems/pull/4853) # 2.2.26 (August 17, 2021) ## Enhancements: - Remove `RUBYGEMS_GEMDEPS` warning [#4827](https://github.com/rubygems/rubygems/pull/4827) - Better defaults for GitHub Actions template generated by `bundle gem` [#4619](https://github.com/rubygems/rubygems/pull/4619) - Make `bundle exec` keep file descriptors by default [#4812](https://github.com/rubygems/rubygems/pull/4812) - Exclude gemspec file itself from file list of gems generated by `bundle gem` [#4650](https://github.com/rubygems/rubygems/pull/4650) - Fix a couple small typos in deprecation / error messages [#4806](https://github.com/rubygems/rubygems/pull/4806) - Make script generated by `bundle install --standalone` resilient to moving the application to a differently nested folder when `path` sources are used [#4792](https://github.com/rubygems/rubygems/pull/4792) - Exclude CI files and issue templates from file list of gems generated by `bundle gem` [#4033](https://github.com/rubygems/rubygems/pull/4033) ## Bug fixes: - Respect `BUNDLE_USER_HOME` env when choosing config location [#4828](https://github.com/rubygems/rubygems/pull/4828) - Fix `bundle gem` on path with spaces [#4816](https://github.com/rubygems/rubygems/pull/4816) - Fix bundler hitting the network in some cases where not allowed [#4805](https://github.com/rubygems/rubygems/pull/4805) # 2.2.25 (July 30, 2021) ## Deprecations: - Deprecate Gemfile without an explicit global source [#4779](https://github.com/rubygems/rubygems/pull/4779) - Deprecate `bundle cache --path` [#4496](https://github.com/rubygems/rubygems/pull/4496) ## Enhancements: - Give better errors when materialization fails [#4788](https://github.com/rubygems/rubygems/pull/4788) - Lazily load `shellwords` library [#4786](https://github.com/rubygems/rubygems/pull/4786) - Show original error and backtrace directly on `bundle install` errors instead of a more brittle `gem install` hint [#4778](https://github.com/rubygems/rubygems/pull/4778) - Remove LoadError message in regards to requiring a relative file [#4772](https://github.com/rubygems/rubygems/pull/4772) ## Bug fixes: - Fix `BUNDLE_USER_CONFIG` no longer respected as config location [#4797](https://github.com/rubygems/rubygems/pull/4797) - Fix `--standalone` installation of default gems [#4782](https://github.com/rubygems/rubygems/pull/4782) - Fix `--quiet` flag not printing warnings [#4781](https://github.com/rubygems/rubygems/pull/4781) - Fix bundler binstub version selection [#4775](https://github.com/rubygems/rubygems/pull/4775) - Fix interrupt handling in Bundler workers [#4767](https://github.com/rubygems/rubygems/pull/4767) # 2.2.24 (July 15, 2021) ## Bug fixes: - Fix development gem unintentionally removed on an edge case [#4751](https://github.com/rubygems/rubygems/pull/4751) - Fix dangling empty plugin hooks [#4755](https://github.com/rubygems/rubygems/pull/4755) - Fix `bundle plugin install --help` showing `bundle install`'s help [#4756](https://github.com/rubygems/rubygems/pull/4756) - Make sure `bundle check` shows uniq missing gems [#4749](https://github.com/rubygems/rubygems/pull/4749) ## Performance: - Slightly speed up `bundler/setup` [#4750](https://github.com/rubygems/rubygems/pull/4750) # 2.2.23 (July 9, 2021) ## Enhancements: - Fix `bundle install` on truffleruby selecting incorrect variant for `sorbet-static` gem [#4625](https://github.com/rubygems/rubygems/pull/4625) - Spare meaningless warning on read-only bundle invocations [#4724](https://github.com/rubygems/rubygems/pull/4724) ## Bug fixes: - Fix incorrect warning about duplicated gems in the Gemfile [#4732](https://github.com/rubygems/rubygems/pull/4732) - Fix `bundle plugin install foo` crashing [#4734](https://github.com/rubygems/rubygems/pull/4734) # 2.2.22 (July 6, 2021) ## Enhancements: - Never downgrade indirect dependencies when running `bundle update` [#4713](https://github.com/rubygems/rubygems/pull/4713) - Fix `getaddrinfo` errors not treated as fatal on non darwin platforms [#4703](https://github.com/rubygems/rubygems/pull/4703) ## Bug fixes: - Fix `bundle update ` sometimes hanging and `bundle lock --update` not being able to update an insecure lockfile to the new format if it requires downgrades [#4652](https://github.com/rubygems/rubygems/pull/4652) - Fix edge case combination of DSL methods and duplicated sources causing gems to not be found [#4711](https://github.com/rubygems/rubygems/pull/4711) - Fix `bundle doctor` crashing when finding a broken symlink [#4707](https://github.com/rubygems/rubygems/pull/4707) - Fix incorrect re-resolve edge case [#4700](https://github.com/rubygems/rubygems/pull/4700) - Fix some gems being unintentionally locked under multiple lockfile sections [#4701](https://github.com/rubygems/rubygems/pull/4701) - Fix `--conservative` flag unexpectedly updating indirect dependencies. NOTE: As part of this bug fix, some undocumented, unintentional code causing `bundle update --source ` to update conservatively was fixed. Use the documented `bundle update --conservative ` instead [#4692](https://github.com/rubygems/rubygems/pull/4692) # 2.2.21 (June 23, 2021) ## Security fixes: - Auto-update insecure lockfile to split GEM source sections whenever possible [#4647](https://github.com/rubygems/rubygems/pull/4647) ## Enhancements: - Use a more limited number of threads when fetching in parallel from the Compact Index API [#4670](https://github.com/rubygems/rubygems/pull/4670) - Update TODO link in bundle gem template to https [#4671](https://github.com/rubygems/rubygems/pull/4671) ## Bug fixes: - Fix `bundle install --local` hitting the network when `cache_all_platforms` configured [#4677](https://github.com/rubygems/rubygems/pull/4677) # 2.2.20 (June 11, 2021) ## Enhancements: - Don't print bug report template on server side errors [#4663](https://github.com/rubygems/rubygems/pull/4663) - Don't load `resolv` unnecessarily [#4640](https://github.com/rubygems/rubygems/pull/4640) ## Bug fixes: - Fix `bundle outdated` edge case [#4648](https://github.com/rubygems/rubygems/pull/4648) - Fix `bundle check` with scoped rubygems sources [#4639](https://github.com/rubygems/rubygems/pull/4639) ## Performance: - Don't use `extra_rdoc_files` with md files in gemspec to make installing bundler with docs faster [#4628](https://github.com/rubygems/rubygems/pull/4628) # 2.2.19 (May 31, 2021) ## Bug fixes: - Restore support for configuration keys with dashes [#4582](https://github.com/rubygems/rubygems/pull/4582) - Fix some cached gems being unintentionally ignored when using rubygems 3.2.18 [#4623](https://github.com/rubygems/rubygems/pull/4623) # 2.2.18 (May 25, 2021) ## Security fixes: - Fix dependency confusion issues with implicit dependencies [#4609](https://github.com/rubygems/rubygems/pull/4609) ## Enhancements: - Use simpler notation for generated `required_ruby_version` [#4598](https://github.com/rubygems/rubygems/pull/4598) - Undeprecate bundle show [#4586](https://github.com/rubygems/rubygems/pull/4586) - Make sure link to new issue uses the proper template [#4592](https://github.com/rubygems/rubygems/pull/4592) ## Bug fixes: - Fix platform specific gems being removed from the lockfile [#4580](https://github.com/rubygems/rubygems/pull/4580) # 2.2.17 (May 5, 2021) ## Enhancements: - Improve authentication required error message to include an alternative using `ENV` [#4565](https://github.com/rubygems/rubygems/pull/4565) - Discard partial range responses without etag [#4563](https://github.com/rubygems/rubygems/pull/4563) - Fix configuring ENV for a gem server with a name including dashes [#4571](https://github.com/rubygems/rubygems/pull/4571) - Redact credentials from `bundle env` and `bundle config` [#4566](https://github.com/rubygems/rubygems/pull/4566) - Redact all sources in verbose mode [#4564](https://github.com/rubygems/rubygems/pull/4564) - Improve `bundle pristine` error if `BUNDLE_GEMFILE` does not exist [#4536](https://github.com/rubygems/rubygems/pull/4536) - [CurrentRuby] Add 3.0 as a known minor [#4535](https://github.com/rubygems/rubygems/pull/4535) - Prefer File.read instead of IO.read [#4530](https://github.com/rubygems/rubygems/pull/4530) - Add space after open curly bracket in Gemfile and gems.rb template [#4518](https://github.com/rubygems/rubygems/pull/4518) ## Bug fixes: - Make sure specs are fetched from the right source when materializing [#4562](https://github.com/rubygems/rubygems/pull/4562) - Fix `bundle cache` with an up-to-date lockfile and specs not already installed [#4554](https://github.com/rubygems/rubygems/pull/4554) - Ignore `deployment` setting in inline mode [#4523](https://github.com/rubygems/rubygems/pull/4523) ## Performance: - Don't materialize resolutions when not necessary [#4556](https://github.com/rubygems/rubygems/pull/4556) # 2.2.16 (April 8, 2021) ## Enhancements: - Add `--github-username` option and config to `bundle gem` [#3687](https://github.com/rubygems/rubygems/pull/3687) - Bump vendored `tmpdir` library copy [#4506](https://github.com/rubygems/rubygems/pull/4506) - Add `rake build:checksum` task to build checksums for a gem package [#4156](https://github.com/rubygems/rubygems/pull/4156) - Enable bundler-cache for GitHub Actions template [#4498](https://github.com/rubygems/rubygems/pull/4498) - Improve `bundle info` error when gem is on a "disabled" group [#4492](https://github.com/rubygems/rubygems/pull/4492) - Small tweak to yank message [#4494](https://github.com/rubygems/rubygems/pull/4494) - Don't show duplicate entries in `bundle outdated` output [#4474](https://github.com/rubygems/rubygems/pull/4474) - Never downgrade top level gems when running `bundle update` [#4473](https://github.com/rubygems/rubygems/pull/4473) ## Bug fixes: - Fix incorrect logic for filtering metadata matching candidates [#4497](https://github.com/rubygems/rubygems/pull/4497) # 2.2.15 (March 19, 2021) ## Enhancements: - Add a hint about bundler installing executables for path gems [#4461](https://github.com/rubygems/rubygems/pull/4461) - Warn lockfiles with incorrect resolutions [#4459](https://github.com/rubygems/rubygems/pull/4459) - Don't generate duplicate redundant sources in the lockfile [#4456](https://github.com/rubygems/rubygems/pull/4456) ## Bug fixes: - Respect running ruby when resolving platforms [#4449](https://github.com/rubygems/rubygems/pull/4449) # 2.2.14 (March 8, 2021) ## Security fixes: - Lock GEM sources separately and fix locally installed specs confusing bundler [#4381](https://github.com/rubygems/rubygems/pull/4381) ## Bug fixes: - Make `rake` available to other gems' installers right after it's installed [#4428](https://github.com/rubygems/rubygems/pull/4428) - Fix encoding issue on compact index updater [#4362](https://github.com/rubygems/rubygems/pull/4362) # 2.2.13 (March 3, 2021) ## Enhancements: - Respect user configured default branch in README links in new generated gems [#4303](https://github.com/rubygems/rubygems/pull/4303) ## Bug fixes: - Fix gems sometimes being pulled from irrelevant sources [#4418](https://github.com/rubygems/rubygems/pull/4418) # 2.2.12 (March 1, 2021) ## Bug fixes: - Fix sporadic warnings about `nil` gemspec on install/update and make those faster [#4409](https://github.com/rubygems/rubygems/pull/4409) - Fix deployment install with duplicate path gems added to Gemfile [#4410](https://github.com/rubygems/rubygems/pull/4410) # 2.2.11 (February 17, 2021) ## Bug fixes: - Revert disable_multisource changes [#4385](https://github.com/rubygems/rubygems/pull/4385) # 2.2.10 (February 15, 2021) ## Security fixes: - Fix source priority for transitive dependencies and split lockfile rubygems source sections [#3655](https://github.com/rubygems/rubygems/pull/3655) ## Bug fixes: - Fix adding platforms to lockfile sometimes conflicting on ruby requirements [#4371](https://github.com/rubygems/rubygems/pull/4371) - Fix bundler sometimes choosing ruby variants over java ones [#4367](https://github.com/rubygems/rubygems/pull/4367) ## Documentation: - Update man pages to reflect to new default for bundle install jobs [#4188](https://github.com/rubygems/rubygems/pull/4188) # 2.2.9 (February 8, 2021) ## Enhancements: - Stop removing existing platforms when force_ruby_platform is true [#4336](https://github.com/rubygems/rubygems/pull/4336) ## Bug fixes: - Don't install platform specific gems on truffleruby [#4333](https://github.com/rubygems/rubygems/pull/4333) # 2.2.8 (February 2, 2021) ## Enhancements: - Add a CHANGELOG.md file to gems generated by `bundle gem` [#4093](https://github.com/rubygems/rubygems/pull/4093) - Support gemified `set` [#4297](https://github.com/rubygems/rubygems/pull/4297) ## Bug fixes: - Fix standalone Kernel.require visibility [#4337](https://github.com/rubygems/rubygems/pull/4337) ## Performance: - Fix resolver edge cases and speed up bundler [#4277](https://github.com/rubygems/rubygems/pull/4277) # 2.2.7 (January 26, 2021) ## Enhancements: - Improve error messages when dependency on bundler conflicts with running version [#4308](https://github.com/rubygems/rubygems/pull/4308) - Avoid showing platforms with requirements in error messages [#4310](https://github.com/rubygems/rubygems/pull/4310) - Introduce disable_local_revision_check config [#4237](https://github.com/rubygems/rubygems/pull/4237) - Reverse rubygems require mixin with bundler standalone [#4299](https://github.com/rubygems/rubygems/pull/4299) ## Bug fixes: - Fix releasing from a not yet pushed branch [#4309](https://github.com/rubygems/rubygems/pull/4309) - Install cache only once if it already exists [#4304](https://github.com/rubygems/rubygems/pull/4304) - Fix `force_ruby_platform` no longer being respected [#4302](https://github.com/rubygems/rubygems/pull/4302) ## Performance: - Fix resolver dependency comparison [#4289](https://github.com/rubygems/rubygems/pull/4289) # 2.2.6 (January 18, 2021) ## Enhancements: - Improve resolver debugging [#4288](https://github.com/rubygems/rubygems/pull/4288) ## Bug fixes: - Fix dependency locking for path source [#4293](https://github.com/rubygems/rubygems/pull/4293) ## Performance: - Speed up complex dependency resolves by creating DepProxy factory and cache [#4216](https://github.com/rubygems/rubygems/pull/4216) # 2.2.5 (January 11, 2021) ## Enhancements: - Improve rubocop setup in the new gem template [#4220](https://github.com/rubygems/rubygems/pull/4220) - Support repositories with default branch not named master [#4224](https://github.com/rubygems/rubygems/pull/4224) ## Bug fixes: - Let Net::HTTP decompress the index instead of doing it manually [#4081](https://github.com/rubygems/rubygems/pull/4081) - Workaround for another jruby crash when autoloading a constant [#4252](https://github.com/rubygems/rubygems/pull/4252) - Fix another performance regression in the resolver [#4243](https://github.com/rubygems/rubygems/pull/4243) - Restore support for old git versions [#4233](https://github.com/rubygems/rubygems/pull/4233) - Give a proper error if cache path does not have write access [#4215](https://github.com/rubygems/rubygems/pull/4215) - Fix running `rake release` from an ambiguous ref [#4219](https://github.com/rubygems/rubygems/pull/4219) # 2.2.4 (December 31, 2020) ## Bug fixes: - Fix bundle man pages display on truffleruby [#4209](https://github.com/rubygems/rubygems/pull/4209) - Fix Windows + JRuby no longer being able to install git sources [#4196](https://github.com/rubygems/rubygems/pull/4196) # 2.2.3 (December 22, 2020) ## Bug fixes: - Restore full compatibility with previous lockfiles [#4179](https://github.com/rubygems/rubygems/pull/4179) - Add all matching variants with the same platform specificity to the lockfile [#4180](https://github.com/rubygems/rubygems/pull/4180) - Fix bundler installing gems for a different platform when running in frozen mode and current platform not in the lockfile [#4172](https://github.com/rubygems/rubygems/pull/4172) - Fix crash when `bundle exec`'ing to bundler [#4175](https://github.com/rubygems/rubygems/pull/4175) # 2.2.2 (December 17, 2020) ## Bug fixes: - Fix resolver crash when a candidate has 0 matching platforms [#4163](https://github.com/rubygems/rubygems/pull/4163) - Restore change to copy global with/without config locally upon `bundle install` [#4154](https://github.com/rubygems/rubygems/pull/4154) # 2.2.1 (December 14, 2020) ## Bug fixes: - Ad-hoc fix for platform regression [#4127](https://github.com/rubygems/rubygems/pull/4127) - Workaround JRuby + Windows issue with net-http-persistent vendored code [#4138](https://github.com/rubygems/rubygems/pull/4138) - Reset also root when in a nested invocation [#4140](https://github.com/rubygems/rubygems/pull/4140) - Restore 2.1.4 resolution times [#4134](https://github.com/rubygems/rubygems/pull/4134) - Fix `bundle outdated --strict` crash [#4133](https://github.com/rubygems/rubygems/pull/4133) - Autoload `Bundler::RemoteSpecification` to workaround crash on jruby [#4114](https://github.com/rubygems/rubygems/pull/4114) # 2.2.0 (December 7, 2020) ## Enhancements: - New gem template: prefer `require_relative` to `require` [#4066](https://github.com/rubygems/rubygems/pull/4066) - Always show underlying error when fetching specs fails [#4061](https://github.com/rubygems/rubygems/pull/4061) - Add `--all-platforms` flag to `bundle binstubs` to generate binstubs for all platforms [#3886](https://github.com/rubygems/rubygems/pull/3886) - Improve gem not found in source error messages [#4019](https://github.com/rubygems/rubygems/pull/4019) - Revert resolving all Gemfile platforms automatically [#4052](https://github.com/rubygems/rubygems/pull/4052) - Remove extra empty line from README template [#4041](https://github.com/rubygems/rubygems/pull/4041) - Lazily load `erb` [#4011](https://github.com/rubygems/rubygems/pull/4011) ## Bug fixes: - Fix `Bundler::Plugin::API::Source#to_s` having empty source type [#4084](https://github.com/rubygems/rubygems/pull/4084) - Raise consistent errors with or without `bundle exec` [#4063](https://github.com/rubygems/rubygems/pull/4063) - Fix edge case resulting in a crash when using `zeitwerk` inside a nested `bundle exec` invocation [#4062](https://github.com/rubygems/rubygems/pull/4062) - Enable `specific_platform` by default [#4015](https://github.com/rubygems/rubygems/pull/4015) - Prevent remove command from deleting gemfile lines that are comments [#4045](https://github.com/rubygems/rubygems/pull/4045) - Fix issue with `cache_all_platforms` and `specific_platform` configured [#4042](https://github.com/rubygems/rubygems/pull/4042) - Fix incorrect error message on Windows [#4039](https://github.com/rubygems/rubygems/pull/4039) - Make printed drive letters consistent on Windows [#4038](https://github.com/rubygems/rubygems/pull/4038) - Load rubygems plugins from RUBYLIB during `bundle install` and `bundle update` [#3534](https://github.com/rubygems/rubygems/pull/3534) - Fix `specific_platform` and `cache_all` with `bundle cache --all-platforms` [#4022](https://github.com/rubygems/rubygems/pull/4022) - Bring back the possibility to install a plugin from path [#4020](https://github.com/rubygems/rubygems/pull/4020) - Move ronn pages to lib [#3997](https://github.com/rubygems/rubygems/pull/3997) - Fix fileutils double load when using `bundler/inline` [#3991](https://github.com/rubygems/rubygems/pull/3991) - Accept responses with no etag header [#3865](https://github.com/rubygems/rubygems/pull/3865) ## Documentation: - Fix typo of `bundle-install.1` (v2.1) [#4079](https://github.com/rubygems/rubygems/pull/4079) - Add commented out example and more information link to generated gemspec [#4034](https://github.com/rubygems/rubygems/pull/4034) # 2.2.0.rc.2 (October 6, 2020) ## Features: - Add `bundle fund` command [#3390](https://github.com/rubygems/rubygems/pull/3390) ## Enhancements: - Fix ls-files matching regexp [#3845](https://github.com/rubygems/rubygems/pull/3845) - Remove redundant `bundler/setup` require from `spec_helper.rb` generated by `bundle gem` [#3791](https://github.com/rubygems/rubygems/pull/3791) ## Bug fixes: - Deduplicate spec groups [#3965](https://github.com/rubygems/rubygems/pull/3965) - Fix some cases of running `bundler` on a path including brackets [#3854](https://github.com/rubygems/rubygems/pull/3854) - Don't warn when deinit'ing submodules [#3969](https://github.com/rubygems/rubygems/pull/3969) - Make `bundle clean --force` leave default gem executables untouched [#3907](https://github.com/rubygems/rubygems/pull/3907) - Prioritize `path.system` over `path` when it makes sense [#3933](https://github.com/rubygems/rubygems/pull/3933) - Sort requirements in Gem::Requirement to succeed comparison with different order [#3889](https://github.com/rubygems/rubygems/pull/3889) - Print bug report template to standard error [#3924](https://github.com/rubygems/rubygems/pull/3924) - Restore `bundle cache --all` in all cases [#3914](https://github.com/rubygems/rubygems/pull/3914) - Move shebang to the top of `bin/console` template [#3927](https://github.com/rubygems/rubygems/pull/3927) - Fix platform issues when running under a frozen bundle [#3909](https://github.com/rubygems/rubygems/pull/3909) - Fix deprecation messages for `bundle install` flags, the config should be --local as before [#3917](https://github.com/rubygems/rubygems/pull/3917) - Look for absolute path when removing bundler/setup from RUBYOPT in Bundler.unbundled_env method [#3877](https://github.com/rubygems/rubygems/pull/3877) - Fix incorrect re-resolution when path gem excluded and not available [#3902](https://github.com/rubygems/rubygems/pull/3902) - Fix error when building error message in `bundler/inline` [#3901](https://github.com/rubygems/rubygems/pull/3901) - Fix regression related to locked ruby [#3900](https://github.com/rubygems/rubygems/pull/3900) - Expand load paths in standalone setup.rb file [#3522](https://github.com/rubygems/rubygems/pull/3522) - Fix broken exception recovery code when installing plugins [#3487](https://github.com/rubygems/rubygems/pull/3487) - Fix incorrect build info on development versions of bundler, and on bundler versions installed as a default gem [#3778](https://github.com/rubygems/rubygems/pull/3778) - Avoid autoloading `openssl` to try help with jruby load service issues [#3809](https://github.com/rubygems/rubygems/pull/3809) - Fix `rake release` pushing all local tags instead of only the release tag [#3785](https://github.com/rubygems/rubygems/pull/3785) - Fix `rake release` aborting when credentials file is missing, even if properly configured through XDG [#3783](https://github.com/rubygems/rubygems/pull/3783) ## Deprecations: - Deprecate `bundle cache --all` flag [#3932](https://github.com/rubygems/rubygems/pull/3932) ## Documentation: - Correct grammar in Gemfile docs [#3990](https://github.com/rubygems/rubygems/pull/3990) - Fix typo in `bundle pristine` warning message [#3959](https://github.com/rubygems/rubygems/pull/3959) - Improve human readable fallback version of CLI help messages [#3921](https://github.com/rubygems/rubygems/pull/3921) - Note CLI flag deprecations in documentation [#3915](https://github.com/rubygems/rubygems/pull/3915) - Update man page and deprecation warning for binstubs --all [#3872](https://github.com/rubygems/rubygems/pull/3872) # 2.2.0.rc.1 (July 2, 2020) ## Features: - Windows support. There's still gotchas and unimplemented features, but a Windows CI is now enforced. - Full multiplatform support. Bundler should now seamlessly handle multiplatform `Gemfile` or `gems.rb` files. ## Enhancements: - `bundle info` now includes gem metadata [#7376](https://github.com/rubygems/bundler/pull/7376) - `bundle list --without-group` and `bundle list --only-group` now support space separated list of groups in addition to single groups [#7404](https://github.com/rubygems/bundler/pull/7404) - `bundle gem` now supports a `--rubocop` flag that adds the `rubocop` gem to the new gem layout [#6455](https://github.com/rubygems/bundler/pull/6455) - `bundle gem` now supports `--test-unit` in addition to `rspec` and `minitest` as a value for its `--test` option [#5521](https://github.com/rubygems/bundler/pull/5521) - `bundle install` now uses the available number of processors automatically for concurrent gem install, except for Windows where it still uses a single thread by default [#3393](https://github.com/rubygems/rubygems/pull/3393) and [#3718](https://github.com/rubygems/rubygems/pull/3718) - Report Gitlab CI within bundler user-agent string [#3432](https://github.com/rubygems/rubygems/pull/3432) - Add `bundle plugin uninstall` [#3482](https://github.com/rubygems/rubygems/pull/3482) - `bundle gem` now supports a `--ci` flag and a `gem.ci` configuration that adds CI config files for the main CI providers to the generated gem skeleton [#3667](https://github.com/rubygems/rubygems/pull/3667) - Allow setting a tag prefix to be used by release tasks [#3766](https://github.com/rubygems/rubygems/pull/3766) - `bundle outdated` now prints output in columns for better readability [#4474](https://github.com/rubygems/bundler/pull/4474) - bundler's `release` rake task now prints a better message when not being logged in and trying to push a gem [#7513](https://github.com/rubygems/bundler/pull/7513) - `BUNDLE_APP_CONFIG` environment variable is now documented [#7563](https://github.com/rubygems/bundler/pull/7563) - Original exception is now reported when bundler fails to load OpenSSL [#7527](https://github.com/rubygems/bundler/pull/7527) - RVM specific instructions for recompiling ruby is no longer recommended when bundler fails to load OpenSSL [#7597](https://github.com/rubygems/bundler/pull/7597) - Improve resolver debugging out from resolver [#7589](https://github.com/rubygems/bundler/pull/7589) and [#7590](https://github.com/rubygems/bundler/pull/7590) - Clarify `bundle config --local` docs [#3408](https://github.com/rubygems/rubygems/pull/3408) - Make sure to not "leak" to a different bundler install under any circumstances [#3595](https://github.com/rubygems/rubygems/pull/3595) - Make sure users messing with `$;` doesn't affect us [#3602](https://github.com/rubygems/rubygems/pull/3602) - Remove explicit psych activation which could potentially lead to packaging-specific issues [#3638](https://github.com/rubygems/rubygems/pull/3638) - Deprecate `--no-deployment` flag and never recommend it [#3657](https://github.com/rubygems/rubygems/pull/3657) - `bundle gem` test framework defaults to the `gem.test` setting and asks for a value without overwriting configuration if `-t` without a value is passed explicitly [#3544](https://github.com/rubygems/rubygems/pull/3544) - `bundle gem` now ships with a default `.rubocop.yml` file and an offense free initial gem skeleton [#3731](https://github.com/rubygems/rubygems/pull/3731), [#3740](https://github.com/rubygems/rubygems/pull/3740), [#3765](https://github.com/rubygems/rubygems/pull/3765) - Remove some requires that might workaround some autoloading issues on jruby [#3771](https://github.com/rubygems/rubygems/pull/3771) - Unswallow an error that should make some random crashes on jruby easier to troubleshoot [#3774](https://github.com/rubygems/rubygems/pull/3774) ## Bug fixes: - Fix `bundle pristine` removing gems with local overrides. Be conservative by printing a warning and skipping the removal [#7423](https://github.com/rubygems/bundler/pull/7423) - Fix multiplaform resolution edge cases [#7522](https://github.com/rubygems/bundler/pull/7522) and [#7578](https://github.com/rubygems/bundler/pull/7578) - Fix ruby version conflicts not displaying the current ruby version [7559](https://github.com/rubygems/bundler/pull/7559) - Fix `Gemfile` or `gems.rb` files containing `:path` gems using relative paths not working when the app is packaged as a `jar` with `warbler` [#7614](https://github.com/rubygems/bundler/pull/7614) - Fix config location edge case where if `BUNDLE_APP_CONFIG` is set to an absolute path like in official ruby docker images, and there's no Gemfile up in the directory hierarchy, bundler would end up using the default config location instead of the customized one [#7622](https://github.com/rubygems/bundler/pull/7622) - Fix error message about missing permissions recommending a deprecated command [#7633](https://github.com/rubygems/bundler/pull/7633) - Fix `init_gems_rb` setting being ignored by `bundle gem` [#7629](https://github.com/rubygems/bundler/pull/7629) - Fix "unresolvable warning" being printed on `bundle install` of multipliplatform `Gemfile` or `gems.rb` files without lockfiles, multiplatform is now managed automatically [#7580](https://github.com/rubygems/bundler/pull/7580) - Fix setting the number of `--jobs` to be one unit less than specified to the CLI [#3393](https://github.com/rubygems/rubygems/pull/3393) - Fix extension building when the same git source specifies several gems with extensions [#3475](https://github.com/rubygems/rubygems/pull/3475) - Fix uninitialized instance variable warning under ruby-head (2.8-dev) [#3477](https://github.com/rubygems/rubygems/pull/3477) - Fix double chdir warning while installing a git gem with extensions [#3479](https://github.com/rubygems/rubygems/pull/3479) - Fix some deprecations not showing up when CLI flags passed as `--flag=value` [#3561](https://github.com/rubygems/rubygems/pull/3561) - Fix man pages display when bundler installed as a default gem [#3562](https://github.com/rubygems/rubygems/pull/3562) - Fix bundler gem tasks not handling relative paths [#3586](https://github.com/rubygems/rubygems/pull/3586) - Fix deprecation warnings when options the dashed names are used, such as `--no-prune` [#3623](https://github.com/rubygems/rubygems/pull/3623) - Fix crash related to bundler gem activation under old rubygems version (2.6.1 or older) [#3626](https://github.com/rubygems/rubygems/pull/3626) - Avoid stack overflow inside `StubSpecification` on some edge cases [#3635](https://github.com/rubygems/rubygems/pull/3635) - Fix `bundle remove` with multiline gem specifications [#3400](https://github.com/rubygems/rubygems/pull/3400) - Fix `bundle info` not informing about deleted gems as opposed to old `bundle show` [#3509](https://github.com/rubygems/rubygems/pull/3509) - The `--no-deployment` flag to `bundle install` was deprecated just like the other flags that rely on their value being remembered [#3657](https://github.com/rubygems/rubygems/pull/3657) - Fix `bundle install` unintentionally copying `with` and `without` global config to local configuration [#3666](https://github.com/rubygems/rubygems/pull/3666). This PR also address the `BUNDLE_WITH` environment variable unintentionally being persisted to configuration in a similar way ([#3708](https://github.com/rubygems/rubygems/issues/3708)) - Fix race condition in `bundle install` that could "empty" exceptions to be raised [#3669](https://github.com/rubygems/rubygems/pull/3669) - Fix `--no-cache` to `bundle install` being unintentionally deprecated [#3688](https://github.com/rubygems/rubygems/pull/3688) - Avoid calling `LoadError#message` to fix performance regression in future ruby 3.0 [#3762](https://github.com/rubygems/rubygems/pull/3762) # 2.1.4 (January 5, 2020) ## Bug fixes: - Fix `net-http-pipeline` no longer being allowed in Gemfiles if already installed in the system due to our vendored version of `net-http-persistent` optionally requiring it [#7529](https://github.com/bundler/bundler/pull/7529) - Fix inline gems no longer being requirable if no Gemfile is present in the directory hierarchy [#7537](https://github.com/bundler/bundler/pull/7537) # 2.1.3 (January 2, 2020) ## Bug fixes: - Fix `rake build` when path has spaces on it [#7514](https://github.com/bundler/bundler/pull/7514) - Fix `rake release` git push tasks when the running shell has `git` as an alias of another command (like `hub`) [#7510](https://github.com/bundler/bundler/pull/7510) - Fix some circular require warnings [#7520](https://github.com/bundler/bundler/pull/7520) - Fix `bundle config set deployment true` recommended alternative to `bundle config --deployment` to behave in the same way as the `--deployment` flag [#7519](https://github.com/bundler/bundler/pull/7519) # 2.1.2 (December 20, 2019) ## Bug fixes: - Restore an explicit `require "rubygems"` on top `rubygems_integration.rb` to avoid some missing constant errors under some convoluted setups [#7505](https://github.com/rubygems/bundler/pull/7505) # 2.1.1 (December 17, 2019) ## Bug fixes: - Fix some cases of shelling out to `rubygems` still being silent [#7493](https://github.com/rubygems/bundler/pull/7493) - Restore compatibility with `rubygems-bundler` so that binstubs work under `RVM` [#7498](https://github.com/rubygems/bundler/pull/7498) # 2.1.0 (December 15, 2019) ## Features: - Add support for new default gems. In particular, * `open3` [#7455](https://github.com/rubygems/bundler/pull/7455) * `cgi`: [#7456](https://github.com/rubygems/bundler/pull/7456) * `uri` [#7460](https://github.com/rubygems/bundler/pull/7460) plus other PRs removing or lazily loading usages of these gems from other places to not interfere with user's choice, such as [#7471](https://github.com/rubygems/bundler/pull/7471) or [#7473](https://github.com/bundler/bundler/pull/7473) ## Bug fixes: - Fix `bundle exec rake install` failing [#7474](https://github.com/rubygems/bundler/pull/7474) - Fix `bundle exec`'ing to rubygems being silent [#7442](https://github.com/rubygems/bundler/pull/7442) - Restore previous `BUNDLE_GEMFILE` in `bundler/inline` [#7418](https://github.com/rubygems/bundler/pull/7418) - Fix error when using `gem` DSL's `:glob` option for selecting gemspecs from a specific source [#7419](https://github.com/rubygems/bundler/pull/7419) ## Enhancements: - `bundle config` no longer warns when using "old interface" (might be deprecated again in the future) [#7475](https://github.com/rubygems/bundler/pull/7475) - `bundle update` no longer warns when used without arguments (might be deprecated again in the future) [#7475](https://github.com/rubygems/bundler/pull/7475) # 2.1.0.pre.3 (November 12, 2019) ## Features: - Add caller information to some deprecation messages to make them easier to fix [#7361](https://github.com/rubygems/bundler/pull/7361) - Reconcile `bundle cache` vs `bundle package` everywhere. Now in docs, CLI help and everywhere else `bundle cache` is the preferred version and `bundle package` remains as an alias [#7389](https://github.com/rubygems/bundler/pull/7389) - Display some basic `bundler` documentation together with ruby's RDoc based documentation [#7394](https://github.com/rubygems/bundler/pull/7394) ## Bug fixes: - Fix typos deprecation message and upgrading docs [#7374](https://github.com/rubygems/bundler/pull/7374) - Deprecation warnings about `taint` usage on ruby 2.7 [#7385](https://github.com/rubygems/bundler/pull/7385) - Fix `--help` flag not correctly delegating to `man` when used with command aliases [#7388](https://github.com/rubygems/bundler/pull/7388) - `bundle add` should cache newly added gems if an application cache exists [#7393](https://github.com/rubygems/bundler/pull/7393) - Stop using an insecure folder as a "fallback home" when user home is not defined [#7416](https://github.com/rubygems/bundler/pull/7416) - Fix `bundler/inline` warning about `Bundler.root` redefinition [#7417](https://github.com/rubygems/bundler/pull/7417) # 2.1.0.pre.2 (September 15, 2019) ## Bug fixes: - Fix `bundle clean` trying to delete non-existent directory ([#7340](https://github.com/rubygems/bundler/pull/7340)) - Fix warnings about keyword argument separation on ruby 2.7 ([#7337](https://github.com/rubygems/bundler/pull/7337)) # 2.1.0.pre.1 (August 28, 2019) One of the biggest changes in bundler 2.1.0 is that deprecations for upcoming breaking changes in bundler 3 will be turned on by default. We do this to grab feedback and communicate early to our users the kind of changes we're intending to ship with bundler 3. See [#6965](https://github.com/rubygems/bundler/pull/6965). Another important improvement is a better coexistence between bundler installations and the default copy of bundler that comes with ruby installed as a default gem. Since bundler is shipped as a default gem with ruby, a number of users have been affected by issues where bundler ends up failing due to version mismatches, because at some point of the execution, bundler switches to run the default copy instead of the expected version. A number of PRs have been focused on minimizing (hopefully eliminating) this, such as [#7100](https://github.com/rubygems/bundler/pull/7100), [#7137](https://github.com/rubygems/bundler/pull/7137), [#6996](https://github.com/rubygems/bundler/pull/6996), [#7056](https://github.com/rubygems/bundler/pull/7056), [#7062](https://github.com/rubygems/bundler/pull/7062), [#7193](https://github.com/rubygems/bundler/pull/7193), [#7216](https://github.com/rubygems/bundler/pull/7216), [#7274](https://github.com/rubygems/bundler/pull/7274) ## Deprecations: * See the [the upgrading document](UPGRADING.md) for a detailed explanation of the deprecations that are getting enabled in bundler 2.1, and the future breaking changes in bundler 3. ## Features: - Reimplement `config` command using subcommands ([#5981](https://github.com/rubygems/bundler/pull/5981)) - Add `bundle plugin list` command ([#6120](https://github.com/rubygems/bundler/pull/6120)) - Introduce a `bundle lock --gemfile` flag ([#6748](https://github.com/rubygems/bundler/pull/6748)) - Add local git repository source option (`--local_git`) to plugin installation ([#6749](https://github.com/rubygems/bundler/pull/6749)) - Add `quiet` flag to inline bundler ([#6828](https://github.com/rubygems/bundler/pull/6828)) - Introduce a `prefer_patch` configuration that makes `bundle update` behave like `bundle update --patch` ([#6931](https://github.com/rubygems/bundler/pull/6931)) - Introduce `Bundler.original_system` and `Bundler.original_exec` to shell out or exec to external programs using the original environment before bundler was loaded ([#7052](https://github.com/rubygems/bundler/pull/7052)) - Add feature parity to `bundle info GEM` with respect to the old deprecated command `bundle show GEM` [#7026](https://github.com/rubygems/bundler/pull/7026) - Introduce `bundle list` to list groups of gems in your Gemfile. This command was actually documented, but was working as an alias to `bundle show` so this could also be considered a bug fix :) [#7072](https://github.com/rubygems/bundler/pull/7072) - Introduce `bundle outdated --filter-strict` as an alias to `bundle outdated --strict` [#6030](https://github.com/rubygems/bundler/pull/6030) - Add `:git` and `:branch` options to `bundle add` ([#7127](https://github.com/rubygems/bundler/pull/7127)) - Add `:ruby_26` as a valid value to the `:platform(s)` dsl ([#7155](https://github.com/rubygems/bundler/pull/7155)) - Let the `bundle cache` command include all features currently provided by `bundle package` ([#7249](https://github.com/rubygems/bundler/pull/7249)) - Several improvements on new gem templates ([#6924](https://github.com/rubygems/bundler/pull/6924), [#6968](https://github.com/bundler/bundler/pull/6968), [#7209](https://github.com/bundler/bundler/pull/7209), [#7222](https://github.com/bundler/bundler/pull/7222), [#7238](https://github.com/bundler/bundler/pull/7238)) - Add `--[no-]git` option to `bundle gem` to generate non source control gems. Useful for monorepos, for example ([#7263](https://github.com/rubygems/bundler/pull/7263)) ## Bug fixes: - Raise when the same gem is available in multiple sources, and show a suggestion to solve it ([#5985](https://github.com/rubygems/bundler/pull/5985)) - Validate that bundler has permissions to write to the tmp directory, and raise with a meaningful error otherwise ([#5954](https://github.com/rubygems/bundler/pull/5954)) - Remove downloaded `.gem` file from the cache if it's corrupted ([#6010](https://github.com/rubygems/bundler/pull/6010)) - Fix generated README in new gems to explicitly suggest running `bundle install`, so that the outcome is independent from the major version of bundler being run ([#6068](https://github.com/rubygems/bundler/pull/6068)) - Fix `bundle outdated --group NAME` when the group is listed second in the Gemfile ([#6116](https://github.com/rubygems/bundler/pull/6116)) - Improve conflict resolution messages by not calling "ruby" a gem when conflict happens in the `required_ruby_version`, and by filtering out requirements that didn't contribute to the conflict ([#6647](https://github.com/rubygems/bundler/pull/6647)) - Avoid fetching and rebuilding git gems whenever any gem is changed in the Gemfile ([#6711](https://github.com/rubygems/bundler/pull/6711)) - Include the exact bundler version in the lock file in the suggested command when bundler warns about version mismatches of itself [#6971](https://github.com/rubygems/bundler/pull/6971) - Fix plugins being installed every time a command is run #[#6978](https://github.com/rubygems/bundler/pull/6978) - Fallback to sequentially fetching specs on 429s [#6728](https://github.com/rubygems/bundler/pull/6728) - Make `bundle clean` also clean native extensions for gems with a git source [#7058](https://github.com/rubygems/bundler/pull/7058) - Fix `bundle info bundler` to show the correct path to the bundler gem [#7026](https://github.com/rubygems/bundler/pull/7026) - Fix `bundle config build.` not sending multiple parameters to `extconf.rb` correctly [#7023](https://github.com/rubygems/bundler/pull/7023) - Fix bad error message on Gemfile errors under ruby 2.7 (still unreleased, but it's a bugfix for beta testers after all) [#7038](https://github.com/rubygems/bundler/pull/7038) - Warn about situations where multiple gems provide the same executable ([#7075](https://github.com/rubygems/bundler/pull/7075)) - Ignore `frozen` setting in inline mode ([#7125](https://github.com/rubygems/bundler/pull/7125)) - Fix incorrect "bundler attempted to update GEM but version stayed the same" message when updating git sourced gems ([#6325](https://github.com/rubygems/bundler/pull/6325)) - Don't check for existence of a writable home directory if `BUNDLE_USER_HOME` is set ([#6885](https://github.com/rubygems/bundler/pull/6885)) - Fix error message when server would respond to a bad username/password request with a 401 ([#6928](https://github.com/rubygems/bundler/pull/6928)) - Fix `bundle outdated` pluralization when multiple groups are requested ([#7063](https://github.com/rubygems/bundler/pull/7063)) - Fix `bundle install` not updating conservatively when gemspec is changed ([#7143](https://github.com/rubygems/bundler/pull/7143)) - Fix `bundle exec` not respecting custom process titles inside scripts ([#7140](https://github.com/rubygems/bundler/pull/7140)) - Fix `bundle update` message about exclude groups saying "installed" instead of "updated" ([#7150](https://github.com/rubygems/bundler/pull/7150)) - Fix `bundle licenses` not showing correct information about bundler itself ([#7147](https://github.com/rubygems/bundler/pull/7147)) - Fix installation path not including ruby scope when `BUNDLE_PATH` was set ([#7163](https://github.com/rubygems/bundler/pull/7163)) - Fix `bundle clean` incorrectly removing git dependencies present in the Gemfile when rubygems 3.0+ was used and path involved a symlink ([#7211](https://github.com/rubygems/bundler/pull/7211)) - Fix platform specific gems always being re-resolved when bundler was not running under that platform ([#7212](https://github.com/rubygems/bundler/pull/7212)) - Fix `bundle package --all-platforms` causing `bundle install` to ignore `--with` and `--without` ([#6113](https://github.com/rubygems/bundler/pull/6113)) - Fix `MissingRevision` git errors to include the specific `git` command that failed under the hood ([#7225](https://github.com/rubygems/bundler/pull/7225)) - Fix using gemspec & `force_ruby_platform` on Windows ([#6809](https://github.com/rubygems/bundler/pull/6809)) - Make bundler's binstub checks on bundler version consistent with rubygems `BundlerVersionFinder` ([#7259](https://github.com/rubygems/bundler/pull/7259)) - Fix `bundle install` and `bundle update` generating different lockfiles when `path:` gems with relative paths starting with "./" were used ([#7264](https://github.com/rubygems/bundler/pull/7264)) - Give a proper error when user tries to `bundle open` a default gem ([#7288](https://github.com/rubygems/bundler/pull/7288)) - Fix `bundle doctor` command ([#7309](https://github.com/rubygems/bundler/pull/7309)) - Fix bundler giving an unclear recommendation when duplicated gems are found in the Gemfile ([#7302](https://github.com/rubygems/bundler/pull/7302)) ## Documentation: - Fix typo on a file extension in `bundle.ronn` [#7146](https://github.com/rubygems/bundler/pull/7146) - Fix incorrect default value for `cache_path` configuration ([#7229](https://github.com/rubygems/bundler/pull/7229)) - Binstubs documentation has been improved ([#5889](https://github.com/rubygems/bundler/pull/5889)) - Fix incorrect sections when explaining `:git`, `:branch`, and `:ref` options ([#7265](https://github.com/rubygems/bundler/pull/7265)) - Fix mentions to remembered options in docs to explain the current state ([#7242](https://github.com/rubygems/bundler/pull/7242)) Internally, there's also been a bunch of improvements in our development environment, test suite, policies, contributing docs, and a bunch of cleanups of old compatibility code. # 2.0.2 (June 13, 2019) ## Enhancements: - Fixes for Bundler integration with ruby-src ([#6941](https://github.com/rubygems/bundler/pull/6941), [#6973](https://github.com/bundler/bundler/pull/6973), [#6977](https://github.com/bundler/bundler/pull/6977), [#6315](https://github.com/bundler/bundler/pull/6315), [#7061](https://github.com/bundler/bundler/pull/7061)) - Use `__dir__` instead of `__FILE__` when generating a gem with `bundle gem` ([#6503](https://github.com/rubygems/bundler/pull/6503)) - Use `https` on externals links in the Bundler gemspec ([#6721](https://github.com/rubygems/bundler/pull/6721)) - Removed duplicate gem names from the suggested `did you mean` list for gem typos ([#6739](https://github.com/rubygems/bundler/pull/6739)) - Removed Ruby 1.x compatibility code ([#6764](https://github.com/rubygems/bundler/pull/6764), [#6806](https://github.com/bundler/bundler/pull/6806)) - Fixed an issue where `bundle remove` would crash with certain Gemfiles ([#6768](https://github.com/rubygems/bundler/pull/6769)) - Fixed indentation in the Bundler executable template ([#6773](https://github.com/rubygems/bundler/pull/6773)) - Fixed an issue where plugins could register for the same Bundler hook multiple times ([#6775](https://github.com/rubygems/bundler/pull/6775)) - Changed the "multiple sources" message in `bundle install` to be a warning instead of an error ([#6790](https://github.com/rubygems/bundler/pull/6790)) - Fixed a bug where path gems would break when using `only_update_to_newer_versions` ([#6774](https://github.com/rubygems/bundler/pull/6774)) - Fixed a bug where installing plugins with the `--deployment` setting would fail ([#6805](https://github.com/rubygems/bundler/pull/6805)) - Fixed an issue where `bundle update` couldn't update & install a gem when `no_install` was set (a `bundle package` config) ([#7078](https://github.com/rubygems/bundler/pull/7078)) - Fixed an issue where users could not run `bundle exec` on default gems ([#6963](https://github.com/rubygems/bundler/pull/6963)) - Updated vendor libraries to their latest version ([#7076](https://github.com/rubygems/bundler/pull/7067), [#7068](https://github.com/bundler/bundler/pull/7068)) - Fixed an issue where the `github` source was not using `https` by default that we mentioned in the 2.0 release ([#7182](https://github.com/rubygems/bundler/pull/7182)) - Fixed an issue where `rake release` was not outputting the message to users asking for a 2fa token ([#7199](https://github.com/rubygems/bundler/pull/7199)) ## Documentation: - Fix incorrect documented `BUNDLE_PATH_RELATIVE_TO_CWD` env var ([#6751](https://github.com/rubygems/bundler/pull/6751)) - Update URLs in Bundler's documentation to use `https` ([#6935](https://github.com/rubygems/bundler/pull/6935)) # 2.0.1 (January 4, 2019) ## Bug fixes: - Relaxed RubyGems requirement to `>= 2.5.0` ([#6867](https://github.com/rubygems/bundler/pull/6867)) # 2.0.0 (January 3, 2019) No changes. # 2.0.0.pre.3 (December 30, 2018) ## Breaking changes: - Bundler 2 now requires RubyGems 3.0.0 at minimum ## Bug fixes: - Ruby 2.6 compatibility fixes (@segiddins) ## Enhancements: - Import changes from Bundler 1.17.3 release Note: To upgrade your Gemfile to Bundler 2 you will need to run `bundle update --bundler` # 2.0.0.pre.2 (November 27, 2018) ## Breaking changes: - `:github` source in the Gemfile now defaults to using HTTPS Changes - Add compatibility for Bundler merge into ruby-src Note: To upgrade your Gemfile to Bundler 2 you will need to run `bundle update --bundler` # 2.0.0.pre.1 (November 9, 2018) ## Breaking changes: - Dropped support for versions of Ruby under 2.3 - Dropped support for version of RubyGems under 2.5 - Moved error messages from STDOUT to STDERR Note: To upgrade your Gemfile to Bundler 2 you will need to run `bundle update --bundler` # 1.17.3 (December 27, 2018) ## Bug fixes: - Fix a Bundler error when installing gems on old versions of RubyGems ([#6839](https://github.com/rubygems/bundler/issues/6839), @colby-swandale) - Fix a rare issue where Bundler was removing itself after a `bundle clean` ([#6829](https://github.com/rubygems/bundler/issues/6829), @colby-swandale) ## Documentation: - Add entry for the `bundle remove` command to the main Bundler manual page # 1.17.2 (December 11, 2018) - Add compatibility for bundler merge with Ruby 2.6 # 1.17.1 (October 25, 2018) - Convert `Pathname`s to `String`s before sorting them, fixing #6760 and #6758 ([#6761](https://github.com/rubygems/bundler/pull/6761), @alexggordon) # 1.17.0 (October 25, 2018) No changes. # 1.17.0.pre.2 (October 13, 2018) ## Features: - Configure Bundler home, cache, config and plugin directories with `BUNDLE_USER_HOME`, `BUNDLE_USER_CACHE`, `BUNDLE_USER_CONFIG` and `BUNDLE_USER_PLUGIN` env vars ([#4333](https://github.com/rubygems/bundler/issues/4333), @gwerbin) - Add `--all` option to `bundle binstubs` that will generate an executable file for all gems with commands in the bundle - Add `bundle remove` command to remove gems from the Gemfile via the CLI - Improve checking file permissions and asking for `sudo` in Bundler when it doesn't need to - Add error message to `bundle add` to check adding duplicate gems to the Gemfile - When asking for `sudo`, Bundler will show a list of folders/files that require elevated permissions to write to. The following new features are available but are not enabled by default. These are intended to be tested by users for the upcoming release of Bundler 2. - Improve deprecation warning message for `bundle show` command - Improve deprecation warning message for the `--force` option in `bundle install` # 1.17.0.pre.1 (September 24, 2018) ## Features: - Check folder/file permissions of the Bundle home directory in the `bundle doctor` command ([#5786](https://github.com/rubygems/bundler/issues/5786), @ajwann) - Remove compiled gem extensions when running `bundle clean` ([#5596](https://github.com/rubygems/bundler/issues/5596), @akhramov) - Add `--paths` option to `bundle list` command ([#6172](https://github.com/rubygems/bundler/issues/6172), @colby-swandale) - Add base error class to gems generated from `bundle gem` ([#6260](https://github.com/rubygems/bundler/issues/6260), @christhekeele) - Correctly re-install gem extensions with a git source when running `bundle pristine` ([#6294](https://github.com/rubygems/bundler/issues/6294), @wagenet) - Add config option to disable platform warnings ([#6124](https://github.com/rubygems/bundler/issues/6124), @agrim123) - Add `--skip-install` option to `bundle add` command to add gems to the Gemfile without installation ([#6511](https://github.com/rubygems/bundler/issues/6511), @agrim123) - Add `--only-explicit` option to `bundle outdated` to list only outdated gems in the Gemfile ([#5366](https://github.com/rubygems/bundler/issues/5366), @peret) - Support adding multiple gems to the Gemfile with `bundle add` ([#6543](https://github.com/rubygems/bundler/issues/6543), @agrim123) - Make registered plugin events easier to manage in the Plugin API (@jules2689) - Add new gem install hooks to the Plugin API (@jules2689) - Add `--optimistic` and `--strict` options to `bundle add` ([#6553](https://github.com/rubygems/bundler/issues/6553), @agrim123) - Add `--without-group` and `--only-group` options to `bundle list` ([#6564](https://github.com/rubygems/bundler/issues/6564), @agrim123) - Add `--gemfile` option to the `bundle exec` command ([#5924](https://github.com/rubygems/bundler/issues/5924), @ankitkataria) The following new features are available but are not enabled by default. These are intended to be tested by users for the upcoming release of Bundler 2. - Make `install --path` relative to the current working directory ([#2048](https://github.com/rubygems/bundler/issues/2048), @igorbozato) - Auto-configure job count ([#5808](https://github.com/rubygems/bundler/issues/5808), @segiddins) - Use the Gem Version Promoter for major gem updates ([#5993](https://github.com/rubygems/bundler/issues/5993), @segiddins) - Add config option to add the Ruby scope to `bundle config path` when configured globally (@segiddins) # 1.16.6 (October 5, 2018) ## Enhancements: - Add an error message when adding a gem with `bundle add` that's already in the bundle ([#6341](https://github.com/rubygems/bundler/issues/6341), @agrim123) - Add Homepage, Source Code and Changelog URI metadata fields to the `bundle gem` gemspec template (@walf443) ## Bug fixes: - Fix issue where updating a gem resulted in the gem's version being downgraded when `BUNDLE_ONLY_UPDATE_TO_NEWER_VERSIONS` was set ([#6529](https://github.com/rubygems/bundler/issues/6529), @theflow) - Fix some rescue calls that don't specify error type (@utilum) - Fix an issue when the Lockfile would contain platform-specific gems that it didn't need ([#6491](https://github.com/rubygems/bundler/issues/6491), @segiddins) - Improve handling of adding new gems with only a single group to the Gemfile in `bundle add` (@agrim123) - Refactor check for OpenSSL in `bundle env` (@voxik) - Remove an unnecessary assignment in Metadata (@voxik) ## Documentation: - Update docs to reflect revised guidance to check in Gemfile.lock into version control for gems ([#5879](https://github.com/rubygems/bundler/issues/5879), @arbonap) - Add documentation for the `--all` flag in `bundle update` (@agrim123) - Update README to use `bundle add` in usage examples (@hdf1986) # 1.16.5 (September 18, 2018) ## Enhancements: - Add support for TruffleRuby (@eregon) ## Bug fixes: - Avoid printing git errors when checking the version on incorrectly packaged versions of Bundler ([#6453](https://github.com/rubygems/bundler/issues/6453), @greysteil) - Fix issue where Bundler does not check the given class when comparing equality in DepProxy (@ChrisBr) - Handle `RangeNotSatisfiable` error in Compact Index (@MaxLap) - Check for initialized `search` variable in `LazySpecification` (@voxik) - Fix LoadError occurring in nested bundle exec calls ([#6537](https://github.com/rubygems/bundler/issues/6537), @colby-swandale) - Check that Bundler::Deprecate is not an autoload constant ([#6163](https://github.com/rubygems/bundler/issues/6163), @eregon) - Prefer non-pre-release versions when performing a `bundle update --patch` ([#6684](https://github.com/rubygems/bundler/issues/6684), @segiddins) # 1.16.4 (August 17, 2018) ## Enhancements: - Welcome new members to the Bundler core team (@indirect) - Don't mutate original error trees when determining version_conflict_message (@greysteil) - Update vendored Molinillo to 0.6.6 (@segiddins) ## Bug fixes: - Reword bundle update regression message to be more clear to the user when a gem's version is downgraded ([#6584](https://github.com/rubygems/bundler/issues/6584), @ralphbolo) - Respect --conservative flag when updating a dependency group ([#6560](https://github.com/rubygems/bundler/issues/6560), @greysteil) - Fix issue where a pre-release version was not being selected when it's specified in the Gemfile ([#6449](https://github.com/rubygems/bundler/issues/6449), @akihiro17) - Fix issue where `Etc` was not loaded when getting the user's home dir ([#6640](https://github.com/rubygems/bundler/issues/6640), @colby-swandale) - Use UTF-8 for reading files including Gemfile ([#6660](https://github.com/rubygems/bundler/issues/6660), @eregon) - Remove unnecessary `while` loop in path resolver helper (@ojab) ## Documentation: - Document that `bundle show [--paths]` sorts results by name (@kemitchell) # 1.16.3 (July 17, 2018) ## Features: - Support URI::File of Ruby 2.6 (@hsbt) ## Bug fixes: - Expand symlinks during setup to allow Bundler to load correctly when using symlinks in $GEM_HOME ([#6465](https://github.com/rubygems/bundler/issues/6465), @ojab, @indirect) - Dont let Bundler create temporary folders for gem installs which are owned by root ([#6258](https://github.com/rubygems/bundler/issues/6258), @colby-swandale) - Don't fallback to using temporary directories when needed directories already exist ([#6546](https://github.com/rubygems/bundler/issues/6546), @brodock) - Use SharedHelpers.filesystem_access when reading a Gemfile so friendly error messages can be given to the user ([#6541](https://github.com/rubygems/bundler/issues/6541), @segiddins) - Check if source responds to `#remotes` before printing gem install error message ([#6211](https://github.com/rubygems/bundler/issues/6211), @colby-swandale) - Handle Errno::ENOTSUP in the Bundler Process Lock to prevent exceptions when using NFS mounts ([#6566](https://github.com/rubygems/bundler/issues/6566), @colby-swandale) - Respect encodings when reading gemspecs ([#6598](https://github.com/rubygems/bundler/issues/6598), @deivid-rodriguez) ## Documentation: - Fix links between manual pages (@BanzaiMan) - Add warning to Gemfile documentation for the use of the `source` option when declaring gems ([#6280](https://github.com/rubygems/bundler/issues/6280), @forestgagnon) # 1.16.2 (April 20, 2018) ## Enhancements: - Include the gem's source in the gem install error message when available (@papanikge) - Remove unnecessary executable bit from gem template (@voxik) - Dont add the timestamp comment with gems added to the Gemfile via `bundle add` ([#6193](https://github.com/rubygems/bundler/issues/6193), @cpgo) - Improve yanked gem error message (@alyssais) - Use `Bundler.rubygems.inflate` instead of the Gem::Util method directly (@segiddins) - Remove unused instance variable (@segiddins) ## Bug fixes: - Only trap INT signal and have Ruby's signal default handler be invoked (@shayonj) - Fix warning about the use of `__FILE__` in RubyGems integration testing (@MSP-Greg) - Skip the outdated bundler check when MD5 is not available ([#6032](https://github.com/rubygems/bundler/issues/6032), @segiddins) - Fallback to the original error if the friendly message raises (@segiddins) - Rename Bundler.frozen? to avoid Object method conflict ([#6252](https://github.com/rubygems/bundler/issues/6252), @segiddins) - Ensure the bindir exists before installing gems (@segiddins) - Handle gzip corruption errors in the compact index client ([#6261](https://github.com/rubygems/bundler/issues/6261), @colby-swandale) - Check if the current directory is writeable when writing files in `bundle gem` ([#6219](https://github.com/rubygems/bundler/issues/6219), @nilsding) - Fix hang when gemspec has incompatible encoding (@deivid-rodriguez) - Gracefully handle when the lockfile is missing spec entries for the current platform ([#6079](https://github.com/rubygems/bundler/issues/6079), @segiddins) - Use Gem::Util.inflate instead of Gem.inflate (@hsbt) - Update binstub generator to use new ERB.new arity in Ruby 2.6 (@koic) - Fix `source_location` call in rubygems integration (@MSP-Greg) - Use `filesystem_access` when copying files in Compact Index Updater ([#6289](https://github.com/rubygems/bundler/issues/6289), @segiddins) - Fail gracefully when resetting git gems to the given revision fails ([#6324](https://github.com/rubygems/bundler/issues/6324), @segiddins) - Handle exceptions that do not have a backtrace ([#6342](https://github.com/rubygems/bundler/issues/6342), @nesaulov) - Check if stderr was closed before writing to it (@shime) - Handle updating a specific gem for a non-local platform ([#6350](https://github.com/rubygems/bundler/issues/6350), @greysteil) - Bump the `bundle_binstub` check-length to 300 characters (@tduffield) - Fix specifying alterntive Lockfile with `bundle lock` when default gemfile is present ([#6460](https://github.com/rubygems/bundler/issues/6460), @agrim123) - Allow installing dependencies when the path is set to `.` ([#6475](https://github.com/rubygems/bundler/issues/6475), @segiddins) - Support Bundler installing on a readonly filesystem without a home directory ([#6461](https://github.com/rubygems/bundler/issues/6461), @grosser) - Filter git uri credentials in source description (@segiddins) ## Documentation: - Correct typos in `bundle binstubs` man page (@erikj, @samueloph) - Update links in `bundle gem` command documentation to use https (@KrauseFx) - Fix broken links between bundler man pages (@segiddins) - Add man page for the `bundle doctor` command ([#6243](https://github.com/rubygems/bundler/issues/6243), @nholden) - Document `# frozen_string_literal` in `bundle init` Gemfile (@315tky) - Explain the gemspec files attribute in `bundle gem` template and print a link to bundler.io guides when running `bundle gem` ([#6246](https://github.com/rubygems/bundler/issues/6246), @nesaulov) - Small copy tweaks & removed redundant phrasing in the bundler man page (@rubymorillo) - Improve the documentation of the settings load order in Bundler (@rubymorillo) - Added license info to main README (@rubymorillo) - Document parameters and return value of Injector#inject (@tobias-grasse) # 1.16.1 (December 12, 2017) ## Bug fixes: - avoid hanging on complex resolver errors ([#6114](https://github.com/rubygems/bundler/issues/6114), @halfbyte) - avoid an error when running `bundle update --group` ([#6156](https://github.com/rubygems/bundler/issues/6156), @mattbrictson) - ensure the resolver prefers non-pre-release gems when possible ([#6181](https://github.com/rubygems/bundler/issues/6181), @greysteil) - include bundler's gemspec in the built gem ([#6165](https://github.com/rubygems/bundler/issues/6165), @dr-itz) - ensure locally installed specs are not overridden by those in remote sources during dependency resolution ([#6072](https://github.com/rubygems/bundler/issues/6072), @indirect) - ensure custom gemfiles are respected in generated binstubs (@pftg) - fail gracefully when loading a bundler-generated binstub when `bin/bundle` was not generated by bundler ([#6149](https://github.com/rubygems/bundler/issues/6149), @hsbt) - allow `bundle init` to be run even when a parent directory contains a gemfile ([#6205](https://github.com/rubygems/bundler/issues/6205), @colby-swandale) # 1.16.0 (October 31, 2017) ## Bug fixes: - avoid new RubyGems warning about unsafe YAML loading (to keep output consistent) (@segiddins) - load digest subclasses in a thread-safe manner (@segiddins, @colby-swandale) - avoid unusued variable warnings under ruby 2.5 (@amatsuda) - fix printing the same message twice in verbose mode ([#6028](https://github.com/rubygems/bundler/issues/6028), @akhramov) - allow `SignalException`s to bubble up to the interpreter during `bundle exec` ([#6090](https://github.com/rubygems/bundler/issues/6090), @dekellum) - avoid activating stdlib digest under Ruby 2.5 (@segiddins) - prioritise explicitly requested gems in dependency resolution sort order (@segiddins) - reduce memory usage during dependency resolution ([#6114](https://github.com/rubygems/bundler/issues/6114), @greysteil) - ensure that the default bundler gem is not accidentally activated on ruby 2.5 when using local git overrides (@segiddins) # 1.16.0.pre.3 (October 4, 2017) ## Features: - the output from `bundle env` includes more information, particularly both the compiled & loaded versions of OpenSSL (@indirect) ## Bug fixes: - fix a bug where installing on FreeBSD would accidentally raise an error ([#6013](https://github.com/rubygems/bundler/issues/6013), @olleolleolle) - fix a regression in 1.16 where pre-release gems could accidentally be resolved even when the gemfile contained no pre-release requirements (@greysteil) - bundler will avoid making unnecessary network requests to fetch dependency data, fixing a regression introduced in 1.16 (@segiddins) - the outdated bundler version message is disabled by default until the message has been fine-tuned ([#6004](https://github.com/rubygems/bundler/issues/6004), @segiddins) # 1.16.0.pre.2 (September 6, 2017) ## Bug fixes: - handle when a connection is missing a socket when warning about OpenSSL version (@greysteil) - the description for the `rake release` task now reflects `$RUBYGEMS_HOST` (@wadetandy) - fix a bug where `bundle update` would regress transitive dependencies (@greysteil) # 1.16.0.pre.1 (September 4, 2017) ## Features: - allow using non-branch symbolic refs in a git source ([#4845](https://github.com/rubygems/bundler/issues/4845), @segiddins) - allow absolute paths in the `cache path` setting ([#5627](https://github.com/rubygems/bundler/issues/5627), @mal) - gems created via `bundle gem` with rspec have `--require spec_helper` in their `.rspec` file (@koic) - `bundle env` includes `Gem.ruby` and the `bundle` binstub shebang when they don't match ([#5616](https://github.com/rubygems/bundler/issues/5616), @segiddins) - allow passing gem names to `bundle pristine` (@segiddins) - `bundle version` and `bundle env` include the commit and build date for the bundler gem ([#5049](https://github.com/rubygems/bundler/issues/5049), @segiddins) - add the `--shebang` option to `bundle binstubs` ([#4070](https://github.com/rubygems/bundler/issues/4070), @segiddins, @Zorbash) - gemfiles are `eval`ed one fewer time when running `bundle install` ([#4952](https://github.com/rubygems/bundler/issues/4952), [#3096](https://github.com/bundler/bundler/issues/3096), [#4417](https://github.com/bundler/bundler/issues/4417), @segiddins) - the `fileutils` gem is now vendored so different versions of the gem can be activated (@segiddins) - speed up no-op installations ([#5842](https://github.com/rubygems/bundler/issues/5842), @segiddins) - default to keeping the lockfile in the default gem template (@deivid-rodriguez) - add a special bundler binstub that ensures the correct version of bundler is activated ([#5876](https://github.com/rubygems/bundler/issues/5876), @segiddins) - speed up dependency resolution and ensure that all resolvable gemfiles can be installed (@segiddins, @greysteil) - add a `bundle list` command that prints the gems in use ([#4754](https://github.com/rubygems/bundler/issues/4754), @colby-swandale) - allow adding credentials to a gem source during deployment when `allow_deployment_source_credential_changes` is set (@adrian-gomez) - making an outdated (and insecure) TLS connection to rubygems.org will print a warning (@segiddins) ## Bug fixes: - allow configuring a mirror fallback timeout without a trailing slash ([#4830](https://github.com/rubygems/bundler/issues/4830), @segiddins) - fix handling of mirrors for file: urls that contain upper-case characters (@segiddins) - list the correct gem host for `rake release` when `allowed_push_host` has been set (@mdeering) - ensure `Bundler.original_env` preserves all env keys that bundler sets ([#5700](https://github.com/rubygems/bundler/issues/5700), @segiddins) - ensure `bundle pristine` removes files added to a git gem (@segiddins) - load plugin files from path gems before gem installation ([#5429](https://github.com/rubygems/bundler/issues/5429), @segiddins) - ensure gems containing manpages are properly set up ([#5730](https://github.com/rubygems/bundler/issues/5730), @segiddins) - avoid fetching remote specs when all effected gems are in groups that are not being installed (@segiddins) - allow `BUNDLE_GEMFILE` to be a relative path ([#5712](https://github.com/rubygems/bundler/issues/5712), @gxespino) - show a more helpful error message when a gem fails to install due to a corrupted lockfile ([#5846](https://github.com/rubygems/bundler/issues/5846), @segiddins) - add a process lock to allow multiple concurrent `bundle install`s ([#5851](https://github.com/rubygems/bundler/issues/5851), @stefansedich) - ensure that specifications always return an array for `#extensions` (@greysteil) - print a helpful error message when using a gem in the Gemfile with an empty name (@colby-swandale) - ensure that all gemfiles are included in `bundle env` (@segiddins) - use ssl client cert and ca cert settings from gem configuration as fallbacks (@stan3) - avoid global namespace pollution when loading gems ([#5958](https://github.com/rubygems/bundler/issues/5958), @shyouhei) - avoid running a complete re-resolve on `bundle update --bundler` (@segiddins) - allow `bundle binstubs --standalone` to work without `path` being set (@colby-swandale) - fix support for bundle paths that include jars or wars on jruby ([#5975](https://github.com/rubygems/bundler/issues/5975), @torcido) # 1.15.4 (August 19, 2017) ## Bug fixes: - handle file conflicts gracefully in `bundle gem` (@rafaelfranca, @segiddins) - bundler will fail gracefully when the bundle path contains the system path separator ([#5485](https://github.com/rubygems/bundler/issues/5485), ajwann) - failed gem downloads will be retried consistently across different RubyGems versions (@shayonj) - `bundle pristine` will respect build options while re-building native extensions (@NickLaMuro) # 1.15.3 (July 21, 2017) ## Bug fixes: - ensure that empty strings passed to `bundle config` are serialized & parsed properly ([#5881](https://github.com/rubygems/bundler/issues/5881), @segiddins) - avoid printing an outdated version warning when running a parseable command (@segiddins) # 1.15.2 (July 17, 2017) ## Features: - new gemfiles created by bundler will include an explicit `github` git source that uses `https` (@segiddins) ## Bug fixes: - inline gemfiles work when `BUNDLE_BIN` is set ([#5847](https://github.com/rubygems/bundler/issues/5847), @segiddins) - avoid using the old dependency API when there are no changes to the compact index files ([#5373](https://github.com/rubygems/bundler/issues/5373), @greysteil) - fail gracefully when the full index serves gemspecs with invalid dependencies ([#5797](https://github.com/rubygems/bundler/issues/5797), @segiddins) - support installing gemfiles that use `eval_gemfile`, `:path` gems with relative paths, and `--deployment` simultaneously (@NickLaMuro) - `bundle config` will print settings as the type they are interpreted as (@segiddins) - respect the `no_proxy` environment variable when making network requests ([#5781](https://github.com/rubygems/bundler/issues/5781), @jakauppila) - commands invoked with `--verbose` will not have default flags printed (@segiddins) - allow `bundle viz` to work when another gem has a requirable `grapviz` file ([#5707](https://github.com/rubygems/bundler/issues/5707), @segiddins) - ensure bundler puts activated gems on the `$LOAD_PATH` in a consistent order ([#5696](https://github.com/rubygems/bundler/issues/5696), @segiddins) # 1.15.1 (June 2, 2017) ## Bug fixes: - `bundle lock --update GEM` will fail gracefully when the gem is not in the lockfile ([#5693](https://github.com/rubygems/bundler/issues/5693), @segiddins) - `bundle init --gemspec` will fail gracefully when the gemspec is invalid (@colby-swandale) - `bundle install --force` works when the gemfile contains git gems ([#5678](https://github.com/rubygems/bundler/issues/5678), @segiddins) - `bundle env` will print well-formed markdown when there are no settings ([#5677](https://github.com/rubygems/bundler/issues/5677), @segiddins) # 1.15.0 (May 19, 2017) No changes. # 1.15.0.pre.4 (May 10, 2017) ## Bug fixes: - avoid conflicts when `Gem.finish_resolve` is called after the bundle has been set up (@segiddins) - ensure that `Gem::Specification.find_by_name` always returns an object that can have `#to_spec` called on it ([#5592](https://github.com/rubygems/bundler/issues/5592), @jules2689) # 1.15.0.pre.3 (April 30, 2017) ## Bug fixes: - avoid redundant blank lines in the readme generated by `bundle gem` (@koic) - ensure that `open-uri` is not loaded after `bundle exec` (@segiddins) - print a helpful error message when an activated default gem conflicts with a gem in the gemfile (@segiddins) - only shorten `ref` option for git gems when it is a SHA ([#5620](https://github.com/rubygems/bundler/issues/5620), @segiddins) # 1.15.0.pre.2 (April 23, 2017) ## Bug fixes: - ensure pre-existing fit caches are updated from remote sources ([#5423](https://github.com/rubygems/bundler/issues/5423), @alextaylor000) - avoid duplicating specs in the lockfile after updating with the gem uninstalled ([#5599](https://github.com/rubygems/bundler/issues/5599), @segiddins) - ensure git gems have their extensions available at runtime ([#5594](https://github.com/rubygems/bundler/issues/5594), @jules2689, @segiddins) # 1.15.0.pre.1 (April 16, 2017) ## Features: - print a notification when a newer version of bundler is available ([#4683](https://github.com/rubygems/bundler/issues/4683), @segiddins) - add man pages for all bundler commands ([#4988](https://github.com/rubygems/bundler/issues/4988), @feministy) - add the `bundle info` command (@fredrb, @colby-swandale) - all files created with `bundle gem` comply with the bundler style guide (@zachahn) - if installing a gem fails, print out the reason the gem needed to be installed ([#5078](https://github.com/rubygems/bundler/issues/5078), @segiddins) - allow setting `gem.push_key` to set the key used when running `rake release` (@DTrierweiler) - print gem versions that are regressing during `bundle update` in yellow ([#5506](https://github.com/rubygems/bundler/issues/5506), @brchristian) - avoid printing extraneous dependencies when the resolver encounters a conflict (@segiddins) - add the `bundle issue` command that prints instructions for reporting issues ([#4871](https://github.com/rubygems/bundler/issues/4871), @jonathanpike) - add `--source` and `--group` options to the `bundle inject` command ([#5452](https://github.com/rubygems/bundler/issues/5452), @Shekharrajak) - add the `bundle add` command to add a gem to the gemfile (@denniss) - add the `bundle pristine` command to re-install gems from cached `.gem` files ([#4509](https://github.com/rubygems/bundler/issues/4509), @denniss) - add a `--parseable` option for `bundle config` (@JuanitoFatas, @colby-swandale) ## Performance: - speed up gemfile initialization by storing locked dependencies as a hash (@jules2689) - speed up gemfile initialization by making locked dependency comparison lazy, avoiding object allocation (@jules2689) - only validate git gems when they are downloaded, instead of every time `Bundler.setup` is run (@segiddins) - avoid regenerating the lockfile when nothing has changed (@segiddins) - avoid diffing large arrays when no sources in the gemfile have changed (@segiddins) - avoid evaluating full gemspecs when running with RubyGems 2.5+ (@segiddins) ## Bug fixes: - fix cases where `bundle update` would print a resolver conflict instead of updating the selected gems ([#5031](https://github.com/rubygems/bundler/issues/5031), [#5095](https://github.com/bundler/bundler/issues/5095), @segiddins) - print out a stack trace after an interrupt when running in debug mode (@segiddins) - print out when bundler starts fetching a gem from a remote server (@segiddins) - fix `bundle gem` failing when `git` is unavailable ([#5458](https://github.com/rubygems/bundler/issues/5458), @Shekharrajak, @colby-swandale) - suggest the appropriate command to unfreeze a bundle ([#5009](https://github.com/rubygems/bundler/issues/5009), @denniss) - ensure nested calls to `bundle exec` resolve default gems correctly ([#5500](https://github.com/rubygems/bundler/issues/5500), @segiddins) - ensure that a plugin failing to install doesn't uninstall other plugins (@kerrizor, @roseaboveit) - ensure `socket` is required before being referenced ([#5533](https://github.com/rubygems/bundler/issues/5533), @rafaelfranca) - allow running `bundle outdated` when gems aren't installed locally ([#5553](https://github.com/rubygems/bundler/issues/5553), @segiddins) - print a helpful error when `bundle exec`ing to a gem that isn't included in the bundle ([#5487](https://github.com/rubygems/bundler/issues/5487), @segiddins) - print an error message when a non-git gem is given a `branch` option ([#5530](https://github.com/rubygems/bundler/issues/5530), @colby-swandale) - allow interrupts to exit the process after gems have been installed (@segiddins) - print the underlying error when downloading gem metadata fails ([#5579](https://github.com/rubygems/bundler/issues/5579), @segiddins) - avoid deadlocking when installing with a lockfile that is missing dependencies ([#5378](https://github.com/rubygems/bundler/issues/5378), [#5480](https://github.com/bundler/bundler/issues/5480), [#5519](https://github.com/bundler/bundler/issues/5519), [#5526](https://github.com/bundler/bundler/issues/5526), [#5529](https://github.com/bundler/bundler/issues/5529), [#5549](https://github.com/bundler/bundler/issues/5549), [#5572](https://github.com/bundler/bundler/issues/5572), @segiddins) # 1.14.6 (March 3, 2017) ## Bug fixes: - avoid undefined constant `Bundler::Plugin::API::Source` exception ([#5409](https://github.com/rubygems/bundler/issues/5409), @segiddins) - avoid incorrect warnings about needing to enable `specific_platform` (@segiddins) - fail gracefully when the compact index does not send an ETag ([#5463](https://github.com/rubygems/bundler/issues/5463), @olleolleolle) - ensure `bundle outdated --local` shows all outdated gems ([#5430](https://github.com/rubygems/bundler/issues/5430), @denniss) - fix a case where ruby version requirements could lead to incorrect resolver conflicts ([#5425](https://github.com/rubygems/bundler/issues/5425), @segiddins) # 1.14.5 (February 22, 2017) ## Bug fixes: - avoid loading all unused gemspecs during `bundle exec` on RubyGems 2.3+ (@segiddins) - improve resolver performance when dependencies have zero or one total possibilities ignoring requirements ([#5444](https://github.com/rubygems/bundler/issues/5444), [#5457](https://github.com/bundler/bundler/issues/5457), @segiddins) - enable compact index when OpenSSL FIPS mode is enabled but not active ([#5433](https://github.com/rubygems/bundler/issues/5433), @wjordan) - use github username instead of git name for the github url in `bundle gem` ([#5438](https://github.com/rubygems/bundler/issues/5438), @danielpclark) - avoid a TypeError on RubyGems 2.6.8 when no build settings are set for native extensions (@okkez) - fail gracefully when the dependency api is missing runtime dependencies for a gem (@segiddins) - handle when a platform-specific gem has more dependencies than the ruby platform version ([#5339](https://github.com/rubygems/bundler/issues/5339), [#5426](https://github.com/bundler/bundler/issues/5426), @segiddins) - allow running bundler on a machine with no home directory where the temporary directory is not writable ([#5371](https://github.com/rubygems/bundler/issues/5371), @segiddins) - avoid gem version conflicts on openssl using Ruby 2.5 ([#5235](https://github.com/rubygems/bundler/issues/5235), @rhenium) - fail when installing in frozen mode and the dependencies for `gemspec` gems have changed without the lockfile being updated ([#5264](https://github.com/rubygems/bundler/issues/5264), @segiddins) # 1.14.4 (February 12, 2017) ## Bug fixes: - fail gracefully when attempting to overwrite an existing directory with `bundle gem` ([#5358](https://github.com/rubygems/bundler/issues/5358), @nodo) - fix a resolver bug that would cause bundler to report conflicts that it could resolve ([#5359](https://github.com/rubygems/bundler/issues/5359), [#5362](https://github.com/bundler/bundler/issues/5362), @segiddins) - set native extension build arguments for git gems ([#5401](https://github.com/rubygems/bundler/issues/5401), @segiddins) - fix the suggested `bundle lock` command printed when a dependency is unused on any platform (@5t111111) - ensure the version passed to `ruby` in the Gemfile is valid during Gemfile parsing ([#5380](https://github.com/rubygems/bundler/issues/5380), @segiddins) - show `bundle inject` usage when too many arguments are passed ([#5384](https://github.com/rubygems/bundler/issues/5384), @Shekharrajak) - stop `bundle show --outdated` from implicitly running `bundle update` ([#5375](https://github.com/rubygems/bundler/issues/5375), @colby-swandale) - allow the temporary home directory fallback to work for multiple users (@svoop) # 1.14.3 (January 24, 2017) ## Bug fixes: - fix the resolver attempting to activate ruby-platform gems when the bundle is only for other platforms ([#5349](https://github.com/rubygems/bundler/issues/5349), [#5356](https://github.com/bundler/bundler/issues/5356), @segiddins) - avoid re-resolving a locked gemfile that uses `gemspec` and includes development dependencies ([#5349](https://github.com/rubygems/bundler/issues/5349), @segiddins) # 1.14.2 (January 22, 2017) ## Bug fixes: - fix using `force_ruby_platform` on windows ([#5344](https://github.com/rubygems/bundler/issues/5344), @segiddins) - fix an incorrect version conflict error when using `gemspec` on multiple platforms ([#5340](https://github.com/rubygems/bundler/issues/5340), @segiddins) # 1.14.1 (January 21, 2017) ## Bug fixes: - work around a ruby 2.2.2 bug that caused a stack consistency error during installation ([#5342](https://github.com/rubygems/bundler/issues/5342), @segiddins) # 1.14.0 (January 20, 2017) ## Bug fixes: - ensure `Settings::Mirror` is autoloaded under the `Settings` namespace ([#5238](https://github.com/rubygems/bundler/issues/5238), @segiddins) - fix `bundler/inline` when `BUNDLE_GEMFILE=""` ([#5079](https://github.com/rubygems/bundler/issues/5079), @segiddins) # 1.14.0.pre.2 (January 11, 2017) ## Bug fixes: - allow not selecting a gem when running `bundle open` ([#5301](https://github.com/rubygems/bundler/issues/5301), @segiddins) - support installing gems from git branches that contain shell metacharacters ([#5295](https://github.com/rubygems/bundler/issues/5295), @segiddins) - fix a resolver error that could leave dependencies unresolved ([#5294](https://github.com/rubygems/bundler/issues/5294), @segiddins) - fix a stack overflow error when invoking commands ([#5296](https://github.com/rubygems/bundler/issues/5296), @segiddins) # 1.14.0.pre.1 (December 29, 2016) ## Features: - `bundle doctor` first runs `bundle check` (@segiddins) - the bundler trampoline is automatically enabled when the target version is greater than bundler 2 (@segiddins) - gem checksums returned by rubygems.org are validated when installing gems ([#4464](https://github.com/rubygems/bundler/issues/4464), @segiddins) - use the git username as a github username when running `bundle gem` (@JuanitoFatas) - show more context when the resolver conflicts on required ruby and rubygems versions (@segiddins) - improve platform support by allowing bundler to pick the best platform match during dependency resolution, enabled with the `specific_platform` setting ([#4295](https://github.com/rubygems/bundler/issues/4295), [#4896](https://github.com/bundler/bundler/issues/4896), @segiddins) - always prompt the user for a password when using `sudo` ([#3006](https://github.com/rubygems/bundler/issues/3006), @segiddins) - support running without a home directory ([#4778](https://github.com/rubygems/bundler/issues/4778), @segiddins) - print a warning when the gemfile uses a platform conditional that will exclude the gem from all lockfile platforms (@segiddins) - add the `force_ruby_platform` setting to force bundler to install ruby-platform gems, even on other platforms ([#4813](https://github.com/rubygems/bundler/issues/4813), @segiddins) - add conservative update options to `bundle lock` ([#4912](https://github.com/rubygems/bundler/issues/4912), @chrismo) - improve `bundle outdated` output to group gems by group (@ryanfox1985) - add conservative update options to `bundle update` ([#5065](https://github.com/rubygems/bundler/issues/5065), [#5076](https://github.com/bundler/bundler/issues/5076), @chrismo) - print the output of `bundle env` as github-flavored markdown, making it easier to preserve formatting when copy-pasting into a new issue (@segiddins) - configure the persistence file when using `bundle gem` with `rspec` (@segiddins) - add support for the `ruby_25` gemfile filter (@amatsuda) - when installing with a lockfile that is missing dependencies, allow installation to proceed (but without parallelism) (@segiddins) ## Performance: - improve `require "bundler"` performance by ~5x (@segiddins) - allow install gems in parallel when running on rubygems 2+ ## Bug fixes: - config files with CRLF line endings can be read ([#4435](https://github.com/rubygems/bundler/issues/4435), @segiddins) - `bundle lock` activates gems for the current platform even if they were activated under a different platform for a separate dependency ([#4896](https://github.com/rubygems/bundler/issues/4896), @segiddins) - running `bundle env` in a directory without a gemfile no longer crashes (@segiddins) - fail gracefully when attempting to use a source with an unknown URI scheme ([#4953](https://github.com/rubygems/bundler/issues/4953), @segiddins) - store paths in the lockfile relative to the root gemfile directory when using `eval_gemfile` ([#4966](https://github.com/rubygems/bundler/issues/4966), @segiddins) - `bundle lock` will not update without the `--update` flag ([#4957](https://github.com/rubygems/bundler/issues/4957), @segiddins) - the `console` binstub generated by `bundle gem` will load `.irbrc` files (@mattbrictson) - print friendly filesystem access errors in the new index (@segiddins) - print a helpful error when running out of memory on jruby ([#4673](https://github.com/rubygems/bundler/issues/4673), @segiddins) - load all rubygems plugins when installing gems ([#2824](https://github.com/rubygems/bundler/issues/2824), @segiddins) - `bundle clean --dry-run` prints the list of gems without the `--force` option when no path is set ([#5027](https://github.com/rubygems/bundler/issues/5027), @hmistry) - local installs no longer print "this gem may have been yanked" ([#5022](https://github.com/rubygems/bundler/issues/5022), @hmistry) - avoid leaking `which` output when running `bundle doctor` (@colby-swandale) - print a warning when attempting to `bundle exec` an empty program ([#5084](https://github.com/rubygems/bundler/issues/5084), @bronzdoc) - ensure `bundle outdated` lists all outdated gems ([#4979](https://github.com/rubygems/bundler/issues/4979), @chrismo) - fail gracefully when attempting to `bundle gem` with an invalid constant name ([#5185](https://github.com/rubygems/bundler/issues/5185), @segiddins) - allow `bundler/inline` to work in a directory that contains a gemfile ([#5117](https://github.com/rubygems/bundler/issues/5117), @colby-swandale) - ensure that the new index is thread-safe, allowing installation on rbx ([#5142](https://github.com/rubygems/bundler/issues/5142), @segiddins) - remove deprecated `rspec` syntax in `bundle gem` output (@gearnode) - fail gracefully when any system error is encountered when touching the filesystem ([#5134](https://github.com/rubygems/bundler/issues/5134), @segiddins) - fix compatibility with a machine running with FIPS mode enabled ([#4989](https://github.com/rubygems/bundler/issues/4989), @segiddins) - fix `bundle lock --add-platform ruby` ([#5230](https://github.com/rubygems/bundler/issues/5230), @segiddins) - print gem post-install messages when running `bundle update` (@smathy) - ensure errors due to a retries are all separated by a newline (@segiddins) - print out the bundle path in gem not found errors ([#4854](https://github.com/rubygems/bundler/issues/4854), @diegosteiner) - fail gracefully when creating threads fails (@segiddins) - avoid downloading metadata for gems that are only development dependencies (@Paxa) # 1.13.7 (December 25, 2016) ## Features: - add support for the `ruby_24` gemfile filter ([#5281](https://github.com/rubygems/bundler/issues/5281), @amatsuda) # 1.13.6 (October 22, 2016) ## Bug fixes: - make the `gem` method public again, fixing a regression in 1.13.4 ([#5102](https://github.com/rubygems/bundler/issues/5102), @segiddins) # 1.13.5 (October 15, 2016) ## Bug fixes: - Ensure a locked pre-release spec can always be re-resolved ([#5089](https://github.com/rubygems/bundler/issues/5089), @segiddins) # 1.13.4 (October 11, 2016) ## Bug fixes: - stop printing warning when compact index versions file is rewritten ([#5064](https://github.com/rubygems/bundler/issues/5064), @indirect) - fix `parent directory is world writable but not sticky` error on install ([#5043](https://github.com/rubygems/bundler/issues/5043), @indirect) - fix for `uninitialized constant Bundler::Plugin::API::Source` error ([#5010](https://github.com/rubygems/bundler/issues/5010), @hsbt, @aycabta) - make `update` options for major, minor, and patch updates consistent ([#4934](https://github.com/rubygems/bundler/issues/4934), @chrismo) # 1.13.3 (October 10, 2016) ## Bug fixes: - add support for weak etags to the new index (@segiddins) # 1.13.2 (September 30, 2016) ## Bug fixes: - allow `Settings` to be initialized without a root directory (@m1k3) - allow specifying ruby engines in the gemfile as a symbol ([#4919](https://github.com/rubygems/bundler/issues/4919), @JuanitoFatas) - avoid an exception when using `bundler/deployment` with Vlad (@srbaker) - ensure redefined methods have the same visibility as the one they're replacing, fixing `Kernel.require` failing on JRuby ([#4975](https://github.com/rubygems/bundler/issues/4975), @segiddins) - ensure that Bundler won't complain about a corrupt lockfile when no lockfile exists when using `gemspec` in the Gemfile ([#5006](https://github.com/rubygems/bundler/issues/5006), @segiddins) - fail gracefully when parsing the metadata for a gemspec from the compact index fails (@segiddins) - fix system gems not being copied to --path on bundle install (e.g. --deployment) ([#4974](https://github.com/rubygems/bundler/issues/4974), @chrismo) ## Performance: - avoid parsing the lockfile twice when evaluating gemfiles (@segiddins) # 1.13.1 (September 13, 2016) ## Bug fixes: - ensure that `Gem::Source` is available, fixing several exceptions ([#4944](https://github.com/rubygems/bundler/issues/4944), @dekellum) - ensure that dependency resolution works when multiple gems have the same dependency ([#4961](https://github.com/rubygems/bundler/issues/4961), @segiddins) # 1.13.0 (September 5, 2016) No changes. # 1.13.0.rc.2 (August 21, 2016) ## Features: - add setting `exec_disable_load` to force `exec` to spawn a new Ruby process (@segiddins) - add `doctor` command to help with issues like unlinked compiled gems ([#4765](https://github.com/rubygems/bundler/issues/4765), @mistydemeo) - rework the `update` command, providing fine-grained control via flags ([#4676](https://github.com/rubygems/bundler/issues/4676), @chrismo) - add URI to http response output in debug mode ([#4808](https://github.com/rubygems/bundler/issues/4808), @NickLaMuro) - add manpage for `binstubs` command ([#4847](https://github.com/rubygems/bundler/issues/4847), @Zorbash) - support `mirror` settings for sources by hostname, not only full URL (@opiethehokie) - print gem installation errors after other install output ([#4834](https://github.com/rubygems/bundler/issues/4834), @segiddins) - add `lock --remove-platform` flag to remove platforms from the lock ([#4877](https://github.com/rubygems/bundler/issues/4877), @segiddins) - add `only_update_to_newer_versions` setting to prevent downgrades during `update` (@segiddins) - expanded experimental plugin support to include hooks and sources (@asutoshpalai) ## Bug fixes: - retry gem downloads ([#4846](https://github.com/rubygems/bundler/issues/4846), @jkeiser) - improve the CompactIndex to handle capitalized legacy gems ([#4867](https://github.com/rubygems/bundler/issues/4867), @segiddins) - re-use persistent HTTP connections for CompactIndex (@NickLaMuro) - respect `required_ruby_version` when Gemfile contains `ruby` version (@indirect) - allow `rake release` to sign git tags ([#4743](https://github.com/rubygems/bundler/issues/4743), @eagletmt) - set process titles when using `#load` during `exec` (@yob) - recognize JRuby shebangs for using `#load` during `exec` (@ojab) - handle world-writable home directories ([#4726](https://github.com/rubygems/bundler/issues/4726), @allenzhao) - support multi-platform gems via the `gemspec` Gemfile method ([#4798](https://github.com/rubygems/bundler/issues/4798), @segiddins) - print dots correctly for CompactIndex fetcher (@NickLaMuro) - set an `open_timeout` when requesting gem data via HTTP (@NickLaMuro) - rename the BUNDLE\_ORIG\_ENV variable so it no longer shows up in `config` (@indirect) - show help only when `-h` or `--help` is passed to Bundler, not to `exec` ([#4801](https://github.com/rubygems/bundler/issues/4801), @segiddins) - handle symlinks to binstubs created by `--standalone` ([#4782](https://github.com/rubygems/bundler/issues/4782), @terinjokes) # 1.13.0.rc.1 (June 27, 2016) ## Features: - when `bundle config major_deprecations` or `BUNDLE_MAJOR_DEPRECATIONS` is set, deprecation warnings for bundler 2 will be printed (@segiddins) - when running with `--verbose`, bundler will print the reason it is re-resolving a gemfile (@segiddins) ## Bug fixes: - fix support for running RubyGems 1.x on Ruby 2.3 ([#4698](https://github.com/rubygems/bundler/issues/4698), @segiddins) - fix bundle exec'ing to a ruby file when gems are installed into a path ([#4592](https://github.com/rubygems/bundler/issues/4592), @chrismo) - when multiple specs in a bundle have the same executable, prefer activating the one from the requested gem ([#4705](https://github.com/rubygems/bundler/issues/4705), @segiddins) - stop changing the load path to require the vendored postit when trampolining (@segiddins) - ensure relative paths are properly printed after completing an installation (@jenseng) - fix re-resolving when there are multiple unchanged path sources (@segiddins) - de-init submodules when running git 2.9 and requesting a git gem without submodules (@segiddins) # 1.13.0.pre.1 (June 20, 2016) ## Performance: - speed up gemfile resolution during `bundle install` by between 4x-100x ([#4376](https://github.com/rubygems/bundler/issues/4376), @segiddins) - generally reduce object allocations when using bundler (@segiddins) - speed up bin generation for path gems with many files ([#2846](https://github.com/rubygems/bundler/issues/2846), @segiddins) - fix detecting path spec changes to avoid re-resolving unnecessarily (@jrafanie) ## Features: - automatically trampoline to the bundler version locked in the lockfile, only updating to the running version on `bundle update --bundler` (@segiddins) - laying the groundwork for plugin support, which is currently unsuppported, undocumented, disabled by default, and liable to change without notice (@asutoshpalai) - allow `bundle viz --without` to accept multiple `:`-delimited groups (@mobilutz) - support for RubyGems 2.6.4 ([#4368](https://github.com/rubygems/bundler/issues/4368), @segiddins, @RochesterinNYC) - colorize updated gem versions ([#4334](https://github.com/rubygems/bundler/issues/4334), @bronzdoc) - add the `--standalone` flag to `bundle binstubs` ([#4594](https://github.com/rubygems/bundler/issues/4594), @b-ggs) - update the `bundle gem` CoC to contributor covenant v1.4 (@cllns) - use a custom YAML serializer to make config file consistent (@segiddins) - filter credentials from error messages (bundler/bundler-features[#111](https://github.com/rubygems/bundler/issues/111), @RochesterinNYC, @sandlerr) - support relative paths used inside a nested invocation of `eval_gemfile` ([#4584](https://github.com/rubygems/bundler/issues/4584), @RochesterinNYC) - fail gracefully when attempting to install a yanked gem ([#4344](https://github.com/rubygems/bundler/issues/4344), @allenzhao) - automatically install an inline gemfile when gems are missing locally (@segiddins) - allow conflicts for gems resolved via `gemspec` (@segiddins) - add `--add-platform` option to `bundle lock` (@segiddins) - fail gracefully when a resolved spec's `required_ruby_version` or `required_rubygems_version` is incompatible (@segiddins) ## Bug fixes: - implicitly unlock the resolved ruby version when the declared requirements in the gemfile are incompatible with the locked version ([#4595](https://github.com/rubygems/bundler/issues/4595), [#4627](https://github.com/bundler/bundler/issues/4627), @segiddins) - add support for quoted paths in `$PATH` ([#4323](https://github.com/rubygems/bundler/issues/4323), @segiddins) - check out missing git repos that are not being installed ([#3981](https://github.com/rubygems/bundler/issues/3981), @asutoshpalai) - write `bundler/setup.rb` to a consistent path (@glennpratt) - open editor in `bundle open` with a clean environment (@sj26) - resolve infinitely recursive copy when running `bundle package --all` with a `gemspec` in the gemfile ([#4392](https://github.com/rubygems/bundler/issues/4392), [#4430](https://github.com/bundler/bundler/issues/4430), @RochesterinNYC) - fail gracefully when encountering an `Errno::ENOTSUP` ([#4394](https://github.com/rubygems/bundler/issues/4394), @segiddins) - fail gracefully when encountering an `Errno::EHOSTUNREACH` ([#4642](https://github.com/rubygems/bundler/issues/4642), @allenzhao) - fix loading config files with very long values ([#4370](https://github.com/rubygems/bundler/issues/4370), @segiddins) - only show potential updates for gemfile platforms in `bundle outdated` ([#4450](https://github.com/rubygems/bundler/issues/4450), @RochesterinNYC) - allow running `bundle install --deployment` after `bundle package --all` with path gems ([#2175](https://github.com/rubygems/bundler/issues/2175), @allenzhao) - add support for patchlevels in ruby versions in the gemfile and gemspecs ([#4593](https://github.com/rubygems/bundler/issues/4593), @chalkos) # 1.12.6 (October 10, 2016) ## Bug fixes: - add support for weak etags to the new index (@segiddins) # 1.12.5 (May 25, 2016) ## Bug fixes: - only take over `--help` on `bundle exec` when the first two arguments are `exec` and `--help` ([#4596](https://github.com/rubygems/bundler/issues/4596), @segiddins) - don't require `require: true` dependencies that are excluded via `env` or `install_if` (@BrianHawley) - reduce the number of threads used simultaneously by bundler ([#4367](https://github.com/rubygems/bundler/issues/4367), @will-in-wi) # 1.12.4 (May 16, 2016) ## Bug fixes: - ensure concurrent use of the new index can't corrupt the cache ([#4519](https://github.com/rubygems/bundler/issues/4519), @domcleal) - allow missing rubygems credentials when pushing a gem with a custom host ([#4437](https://github.com/rubygems/bundler/issues/4437), @Cohen-Carlisle) - fix installing built-in specs with `--standalone` ([#4557](https://github.com/rubygems/bundler/issues/4557), @segiddins) - fix `bundle show` when a gem has a prerelease version that includes a `-` ([#4385](https://github.com/rubygems/bundler/issues/4385), @segiddins) # 1.12.3 (May 6, 2016) ## Bug fixes: - fix uncoditionally writing `.bundle/config` when running `bundle install` (@segiddins) - fall back to the dependency API and the full index when the home directory is not writable (@segiddins) # 1.12.2 (May 4, 2016) ## Bug fixes: - fix modifying a frozen string when the resolver conflicts on dependencies with requirements ([#4520](https://github.com/rubygems/bundler/issues/4520), @grzuy) - fix `bundle exec foo --help` not showing the invoked command's help ([#4480](https://github.com/rubygems/bundler/issues/4480), @b-ggs) # 1.12.1 (April 30, 2016) ## Bug fixes: - automatically fallback when the new index has a checksum mismatch instead of erroring (@segiddins) - fix computation of new index file local checksums on Windows ([#4472](https://github.com/rubygems/bundler/issues/4472), @mwrock) - properly handle certain resolver backtracking cases without erroring (@segiddins, [#4484](https://github.com/rubygems/bundler/issues/4484)) - ensure the `$LOAD_PATH` contains specs' load paths in the correct order (@segiddins, [#4482](https://github.com/rubygems/bundler/issues/4482)) # 1.12.0 (April 28, 2016) No changes. # 1.12.0.rc.4 (April 21, 2016) ## Bug fixes: - don't fail when `bundle outdated` is run with flags and the lockfile contains non-semver versions ([#4438](https://github.com/rubygems/bundler/issues/4438), @RochesterinNYC) # 1.12.0.rc.3 (April 19, 2016) ## Bug fixes: - don't allow new attributes to dirty a lockfile when running `bundle exec`, `-rbundler/setup`, or `bundle check` (@segiddins) # 1.12.0.rc.2 (April 15, 2016) ## Features: - `bundle outdated` handles all combinations of `--major`, `--minor`, and `--patch` ([#4396](https://github.com/rubygems/bundler/issues/4396), @RochesterinNYC) ## Bug fixes: - prevent endless recursive copy for `bundle package --all` ([#4392](https://github.com/rubygems/bundler/issues/4392), @RochesterinNYC) - allow executables that are `load`ed to exit non-0 via an `at_exit` hook when invoked by `bundle exec` (@segiddins) - nested invocations of `bundle exec` properly preserve the `$PATH` and `$GEM_PATH` environment variables (@segiddins) # 1.12.0.rc (March 13, 2016) ## Performance: - Download gem metadata from globally distributed CDN endpoints ([#4358](https://github.com/rubygems/bundler/issues/4358), @segiddins) ## Bug fixes: - handle Ruby pre-releases built from source ([#4324](https://github.com/rubygems/bundler/issues/4324), @RochesterinNYC) - support binstubs from RubyGems 2.6 ([#4341](https://github.com/rubygems/bundler/issues/4341), @segiddins) - handle quotes present in in PATH ([#4326](https://github.com/rubygems/bundler/issues/4326), @segiddins) # 1.12.0.pre.2 (February 26, 2016) ## Performance: - speed up `bundle exec` by `load`ing the executable whenever possible, saving roughly .2 seconds per invocation (@segiddins) ## Features: - add a `--patch` flag for `bundle outdated` (@RochesterinNYC) - add `Bundler.clean_env` and `Bundler.original_env` ([#4232](https://github.com/rubygems/bundler/issues/4232), @njam) - add `--frozen` support to `bundle package` ([#3356](https://github.com/rubygems/bundler/issues/3356), @RochesterinNYC) ## Bug fixes: - place bundler loaded gems after `-I` and `RUBYLIB` (@Elffers) - give a better error message when filesystem access raises an `EPROTO` error ([#3581](https://github.com/rubygems/bundler/issues/3581), [#3932](https://github.com/bundler/bundler/issues/3932), [#4163](https://github.com/bundler/bundler/issues/4163), @RochesterinNYC) - give a better error message when both `--deployment` and `--system` are used together (@RochesterinNYC) - fix `$PATH` being preserved for use in `Bundler.with_clean_env` ([#4251](https://github.com/rubygems/bundler/issues/4251), @segiddins, @njam) - give a better error message when running `bundle outdated` in frozen mode ([#4287](https://github.com/rubygems/bundler/issues/4287), @RochesterinNYC) - handle when `http_proxy` is set to `:no_proxy` in the rubygems configuration ([#4294](https://github.com/rubygems/bundler/issues/4294), @segiddins) - give a better error message when authentication details aren't properly escaped ([#4288](https://github.com/rubygems/bundler/issues/4288), @RochesterinNYC) - fix `bundle outdated --minor` to only report updates that match the current minor version (@RochesterinNYC) - fix extra dependencies being resolved unnecessarily ([#4276](https://github.com/rubygems/bundler/issues/4276), @segiddins) - give a better error message when missing specs due to platform mis-matches ([#4259](https://github.com/rubygems/bundler/issues/4259), @RochesterinNYC) - skip rebuilding extensions for git gems if they are already built ([#4082](https://github.com/rubygems/bundler/issues/4082), @csfrancis, @indirect, @segiddins) - fix `bundle install` not installing when the `no_install` setting is set ([#3966](https://github.com/rubygems/bundler/issues/3966), @chulkilee, @segiddins) # 1.12.0.pre.1 (February 9, 2016) ## Performance: - speed up `bundle install` and `bundle update` by using the new compact gem index (@segiddins, @fotanus, @indirect) - speed up `bundle exec` by avoiding loading the gemfile twice ([#2951](https://github.com/rubygems/bundler/issues/2951), [#2952](https://github.com/bundler/bundler/issues/2952), @segiddins) ## Features: - add support for using version operators to specify ruby versions in the Gemfile (@jtarchie) - redirect `--help` flag for plugins to that plugin's man page (@RochesterinNYC) - support probing a mirror with a fallback timeout ([#4128](https://github.com/rubygems/bundler/issues/4128), @pcarranza) - add `--full-index` option to `bundle lock` (@segiddins) - support running with frozen string literals (@deepj, @segiddins) - add `--major` and `--minor` options to `bundle outdated` ([#3805](https://github.com/rubygems/bundler/issues/3805), @cirdes) - allow passing a custom `ui` to `bundler/inline` (@lamont-granquist) - add support for ruby 2.4 ([#4266](https://github.com/rubygems/bundler/issues/4266), @segiddins) - add `bundle outdated --parseable` for machine-readable output (@RochesterinNYC) ## Bug fixes: - fix `bundle package --all` recursing endlessly ([#4158](https://github.com/rubygems/bundler/issues/4158), @RochesterinNYC) - fail fast on more errors when fetching remote resources ([#4154](https://github.com/rubygems/bundler/issues/4154), @RochesterinNYC) - give a better error message when a given git commit can't be found ([#4140](https://github.com/rubygems/bundler/issues/4140), @doy) - give a better error message when `bundle clean` doesn't have sufficient permissions ([#4170](https://github.com/rubygems/bundler/issues/4170), @RochesterinNYC) - give a better error message when reading a bundler config file fails (@segiddins) - restrict platforms when referencing a `gemspec` in the `Gemfile` to those defined in the gemspec ([#4102](https://github.com/rubygems/bundler/issues/4102), [#4150](https://github.com/bundler/bundler/issues/4150), @smellsblue) - fix `bundle gem` with minitest to use the correct rake task (@kotoshenya) - give a better error message when ssl isn't available ([#4054](https://github.com/rubygems/bundler/issues/4054), @RochesterinNYC) - print the original `require` error when `Bundler.require` fails ([#4182](https://github.com/rubygems/bundler/issues/4182), @RochesterinNYC) - give a better error message when certain resources are temporarily unavailable ([#4183](https://github.com/rubygems/bundler/issues/4183), @RochesterinNYC) - fix returning case-sensitive gem mirror URIs on ruby 2.3 (@segiddins) - ignore colorized output from `git` when determining the current branch ([#4056](https://github.com/rubygems/bundler/issues/4056), @agis-) - fix storing the shared gems config option as a boolean (@vassilevsky) - add support for running `bundle gem --exe` instead of using the `--bin` option (@christhekeele) - fix `exec`-ing with 0 args in a directory with spaces ([#4230](https://github.com/rubygems/bundler/issues/4230), @segiddins) - avoid installing extraneous gems when resolving to an older version of a spec ([#4101](https://github.com/rubygems/bundler/issues/4101), [#4198](https://github.com/bundler/bundler/issues/4198), @segiddins) - ensure paths resolved when parsing a gemfile are relative to that file ([#3349](https://github.com/rubygems/bundler/issues/3349), @dtognazzini) - give a better error message when encountering an invalid gemspec ([#4248](https://github.com/rubygems/bundler/issues/4248), [#4275](https://github.com/bundler/bundler/issues/4275), @RochesterinNYC) - preserve the original `PATH` in `Bundler.with_clean_env` ([#4251](https://github.com/rubygems/bundler/issues/4251), @segiddins) - ensure standalone file paths are relative to the project root ([#4144](https://github.com/rubygems/bundler/issues/4144), @glennpratt) # 1.11.2 (December 15, 2015) ## Bug fixes: - _really_ stop calling `required_ruby_version` on nil @specifications ([#4147](https://github.com/rubygems/bundler/issues/4147), @indirect) # 1.11.1 (December 15, 2015) ## Bug fixes: - lazy-load Psych, again ([#4149](https://github.com/rubygems/bundler/issues/4149), @indirect) - allow gemspec gems on other platforms ([#4150](https://github.com/rubygems/bundler/issues/4150), @indirect) - fix --no-coc and --no-mit flags on `gem` ([#4148](https://github.com/rubygems/bundler/issues/4148), @RochesterinNYC) - stop calling `required_ruby_version` on nil @specifications ([#4147](https://github.com/rubygems/bundler/issues/4147), @indirect) # 1.11.0 (December 12, 2015) No changes. # 1.11.0.pre.2 (December 6, 2015) ## Bug fixes: - fail gracefully when trying to execute a non-executable file ([#4081](https://github.com/rubygems/bundler/issues/4081), @fotanus) - fix a crash when pushing a gem via `rake release` (@segiddins) # 1.11.0.pre.1 (November 29, 2015) ## Features: - actual Gemfile and lockfile filenames are used in messages ([#3672](https://github.com/rubygems/bundler/issues/3672), @segiddins) - the git remote for `rake release` is now customizable (@skateman) - file access permissions errors are now much more friendly ([#3703](https://github.com/rubygems/bundler/issues/3703), [#3735](https://github.com/bundler/bundler/issues/3735), [#3858](https://github.com/bundler/bundler/issues/3858), [#3988](https://github.com/bundler/bundler/issues/3988), [#4009](https://github.com/bundler/bundler/issues/4009) @repinel, @Elffers, @segiddins, @agis-) - add support for showing help for plugin commands (@tf) - send `X-Gemfile-Source` header to source mirrors (@agis-) - show what version upstream dependencies were resolved to in conflict messages (@segiddins) - add support for using bundler setting to add private access credentials for git sources (@frsyuki) - take into consideration HTTP proxy settings in `.gemrc` (@PG-kura) - allow specifying a gem host to push to in the `GEM_HOST` environment variable (@pmenglund) - when gempec `required_ruby_version` is available and the Gemfile specifies a ruby version, resolve for the given ruby version (@segiddins) - allow setting a `silence_root_warning` setting to silence the warning when `bundle install` is run as root (@blackxored) - update the `bundle gem` code of conduct template to Contributor Covenant v1.3.0 (@CoralineAda) - add support for specifying gems to update when running `bundle lock` via `--update gem1 gem2` (@JuanitoFatas) - added support for MRI 2.3 (@amatsuda) - show a helpful message when requiring a file in `bundler require` fails ([#3960](https://github.com/rubygems/bundler/issues/3960), @agis-) - include git revision hash when printing a git source ([#3433](https://github.com/rubygems/bundler/issues/3433), @agis-) - improve hint when a resolution conflict occurs (@seanlinsley) - show a friendly error when a git ref is not found ([#3879](https://github.com/rubygems/bundler/issues/3879), @agis-) - improve error message when sources are not absolute URIs ([#3925](https://github.com/rubygems/bundler/issues/3925), @agis-) - add `pkg` to rake's clobber list ([#3676](https://github.com/rubygems/bundler/issues/3676), @jasonkarns) - retry fetching specs when fetching version metadata fails (@jingweno) ## Bug fixes: - avoid showing bundler version warning messages twice (@fotanus) - fix running `bundle check` with `--path` when the gems are only installed globally (@akihiro17) - fix `bin/setup` from `bundle gem` assuming `bash` is in `/bin` - fail more gracefully when an HTTP remote is unreachable ([#3765](https://github.com/rubygems/bundler/issues/3765), @steverob) - fix a warning running `bundle exec` on jruby 9.0.0.0 (@deivid-rodriguez, @mastfish) - fix the `bundle gem` readme when no tests are generated (@roseweixel) - the dependencies on test gems in `bundle gem` are now locked to major versions ([#3811](https://github.com/rubygems/bundler/issues/3811), @indirect) - fix the paths for native extensions generated by `--standalone` ([#3813](https://github.com/rubygems/bundler/issues/3813), @AlexanderPavlenko) - fix trying to cache a gem that has no source (@EduardoBautista) - fix `--source` option to `bundle update` causing incorrect gem unlocking ([#3759](https://github.com/rubygems/bundler/issues/3759), [#3761](https://github.com/bundler/bundler/issues/3761), @neoeno) - fix handling an empty `BUNDLE_GEMFILE` environment variables ([#3678](https://github.com/rubygems/bundler/issues/3678), @agis-) - avoid cleaning up gem extension directory in `bundle clean` (@Sirupsen) - fix the `ssl_verify_mode` setting not being treated as a number (@goughy000) - fix not retrying on zlib errors ([#4047](https://github.com/rubygems/bundler/issues/4047), @andremedeiros) - fix a warning being shown for using `URI.encode` (@EduardoBautista) - fix handling of fatal HTTP errors ([#3830](https://github.com/rubygems/bundler/issues/3830), @indirect) - ensure all `sudo` access is done in a thread-safe manner ([#3910](https://github.com/rubygems/bundler/issues/3910), @agis-) - fix caching gems with a path with the same prefix as the bundled application (@indirect) - fix showing gemspec validation errors on `bundle exec` ([#3895](https://github.com/rubygems/bundler/issues/3895), @agis-) - distinguish Gemfile syntax and evaluation errors ([#3783](https://github.com/rubygems/bundler/issues/3783), @agis-) - fix nested Gemfile sources not restoring the previous source ([#3974](https://github.com/rubygems/bundler/issues/3974), @agis-) - fix the `RUBYLIB` environment variable not being cleaned ([#3982](https://github.com/rubygems/bundler/issues/3982), @agis-) - fix handling a dependency missing from `Gemfile.lock` so parallel installation does not deadlock ([#4012](https://github.com/rubygems/bundler/issues/4012), @lukaso) - also print gemspecs in `bundle env` output (@agis-) - fix handling when a `path` source does not have a gemspec but a lockfile says there is ([#4004](https://github.com/rubygems/bundler/issues/4004), @segiddins) - show a warning when the `RUBYGEMS_GEMDEPS` environment variable is set ([#3656](https://github.com/rubygems/bundler/issues/3656), @agis-) - fix handling invalid RubyGems configuration files ([#4042](https://github.com/rubygems/bundler/issues/4042), @agis-) - fix `bundle console` falling back to `irb` when the preferred console is unavailable (@felixbuenemann) - restrict platforms when referencing a `gemspec` in the `Gemfile` to those defined in the gemspec ([#4102](https://github.com/rubygems/bundler/issues/4102), @smellsblue) ## Performance: - speed up dependency resolution in pathological cases by 25x ([#3803](https://github.com/rubygems/bundler/issues/3803), @segiddins) - drop string allocations when searching for gems (@jrafanie) # 1.10.6 (July 22, 2015) ## Bug fixes: - only warn on invalid gemspecs (@indirect) - fix installing dependencies in the correct order ([#3799](https://github.com/rubygems/bundler/issues/3799), @pducks32) - fix sorting of mixed DependencyLists ([#3762](https://github.com/rubygems/bundler/issues/3762), @tony-spataro-rs) - fix `install_if` conditionals when using the block form (@danieltdt) # 1.10.5 (June 24, 2015) ## Bug fixes: - don't add or update BUNDLED WITH during `install` with no changes (@segiddins) - fix sorting of mixed DependencyLists with RubyGems >= 2.23 ([#3762](https://github.com/rubygems/bundler/issues/3762), @tony-spataro-rs) - speed up resolver for path and git gems (@segiddins) - fix `install --force` to not reinstall Bundler ([#3743](https://github.com/rubygems/bundler/issues/3743), @karlo57) # 1.10.4 (June 16, 2015) ## Bug fixes: - don't add BUNDLED WITH to the lock when Spring runs `check` over and over (@indirect) - display "with native extensions" log output correctly (@ivantsepp) - alias `i` to `install`, `c` to `check`, and `e` to `exec` (@indirect) # 1.10.3 (June 3, 2015) ## Bug fixes: - allow missing gemspec files when validating path and git gems ([#3686](https://github.com/rubygems/bundler/issues/3686), [#3698](https://github.com/bundler/bundler/issues/3698), @segiddins) - fix regression in `rake install` ([#3701](https://github.com/rubygems/bundler/issues/3701), [#3705](https://github.com/bundler/bundler/issues/3705), @segiddins) - fix regression when calling `gem` with `bundle exec` or `-rbundler/setup` ([#3699](https://github.com/rubygems/bundler/issues/3699), @segiddins) - fix `bundler/inline` requiring a newly-installed gem ([#3693](https://github.com/rubygems/bundler/issues/3693), @indirect, @segiddins) # 1.10.2 (May 29, 2015) ## Bug fixes: - fix regression in `bundle update GEM` performance introduced in 1.10.0 ([#3687](https://github.com/rubygems/bundler/issues/3687), @segiddins) # 1.10.1 (May 28, 2015) ## Bug fixes: - silence ruby warning when running CLI commands (@segiddins) - validate gemspecs in non-packaging mode ([#3681](https://github.com/rubygems/bundler/issues/3681), @segiddins) - ensure the same chdir mutex as RubyGems is used ([#3680](https://github.com/rubygems/bundler/issues/3680), @segiddins) # 1.10.0 (May 28, 2015) No changes. # 1.10.0.rc (May 16, 2015) ## Features: - dramatically speed up resolving some slow Gemfiles ([#3635](https://github.com/rubygems/bundler/issues/3635), @segiddins) - track CI platforms running Bundler ([#3646](https://github.com/rubygems/bundler/issues/3646), @fotanus) ## Bug fixes: - allow `viz` to work with prereleases ([#3621](https://github.com/rubygems/bundler/issues/3621), [#3217](https://github.com/bundler/bundler/issues/3217), @aprescott) - validate gemspecs used in path and git gems ([#3639](https://github.com/rubygems/bundler/issues/3639), @segiddins, @indirect) - stop printing config warnings when config is unchanged ([#3649](https://github.com/rubygems/bundler/issues/3649), @fotanus, @indirect) - Without groups saved via `config` are no longer ignored when the `--without` flag is used # 1.10.0.pre.2 (May 7, 2015) ## Bug fixes: - make BUNDLED WITH backwards compatible ([#3623](https://github.com/rubygems/bundler/issues/3623), @segiddins) # 1.10.0.pre.1 (May 5, 2015) ## Bug fixes: - always clean up tmp dirs ([#3277](https://github.com/rubygems/bundler/issues/3277), @hone, @indirect, @segiddins) # 1.10.0.pre (May 3, 2015) ## Features: - support gem extensions built into any directory on RubyGems 2.2+ ([#3582](https://github.com/rubygems/bundler/issues/3582), @voxik) - add 'bundler/inline' which provides a `gemfile` method ([#3440](https://github.com/rubygems/bundler/issues/3440), @segiddins) - improved error reports for Gemfile errors ([#3480](https://github.com/rubygems/bundler/issues/3480), @segiddins) - `lock` command ([#3437](https://github.com/rubygems/bundler/issues/3437), @segiddins) - add `ignore_messages` config to suppress post-install text ([#3510](https://github.com/rubygems/bundler/issues/3510), @pducks32) - improve `gem` minitest template ([#3513](https://github.com/rubygems/bundler/issues/3513), [#3515](https://github.com/bundler/bundler/issues/3515), @arthurnn) - add `install --force` to re-install installed gems ([#3519](https://github.com/rubygems/bundler/issues/3519), @segiddins) - show more `outdated` information, including groups (@smlance, @indirect) - add optional groups to the Gemfile ([#3531](https://github.com/rubygems/bundler/issues/3531), @jhass) - accept glob argument to `gemspec` in Gemfile ([#3464](https://github.com/rubygems/bundler/issues/3464), @pjump) - make timeouts and retries configurable via `config` ([#3601](https://github.com/rubygems/bundler/issues/3601), @pducks32) - add `install_if` Gemfile method for conditional installs ([#3611](https://github.com/rubygems/bundler/issues/3611), @segiddins) ## Bug fixes: - standalone mode now uses builtin gems correctly ([#3610](https://github.com/rubygems/bundler/issues/3610), @segiddins) - fix `rake spec:deps` on MinGW Ruby 2.0+ ([#3487](https://github.com/rubygems/bundler/issues/3487), @marutosi) - remember all y/n answers when generating gems ([#3579](https://github.com/rubygems/bundler/issues/3579), @pducks32) ## Performance: - use RubyGems stub specifications when possible ([#3580](https://github.com/rubygems/bundler/issues/3580), @segiddins) ## Deprecations: - deprecated the (never enabled) `bundle_ruby` binary (@smlance) # 1.9.10 (June 22, 2015) ## Features: - the `BUNDLED WITH` section of lockfiles generated by 1.10+ will be preserved (@segiddins) # 1.9.9 (May 16, 2015) ## Bug fixes: - read mirror and credential settings from older versions ([#3557](https://github.com/rubygems/bundler/issues/3557), @Strech) # 1.9.8 (May 12, 2015) ## Bug fixes: - fix regression in sudo mode introduced by 1.9.7 ([#3642](https://github.com/rubygems/bundler/issues/3642), @segiddins) # 1.9.7 (May 11, 2015) ## Bug fixes: - always clean up tmp dirs ([#3277](https://github.com/rubygems/bundler/issues/3277), @hone, @indirect, @segiddins) # 1.9.6 (May 2, 2015) ## Bug fixes: - use RubyGems spec stubs if available (@segiddins) - allow creating gems with names containing two dashes ([#3483](https://github.com/rubygems/bundler/issues/3483), @janlelis) - allow creating gems with names extending constants ([#3603](https://github.com/rubygems/bundler/issues/3603), @amatsuda) # 1.9.5 (April 29, 2015) ## Bug fixes: - respect Gemfile sources when installing a gem present in two sources ([#3585](https://github.com/rubygems/bundler/issues/3585), @tmoore) # 1.9.4 (April 13, 2015) ## Bug fixes: - fix regression in installing x86 and universal gems ([#3565](https://github.com/rubygems/bundler/issues/3565), @jdmundrawala) - improve error when gems are missing ([#3564](https://github.com/rubygems/bundler/issues/3564), @sealocal) # 1.9.3 (April 12, 2015) ## Bug fixes: - handle removal of `specs` from rubygems/rubygems@620910 ([#3558](https://github.com/rubygems/bundler/issues/3558), @indirect) - install 'universal' gems on Windows ([#3066](https://github.com/rubygems/bundler/issues/3066), @jdmundrawala) - stop passing --local during `rake install` task ([#3236](https://github.com/rubygems/bundler/issues/3236), @indirect) - guard against all possible accidental public gem pushes ([#3533](https://github.com/rubygems/bundler/issues/3533), @indirect) # 1.9.2 (March 30, 2015) ## Bug fixes: - ensure gem executables are executable ([#3517](https://github.com/rubygems/bundler/issues/3517), [#3511](https://github.com/bundler/bundler/issues/3511), @indirect) - fix warnings in Molinillo ([#3516](https://github.com/rubygems/bundler/issues/3516), @segiddins) - ensure duplicate dependencies do not propagate ([#3522](https://github.com/rubygems/bundler/issues/3522), @segiddins) - keep gems locked when updating another gem from the same source ([#3520](https://github.com/rubygems/bundler/issues/3520), @indirect) - resolve race that could build gems without saved arguments ([#3404](https://github.com/rubygems/bundler/issues/3404), @indirect) # 1.9.1 (March 21, 2015) ## Bug fixes: - avoid exception in 'bundler/gem_tasks' ([#3492](https://github.com/rubygems/bundler/issues/3492), @segiddins) # 1.9.0 (March 20, 2015) # 1.9.0.rc (March 13, 2015) ## Bug fixes: - make Bundler.which stop finding directories (@nohoho) - handle Bundler prereleases correctly ([#3470](https://github.com/rubygems/bundler/issues/3470), @segiddins) - add before_install to .travis.yml template for new gems (@kodnin) # 1.9.0.pre.1 (March 11, 2015) ## Bug fixes: - make `gem` command work again (@arthurnn) # 1.9.0.pre (March 11, 2015) ## Features: - prefer gemspecs closest to the directory root ([#3428](https://github.com/rubygems/bundler/issues/3428), @segiddins) - debug log for API request limits ([#3452](https://github.com/rubygems/bundler/issues/3452), @neerfri) ## Enhancements: - Molinillo resolver, shared with CocoaPods (@segiddins) - updated Thor to v0.19.1 (@segiddins) # 1.8.9 (May 2, 2015) ## Bug fixes: - Use RubyGems spec stubs if available (@segiddins) # 1.8.8 (April 29, 2015) ## Bug fixes: - Respect Gemfile sources when installing a gem present in two sources ([#3585](https://github.com/rubygems/bundler/issues/3585), @tmoore) # 1.8.7 (April 7, 2015) ## Bug fixes: - stop suppressing errors inside gems that get required ([#3549](https://github.com/rubygems/bundler/issues/3549), @indirect) # 1.8.6 (March 30, 2015) ## Bug fixes: - keep gems locked when updating another gem from the same source ([#3250](https://github.com/rubygems/bundler/issues/3250), @indirect) - resolve race that could build gems without saved arguments ([#3404](https://github.com/rubygems/bundler/issues/3404), @indirect) # 1.8.5 (March 11, 2015) ## Bug fixes: - remove MIT license from gemspec when removing license file (@indirect) - respect 'no' immediately as well as saving it in `gem` config (@kirs) # 1.8.4 (March 5, 2015) ## Bug fixes: - document --all-platforms option ([#3449](https://github.com/rubygems/bundler/issues/3449), @moeffju) - find gems from all sources on exec after install ([#3450](https://github.com/rubygems/bundler/issues/3450), @TimMoore) # 1.8.3 (February 24, 2015) ## Bug fixes: - handle boolean values for gem settings (@EduardoBautista) - stop always looking for updated `path` gems ([#3414](https://github.com/rubygems/bundler/issues/3414), [#3417](https://github.com/bundler/bundler/issues/3417), [#3429](https://github.com/bundler/bundler/issues/3429), @TimMoore) # 1.8.2 (February 14, 2015) ## Bug fixes: - allow config settings for gems with 'http' in the name again ([#3398](https://github.com/rubygems/bundler/issues/3398), @TimMoore) # 1.8.1 (February 13, 2015) ## Bug fixes: - synchronize building git gem native extensions ([#3385](https://github.com/rubygems/bundler/issues/3385), @antifuchs & @indirect) - set gemspec bindir correctly ([#3392](https://github.com/rubygems/bundler/issues/3392), @TimMoore) - request lockfile deletion when it is malformed ([#3396](https://github.com/rubygems/bundler/issues/3396), @indirect) - explain problem when mirror config is missing ([#3386](https://github.com/rubygems/bundler/issues/3386), @indirect) - explain problem when caching causes permission error ([#3390](https://github.com/rubygems/bundler/issues/3390), @indirect) - normalize URLs in config keys ([#3391](https://github.com/rubygems/bundler/issues/3391), @indirect) # 1.8.0 (February 10, 2015) ## Bug fixes: - gemfile `github` blocks now work ([#3379](https://github.com/rubygems/bundler/issues/3379), @indirect) - look up installed gems in remote sources ([#3300](https://github.com/rubygems/bundler/issues/3300), [#3368](https://github.com/bundler/bundler/issues/3368), [#3377](https://github.com/bundler/bundler/issues/3377), [#3380](https://github.com/bundler/bundler/issues/3380), [#3381](https://github.com/bundler/bundler/issues/3381), @indirect) - look up gems across all sources to satisfy dependencies ([#3365](https://github.com/rubygems/bundler/issues/3365), @keiths-osc) - request dependencies for no more than 100 gems at a time ([#3367](https://github.com/rubygems/bundler/issues/3367), @segiddins) # 1.8.0.rc (January 26, 2015) ## Features: - add `config disable_multisource` option to ensure sources can't compete (@indirect) ## Bug fixes: - don't add extra quotes around long, quoted config values (@aroben, [#3338](https://github.com/rubygems/bundler/issues/3338)) ## Security fixes: - warn when more than one top-level source is present (@indirect) # 1.8.0.pre (January 26, 2015) ## Features: - add metadata allowed_push_host to new gem template ([#3002](https://github.com/rubygems/bundler/issues/3002), @juanitofatas) - adds a `--no-install` flag to `bundle package` (@d-reinhold) - add `bundle config auto_install true` to install automatically (@smashwilson) - add `bundle viz --without` to exclude gem groups from resulting graph (@fnichol) - prevent whitespace in gem declarations with clear messaging (@benlakey) - tries to find a `bundler-` executable on your path for non-bundler commands (@andremedeiros) - tries to find `gems.rb` and it's new counterpart, `gems.locked` (@andremedeiros) - change the initial version of new gems from `0.0.1` to `0.1.0` (@petedmarsh) - add `package --all-platforms` to cache gems for each known platform (@ccutrer) - speed up `exec` when running commands on the $PATH (@kirs) - add gem code of conduct file and option (@kirs) - add config settings for gem license and tests (@kirs) - add `bin/setup` and `bin/console` to new gems (@indirect) - include configured user-agent in network requests (@indirect) - support `github`, `gist`, and `bitbucket` options on git gems (@indirect) - add `package --cache-path` and `config cache_path` for cache location (@jnraine) - allow `config` to work even when a Gemfile is not present (@dholdren) - add `config gemfile /path` for other Gemfile locations (@dholdren) - add `github` method alonside the `git` method (@BenMorganIO) ## Bug fixes: - reduce memory usage with threaded parallel workers (@Who828) - support read-only git gems (@pmahoney) - various resolver performance improvements (@dubek) - untaint git gem paths for Rubygems compatibility (@tdtds) ## Documentation: - add missing Gemfile global `path` explanation (@agenteo) # 1.7.15 (April 29, 2015) ## Bug fixes: - Respect Gemfile sources when installing a gem present in two sources ([#3585](https://github.com/rubygems/bundler/issues/3585), @tmoore) # 1.7.14 (March 30, 2015) ## Bug fixes: - Keep gems locked when updating another gem from the same source ([#3250](https://github.com/rubygems/bundler/issues/3250), @indirect) - Don't add extra quotes around long, quoted config values (@aroben, [#3338](https://github.com/rubygems/bundler/issues/3338)) # 1.7.13 (February 7, 2015) ## Bug fixes: - Look up installed gems in remote sources ([#3300](https://github.com/rubygems/bundler/issues/3300), [#3368](https://github.com/bundler/bundler/issues/3368), [#3377](https://github.com/bundler/bundler/issues/3377), [#3380](https://github.com/bundler/bundler/issues/3380), [#3381](https://github.com/bundler/bundler/issues/3381), @indirect) - Look up gems across all sources to satisfy dependencies ([#3365](https://github.com/rubygems/bundler/issues/3365), @keiths-osc) - Request dependencies for no more than 100 gems at a time ([#3367](https://github.com/rubygems/bundler/issues/3367), @segiddins) # 1.7.12 (January 8, 2015) ## Bug fixes: - Always send credentials for sources, fixing private Gemfury gems ([#3342](https://github.com/rubygems/bundler/issues/3342), @TimMoore) # 1.7.11 (January 4, 2015) ## Bug fixes: - Recognize `:mri_22` and `:mingw_22`, rather than just `:ruby_22` ([#3328](https://github.com/rubygems/bundler/issues/3328), @myabc) # 1.7.10 (December 29, 2014) ## Bug fixes: - Fix source blocks sometimes causing deployment mode to fail wrongly ([#3298](https://github.com/rubygems/bundler/issues/3298), @TimMoore) ## Features: - Support `platform :mri_22` and related version bits ([#3309](https://github.com/rubygems/bundler/issues/3309), @thomasfedb) # 1.7.9 (December 9, 2014) ## Bug fixes: - Fix an issue where bundler sometime spams one gem in Gemfile.lock ([#3216](https://github.com/rubygems/bundler/issues/3216), @Who828) - Ensure bundle update installs the newer version of the gem ([#3089](https://github.com/rubygems/bundler/issues/3089), @Who828) - Fix an regression which stopped Bundler from resolving some Gemfiles ([#3059](https://github.com/rubygems/bundler/issues/3059), [#3248](https://github.com/bundler/bundler/issues/3248), @Who828) # 1.7.8 (December 6, 2014) ## Bug fixes: - Hide credentials while warning about gems with ambiguous sources ([#3256](https://github.com/rubygems/bundler/issues/3256), @TimMoore) # 1.7.7 (November 19, 2014) ## Bug fixes: - Ensure server credentials stored in config or ENV will be used ([#3180](https://github.com/rubygems/bundler/issues/3180), @arronmabrey) - Fix race condition causing errors while installing git-based gems ([#3174](https://github.com/rubygems/bundler/issues/3174), @Who828) - Use single quotes in config so YAML won't add more quotes ([#3261](https://github.com/rubygems/bundler/issues/3261), @indirect) # 1.7.6 (November 11, 2014) ## Bug fixes: - CA certificates that work with all OpenSSLs (@luislavena, @indirect) # 1.7.5 (November 10, 2014) ## Bug fixes: - Fix --deployment with source blocks and non-alphabetical gems ([#3224](https://github.com/rubygems/bundler/issues/3224), @TimMoore) - Vendor CA chain to validate new rubygems.org HTTPS certificate (@indirect) # 1.7.4 (October 19, 2014) ## Bug fixes: - Allow --deployment after `pack` while using source blocks ([#3167](https://github.com/rubygems/bundler/issues/3167), @TimMoore) - Use dependency API even when HTTP credentials are in ENV ([#3191](https://github.com/rubygems/bundler/issues/3191), @fvaleur) - Silence warnings (including root warning) in --quiet mode ([#3186](https://github.com/rubygems/bundler/issues/3186), @indirect) - Stop asking gem servers for gems already found locally ([#2909](https://github.com/rubygems/bundler/issues/2909), @dubek) # 1.7.3 (September 14, 2014) ## Bug fixes: - `extconf.rb` is now generated with the right path for `create_makefile` (@andremedeiros) - Fix various Ruby warnings (@piotrsanarki, @indirect) # 1.7.2 (August 23, 2014) ## Bug fixes: - Revert gem source sorting in lock files (@indirect) # 1.7.1 (August 20, 2014) ## Bug fixes: - Install gems from one source needed by gems in another source (@indirect) - Install the same gem versions even after some are installed (@TimMoore) - Download specs only when installing from servers (@indirect) # 1.7.0 (August 13, 2014) ## Security fixes: - Fix for CVE-2013-0334, installing gems from an unexpected source (@TimMoore) ## Features: - Gemfile `source` calls now take a block containing gems from that source (@TimMoore) - Added the `:source` option to `gem` to specify a source (@TimMoore) ## Bug fixes: - Warn on ambiguous gems available from more than one source (@TimMoore) # 1.6.7 (October 19, 2014) ## Features: - warn to upgrade when using useless source blocks (@danfinnie) ## Documentation: - explain how to use gem server credentials via ENV (@hwartig) # 1.6.6 (August 23, 2014) ## Bug fixes: - restore Gemfile credentials to Gemfile.lock (@indirect) # 1.6.5 (July 23, 2014) ## Bug fixes: - require openssl explicitly to fix rare HTTPS request failures (@indirect, [#3107](https://github.com/rubygems/bundler/issues/3107)) # 1.6.4 (July 17, 2014) ## Bug fixes: - fix undefined constant error when can't find gem during binstubs ([#3095](https://github.com/rubygems/bundler/issues/3095), @jetaggart) - work when installed git gems are not writable ([#3092](https://github.com/rubygems/bundler/issues/3092), @pmahoney) - don't store configured source credentials in Gemfile.lock ([#3045](https://github.com/rubygems/bundler/issues/3045), @lhz) - don't include config source credentials in the lockfile (Lars Haugseth) - use threads for jobs on Rubinius (@YorickPeterse) - skip dependencies from other platforms (@mvz) - work when Rubygems was built without SSL (@andremedeiros) # 1.6.3 (June 16, 2014) ## Bug fixes: - fix regression when resolving many conflicts ([#2994](https://github.com/rubygems/bundler/issues/2994), @Who828) - use local gemspec for builtin gems during install --local ([#3041](https://github.com/rubygems/bundler/issues/3041), @Who828) - don't warn about sudo when installing on Windows ([#2984](https://github.com/rubygems/bundler/issues/2984), @indirect) - shell escape `bundle open` arguments (@indirect) # 1.6.2 (April 13, 2014) ## Bug fixes: - fix an exception when using builtin gems ([#2915](https://github.com/rubygems/bundler/issues/2915), [#2963](https://github.com/bundler/bundler/issues/2963), @gnufied) - cache gems that are built in to the running ruby ([#2975](https://github.com/rubygems/bundler/issues/2975), @indirect) - re-allow deploying cached git gems without git installed ([#2968](https://github.com/rubygems/bundler/issues/2968), @aughr) - keep standalone working even with builtin gems (@indirect) - don't update vendor/cache in deployment mode ([#2921](https://github.com/rubygems/bundler/issues/2921), @indirect) ## Features: - warn informatively when `bundle install` is run as root ([#2936](https://github.com/rubygems/bundler/issues/2936), @1337807) # 1.6.1 (April 2, 2014) ## Bug fixes: - update C extensions when git gem versions change ([#2948](https://github.com/rubygems/bundler/issues/2948), @dylanahsmith) ## Features: - add support for C extensions in sudo mode on Rubygems 2.2 # 1.6.0 (March 28, 2014) ## Bug fixes: - many Gemfiles that caused incorrect errors now resolve correctly (@Who828) - redirects across hosts now work on rubies without OpenSSL ([#2686](https://github.com/rubygems/bundler/issues/2686), @grddev) - gemspecs now handle filenames with newlines ([#2634](https://github.com/rubygems/bundler/issues/2634), @jasonmp85) - support escaped characters in usernames and passwords (@punkie) - no more exception on `update GEM` without lock file (@simi) - allow long config values ([#2823](https://github.com/rubygems/bundler/issues/2823), @kgrz) - cache successfully even locked to gems shipped with Ruby ([#2869](https://github.com/rubygems/bundler/issues/2869), @aughr) - respect NO_PROXY even if a proxy is configured ([#2878](https://github.com/rubygems/bundler/issues/2878), @stlay) - only retry git commands that hit the network ([#2899](https://github.com/rubygems/bundler/issues/2899), @timmoore) - fix NameError regression when OpenSSL is not available ([#2898](https://github.com/rubygems/bundler/issues/2898), @timmoore) - handle exception installing when build_info owned by root (@Who828) - skip HTTP redirects from rubygems.org, huge speed boost (@Who828) ## Features: - resolver rewritten to avoid recursion (@Who828) - add `git_source` for custom options like :github and :gist (@strzalek) - HTTP auth may now be stored in `bundle config` (@smashwilson) - some complex Gemfiles are resolved up to 10x faster (@Who828) - add support for IRB alternatives such as Pry and Ripl (@joallard, @postmodern) - highlight installed or updated gems ([#2722](https://github.com/rubygems/bundler/issues/2722), [#2741](https://github.com/bundler/bundler/issues/2741), @yaotti, @simi) - display the `post_install_message` for gems installed via :git (@phallstrom) - `bundle outdated --strict` now only reports allowed updates (@davidblondeau) - `bundle show --verbose` Add gem summary to the output (@lardcanoe) - `bundle gem GEM --ext` now generates a skeleton for a C extension (@superdealloc) - Avoid using threequals operator where possible (@as-cii) - Add `bundle update --group` to update specific group ([#2731](https://github.com/rubygems/bundler/issues/2731) @banyan) ## Documentation: - Add missing switches for bundle-install(1) and bundle-update(1) (@as-cii) # 1.5.3 (February 6, 2014) ## Bug fixes: - find "missing" gems that are actually present ([#2780](https://github.com/rubygems/bundler/issues/2780), [#2818](https://github.com/bundler/bundler/issues/2818), [#2854](https://github.com/bundler/bundler/issues/2854)) - use n-1 cores when given n jobs for parallel install (@jdickey) # 1.5.2 (January 10, 2014) ## Bug fixes: - fix integration with Rubygems 1.8.0-1.8.19 - handle ENETDOWN exception during network requests - gracefully shut down after interrupt during parallel install (@Who828) - allow Rails to run Thor without debug mode (@rafaelfranca) - set git binstub permissions by umask (@v-yarotsky) - remove parallel install debug log # 1.5.1 (December 28, 2013) ## Bug fixes: - correctly find gems installed with Ruby by default # 1.5.0 (December 26, 2013) ## Features: - install missing gems if their specs are present (@hone) ## Bug fixes: - use print for "Installing…" so messages are thread-safe (@TimMoore) # 1.5.0.rc.2 (December 18, 2013) ## Features: - Support threaded installation on Rubygems 2.0.7+ - Debug installation logs in .bundle/install.log ## Bug fixes: - Try to catch gem installation race conditions # 1.5.0.rc.1 (November 9, 2013) ## Features: - bundle update also accepts --jobs ([#2692](https://github.com/rubygems/bundler/issues/2692), @mrkn) - add fork URL to README for new `bundle gem` ([#2665](https://github.com/rubygems/bundler/issues/2665), @zzak) - add `bundle outdated --strict` ([#2685](https://github.com/rubygems/bundler/issues/2685), @davidblondeau) - warn if same gem/version is added twice ([#2679](https://github.com/rubygems/bundler/issues/2679), @jendiamond) - don't redownload installed specs for `bundle install` ([#2680](https://github.com/rubygems/bundler/issues/2680), @cainlevy) - override gem sources with mirrors ([#2650](https://github.com/rubygems/bundler/issues/2650), @danielsdeleo, @mkristian) ## Bug fixes: - fix sharing same SSL socket when forking workers for parallel install ([#2632](https://github.com/rubygems/bundler/issues/2632)) - fix msg typo in GitNotAllowedError ([#2654](https://github.com/rubygems/bundler/issues/2654), @joyicecloud) - fix Bundler.which for directories ([#2697](https://github.com/rubygems/bundler/issues/2697), @rhysd) - properly require `Capistrano::Version` ([#2690](https://github.com/rubygems/bundler/issues/2690), @steveklabnik) - search for git.exe and git - fix the bug that downloads every spec when API fetcher encounters an error - only retry network requests # 1.4.0.rc.1 (September 29, 2013) ## Features: - add support for the x64-mingw32 platform ([#2356](https://github.com/rubygems/bundler/issues/2356), [#2590](https://github.com/bundler/bundler/issues/2590), @larskanis) - add :patchlevel option to ruby DSL - add `bundler` bin ([#2598](https://github.com/rubygems/bundler/issues/2598), @kirs) - friendly ambiguous error messages ([#2581](https://github.com/rubygems/bundler/issues/2581), [#2550](https://github.com/bundler/bundler/issues/2550), @jlsuttles, @jendiamond, @joyicecloud) - add `:jruby_18` and `:jruby_19` platform options (@mcfiredrill) - add X.509 client certificates for auth without passwords (@snackbandit) - add `exec --keep-file-descriptors` for Ruby 1.9-like behavior on 2.0 (@steved555) - print a better error when git is not installed (@joyicecloud) - exit non-zero when `outdated` is run with an unknown gem (@joyicecloud) - add `:ruby_21` platform option (@brandonblack) - add `--retry` to retry failed network and git commands (@schneems) - include command and versions in User-Agent (@indirect, @joyicecloud) ## Bug fixes: - allow passwordless Basic Auth ([#2606](https://github.com/rubygems/bundler/issues/2606), @rykov) - don't suggest `gem install foo` when `foo` is a git gem that fails (@kirs) - revert [#2569](https://github.com/rubygems/bundler/issues/2569), staying compatible with git: instead of https: for :github gems - handle exceptions while installing gems in parallel (@gnufied) # 1.4.0.pre.1 (August 4, 2013) ## Features: - retry network requests while installing gems ([#2561](https://github.com/rubygems/bundler/issues/2561), @ascherger) - faster installs using gemspecs from the local system cache ([#2497](https://github.com/rubygems/bundler/issues/2497), @mipearson) - add `bundle install -jN` for N parallel gem installations ([#2481](https://github.com/rubygems/bundler/issues/2481), @eagletmt) - add `ENV['DEBUG_RESOLVER_TREE']` outputs resolver tree (@dblock) - set $MANPATH so `bundle exec man name` works ([#1624](https://github.com/rubygems/bundler/issues/1624), @sunaku) - use `man` instead of `groff` ([#2579](https://github.com/rubygems/bundler/issues/2579), @ixti, @simi) - add Gemfile dependency info to bundle outdated output ([#2487](https://github.com/rubygems/bundler/issues/2487), @rahearn) - allow `require: true` as an alias for `require: ` ([#2538](https://github.com/rubygems/bundler/issues/2538), @ndbroadbent) - rescue and report Thor errors ([#2478](https://github.com/rubygems/bundler/issues/2478), @pjvds) - detect cyclic dependencies ([#2564](https://github.com/rubygems/bundler/issues/2564), @gnufied) - support multiple gems in `binstubs` ([#2576](https://github.com/rubygems/bundler/issues/2576), @lucasmazza) - use https instead of git for :github gems ([#2569](https://github.com/rubygems/bundler/issues/2569), @fuadsaud) - add quiet option to `bundle package` ([#2573](https://github.com/rubygems/bundler/issues/2573), @shtirlic) - use RUBYLIB instead of RUBYOPT for better Windows support ([#2536](https://github.com/rubygems/bundler/issues/2536), @equinux) ## Bug fixes: - reduce stack size while resolving to fix JRuby overflow ([#2510](https://github.com/rubygems/bundler/issues/2510), @headius) - display GitErrors while loading specs in --verbose mode ([#2461](https://github.com/rubygems/bundler/issues/2461)) - allow the same options hash to be passed to multiple gems ([#2447](https://github.com/rubygems/bundler/issues/2447)) - handle missing binaries without an exception ([#2019](https://github.com/rubygems/bundler/issues/2019), @luismreis) # 1.3.6 (January 8, 2014) ## Bug fixes: - make gemspec path option preserve relative paths in lock file (@bwillis) - use umask when creating binstubs ([#1618](https://github.com/rubygems/bundler/issues/1618), @v-yarotsky) - warn if graphviz is not installed ([#2435](https://github.com/rubygems/bundler/issues/2435), @Agis-) - show git errors while loading gemspecs - don't mutate gem method options hash ([#2447](https://github.com/rubygems/bundler/issues/2447)) - print Thor errors ([#2478](https://github.com/rubygems/bundler/issues/2478), @pjvds) - print Rubygems system exit errors (James Cook) - more Pathnames into Strings for MacRuby (@kml) - preserve original gemspec path (@bwillis) - remove warning about deps with :git ([#1651](https://github.com/rubygems/bundler/issues/1651), @ixti) - split git files on null ([#2634](https://github.com/rubygems/bundler/issues/2634), @jasonmp85) - handle cross-host redirects without SSL ([#2686](https://github.com/rubygems/bundler/issues/2686), @grddev) - handle Rubygems 2 security exception (@zzak) - reinstall gems if they are missing with spec present - set binstub permissions using umask ([#1618](https://github.com/rubygems/bundler/issues/1618), @v-yarotsky) # 1.3.5 (April 3, 2013) ## Features: - progress indicator while resolver is running (@chief) ## Bug fixes: - update local overrides with orphaned revisions (@jamesferguson) - revert to working quoting of RUBYOPT on Windows (@ogra) - use basic auth even when SSL is not available (@jayniz) - installing git gems without dependencies in deployment now works # 1.3.4 (March 15, 2013) ## Bug fixes: - load YAML on Rubygems versions that define module YAML - fix regression that broke --without on ruby 1.8.7 # 1.3.3 (March 13, 2013) ## Features: - compatible with Rubygems 2.0.2 (higher and lower already work) - mention skipped groups in bundle install and bundle update output (@simi) - `gem` creates rake tasks for minitest (@coop) and rspec ## Bug fixes: - require rbconfig for standalone mode # 1.3.2 (March 7, 2013) ## Features: - include rubygems.org CA chain ## Bug fixes: - don't store --dry-run as a Bundler setting # 1.3.1 (March 3, 2013) ## Bug fixes: - include manpages in gem, restoring many help pages - handle more SSL certificate verification failures - check for the full version of SSL, which we need (@alup) - gem rake task 'install' now depends on task 'build' (@sunaku) # 1.3.0 (February 24, 2013) ## Features: - raise a useful error when the lockfile contains a merge conflict (@zofrex) - ensure `rake release` checks for uncommitted as well as unstaged (@benmoss) - allow environment variables to be negated with 'false' and '0' (@brettporter) - set $MANPATH inside `exec` for gems with man pages (@sunaku) - partial gem names for `open` and `update` now return a list (@takkanm) ## Bug fixes: - `update` now (again) finds gems that aren't listed in the Gemfile - `install` now (again) updates cached gems that aren't in the Gemfile - install Gemfiles with HTTP sources even without OpenSSL present - display CerficateFailureError message in full # 1.3.0.pre.8 (February 12, 2013) ## Security fixes: - validate SSL certificate chain during HTTPS network requests - don't send HTTP Basic Auth creds when redirected to other hosts (@perplexes) - add `--trust-policy` to `install`, like `gem install -P` (@CosmicCat, [#2293](https://github.com/rubygems/bundler/issues/2293)) ## Features: - optimize resolver when too new of a gem is already activated (@rykov, [#2248](https://github.com/rubygems/bundler/issues/2248)) - update Net::HTTP::Persistent for SSL cert validation and no_proxy ENV - explain SSL cert validation failures - generate gemspecs when installing git repos, removing shellouts - add pager selection (@csgui) - add `licenses` command (@bryanwoods, [#1898](https://github.com/rubygems/bundler/issues/1898)) - sort output from `outdated` (@richardkmichael, [#1896](https://github.com/rubygems/bundler/issues/1896)) - add a .travis.yml to `gem -t` (@ndbroadbent, [#2143](https://github.com/rubygems/bundler/issues/2143)) - inform users when the resolver starts - disable reverse DNS to speed up API requests (@raggi) ## Bug fixes: - raise errors while requiring dashed gems ([#1807](https://github.com/rubygems/bundler/issues/1807)) - quote the Bundler path on Windows (@jgeiger, [#1862](https://github.com/rubygems/bundler/issues/1862), [#1856](https://github.com/bundler/bundler/issues/1856)) - load gemspecs containing unicode (@gaffneyc, [#2301](https://github.com/rubygems/bundler/issues/2301)) - support any ruby version in --standalone - resolve some ruby -w warnings (@chastell, [#2193](https://github.com/rubygems/bundler/issues/2193)) - don't scare users with an error message during API fallback - `install --binstubs` is back to overwriting. thanks, SemVer. # 1.3.0.pre.7 (January 22, 2013) ## Bug fixes: - stubs for gems with dev deps no longer cause exceptions ([#2272](https://github.com/rubygems/bundler/issues/2272)) - don't suggest binstubs to --binstubs users # 1.3.0.pre.6 (January 22, 2013) ## Features: - `binstubs` lists child gem bins if a gem has no binstubs - `bundle gem --edit` will open the new gemspec (@ndbroadbent) - `bundle gem --test rspec` now makes working tests (@tricknotes) - `bundle env` prints info about bundler's environment (@peeja) - add `BUNDLE_IGNORE_CONFIG` environment variable support (@richo) ## Bug fixes: - don't overwrite custom binstubs during `install --binstubs` - don't throw an exception if `binstubs` gem doesn't exist - `bundle config` now works in directories without a Gemfile # 1.3.0.pre.5 (January 9, 2013) ## Features: - make `--standalone` require lines ruby engine/version agnostic - add `--dry-run` to `bundle clean` (@wfarr, [#2237](https://github.com/rubygems/bundler/issues/2237)) ## Bug fixes: - don't skip writing binstubs when doing `bundle install` - distinguish between ruby 1.9/2.0 when using :platforms (@spastorino) # 1.3.0.pre.4 (January 3, 2013) ## Features: - `bundle binstubs ` to setup individual binstubs - `bundle install --binstubs ""` will remove binstubs option - `bundle clean --dry-run` will print out gems instead of removing them ## Bug fixes: - Avoid stack traces when Ctrl+C during bundle command (@mitchellh) - fix YAML parsing in in ruby-preview2 # 1.3.0.pre.3 (December 21, 2012) ## Features: - pushing gems during `rake release` can be disabled (@trans) - installing gems with `rake install` is much faster (@utkarshkukreti) - added platforms :ruby_20 and :mri_20, since the ABI has changed - added '--edit' option to open generated gemspec in editor ## Bug fixes: - :git gems with extensions now work with Rubygems >= 2.0 (@jeremy) - revert SemVer breaking change to :github - `outdated` exits non-zero if outdated gems found (@rohit, [#2021](https://github.com/rubygems/bundler/issues/2021)) - https Gist URLs for compatibility with Gist 2.0 (@NARKOZ) - namespaced gems no longer generate a superfluous directory (@banyan) # 1.3.0.pre.2 (December 9, 2012) ## Features: - `config` expands local overrides like `local.rack .` (@gkop, [#2205](https://github.com/rubygems/bundler/issues/2205)) - `gem` generates files correctly for names like `jquery-rails` (@banyan, [#2201](https://github.com/rubygems/bundler/issues/2201)) - use gems from gists with the :gist option in the Gemfile (@jgaskins) ## Bug fixes: - Gemfile sources other than rubygems.org work even when .gemrc contains sources - caching git gems now caches specs, fixing e.g. git ls-files (@bison, [#2039](https://github.com/rubygems/bundler/issues/2039)) - `show GEM` now warns if the directory has been deleted (@rohit, [#2070](https://github.com/rubygems/bundler/issues/2070)) - git output hidden when running in --quiet mode (@rohit) # 1.3.0.pre (November 29, 2012) ## Features: - compatible with Ruby 2.0.0-preview2 - compatible with Rubygems 2.0.0.preview2 (@drbrain, @evanphx) - ruby 2.0 added to the `:ruby19` ABI-compatible platform - lazy load YAML, allowing Psych to be specified in the Gemfile - significant performance improvements (@cheald, [#2181](https://github.com/rubygems/bundler/issues/2181)) - `inject` command for scripted Gemfile additions (Engine Yard) - :github option uses slashless arguments as repo owner (@rking) - `open` suggests gem names for typos (@jdelStrother) - `update` reports non-existent gems (@jdelStrother) - `gem` option --test can generate rspec stubs (@MafcoCinco) - `gem` option --test can generate minitest stubs (@kcurtin) - `gem` command generates MIT license (@BrentWheeldon) - gem rake task 'release' resuses existing tags (@shtirlic) ## Bug fixes: - JRuby new works with HTTPS gem sources (@davidcelis) - `install` installs both rake rake-built gems at once (@crowbot, [#2107](https://github.com/rubygems/bundler/issues/2107)) - handle Errno::ETIMEDOUT errors (@jmoses) - handle Errno::EAGAIN errors on JRuby - disable ANSI coloring when output is redirected (@tomykaira) - raise LoadErrors correctly during Bundler.require (@Empact) - do not swallow --verbose on `bundle exec` (@sol, [#2102](https://github.com/rubygems/bundler/issues/2102)) - `gem` generates gemspecs that block double-requires - `gem` generates gemspecs that admit they depend on rake # 1.2.5 (February 24, 2013) ## Bug fixes: - install Gemfiles with HTTP sources even without OpenSSL present - display CerficateFailureError message in full # 1.2.4 (February 12, 2013) ## Features: - warn about Ruby 2.0 and Rubygems 2.0 - inform users when the resolver starts - disable reverse DNS to speed up API requests (@raggi) ## Bug fixes: - don't send user/pass when redirected to another host (@perplexes) - load gemspecs containing unicode (@gaffneyc, [#2301](https://github.com/rubygems/bundler/issues/2301)) - support any ruby version in --standalone - resolve some ruby -w warnings (@chastell, [#2193](https://github.com/rubygems/bundler/issues/2193)) - don't scare users with an error message during API fallback # 1.2.3 (November 29, 2012) ## Bug fixes: - fix exceptions while loading some gemspecs # 1.2.2 (November 14, 2012) ## Bug fixes: - support new Psych::SyntaxError for Ruby 2.0.0 (@tenderlove, @sol) - `bundle viz` works with git gems again (@hirochachacha) - recognize more cases when OpenSSL is not present # 1.2.1 (September 19, 2012) ## Bug fixes: - `bundle clean` now works with BUNDLE_WITHOUT groups again - have a net/http read timeout around the Gemcutter API Endpoint # 1.2.0 (August 30, 2012) ## Bug fixes: - raise original error message from LoadError's ## Documentation: - `platform` man pages # 1.2.0.rc.2 (August 8, 2012) ## Bug fixes: - `clean` doesn't remove gems that are included in the lockfile # 1.2.0.rc (July 17, 2012) ## Features: - `check` now has a `--dry-run` option (@svenfuchs, [#1811](https://github.com/rubygems/bundler/issues/1811)) - loosen ruby directive for engines - prune git/path directories inside vendor/cache (@josevalim, [#1988](https://github.com/rubygems/bundler/issues/1988)) - update vendored thor to 0.15.2 (@sferik) - add .txt to LICENSE (@postmodern, [#2001](https://github.com/rubygems/bundler/issues/2001)) - add `config disable_local_branch_check` (@josevalim, [#1985](https://github.com/rubygems/bundler/issues/1985)) - fall back on the full index when experiencing syck errors ([#1419](https://github.com/rubygems/bundler/issues/1419)) - handle syntax errors in Ruby gemspecs ([#1974](https://github.com/rubygems/bundler/issues/1974)) ## Bug fixes: - fix `pack`/`cache` with `--all` (@josevalim, [#1989](https://github.com/rubygems/bundler/issues/1989)) - don't display warning message when `cache_all` is set - check for `nil` PATH ([#2006](https://github.com/rubygems/bundler/issues/2006)) - Always try to keep original GEM_PATH (@drogus, [#1920](https://github.com/rubygems/bundler/issues/1920)) # 1.2.0.pre.1 (May 27, 2012) ## Features: - Git gems import submodules of submodules recursively (@nwwatson, [#1935](https://github.com/rubygems/bundler/issues/1935)) ## Bug fixes: - Exit from `check` with a non-zero status when frozen with no lock - Use `latest_release` in Capistrano and Vlad integration ([#1264](https://github.com/rubygems/bundler/issues/1264)) - Work around a Ruby 1.9.3p194 bug in Psych when config files are empty ## Documentation: - Add instructions for local git repos to the `config` manpage - Update the `Gemfile` manpage to include ruby versions (@stevenh512) - When OpenSSL is missing, provide instructions for fixing ([#1776](https://github.com/rubygems/bundler/issues/1776) etc.) - Unknown exceptions now link to ISSUES for help instead of a new ticket - Correct inline help for `clean --force` (@dougbarth, [#1911](https://github.com/rubygems/bundler/issues/1911)) # 1.2.0.pre (May 4, 2012) ## Features: - bundle package now accepts --all to package git and path dependencies - bundle config now accepts --local, --global and --delete options - It is possible to override a git repository via configuration. For instance, if you have a git dependency on rack, you can force it to use a local repo with `bundle config local.rack ~/path/to/rack` - Cache gemspec loads for performance (@dekellum, [#1635](https://github.com/rubygems/bundler/issues/1635)) - add --full-index flag to `bundle update` (@fluxx, [#1829](https://github.com/rubygems/bundler/issues/1829)) - add --quiet flag to `bundle update` (@nashby, [#1654](https://github.com/rubygems/bundler/issues/1654)) - Add Bundler::GemHelper.gemspec (@knu, [#1637](https://github.com/rubygems/bundler/issues/1637)) - Graceful handling of Gemfile syntax errors (@koraktor, [#1661](https://github.com/rubygems/bundler/issues/1661)) - `bundle platform` command - add ruby to DSL, to specify version of ruby - error out if the ruby version doesn't match ## Performance: - bundle exec shouldn't run Bundler.setup just setting the right rubyopts options is enough (@spastorino, [#1598](https://github.com/rubygems/bundler/issues/1598)) ## Bug fixes: - Avoid passing RUBYOPT changes in with_clean_env block (@eric1234, [#1604](https://github.com/rubygems/bundler/issues/1604)) - Use the same ruby to run subprocesses as is running rake (@brixen) ## Documentation: - Add :github documentation in DSL (@zofrex, [#1848](https://github.com/rubygems/bundler/issues/1848), [#1851](https://github.com/bundler/bundler/issues/1851), [#1852](https://github.com/bundler/bundler/issues/1852)) - Add docs for the --no-cache option (@fluxx, [#1796](https://github.com/rubygems/bundler/issues/1796)) - Add basic documentation for bin_path and bundle_path (@radar) - Add documentation for the run method in Bundler::Installer # 1.1.5 (July 17, 2012) ## Features: - Special case `ruby` directive from 1.2.0, so you can install Gemfiles that use it # 1.1.4 (May 27, 2012) ## Bug fixes: - Use `latest_release` in Capistrano and Vlad integration ([#1264](https://github.com/rubygems/bundler/issues/1264)) - Unknown exceptions now link to ISSUES for help instead of a new ticket - When OpenSSL is missing, provide instructions for fixing ([#1776](https://github.com/rubygems/bundler/issues/1776) etc.) - Correct inline help for `clean --force` (@dougbarth, [#1911](https://github.com/rubygems/bundler/issues/1911)) - Work around a Ruby 1.9.3p194 bug in Psych when config files are empty # 1.1.3 (March 23, 2012) ## Bug fixes: - escape the bundler root path (@tenderlove, [#1789](https://github.com/rubygems/bundler/issues/1789)) # 1.1.2 (March 20, 2012) ## Bug fixes: - Fix --deployment for multiple PATH sections of the same source ([#1782](https://github.com/rubygems/bundler/issues/1782)) # 1.1.1 (March 14, 2012) ## Bug fixes: - Rescue EAGAIN so the fetcher works on JRuby on Windows - Stop asking users to report gem installation errors - Clarify "no sources" message - Use $\ so `bundle gem` gemspecs work on Windows (@postmodern) - URI-encode gem names for dependency API (@rohit, [#1672](https://github.com/rubygems/bundler/issues/1672)) - Fix `cache` edge case in rubygems 1.3.7 ([#1202](https://github.com/rubygems/bundler/issues/1202)) ## Performance: - Reduce invocation of git ls-files in `bundle gem` gemspecs (@knu) # 1.1.0 (March 7, 2012) ## Bug fixes: - Clean up corrupted lockfiles on bundle installs - Prevent duplicate GIT sources - Fix post_install_message when uing the endpoint API # 1.1.rc.8 (March 3, 2012) ## Performance: - don't resolve if the Gemfile.lock and Gemfile haven't changed ## Bug fixes: - Load gemspecs from git even when a released gem has the same version ([#1609](https://github.com/rubygems/bundler/issues/1609)) - Declare an accurate Ruby version requirement of 1.8.7 or newer ([#1619](https://github.com/rubygems/bundler/issues/1619)) - handle gemspec development dependencies correctly (@raggi, [#1639](https://github.com/rubygems/bundler/issues/1639)) - Avoid passing RUBYOPT changes in with_clean_env block. (eric1234, [#1604](https://github.com/rubygems/bundler/issues/1604)) # 1.1.rc.7 (December 29, 2011) ## Bug fixes: - Fix bug where `clean` would break when using :path with no gemspec # 1.1.rc.6 (December 22, 2011) ## Bug fixes: - Fix performance regression from 1.0 (@spastorino, [#1511](https://github.com/rubygems/bundler/issues/1511), [#1591](https://github.com/bundler/bundler/issues/1591), [#1592](https://github.com/bundler/bundler/issues/1592)) - Load gems correctly when GEM_HOME is blank - Refresh gems so Bundler works from inside a bundle - Handle empty .bundle/config files without an error # 1.1.rc.5 (December 14, 2011) ## Bug fixes: - Fix ASCII encoding errors with gem (rerelease with ruby 1.8) # 1.1.rc.4 (December 14, 2011) ## Features: - `bundle viz` has the option to output a DOT file instead of a PNG (@hirochachacha, [#683](https://github.com/rubygems/bundler/issues/683)) ## Bug fixes: - Ensure binstubs generated when using --standalone point to the standalonde bundle (@cowboyd, [#1588](https://github.com/rubygems/bundler/issues/1588)) - fix `bundle viz` (@hirochachacha, [#1586](https://github.com/rubygems/bundler/issues/1586)) # 1.1.rc.3 (December 8, 2011) ## Bug fixes: - fix relative_path so it checks Bundler.root is actually in the beginning of the path ([#1582](https://github.com/rubygems/bundler/issues/1582)) - fix bundle outdated doesn't list all gems (@joelmoss, [#1521](https://github.com/rubygems/bundler/issues/1521)) # 1.1.rc.2 (December 6, 2011) ## Features: - Added README.md to `newgem` (@ognevsky, [#1574](https://github.com/rubygems/bundler/issues/1574)) - Added LICENSE (MIT) to newgem (@ognevsky, [#1571](https://github.com/rubygems/bundler/issues/1571)) ## Bug fixes: - only auto-namespace requires for implied requires ([#1531](https://github.com/rubygems/bundler/issues/1531)) - fix bundle clean output for git repos ([#1473](https://github.com/rubygems/bundler/issues/1473)) - use Gem.bindir for bundle clean ([#1544](https://github.com/rubygems/bundler/issues/1544), [#1532](https://github.com/bundler/bundler/issues/1532)) - use `Gem.load_env_plugins` instead of `Gem.load_env_plugins` ([#1500](https://github.com/rubygems/bundler/issues/1500), [#1543](https://github.com/bundler/bundler/issues/1543)) - differentiate Ruby 2.0 (trunk) from Ruby 1.9 (@tenderlove, [#1539](https://github.com/rubygems/bundler/issues/1539)) - `bundle clean` handles 7 length git hash for bundle clean ([#1490](https://github.com/rubygems/bundler/issues/1490), [#1491](https://github.com/bundler/bundler/issues/1491)) - fix Psych loading issues - Search $PATH for a binary rather than shelling out to `which` (@tenderlove, [#1573](https://github.com/rubygems/bundler/issues/1573)) - do not clear RG cache unless we actually modify GEM_PATH and GEM_HOME- use `Gem.load_env_plugins` instead of `Gem.load_env_plugins` ([#1500](https://github.com/rubygems/bundler/issues/1500), [#1543](https://github.com/bundler/bundler/issues/1543)) - `newgem` now uses https://rubygems.org ([#1562](https://github.com/rubygems/bundler/issues/1562)) - `bundle init` now uses https://rubygems.org (@jjb, [#1522](https://github.com/rubygems/bundler/issues/1522)) - `bundle install/update` does not autoclean when using --path for semver ## Documentation: - added documentation for --shebang option for `bundle install` (@lunks, [#1475](https://github.com/rubygems/bundler/issues/1475), [#1558](https://github.com/bundler/bundler/issues/1558)) # 1.1.rc (October 3, 2011) ## Features: - add `--shebang` option to bundle install (@bensie, [#1467](https://github.com/rubygems/bundler/issues/1467)) - build passes on ruby 1.9.3rc1 ([#1458](https://github.com/rubygems/bundler/issues/1458), [#1469](https://github.com/bundler/bundler/issues/1469)) - hide basic auth credentials for custom sources ([#1440](https://github.com/rubygems/bundler/issues/1440), [#1463](https://github.com/bundler/bundler/issues/1463)) ## Bug fixes: - fix index search result caching ([#1446](https://github.com/rubygems/bundler/issues/1446), [#1466](https://github.com/bundler/bundler/issues/1466)) - fix fetcher prints multiple times during install ([#1445](https://github.com/rubygems/bundler/issues/1445), [#1462](https://github.com/bundler/bundler/issues/1462)) - don't mention API errors from non-rubygems.org sources - fix autoclean so it doesn't remove bins that are used ([#1459](https://github.com/rubygems/bundler/issues/1459), [#1460](https://github.com/bundler/bundler/issues/1460)) ## Documentation: - add :require => [...] to the gemfile(5) manpage (@nono, [#1468](https://github.com/rubygems/bundler/issues/1468)) # 1.1.pre.10 (September 27, 2011) ## Features: - `config system_bindir foo` added, works like "-n foo" in your .gemrc file # 1.1.pre.9 (September 18, 2011) ## Features: - `clean` will now clean up all old .gem and .gemspec files, cleaning up older pres - `clean` will be automatically run after bundle install and update when using `--path` ([#1420](https://github.com/rubygems/bundler/issues/1420), [#1425](https://github.com/bundler/bundler/issues/1425)) - `clean` now takes a `--force` option ([#1247](https://github.com/rubygems/bundler/issues/1247), [#1426](https://github.com/bundler/bundler/issues/1426)) - `clean` will clean up cached git dirs in bundle clean ([#1390](https://github.com/rubygems/bundler/issues/1390)) - remove deprecations from DSL ([#1119](https://github.com/rubygems/bundler/issues/1119)) - autorequire tries directories for gems with dashed names ([#1205](https://github.com/rubygems/bundler/issues/1205)) - adds a `--paths` flag to `bundle show` to list all the paths of bundled gems (@tiegz, [#1360](https://github.com/rubygems/bundler/issues/1360)) - load rubygems plugins in the bundle binary (@tpope, [#1364](https://github.com/rubygems/bundler/issues/1364)) - make `--standalone` respect `--path` (@cowboyd, [#1361](https://github.com/rubygems/bundler/issues/1361)) ## Bug fixes: - Fix `clean` to handle nested gems in a git repo ([#1329](https://github.com/rubygems/bundler/issues/1329)) - Fix conflict from revert of benchmark tool (@boffbowsh, [#1355](https://github.com/rubygems/bundler/issues/1355)) - Fix fatal error when unable to connect to gem source ([#1269](https://github.com/rubygems/bundler/issues/1269)) - Fix `outdated` to find pre-release gems that are installed. ([#1359](https://github.com/rubygems/bundler/issues/1359)) - Fix color for ui. ([#1374](https://github.com/rubygems/bundler/issues/1374)) - Fix installing to user-owned system gems on OS X - Fix caching issue in the resolver ([#1353](https://github.com/rubygems/bundler/issues/1353), [#1421](https://github.com/bundler/bundler/issues/1421)) - Fix :github DSL option # 1.1.pre.8 (August 13, 2011) ## Bug fixes: - Fix `bundle check` to not print fatal error message (@cldwalker, [#1347](https://github.com/rubygems/bundler/issues/1347)) - Fix require_sudo when Gem.bindir isn't writeable ([#1352](https://github.com/rubygems/bundler/issues/1352)) - Fix not asking Gemcutter API for dependency chain of git gems in --deployment ([#1254](https://github.com/rubygems/bundler/issues/1254)) - Fix `install --binstubs` when using --path ([#1332](https://github.com/rubygems/bundler/issues/1332)) # 1.1.pre.7 (August 8, 2011) ## Bug fixes: - Fixed invalid byte sequence error while installing gem on Ruby 1.9 ([#1341](https://github.com/rubygems/bundler/issues/1341)) - Fixed exception when sudo was needed to install gems (@spastorino) # 1.1.pre.6 (August 8, 2011) ## Bug fixes: - Fix cross repository dependencies ([#1138](https://github.com/rubygems/bundler/issues/1138)) - Fix git dependency fetching from API endpoint ([#1254](https://github.com/rubygems/bundler/issues/1254)) - Fixes for bundle outdated (@joelmoss, [#1238](https://github.com/rubygems/bundler/issues/1238)) - Fix bundle standalone when using the endpoint ([#1240](https://github.com/rubygems/bundler/issues/1240)) ## Features: - Implement `to_ary` to avoid calls to method_missing (@tenderlove, [#1274](https://github.com/rubygems/bundler/issues/1274)) - bundle clean removes old .gem files (@cldwalker, [#1293](https://github.com/rubygems/bundler/issues/1293)) - Correctly identify missing child dependency in error message - Run pre-install, post-build, and post-install gem hooks for git gems (@warhammerkid, [#1120](https://github.com/rubygems/bundler/issues/1120)) - create Gemfile.lock for empty Gemfile ([#1218](https://github.com/rubygems/bundler/issues/1218)) # 1.1.pre.5 (June 11, 2011) ## Bug fixes: - Fix LazySpecification on Ruby 1.9 (@dpiddy, [#1232](https://github.com/rubygems/bundler/issues/1232)) - Fix HTTP proxy support (@leobessa, [#878](https://github.com/rubygems/bundler/issues/878)) ## Features: - Speed up `install --deployment` by using the API endpoint - Support Basic HTTP Auth for the API endpoint (@dpiddy, [#1229](https://github.com/rubygems/bundler/issues/1229)) - Add `install --full-index` to disable the API endpoint, just in case - Significantly speed up install by removing unneeded gemspec fetches - `outdated` command shows outdated gems (@joelmoss, [#1130](https://github.com/rubygems/bundler/issues/1130)) - Print gem post install messages (@csquared, [#1155](https://github.com/rubygems/bundler/issues/1155)) - Reduce memory use by removing Specification.new inside method_missing (@tenderlove, [#1222](https://github.com/rubygems/bundler/issues/1222)) - Allow `check --path` # 1.1.pre.4 (May 5, 2011) ## Bug fixes: - Fix bug that could prevent installing new gems # 1.1.pre.3 (May 4, 2011) ## Features: - Add `bundle outdated` to show outdated gems (@joelmoss) - Remove BUNDLE_* from `Bundler.with_clean_env` (@wuputah) - Add Bundler.clean_system, and clean_exec (@wuputah) - Use git config for gem author name and email (@krekoten) ## Bug fixes: - Fix error calling Bundler.rubygems.gem_path - Fix error when Gem.path returns Gem::FS instead of String # 1.1.pre.2 (April 28, 2011) ## Features: - Add :github option to Gemfile DSL for easy git repos - Merge all fixes from 1.0.12 and 1.0.13 # 1.1.pre.1 (February 2, 2011) ## Bug fixes: - Compatibility with changes made by Rubygems 1.5 # 1.1.pre (January 21, 2011) ## Features: - Add bundle clean. Removes unused gems from --path directory - Initial Gemcutter Endpoint API work, BAI Fetching source index - Added bundle install --standalone - Ignore Gemfile.lock when building new gems - Make it possible to override a .gemspec dependency's source in the Gemfile ## Breaking changes: - Removed bundle lock - Removed bundle install - Removed bundle install --production - Removed bundle install --disable-shared-gems # 1.0.21 (September 30, 2011) No changes. # 1.0.21.rc (September 29, 2011) ## Bug fixes: - Load Psych unless Syck is defined, because 1.9.2 defines YAML # 1.0.20 (September 27, 2011) ## Features: - Add platform :maglev (@timfel, [#1444](https://github.com/rubygems/bundler/issues/1444)) ## Bug fixes: - Ensure YAML is required even if Psych is found - Handle directory names that contain invalid regex characters # 1.0.20.rc (September 18, 2011) ## Features: - Rescue interrupts to `bundle` while loading bundler.rb ([#1395](https://github.com/rubygems/bundler/issues/1395)) - Allow clearing without groups by passing `--without ''` ([#1259](https://github.com/rubygems/bundler/issues/1259)) ## Bug fixes: - Manually sort requirements in the lockfile ([#1375](https://github.com/rubygems/bundler/issues/1375)) - Remove several warnings generated by ruby -w (@stephencelis) - Handle trailing slashes on names passed to `gem` ([#1372](https://github.com/rubygems/bundler/issues/1372)) - Name modules for gems like 'test-foo_bar' correctly ([#1303](https://github.com/rubygems/bundler/issues/1303)) - Don't require Psych if Syck is already loaded ([#1239](https://github.com/rubygems/bundler/issues/1239)) # 1.0.19.rc (September 13, 2011) ## Features: - Compatibility with Rubygems 1.8.10 installer changes - Report gem installation failures clearly (@rwilcox, [#1380](https://github.com/rubygems/bundler/issues/1380)) - Useful error for cap and vlad on first deploy (@nexmat, @kirs) ## Bug fixes: - `exec` now works when the command contains 'exec' - Only touch lock after changes on Windows (@robertwahler, [#1358](https://github.com/rubygems/bundler/issues/1358)) - Keep load paths when #setup is called multiple times (@radsaq, [#1379](https://github.com/rubygems/bundler/issues/1379)) # 1.0.18 (August 16, 2011) ## Bug fixes: - Fix typo in DEBUG_RESOLVER (@geemus) - Fixes rake 0.9.x warning (@mtylty, [#1333](https://github.com/rubygems/bundler/issues/1333)) - Fix `bundle cache` again for rubygems 1.3.x ## Features: - Run the bundle install earlier in a Capistrano deployment (@cgriego, [#1300](https://github.com/rubygems/bundler/issues/1300)) - Support hidden gemspec (@trans, @cldwalker, [#827](https://github.com/rubygems/bundler/issues/827)) - Make fetch_specs faster (@zeha, [#1294](https://github.com/rubygems/bundler/issues/1294)) - Allow overriding development deps loaded by #gemspec (@lgierth, [#1245](https://github.com/rubygems/bundler/issues/1245)) # 1.0.17 (August 8, 2011) ## Bug fixes: - Fix rake issues with rubygems 1.3.x ([#1342](https://github.com/rubygems/bundler/issues/1342)) - Fixed invalid byte sequence error while installing gem on Ruby 1.9 ([#1341](https://github.com/rubygems/bundler/issues/1341)) # 1.0.16 (August 8, 2011) ## Features: - Performance fix for MRI 1.9 (@efficientcloud, [#1288](https://github.com/rubygems/bundler/issues/1288)) - Shortcuts (like `bundle i`) for all commands (@amatsuda) - Correctly identify missing child dependency in error message ## Bug fixes: - Allow Windows network share paths with forward slashes (@mtscout6, [#1253](https://github.com/rubygems/bundler/issues/1253)) - Check for rubygems.org credentials so `rake release` doesn't hang ([#980](https://github.com/rubygems/bundler/issues/980)) - Find cached prerelease gems on rubygems 1.3.x (@dburt, [#1202](https://github.com/rubygems/bundler/issues/1202)) - Fix `bundle install --without` on kiji (@tmm1, [#1287](https://github.com/rubygems/bundler/issues/1287)) - Get rid of warning in ruby 1.9.3 (@smartinez87, [#1231](https://github.com/rubygems/bundler/issues/1231)) ## Documentation: - Documentation for `gem ..., :require => false` (@kmayer, [#1292](https://github.com/rubygems/bundler/issues/1292)) - Gems provide "executables", they are rarely also binaries (@fxn, [#1242](https://github.com/rubygems/bundler/issues/1242)) # 1.0.15 (June 9, 2011) ## Features: - Improved Rubygems integration, removed many deprecation notices ## Bug fixes: - Escape URL arguments to git correctly on Windows (1.0.14 regression) # 1.0.14 (May 27, 2011) ## Features: - Rubinius platform :rbx (@rkbodenner) - Include gem rake tasks with "require 'bundler/gem_tasks" (@indirect) - Include user name and email from git config in new gemspec (@ognevsky) ## Bug fixes: - Set file permissions after checking out git repos (@tissak) - Remove deprecated call to Gem::SourceIndex#all_gems (@mpj) - Require the version file in new gemspecs (@rubiii) - Allow relative paths from the Gemfile in gems with no gemspec (@mbirk) - Install gems that contain 'bundler', e.g. guard-bundler (@hone) - Display installed path correctly on Windows (@tadman) - Escape quotes in git URIs (@mheffner) - Improve Rake 0.9 support (@quix) - Handle certain directories already existing (@raggi) - Escape filenames containing regex characters (@indirect) # 1.0.13 (May 4, 2011) ## Features: - Compatibility with Rubygems master (soon to be v1.8) (@evanphx) - Informative error when --path points to a broken symlink - Support Rake 0.9 and greater (@e2) - Output full errors for non-TTYs e.g. pow (@josh) ## Bug fixes: - Allow spaces in gem path names for gem tasks (@rslifka) - Have cap run bundle install from release_path (@martinjagusch) - Quote git refspec so zsh doesn't expand it (@goneflyin) # 1.0.12 (April 8, 2011) ## Features: - Add --no-deployment option to `install` for disabling it on dev machines - Better error message when git fails and cache is present (@parndt) - Honor :bundle_cmd in cap `rake` command (@voidlock, @cgriego) ## Bug fixes: - Compatibility with Rubygems 1.7 and Rails 2.3 and vendored gems (@evanphx) - Fix changing gem order in lock (@gucki) - Remove color escape sequences when displaying man pages (@bgreenlee) - Fix creating GEM_HOME on both JRuby 1.5 and 1.6 (@nickseiger) - Fix gems without a gemspec and directories in bin/ (@epall) - Fix --no-prune option for `bundle install` (@cmeiklejohn) # 1.0.11 (April 1, 2011) ## Features: - Compatibility with Rubygems 1.6 and 1.7 - Better error messages when a git command fails ## Bug fixes: - Don't always update gemspec gems (@carllerche) - Remove ivar warnings (@jackdempsey) - Fix occasional git failures in zsh (@jonah-carbonfive) - Consistent lock for gems with double deps like Cap (@akahn) # 1.0.10 (February 1, 2011) ## Bug fixes: - Fix a regression loading YAML gemspecs from :git and :path gems - Requires, namespaces, etc. to work with changes in Rubygems 1.5 # 1.0.9 (January 19, 2011) ## Bug fixes: - Fix a bug where Bundler.require could remove gems from the load path. In Rails apps with a default application.rb, this removed all gems in groups other than :default and Rails.env # 1.0.8 (January 18, 2011) ## Features: - Allow overriding gemspec() deps with :git deps - Add --local option to `bundle update` - Ignore Gemfile.lock in newly generated gems - Use `less` as help pager instead of `more` - Run `bundle exec rake` instead of `rake` in Capistrano tasks ## Bug fixes: - Fix --no-cache option for `bundle install` - Allow Vlad deploys to work without Capistrano gem installed - Fix group arguments to `bundle console` - Allow groups to be loaded even if other groups were loaded - Evaluate gemspec() gemspecs in their directory not the cwd - Count on Rake to chdir to the right place in GemHelper - Change Pathnames to Strings for MacRuby - Check git process exit status correctly - Fix some warnings in 1.9.3-trunk (thanks tenderlove) # 1.0.7 (November 17, 2010) ## Bug fixes: - Remove Bundler version from the lockfile because it broke backwards compatibility with 1.0.0-1.0.5. Sorry. :( # 1.0.6 (November 16, 2010) ## Bug fixes: - Fix regression in `update` that caused long/wrong results - Allow git gems on other platforms while installing ([#579](https://github.com/rubygems/bundler/issues/579)) ## Features: - Speed up `install` command using various optimizations - Significantly increase performance of resolver - Use upcoming Rubygems performance improvements (@tmm1) - Warn if the lockfile was generated by a newer version - Set generated gems' homepage to "", so Rubygems will warn # 1.0.5 (November 13, 2010) ## Bug fixes: - Fix regression disabling all operations that employ sudo # 1.0.4 (November 12, 2010) ## Bug fixes: - Expand relative :paths from Bundler.root (eg ./foogem) - Allow git gems in --without groups while --frozen - Allow gem :ref to be a symbol as well as a string - Fix exception when Gemfile needs a newer Bundler version - Explanation when the current Bundler version conflicts - Explicit error message if Gemfile needs newer Bundler - Ignore an empty string BUNDLE_GEMFILE - Skeleton gemspec now works with older versions of git - Fix shell quoting and ref fetching in GemHelper - Disable colored output in --deployment - Preserve line endings in lock file ## Features: - Add support for 'mingw32' platform (aka RubyInstaller) - Large speed increase when Gemfile.lock is already present - Huge speed increase when many (100+) system gems are present - Significant expansion of ISSUES, man pages, and docs site - Remove Open3 from GemHelper (now it works on Windows™®©) - Allow setting roles in built-in cap and vlad tasks # 1.0.3 (October 15, 2010) ## Bug fixes: - Use bitwise or in #hash to reduce the chance of overflow - `bundle update` now works with :git + :tag updates - Record relative :path options in the Gemfile.lock - :groups option on gem method in Gemfile now works - Add #platform method and :platform option to Gemfile DSL - --without now accepts a quoted, space-separated list - Installing after --deployment with no lock is now possible - Binstubs can now be symlinked - Print warning if cache for --local install is missing gems - Improve output when installing to a path - The tests all pass! Yay! # 1.0.2 (October 2, 2010) ## Bug fixes: - Actually include the man pages in the gem, so help works # 1.0.1 (October 1, 2010) ## Features: - Vlad deployment recipe, `require 'bundler/vlad'` - Prettier bundle graphs - Improved gem skeleton for `bundle gem` - Prompt on file clashes when generating a gem - Option to generate binary with gem skeleton - Allow subclassing of GemHelper for custom tasks - Chdir to gem directory during `bundle open` ## Bug fixes: - Allow gemspec requirements with a list of versions - Accept lockfiles with windows line endings - Respect BUNDLE_WITHOUT env var - Allow `gem "foo", :platform => :jruby` - Specify loaded_from path in fake gemspec - Flesh out gem_helper tasks, raise errors correctly - Respect RBConfig::CONFIG['ruby_install_name'] in binstubs # 1.0.0 (August 29, 2010) ## Features: - You can now define `:bundle_cmd` in the capistrano task ## Bug fixes: - Various bugfixes to the built-in rake helpers - Fix a bug where shortrefs weren't unique enough and were therefore colliding - Fix a small bug involving checking whether a local git clone is up to date - Correctly handle explicit '=' dependencies with gems pinned to a git source - Fix an issue with Windows-generated lockfiles by reading and writing the lockfile in binary mode - Fix an issue with shelling out to git in Windows by using double quotes around paths - Detect new Rubygems sources in the Gemfile and update the lockfile # 1.0.0.rc.6 (August 23, 2010) ## Features: - Much better documentation for most of the commands and Gemfile format ## Bug fixes: - Don't attempt to create directories if they already exist - Fix the capistrano task so that it actually runs - Update the Gemfile template to reference rubygems.org instead of :gemcutter - bundle exec should exit with a non zero exit code when the gem binary does not exist or the file is not executable. - Expand paths in Gemfile relative to the Gemfile and not the current working directory. # 1.0.0.rc.5 (August 10, 2010) ## Features: - Make the Capistrano task more concise. ## Bug fixes: - Fix a regression with determining whether or not to use sudo - Allow using the --gemfile flag with the --deployment flag # 1.0.0.rc.4 (August 9, 2010) ## Features: - `bundle gem NAME` command to generate a new gem with Gemfile - Bundle config file location can be specified by BUNDLE_APP_CONFIG - Add --frozen to disable updating the Gemfile.lock at runtime (default with --deployment) - Basic Capistrano task now added as 'bundler/capistrano' ## Bug fixes: - Multiple bundler process no longer share a tmp directory - `bundle update GEM` always updates dependencies of GEM as well - Deleting the cache directory no longer causes errors - Moving the bundle after installation no longer causes git errors - Bundle path is now correctly remembered on a read-only filesystem - Gem binaries are installed to Gem.bindir, not #{Gem.dir}/bin - Fetch gems from vendor/cache, even without --local - Sort lockfile by platform as well as spec # 1.0.0.rc.3 (August 3, 2010) ## Features: - Deprecate --production flag for --deployment, since the former was causing confusion with the :production group - Add --gemfile option to `bundle check` - Reduce memory usage of `bundle install` by 2-4x - Improve message from `bundle check` under various conditions - Better error when a changed Gemfile conflicts with Gemfile.lock ## Bug fixes: - Create bin/ directory if it is missing, then install binstubs - Error nicely on the edge case of a pinned gem with no spec - Do not require gems for other platforms - Update git sources along with the gems they contain # 1.0.0.rc.2 (July 29, 2010) - `bundle install path` was causing confusion, so we now print a clarifying warning. The preferred way to install to a path (which will not print the warning) is `bundle install --path path/to/install`. - `bundle install --system` installs to the default system location ($BUNDLE_PATH or $GEM_HOME) even if you previously used `bundle install --path` - completely remove `--disable-shared-gems`. If you install to system, you will not be isolated, while if you install to another path, you will be isolated from gems installed to the system. This was mostly an internal option whose naming and semantics were extremely confusing. - Add a `--production` option to `bundle install`: - by default, installs to `vendor/bundle`. This can be overridden with the `--path` option - uses `--local` if `vendor/cache` is found. This will guarantee that Bundler does not attempt to connect to Rubygems and will use the gems cached in `vendor/cache` instead - Raises an exception if a Gemfile.lock is not found - Raises an exception if you modify your Gemfile in development but do not check in an updated Gemfile.lock - Fixes a bug where switching a source from Rubygems to git would always say "the git source is not checked out" when running `bundle install` NOTE: We received several reports of "the git source has not been checked out. Please run bundle install". As far as we can tell, these problems have two possible causes: 1. `bundle install ~/.bundle` in one user, but actually running the application as another user. Never install gems to a directory scoped to a user (`~` or `$HOME`) in deployment. 2. A bug that happened when changing a gem to a git source. To mitigate several common causes of `(1)`, please use the new `--production` flag. This flag is simply a roll-up of the best practices we have been encouraging people to use for deployment. If you want to share gems across deployments, and you use Capistrano, symlink release_path/current/vendor/bundle to release_path/shared/bundle. This will keep deployments snappy while maintaining the benefits of clean, deploy-time isolation. # 1.0.0.rc.1 (July 26, 2010) - Fixed a bug with `bundle install` on multiple machines and git # 1.0.0.beta.10 (July 25, 2010) - Last release before 1.0.0.rc.1 - Added :mri as a valid platform (platforms :mri { gem "ruby-debug" }) - Fix `bundle install` immediately after modifying the :submodule option - Don't write to Gemfile.lock if nothing has changed, fixing situations where bundle install was run with a different user than the app itself - Fix a bug where other platforms were being wiped on `bundle update` - Don't ask for root password on `bundle install` if not needed - Avoid setting `$GEM_HOME` where not needed - First solid pass of `bundle config` - Add build options - `bundle config build.mysql --with-mysql-config=/path/to/config` # 1.0.0.beta.9 (July 21, 2010) - Fix install failure when switching from a path to git source - Fix `bundle exec bundle *` in a bundle with --disable-shared-gems - Fix `bundle *` from inside a bundle with --disable-shared-gem - Shim Gem.refresh. This is used by Unicorn - Fix install failure when a path's dependencies changed # 1.0.0.beta.8 (July 20, 2010) - Fix a Beta 7 bug involving Ruby 1.9 # 1.0.0.beta.7 (July 20, 2010, yanked) - Running `bundle install` twice in a row with a git source always crashed # 1.0.0.beta.6 (July 20, 2010, yanked) - Create executables with bundle install --binstubs - You can customize the location (default is app/bin) with --binstubs other/location - Fix a bug where the Gemfile.lock would be deleted even if the update was exited - Fix a bug where cached gems for other platforms were sometimes deleted - Clean up output when nothing was deleted from cache (it previously said "Removing outdated gems ...") - Improve performance of bundle install if the git gem was already checked out, and the revision being used already exists locally - Fix bundle show bundler in some cases - Fix bugs with bundle update - Don't ever run git commands at runtime (fixes a number of common passenger issues) - Fixes an obscure bug where switching the source of a gem could fail to correctly change the source of its dependencies - Support multiple version dependencies in the Gemfile (`gem "rails", ">= 3.0.0.beta1", "<= 3.0.0"`) - Raise an exception for ambiguous uses of multiple declarations of the same gem (for instance, with different versions or sources). - Fix cases where the same dependency appeared several times in the Gemfile.lock - Fix a bug where require errors were being swallowed during Bundler.require # 1.0.0.beta.1 - No `bundle lock` command. Locking happens automatically on install or update - No .bundle/environment.rb. Require 'bundler/setup' instead. - $BUNDLE_HOME defaults to $GEM_HOME instead of ~/.bundle - Remove lockfiles generated by 0.9 # 0.9.26 ## Features: - error nicely on incompatible 0.10 lockfiles # 0.9.25 (May 3, 2010) ## Bug fixes: - explicitly coerce Pathname objects to Strings for Ruby 1.9 - fix some newline weirdness in output from install command # 0.9.24 (April 22, 2010) ## Features: - fetch submodules for git sources - limit the bundled version of bundler to the same as the one installing - force relative paths in git gemspecs to avoid raising Gem::NameTooLong - serialize GemCache sources correctly, so locking works - raise Bundler::GemNotFound instead of calling exit! inside library code - Rubygems 1.3.5 compatibility for the adventurous, not supported by me :) ## Bug fixes: - don't try to regenerate environment.rb if it is read-only - prune outdated gems with the platform "ruby" - prune cache without errors when there are directories or non-gem files - don't re-write environment.rb if running after it has been loaded - do not monkeypatch Specification#load_paths twice when inside a bundle # 0.9.23 (April 20, 2010) ## Bug fixes: - cache command no longer prunes gems created by an older rubygems version - cache command no longer prunes gems that are for other platforms # 0.9.22 (April 20, 2010) ## Features: - cache command now prunes stale .gem files from vendor/cache - init --gemspec command now generates development dependencies - handle Polyglot's changes to Kernel#require with Bundler::ENV_LOADED ([#287](https://github.com/rubygems/bundler/issues/287)) - remove .gem files generated after installing a gem from a :path ([#286](https://github.com/rubygems/bundler/issues/286)) - improve install/lock messaging ([#284](https://github.com/rubygems/bundler/issues/284)) ## Bug fixes: - ignore cached gems that are for another platform ([#288](https://github.com/rubygems/bundler/issues/288)) - install Windows gems that have no architecture set, like rcov ([#277](https://github.com/rubygems/bundler/issues/277)) - exec command while locked now includes the bundler lib in $LOAD_PATH ([#293](https://github.com/rubygems/bundler/issues/293)) - fix the `rake install` task - add GemspecError so it can be raised without (further) error ([#292](https://github.com/rubygems/bundler/issues/292)) - create a parent directory before cloning for git 1.5 compatibility ([#285](https://github.com/rubygems/bundler/issues/285)) # 0.9.21 (April 16, 2010) ## Bug fixes: - don't raise 'omg wtf' when lockfile is outdated # 0.9.20 (April 15, 2010) ## Features: - load YAML format gemspecs - no backtraces when calling Bundler.setup if gems are missing - no backtraces when trying to exec a file without the executable bit ## Bug fixes: - fix infinite recursion in Bundler.setup after loading a bundled Bundler gem - request install instead of lock when env.rb is out of sync with Gemfile.lock # 0.9.19 (April 12, 2010) ## Features: - suggest `bundle install --relock` when the Gemfile has changed ([#272](https://github.com/rubygems/bundler/issues/272)) - source support for Rubygems servers without prerelease gem indexes ([#262](https://github.com/rubygems/bundler/issues/262)) ## Bug fixes: - don't set up all groups every time Bundler.setup is called while locked ([#263](https://github.com/rubygems/bundler/issues/263)) - fix #full_gem_path for git gems while locked ([#268](https://github.com/rubygems/bundler/issues/268)) - eval gemspecs at the top level, not inside the Bundler class ([#269](https://github.com/rubygems/bundler/issues/269)) # 0.9.18 (April 8, 2010) ## Features: - console command that runs irb with bundle (and optional group) already loaded ## Bug fixes: - Bundler.setup now fully disables system gems, even when unlocked ([#266](https://github.com/rubygems/bundler/issues/266), [#246](https://github.com/bundler/bundler/issues/246)) - fixes Yard, which found plugins in Gem.source_index that it could not load - makes behaviour of `Bundler.require` consistent between locked and unlocked loads # 0.9.17 (April 7, 2010) ## Features: - Bundler.require now calls Bundler.setup automatically - Gem::Specification#add_bundler_dependencies added for gemspecs ## Bug fixes: - Gem paths are not longer duplicated while loading bundler - exec no longer duplicates RUBYOPT if it is already set correctly # 0.9.16 (April 3, 2010) ## Features: - exit gracefully on INT signal - resolver output now indicates whether remote sources were checked - print error instead of backtrace when exec cannot find a binary ([#241](https://github.com/rubygems/bundler/issues/241)) ## Bug fixes: - show, check, and open commands work again while locked (oops) - show command for git gems - outputs branch names other than master - gets the correct sha from the checkout - doesn't print sha twice if :ref is set - report errors from bundler/setup.rb without backtraces ([#243](https://github.com/rubygems/bundler/issues/243)) - fix Gem::Spec#git_version to not error on unloaded specs - improve deprecation, Gemfile, and command error messages ([#242](https://github.com/rubygems/bundler/issues/242)) # 0.9.15 (April 1, 2010) ## Features: - use the env_file if possible instead of doing a runtime resolve - huge speedup when calling Bundler.setup while locked - ensures bundle exec is fast while locked - regenerates env_file if it was generated by an older version - update cached/packed gems when you update gems via bundle install ## Bug fixes: - prep for Rubygems 1.3.7 changes - install command now pulls git branches correctly ([#211](https://github.com/rubygems/bundler/issues/211)) - raise errors on invalid options in the Gemfile # 0.9.14 (March 30, 2010) ## Features: - install command output vastly improved - installation message now accurate, with 'using' and 'installing' - bundler gems no longer listed as 'system gems' - show command output now includes sha and branch name for git gems - init command now takes --gemspec option for bootstrapping gem Gemfiles - Bundler.with_clean_env for shelling out to ruby scripts - show command now aliased as 'list' - VISUAL env var respected for GUI editors ## Bug fixes: - exec command now finds binaries from gems with no gemspec - note source of Gemfile resolver errors - don't blow up if git urls are changed # 0.9.13 (March 23, 2010) ## Bug fixes: - exec command now finds binaries from gems installed via :path - gem dependencies are pulled in even if their type is nil - paths with spaces have double-quotes to work on Windows - set GEM_PATH in environment.rb so generators work with Rails 2 # 0.9.12 (March 17, 2010) - refactoring, internal cleanup, more solid specs ## Features: - check command takes a --without option - check command exits 1 if the check fails ## Bug fixes: - perform a topological sort on resolved gems ([#191](https://github.com/rubygems/bundler/issues/191)) - gems from git work even when paths or repos have spaces ([#196](https://github.com/rubygems/bundler/issues/196)) - Specification#loaded_from returns a String, like Gem::Specification ([#197](https://github.com/rubygems/bundler/issues/197)) - specs eval from inside the gem directory, even when locked - virtual gemspecs are now saved in environment.rb for use when loading - unify the Installer's local index and the runtime index ([#204](https://github.com/rubygems/bundler/issues/204)) # 0.9.11 (March 9, 2010) - added roadmap with future development plans ## Features: - install command can take the path to the gemfile with --gemfile ([#125](https://github.com/rubygems/bundler/issues/125)) - unknown command line options are now rejected ([#163](https://github.com/rubygems/bundler/issues/163)) - exec command hugely sped up while locked ([#177](https://github.com/rubygems/bundler/issues/177)) - show command prints the install path if you pass it a gem name ([#148](https://github.com/rubygems/bundler/issues/148)) - open command edits an installed gem with $EDITOR ([#148](https://github.com/rubygems/bundler/issues/148)) - Gemfile allows assigning an array of groups to a gem ([#114](https://github.com/rubygems/bundler/issues/114)) - Gemfile allows :tag option on :git sources - improve backtraces when a gemspec is invalid - improve performance by installing gems from the cache if present ## Bug fixes: - normalize parameters to Bundler.require ([#153](https://github.com/rubygems/bundler/issues/153)) - check now checks installed gems rather than cached gems ([#162](https://github.com/rubygems/bundler/issues/162)) - don't update the gem index when installing after locking ([#169](https://github.com/rubygems/bundler/issues/169)) - bundle parenthesises arguments for 1.8.6 ([#179](https://github.com/rubygems/bundler/issues/179)) - gems can now be assigned to multiple groups without problems ([#135](https://github.com/rubygems/bundler/issues/135)) - fix the warning when building extensions for a gem from git with Rubygems 1.3.6 - fix a Dependency.to_yaml error due to accidentally including sources and groups - don't reinstall packed gems - fix gems with git sources that are private repositories # 0.9.10 (March 1, 2010) - depends on Rubygems 1.3.6 ## Bug fixes: - support locking after install --without - don't reinstall gems from the cache if they're already in the bundle - fixes for Ruby 1.8.7 and 1.9 # 0.9.9 (February 25, 2010) ## Bug fixes: - don't die if GEM_HOME is an empty string - fixes for Ruby 1.8.6 and 1.9 # 0.9.8 (February 23, 2010) ## Features: - pack command which both caches and locks - descriptive error if a cached gem is missing - remember the --without option after installing - expand paths given in the Gemfile via the :path option - add block syntax to the git and group options in the Gemfile - support gems with extensions that don't admit they depend on rake - generate gems using gem build gemspec so git gems can have native extensions - print a useful warning if building a gem fails - allow manual configuration via BUNDLE_PATH ## Bug fixes: - eval gemspecs in the gem directory so relative paths work - make default spec for git sources valid - don't reinstall gems that are already packed # 0.9.7 (February 17, 2010) ## Bug fixes: - don't say that a gem from an excluded group is "installing" - improve crippling rubygems in locked scenarios # 0.9.6 (February 16, 2010) ## Features: - allow String group names - a number of improvements in the documentation and error messages ## Bug fixes: - set SourceIndex#spec_dirs to solve a problem involving Rails 2.3 in unlocked mode - ensure Rubygems is fully loaded in Ruby 1.9 before patching it - fix `bundle install` for a locked app without a .bundle directory - require gems in the order that the resolver determines - make the tests platform agnostic so we can confirm that they're green on JRuby - fixes for Ruby 1.9 # 0.9.5 (February 12, 2010) ## Features: - added support for :path => "relative/path" - added support for older versions of git - added `bundle install --disable-shared-gems` - Bundler.require fails silently if a library does not have a file on the load path with its name - Basic support for multiple rubies by namespacing the default bundle path using the version and engine ## Bug fixes: - if the bundle is locked and .bundle/environment.rb is not present when Bundler.setup is called, generate it - same if it's not present with `bundle check` - same if it's not present with `bundle install` rubygems-3.3.5/bundler/LICENSE.md000066400000000000000000000021461416756346600164430ustar00rootroot00000000000000The MIT License Portions copyright (c) 2010-2019 André Arko Portions copyright (c) 2009 Engine Yard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. rubygems-3.3.5/bundler/README.md000066400000000000000000000070501416756346600163150ustar00rootroot00000000000000[![Version ](https://img.shields.io/gem/v/bundler.svg?style=flat)](https://rubygems.org/gems/bundler) [![Slack ](https://bundler-slackin.herokuapp.com/badge.svg)](https://bundler-slackin.herokuapp.com) # Bundler: a gem to bundle gems Bundler makes sure Ruby applications run the same code on every machine. It does this by managing the gems that the application depends on. Given a list of gems, it can automatically download and install those gems, as well as any other gems needed by the gems that are listed. Before installing gems, it checks the versions of every gem to make sure that they are compatible, and can all be loaded at the same time. After the gems have been installed, Bundler can help you update some or all of them when new versions become available. Finally, it records the exact versions that have been installed, so that others can install the exact same gems. ### Installation and usage To install (or update to the latest version): ``` gem install bundler ``` To install a prerelease version (if one is available), run `gem install bundler --pre`. To uninstall Bundler, run `gem uninstall bundler`. Bundler is most commonly used to manage your application's dependencies. For example, these commands will allow you to use Bundler to manage the `rspec` gem for your application: ``` bundle init bundle add rspec bundle install bundle exec rspec ``` See [bundler.io](https://bundler.io) for the full documentation. ### Troubleshooting For help with common problems, see [TROUBLESHOOTING](doc/TROUBLESHOOTING.md). Still stuck? Try [filing an issue](https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md). ### Other questions To see what has changed in recent versions of Bundler, see the [CHANGELOG](CHANGELOG.md). To get in touch with the Bundler core team and other Bundler users, please see [getting help](doc/contributing/GETTING_HELP.md). ### Contributing If you'd like to contribute to Bundler, that's awesome, and we <3 you. We've put together [the Bundler contributor guide](https://github.com/rubygems/rubygems/blob/master/bundler/doc/contributing/README.md) with all of the information you need to get started. If you'd like to request a substantial change to Bundler or its documentation, refer to the [Bundler RFC process](https://github.com/bundler/rfcs) for more information. While some Bundler contributors are compensated by Ruby Together, the project maintainers make decisions independent of Ruby Together. As a project, we welcome contributions regardless of the author's affiliation with Ruby Together. ### Supporting
Ruby Together pays some Bundler maintainers for their ongoing work. As a grassroots initiative committed to supporting the critical Ruby infrastructure you rely on, Ruby Together is funded entirely by the Ruby community. Contribute today as an individual or (better yet) as a company to ensure that Bundler, RubyGems, and other shared tooling is around for years to come. ### Code of Conduct Everyone interacting in the Bundler project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [Bundler code of conduct](https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md). ### License Bundler is available under an [MIT License](https://github.com/rubygems/rubygems/blob/master/bundler/LICENSE.md). rubygems-3.3.5/bundler/Rakefile000066400000000000000000000213061416756346600165030ustar00rootroot00000000000000# frozen_string_literal: true require_relative "spec/support/rubygems_ext" desc "Run specs" task :spec do sh("bin/rspec") end namespace :dev do desc "Ensure dev dependencies are installed" task :deps do Spec::Rubygems.dev_setup end desc "Ensure dev dependencies are installed, and make sure no lockifle changes are generated" task :frozen_deps => :deps do Spec::Rubygems.check_source_control_changes( :success_message => "Development dependencies were installed and the lockfile is in sync", :error_message => "Development dependencies were installed but the lockfile is out of sync. Commit the updated lockfile and try again" ) end end namespace :spec do desc "Ensure spec dependencies are installed" task :deps => "dev:deps" do Spec::Rubygems.install_test_deps end desc "Ensure spec dependencies for running in parallel are installed" task :parallel_deps => "dev:deps" do Spec::Rubygems.install_parallel_test_deps end desc "Run all specs" task :all => %w[spec:regular spec:realworld spec:sudo] desc "Run the regular spec suite" task :regular do sh("bin/parallel_rspec") end desc "Run the real-world spec suite" task :realworld do sh("BUNDLER_SPEC_PRE_RECORDED=1 bin/rspec --tag realworld") end namespace :realworld do desc "Re-record cassettes for the realworld specs" task :record do sh("rm -rf spec/support/artifice/vcr_cassettes && bin/rspec --tag realworld") end end desc "Run the spec suite with the sudo tests" task :sudo, [:specs] => [] do |_t, opts| require "open3" output, status = Open3.capture2e("sudo", "cp", "/etc/sudoers", "tmp/old_sudoers") raise "Couldn't read sudoers file: #{output}" unless status.success? begin output, status = Open3.capture2e("sudo", "sh", "-c", "sed -e'/secure_path/d' /etc/sudoers > /etc/sudoers.bak && mv /etc/sudoers.bak /etc/sudoers") raise "Couldn't configure sudo to preserve path: #{output}" unless status.success? raise "Couldn't configure sudo correctly to preserve path" unless `ruby -v` == `sudo -E ruby -v` sh("sudo -E --preserve-env=RUBYOPT bin/rspec --tag sudo #{opts[:specs]}") ensure system("sudo", "cp", "tmp/old_sudoers", "/etc/sudoers") system("sudo", "chown", "-R", ENV["USER"], "tmp") end end end desc "Check RVM integration" task :check_rvm_integration do # The rubygems-bundler gem is installed by RVM by default and it could easily # break when we change bundler. Make sure that binstubs still run with it # installed. sh("gem install rubygems-bundler rake && RUBYOPT=-Ilib rake -T") end namespace :man do if RUBY_ENGINE == "jruby" task(:build) {} else index = Dir["lib/bundler/man/*.ronn"].map do |ronn| roff = "#{File.dirname(ronn)}/#{File.basename(ronn, ".ronn")}" file roff => ronn do date = ENV["MAN_PAGES_DATE"] || Time.now.strftime("%Y-%m-%d") sh "bin/ronn --warnings --roff --pipe --date #{date} #{ronn} > #{roff}" end task :build_all_pages => roff [ronn, File.basename(roff)] end file "index.txt" do index.map! do |(ronn, roff)| [File.read(ronn).split(" ").first, roff] end index = index.sort_by(&:first) justification = index.map {|(n, _f)| n.length }.max + 4 File.open("lib/bundler/man/index.txt", "w") do |f| index.each do |name, filename| f << name.ljust(justification) << filename << "\n" end end end task :build_all_pages => "index.txt" desc "Make sure ronn is installed" task :check_ronn do begin Spec::Rubygems.gem_require("ronn") rescue Gem::LoadError => e abort("We couldn't activate ronn (#{e.requirement}). Try `gem install ronn:'#{e.requirement}'` to be able to build the help pages") end end desc "Remove all built man pages" task :clean do leftovers = Dir["lib/bundler/man/*"].reject do |f| File.extname(f) == ".ronn" end rm leftovers if leftovers.any? end desc "Build the man pages" task :build => [:check_ronn, :clean, :build_all_pages] desc "Sets target date for building man pages to the one currently present" task :set_current_date do require "date" ENV["MAN_PAGES_DATE"] = Date.parse(File.readlines("lib/bundler/man/bundle-add.1")[3].split('"')[5]).strftime("%Y-%m-%d") end desc "Verify man pages are in sync" task :check => [:check_ronn, :set_current_date, :build] do Spec::Rubygems.check_source_control_changes( :success_message => "Man pages are in sync", :error_message => "Man pages are out of sync. Above you can see the list of files that got modified or generated from rebuilding them. Please review and commit the results." ) end end end load "../util/automatiek.rake" # We currently ship Molinillo master branch as of # https://github.com/CocoaPods/Molinillo/commit/7cc27a355e861bdf593e2cde7bf1bca3daae4303 desc "Vendor a specific version of molinillo" Automatiek::RakeTask.new("molinillo") do |lib| lib.version = "master" lib.download = { :github => "https://github.com/CocoaPods/Molinillo" } lib.namespace = "Molinillo" lib.prefix = "Bundler" lib.vendor_lib = "lib/bundler/vendor/molinillo" lib.license_path = "LICENSE" lib.dependency("tsort") do |sublib| sublib.version = "master" sublib.download = { :github => "https://github.com/ruby/tsort" } sublib.namespace = "TSort" sublib.prefix = "Bundler" sublib.vendor_lib = "lib/bundler/vendor/tsort" sublib.license_path = "LICENSE.txt" end end desc "Vendor a specific version of thor" Automatiek::RakeTask.new("thor") do |lib| lib.version = "v1.2.1" lib.download = { :github => "https://github.com/erikhuda/thor" } lib.namespace = "Thor" lib.prefix = "Bundler" lib.vendor_lib = "lib/bundler/vendor/thor" lib.license_path = "LICENSE.md" end # We currently include the official version as of # https://github.com/ruby/tmpdir/commit/c79bc7adf66a39617d0d6bae21085adc77c02b0e # with the following changes on top: # * require fileutils relatively to use our vendored version. # * Inherit from `Dir` so that code assuming we're inside the # `Dir` class still works. Also change the `systmpdir` class variable to an # instance variable since otherwise inheriting from dir doesn't work. # * Remove a "block variable shadowing outer variable" warning on older rubies # that was breaking some specs. desc "Vendor a specific version of tmpdir" Automatiek::RakeTask.new("tmpdir") do |lib| lib.version = "master" lib.download = { :github => "https://github.com/ruby/tmpdir" } lib.namespace = "Dir" lib.prefix = "Bundler" lib.vendor_lib = "lib/bundler/vendor/tmpdir" lib.license_path = nil # There is no license file in the Repo lib.dependency("fileutils") do |sublib| sublib.version = "v1.4.1" sublib.download = { :github => "https://github.com/ruby/fileutils" } sublib.namespace = "FileUtils" sublib.prefix = "Bundler" sublib.vendor_lib = "lib/bundler/vendor/fileutils" sublib.license_path = "LICENSE.txt" end end # We currently include the following changes over the official version: # * Avoid requiring the optional `net-http-pipeline` dependency, so that its version can be selected by end users. # * Workaround for incorrect `Process.getrlimit` on JRuby + Windows. # * We also include changes to require the vendored dependencies `uri` and `connection_pool` relatively. desc "Vendor a specific version of net-http-persistent" Automatiek::RakeTask.new("net-http-persistent") do |lib| lib.version = "v4.0.0" lib.download = { :github => "https://github.com/drbrain/net-http-persistent" } lib.namespace = "Net::HTTP::Persistent" lib.prefix = "Bundler::Persistent" lib.vendor_lib = "lib/bundler/vendor/net-http-persistent" lib.license_path = "README.rdoc" # We currently include the official version as of # https://github.com/mperham/connection_pool/commit/813c271e41be0714334834d6517ce68ca1357fc0. lib.dependency("connection_pool") do |sublib| sublib.version = "master" sublib.download = { :github => "https://github.com/mperham/connection_pool" } sublib.namespace = "ConnectionPool" sublib.prefix = "Bundler" sublib.vendor_lib = "lib/bundler/vendor/connection_pool" sublib.license_path = "LICENSE" end lib.dependency("uri") do |sublib| sublib.version = "v0.10.1" sublib.download = { :github => "https://github.com/ruby/uri" } sublib.namespace = "URI" sublib.prefix = "Bundler" sublib.vendor_lib = "lib/bundler/vendor/uri" sublib.license_path = "LICENSE.txt" end end task :override_version do next unless version = ENV["BUNDLER_SPEC_SUB_VERSION"] Spec::Path.replace_version_file(version) end task :default => :spec load "task/bundler_3.rake" load "task/release.rake" rubygems-3.3.5/bundler/UPGRADING.md000066400000000000000000000216651416756346600167100ustar00rootroot00000000000000# Upgrading ## Bundler 3 The following is a summary of the changes that we plan to introduce in Bundler 3, why we will be making those changes, and what the deprecation process will look like. All these deprecations are printed by default in the Bundler 2.1 release. If you don't want to deal with deprecations right now and want to toggle them off, you can do it through configuration. Set the `BUNDLE_SILENCE_DEPRECATIONS` environment variable to "true", or configure it through `bundle config` either globally through `bundle config set --global silence_deprecations true` command, or locally through `bundle config set --local silence_deprecations true`. From now on in this document we will assume that all three of these configuration options are available, but will only mention `bundle config set