目次
バグの説明
動作を再現する手順
予想される動作と実際の動作
ログ
変更点
その後
問題
提案されたソリューション
ホームページ ウェブフロントエンド jsチュートリアル オープンソース関連の活動を増やす: 失われた時間を取り戻す

オープンソース関連の活動を増やす: 失われた時間を取り戻す

Dec 17, 2024 pm 04:53 PM

Doing More Open Source Stuff: Making Up For Lost Time

最近少し忙しくて、残念ながらオープンソースに貢献する時間があまりありませんでした。軌道に戻ることを楽しみにしていたが、いくつかの問題に遭遇した。前回の投稿では、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` は角括弧内にブランチをリストする必要があります #10038

オープンソース関連の活動を増やす: 失われた時間を取り戻す
バッグヒキガエル 投稿日:

バグの説明

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
ログイン後にコピー
GitHub で表示

これはかなり簡単な変化のように思えたので、これまで私が取り組んできた途方もない課題からの良い休憩になるだろうと思いました。私を再びまともなペースに戻すための何かであると思いました。

開発者のセットアップが非常に簡単だったことに満足しています。 Go はすでにインストールされていたので、バイナリをコンパイルするだけで済みました。

私は貢献ドキュメントを読みましたが、これも非常に役に立ち、関連するコードをどこで見つけるかを理解するのに役立ちました。少し時間をかけて調べてみたところ、run コマンドでブランチ名を表示する関数を見つけました。私はそれまで Go を実際に書いたことはありませんでしたが、C の printf() を非常に思い出させました。変更を加えて PR を開いたのですが、興奮してテストを更新するのを忘れてしまい、レビュー担当者から指摘を受けました。

オープンソース関連の活動を増やす: 失われた時間を取り戻す 修正: `gh run view` で角括弧内の分岐をリストする #10043

オープンソース関連の活動を増やす: 失われた時間を取り戻す
ウダイラナ 投稿日:

#10038 を修正

変更点

pkg/cmd/run/shared: selectRun() のかっこを角かっこに切り替えました。

func selectRun() {
  ...
  fmt.Sprintf("%s %s, %s (%s) %s", ...)
  ...
}
ログイン後にコピー
全画面モードに入る 全画面モードを終了します

その後

func selectRun() {
  ...
  fmt.Sprintf("%s %s, %s [%s] %s", ...)
  ...
}
ログイン後にコピー
全画面モードに入る 全画面モードを終了します
GitHub で表示

私はテストを徹底的に調査し、失敗したテストを特定し、更新しました。残念ながら、メンテナから、実際にはこの問題についてまだトリアージの過程にあり、先制して「支援を求めています」ラベルが適用されており、私の PR はマージされない可能性があるという通知を受けました。少しがっかりしましたが、自分の役割は果たしたと思ったので、大したことはありませんでした。

オープンソース関連の活動を増やす: 失われた時間を取り戻す コメント #10038

オープンソース関連の活動を増やす: 失われた時間を取り戻す
バッグヒキガエル にコメントしました

? @uday-rana さん、この記事に興味を持っていただきありがとうございます!

今週ローテーションで最初の対応担当者がこの問題の優先順位を決定するのを待ちたいと思います。

「ヘルプ募集」ラベルを追加したとき、私はおそらく熱心になりすぎました。それでも、実装する前に最初の対応担当者がこれを優先順位付けして、作業に同意していることを確認してほしいです ❤ ?

何か問題が起こるとは思っていませんが、PR をレビューする前に私たちが何を待っているのか知っていただくために、とにかくお知らせしておきます。最初の対応担当者が同意した場合は、喜んで PR を受け入れます ?

混乱させて申し訳ありません!今後、これらのラベルを早期に追加することはありません。これにより、トリアージ プロセスが意図せずスキップされてしまいました?

GitHub で表示

ラウンド 2

「ヘルプ募集」ラベルでさらに取り組むべき問題を GitHub で調べているときに、さらに別の Mattermost の問題を見つけました。今回は Web アプリに関するものでした。 Web アプリの開発環境はすでにセットアップしていたので、すぐに行動に移せると考えました。

オープンソース関連の活動を増やす: 失われた時間を取り戻す 貼り付けた画像ファイル名にタイムスタンプを追加して区別します。 #29524

オープンソース関連の活動を増やす: 失われた時間を取り戻す
マターモッド 投稿日:

問題

クリップボードからメッセージ入力に画像を貼り付けると、ファイル名は 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

GitHub で表示

このブログ記事を書いている時点でこの問題を調査しており、問題の原因を特定しました。ブラウザまたはブラウザに似た (Electron アプリのような) 環境でクリップボードから画像を投稿する場合、画像に名前がない場合、ブラウザは自動的に「image.png」という名前を付けます。これを Firefox と Edge でテストしましたが、両方に当てはまります。なぜこれが問題になるのでしょうか?アプリには、名前のないファイルにタイムスタンプを追加するロジックがすでに組み込まれています。ただし、これらの画像にはクリップボードから貼り付けるときに自動的に名前が付けられるため、タイムスタンプは設定されません。

最も簡単な解決策は、「image.png」という名前のチェックをハードコーディングすることです。しかし、画像が PNG ではない場合はどうなるのでしょうか?それはクリップボードでも可能ですか?そして、ユーザーが実際に「image.png」という名前のファイルをアップロードしている場合はどうなるでしょうか?これについては開発者と話し合う必要があります。

いずれにせよ、私はこの問題を解決する決意をしています。物事がスムーズに進むことを願っています。

以上がオープンソース関連の活動を増やす: 失われた時間を取り戻すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptは学ぶのが難しいですか? JavaScriptは学ぶのが難しいですか? Apr 03, 2025 am 12:20 AM

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は?
または:
Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は? または: Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Apr 04, 2025 pm 05:36 PM

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Apr 04, 2025 pm 05:12 PM

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

See all articles