开源项目维护:从使用者到贡献者

去年开源了一个小工具,现在有 500+ Star。分享维护经历。

开源的初衷

做了一个 CLI 工具解决自己的痛点,觉得别人可能也需要,就开源了。

开源前要问自己:

问题说明
解决什么问题清晰的定位
谁会用目标用户
维护精力能坚持多久

项目结构

my-cli/
├── src/
│   ├── index.ts
│   ├── commands/
│   └── utils/
├── tests/
├── docs/
│   ├── README.md
│   └── CONTRIBUTING.md
├── package.json
├── LICENSE
└── .github/
    ├── ISSUE_TEMPLATE/
    └── workflows/

必备文件

文件用途
README.md项目介绍、安装、使用
LICENSE开源协议
CONTRIBUTING.md贡献指南
CHANGELOG.md变更记录

README 怎么写

# 项目名称

一句话描述

## 特性

- 特性 1
- 特性 2

## 安装

npm install my-cli

## 快速开始

my-cli init

## 文档

详细文档

## 贡献

欢迎贡献!

## License

MIT

关键:让人一眼知道项目做什么、怎么用。

GitHub 项目页面

处理 Issue

Issue 模板

---
name: Bug Report
about: 报告 Bug
---

**描述问题**
清晰描述遇到的问题

**复现步骤**
1. 执行 '...'
2. 输入 '....'
3. 看到错误

**期望行为**
应该发生什么

**实际行为**
实际发生了什么

**环境**
- OS: [e.g. macOS]
- Node version: [e.g. 18]
- 项目版本: [e.g. 1.0.0]

响应原则

原则说明
及时响应24 小时内回复
友好态度感谢对方反馈
明确状态标签标记状态
引导贡献鼓励提 PR

Issue 标签

标签用途
bug确认的 Bug
feature功能请求
help wanted需要帮助
good first issue适合新手
wontfix不打算修复

处理 PR

代码审查

感谢你的贡献!

请检查以下事项:
- [ ] 代码风格符合项目规范
- [ ] 添加了测试
- [ ] 更新了文档
- [ ] 提交信息清晰

审查意见:
...

自动化检查

# .github/workflows/ci.yml
name: CI

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npm test
      - run: npm run lint

发布流程

版本号规范

遵循语义化版本:

版本类型说明
Major不兼容的 API 变更
Minor向后兼容的功能新增
Patch向后兼容的问题修复

发布命令

# 更新版本号
npm version patch/minor/major

# 发布
npm publish

# 打 tag
git push --tags

CHANGELOG

## [1.2.0] - 2025-08-25

### Added
- 新增 xxx 功能

### Fixed
- 修复 xxx 问题

### Changed
- 优化 xxx 性能

发布流程

社区建设

文档完善

  • API 文档
  • 使用示例
  • 常见问题

积极互动

  • 感谢贡献者
  • 回答问题
  • 收集反馈

设定预期

在 README 里说明维护状态:

## 维护状态

我会在业余时间维护这个项目。
- Bug 修复:1-3 天内
- 功能请求:视情况而定
- PR 合并:1-7 天内

踩过的坑

1. Issue 质量差

很多人只说”不工作”,没有上下文。

解决:Issue 模板 + 引导补充信息。

2. PR 不规范

格式混乱、没测试、没文档。

解决:PR 模板 + CI 检查 + Review 要求。

3. 精力不够

Issue 堆积,PR 没人审。

解决:降低预期、招募协作者。

4. 功能膨胀

什么需求都想加。

解决:明确项目边界,学会拒绝。

收获

收获说明
技术成长代码质量要求更高
社区反馈发现了很多边界情况
人脉认识了很多开发者
简历亮点面试时被问到很多次

总结

开源是有成本的,但收获也很大。

建议:

  1. 从小项目开始
  2. 写好文档
  3. 设定预期
  4. 享受过程

不是为了 Star 数,是为了分享和成长。