移除字符串¶
标记要移除的未使用字符串¶
手动移除字符串可能会导致 **Beta** 和 **Release** 版本崩溃 💥,因为移除的字符串可能会错误地提升到发布分支,而这些分支仍然需要这些字符串。因此,我们需要一个特殊的流程来移除它们。
任何在 Nightly 开发中未移除的已提交字符串,在我们可以将其从代码库中移除之前,将在 3 个 Firefox 版本(Nightly、Beta、Release)中持续存在。例如,如果您想移除一个在 **Firefox Nightly 93** 之前已发布的字符串,则相同的字符串仍将在 **Firefox Beta 92** 和 **Firefox Release 91** 中使用。这意味着该字符串将在 93 中被标记为未使用并移除,同时仍在“运行”,并且当 **Firefox Release 93** 不再发布时,例如 **Firefox Release 94** 及更高版本,可以安全地移除它。
为了在您希望从 nightly 移除字符串时确保安全
在目标字符串中添加以下属性
moz:removedIn="<<ACTUAL_NIGHTLY_VERSION>>"
和tools:ignore="UnusedResources"
。
<string name="onboarding_close" moz:removedIn="93" tools:ignore="UnusedResources">Close</string>
示例提交 https://github.com/mozilla-mobile/focus-android/pull/6291/files
何时以及如何移除未使用字符串¶
已使用 moz:removedIn
属性标记的字符串,在标记的版本不再发布且不再使用或需要后,可以安全地移除。
查阅 Firefox 发布日历。假设 Beta 切换刚刚完成,我们现在处于 Firefox Nightly 109、Firefox Beta 108 和 Firefox Release 107。所有标记有 moz:removedIn
<= 106 的字符串现在都可以移除。
您只需要移除 values/strings.xml 中的 en-US 字符串,此更改将传播到其他语言环境。
未来¶
最好添加一些自动化功能来删除具有 moz:removedIn
属性的字符串,其中已完成一个完整的周期(从实际发布版本开始的 3 个发布版本)。