Opinions on Code Licencing

Tags: #<Tag:0x00007fd53f60ebd8> #<Tag:0x00007fd53f60ea20> #<Tag:0x00007fd53f60e8b8>


Hello scripters,

I’ve not really seen (or had) much discussion about licensing of ImageJ scripting (whatever programming language you use) in the context of personal provision or public sharing of scripts.

When I write scripts / code for an end user, I usually add a CCBY licence and indeed everything on my public repos shares the same licence.

How do people feel about Non-commercial / Share-alike clauses or other types of licence (interesting article on problems with SA here ).

Related question: If I commit code to github (or similar) with a CCBY licence, then commit changes with a more restrictive licence (say, a CCBY-NC), is use of the old commit as CCBY fair game?

I ask because addition of a README and licence is usually the last thing I do before pushing to a remote. Should it be the first?

Look forward to hearing your thoughts!

Best practice for git and plugins as Imaging unit member

Hi @dnmason,
Creative Commons actually discourages people from using their licenses for software: See here:

We recommend against using Creative Commons licenses for software. Instead, we strongly encourage you to use one of the very good software licenses which are already available. We recommend considering licenses made available by the Free Software Foundation or listed as “open source” by the Open Source Initiative.

If you want to prevent people from “stealing” your code by without giving back changes they made, you should look at the GPL3 license. The webpage choose a licence has an overview over popular software licenses and their specifics.

Yes as that code was made available under the other license. Additionally I think CCBY-NC makes little sense for software in my eyes as “comercial use” is difficult to define in that case.

Probably, you can always start with a more strict license (e.g. GPL3+) and change the license at a later point in time to be more permissive.


Thanks for the comments and really interesting points! I guess the principal concern is acknowledgement (the CCBY-NC was just used as an example, not a realistic choice). Personally, I’m unlikely to use the GPL3 licence given the remixing problems of CCBY-SA mentioned above.

For me, a project often starts as bits of code in a private repo that I never expect to share so it seems overkill to me to add a licence to everything just in case. If this were a real concern, I think the answer (in some ways sadly) would just be to not push the entire git history to the public repo (maybe this is how most people operate, I’m relatively new to git).


Yes, usually you clean up everything, add the license file and then publish.


Personally, I add a license ASAP to everything I do, and everything I do is public by default. I use permissive licenses (e.g. BSD-2 or ISC or MIT) unless I have a compelling reason to do otherwise. I only leave something private for legal or security reasons (e.g., secret tokens or passwords). And in those cases, I encapsulate the smallest possible piece of “infected” code that must remain secret, and make the rest public.

Reasons to use a copyleft license like GPL include:

  • A dependency is copyleft, and thus the downstream code also must be so.
  • You want to enable a dual-licensing model—see e.g. Bio-Formats, which uses a dual GPL/commercial license. In this way, open-source projects can use the copyleft license, while commercial projects can purchase a commercial license. This only works if all copyright holders continually agree to make the software available under both licenses, though.
  • You agree with Richard Stallman about pragmatic idealism.

Personally, generally speaking, I lean more and more toward the minimal copyright restrictions possible; I would love to make everything we do public domain if possible with something like the Unlicense, but there are legal reasons that doing so is generally impossible when you work for an institution rather than yourself.

A major reason I like to minimize restrictions is because I want to maximize the impact and utility of my work. If my work is GPLed, then many companies cannot adopt it and will instead rewrite. Similarly, permissive projects such as ITK cannot adopt or port GPLed work, and instead will choose to rewrite it. My feeling is: I do not want to waste my life releasing a thingamabob only to have someone else rewrite it for legal reasons.

As a counterpoint: I have had long philosophical debates with others who disagree with me about permissive licensing being the best way to maximize impact. Such people feel that copyleft will have a greater total impact over the long term. Ultimately, I do not think this is an trivial argument to make in either direction.


Thanks for the reply @ctrueden, really helpful!


How did you go about getting permission from your University (or technology transfer office or similar)? Did they give you a list of permissible licenses?


@nicost Is your question aimed at me? As in: how did I get permission to use the licenses that we use?

In general, such permission is not needed at the University of Wisconsin. Here are some resources which describe the UW’s policies surrounding production of computer software:

Reading over the “Computer Software Ownership” section in particular, the copyright situation is more nuanced than simply “the UW Board of Regents owns the copyright.” It is more correct to state that I (co-)own the copyright for projects I have (co-)produced, since they were written as part of “individual scholarship” rather than being specific conditions of my employment (i.e., “work for hire”). Either way, though, the people who are active on the project have the authority to make legal decisions about the project such as whether to change the project license(s).

The most important point is that the UW actively strives to encourage dissemination and reuse. To quote the “Computer Software Ownership” article:

The primary objective of policies concerning ownership of intellectual property must be to preserve, protect and foster the open and creative expression and exchange of information, ideas and research results. … Although governmental agencies and most businesses assert ownership of the intellectual property created by their employees, the University of Wisconsin System has not typically done so. Such ownership provides the opportunity to withhold as well as disseminate. Ownership of intellectual property by the University would provide a general right, and perhaps a responsibility to censor; this runs counter to the University mission to engage in open innovation and inquiry. Individual ownership is also more consistent with the self-directed nature of much university work and of Wisconsin traditions in particular. … ownership at the University is normally vested in the creator.


Nice! Very positive approach by your University. UCSF was not like that in the past, but this is a nice prod to re-visit licensing with them.