構造はこうぞ!すばぁ! #どうした
というわけでruby-3.1.0-preview1でのMastodonがnet/popをrequireしようとして落ちるのはnet-popがdefault gemからbundled gamになったのが原因のようで
$ foreman run -e .env.production bin/tootctl accounts create zunda --email zundan@gmail.com --confirmed --role admin
:
/…/vendor/bundle/ruby/3.1.0/bundler/gems/bootsnap-5fedb52badb3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:34:in `require': cannot load such file -- net/pop (LoadError)
from /…/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in `require'
from /…/vendor/bundle/ruby/3.1.0/gems/mail-2.7.1/lib/mail/network/retriever_methods/pop3.rb:36:in `<class:POP3>'
from /…/vendor/bundle/ruby/3.1.0/gems/mail-2.7.1/lib/mail/network/retriever_methods/pop3.rb:35:in `<module:Mail>'
from /…/vendor/bundle/ruby/3.1.0/gems/mail-2.7.1/lib/mail/network/retriever_methods/pop3.rb:4:in `<top (required)>'
from /…/vendor/bundle/ruby/3.1.0/bundler/gems/bootsnap-5fedb52badb3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
:
requireしてるのはmailというgemのようなのでした
$ find vendor/bundle/ruby/3.1.0/gems -name \*.rb | xargs grep -H net/pop
vendor/bundle/ruby/3.1.0/gems/mail-2.7.1/lib/mail/network/retriever_methods/pop3.rb: require 'net/pop' unless defined?(Net::POP)
プルリクエスト出てるんだけど以前のRubyでのテストが落ちてるのかな?
https://github.com/mikel/mail/pull/1439
うりゃ
$ git diff Gemfile
diff --git a/Gemfile b/Gemfile
index f0f2863de..13a8d764b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -12,6 +12,8 @@ gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 1.1'
gem 'rack', '~> 2.2.3'
+gem 'mail', git: 'https:// github.com/Shopify/mail.git', branch: 'net-smtp-dependency'
+
gem 'hamlit-rails', '~> 0.2'
gem 'pg', '~> 1.2'
gem 'makara', '~> 0.5'
とりゃ
$ foreman run -e .env.production bin/tootctl accounts create zunda --email zundan@gmail.com --confirmed --role admin
warning: parser/current is loading parser/ruby31, which recognizes
warning: 3.1.0-dev-compliant syntax, but you are running 3.1.0.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
OK
New password: パスワード
やったあ!!
$ heroku run bash
~ $ tootctl feeds build
1/1 |===========================================================| Time: 00:00:00
Regenerated feeds for 1 accounts
でなおっちった
じこぶー
ハワイ州のワクチン接種証明書SMART Health Cardを読んでみる|zunda https://zenn.dev/zunda/articles/53ca4d514c1a4d #zenn
よっこらしょっと (こっちはまだruby-3.0)
76761d5fc (upstream/main) Add ability for admins to delete canonical email blocks (#16644)
7f803c41e Add ability to purge undeliverable domains from admin interface (#16686)
0c17fd910 Change title of retention chart (#16909)
40f202c1e Change list title input styling (#17092)
\Master?/ \ますたー/
Merged mastodon/mastodon at 76761d5fc0886e44a7a6eb94ab62aae8204d9e6e.
[コロナワクチン接種証明アプリ きょうから運用開始]
新型コロナワクチンの接種を済ませていることをスマートフォンで証明する専用アプリの運用が、20日から始まります。デジタル庁は新型コロナへの対応でも、デジタル化を進めることで利便性の向上につなげたいとしています。
http://www3.nhk.or.jp/news/html/20211220/k10013395071000.html
このアカウントは、notestockで公開設定になっていません。
最近日本国外に引っ越した日本籍の人はマイナンバーとマイナンバーカード持ってるのかな?でもカードの方は日本国外に引っ越すと無効になるのかな?面倒だねえ。
ってFirefoxでhttps://www.microsoft.com を見られるようになってるー。Firefoxに更新が来たのかな?Microsoftがロールバックしたのかな?
$ bundle exec rspec
warning: parser/current is loading parser/ruby31, which recognizes
warning: 3.1.0-dev-compliant syntax, but you are running 3.1.0.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
Randomized with seed 62509
3259/3259 |====================== 100 =======================>| Time: 00:06:43
:
Finished in 6 minutes 43 seconds (files took 9.33 seconds to load)
3259 examples, 0 failures, 24 pending
Randomized with seed 62509
Coverage report generated for RSpec to /home/zunda/c/src/github.com/zunda/mastodon/coverage. 14959 / 23406 LOC (63.91%) covered.
いぇいいぇい
$ git branch -m use-ruby31 try-ruby31
$ git switch use-ruby30
$ git switch -c use-ruby31
$ git diff use-ruby30 try-ruby31 Gemfile > ruby-31.patch
$ vi ruby-31.patch
でruby-3.1.0-preview1のための差分だけを残す。
$ patch -p1 < ruby-31.patch
$ git diff upstream/main Gemfile
で余分な差分が無いのを確認。
$ rbenv local 3.1.0-preview1
$ bundle install --path=vendor/bundle
$ bundle exec rspec
も通るのを確認して
$ git add .ruby-version Gemfile Gemfile.lock
$ git push -u origin -f use-ruby31
プロダクション用のビルドになっちくりー!!
yaml読むときのやつ入れ忘れたっぽ…
ActionView::Template::Error: unknown keyword: :aliases
yamlライブラリの更新はruby本体にはいってた気のする。ってことはrails-settings-cachedに施した変更はこのままじゃ使えないってことだぬ
https://github.com/zunda/rails-settings-cached/commit/e3a3c992fac508b2ca445d2898365b6ddf8cfa64
rubyを3.0.3から3.1.0-previw1に上げたとたんスワップメモリもりもりになったんじゃが (ご迷惑をおかけしました。とりあえず戻した)
jemallocは使っているはず。Pumaは1ワーカー6スレッド、Sidekiqは5スレッド、--jit --jit-max-cache=100000のどれかが3.0に比べて3.1でメモリもりもりになったんだろうなあ。とりあえずJITを無効にしてもう一度3.1に行ってみゆ。
mjitを止めたらruby-3.1.0-preview1のメモリもりもりが止まったぽい。JITのふるまいが変化したんだろうな。
Rubyist近況[1] Advent Calendar 2021に滑り込ませていただきました!!
Mastodonをruby-3.1.0-preview1で走らせてみる|zunda https://zenn.dev/zunda/articles/1a0803946942d0 #zenn
このアカウントは、notestockで公開設定になっていません。
これはMastodonやPleroma、Misskey、どれでもそうなんだけど、覚えておいて。
自分の所属サーバに存在しない投稿、誰もフォローしてなかったりして、受け取れてない別のサーバの投稿でも、
検索欄に投稿のURLを入れて検索すると、リモートからとってきて取得できるよ。
いいかい、検索にURLだ。
アカウントのURLでもいけるよ。
FediMovie(PeerTube)の動画やチャンネルもそうだからね!
#mastodon #pleroma #misskey #PeerTube #fedimovie
https://github.com/mastodon/mastodon/blob/6e50134/app/lib/activitypub/activity.rb#L29 の分岐以降でRubyのバージョン依存があるような気のする。どこ…。