How to Make Your Open Source Project Successful

The open-source projects that we know

  • Spark/Flink/Hadoop/Hive/Hbase…

  • Java/Scala/Kotlin/Rust/Python…

  • Tensorflow/Pytorch/Numpy…

  • Linux/Andriod/Chrome/VS Code/IntelliJ community…

When you program open-source, you’re programming COMMUNISM

声明:图片来自网络,不代表本人立场

What Is Open Source Project

A public available repository does not make a project Open Source.

Open Source means:

  • 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”.

To make your own a successful open source project, you need…

  • Play well with other open source projects
  • A brilliant idea that solving a real problem.
  • A quality implementation.
  • Make a formal release(eg, Maven repo/gradle plugin repo/intellij plugin repo/github release)
  • Not only README, but detail doc/screenshots/example code and more…
  • Build your community
  • Let people know your project.
  • Hold your position!
  • 不要使用中文
  • Let The Bullets Fly(让子弹飞一会儿)
  • Make your project profitable

How to contribute an Open Source project?

To learn how to manage an open-source project and how to contribute to another open-source project

What you could do?

  • read README/contribution guide/License & Code of conduct first.
  • Before you report a bug, you need your Minimal reproducible code and search first(in case this is a known issue)
  • Report bug
  • Make pull request
  • Create feature request
  • Review pull request
  • Participate in the issue/feature request/pr discussion
  • Donating
  • Write your article/tutorials/docs about this project
  • Answer questions in issues/starkoverflow…

What would happen next?

  • your issue/pr didn’t get any response.
  • your issue is confirmed but there no plan to fix it.
  • Won't Fix!
  • We won't accept your pr because...(if your a creating a BIG feature, make sure you talked with core maintainers/owner first.)
  • Change request!
  • Merged/Fixed Yey!

Solve a real problem

A quality implementation

  • API design
  • test case
  • performance
  • docs
  • interact with other libs/frameworks
  • less dependencies
  • light weight

Make a formal release

  • Is your lib/tools Production Ready?
  • Where your lib hosted?
  • (backward&forward&binary&source)compatibility

Build your community

  • Be responsive
  • 👍
  • Keep your decision transparent
  • Docs(yes!)

Let people know your project – SEO

  • 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.
  • link to other projects/names/urls/blogs/papers/libs/framworks
  • other keywords

Hold your position

  • Are you doing Open Source as full-time job or part-time job or just for fun?
  • What would you do if there a PR that conflicts with the original design of your project?
  • What would you do if there a feature request would take a lot of time to implement?
  • Who are your collaborators?

不要使用中文

Let The Bullets Fly

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.

Make your project profitable

  • Paypal
  • Open Collective
  • Patreon
  • WeChat Pay/AliPay
  • https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/displaying-a-sponsor-button-in-your-repository

开源项目特点

  • 社区只会锦上添花而不会雪中送炭。
  • 绝大部分项目都默默无闻。
  • 绝大部分人都是伸手党,能够正确报bug的人都很少。

Open Source Humor

Thanks

Make sure you are will not accidentally share/open-source the code of your organization.