layout | title | theme | transition | ruby_notation | diagram | mathjax | multiplex | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
slide |
How to Make Your Open Source Project Successful |
night |
slide |
true |
true |
true |
|
-
Spark/Flink/Hadoop/Hive/Hbase...
-
Java/Scala/Kotlin/Rust/Python...
-
Tensorflow/Pytorch/Numpy...
-
Linux/Andriod/Chrome/VS Code/IntelliJ community...
声明:图片来自网络,不代表本人立场
A public available repository does not make a project Open Source
.
- public available(of course)
- docs about how to use/set up/build/contribute...(Not just README!)
- feature requests/bugs/issues discussion
- pull request reviews
- License & Code of conduct(Can I use that in my personal project? Do I have to make it open source?)
- Formal release!(Is that library/tool Production Ready?)
In short, that's all means "the community".
- Play well with other open source projects
- {:.fragment} A brilliant idea that solving a real problem.
- {:.fragment} A quality implementation.
- {:.fragment} Make a formal release(eg, Maven repo/gradle plugin repo/intellij plugin repo/github release)
- {:.fragment} Not only README, but detail doc/screenshots/example code and more...
- {:.fragment} Build your community
- {:.fragment} Let people know your project.
- {:.fragment} Hold your position!
- {:.fragment} 不要使用中文
- {:.fragment} Let The Bullets Fly(让子弹飞一会儿)
- {:.fragment} Make your project profitable
To learn how to manage an open-source project and how to contribute to another open-source project
- {:.fragment} read README/contribution guide/License & Code of conduct first.
- {:.fragment} Before you report a bug, you need your
Minimal reproducible code
and search first(in case this is a known issue) - {:.fragment} Report bug
- {:.fragment} Make pull request
- {:.fragment} Create feature request
- {:.fragment} Review pull request
- {:.fragment} Participate in the issue/feature request/pr discussion
- {:.fragment} Donating
- {:.fragment} Write your article/tutorials/docs about this project
- {:.fragment} Answer questions in issues/stackoverflow...
- {:.fragment} your issue/pr didn't get any response.
- {:.fragment} your issue is confirmed but there no plan to fix it.
- {:.fragment}
Won't Fix
! - {:.fragment}
We won't accept your pr because...
(if your a creating a BIG feature, make sure you talked with core maintainers/owner first.) - {:.fragment}
Change request
! - {:.fragment}
Merged
/Fixed
Yey!
- {:.fragment} API design
- {:.fragment} test case
- {:.fragment} performance
- {:.fragment} docs
- {:.fragment} interact with other libs/frameworks
- {:.fragment} less dependencies
- {:.fragment} light weight
- {:.fragment} ...
- {:.fragment} Is your lib/tools
Production Ready
? - {:.fragment} Where your lib hosted?
- {:.fragment} (backward&forward&binary&source)compatibility
- {:.fragment} Be responsive
- {:.fragment} 👍
- {:.fragment} Keep your decision transparent
- {:.fragment} Docs(yes!)
- {:.fragment} Your project name is really important. it should be easy to remember, gives some idea of what the project does, and does not conflict with an existing project.
- {:.fragment} link to other projects/names/urls/blogs/papers/libs/framworks
- {:.fragment} other keywords
- {:.fragment} Are you doing Open Source as full-time job or part-time job or just for fun?
- {:.fragment} What would you do if there a PR that conflicts with the original design of your project?
- {:.fragment} What would you do if there a feature request would take a lot of time to implement?
- {:.fragment} Who are your collaborators?
If all goes well, there may be some tweets/blogs/official recommendations/article/tutorials talks about your project, that will make your project even more popular.
- {:.fragment} Paypal
- {:.fragment} Open Collective
- {:.fragment} Patreon
- {:.fragment} WeChat Pay/AliPay
- {:.fragment} https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/displaying-a-sponsor-button-in-your-repository
- {:.fragment} 社区只会锦上添花而不会雪中送炭。
- {:.fragment} 绝大部分项目都默默无闻。
- {:.fragment} 绝大部分人都是伸手党,能够正确报bug的人都很少。
Make sure you are will not accidentally share/open-source the code of your organization.