I'm looking for a license that should encourage changes to my original open source rather than encouraging forks and uncontrolled random redistribution. This is because of the nature of the code; it's just API definition (does not contain implementation of any kind) whose ultimate goal is precisely maintaining it consistent. I don't want to limit forks (I'll be using Github) but I want to make sure, if possible, that API stays a convention/standard. What are my options?

  • 6
    License is a document which is not meant to be a source of motivation (encouraging improvements), but rather a way to permit or deny something. You need something like manifesto or motivational speech to encourage people. – scriptin Apr 12 '15 at 22:11
  • I know. But maybe there was a way to formalize that into a license; I tried to ask... – Wes Apr 12 '15 at 22:23
  • 1
    The Artistic License was created to give the original creator some amount of “artistic control” over the project while still being free software. In practice it's only used for the perl interpreter and Perl modules as a dual license together with the GPL. However, it's not very well liked by most FLOSS supporters, and the GPL is a much more mature and reliable alternative. The reality is that most software doesn't get forked unless the creator stops maintaining the project or doesn't accept patches. – amon Apr 12 '15 at 23:00
  • 1
    This sounds like the history of Markdown... – h.j.k. Apr 13 '15 at 3:34
  • 1
    It might be possible if you placed the API and the implementation under two different licenses. E.g. the API under some license similar to CC BY-ND (only unmodified versions may be redistributed) for the API and headers, and BSD license for the implementation itself. – Ext3h Apr 13 '15 at 12:40