🏠 back to Observable

Notebook Licenses

Hi folks,

We’ve just launched built-in support for software and content licenses on your notebooks! We hope this will help notebook authors provide additional clarity when they intend for other Observable community members to fork, remix, import, republish and embed their work.

Also, over four hundred D3 notebooks on Observable have now been released under the permissive ISC license.

One nice detail to note — that might be of particular interest here — is that licensing is implemented as part of our immutable notebook model: forks inherit the license and copyright notice of their parents; license changes are streamed between team members simultaneously editing the same notebook; you can send a suggestion with a proposed license change; and if you go back in history, you can revert the notebook to a previous license.

We’ve started with an intentionally small list of permissive, copyleft and creative commons licenses:

  • MIT
  • ISC
  • Apache 2.0
  • BSD 3-Clause
  • GNU GPLv3
  • GNU AGPLv3
  • GNU LGPLv3
  • Creative Commons Attribution 4.0
  • Creative Commons Attribution Share Alike 4.0

(As an escape hatch, you can always pick “Other”, and put in whatever license you please.)

Give it a try, and let us know what you think!

We also have a few ideas in the pipeline for potential post-launch improvements, like displaying licenses in notebook listings and search results, and allowing accounts to set a default license that should be applied whenever they publish a new notebook.

10 Likes

Awesome! I noticed a small bug, I think: I set the license to “Other” on this notebook, then decided I wanted to switch to ISC. I reverted the notebook to the published version but the “Set license” option is no longer visible in the notebook menu.

Hmm, that’s odd. As long as you’re looking at the current version of the notebook (i.e., not in versioned mode, or looking at History), you should be able to set the license. And I don’t see anything obviously funny about your notebook. Does visiting the regular notebook page still not show you the menu option?

1 Like

Weird, it seems to be working fine now :man_shrugging: I’m pretty sure I was on the current version page before.

We just enabled the feature in JavaScript this morning, so if that particular browser tab had an old cached version of the JS bundle for whatever reason — or if you lost your connection for a moment, and the notebook believed itself to not be on the current version — I could imagine the menu item disappearing. Please let us know if you notice it again.

1 Like

I’d strongly recommend to add the Unlicense in order to cover cases where the author wants to put their work in the public domain, without any requirement for attribution.

3 Likes

Great idea. I’ve put it on the list to consider for the next round of additions.

Have you considered integrating GitHub’s list of licenses? It’s very complete and includes both license text and metadata: https://github.com/github/choosealicense.com/tree/gh-pages/_licenses

Yes. We wanted to start with a smaller, more focused and less overwhelming set of licenses to choose from.

2 Likes

Two suggestions:

  • have a non-free “please don’t reuse this notebook” license? I would probably never use it, but I would feel more comfortable, in other words less “corralled into free” (the paradox), if at least one choice of a non-permissive licence was offered.
  • If it’s possible to remember the last license chosen (incl. text details), it would be a plus. Especially if I wanted to licence en masse.
1 Like

That would contradict the license you granted by accepting the Terms of Service (reuse within the platform). The default license is already “proprietary” (except for the ToS license).

Perhaps the default license terms could be shown if no other license is selected, to make the circumstances clear under which reuse and modification is allowed?

3 Likes

Isn’t that only true of published or maybe shared notebooks? Even if you don’t publish or share a notebook, you can make it publicly available via the download code mechanism so it’s still useful to have a license in that setting.

If you share code outside the platform the ToS don’t magically disappear. I’m actually fairly certain you’d violate the terms if you’d share Observable notebooks (imports) that don’t have an explicit permissive license. Edit: Please disregard, speculating about licenses is derailing the topic and not helping anyone.

Given that notebooks can be forked, patchworked-copy-pasted-whatever … I wonder if at some point, somewhere far in the future, when there are no important issues left to tackle … it might make sense to implement the license option on the cell level?

To give some examples:

  • User forks unlicensed notebook, sets license for fork (e.g. MIT). License can realistically only apply to new cells.
  • User creates a notebook, but copies over cell from another unlicensed notebook and adapts it, set license for notebook. Now that cell would have to be excluded.

The more I think about this, the more I worry: Is it now too easy to slap a license on a notebook? If you encountered a notebook with a clearly visible license, would you bother to check the code’s provenance? Should the license modal perhaps contain a disclaimer that picking a license doesn’t magically “make it so”?

For consideration on a future iteration of Licences: Allowing users to drop in content for ‘Other’ directly in the Licence pop-up box and allowing users to save and name ‘Other’ licences.

I get that the text of a dropdown licence option is not editable, but it’d be cool if, for ‘Other’, it were. It would also be great if I could name my ‘Other’ choice, save it, and then access it from my profile (like selecting a collection to which a notebook belongs).

It would also be cool if I could search and filter according to license type.

2 Likes