Boost 库提交流程
本页面描述了库开发者为了使其库被 Boost 接受而需要经历的流程。
有关内容方面的问题,请参阅Boost 库的要求和准则页面。
使库被 Boost 接受的步骤
1. 了解 Boost
关注主要开发者邮件列表中的帖子一段时间,或者浏览存档。浏览网站。学习要求。阅读本页的其余部分以了解流程。在网上搜索以了解将库引入 Boost 所需的投入。
Boost 有一种文化,旨在通过讨论和完善的过程鼓励高质量的库。一些库从最初的概念到通过社区复审的时间不到两年,但大多数库需要更长的时间,有时甚至更长。一个库需要五年到十年才能通过复审并进入 Boost 并不罕见,您应该为所需的个人投入做好准备。
2. 确定兴趣
虽然参与其他提交的复审不是向 Boost 提交库的先决条件,但强烈建议这样做;这将使您熟悉流程和正式复审的情感需求。没有什么比 C++ 社区的杰出成员批评您的工作更令人泄气的了,但是,唉,这是值得的!
潜在的库提交者在开始设计新库之前应仔细研究先前的技术。不幸的是,有时会有人带着他们投入了大量时间的新库来到 Boost,却发现 Boost 已经拥有该功能,有时甚至已经存在多年了。候选者还应该研究其他人正在开发的、旨在用于 Boost 的库 - 如果您有想要解决的问题,通常其他人也有,并且合作开发他们的库通常比单独进行效率高得多。
潜在的库提交者还应注意宣传、征求和评估对其库的兴趣,最好在开始开发之前,但肯定在提交复审之前。如果对主题的兴趣不足,即使是设计精良的库也可能无法通过复审;我们只能复审那些有足够吸引力以形成可行的同行复审的库。确保有足够的人对您的潜在库感兴趣,对于确保其通过复审有很大帮助。
有很多地方可以宣传和征求对库的意见。Boost 开发人员邮件列表应该是您评估可能的新 C++ 库兴趣的第一站。准备好调整您的设计和重点,直到您提出的库找到吸引力。其他用于评估库兴趣的地方可能是Reddit/r/cpp。
发送给 Boost 开发人员邮件列表的消息可以很简单,例如“是否有人对一个在线性时间内解决旅行商问题的库感兴趣?”
提供更详细的描述或代码片段可能会有所帮助。顺便说一句,邮件列表中消息的首选格式是纯文本;而不是富文本、HTML 等。
避免将冗长的描述、文档或代码发布到邮件列表,并且请勿添加附件。提供冗长材料的最佳位置是通过 Web 链接。诸如 sourceforge、github、google code 和 bitbucket 之类的项目托管服务非常适合此目的。
3. 开始开发
如果对初始查询的响应表明有兴趣,那么如果您尚未这样做,请务必公开您的库。
请将您的代码提交到诸如 Git 之类的版本控制系统,并在诸如 Github 之类的公共网站上以 HTML 格式提供您的文档。强烈建议使用诸如 Github 提供的错误跟踪器。
您的库应包含与 boost.org 网站上相同的内容。您的库越接近网站的最终目录结构和格式,效果就越好。这使得复审人员可以简单地将您的代码复制到 Boost 发行版中进行测试。
请验证您的库是否在至少两个编译器下编译和运行。这可以消除明显的移植性问题。
建议您在 Boost 软件许可下发布您的代码;有关更多信息,请参阅要求页面。
4. 完善
讨论、完善、重写。重复直到满意为止。
此过程的具体细节差异很大。通常它是公开的,在邮件列表上进行,但经常会在私人电子邮件中进行讨论。对于某些库,此过程很快就结束了,但对于其他库,则会持续数月之久。这通常具有挑战性,有时会朝着完全出乎意料的方向发展。
过去消息的存档是了解此过程如何适用于其他 Boost 库的一种方式。
要了解现有 Boost 库中一些脚本和代码的最佳实践示例,请参阅 Boost wiki 上的最佳实践手册。
5. 获得复审推荐
当您认为您的库已准备好进入 Boost 时,您需要找到至少一名(但最好是几名)Boost 社区成员,他们愿意公开支持您的库进入 Boost。实现此目的的一种简单方法是在Boost 开发人员邮件列表上发布您库的简短描述,指向其 github 和文档的链接,以及对支持的请求。
预计那些支持复审的库的人员至少会对该库是否适合 Boost 进行初步检查,包括文档、与 Boost 其余部分的契合程度和实用性。公开支持对库进行复审意味着,从初步浏览来看,他们认为该库在正式复审期间有合理的被接受机会。期望这些支持者本人也会在正式复审期间对该库进行复审,尽管这不是强制性的。
一旦您拥有公开支持对您的库进行复审的人员列表,请发送电子邮件给复审向导,请求将您的库添加到复审队列,其中将显示以下信息
- 提交
- 提交者
- 源代码(GitHub)、文档(HTML 网站)以及任何孵化器条目的链接
- 支持此提交进行复审的成员的姓名
- 复审管理员
- 复审日期
⚠ 为了避免任何利益冲突,潜在的复审管理员应向 Boost 社区披露他们与库的作者或库本身之间的任何关系。
6. 寻找复审管理员
为了安排正式复审,作者必须找到一位有能力的志愿者来管理复审。此人应具有库领域的知识以及复审流程的经验。有关复审管理员的职责,请参阅正式复审流程。
作者可以通过在开发者列表上讨论库来找到有兴趣管理复审的社区成员。如果无人主动站出来管理复审,则可以联系对该库表现出兴趣的经验丰富的 Boost 成员。请注意,管理复审是一项严肃的承诺;因此,最好在列表外联系该成员。
如果您在上述方法使用 3 周后仍无法找到复审管理员,并且您的提交目标是最终的标准化,则有一份 Boost 常规成员列表,他们也是 WG21 委员会成员,并自愿在这种情况下担任复审管理员。请按列出的顺序尝试他们。他们是:Zach Laine、Micheal Caisse、Matt Calabrese、Edward Diener、Louis Dionne、Vinnie Falco、Glen Fernandes 和 David Sankel。
一旦确定了潜在的复审管理员,请联系复审向导以获得批准。向导会根据复审管理员在 Boost 社区的参与程度来批准他们。
复审向导将与作者和复审管理员协调,以安排双方都方便的日期。
有关详细信息,请参阅正式复审流程。
7. 正式复审
在您的正式复审开始之前,请仔细检查您的库。验证每个代码示例是否有效,所有单元测试是否在至少两个主要操作系统上的至少两个编译器上通过,并通过拼写和语法检查器运行您的文档。
请不要在复审期间修改主分支上的库。相反,请修改单独的开发分支以响应反馈和复审。对于较大的工作项目,请在您的错误跟踪器上打开问题,以便感兴趣的人可以跟踪特定问题的修复。
复审管理员将考虑社区成员的所有复审意见,并就您的库是否被拒绝、有条件接受或无条件接受做出决定。他们将发布一份报告,公开总结该决定。如果接受附带条件,您将需要实现这些条件,否则将需要进行额外的正式复审。
8. Boost 网站发布
一旦被接受的库准备好包含在 Boost 网站上,提交者通常会被授予 Boost 存储库写入权限,并有望在那里检入和维护该库。如果您需要写入权限或无法直接使用存储库,请联系版主。
9. 个人页面
如果 boost.org 网站尚未包含您的个人简介和照片(可选,最好使用不太严肃的照片!),请将其发送给 Boost 网站管理员。是否在个人简介中包含您的电子邮件地址或其他联系信息由您决定。首选的图片格式是 .jpg,但其他常见格式也可以接受。首选的图像大小为 500x375,但网站管理员拥有照片编辑软件,可以在必要时进行图像准备。
10. 生命周期
库是软件;如果不维护,它们会随着时间的推移而失去价值。在 Boost 开发人员或用户邮件列表上发布的帖子可以提醒您潜在的维护需求;请计划随着时间的推移维护您的库。如果您不再能够或希望维护您的库,请在 Boost 开发人员邮件列表上发布消息,要求新的维护人员自愿承担,然后花时间帮助他们接管。
孤立的库将由社区维护团队负责。