用途:为 Apache Beam 项目提供完整的贡献工作流指引,帮助贡献者从环境准备到代码合并按规范推进。
主要能力:说明前置条件(GitHub 账号、Java JDK 11 或 8/17/21、最新 Go 1.x、Docker、Python;大型贡献需签署 ICLA);提供本地自动化环境搭建 ./local-env-setup.sh 与基于 Docker 的 ./start-build-env.sh;介绍议题查找与认领命令 .take-issue、.free-issue、.close-issue;说明大型改动需在 dev@beam.apache.org 邮件列表讨论并撰写设计文档。
使用方式:修改需为每个源文件添加 Apache 许可证头,新依赖须为 Apache 兼容开源许可,补充单元测试,公开 API 用 Javadoc 或 docstring 记录,提交信息需具描述性。创建 PR 时关联议题,预提交测试自动运行,无关失败可评论 retest this please;审查者数小时内自动分配,可用 R: @username 指定,3 天无响应可邮件联系。本地测试命令包括 ./gradlew javaPreCommit、./gradlew :sdks:python:test、./gradlew :sdks:go:test;格式化用 ./gradlew spotlessApply、pre-commit run --all-files、./gradlew formatChanges。
适用场景与限制:适用于向 Apache Beam 提交代码、文档或测试的贡献者。核心组件(如 sdks/java/core、runners/core-*、model、Python transforms/coders、Go core、FileIO、GCS 等)改动风险高,需额外审查。PR 仅 Beam committer 可合并;作者 60 天不活跃将变为陈旧 PR 并被关闭,可重新打开。次要版本每 6 周发布,改动须在发布分支切出前进入 master。其他细节暂未提供。