From bd79ff034df6611d32ee88bf78eab796b5876730 Mon Sep 17 00:00:00 2001 From: Takuya N Date: Tue, 3 Jan 2023 18:40:26 +0900 Subject: [PATCH] Rewrite all what's new pages from HAML to Markdown (#1051) Signed-off-by: Takuya Noguchi --- source/v1.12/whats_new.html.haml | 49 ----- source/v1.12/whats_new.html.md | 30 +++ source/v1.13/whats_new.html.haml | 75 ------- source/v1.13/whats_new.html.md | 49 +++++ source/v1.14/whats_new.html.haml | 56 ----- source/v1.14/whats_new.html.md | 36 ++++ source/v1.15/whats_new.html.haml | 38 ---- source/v1.15/whats_new.html.md | 21 ++ source/v1.16/whats_new.html.haml | 35 ---- source/v1.16/whats_new.html.md | 21 ++ source/v1.17/whats_new.html.haml | 76 ------- source/v1.17/whats_new.html.md | 50 +++++ source/v2.0/whats_new.html.haml | 28 --- source/v2.0/whats_new.html.md | 15 ++ source/v2.1/whats_new.html.haml | 338 ------------------------------- source/v2.1/whats_new.html.md | 247 ++++++++++++++++++++++ source/v2.2/whats_new.html.haml | 42 ---- source/v2.2/whats_new.html.md | 25 +++ source/v2.3/whats_new.html.haml | 33 --- source/v2.3/whats_new.html.md | 22 ++ source/v2.4/whats_new.html.haml | 8 - source/v2.4/whats_new.html.md | 4 + 22 files changed, 520 insertions(+), 778 deletions(-) delete mode 100644 source/v1.12/whats_new.html.haml create mode 100644 source/v1.12/whats_new.html.md delete mode 100644 source/v1.13/whats_new.html.haml create mode 100644 source/v1.13/whats_new.html.md delete mode 100644 source/v1.14/whats_new.html.haml create mode 100644 source/v1.14/whats_new.html.md delete mode 100644 source/v1.15/whats_new.html.haml create mode 100644 source/v1.15/whats_new.html.md delete mode 100644 source/v1.16/whats_new.html.haml create mode 100644 source/v1.16/whats_new.html.md delete mode 100644 source/v1.17/whats_new.html.haml create mode 100644 source/v1.17/whats_new.html.md delete mode 100644 source/v2.0/whats_new.html.haml create mode 100644 source/v2.0/whats_new.html.md delete mode 100644 source/v2.1/whats_new.html.haml create mode 100644 source/v2.1/whats_new.html.md delete mode 100644 source/v2.2/whats_new.html.haml create mode 100644 source/v2.2/whats_new.html.md delete mode 100644 source/v2.3/whats_new.html.haml create mode 100644 source/v2.3/whats_new.html.md delete mode 100644 source/v2.4/whats_new.html.haml create mode 100644 source/v2.4/whats_new.html.md diff --git a/source/v1.12/whats_new.html.haml b/source/v1.12/whats_new.html.haml deleted file mode 100644 index 908cf0a107..0000000000 --- a/source/v1.12/whats_new.html.haml +++ /dev/null @@ -1,49 +0,0 @@ --# TODO maybe add header? - -.container.guide - %h1 - What's New in - = current_visible_version - - %h3 New index format - - .contents - .bullet - .description - %p - Bundler now fetches gem metadata using the new index format speeding up install significantly. - In addition to the speed increases provided by the format itself, we’re also serving the new index directly from the Fastly CDN. - That means Bundler will be able to talk to a server located nearby, no matter where you are in the world. - We expect that to make a huge difference, especially in Oceania and Africa. 🎉 - %h3 Outdated by version significance - - .contents - .bullet - .description - %p - It is now possible to run bundle outdated with the flags --major, --minor, and --patch. - Using those flags, you can limit Bundler to only show you new versions that are both allowed by your Gemfile and also meet the criteria of only changing the major, minor, or patch version of the gem. - You can combine them to get only minor and patch updates, or even only major and patch updates (but I have no idea why you would want to do that) - - %h3 Ruby version locking - - .contents - .bullet - .description - %p - It is now possible to use regular gem version requirements, like ruby "~> 2.3", in your `Gemfile`. - Bundler will save your exact Ruby version (e.g. "2.3.1") into your Gemfile.lock. - You can update the ruby version by running `bundle update --ruby`, and that will update the lock - to match your current version of Ruby the same way Bundler currently updates gem versions. - - .contents - .bullet - .description - Bundler 1.12 also includes: - %ul - %li running bundle exec now about 0.25 seconds faster - %li support for Ruby 2.4 - %li support for RubyGems 2.6.3 - %li support for frozen string literals - %li many, many, many bugfixes - = link_to 'Full 1.12 changelog', 'https://github.com/rubygems/bundler/blob/1-12-stable/CHANGELOG.md', class: 'btn btn-primary' diff --git a/source/v1.12/whats_new.html.md b/source/v1.12/whats_new.html.md new file mode 100644 index 0000000000..3aac195403 --- /dev/null +++ b/source/v1.12/whats_new.html.md @@ -0,0 +1,30 @@ +# What's New in v1.12 + +### New index format + +Bundler now fetches gem metadata using [the new index format](https://andre.arko.net/2014/03/28/the-new-rubygems-index-format/) speeding up `install` significantly. +In addition to the speed increases provided by the format itself, we’re also serving the new index directly from the Fastly CDN. +That means Bundler will be able to talk to a server located nearby, no matter where you are in the world. +We expect that to make a huge difference, especially in Oceania and Africa. 🎉 + +### Outdated by version significance + +It is now possible to run `bundle outdated` with the flags `--major`, `--minor`, and `--patch`. +Using those flags, you can limit Bundler to only show you new versions that are both allowed by your `Gemfile` and also meet the criteria of only changing the major, minor, or patch version of the gem. +You can combine them to get only minor and patch updates, or even only major and patch updates (but I have no idea why you would want to do that) + +### Ruby version locking + +It is now possible to use regular gem version requirements, like `ruby "~> 2.3"`, in your `Gemfile`. +Bundler will save your exact Ruby version (e.g. "2.3.1") into your `Gemfile.lock`. +You can update the ruby version by running `bundle update --ruby`, and that will update the lock +to match your current version of Ruby the same way Bundler currently updates gem versions. +Bundler 1.12 also includes: + +- running `bundle exec` now about 0.25 seconds faster +- support for Ruby 2.4 +- support for RubyGems 2.6.3 +- support for frozen string literals +- many, many, many bugfixes + +Full 1.12 changelog diff --git a/source/v1.13/whats_new.html.haml b/source/v1.13/whats_new.html.haml deleted file mode 100644 index 523c8cbd09..0000000000 --- a/source/v1.13/whats_new.html.haml +++ /dev/null @@ -1,75 +0,0 @@ -.container.guide - %h1 - What's New in - = current_visible_version - - %p - The - = link_to 'Bundler 1.13 announcement', '/blog/2016/09/08/bundler-1-13.html' - includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in - #{link_to "the changelog", "https://github.com/rubygems/bundler/blob/1-13-stable/CHANGELOG.md"}. - - %h3 New doctor command - .contents - .bullet - .description - %p - Add the doctor command for automated troubleshooting. So far, it can automatically detect gems that have been compiled against libraries that no longer exist, and compile them again to fix them. - (Thanks #{link_to '@mistydemeo', 'https://github.com/mistydemeo'}!) - - %h3 Support for required_ruby_version - .contents - .bullet - .description - %p - Gems that declare a required_ruby_version will now resolve correctly as long as your Gemfile contains a ruby declaration. - If a gem cannot be resolved because of your Ruby version, the error will correctly indicate that your Ruby version conflicts with your other gem version requirements. - - %h3 Manage locked platforms - .contents - .bullet - .description - %p - In the past, the only way to resolve your Gemfile on a new platform (like java or mswin) was to run bundle install on that platform. - We've added explicit options to the lock command to allow managing platforms. - Platforms can be added using bundle lock --add-platform NAME, and platforms can be removed using bundle lock --remove-platform NAME. - - %h3 Fine controls for the update command - .contents - .bullet - .description - %p - The update command now has several options to enable users to fine-tune exactly what it is that they will get, - using the new flags --major, --minor, --patch, and --strict. - It was also recently pointed out to us that running update could even result in some locked gems being changed to an older version! - We can’t change the default behavior to avoid that until version 2.0, but for now we’ve added a config setting. - To prevent the update command from ever “upgrading” you to an older version, run bundle config only_update_to_newer_versions true. - - %h3 Experimental plugin system - .contents - .bullet - .description - %p - The plugin system also supports "source" plugins, which means it should be possible to use gems from Subversion, Mercurial, S3, or anything else you can think of. - In addition to source plugins, we've started adding new "lifecycle" hooks. - That means plugins will be able to hook in and run their own code before, during, or after the install or update process. - - %h3 Experimental Bundler version locking - .contents - .bullet - .description - %p - automatically trampoline to the bundler version locked in the lockfile, only updating to the running version on bundle update --bundler (@segiddins) - - .contents - .bullet - .description - Bundler 1.13 also includes: - %ul - %li Support for RubyGems 2.6.4 - %li Automatic gem installation for bundler/inline - %li Dramatic resolver optimizations - %li Better load-based exec command - %li Support for setting "mirror" servers by hostname - %li Automatic retrying for gem downloads - = link_to 'Full 1.13 changelog', 'https://github.com/rubygems/bundler/blob/1-13-stable/CHANGELOG.md', class: 'btn btn-primary' diff --git a/source/v1.13/whats_new.html.md b/source/v1.13/whats_new.html.md new file mode 100644 index 0000000000..c540f66069 --- /dev/null +++ b/source/v1.13/whats_new.html.md @@ -0,0 +1,49 @@ +# What's New in v1.13 + +The [Bundler 1.13 announcement](/blog/2016/09/08/bundler-1-13.html) +includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in +[the changelog](https://github.com/rubygems/bundler/blob/1-13-stable/CHANGELOG.md). + +### New `doctor` command + +Add the `doctor` command for automated troubleshooting. So far, it can automatically detect gems that have been compiled against libraries that no longer exist, and compile them again to fix them. +(Thanks [@mistydemeo](https://github.com/mistydemeo)!) + +### Support for `required_ruby_version` + +Gems that declare a `required_ruby_version` will now resolve correctly as long as your Gemfile contains a `ruby` declaration. +If a gem cannot be resolved because of your Ruby version, the error will correctly indicate that your Ruby version conflicts with your other gem version requirements. + +### Manage locked platforms + +In the past, the only way to resolve your Gemfile on a new platform (like `java` or `mswin`) was to run `bundle install` on that platform. +We've added explicit options to the `lock` command to allow managing platforms. +Platforms can be added using `bundle lock --add-platform NAME`, and platforms can be removed using `bundle lock --remove-platform NAME`. + +### Fine controls for the `update` command + +The `update` command now has several options to enable users to fine-tune exactly what it is that they will get, +using the new flags `--major`, `--minor`, `--patch`, and `--strict`. +It was also recently pointed out to us that running `update` could even result in some locked gems being changed to an older version! +We can’t change the default behavior to avoid that until version 2.0, but for now we’ve added a config setting. +To prevent the `update` command from ever “upgrading” you to an older version, run `bundle config only_update_to_newer_versions true`. + +### Experimental plugin system + +The plugin system also supports "source" plugins, which means it should be possible to use gems from Subversion, Mercurial, S3, or anything else you can think of. +In addition to source plugins, we've started adding new "lifecycle" hooks. +That means plugins will be able to hook in and run their own code before, during, or after the install or update process. + +### Experimental Bundler version locking + +automatically trampoline to the bundler version locked in the lockfile, only updating to the running version on `bundle update --bundler` (@segiddins) +Bundler 1.13 also includes: + +- Support for RubyGems 2.6.4 +- Automatic gem installation for `bundler/inline` +- Dramatic resolver optimizations +- Better load-based `exec` command +- Support for setting "mirror" servers by hostname +- Automatic retrying for gem downloads + +Full 1.13 changelog diff --git a/source/v1.14/whats_new.html.haml b/source/v1.14/whats_new.html.haml deleted file mode 100644 index abdc677173..0000000000 --- a/source/v1.14/whats_new.html.haml +++ /dev/null @@ -1,56 +0,0 @@ -.container.guide - %h1 - What's New in - = current_visible_version - - %p - The - = link_to 'Bundler 1.14 announcement', '/blog/2017/03/28/bundler-1-14-so-many-fixes.html' - includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in - #{link_to "the changelog", "https://github.com/rubygems/bundler/blob/1-14-stable/CHANGELOG.md"}. - - %h3 Conservative updates - .contents - .bullet - .description - %p - The conservative flag allows `bundle update --conservative GEM` to update the version of GEM, - but prevents Bundler from updating the versions of any of the gems that GEM depends on, - similar to changing a gem's version number in the Gemfile and then running `bundle install`. - - %h3 Checksum validation - .contents - .bullet - .description - %p - As part of the compact index format provided by RubyGems.org, Bundler now has access to checksums for every .gem file. - Starting with version 1.14, Bundler actively validates those checksums against downloaded .gem files before installing them. Hooray! 🎉 - - %h3 Improved platform support - .contents - .bullet - .description - %p - The `force_ruby_platform` and `specific_platform` settings tell Bundler to always compile gems and to consider platforms during dependency resolution, respectively. - These options can significantly improve things for users installing a single bundle on more than one platform. - - %h3 Required Ruby and RubyGems conflict messages - .contents - .bullet - .description - %p - If any gem conflicts with your Ruby or RubyGems version, the error message will now show both the conflicting dependencies and the chain of parent dependencies that led to the conflict. - - .contents - .bullet - .description - Bundler 1.14 also includes: - %ul - %li Installing gems using `sudo` will now always prompt for a password, even if the sudo password is cached from an earlier command - %li The Gemfile method `platform` now supports Ruby 2.5, allowing arguments like `:ruby_25` or `:mri_25`. - %li The “lockfile is missing dependencies” error (triggered by certain old lock files that were missing information) is no longer fatal. We now print instructions on how to repair the Gemfile, and install using one thread. - %li Running `require "bundler"` is now about five times faster than it used to be. - %li Bundler now works when run by users without a home directory. - %li The output from `bundle env` is now preformatted as Markdown for pasting into a GitHub issue. - %li After Bundler 2.0 is (eventually) released, Bundler 1.14 and greater will be able to automatically switch to Bundler 2.0+ for apps that need it. - = link_to 'Full 1.14 changelog', 'https://github.com/rubygems/bundler/blob/1-14-stable/CHANGELOG.md', class: 'btn btn-primary' diff --git a/source/v1.14/whats_new.html.md b/source/v1.14/whats_new.html.md new file mode 100644 index 0000000000..f8de180eb2 --- /dev/null +++ b/source/v1.14/whats_new.html.md @@ -0,0 +1,36 @@ +# What's New in v1.14 + +The [Bundler 1.14 announcement](/blog/2017/03/28/bundler-1-14-so-many-fixes.html) +includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in +[the changelog](https://github.com/rubygems/bundler/blob/1-14-stable/CHANGELOG.md). + +### Conservative updates + +The conservative flag allows `bundle update --conservative GEM` to update the version of GEM, +but prevents Bundler from updating the versions of any of the gems that GEM depends on, +similar to changing a gem's version number in the Gemfile and then running `bundle install`. + +### Checksum validation + +As part of the compact index format provided by RubyGems.org, Bundler now has access to checksums for every .gem file. +Starting with version 1.14, Bundler actively validates those checksums against downloaded .gem files before installing them. Hooray! 🎉 + +### Improved platform support + +The `force_ruby_platform` and `specific_platform` settings tell Bundler to always compile gems and to consider platforms during dependency resolution, respectively. +These options can significantly improve things for users installing a single bundle on more than one platform. + +### Required Ruby and RubyGems conflict messages + +If any gem conflicts with your Ruby or RubyGems version, the error message will now show both the conflicting dependencies and the chain of parent dependencies that led to the conflict. +Bundler 1.14 also includes: + +- Installing gems using `sudo` will now always prompt for a password, even if the sudo password is cached from an earlier command +- The Gemfile method `platform` now supports Ruby 2.5, allowing arguments like `:ruby_25` or `:mri_25`. +- The “lockfile is missing dependencies” error (triggered by certain old lock files that were missing information) is no longer fatal. We now print instructions on how to repair the Gemfile, and install using one thread. +- Running `require "bundler"` is now about five times faster than it used to be. +- Bundler now works when run by users without a home directory. +- The output from `bundle env` is now preformatted as Markdown for pasting into a GitHub issue. +- After Bundler 2.0 is (eventually) released, Bundler 1.14 and greater will be able to automatically switch to Bundler 2.0+ for apps that need it. + +Full 1.14 changelog diff --git a/source/v1.15/whats_new.html.haml b/source/v1.15/whats_new.html.haml deleted file mode 100644 index 076e0ca753..0000000000 --- a/source/v1.15/whats_new.html.haml +++ /dev/null @@ -1,38 +0,0 @@ -.container.guide - %h1 - What's New in - = current_visible_version - - %p - The - = link_to 'Bundler 1.15 announcement', '/blog/2017/05/19/bundler-1-15-bundle-oh-so-fast.html' - includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in - #{link_to "the changelog", "https://github.com/rubygems/bundler/blob/1-15-stable/CHANGELOG.md"}. - - %h3 Exec optimization - .contents - .bullet - .description - %p - We've made `bundle exec` faster by reducing the impact of each additional gem in your application. In applications with hundreds of gems, this change made `exec` half a second (!) faster. - - %h3 `bundle issue` - .contents - .bullet - .description - %p - The `issue` command provides troubleshooting help. If the problem persists, this command will help you open an issue in the Bundler issue tracker with all of the information that we need to help. - - %h3 `bundle add` - .contents - .bullet - .description - %p - Finally, you can add gems to your Gemfile directly from the command line, without having to edit your Gemfile first. We've got plans to make this command even better, but this is a good start. - - %h3 `bundle pristine` - .contents - .bullet - .description - %p - Just like the `gem pristine` command, the `bundle pristine` command wipes out any changes you have made to the gems installed locally, for testing or debugging reasons, and restores them to a freshly-installed state. diff --git a/source/v1.15/whats_new.html.md b/source/v1.15/whats_new.html.md new file mode 100644 index 0000000000..c426ab7e75 --- /dev/null +++ b/source/v1.15/whats_new.html.md @@ -0,0 +1,21 @@ +# What's New in v1.15 + +The [Bundler 1.15 announcement](/blog/2017/05/19/bundler-1-15-bundle-oh-so-fast.html) +includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in +[the changelog](https://github.com/rubygems/bundler/blob/1-15-stable/CHANGELOG.md). + +### Exec optimization + +We've made `bundle exec` faster by reducing the impact of each additional gem in your application. In applications with hundreds of gems, this change made `exec` half a second (!) faster. + +### `bundle issue` + +The `issue` command provides troubleshooting help. If the problem persists, this command will help you open an issue in the Bundler issue tracker with all of the information that we need to help. + +### `bundle add` + +Finally, you can add gems to your Gemfile directly from the command line, without having to edit your Gemfile first. We've got plans to make this command even better, but this is a good start. + +### `bundle pristine` + +Just like the `gem pristine` command, the `bundle pristine` command wipes out any changes you have made to the gems installed locally, for testing or debugging reasons, and restores them to a freshly-installed state. diff --git a/source/v1.16/whats_new.html.haml b/source/v1.16/whats_new.html.haml deleted file mode 100644 index 6120a4cd4e..0000000000 --- a/source/v1.16/whats_new.html.haml +++ /dev/null @@ -1,35 +0,0 @@ -.container.guide - %h1 - What's New in - = current_visible_version - - %p - The - = link_to 'Bundler 1.16 announcement', '/blog/2017/10/31/bundler-1-16.html' - includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in - #{link_to "the changelog", "https://github.com/rubygems/bundler/blob/1-16-stable/CHANGELOG.md"}. - - %h3 Resolver improvements - .contents - .bullet - .description - %p - By replacing the heuristic-focused “swapping” algorithm with one that can consider groups of gems at once, Grey Baker managed to eliminate many bugs around dependency resolution, all while making resolution faster than ever before. - - %h3 Resolver improvements - .contents - .bullet - .description - %p - We've managed to reduce the number of times a Gemfile needs to be `eval`ed when running `bundle install`. - Additionally, running `bundle install` when no installation needs to be done is several times faster, bringing it within a few hundred milliseconds of `bundle check`. - - .contents - .bullet - .description - Bundler 1.16 also includes: - %ul - %li `bundle pristine` will now allow passing a list of gems to pristine - %li gemfiles are evaluated one fewer time when running `bundle install` - %li More than 20 other bugfixes - = link_to 'Full 1.16 changelog', 'https://github.com/rubygems/bundler/blob/1-16-stable/CHANGELOG.md', class: 'btn btn-primary' diff --git a/source/v1.16/whats_new.html.md b/source/v1.16/whats_new.html.md new file mode 100644 index 0000000000..e186cca07a --- /dev/null +++ b/source/v1.16/whats_new.html.md @@ -0,0 +1,21 @@ +# What's New in v1.16 + +The [Bundler 1.16 announcement](/blog/2017/10/31/bundler-1-16.html) +includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in +[the changelog](https://github.com/rubygems/bundler/blob/1-16-stable/CHANGELOG.md). + +### Resolver improvements + +By replacing the heuristic-focused “swapping” algorithm with one that can consider groups of gems at once, Grey Baker managed to eliminate many bugs around dependency resolution, all while making resolution faster than ever before. + +### Resolver improvements + +We've managed to reduce the number of times a Gemfile needs to be `eval`ed when running `bundle install`. +Additionally, running `bundle install` when no installation needs to be done is several times faster, bringing it within a few hundred milliseconds of `bundle check`. +Bundler 1.16 also includes: + +- `bundle pristine` will now allow passing a list of gems to pristine +- gemfiles are evaluated one fewer time when running `bundle install` +- More than 20 other bugfixes + +Full 1.16 changelog diff --git a/source/v1.17/whats_new.html.haml b/source/v1.17/whats_new.html.haml deleted file mode 100644 index fee712f9d2..0000000000 --- a/source/v1.17/whats_new.html.haml +++ /dev/null @@ -1,76 +0,0 @@ -.container.guide - %h1 - What's New in - = current_visible_version - - %p - The - = link_to 'Bundler 1.17 announcement', '/blog/2018/10/25/announcing-bundler-1-17-0.html' - includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in - #{link_to "the changelog", "https://github.com/rubygems/bundler/blob/1-17-stable/CHANGELOG.md"}. - - %h3 Remove gems from the CLI - .contents - .bullet - .description - %p - We've added a new command called `remove` that allows you to remove gems from the command line. Here's a quick example: - - :code - # lang: ruby - # Gemfile - source 'https://rubygems.org' - - gem 'rake' - gem 'json' - - %p - We can now remove a gem using `bundle remove`: - - :code - # lang: bash - $ bundle remove json - Removing gems from Gemfile - json was removed. - - %p - Bundler will then remove the json gem from the Gemfile. There also is an --install option that will run bundle install after the gem has been removed. - - %h3 New command options - .contents - .bullet - .description - %p - We've added a few options that extend existing features and improve the overall user experience: - %ul - %li - Add --optimistic and --strict options to `bundle add` that will add a version constraint to new gems - %li - Add --gemfile option to bundle exec - %li - Add --skip-install option to bundle add to skip running bundle install when adding a new gem - %li - Add --only-explicit option to bundle outdated to only show outdated gems that are listed directly in the Gemfile - - %h3 New plugin events - .contents - .bullet - .description - %p - We've added new events into Bundler for plugins. Libraries are now able to perform an action before and after each gem is installed. - - We are excited to see plugins take advantage of these events, and enhance the user experience on top of Bundler. - - %h3 Bundler home, plugin, cache and config environment variables - .contents - .bullet - .description - %p - Users have been asking for a feature that will allow them to specify a location for Bundler to place any files/folders that it creates or downloads, - but until now Bundler has been hardcoded to place all of its files into ~/.bundle. - To solve this issue, we've added some environment variables that (optionally) let you tell Bundler exactly where to put its files. - - To change the directory where Bundler will store all user-level files (which is ~/.bundle by default), set BUNDLE_USER_HOME. - To change the directory where Bundler caches downloaded gems and gem metadata (which is ~/.bundle/cache by default), set BUNDLE_USER_CACHE. - To change the location of the user-level configuration file (which is ~/.bundle/config by default), set BUNDLE_USER_CONFIG. - Finally, to set the location that Bundler will look for plugin files (which is ~/.bundle/plugins by default), set BUNDLE_USER_PLUGIN. diff --git a/source/v1.17/whats_new.html.md b/source/v1.17/whats_new.html.md new file mode 100644 index 0000000000..168a6da04b --- /dev/null +++ b/source/v1.17/whats_new.html.md @@ -0,0 +1,50 @@ +# What's New in v1.17 + +The [Bundler 1.17 announcement](/blog/2018/10/25/announcing-bundler-1-17-0.html) +includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in +[the changelog](https://github.com/rubygems/bundler/blob/1-17-stable/CHANGELOG.md). + +### Remove gems from the CLI + +We've added a new command called `remove` that allows you to remove gems from the command line. Here's a quick example: + +~~~ruby +# Gemfile +source 'https://rubygems.org' +gem 'rake' +gem 'json' +~~~ + +We can now remove a gem using `bundle remove`: + +~~~bash +$ bundle remove json +Removing gems from Gemfile +json was removed. +~~~ + +Bundler will then remove the `json` gem from the Gemfile. There also is an `--install` option that will run `bundle install` after the gem has been removed. + +### New command options + +We've added a few options that extend existing features and improve the overall user experience: + +- Add `--optimistic` and `--strict` options to `bundle add` that will add a version constraint to new gems +- Add `--gemfile` option to `bundle exec` +- Add `--skip-install` option to `bundle add` to skip running `bundle install` when adding a new gem +- Add `--only-explicit` option to `bundle outdated` to only show outdated gems that are listed directly in the Gemfile + +### New plugin events + +We've added new events into Bundler for plugins. Libraries are now able to perform an action before and after each gem is installed. +We are excited to see plugins take advantage of these events, and enhance the user experience on top of Bundler. + +### Bundler home, plugin, cache and config environment variables + +Users have been asking for a feature that will allow them to specify a location for Bundler to place any files/folders that it creates or downloads, +but until now Bundler has been hardcoded to place all of its files into `~/.bundle`. +To solve this issue, we've added some environment variables that (optionally) let you tell Bundler exactly where to put its files. +To change the directory where Bundler will store all user-level files (which is `~/.bundle` by default), set `BUNDLE_USER_HOME`. +To change the directory where Bundler caches downloaded gems and gem metadata (which is `~/.bundle/cache` by default), set `BUNDLE_USER_CACHE`. +To change the location of the user-level configuration file (which is `~/.bundle/config` by default), set `BUNDLE_USER_CONFIG`. +Finally, to set the location that Bundler will look for plugin files (which is `~/.bundle/plugins` by default), set `BUNDLE_USER_PLUGIN`. diff --git a/source/v2.0/whats_new.html.haml b/source/v2.0/whats_new.html.haml deleted file mode 100644 index 4c31f4a901..0000000000 --- a/source/v2.0/whats_new.html.haml +++ /dev/null @@ -1,28 +0,0 @@ -.container.guide - %h1 - What's New in - = current_visible_version - - %p - The - = link_to 'Bundler 2.0 announcement', '/blog/2019/01/03/announcing-bundler-2.html' - includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in - #{link_to "the changelog", "https://github.com/rubygems/bundler/blob/2-0-stable/CHANGELOG.md"}. - - %h3 Breaking changes - .contents - .bullet - .description - %p - This release focuses on removing offical support of versions of Ruby and RubyGems that have reached their end of life, with a few other small breaking changes. - %ul - %li - Removed support for Ruby < 2.3 - %li - Remove support for RubyGems < 3.0.0 - %li - Changed the github: "some/repo" gem source to use the https schema by default - %li - Errors/warnings will now print to STDERR - %li - Bundler now auto-switches between version 1 and 2 based on the Lockfile diff --git a/source/v2.0/whats_new.html.md b/source/v2.0/whats_new.html.md new file mode 100644 index 0000000000..1f10ca9f79 --- /dev/null +++ b/source/v2.0/whats_new.html.md @@ -0,0 +1,15 @@ +# What's New in v2.0 + +The [Bundler 2.0 announcement](/blog/2019/01/03/announcing-bundler-2.html) +includes context and a more detailed explanation of the changes in this version. This is a summary of the biggest changes. As always, a detailed list of every change is provided in +[the changelog](https://github.com/rubygems/bundler/blob/2-0-stable/CHANGELOG.md). + +### Breaking changes + +This release focuses on removing offical support of versions of Ruby and RubyGems that have reached their end of life, with a few other small breaking changes. + +- Removed support for Ruby < 2.3 +- Remove support for RubyGems < 3.0.0 +- Changed the `github: "some/repo"` gem source to use the `https` schema by default +- Errors/warnings will now print to `STDERR` +- Bundler now auto-switches between version 1 and 2 based on the Lockfile diff --git a/source/v2.1/whats_new.html.haml b/source/v2.1/whats_new.html.haml deleted file mode 100644 index d0d36fc1d0..0000000000 --- a/source/v2.1/whats_new.html.haml +++ /dev/null @@ -1,338 +0,0 @@ -.container.guide - %h1 - What's New in - = current_visible_version - - %p - This time there was not blog post announcement for the 2.1 release, but as - always, a detailed list of every change is provided in - #{link_to "the changelog", "https://github.com/rubygems/bundler/blob/2-1-stable/CHANGELOG.md"}. - - %p - The main change in bundler 2.1 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, aimed obviously at making the library - better. - - %p - 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 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 <option> <value>. - - %p - As a general note, these changes are intended to improve the experience using - bundler for new users, who have no existing usage routines - nor possibly biased opinions about how the tool should work based on how it - has historically worked. We do understand that changing behaviour that have - been existing for years can be annoying for old users, that's why we intend - to make this process as smooth as possible for everyone. - - %p - I'll be dividing the deprecations into four groups: CLI deprecations, Helper - deprecations, DSL deprecations, and misc deprecations. Let's dive into each of - them. - - - %h3 CLI deprecations - .contents - .bullet - .description - - %p - The CLI defines a set of commands and options that can be used by our - users to create command lines that bundler can understand. There's a - number of changes in the upcoming 3 version. - - %ul - %li - - %p - Flags passed to bundle install that relied on being - remembered across invocations have been deprecated. - - %p - In particular, the --clean, - --deployment, --frozen, - -no-prune, --path, - --shebang, --system, - --without, and --with options to - bundle install. - - %p - Remembering CLI options has been a source of historical confusion - and bug reports, not only for beginners but also for experienced - users. A CLI tool should not behave differently across exactly the - same invocations _unless_ explicitly configured to do so. This is - what configuration is about after all, and things should never be - silently configured without the user knowing about it. - - %p - The problem with changing this behavior is that very common - workflows are relying on it. For example, when you run - bundle install --without development:test in - production, those flags are persisted in the app's configuration - file and further bundle invocations will happily - ignore development and test gems. This magic will disappear from - bundler 3, and you will explicitly need to configure it, either - through environment variables, application configuration, or - machine configuration. For example, with bundle config set - without development test. - - %p - The removal of this kind of flag also applies to analogous commands, - for example, to bundle check --path. - - %li - - %p - The --force flag to bundle install and - bundle update has been renamed to - --redownload. - - %p - This is just a simple rename of the flag, to make more apparent - what it actually does. This flag forces redownloading every gem, - it doesn't "force" anything else. - - %li - - %p - bundle viz will be removed and extracted to a plugin. - - %p - This is the only bundler command requiring external dependencies, - both an OS dependency (the graphviz package) and a - gem dependency (the ruby-graphviz gem). Removing - these dependencies will make development easier and it was also - seen by the bundler team as an opportunity to develop a bundler - plugin that it's officially maintained by the bundler team, and - that users can take as a reference to develop their own plugins. - The plugin will contain the same code as the old core command, the - only difference being that the command is now implemented as - bundle graph which is much easier to understand. - However, the details of the plugin are under discussion. See - [#7041](https://github.com/rubygems/bundler/issues/7041). - - %li - - %p - The bundle console will be removed and replaced with - bin/console. - - %p - Over time we found bundle console hard to maintain - because every user would want to add her own specific tweaks to - it. In order to ease maintenance and reduce bikeshedding - discussions, we're removing the bundle console - command in favor of a bin/console script created by - bundle gem on gem generation that users can tweak to - their needs. - - %li - - %p - The bundle install command will no longer accept a - --binstubs flag. - - %p - The --binstubs option has been removed from - bundle install and replaced with the bundle - binstubs command. The --binstubs flag would - create binstubs for all executables present inside the gems in the - project. This was hardly useful since most users will only use a - subset of all the binstubs available to them. Also, it would force - the introduction of a bunch of most likely unused files into - source control. Because of this, binstubs now must be created and - checked into version control individually. - - %li - - %p - The bundle inject command is deprecated and replaced - with bundle add. - - %p - We believe the new command fits the user's mental model better and - it supports a wider set of use cases. The interface supported by - bundle inject works exactly the same in bundle - add, so it should be easy to migrate to the new command. - - %h4 Helper deprecations - .contents - .bullet - .description - - %ul - - %li - - %p - Bundler.clean_env, - Bundler.with_clean_env, - Bundler.clean_system, and - Bundler.clean_exec are deprecated. - - %p - All of these helpers ultimately use Bundler.clean_env - under the hood, which makes sure all bundler-related environment - are removed inside the block it yields. - - %p - After quite a lot user reports, we noticed that users don't - usually want this but instead want the bundler environment as it - was before the current process was started. Thus, - Bundler.with_original_env, - Bundler.original_system, and - Bundler.original_exec were born. They all use the - new Bundler.original_env under the hood. - - %p - There's however some specific cases where the good old - Bundler.clean_env behavior can be useful. For - example, when testing Rails generators, you really want an - environment where bundler is out of the picture. This - is why we decided to keep the old behavior under a new more clear - name, because we figured the word "clean" was too ambiguous. So we - have introduced Bundler.unbundled_env, - Bundler.with_unbundled_env, - Bundler.unbundled_system, and - Bundler.unbundled_exec. - - %li - - %p - Bundler.environment is deprecated in favor of - Bundler.load. - - %p - We're not sure how people might be using this directly but we have - removed the Bundler::Environment class which was - instantiated by Bundler.environment since we realized - the Bundler::Runtime class was the same thing. During - the transition Bundler.environment will delegate to - Bundler.load, which holds the reference to the - Bundler::Environment. - - %h4 DSL deprecations - .contents - .bullet - .description - - %p - - The following deprecations in bundler's DSL are meant to prepare for - the strict source pinning in bundler 3, where the source for every - dependency will be unambiguously defined. - - %ul - - %li - - %p - Multiple global Gemfile sources will no longer be supported. - - %p - Instead of something like this: - - :code - # lang: ruby - # Gemfile - source "https://main_source" - source "https://another_source" - - gem "dependency1" - gem "dependency2" - - %p - do something like this: - - :code - # lang: ruby - # Gemfile - source "https://main_source" - - gem "dependency1" - - source "https://another_source" do - gem "dependency2" - end - - %li - - %p - Global `path` and `git` sources will no longer be supported. - - %p - Instead of something like this: - - :code - # lang: ruby - # Gemfile - path "/my/path/with/gems" - git "https://my_git_repo_with_gems" - - gem "dependency1" - gem "dependency2" - - %p - do something like this: - - :code - # lang: ruby - # Gemfile - gem "dependency1", path: "/my/path/with/gems" - gem "dependency2", git: "https://my_git_repo_with_gems" - - %p - or use the block forms if you have multiple gems for each source and - you want to be a bit DRYer: - - :code - # lang: ruby - # Gemfile - path "/my/path/with/gems" do - # gem "dependency1" - # ... - # gem "dependencyn" - end - - git "https://my_git_repo_with_gems" do - # gem "dependency1" - # ... - # gem "dependencyn" - end - - %h4 Misc deprecations - .contents - .bullet - .description - - %ul - - %li - - %p - - Deployment helpers for vlad and - capistrano are being removed. - - %p - These are natural deprecations since the vlad tool - has had no activity for years whereas capistrano 3 - has built-in Bundler integration in the form of the - `capistrano-bundler` gem, and everyone using Capistrano 3 should - be already using that instead. If for some reason, you are still - using Capistrano 2, feel free to copy the Capistrano tasks out of - the Bundler 2 file lib/bundler/deployment.rb and put - them into your app. - - %p - In general, we don't want to maintain integrations for every - deployment system out there, so that's why we are removing these. diff --git a/source/v2.1/whats_new.html.md b/source/v2.1/whats_new.html.md new file mode 100644 index 0000000000..324c99992a --- /dev/null +++ b/source/v2.1/whats_new.html.md @@ -0,0 +1,247 @@ +# What's New in v2.1 + +This time there was not blog post announcement for the 2.1 release, but as +always, a detailed list of every change is provided in +[the changelog](https://github.com/rubygems/bundler/blob/2-1-stable/CHANGELOG.md). + +The main change in bundler 2.1 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, aimed obviously at making the library +better. + +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 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