I've started my own open source project, which is still in an early phase of development. I chose to use the MIT license for it.

However, I've read that the Apache license is better for large projects, and it's going to become a large project later. So, I plan to study the Apache license later, and consider it for my project when the project becomes stable.

Could transitioning from the MIT to the Apache license create any legal issues? Does a late transition involve any more risks?

Disclaimer: I'm a programmer, not a lawyer.


The owner, or copyright holder of the project is the one who gets to decide what license to use on each distribution of that project. The owner is completely free to use different licenses on different distributions.

The tricky points to keep in mind are:

1) If others contribute to the project, then you are no longer the sole owner, so changing the license would have to involve getting multiple people together to agree on it. If you're going the typical open source route of allowing pull requests from pretty much anyone, this can be a problem.

2) The copies of the project that you have already distributed cannot have their licenses retroactively changed. The change can only apply to new distributions. In particular, anyone who has received old copies of the project under MIT is perfectly free to distribute copies of their copy under any license they please (since the MIT license imposes no restrictions on this behavior).

3) Some people have strong opinions on licensing issues, and some people get understandably nervous when licenses change. So if you do have a non-trivial user base when you make this change, then you should post a very clear and specific explanation of why you want to make this change, solely for PR reasons. In particular, at the risk of taking your question too literally, you should have a more specific reason than "because Apache is better for big projects and we are big now".

Note that I am using the term "distribution" instead of "version" because it is fairly commonplace to release the same version of a program under multiple licenses, for various reasons. For instance, you may release a program for free under a copyleft license, while at the same time allowing corporations to purchase a version with a more permissive or closed source license. The version the corporations purchase would simply have different LICENSE, COPYRIGHT and/or README files.

But in all honesty, MIT to Apache is not a huge change. It should be a perfectly harmless transition as long as you're aware of these potential issues ahead of time.

| improve this answer | |
  • While I partially agree with gnat's proposed duplicate, the top answers on the dupe target contain no mention of point #2 in this answer, and there may be meaningful differences between the open->closed transition in the proposed dupe target and the open->open transition described here. That's why I decided to finish posting this instead of simply voting to close as a dupe. – Ixrec Dec 13 '15 at 13:18
  • I'm irritated to see a long-time or very active user (based on points) pre-emptively defend their own contribution on here. If this is necessary on Programmers, that's really sad. (I've had my first lesson in that yesterday, but thought it might only apply to newcomers.) – Kay Dec 13 '15 at 13:31
  • @Kay If it helps, part of the reason I posted that comment was because I actually agree with gnat that the dupe target is a strong candidate for dupe voting, and I came very close to dupe voting myself even though I was partway through typing up this answer. Normally when I completely disagree with him I simply ignore it. So at least from my point of view it didn't feel like I was "defending" myself. And it wasn't pre-emptive in the sense that his comment existed before my response. But I do understand how this looks undesirable. – Ixrec Dec 13 '15 at 14:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.