Choose (software) licenses for the project

I clicked through a couple of the source code repositories on Github and didn’t see any licenses. In order to make this a proper collaborative project the code should exist under an open source software license. (If you need help deciding I could discuss it with you but we don’t have to.)

It would also be great if the general collaborative data that is accessible on the website had a license. I’m not sure what fits best here. Maybe creative commons? Maybe make the database of all the machines downloadable too in some way?

Thank you very much for your post!

YES - we need better licensing for the project. What license would you advocate for for the software part of things?

The database is available for download: https://bbchallenge.org/method#download and the index of undecided machines (file containing the database IDs of the machines that are still undecided) is hosted on github. Creative commons seems to make a lot of sense for this indeed, what do you think?

Thank you for raising this important tissue.

I’m happy as long as it is any of the “official” open source licenses. There is an FAQ at Frequently Answered Questions | Open Source Initiative and https://choosealicense.com/ can be helpful. I’m partial to the GPL because it enforces sharing of improvements but the infectious copyleft part of it is disliked by some. A simple commonly used license is MIT for when you’re ok with other people using the project without giving back.

For non code Creative Commons Attribution 4.0 International | Choose a License seems good or even Creative Commons Zero v1.0 Universal | Choose a License if you don’t care attribution.

We will probably go with MIT for the code and CCA 4.0 for the database. I will put them in place soon!

Thank you!

I’ve put up my code under “MIT or Apache2”, which is common in the rust community.

This is a strictly more permissive grant than either license alone, because it means users or the code can use the code under either license at their option.

I did this mostly because it’s pretty much the default license in the rust community. I’m no lawyer, but my understanding is that the primary advantage over just granting just one is that the Apache license includes an explicit patent grant, which removes ambiguity as to whether only copyright is licensed or not. Meanwhile the MIT license is definitely compatible with the GPL (as in GPL code can use it, not the other way around), and apparently the Apache license is at least arguably incompatible.

I’m definitely not stressed about the license for this project, and I’m happy to relicense my code however. If it was a vote though I’d vote for all code being dual licensed “MIT or Apache2”.

1 Like

This sounds great, thank you for sharing your thoughts on the matter, licenses will be added soon. “MIT or Apache2” for the code sounds very reasonable and we should go with it unless anyone objects.

Back to this important topic, some are suggesting on discord that we go for GPL, do you have an opinion on this @bifolio ?

I’m good with this dual license and will update my repo.
I think it’s the best advice to give individual contributors who are unsure. Add the tags described here (with identifier Apache-2.0 OR MIT) to the repo and SPDX-License-Identifier comments to source files, and you’re done: bbchallenge can make any compatible choice (any sane one should be) and still have permission to redistribute your contribution.
@savask on Discord observed that any derivative work of skelet’s bbfind must be GPL licensed absent author permission… and had more to say, but I won’t try to speak for them or parse out exactly what counts as a derivative work.
BTW, I like the GPL and would be happy with a version thereof. I suspect copyleft code is OK for journals, though it’s worth a look. My own work, if used, will be permissively licensed, as that’s my attitude toward theory: here are some truths about the BB problem, they’re yours now too, have fun.

1 Like

I am personally fond of the GPL but what really matters is that it is any of the accepted open source licenses. There is lot of bikeshedding discussion possible here but not sure how useful it is to play it out because it has all been said before. Unless there is anything special about this project that would influence the license choice. I’d go with what the main driving forces behind the project are comfortable with.

1 Like

I agree that all the “official” code and information should be available under a common Open Source license, I don’t particularly care which. Permissive licenses like MIT / Apache sound good to me. But I’m also open to GPL. I don’t particularly imagine any companies are going to try to make closed source spin-offs of this code, so I don’t think it’s worth spilling too much ink on the distinction here. This would mean that anyone contributing to these “official” repos would have to sign over their code under that common license.

So, I finally implemented the licensing of bbchallenge’s repos to Apache-2.0 OR MIT.

A few exceptions:

We decided that people writing deciders are free to license thier programs as they want as long as it satisfies https://bbchallenge.org/method#reproducibility-and-verifiability-statement (hence must be open source). However, the data produced by deciders is required to be CC-BY.

1 Like