The question in a nutshell
Hi! Together with a team of brilliant engineers we've been building a software project (http://luna-lang.org) for the last two years and now we want to release everything as an Open Source project, completely free of charge for everyone. We are authors of the whole code and use only MIT licensed libraries, so we can freely choose our license model now.
A good Open Source project have a strong team of full-time contributors. It happens naturally if there is a commercial company behind the project. As a young, small company we know that we will survive only if we find a proper revenue model. That's why we want to build a commercial software on top of the project, but in the early days we want to keep a strong competitive advantage. That's why we would like to choose the AGPL license initially. However, as a long-term Open Source community members, it is just against our feelings – we want to make it as open and free as possible. That's why we would choose AGPL now if and only if we will be sure it would be possible to switch to Apache v2 / MIT in the future. The question is – is it possible taking in consideration the constraints below?
Important software specification
Our project is a software allowing you to build new software. Technically, it is a compiler and graphical editor of a new programming language. Thus releasing it as AGPL project do not affect the majority of users – they can build commercial, closed source software using it. The difference is only if somebody would like to use our compiler as a back-end to build some kind of competitive graphical data processing interface (or SaaS) – then we want to be sure it will not be a commercial, closed source application.
Constraints
We would like to build a community around the project and accept contributions. The contributions have basically 2 forms:
- Libraries for the language and plugins for the gui – they are NOT affected in any way by the license of the project, because the compiler / gui is just an "editor", a "build tool", so users can choose any license they want for their libraries.
- Contributions to the source code of the project (compiler / GUI). Here we've got copyleft.
We would like to use our software (backend and gui) as a base layer for building closed source commercial SaaS. As the only authors of a AGPL-licensed code we could do it, but we would also like to be able include community contributions in it.
We do not want to force our contributors to neither sign any printed documents nor request them to have a special electronic signature. It just makes the whole process over-complicated for the vast majority of open source developers. We are looking for a solution to allow contributors to just just agree upon "something" when submitting pull request (preferably by clicking a checkbox or a button or just by a sentence that if you submit pull request you agree for some terms).
We would like to move the project from AGPL to MIT / Apache v2 in the future without the need to ask every contributor if we can make this change. We can of course ask about it upfront when submitting pull requests.
Is there any simple way to accomplish this task?