Skip to content

Latest commit

 

History

History
250 lines (155 loc) · 6.49 KB

2020-11-14-how-to-make-your-open-source-project-successful.md

File metadata and controls

250 lines (155 loc) · 6.49 KB
layout title theme transition ruby_notation diagram mathjax multiplex
slide
How to Make Your Open Source Project Successful
night
slide
true
true
true
id url
99702b17e6a745f9

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
  • {:.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

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?

  • {:.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...

What would happen next?

  • {:.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!

Solve a real problem

A quality implementation

  • {:.fragment} API design
  • {:.fragment} test case
  • {:.fragment} performance
  • {:.fragment} docs
  • {:.fragment} interact with other libs/frameworks
  • {:.fragment} less dependencies
  • {:.fragment} light weight
  • {:.fragment} ...

Make a formal release

  • {:.fragment} Is your lib/tools Production Ready?
  • {:.fragment} Where your lib hosted?
  • {:.fragment} (backward&forward&binary&source)compatibility

Build your community

  • {:.fragment} Be responsive
  • {:.fragment} 👍
  • {:.fragment} Keep your decision transparent
  • {:.fragment} Docs(yes!)

Let people know your project -- SEO

  • {:.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

Hold your position

  • {:.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?

不要使用中文

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

开源项目特点

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

Open Source Humor

Thanks

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