Lessons learnt from open sourcing Yue

A few months ago I open sourced the Yue library, for this project I took a different promotion strategy than before, and I got some very negative feedbacks. Here are the lessons I learnt from it.

Double-check the licenses of third party code

Being an open source project does not mean license is not important, I made two severe mistakes on it:

  1. I used some code from WebKit to implement the ArcTo API, and the code was licensed under LGPL that could not be re-licensed to MS-RL/MS-PL which was used by Yue.
  2. Lots of code of Yue were ported from the Chromium project, and I did not add Chromium’s copyright header to some of the files.

To fix the mistakes, I removed the ArcTo API along with the LGPL code from WebKit, and then checked all source code files to make sure Chromium’s copyright headers were in the correct files.

And to show that I did not mean to “steal” the code, for mistake#1, I did correctly keep the copyright information, my wrong was I did not check the license before re-licensing them; for mistake#2, for most files I ported from Chromium (more than 18 of them) I did correctly keep the copyright headers, I only forgot to add the copyright headers for about 3 of them.

This is of course not any kind of execuse for the mistakes, and I appreciated all the efforts on auditing Yue’s source code.

Choose well-recognized licenses

Initially I used MS-RL/MS-PL licenses for Yue, while they are admitted as free software licenses by Free Software Foundation, they are not recognized by most developers.

In the end most people did not think Yue was free software, and by the name “Microsoft” in the license titles, they thought Yue was not truly open source.

After that I switched Yue to use LGPL license, with an exception rule to give more freedom on reusing the source code.

Do not explictly ask for money

To make the development of Yue more sustainable, I added a paid plan for Yue which provided an alternative license for more freedom. As part of the paid plan I explictly set the monthly subscription price.

The negative feedbacks to this was out of my surprise, many people were doing hard to list all shortcomings of Yue to prove no one should ever use this project.

The lesson I learnt from this was, do not list prices for open source, unless it is really small money (like a few dollars). Many people are expecting open source to be free of charge, and donations are usually the only acceptable way for payment to them.

If anyonse else also want to go commercial for open source, I would suggest only to leave contact information and discuss privately on the prices.

Be modest on words

Before posting the Yue project to Hacker News, I posted it to Reddit first. I got some really mean comments from Reddit, so I added a few FAQ entries in docs to defend the project. But then after I posted on Hacker News, there were lots of people accusing me of being aggresive.

So I guess before you become as famous as Linus Tovalds, you should be as modest as you can to avoid being attacked by random people from Internet.