Comments (10)
Update to mention how use_mit_license()
etc work (i.e. including LICENSE.md
that's build-ignored)
from r-pkgs.
Material cut out of Whole Game that should be reincorporated in the main license section
(For the record, Whole Game does explain the "deal" with LICENSE.md
, since it uses MIT and it comes up.)
For future projects, there is more guidance on licenses in these sources:
- The License section of this book
- Writing R Extensions
- GitHub's guide at http://choosealicense.com
from r-pkgs.
When a project starts with MIT, with a LICENSE
file with copyright holder and year, then switches to GPL because it starts including GPL packages, does it need to delete the LICENSE
file? Either way, I suggest clarifying that in the book.
from r-pkgs.
I think R-exts now sort of suggests that one can include a normal LICENSE file (that is, normal with respect to the open source world), and add it to .Rbuildignore. More complicated stuff goes into LICENSE.note.
Whereas you should feel free to include a license file in your source distribution, please do not arrange to install yet another copy of the GNU COPYING or COPYING.LIB files but refer to the copies on https://www.R-project.org/Licenses/ and included in the R distribution (in directory share/licenses). Since files named LICENSE or LICENCE will be installed, do not use these names for standard license files. To include comments about the licensing rather than the body of a license, use a file named something like LICENSE.note.
At least, that's what this paragraph (from R-exts) suggests. We also received a suggestion to do it that way for the websocket package, which is GPL-2 licensed but includes C/C++ libraries with various licenses. https://github.com/rstudio/websocket/blob/5281bd4332c1843a421181263d54b7241aa215b6/cran-comments.md
I think that in general, it's good to have a normal LICENSE file that follows the same standard used by other open source projects.
Update: With License: MIT
, and a normal LICENSE file that is in .Rbuildignore, R CMD check
gives this:
License components which are templates and need '+ file LICENSE':
MIT
So perhaps .Rbuildignore-ing the LICENSE file won't work, at least for MIT.
from r-pkgs.
@wch The current logic of usethis::use_mit_license()
satisfies both the open source world and CRAN. We put a copy of the MIT license in LICENSE.md
and Rbuildignore it and use LICENSE
for the short year + copyright holder(s) template.
from r-pkgs.
That sounds like the inverse of what I suggested, but if that's the way to pass R CMD check
, I guess that's the way to do it.
That reminds me: another thing that could really use clarification is how to handle the inclusion of third-party libraries with their various licenses. We've done it a few different ways in different repos, mostly because over time, CRAN has changed what they've told us to do.
from r-pkgs.
how to handle the inclusion of third-party libraries with their various licenses
My most recent experience of this is with readxl and I was also instructed to put this in LICENSE.note
(readxl is GPL-3, libxls is BSD 2):
https://github.com/tidyverse/readxl/blob/master/LICENSE.note
And then the authors of the embedded libraries are also listed as ctb
and cph
. This all seems consistent with the websocket notes, yes?
from r-pkgs.
What you have in readxl does appear to be consistent with what they asked for with websocket.
One thing that's missing from both packages is actual license text for the package itself; CRAN doesn't think it's important, but I think we should try to figure out some way to include it.
Just to add a bit of historical context: with Shiny, it took some back and forth before CRAN was satisfied, and the end result is the DESCRIPTION has License: GPL-3 | file LICENSE
, and the text of the licenses for the included libraries are in LICENSE.
from r-pkgs.
@hadley Is this issue on your radar? I believe it's our oldest!
from r-pkgs.
Yes, this is mostly handled in the new license chapter, so I think we can close.
from r-pkgs.
Related Issues (20)
- I would appreciate context and an example HOT 3
- Confirm I'm ok with usage of `deprecate_warn()` in the lifecycle chapter
- Touch up demo of configuring usethis HOT 1
- typos HOT 12
- Incorrect namespace for `package_version()`
- `Error in curl_fetch_memory(r_svn_url(), handle = h): Timeout was reached` HOT 1
- `The procedure entry point EXTPTR_PROT could not be located in the dynamic link library C:\User\lidan\R\library\rlang\libs\x64\rlang.dll` HOT 1
- Suggestion for the 'releasing to CRAN' chapter: install TinyTeX & install makeindex LaTeX package
- Section 19.2
- "Register as an Apple developer" gives a page not found error HOT 2
- Not updating release version in DESCRIPTION prior to devtools::check() and devtools::check_win_devel() gives warnings HOT 2
- Update S3 method advice HOT 1
- lubridate::here HOT 1
- Expand on "group related functions together"
- Clarify where to store inputs for internal data workflow code
- Author triple dash in reference list HOT 2
- Expanding on when suggested packages can be assumed available
- is there a group/forum to ask questions HOT 3
- Update the section about conditional / delayed S3 registration HOT 1
- `rhub::check_for_cran()` deprecated
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from r-pkgs.