为开放源代码的未来加油

2000 万美元的开源可持续发展基金中分得一杯羹

带有计算机图标的用户

资金维护者。
经验支持。

在 HeroDevs,我们多年来一直在帮助团队应对开源软件过时所带来的挑战。通过我们的 "Never-Ending Support (NES) 产品,我们与从初创公司到财富 100 强公司的每个人合作,在官方支持结束后的很长一段时间内,保持遗留代码的安全、稳定和合规性。

我们为无人维护的代码库编写补丁,在无人关注的地方追踪漏洞,并在没有匆忙重写的情况下保持关键系统的安全运行。本基金以这些工作为基础,因此维护者可以继续做他们最擅长的工作,并获得真正的支持。

我们的标准和承诺

我们的计划标准侧重于生态系统的卫生和安全,以指导和支持开源最佳实践。我们与团队合作,帮助他们达到这些标准,并提供资金以进一步加强和维持他们在开源社区的影响力。

版本发布与版本管理

使用可预测的文档化版本管理(SemVer/PEP 440),通过所有官方渠道公布新版本,并明确标记与 CVE 相关的修复。

沟通与透明度

明确说明哪些版本受支持、已废弃或已到期,并根据项目规模提前通知变更时间。

文件

定义弃用策略,标记弃用版本,指定支持时间表,并说明何时完全删除版本。

支持与报废处理

提供明确的采用/移除时间表,仅将关键修正回传至 LTS,保持非破坏性的弃用,并在更新日志和运行时中提出警告。

流程与层级

保持清晰的问题和安全问题报告流程,定义支持层级(当前、LTS、EOL),并在版本达到 EOL 时鼓励迁移或替代支持解决方案。

选择按标准查看:

版本寿命终止

发布
  • 社区会在发生释放时收到通知。
    • 应通过所有官方渠道(X/Twitter、GitHub Repo、网站文档等)进行宣传。

  • 明确界定新版本发布后的情况。
    • 定义主要、次要或补丁发布的影响。
    • 当一个新版本发布时,社区就会知道以前版本的最新支持状态。
    • 处理 CVE 的版本标识如下
    • 向社区通报后向补丁是否缓解了已知漏洞。
版本控制
  • 建议项目使用行业标准版本控制(如语义版本控制或 PyPi 软件包的 PEP 440)。
  • 如果项目目前没有遵循 SemVer,那么版本结构将是可预测的、直观的,并为社区提供文档记录。
公告通信和清晰度
  • 文档清楚地说明了哪些版本是报废版本,哪些是支持版本。
  • 宣布发布
    • 许多小型项目往往在发布新的主版本时几乎没有任何预兆,并立即放弃对旧主版本的支持;而大型项目往往会提前预测新的发布线,并明确指出对现在的上一发布线的长期支持期。
    • 及时发布 EOL 活动公告。
      • 需要考虑的基准时限:
        • 广泛采用的基础库/框架:12-18 个月
        • 中度采用的项目(10k 以上用户):6-12 个月
        • 小型和/或特殊项目:3-6 个月
      • 如果适用,现在的上一版本产品线会有一个支持期,以便有时间进行过渡或迁移。
    • 生命终结事件会发布到项目的官方渠道。

停用

文件
  • 折旧有一个定义
    • 如何治疗
    • 如果收到错误修复/补丁
    • 漏洞如何影响这些版本
  • 在所有正式文件中,都会使用标签来标注已废弃的版本。
  • 当新版本的发布影响到先前版本的状态时,就会有文件说明哪些版本已被弃用和/或寿命终止。
  • 特别提到了废弃版本完全删除和/或不再支持的时间框架。
  • 如果适用,项目将利用生态系统特定的工具来报告废弃情况。
支持
  • 有一个建议的时间表供社区遵循:
    • 采用新功能,以及
    • 删除过时的功能。
  • 有支持过时功能的结构。例如
    • 在次版本中引入
    • 在下一个主要版本中删除
    • 关键漏洞仅在 LTS 中进行了后退。
    • 弃用必须是非断续的。
警告
  • 使用时,运行时警告会添加到日志/控制台中。
  • 停用事件会显示在变更日志和发布说明中。

支持政策

过程
  • 社区有一个报告问题的程序。
  • 有一个对所报告问题做出回应的程序。
  • 有一个报告违反安全规定行为的程序。
支持层级和文档
  • 定义版本支持层级,让社区一目了然。
    • 示例 1:
      • 当前:全面的安全漏洞和漏洞支持。
      • LTS:仅限安全漏洞。
      • EOL: 如果关键,安全漏洞。
    • 示例 2
      • 最新(或支持)
      • 不支持
  • 开发人员可以通过文档清楚地了解哪些版本受支持,哪些版本不受支持。
  • 对于哪些版本建议开发人员使用(支持),哪些版本打算作为预发布或开发版本,已设定了预期。
鼓励支持
  • 当某一版本退出市场时,鼓励用户要么迁移,要么在目前无法迁移的情况下建立一个支持解决方案
  • 注:这可以通过 HeroDevs 服务进行,以便确定迁移时间表或确定旧版本是否仍受支持。

通过更好的报废实践打造更安全的软件

让我们共同努力

常见问题

获取一些最常见问题的答案。
当然,如果您找不到想要的答案,请随时联系我们。
该计划的目的是什么?
如何获得申请资格?
如何申请?
申请时会发生什么?
资助金额是多少?
该计划有什么要求?我需要做哪些事情才能获得资助?
在完成计划活动时,我会得到支持吗?
我很高兴能为项目的未来工作,但那些不再支持的版本怎么办?基金对这些版本有什么帮助吗?