Skip to content

Releases: bullet-train-co/bullet_train

v1.18.0

19 Feb 21:26
1b4d412
Compare
Choose a tag to compare

Potentially breaking changes

Similar to 1.17.0/1.17.1 this release is aimed at slimming down the default/required set of dependencies in an effort to reduce the memory footprint of Bullet Train apps. A number of gems that used to be automatically included are now optional and you must opt-in if you want to continue to use them. Several other gems are now easier for you to remove since they now appear in the Gemfile directly instead of being buried in .gemspec dependencies.

Dependencies completely removed from core

These gems used to be listed as dependencies in core despite never being configured or used anywhere. Since they were completely unused we removed them as dependencies and have not added them to the Gemfile in the starter repo, not even in the optional gems section. If you're using them you need to add them to the bottom of your Gemfile.

  • hiredis
  • valid_email

Dependencies moved from core to being optional

These gems used to be listed as hard dependencies, but aren't really necessary. See the respective pull requests for more info.

  • xxhash
  • unicode-emoji

Dependencies hoisted from core into the Gemfile

These gems uses to be listed as hard dependencies, but are only actually used and configured in the starter repo. We've removed them as dependencies in core and have added them to the Gemfile. If you don't want to use them for some reason you should now be able to remove them from your app completely by removing them from the Gemfile and removing any lingering references in your application.

  • sidekiq
  • rack-cors
  • premailer-rails

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

New Contributors

Full Changelog: v1.17.1...v1.18.0

v1.17.1

12 Feb 21:23
09400ec
Compare
Choose a tag to compare

1.17.1 contains a critical bug fix for production that originated in 1.17.0

Since 1.17.0 introduced a number of potentially breaking changes and contained a definite bug that prevented deploying to production we're duplicating the info about the potentially breaking changes in 1.17.0 here for convenience.

Potentially breaking changes from 1.17.0

The 1.17.0 release is aimed at slimming down the default/required set of dependencies in an effort to reduce the memory footprint of Bullet Train apps. A number of gems that used to be automatically included are now optional and you must opt-in if you want to continue to use them.

Dependencies removed from core

The following gems are no longer declared as dependencies of the core gems, but there is a new section of the Gemfile where you can easily enable them.

  • microscope
  • ruby-openai
  • awesome_print
  • image_processing (This was already present, but commented out, in the Gemfile so it hasn't been added to the new section.
  • colorizer (This gem is basically a duplicate of the colorize gem, which we still declare a dependency, so we didn't add it to the new section. colorizer is abandoned and doesn't even have documentation available, so we wouldn't recommend using it. If you need it for some reason you can add it to the bottom of your Gemfile. If you do need it for something, please let us know about it.)

Dependencies removed from the starter repo

The starter repo used to declare a bunch of gems in the :production group that may or may not be used by downstream apps depending on your deployment environment and the services that you've chosen to use. The updated :production group contains all the same gems as before, but most of them are commented out. You should double check if you're actually using any of the following gems, and if so, un-comment the appropriate lines in your Gemfile:

  • postmark-rails
  • rails_autoscale_agent
  • honeybadger
  • sentry-ruby
  • sentry-rails
  • sentry-sidekiq
  • aws-sdk-s3

pry is now in the :development, :test group

We used to include pry at the top level of the Gemfile but most of the time you shouldn't need a debugger in production, so we've moved it to the :development, :test group so that it won't be present in production by default. If you use pry in production you should move it out of the :development, :test group.

derailed_benchmarks is now in the :development group by default

The derailed_benchmarks gem is helpful in finding opportunities for improvements around memory use, so we've included it in the :development group. See the derailed_benchmarks docs for details on how to make use of the gem.

Expected memory use improvements

Before starting on these updates derailed_benchmarks "Memory used at Require time" was showing the starter repo consuming ~108 MiB of memory.

The 1.17.0 release is consuming about ~88 MiB of memory by default.

If you re-enable any of the gems listed above, or if you're using other gems not present in the starter repo your number will likely be higher.

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

Full Changelog: v1.17.0...v1.17.1

v1.17.0

12 Feb 19:11
573c512
Compare
Choose a tag to compare

NOTE 1.17.0 contains a critical bug that will prevent deploying to production

For some reason we had an explicit require "pry" in config/application.rb which doesn't play nice with the change we made to pry in the Gemfile in verison 1.17.0.

For simplicity we recommend skipping 1.17.0 and going directly to 1.17.1 which just fixes this bug, and a documentation update for the Stripe billing gems. We'll duplicate the documentation below about the potentially breaking changes into the release notes for 1.17.1 just for convenience.

If, for some reason, you don't want to skip directly to 1.17.1 you can get 1.17.0 to deploy to production by removing the require "pry" line from config/application.rb.

Potentially breaking changes

This release is aimed at slimming down the default/required set of dependencies in an effort to reduce the memory footprint of Bullet Train apps. A number of gems that used to be automatically included are now optional and you must opt-in if you want to continue to use them.

Dependencies removed from core

The following gems are no longer declared as dependencies of the core gems, but there is a new section of the Gemfile where you can easily enable them.

  • microscope
  • ruby-openai
  • awesome_print
  • image_processing (This was already present, but commented out, in the Gemfile so it hasn't been added to the new section.
  • colorizer (This gem is basically a duplicate of the colorize gem, which we still declare a dependency, so we didn't add it to the new section. colorizer is abandoned and doesn't even have documentation available, so we wouldn't recommend using it. If you need it for some reason you can add it to the bottom of your Gemfile. If you do need it for something, please let us know about it.)

Dependencies removed from the starter repo

The starter repo used to declare a bunch of gems in the :production group that may or may not be used by downstream apps depending on your deployment environment and the services that you've chosen to use. The updated :production group contains all the same gems as before, but most of them are commented out. You should double check if you're actually using any of the following gems, and if so, un-comment the appropriate lines in your Gemfile:

  • postmark-rails
  • rails_autoscale_agent
  • honeybadger
  • sentry-ruby
  • sentry-rails
  • sentry-sidekiq
  • aws-sdk-s3

pry is now in the :development, :test group

We used to include pry at the top level of the Gemfile but most of the time you shouldn't need a debugger in production, so we've moved it to the :development, :test group so that it won't be present in production by default. If you use pry in production you should move it out of the :development, :test group.

derailed_benchmarks is now in the :development group by default

The derailed_benchmarks gem is helpful in finding opportunities for improvements around memory use, so we've included it in the :development group. See the derailed_benchmarks docs for details on how to make use of the gem.

Expected memory use improvements

Before starting on these updates derailed_benchmarks "Memory used at Require time" was showing the starter repo consuming ~108 MiB of memory.

The 1.17.0 release is consuming about ~88 MiB of memory by default.

If you re-enable any of the gems listed above, or if you're using other gems not present in the starter repo your number will likely be higher.

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

Full Changelog: v1.16.0...v1.17.0

v1.16.0

07 Feb 20:42
5d6cce7
Compare
Choose a tag to compare

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

  • [ruby] Update all Bundler dependencies (2025-01-30) by @depfu in #1898
  • [ruby] Update all Bundler dependencies (2025-01-31) by @depfu in #1899
  • Run corepack enable on render by @jagthedrummer in #1900
  • [ruby] Update all Bundler dependencies (2025-02-01) by @depfu in #1901
  • [ruby] Update all Bundler dependencies (2025-02-04) by @depfu in #1906
  • [ruby] Update all Bundler dependencies (2025-02-05) by @depfu in #1907
  • [js] Update all Yarn dependencies (2025-02-06) by @depfu in #1909
  • [ruby] Update all Bundler dependencies (2025-02-06) by @depfu in #1908
  • [ruby] Update all Bundler dependencies (2025-02-07) by @depfu in #1913
  • Remove bullet_train-scope_questions gem by @jagthedrummer in #1915
  • Changed the default render database plan. Starter is no longer available by @jjjessen in #1904
  • fix: set HTTP_PATH if it already has origin remote by @sh1nj1 in #1905
  • Remove more references to bullet_train-scope_questions by @jagthedrummer in #1918
  • BT-Core version bump: - 1.16.0 by @jagthedrummer in #1919

New Contributors

Full Changelog: v1.15.0...v1.16.0

v1.15.0

29 Jan 21:08
c5b4cff
Compare
Choose a tag to compare

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

Full Changelog: v1.14.2...v1.15.0

v1.14.2

27 Jan 20:50
b1247c9
Compare
Choose a tag to compare

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

Full Changelog: v1.14.1...v1.14.2

v1.14.1

23 Jan 20:49
356ff5e
Compare
Choose a tag to compare

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

  • [ruby] Update all Bundler dependencies (2024-12-31) by @depfu in #1851
  • [ruby] Update all Bundler dependencies (2025-01-01) by @depfu in #1852
  • [ruby] Update all Bundler dependencies (2025-01-03) by @depfu in #1853
  • [ruby] Update all Bundler dependencies (2025-01-04) by @depfu in #1854
  • [ruby] Update all Bundler dependencies (2025-01-05) by @depfu in #1855
  • [js] Update all Yarn dependencies (2025-01-05) by @depfu in #1856
  • [ruby] Update all Bundler dependencies (2025-01-06) by @depfu in #1857
  • [ruby] Update all Bundler dependencies (2025-01-07) by @depfu in #1858
  • [ruby] Update all Bundler dependencies (2025-01-08) by @depfu in #1860
  • [ruby] Update all Bundler dependencies (2025-01-09) by @depfu in #1861
  • [js] Update all Yarn dependencies (2025-01-09) by @depfu in #1862
  • [ruby] Update all Bundler dependencies (2025-01-10) by @depfu in #1865
  • [ruby] Update all Bundler dependencies (2025-01-11) by @depfu in #1866
  • [ruby] Update all Bundler dependencies (2025-01-13) by @depfu in #1867
  • [ruby] Update all Bundler dependencies (2025-01-14) by @depfu in #1868
  • [ruby] Update all Bundler dependencies (2025-01-15) by @depfu in #1869
  • [ruby] Update all Bundler dependencies (2025-01-16) by @depfu in #1870
  • [js] Update all Yarn dependencies (2025-01-16) by @depfu in #1871
  • [ruby] Update all Bundler dependencies (2025-01-17) by @depfu in #1872
  • [ruby] Update all Bundler dependencies (2025-01-18) by @depfu in #1873
  • [ruby] Update all Bundler dependencies (2025-01-20) by @depfu in #1874
  • [ruby] Update all Bundler dependencies (2025-01-21) by @depfu in #1875
  • [ruby] Update all Bundler dependencies (2025-01-22) by @depfu in #1876
  • [ruby] Update all Bundler dependencies (2025-01-23) by @depfu in #1877
  • Install the heroku CLI before deploying to heroku by @jagthedrummer in #1850
  • Skip setup process for icu4c if we don't have bullet_train-conversations by @jagthedrummer in #1880
  • BT-Core version bump: - 1.14.1 by @jagthedrummer in #1881

Full Changelog: v1.14.0...v1.14.1

v1.14.0

30 Dec 19:45
09b308c
Compare
Choose a tag to compare

Possible Breaking Changes

Upgrade ruby 3.3.6 => 3.4.1

This release upgrades ruby to verison 3.4.1. You'll need to install it locally via whatever runtime manager you use (asdf is a good one if you're looking for recommendations) and then run bundle install to install all the gems for the new version.

This is a major ruby update. To prepare for upgrading your Bullet Train application you should make sure that all of your non-BT gems are up to date. You can see the status by running bundle outdated.

If you run into problems making this upgrade it's likely related to gems conflicting with the new ruby version. If you're having trouble getting things working, hit us up in Discord and we'll try to help.

Remove extended_email_reply_parser and charlock_holmes dependencies

NOTE This is only a breaking change if you use the bullet_train-conversations gem. If you're using that gem you should either:

  • Update it to version 1.1.5 or later
  • Add extended_email_reply_parser directly to your Gemfile

Upgrade node 22.11.0 => 22.12.0

This release upgrades node to version 22.12.0. You'll need to install it locally via whatever runtime manager you use (asdf is a good one if you're looking for recommendations) and then do the following to install yarn and all the JS dependencies:

npm install -g yarn
corepack enable
yarn install

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

Full Changelog: v1.13.0...v1.14.0

v1.13.0

23 Dec 17:04
2992edb
Compare
Choose a tag to compare

Possible Breaking Change - Upgrade to Rails 8

Rails 8 includes the removal of some deprecated classes. This may cause problems if you have other gems that are relying on some of those classes.

For instance you may see an error like this:

LoadError: cannot load such file -- active_support/basic_object

or

LoadError: cannot load such file -- active_support/proxy_object

One gem that used to rely on those classes is jbuilder, so you might start by making sure it's up to date.

bundle update jbuilder --conservative

It's probably a good time to check for other gems that are out of date.

bundle outdated

Or you could just update everything.

bundle update

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

Full Changelog: v1.12.3...v1.13.0

v1.12.3

20 Dec 19:43
c7865c2
Compare
Choose a tag to compare

What's changed in bullet_train-core

Also check the corresponding release for the bullet_train-core repo:
https://github.com/bullet-train-co/bullet_train-core/releases

What's Changed

Full Changelog: v1.12.2...v1.12.3