From 1a0cd3829e7f7a1c57c26a72cb137833c8a86d0d Mon Sep 17 00:00:00 2001 From: Luka van der Plas <43678097+lukavdplas@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:38:50 +0100 Subject: [PATCH] Licensing (#36) --- .gitignore | 7 ++-- CONTRIBUTING.md | 17 +++++++++ src/basic/LICENSE => LICENSES/Unlicense | 46 ++++++++++++------------- README.md | 18 +++++++++- src/basic/Basic mathematics.jl | 1 + src/basic/Basic.jl | 1 + src/basic/Getting started.jl | 1 + src/basic/Images.jl | 1 + src/basic/Markdown.jl | 1 + src/basic/PlutoUI.jl.jl | 1 + src/basic/Tower of Hanoi.jl | 1 + src/basic/moon.jl | 1 + src/machine-learning/decision-trees.jl | 1 + src/math/convolution_1d.jl | 1 + src/math/convolution_2d.jl | 1 + src/plot/LICENSE | 24 ------------- src/plot/Plots.jl.jl | 1 + src/plot/heatmap.jl | 1 + src/web/Interactivity with HTML.jl | 1 + src/web/JavaScript.jl | 1 + src/web/LICENSE | 24 ------------- 21 files changed, 76 insertions(+), 75 deletions(-) create mode 100644 CONTRIBUTING.md rename src/basic/LICENSE => LICENSES/Unlicense (98%) delete mode 100644 src/plot/LICENSE delete mode 100644 src/web/LICENSE diff --git a/.gitignore b/.gitignore index 2aad96d..0433ba1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ - -pluto_state_cache/ -output/ + +pluto_state_cache/ +output/ +.vscode/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3fdf4db --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,17 @@ +# Contributing + +Are you adding a notebook to the featured notebooks? Here's what you need to know! + +## Licensing + +All notebooks MUST have an [OSI-approved licence](https://opensource.org/licenses/) or a [creative commons licence](https://creativecommons.org/share-your-work/cclicenses/). Whether a software licence or a creative licence is more appropriate for your notebook is up to you. + +We like to use the [Unlicense](https://opensource.org/license/unlicense/) for sample notebooks, but you're free to pick a different one! + +### Adding licence info to your notebook + +First, specify the license in the frontmatter of your notebook. Add a `license` field with the name of your licence, and a `license_url` field with a link to the full text. + +If the full text is already listed in [LICENSES](LICENSES/), you can link to that file. If not, we recommend that you add it to LICENSES yourself, so it will always be availalbe with the notebook, but you can also link to an external URL. + +The Unlicense is a *public domain-equivalent* license, which means gives permission to share and reuse the code without any restrictions. There are a few other licenses like this, such as MIT No Attribution and CC-0. If you're using a license that isn't like this, add a clear paragraph in the content of your notebook to say this. diff --git a/src/basic/LICENSE b/LICENSES/Unlicense similarity index 98% rename from src/basic/LICENSE rename to LICENSES/Unlicense index 3c577b0..8b21d1d 100644 --- a/src/basic/LICENSE +++ b/LICENSES/Unlicense @@ -1,24 +1,24 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + For more information, please refer to \ No newline at end of file diff --git a/README.md b/README.md index 73bc0c7..8ff71c4 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,23 @@ To add a notebook, simply add the file to this repository! It will be picked up All notebook files in this repository will be rendered by PlutoSliderServer, but they will only show up in Pluto's main menu if they belong to a collection. ### License -All current Pluto sample notebooks have had the `Unlicense` license, which means that people can copy code snippets from sample notebooks and use them freely. If you also want to use the `Unlicense`, great! If not, then also write a clear paragraph stating the license in the notebook itself. + +Notebooks are licensed individually. Each notebook specifies a license in the frontmatter. Here is an example of what that looks like: + +```julia +### A Pluto.jl notebook ### +# v0.19.27 + +#> [frontmatter] +#> author_url = "https://github.com/JuliaPluto" +#> author_name = "Pluto.jl" +#> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" +``` + +In this case, the notebook is authored by Pluto.jl, it is shared under the _Unlicense_, and the full text is available at the linked url. This link leads to the [LICENSES/Unlicense](/LICENSES/Unlicense) file in this repository. + +If you're adding a notebook of your own, see [CONTRIBUTING](/CONTRIBUTING.md) for more information about licensing. ### Interactivity The current *featured* system distributes notebook *statefiles*, which work the same way as Pluto's HTML export: people can read the notebook instantly, without having to wait for it to run. There is a button to *Edit and Run* a notebook that users can press to use the featured notebook as a template. diff --git a/src/basic/Basic mathematics.jl b/src/basic/Basic mathematics.jl index 92e6aac..bb61372 100644 --- a/src/basic/Basic mathematics.jl +++ b/src/basic/Basic mathematics.jl @@ -6,6 +6,7 @@ #> order = "2" #> tags = ["basic", "classic"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "Learn mathematics in Julia using pizzas! 🍕" #> #> [[frontmatter.author]] diff --git a/src/basic/Basic.jl b/src/basic/Basic.jl index ef28529..8d54bb5 100644 --- a/src/basic/Basic.jl +++ b/src/basic/Basic.jl @@ -6,6 +6,7 @@ #> tags = ["debug", "classic"] #> author_name = "Pluto.jl" #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" using Markdown using InteractiveUtils diff --git a/src/basic/Getting started.jl b/src/basic/Getting started.jl index fda2bba..4b23896 100644 --- a/src/basic/Getting started.jl +++ b/src/basic/Getting started.jl @@ -6,6 +6,7 @@ #> order = "1" #> tags = ["basic", "classic"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "Welcome to Pluto!" #> #> [[frontmatter.author]] diff --git a/src/basic/Images.jl b/src/basic/Images.jl index ed0a5cd..2565e70 100644 --- a/src/basic/Images.jl +++ b/src/basic/Images.jl @@ -8,6 +8,7 @@ #> tags = ["basic", "images", "markdown"] #> description = "Learn how to import and display images!" #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> #> [[frontmatter.author]] #> name = "Pluto.jl" diff --git a/src/basic/Markdown.jl b/src/basic/Markdown.jl index ed629e7..6ec6408 100644 --- a/src/basic/Markdown.jl +++ b/src/basic/Markdown.jl @@ -7,6 +7,7 @@ #> title = "Markdown" #> tags = ["markdown", "basic"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "Learn to write text cells with Markdown." #> #> [[frontmatter.author]] diff --git a/src/basic/PlutoUI.jl.jl b/src/basic/PlutoUI.jl.jl index 0fec79d..62ba15b 100644 --- a/src/basic/PlutoUI.jl.jl +++ b/src/basic/PlutoUI.jl.jl @@ -7,6 +7,7 @@ #> title = "Interactivity" #> tags = ["basic", "interactivity", "classic"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "Slider, buttons, dropdowns, and more using PlutoUI.jl!" #> #> [[frontmatter.author]] diff --git a/src/basic/Tower of Hanoi.jl b/src/basic/Tower of Hanoi.jl index 9c8bd17..c3edb15 100644 --- a/src/basic/Tower of Hanoi.jl +++ b/src/basic/Tower of Hanoi.jl @@ -5,6 +5,7 @@ #> image = "https://upload.wikimedia.org/wikipedia/commons/0/07/Tower_of_Hanoi.jpeg" #> tags = ["basic", "classic"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "An interactive Julia puzzle about stacking disks." #> #> [[frontmatter.author]] diff --git a/src/basic/moon.jl b/src/basic/moon.jl index 43d9ee0..f138f5b 100644 --- a/src/basic/moon.jl +++ b/src/basic/moon.jl @@ -10,6 +10,7 @@ #> tags = ["PlutoUI", "animation", "visualisation", "clock", "Unicode"] #> description = "Making use of 🌒 emojis and PlutoUI.clock for a simple animation" #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> author_name = "Maanik, Boshra, Benedikt" using Markdown diff --git a/src/machine-learning/decision-trees.jl b/src/machine-learning/decision-trees.jl index 954381d..3e40eb9 100644 --- a/src/machine-learning/decision-trees.jl +++ b/src/machine-learning/decision-trees.jl @@ -8,6 +8,7 @@ #> date = "2023-09-20" #> description = "We are going to use a simple model called \"Decision Tree\" to do a classification task." #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> #> [[frontmatter.author]] #> name = "Boshra Ariguib" diff --git a/src/math/convolution_1d.jl b/src/math/convolution_1d.jl index da640c4..39bf8ab 100644 --- a/src/math/convolution_1d.jl +++ b/src/math/convolution_1d.jl @@ -8,6 +8,7 @@ #> date = "2023-09-20" #> description = "Learn about the cool concept of convolution on continuous functions!" #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> #> [[frontmatter.author]] #> name = "Boshra Ariguib" diff --git a/src/math/convolution_2d.jl b/src/math/convolution_2d.jl index fdea639..127cc61 100644 --- a/src/math/convolution_2d.jl +++ b/src/math/convolution_2d.jl @@ -6,6 +6,7 @@ #> title = "Images and Filtering" #> tags = ["images", "filtering", "gaussian", "pixel", "convolution", "math"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "Learn how convolutions are used as filters in image processing!" #> date = "2023-07-09" #> diff --git a/src/plot/LICENSE b/src/plot/LICENSE deleted file mode 100644 index 3c577b0..0000000 --- a/src/plot/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to \ No newline at end of file diff --git a/src/plot/Plots.jl.jl b/src/plot/Plots.jl.jl index aaa818c..0373c3d 100644 --- a/src/plot/Plots.jl.jl +++ b/src/plot/Plots.jl.jl @@ -6,6 +6,7 @@ #> order = "1" #> tags = ["classic", "plotting"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "An introduction to Plots.jl" #> #> [[frontmatter.author]] diff --git a/src/plot/heatmap.jl b/src/plot/heatmap.jl index de2d683..ab142f7 100644 --- a/src/plot/heatmap.jl +++ b/src/plot/heatmap.jl @@ -6,6 +6,7 @@ #> title = "3D Graph vs Heatmap" #> tags = ["plotting", "makie", "3D"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "You can visualize 3D data with a 3D graph or a heatmap. How do they work, and what is the difference?" #> #> [[frontmatter.author]] diff --git a/src/web/Interactivity with HTML.jl b/src/web/Interactivity with HTML.jl index c7b35a2..933b8c6 100644 --- a/src/web/Interactivity with HTML.jl +++ b/src/web/Interactivity with HTML.jl @@ -7,6 +7,7 @@ #> title = "Interactivity with HTML" #> tags = ["interactivity", "classic", "web"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "Write your own interactive controls with HTML!" #> #> [[frontmatter.author]] diff --git a/src/web/JavaScript.jl b/src/web/JavaScript.jl index e65d754..de4e5ba 100644 --- a/src/web/JavaScript.jl +++ b/src/web/JavaScript.jl @@ -6,6 +6,7 @@ #> order = "2" #> tags = ["javascript", "web", "classic"] #> license = "Unlicense" +#> license_url = "https://github.com/JuliaPluto/featured/blob/2a6a9664e5428b37abe4957c1dca0994f4a8b7fd/LICENSES/Unlicense" #> description = "Use HTML, CSS and JavaScript to make your own interactive visualizations!" #> #> [[frontmatter.author]] diff --git a/src/web/LICENSE b/src/web/LICENSE deleted file mode 100644 index 3c577b0..0000000 --- a/src/web/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to \ No newline at end of file