SoftDev4Research / 4OSS-lesson

The overall aim of these 4OSS in the shape of training materials will contribute to make research software FAIR.
https://SoftDev4Research.github.io/4OSS-lesson
Other
23 stars 22 forks source link

Licence episode - review after the hackathon utrecht August 1-3 #54

Open orchid00 opened 6 years ago

orchid00 commented 6 years ago

@allegravia @rgaiacs @JenHarrow

I just merged the PR on the Licence episode. https://github.com/SoftDev4Research/4OSS-lesson/pull/52

Thanks for your contributions on the Licence episode.

How to continue? please address the comments listed below. There are short things to fix in this episode, please see below and contact the reviewer for questions. If you rather not address any of the TODOs please explain the reasoning.

Recommended to make smaller PR's clearly stating the change so I can merge easily. Thanks!

General comments: @orchid00: "licence" and "license": British English: spell it licence when you use it as a noun and license when you use it as a verb

@tobyhodges: You've done a great job of capturing and explaining a lot of potentially difficult concepts and information here +1 There's quite a lot to read through here. Is it possible to cut the amount of text down a bit? You've had good ideas for the exercises - encouraging learners to discuss the consequences and implications of choosing different licences is a smart way of invoking peer instruction and (I hope) will reduce the amount of time that the instructor has to spend talking :)

Reviews numbered

  1. "First objective."
    • Tell what is a copyright and what a licence does
    • tell why is important that a product/code has a licence

TODO: @mkuzak: why it is important

@ljgarcia: Could a verb other than "tell" be used for the objectives? Telling and understanding is not necessarily the same.

  1. In the title h3: Different licenses for different types of products (even data) TODO: @mkuzak: why it is important

  2. Typo " For example, if your data analysis in R uses ggplot2 for the visualisation, ggplot2 would be a third-party dependence."

TODO: @mkuzak: third-party dependence > third-party dependency

@fmichonneau: In the same parragraph. I think it's a little more subtle than this here. Licenses of dependencies will affect your project differently whether you need to include the code in your own project, or whether you are simply linking to it. There are probably very few cases where including the source code of ggplot2 inside another project would make sense, and I worry it will give the wrong impression to the learners. For instance, you could compare the fs package which includes the libuv C++ library; and the magick package which does not include the source code from Image Magick but links to it. In the first case, the fs package needs to be released with a GPL3 license because of the libuv package. In the second case, the magick packages is released with an MIT license even though ImageMagick is released under a custom GPL-compatible license.

  1. Exercise:

    "Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination."

TODO: @mkuzak: explain what does static and dynamic linking mean @ljgarcia: +1 @LourensVeen: Good luck :). It's pretty clear for compiled and linked languages, but for modern stuff like Python...

  1. Point 4. Select your license by opening it page TODO: @ tobyhodges: "opening its page" would be correct

  2. "Fair rules" - parody, criticism, quotation - are an exception to these rights. For example, you can publish a study comparing the performance or the accuracy of several different programs, without infringing the copyright of the programs.

TODO: @tobyhodges: Should this be "fair use" rules? That's the terminology that I'm familiar with

  1. Scenario: you receive a script from your supervisor asking you to modify it to analyse a different type of input data.

TODO: @tobyhodges: Did the supervisor write the script? This was unclear to me from the wording. Perhaps, Your supervisor sends you a script that they wrote, asking you to modify [...]. Or: Abdul's supervisor sends him a script that she wrote, asking him to [...]

@LourensVeen: Usually, you and your supervisor would be working for the same entity on a work-for-hire basis, so is this really a copyright issue? That may actually be interesting to discuss here, so it's not a bad example at all, but maybe it should be mentioned somewhere?

  1. What an open source licence does?

TODO: @tobyhodges: What does an open source licence do? Or, What an open source licence does

  1. Exercise: Work in pairs. Ask learners to say wich permissions they have from a licence of a given software. Write permissions on sticky notes and stick them under each software name. Instructors should push learners to be more creative in terms of permissions. For example, can you sell the software? Can you sell support?

TODO: @tobyhodges: This is a nice exercise. I'd recommend to rewrite so that it's aimed at the learners. @https://github.com/fmichonneau: It seems this challenge needs a little more information. Any software? what does "permissions" refer to (do you mean "use cases")?

  1. Image: http://journals.plos.org/ploscompbiol/article/figure/image?size=large&download=&id=10.1371/journal.pcbi.1002598.g002

TODO: @tobyhodges: This is an awesome figure! Can you add an image credit?

Before the image @LourensVeen: I would avoid the term "open access" here, as it's something different, and most versions of open access (notably green and gold open access) are not at all equivalent to open source. "continued access to the software and its source code" would be better.

  1. Fix typo

TODO: @fmichonneau distibute -> distribute

  1. Copyright protects the creative expression of ideas, patents protect novel technological inventions, trademarks protect ownership.

TODO: @fmichonneau:I think it would be useful to provide a little more details here, with some examples for each word.

@LourensVeen: I think "trademarks protect brand identities" is a more accurate statement.

  1. Question: are you allowed to use the photos that you downloaded for your machine learning algorithm?

TODO: @fmichonneau: Adding some guidelines/possible solutions for this challenge will be useful to instructors @LourensVeen: And they should probably mention that the terms and conditions of the website (a contract, not a copyright license) play a role here, lest people take an affirmative answer for a blanket permission to do this always.

14: e.g., by email.

TODO: @fmichonneau: maybe switch the "share by email" example to another use case, it's probably best to encourage better practices even in the examples slightly_smiling_face

  1. Select the chosen license

TODO: @fmichonneau: It might be worth adding that different communities have different practices. When preparing an R package to be submitted to CRAN the format of the LICENSE file needs to follow a strict format, and be named LICENSE (not LICENSE.md for instance). The usethis package makes this easy by having functions that do the right thing depending on the license you choose: use_mit_license(), use_gpl3_license(), etc...

  1. Copyright is .... in that parragraph

TODO: @ljgarcia: Is there any source that can be cited here?

17: Scenario: you receive a sticker and your friends want a copy.

TODO: @ljgarcia: What kind of sticker? Is this a logo or so? I suppose depending on the sticker there could be no copyright?

  1. Question: are you allowed to use the photos that you downloaded for your machine learning algorithm?

TODO: @ljgarcia: Do you plan to add a solution here? Could you use maybe a solution here rather than a challenge?

  1. third-party dependencies are any library

TODO: @ljgarcia: It does not have no be a library, it could be just a component... maybe "code" rather than "library" here? @LourensVeen: and not just of the library, but also the rest of the code ("Corresponding Source'). It's a strong copyleft, your users are interacting with the whole thing (similarly to a statically linked binary), and that's what section 13 says.

20: Choose a licence for my code TODO: @ljgarcia: Choosing?

  1. "a licence and all future versions [...]".

TODO: @ljgarcia: Do you mean "the current version and all future versions [...]"?

  1. Add the previously selected license to your GitHub repository

TODO: @ljgarcia: "the previously selected", selected where? Cannot they change to select a license they like better than the prevoiously selected one?

  1. each Contributor hereby grants to ...

TODO: @c-martinez: I asked one of my colleagues (who know a lot more about licenses than I do) to have a quick look at the challenges on this episode. He suggested adding these two questions:

"Who owns the copyright to the various programs you've written so far?"
"What are the (dis)advantages to licensing your software under the Apache license versus licensing it under the GPL"? 
 I am guessing this might be a good place to add these questions ?