ホームページ >ウェブフロントエンド >jsチュートリアル >オープンソース関連の活動を増やす: 失われた時間を取り戻す
最近少し忙しくて、残念ながらオープンソースに貢献する時間があまりありませんでした。軌道に戻ることを楽しみにしていたが、いくつかの問題に遭遇した。前回の投稿では、Mattermost Mobile に飛び込み、Web アプリで以前に取り組んだのと同じ機能、つまり絵文字 (:D) を絵文字 (?) としてレンダリングすることを切り替える設定を追加する設定をどのようにして実装したかについて説明しましたが、すぐにその考えを放棄します。 WSL (Windows Subsystem for Linux) はモバイル開発にはそれほど優れているわけではないことがわかりました。
Mattermost の開発は、MacOS と Linux でのみ正式にサポートされています。 Web アプリで作業する場合、これは問題になりませんでした。 Web アプリで作業している間、WSL を使用することができ、すべてが問題なく動作しました。しかし、モバイルアプリの開発を始めようとすると、次から次へと問題に遭遇しました。
Linux の開発環境セットアップ手順に従って、Android エミュレーターをセットアップする必要がありましたが、WSL 内で Android エミュレーターを実行しようとしても機能しませんでした。エミュレーターが検出されませんでした。また、プレインストール スクリプトが .sh スクリプトを実行するため、Windows 上で開発することもできませんでした。そこで、WSL 内から Windows 上で実行されている Android エミュレータに接続しようと数日費やしましたが、無駄でした。WSL のエミュレータのリストに表示されませんでした。私はフォーラムの投稿や GitHub の要点を何時間も費やしましたが、うまくいかないように思えました。
また、自分のデバイスの USB 接続を WSL に転送して、自分のデバイスで開発を試みてみました。おそらく、Microsoft Learn のこの記事で述べたように、usbipd-win でこれが機能するはずですが、デバイスを WSL に転送しようとするたびに、接続されているデバイスのリストが空になります。
Mattermost 貢献者の公式チャットでメッセージ履歴を検索しましたが、見つかったのは同じことで悩んでいる他の人からの投稿だけでした。そこで、私ができる最後の手段は、自分で投稿して助けを求めることだと考えました。ありがたいことに、誰かが協力しようと応じてくれましたが、残念なことに、その人はモバイル チームに所属していなかったので、モバイルで質問してみるように指示されました。チームのチャットにまだ返信がありません。
残念ながら、当面はこの問題に取り組むことはできないようです。
それまでの間、私は他の問題を取り上げようと考えていました。 「助けを求めています」というラベルが付いた問題を参照しているときに、GitHub CLI に関する次の問題を見つけました:
gh run view ではブランチが括弧内にリストされていますが、Primer のガイドラインに合わせて角括弧内にリストする必要があると思います。
ブランチ名を括弧またはシアンで表示します
GH ランビュー
gh run view プロンプトでは、角括弧内に分岐が表示される必要があります。
❯ gh run view ? Select a workflow run [Use arrows to move, type to filter] > - Verifying attestations offline fails, Discussion Triage (trunk) 4h55m1s ago - Decoding, Discussion Triage (patch-1) 4h59m32s ago ✓ Decoding, PR Automation (patch-1) 4h59m43s ago ✓ Issue Automation, Issue Automation (trunk) 5h20m31s ago - `gh repo rename myorg/newname` results in `myorg/myorg-newname`, Discussion Triage (trunk) 10h13m50s ago - 401 Error at every turn, Discussion Triage (trunk) 10h15m20s ago - 401 Error at every turn, Discussion Triage (trunk) 10h15m20s ago
これはかなり簡単な変化のように思えたので、これまで私が取り組んできた途方もない課題からの良い休憩になるだろうと思いました。私を再びまともなペースに戻すための何かであると思いました。
開発者のセットアップが非常に簡単だったことに満足しています。 Go はすでにインストールされていたので、バイナリをコンパイルするだけで済みました。
私は貢献ドキュメントを読みましたが、これも非常に役に立ち、関連するコードをどこで見つけるかを理解するのに役立ちました。少し時間をかけて調べてみたところ、run コマンドでブランチ名を表示する関数を見つけました。私はそれまで Go を実際に書いたことはありませんでしたが、C の printf() を非常に思い出させました。変更を加えて PR を開いたのですが、興奮してテストを更新するのを忘れてしまい、レビュー担当者から指摘を受けました。
#10038 を修正
pkg/cmd/run/shared: selectRun() のかっこを角かっこに切り替えました。
func selectRun() { ... fmt.Sprintf("%s %s, %s (%s) %s", ...) ... }
func selectRun() { ... fmt.Sprintf("%s %s, %s [%s] %s", ...) ... }
私はテストを徹底的に調査し、失敗したテストを特定し、更新しました。残念ながら、メンテナから、実際にはこの問題についてまだトリアージの過程にあり、先制して「支援を求めています」ラベルが適用されており、私の PR はマージされない可能性があるという通知を受けました。少しがっかりしましたが、自分の役割は果たしたと思ったので、大したことはありませんでした。
? @uday-rana さん、この記事に興味を持っていただきありがとうございます!
今週ローテーションで最初の対応担当者がこの問題の優先順位を決定するのを待ちたいと思います。
「ヘルプ募集」ラベルを追加したとき、私はおそらく熱心になりすぎました。それでも、実装する前に最初の対応担当者がこれを優先順位付けして、作業に同意していることを確認してほしいです ❤ ?
何か問題が起こるとは思っていませんが、PR をレビューする前に私たちが何を待っているのか知っていただくために、とにかくお知らせしておきます。最初の対応担当者が同意した場合は、喜んで PR を受け入れます ?
混乱させて申し訳ありません!今後、これらのラベルを早期に追加することはありません。これにより、トリアージ プロセスが意図せずスキップされてしまいました?
「ヘルプ募集」ラベルでさらに取り組むべき問題を GitHub で調べているときに、さらに別の Mattermost の問題を見つけました。今回は Web アプリに関するものでした。 Web アプリの開発環境はすでにセットアップしていたので、すぐに行動に移せると考えました。
クリップボードからメッセージ入力に画像を貼り付けると、ファイル名は image.png になります。複数の画像を貼り付けると、すべて同じ image.png ファイル名が付けられます。これは、上書きの危険性を伴う同じ名前の各ファイルをダウンロードする場合に問題になる可能性があります。
次の形式でタイムスタンプを含むファイル名を自動生成します:
画像-2024-11-18-6-29-57-PM
最も重要なスレッド: https://hub.mattermost.com/private-core/pl/xryg3tedg3bbxq3xuwnrj9ymyc
ご興味がございましたら、ここにコメントして、毎日のビルド サーバーの「コントリビューター」コミュニティ チャンネルに参加してください。そこでは、コミュニティ メンバーや Mattermost コア チームと質問について話し合うことができます。技術的なアドバイスや質問がある場合は、「開発者」コミュニティ チャンネルにご参加ください。
新しい寄稿者は、開発者ガイドを参照してください。
JIRA: https://mattermost.atlassian.net/browse/MM-62003
このブログ記事を書いている時点でこの問題を調査しており、問題の原因を特定しました。ブラウザまたはブラウザに似た (Electron アプリのような) 環境でクリップボードから画像を投稿する場合、画像に名前がない場合、ブラウザは自動的に「image.png」という名前を付けます。これを Firefox と Edge でテストしましたが、両方に当てはまります。なぜこれが問題になるのでしょうか?アプリには、名前のないファイルにタイムスタンプを追加するロジックがすでに組み込まれています。ただし、これらの画像にはクリップボードから貼り付けるときに自動的に名前が付けられるため、タイムスタンプは設定されません。
最も簡単な解決策は、「image.png」という名前のチェックをハードコーディングすることです。しかし、画像が PNG ではない場合はどうなるのでしょうか?それはクリップボードでも可能ですか?そして、ユーザーが実際に「image.png」という名前のファイルをアップロードしている場合はどうなるでしょうか?これについては開発者と話し合う必要があります。
いずれにせよ、私はこの問題を解決する決意をしています。物事がスムーズに進むことを願っています。
以上がオープンソース関連の活動を増やす: 失われた時間を取り戻すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。