running bundle install should work when updating to Mastodon 3.1.0
mastodon@vServer:~/live$ bundle install
Fetching gem metadata from https://rubygems.org/............
Your bundle is locked to httplog (1.4.1), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the
author of httplog (1.4.1) has removed it. You'll need to update your bundle to a version other than httplog (1.4.1) that hasn't been removed in order to install.
Check out v3.1.0rc1 tag and run bundle install
Same disclaimer as https://github.com/tootsuite/mastodon/issues/12993: I still know little about ruby package management.
Checking https://rubygems.org/gems/httplog/versions it seems like 1.4.1 has been just yanked and 1.4.2 was released instead.
This is also mentioned in https://github.com/trusche/httplog and https://github.com/trusche/httplog/issues/89 is given as the reason.
Simply editing the lockfile doesn't seem enough as bundler notices the change
diff --git a/Gemfile.lock b/Gemfile.lock
index 891585cc3..c8a37dd4b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -282,7 +282,7 @@ GEM
http-parser (1.2.1)
ffi-compiler (>= 1.0, < 2.0)
http_accept_language (2.1.1)
- httplog (1.4.1)
+ httplog (1.4.2)
rack (>= 1.0)
rainbow (>= 2.0.0)
i18n (1.8.2)
@@ -709,7 +709,7 @@ DEPENDENCIES
http (~> 4.3)
http_accept_language (~> 2.1)
http_parser.rb (~> 0.6)!
- httplog (~> 1.4.1)
+ httplog (~> 1.4.2)
i18n-tasks (~> 0.9)
idn-ruby
iso-639
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.
If this is a development machine, remove the /home/mastodon/live/Gemfile freeze
by running `bundle install --no-deployment`.
Bundler is unlocking ruby
You have added to the Gemfile:
* httplog (~> 1.4.1)
You have deleted from the Gemfile:
* httplog (~> 1.4.2)
It turns out, if I also edit the Gemfile itself, the install works:
--- a/Gemfile
+++ b/Gemfile
@@ -60,7 +60,7 @@ gem 'htmlentities', '~> 4.3'
gem 'http', '~> 4.3'
gem 'http_accept_language', '~> 2.1'
gem 'http_parser.rb', '~> 0.6', git: 'https://github.com/tmm1/http_parser.rb', ref: '54b17ba8c7d8d20a16dfc65d1775241833219cf2', submodules: true
-gem 'httplog', '~> 1.4.1'
+gem 'httplog', '~> 1.4.2'
gem 'idn-ruby', require: 'idn'
gem 'kaminari', '~> 1.1'
gem 'link_header', '~> 0.0'
In addition to editing the Gemfile and Gemfile.lock I had to run bundle as:
bundle install --no-deployment
It does mention that in the error thrown by bundle install but I wasn't initially sure if it was the right thing to do!
Fixed in 3.1.1.
On a side note, while bundle install --no-deployment was needed in this particular case because the dependency wasn't available anymore, it is recommended to use bundle config set deployment true and bundle config set frozen true to avoid accidentally updating gems to unsupported versions (e.g. the numerous bug reports we got related to unsupported Paperclip versions) or having to deal with merge conflicts when updating.
Most helpful comment
It turns out, if I also edit the Gemfile itself, the install works: