Mastodon v2.0.0の翻訳
大きな変更点:
・全ての_idで終わる属性を含むREST APIレスポンスのid属性が、integerではなくstringで返されるようになりました。これは巨大なintegerはJSONでデータを損なわずにエンコードすることができず、MastodonのすべてのIDは現在bigintとなったためです。いくつかのアプリケーションはアップデートされるまでこの更新により動作しなくなります。
・MastodonはOStatusベースのインスタンスにプライベート及びダイレクトステータスを配信しなくなります。(これは1.6.0以前のMastodonを含みます。)
・スタイルシートカスタムは新しいテーマ機能のため動作が変更されます。詳細はアップグレードノートを参照してください。
新機能
カスタム絵文字(#4988, #5243, #5258, #5002)
管理者は50KBのPNG画像をアップロードし、それらをショートコードに割り当てることが出来ます。これらの画像はカスタム絵文字として動作し、ステータス内にショートコードを使って埋め込むことができます。(例::example:)割り当てられた絵文字は異なるインスタンス間で正常に表示することが出来ますが、ユーザーはインスタンスローカルの絵文字のみしか使用することが出来ません。しかし、この機能は利用したい絵文字のローカルコピーを作成するのはシンプルです。
管理者はリモートインスタンスの個々の絵文字をインスタンスにおいて無効にすることが出来ます。ドメインブロックのメディア拒否オプションも有効です。
複数のテーマのサポートを追加 (#4959, #5336)
custom.scssの古い方法に変わり、管理者は追加のテーマをインストールすることが出来ます。1個以上のテーマがインストールされている場合、ユーザー設定内に選択する事ができるオプションが表示されます。
EmojiOne絵文字パックをTwemojiへ変更 (#5046)
EmojiOneの新しいリリースはライセンスと入手方法変更されました。最新のスタンダード絵文字のすべてにアクセスするため、Twemojiにパックを変更しました。Twemojiはより寛容なライセンスを持ち、TwitterやDiscordにも使用されています。
絵文字自動サジェストを追加 (#5053)
ショートコードをタイプし始めると、ユーザー名の様に自動サジェストが即座に表示されます。選択時テキスト内にユニコード文字を挿入します。スタンダード絵文字ショートコードを入力し離れると、現在プレインテキストとして残すようになりました。それらはサーバー側でユニコードとして変換されなくなり、コードを捻じ曲げたり、ショートコードに似たシンタックスを持つIPv6アドレスを回避します。
新しい絵文字ピッカー (#5046, #5275)
絵文字ピッカーが改良されました。インスタンスのカスタム絵文字や頻繁に使う絵文字履歴や、選択したスキントーンオプションを表示します。
新しいエラーページグラフィック。その他のエラーページの改良 (#5067, #5099)
500エラーページがassets:precompileタスク内で生成されるようになり、その他のアプリケーションと同様のスタイルシートとアセットを使用できるようになります。Google Fontsのロードはページから削除されました。カスタムスタイル調整が動作するようになりました。更に新しい象のグラフィックが追加されました。
より良いプライマリID生成 (#4801, #5260)
ステータスのプライマリIDの生成に、いわゆるSnowflakeアルゴリズムが使用されるようになりました。その変更により、ID内にタイムスタンプが含まれるようになり、データベースに実際に挿入された際、アイテムを時系列順にソートすることを可能にします。また、パフォーマンス低下や、keysetページネーションに必要な独自性を失うことがありません。さらに、この変更によりデータベーステーブルが本当はどのくらい大きいか予想するこ事が難しくなります。他のインスタンスからの古いステータスを解決する際、例えばブースト、検索やスレッド解決、これらは新しく解決された古いステータスが、パブリックタイムラインのトップに表示されなくなります。
Web UIのホットキー (#5164)
Web UIが多様なホットキーによりナビゲートとコントロールすることが可能になりました。
例えば、1-9は一致するカラムにフォーカス刷るようになります。(作成ドロワーとスキップします。)nを押すことにより、作成テキストエリアにフォーカスし、alt+nはフォーカスするだけでなく、リセットを行います。sは検索フォームにフォーカスします。
タイムラインにフォーカスされている際、j/下矢印とk/上矢印はフォーカスを上下させます。o/enterキーはステータスを拡張し、pは作成者のプロファイルを開き、rはリプライ、mは作成者にメンション、fはお気に入り、bでブーストを行います。
通常のナビゲーションにおいては、バックスペースキーは戻るに設定されています。gと特定の文字の素早い組み合わせにより、特定のページに遷移します。sでスタート、hでホーム、nで通知、lでローカルタイムライン、tで連合タイムライン、fでお気に入り、uで自分のプロファイル、pでピン留めされたトゥート、bでブロックされたユーザー、mでミュートされたユーザーに遷移します。
添付メディアに代替テキストを設定できる機能を追加 (#5123)
メディアを添付しアップロードし、トゥートを投稿する前に、アップロードしたメディアの説明を書くことで、スクリーンリーダーでアップロードを見ている人も楽しめる様になります。最大420文字使用することができます。
パブリックハッシュタグページのリデザイン (#5237)
パブリックハッシュタグページはもっぱらログインしていないユーザーに使用されていました。そこで、このページをランディングページとして動作させる必要がありました。アップデートされたデザインでは、フロントーページと登用の埋め込まれたタイムラインコンポーネントを使用します。これは自動アップデートかつ無限スクロールであり、サインアップするときと同じような見た目になっています。さらにログインとサインアップボタンを横に配置することで、ほんの少しMastodonに役立ちます。
管理者用ダイナミックe-メールブラックリストの実装 (#5109)
前回までは環境変数に設定し、Mastodonを再起動することが、新しくサインアップする際、e-メールドメインをブロックするただひとつの手段でした。これは思ったように動いていませんでした。そこでこの設定を管理者UIから変更できるようにし、Mastodonを再起動する必要がなくなりました。
その他:
・7日間デリバリーが失敗した後、インボックスデリバリーをやめる事により、無駄な動作を減少しました。 (#5131)
・Streaming APIがステータス内でメンションされた人たちに削除を送信することで、作者をフォローしていなくても受け取ることが出来るようになりました。 (#5103)
・詳細ステータスビュー内で、一つしか添付された画像がない場合、アンクロップされた状態で表示するように (#5054)
・ストリーミングAPIステータスを受信時、会話にライブでソートすることで、会話をリロードすること無く見ることが出来るようになりました。 (#5206)
・Chrome用に新しいマテリアルアプリケーションアイコン、iOS、Microsoftに新しいアイコン (#5291, #5321)
・新規API: GET /api/v1/apps/verify_credentials することで、アプリケーションが動作しているかを確認することが出来ます (#5112)
・環境設定ページを再構成 (#5161, #4447)
・管理者がアカウントにモデレーションノートを追加できるようになりました。 (#5240)
・アニメーションを少なくする新しいオプションをWeb UIに追加し、モーション病を防げるように (#5393)
アップグレードノート:
非Dockerのみ:
推奨するRubyバージョンが2.4.2になりました。しかしながら、これはただの推奨に過ぎません。もし2.4.1のままでいたい場合は、シンプルに.ruby-versionを上書きしてください。
依存性アップデート: bundle install と yarn install
Dockerと非Docker:
・このリリースはデータベースマイグレーションが含まれます。RAILS_ENV=production bundle exec rails db:migrateを実行してください。(Dockerの場合:docker-compose run --rm web rails db:migrate)
・このリリースではアセットの変更が含まれます。RAILS_ENV=production bundle exec rails assets:precompileの実行が必要です。(Dockerの場合: docker-compose run --rm web rails assets:precompile)
オプション:
custom.scssは、機能がテーマに改訂されたため、自動的に読み込まないようになりました。config/themes.yml内のdefault:styles/custom.scssを変更することで、旧挙動を復元することが出来ます。
トラブルシューティング
v2.0.0rc以前にマスターブランチにアップグレードし、カスタム絵文字のロードに失敗する場合、このrakeタスクを実行してください。 RAILS_ENV=production bundle exec rake paperclip:refresh:thumbnails CLASS=CustomEmoji
修正:
・Web UI: フォーマットされた数字に無効な0を含めないように (#4993)
・推奨Rubyバージョンを2.4.2に (#4958)
・統計クエリのパフォーマンスを修正 (#4996)
・OpenGraph: メタデータを含まない画像のOpenGraphタグを生成する際のエラーを修正 (#4995)
・ActivityPub: リブログのアクティビティにパブリッシュプロパティを追加 (#5000)
・パースされたURLの最後のアンダースコア(_)を再許可 (#4999)
・Web UI: Chromeにおいてのスクローリングパフォーマンスを改良 (#5001)
・ubuntu-toolchain-r-test の依存を削除 (#5005)
・プロセスが終了する前にアカウントレコードが読まれてしまうのを修正 (#4998)
・Web UI: パブリックページにおいて、センシティブな画像をデフォルトで非表示に (#5009)
・ActivityPub: OrderedCollectionPageを使用することによりfollowers/followingリストを返却するように (#4949)
・Web UI: 一般的にスクローリングパフォーマンスを改良 (#5011, #5152)
・Web UI: パブリックページにおいてリモートステータスがhtml_codedになるのを修正 (#5012)
・OStatusメッセージ受信時の処理刷る際、レースコンディションを修正 (#5013)
・API: API JSON出力においてIDを数字ではなく文字列に (#5019)
・Web UI: ファイルピッカーを使用する際、MIMEタイプに加えてファイル拡張子を使用するように (#5029)
・OStatusを超えてプライベートステータスを連合するのを無効化 (#5027)
・Web UI: 不必要なレンダーを削減 (#5021, #5036)
・Web UI: /about/moreのモバイルスタイルを改良 (#5034)
・Web UI: ポータルにドロップダウンの拡張アニメーションをレンダーするように (#5018, #5140)
・ドキュメント REDIS_NAMESPACE (#5038)
・未知の言語のステータスをフィルタしないように (#5045)
・Web UI: account__action-barのoverflowingタブを修正 (#5056)
・Web UI: メディアギャラリーCSSを修正 (#5064)
・Web UI: モバイルレイアウトブレークポイントを1024pxから630pxへ変更 (#5063)
・リモートインスタンスとのコミュニケーションが失敗した際、バックトレースを抑制 (#5076)
・会話に寄るメンションのスレッド通知e-メール (#5061)
・Web UI: プレビューカードイメージの最大高さを増加 (#5092)
・ローカルアカウントからの生成の場合、ペイロードを処理するのを停止するように (#5100)
・API: OAuthパスワード認証が失敗した場合、ログインにリダイレクトするのではなく401を返すように (#5111)
・Web UI: OStatusプライバシーに関する過剰な警告を削除 (#5102)
・POSTリクエストを行っている際、ボディをフラッシュすることによりワーカーパフォーマンスを改良 (#5128)
・ActivityPub: HTTP署名が異なり、webfingerキャッシュが腐っている場合、解決とともにリトライを行なうように (#5129)
・Web UI: モーダルとスワイプアニメーションパフォーマンスを改良 (#5135)
・最大リダイレクト数を2に変更 (#5136)
・statsdを使用しMastodonパフォーマンスを計測する場合、より役立つ計測を得られるように (#5118)
・Web UI: React 16にアップグレード (#5119)
・Web UI: 絵文字自動サジェストを即死し、ユーザー名の表示をより早く (#5149)
・OpenStack v2のバグを修正 (#5155)
・許可されたフォロワーページのページ化されたアカウントのオーダーを修正 (#3357)
・モバイル: ChromeのスプラッシュスクリーンをWeb UIの背景カラーと同じにすることで、スムースに遷移するように (#5169)
・Web UI: フルスクリーン時contain:strictをトグルするように (#5159)
・e-メールのプレインテキストに確認リンクを追加 (#5146)
・Web UI: 誰かをミュートする際、その人のお気に入りコンテンツのWeb UIをクリアに (#5172)
・Web UI: substring-trieの絵文字連続バグを修正 (#5191)
・Web UI: 絵文字データを圧縮し結合させるように (#5201, #5229)
・SalmonとActivityPubインボックス処理のHTTPレスポンスを改良 (#5200)
・ActivityPub: アカウント発見におけるアカウントURIが強奪される可能性を修正 (#5208)
・インポートやリトライ失敗の処理に別のワーカーを使用するように (#5207)
・ActivityPub: Validate id of objects (#5114)
・Web UI: Web UIに自身の短い関係あるタイムスタンプを使用することで、スペースを温存するように (#5171)
・OpenGraph: summary_large_imageカードを添付メディアがあるときのみ使用するように (#5219)
・Web UI: リモートフォローページにリモートプロファイルがHTMLとして表示されていたのを修正 (#5249)
・LinkCrawlWorker内のエラーハンドリングを改良 (#5250)
・Web UI: オーバーフローを修正 (#5246)
・Web UI: ビデオプレーヤーでバッファリングを表示 (#5261)
・Web UI: 埋込カードの高さをCSSパディングトリックではなく、ダイナミックに計算するように (#5265)
・ActivityPub: アナウンスでは埋め込まずにオブジェクトURIのみを使用するように (#5266)
・ブロックAPIのページネーションを修正 (#5285)
・Web UI: エラーレイアウトをセンタリング (#5289)
・開発者モード時のoffline-plugin警告を修正 (#5411)
・プライベートトゥートのりブログカウンターを無効化 (#5397)
・ホームタイムラインで、リブログを解除されたトゥートが間違った場所に表示されていたのを修正(#5418)
・不活発がzeroではないアイテムを復元する際、ホームフィード再生成を確実にする (#5409)
・全てのリブログをリファレンスし続けることにより、リブログを解除したトゥートを正常に削除するように (#5419)
・Web UI: デスクトップ通知で新しいライン削除するのではなくをスペースと交換するように (#5361)
・ActivityPub以前のりブログの解除を許可 (#5376)
・ActivityPub: ActivityPubのみの WEB_ACCOUNTユーザーのリモートステータスフェッチングを修正(#5372)
・Web UI: メッセージの混乱を回避: アンフォローする際、Web UIのホームからトゥートを即座に削除するように (#5369)
・Web UI: メッセージの混乱を回避: ホームタイムラインがWeb UI内で何故空なのかを予想しないように (#5370)
・ユーザーサインインカウントのアップデートをリクエスト毎に修正し、いくつかのクエリを最適化 (#5368)
・Status#permitted_forを500xで最適化 (account timeline) (#5373)
・ポスティング後にコネクションを即座に閉じることにより、HTTPデリバリーを高速化 (#5390)
・リンクプレビューカードをフェッチする際のいくつかの失敗ケースを修正 (#5347)
・Web UI: サーバーとクライアント側での文字数カウントの相違を削減 (#5360)
・リブログカウントが理由なしに増加していたのを修正 (#5363)
・Web UI: CW付きのステータスのtabIndexに関するReact警告削除 (#5432)
・ステータス内のスキームレスURLをキャプチャしないように (#5435)
・ステータスがデリバーされたのではなく、フェッチされた場合、ストリームしないように (#5437)
・Web UI: 求められていないコンテントワーニングのCSSのギャップを修正 (#5436)
・OpenGraph: OpenGraphタグをサインインとサインアップページへ (#5308)
・Web UI: /webページのみJSをプリロードするように (#5325)
・Web UI: スレッドビューでは最初のアップデートのみスクロールするようにし、ポストにリプライされたステータスにスクロールするよう・に (#5322)