首次开源贡献路径

共 22 题
#

1. 你想贡献开源但 PR 被 reject(没充分理由),你怎么看怎么 argue

A 立即在社交平台公开指责维护者,利用舆论施压
B 反复提交一模一样的 PR,直到维护者妥协
C 先理解拒绝的具体原因,再基于事实与项目文档理性回应 ✓ 正确答案
D 放弃所有开源贡献,认为维护者不尊重新人
#

2. 你想贡献开源但项目 issue 被 close(觉得不够好),你怎么看怎么 argue

A 不断重新打开同一 issue,直到被接受
B 把 issue 重新组织成信息完整、符合项目范围的请求,再与维护者沟通 ✓ 正确答案
C 直接发邮件投诉维护者歧视
D 放弃该项目,换一个项目随便提
#

3. 你想贡献开源但 PR 被拆分要求(每个 PR 独立),你怎么看怎么推动

A 一次性提交所有改动,让维护者自己看
B 拒绝拆分,认为自己的改法更好
C 按功能内聚拆成相互独立、各自可评审通过的小 PR,并规划合并顺序 ✓ 正确答案
D 把拆分的 PR 全部塞进一个分支一次性提交
#

4. 你想贡献开源但 PR 被搁置(半年没 review),你怎么看怎么推动

A 每天在群里 @ 维护者,直到其回复
B 直接删除 PR,认为项目不值得贡献
C 让 PR 保持 rebase 到最新、可合并状态,并低频礼貌地跟进步伐 ✓ 正确答案
D 把 PR 内容公开到社交平台施压
#

5. 你想贡献开源但公司不允许员工贡献(policy),你怎么看怎么推动

A 私下用个人账号偷偷贡献,不告诉公司
B 公开抱怨公司政策阻碍技术成长
C 通过与法务/leader 沟通了解合规路径,并主动划清不影响公司的边界 ✓ 正确答案
D 直接辞职以便自由贡献
#

6. 你想贡献开源但维护者 push 太快(要你做完),你怎么看怎么推动

A 无条件加班熬夜赶工,以牺牲质量为代价合并
B 与维护者确认期望和时间表,给出现实计划并分阶段交付、及时同步 ✓ 正确答案
C 不理会维护者,按自己的节奏慢慢做
D 直接拒绝修改,认为维护者无理
#

7. 你想贡献开源但项目 CI 失败(环境问题),你看怎么推动

A 直接忽略失败,认为不是自己的问题
B 定位失败原因、确认与改动无关并附证据,提出修复建议并配合维护者 ✓ 正确答案
C 抱怨项目 CI 太差然后放弃
D 随便改一行代码重新提交蒙混过关
#

8. 你想贡献开源但项目 CLA 要求(公司签),你怎么看怎么推动

A 伪造签名绕过 CLA 尽快合并
B 理解 CLA 必要性,主动推动公司合规签约,并询问是否可先以非代码方式参与 ✓ 正确答案
C 拒绝签署并公开指责项目官僚
D 冒充同事签名再提交
#

9. 你想贡献开源但项目 issue 太多(不知道做哪个),你怎么看怎么推动

A 优先选"good first issue"等标签、范围小且匹配自身能力的任务,并先确认 issue 有效 ✓ 正确答案
B 随机挑一个 issue 就埋头做
C 全做一遍证明自己
D 只找大 issue 以展示能力
#

10. 你想贡献开源但项目 issue 是"good first issue"但维护者没回应,你看怎么推动

A 既然没回应就放弃,换别的项目
B 基于完整 issue 信息自主完成规范 PR 并关联 issue,让 PR 自足易 review ✓ 正确答案
C 反复 @ 维护者直到回应
D 绕过流程直接改 main 分支
#

11. 你想贡献开源但项目 license 不让商用,你怎么看怎么推动

A 绕过 license 限制,偷偷商用
B 无视 license 直接 fork 商用
C 到处发帖骂这个 license 阻止商业发展
D 尊重 license 条款,区分贡献与商用需求,评估自身场景并寻找合规替代方案 ✓ 正确答案
#

12. 你想贡献开源但项目 rebase 要求(保持最新),你怎么看怎么推动

A 拒绝 rebase,坚持用自己旧分支
B rebase 后不测试直接提交
C 把自己的分支 rebase 到最新 main、解决冲突、重跑测试,并在 force-push 前说明 ✓ 正确答案
D 用 merge 把 main 全部塞进自己的提交历史
#

13. 你想贡献开源但项目对新人门槛高(PR 要求 CI 过),你看怎么推动

A 抱怨门槛高,请求维护者绕过 CI 合并
B 找维护者求情破例
C 视 CI 为质量保障,本地先复现环境与命令,吃透 CI 配置后逐项通过 ✓ 正确答案
D 提交一个永远过不了 CI 的 PR 表示抗议
#

14. 你想贡献开源但项目签名要求(DCO),你看怎么推动

A 忽略签名,等 bot 报错再说不关自己事
B 伪造邮箱签名
C 用 git commit -s 添加 Signed-off-by,并对历史提交补签后 force-push ✓ 正确答案
D 让维护者代签
#

15. 你想贡献开源但项目要求"必须 review 过",你看怎么推动

A 请求维护者直接合并跳过 review
B 频繁 @ 所有人催促合并
C 对 review 意见一律拒绝
D 让 PR 小而聚焦、描述清晰,逐条友善回应 review 意见并主动改进 ✓ 正确答案
#

16. 你想贡献开源但项目要求"必须 test coverage 不减",你怎么看怎么推动

A 用配置把新代码从覆盖率统计中排除
B 只写一个空测试凑数
C 为新增代码补充覆盖真实行为的测试,难覆盖处说明理由与维护者确认 ✓ 正确答案
D 删掉旧测试以平衡覆盖率
#

17. 你想贡献开源但项目要求"必须不破坏 API",你怎么看怎么推动

A 直接修改旧函数签名,反正测试会过
B 隐瞒 breaking change 悄悄合并
C 优先用新增可选参数、新函数等兼容方式扩展,确需 breaking 时说明理由与迁移方案并规划版本 ✓ 正确答案
D 删除旧 API 节省代码
#

18. 你想贡献开源但项目要求"必须有 bench",你怎么看怎么推动

A 随便写一个从不运行的 benchmark 模板
B 只口头声称性能没变
C 为关键路径编写可复现的 benchmark,改动前后对比并将数据附在 PR 中 ✓ 正确答案
D 用 main 分支的假数据充当 bench
#

19. 你想贡献开源但项目要求"必须有 discuss 链接",你怎么看怎么推动

A 动手前先发起设计讨论收集意见,在 PR 中关联讨论并说明设计收敛过程 ✓ 正确答案
B 随便编一个链接应付
C 实现完再补一个讨论
D 用无关 issue 链接冒充
#

20. 你想贡献开源但项目要求"必须有 perf 测试",你怎么看怎么推动

A 写一个运行一次就完事的测试
B 性能测试只在本地跑一次
C 用并发压测海量数据把 CI 拖垮
D 设计可重复、方差可控的性能测试设定合理阈值,与功能测试分离并附上数据 ✓ 正确答案
#

21. 你想贡献开源但项目要求"遵守 CoC",你怎么看怎么推动

A 无论沟通还是处理违规都保持尊重建设性,维护者违规走正规流程 ✓ 正确答案
B 只要代码好,态度无所谓
C 遇到冒犯就公开反击
D 只在被要求时才装模作样
#

22. 你想贡献开源但项目要求 changelog,你看怎么推动

A 随便往 changelog 末尾加一行
B 遵循项目 changelog 格式与分类约定,只记录用户可见的变化 ✓ 正确答案
C 不写 changelog,认为用户不该看
D 把每次提交都写进 changelog 制造噪音