我最近有点忙,遗憾的是没有太多时间为开源做出贡献。我期待着回到正轨,但遇到了一些麻烦。在我的上一篇文章中,我讨论了如何深入研究 Mattermost Mobile 并实现我之前为 Web 应用程序开发的相同功能 - 添加一个设置以将渲染表情符号 (:D) 切换为表情符号 (?) - 但我必须很快就放弃了这个想法。事实证明,WSL(适用于 Linux 的 Windows 子系统)对于移动开发来说并不是那么好。
Mattermost 的开发官方仅支持 MacOS 和 Linux。在网络应用程序上工作时这不是问题。当我开发 Web 应用程序时,我能够使用 WSL,并且一切都运行得非常完美。但当我尝试开始开发移动应用程序时,我遇到了一个又一个问题。
按照 Linux 的开发环境设置说明,我需要设置一个 Android 模拟器,但尝试在 WSL 中运行模拟器不起作用 - 它无法检测到模拟器。我也不能只在 Windows 上进行开发,因为预安装脚本运行 .sh 脚本。因此,我花了几天时间尝试从 WSL 内部连接到在 Windows 上运行的 Android 模拟器,但没有成功 - 它只是不会出现在 WSL 的模拟器列表中。我花了几个小时研究论坛帖子和 GitHub 要点,但似乎没有任何结果。
我还尝试将自己设备的 USB 连接转发到 WSL,以尝试在我的设备上进行开发。据推测,usbipd-win 应该可以完成这项工作,正如 Microsoft Learn 上的这篇文章中提到的那样,但每次我重试将设备转发到 WSL 时,已连接设备的列表都会显示为空。
我在 Mattermost 贡献者官方聊天中搜索了消息历史记录,但我发现的只是其他遇到同样问题的人的帖子。所以我想我能尝试的最后一件事就是发表自己的帖子并寻求帮助,值得庆幸的是,有人确实回复了尝试和帮助,但不幸的是他们不在移动团队中并指示我尝试在移动中提问团队的聊天,我尚未收到回复。
不幸的是,在不久的将来我似乎无法解决这个问题。
与此同时,我一直在寻找其他一些问题。在浏览标记为“需要帮助”的问题时,我发现了 GitHub CLI 的此问题:
gh run view 在括号中列出了分支,但我认为它应该将它们列出在方括号中以与 Primer 指南保持一致:
在括号和/或青色中显示分支名称
gh 运行视图
gh run 视图提示应在方括号内显示分支。
❯ 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
Mattermost 主题:https://hub.mattermost.com/private-core/pl/xryg3tedg3bbxq3xuwnrj9ymyc
如果您有兴趣,请在这里发表评论,并加入我们每日构建服务器上的“贡献者”社区频道,您可以在其中与社区成员和 Mattermost 核心团队讨论问题。如需技术建议或疑问,请加入我们的“开发者”社区频道。
新贡献者请参阅我们的开发者指南。
JIRA:https://mattermost.atlassian.net/browse/MM-62003
在撰写这篇博文时我正在研究这个问题,并且已经确定了问题的根源。当在浏览器或类似浏览器(la Electron 应用程序)环境中从剪贴板发布图像时,如果图像没有名称,浏览器会自动将其命名为“image.png”。我已经用 Firefox 和 Edge 测试了这一点,这对两者都适用。为什么这是一个问题?该应用程序已经具有向未命名文件添加时间戳的逻辑。但由于从剪贴板粘贴时这些图像会自动命名,因此不会设置时间戳。
最简单的解决方案是对名称“image.png”进行硬编码检查。但我想知道如果图像不是 PNG 会发生什么?这甚至可能在剪贴板中吗?如果用户上传的文件实际上名为“image.png”怎么办?这是我必须与开发者讨论的事情。
无论如何,我决心解决这个问题。希望一切顺利。
以上是做更多开源事情:弥补失去的时间的详细内容。更多信息请关注PHP中文网其他相关文章!