已发布文档的保留策略

已发布文档的保留策略

https://blueprints.launchpad.net/openstack-manuals/+spec/retention-policy

2017 年用户调查 强调了许多用户仍在部署和使用 OpenStack 版本的事实,这些版本的上游支持已不再可用。这些已结束生命周期的版本对某些用户仍然有用,为了改善他们的体验,我们应该继续提供这些版本的文档。

问题描述

当前已发布文档的保留策略规定,当相关的分支被标记为“结束生命周期”并关闭时,手册将被从 docs.openstack.org 上移除。过去,较旧的文档已被从站点移除,原因如下(顺序不限)

  • 内容大小

    当时使用的托管服务,我们发布的内容量非常大。

  • 搜索结果

    • 移除较旧的文档被认为可以减少混淆,因为没有指定版本号或系列名称的用户在搜索时不会遇到过时的信息。
    • 由于拥有更长的稳定 URL,较旧版本的文档在搜索结果中出现的频率高于较新版本的类似更新内容。
  • 支持请求

    针对不再更新或修复的文档版本,已经提交了错误和支持请求。这给文档团队带来了不必要的负担。

  • 构建支持

    在文档的稳定分支关闭后,不再有构建和更新已发布文档的方法。这与内容本身无关,但我们至少遇到过一种情况,即存在一个跨站脚本攻击的安全问题,指出如果未来在无法构建的分支中出现类似的动态站点问题,删除内容可能是我们唯一可以采取的行动。有关详细信息,请参阅 clouddocs-maven-plugin 仓库中的提交 de6289854e9a059d5a33075b6593e7f9cb3b4f2d(由于某种原因,该仓库未通过 gerrit 索引或通过 cgit 网页 UI 提供)。

我们正在更新此策略,原因有两个

  1. 根据撰写本文时的最新用户调查,大约 60% 的用户正在运行不再受上游支持的 OpenStack 版本。这些用户缺少他们正在部署的软件版本的准确文档。
  2. 作为 OpenStack 手册项目迁移 计划的一部分,更多主动维护的文档现在由 openstack-manuals git 仓库之外的项目团队管理。

提议的变更

拟议的更改是停止基于其年龄或其适用的软件的年龄或其恢复的仓库,从 docs.openstack.org 上删除所有内容。

我们还将恢复 Mitaka 到 Ocata 的管理员指南、CLI 参考和用户指南。管理员指南旨在在系列之间重复使用,但只有在底层操作系统没有更改时才是真的。由于过去它已经更改过,我们需要将管理员指南视为特定于系列的即使我们没有更改它。Mitaka 的 CLI 参考和用户指南使用旧版本的客户端,并且选项可能已经更改。

选择 Mitaka 系列的原因有几个。

  1. 它是所有文档都使用 Sphinx 进行管理的第一个系列,Sphinx 比旧工具更容易安装,并且社区中有更多的人了解如何使用 Sphinx。
  2. 它也代表了一个足够旧的版本,对大量用户有用。实用性和易于更新的结合使 Mitaka 成为开始新的保留策略的一个很好的折衷点。
  3. Mitaka 版本的许多特定于项目的文档仍然存在于 docs.openstack.org 上,因此很容易链接到它。

我们将找到其他方法来缓解促使我们采用删除已结束生命周期版本的旧策略的问题。

已结束生命周期版本的文档在相关的稳定分支关闭时仍将被冻结,因此不会进行任何更新。此更改不应显著增加维护负担或用户的期望。

  • 内容大小

    我们已经将 docs.openstack.org 从 CloudSites 托管服务迁移到具有大型文件系统的标准 Web 服务器。我们发布的内容量不再是一个重要问题。

  • 搜索结果

    鉴于运行旧版本的用户数量,我们对搜索结果的优先级已经改变。我们希望旧版本可以通过搜索引擎获得,假设用户可以轻松确定他们找到的结果是否与他们的版本匹配,或者他们可以快速地在版本之间导航。

    我们将继续尝试搜索引擎优化技术,以使不合格的搜索,例如“安装 nova”,显示较新的结果。这项工作将有自己的规范,由承担该任务的团队创建。

    我们可以通过利用主题的 earliest_published_series 配置选项,使在特定于系列的文档之间导航变得容易。

    我们还将更新文档主题,以包含一个水印或“徽章”,清晰地指示何时内容被认为过时,尤其是当它不再维护时。这些标记需要构建在文档之外,以便可以独立更新它们,而无需修补文档或向稳定分支 EOL 过程添加步骤。在 Queens PTG 上讨论的计划基于从 openstack-manuals 仓库构建的 SVG 文件,并由 openstackdocstheme 包含在已发布页面中。需要进一步详细说明,并且这项工作将涉及一个遵循此规范的规范。

  • 支持请求

    项目团队现在负责特定于项目的文档。发送到文档团队的错误和支持请求可以根据需要进行分类和重新分配给项目团队。与不再支持的文档相关的任何内容应以与不支持的代码的错误报告相同的方式处理(关闭“不会修复”)。

  • 构建支持

    由于我们没有延长稳定分支及其包含的文档的支持生命周期,因此需要构建文档的唯一原因是在我们丢失 Web 服务器上的数据或出现另一个安全问题时。分支关闭后,不需要考虑对该分支的文档进行任何进一步的更新。

    虽然我们不想淡化潜在的跨站脚本或 JavaScript CVE 问题,但我们也不想过分强调这些问题发生的可能性。如果出现此类问题,我们将届时努力解决。在最坏的情况下,如果恢复稳定分支和更改构建不起作用,并且无法手动更新受影响的文件,我们可以删除不良内容。任何关于最佳行动方案的决定都将由积极处理问题的人员在当时做出。

    同样,如果我们在 Web 服务器上丢失数据并需要重建内容,管理恢复的人员可以在需要时制定计划。

备选方案

  1. 什么都不做。

    这个选项不可取,因为我们已经收到来自用户的明确而响亮的请求,帮助他们解决这个问题。

  2. 建议用户为旧版本的文档构建本地副本。

    一些用户尝试构建他们自己的内部文档副本,以继续管理他们的部署。他们发现文档在 $series-eol 标签处不再能够正确构建,因为外部引用(例如 git 仓库中的示例文件)不存在。

  3. 创建 docfixes 分支,类似于项目团队用于允许供应商在软件版本被标记为 EOL 后协作修补驱动程序的 driverfixes 分支。 docfixes 分支将仅允许构建文档并更新 docs.openstack.org 上的已发布内容(它们不会用于软件的新版本或与文档无关的代码补丁)。

    如果没有大量的贡献者来审查和管理这些分支中的页面,似乎我们不太可能从保持它们开放中获得任何好处。如果对现有稳定分支的贡献增加,我们可以在未来重新考虑这个选项。

  4. 以非索引格式(例如 tarball)存档内容。

    为 Pike 批准的旧存档规范但从未实施的规范需要更多手动工作和旧内容的积极管理。简单地将内容保留在 Web 服务器上,对于小型文档团队来说更可持续。

实现

负责人

主要负责人

  • dhellmann

其他贡献者

  • pkovar

工作项

  • 恢复管理员指南、CLI 参考和 Mitaka 用户指南的稳定版本,使用特定于系列的 URL 发布。(dhellmann)
    • 创建一个新的 stable/mitaka 分支。
    • 更新构建脚本,以便将手册发布到特定于系列的 URL。
    • 添加适当的重定向。
    • 重新关闭分支。
  • 更新 openstack/openstack-manuals 的 stable/ocata 分支,使用特定于系列的 URL 构建管理员指南、CLI 参考和用户指南。(需要所有者
    • 更新构建脚本,以便将手册发布到特定于系列的 URL。
    • 添加适当的重定向。
    • 更新 openstack/openstack-manuals 的 stable/newton 分支,以链接到 Ocata 版本的管理员指南、CLI 参考和用户指南。
  • 编写版本“徽章”的规范并实施适当的更改。(需要所有者

依赖项

测试

旧文档将按原样恢复,并且仅允许进行必要的更改以更新发布位置并确保构建正常工作。

Creative Commons Attribution 3.0 License

除非另有说明,本文档根据 知识共享署名 3.0 许可协议 授权。请参阅所有 OpenStack 法律文件

docs-specs