Как удовлетворить требования именования файлов лицензий CRAN и Github
(ПРИМЕЧАНИЕ. Этот вопрос включает в себя слово "лицензия". Но позвольте пояснить: этот вопрос не требует рекомендаций по лицензированию. Он спрашивает, как одновременно удовлетворить требования к именованию файлов "программных средств, обычно используемых программистами": Github и CRAN Этот вопрос также может быть легко связан с файлами README. Простое использование слова "лицензия", кажется, делает людей счастливыми своими близкими голосами.)
У меня есть пакет R, код которого я хотел бы сохранить на Github.
В соответствии с требованиями R (см. Здесь примечание о шаблонных лицензиях), в моем файле DESCRIPTION
строка:
License: MIT + file LICENCE
И мой файл LICENCE
содержит шаблон MIT, как требуется:
YEAR: 2017
COPYRIGHT HOLDER: Don Quixote
Github раньше вычислял лицензирование, только просматривая файл LICENSE
, что позволило мне сохранить текст MIT в LICENSE
чтобы Github обнаруживал его, а шаблон CRAN в LICENCE
чтобы CRAN обнаруживал его. Этот подход используется .Rbuildignore
, чтобы скрыть GitHub LICENSE
от CRAN.
Но теперь на землю упала тьма: Гитхуб смотрит на LICENSE
и LICENCE
. Находя их разными, он отказывается от попытки определить лицензию на проект.
В результате не представляется возможным использовать лицензию MIT или другие шаблонные лицензии таким образом, чтобы это соответствовало как CRAN, так и Github.
Переименование моего CRAN файла шаблон лицензии от LICENCE
на LICENCE.template
бы решить проблему, но затем CRAN жалуется на нестандартном файл.
Я мог бы опустить файл шаблона лицензии CRAN из репозитория git, но тогда я не жертвую контролем над версиями ради целесообразности.
Есть ли обходной путь?
Ответы
Ответ 1
Мой текущий подход, основанный на комментарии Томаса, выглядит следующим образом:
-
Файл LICENCE
содержит лицензию шаблона MIT для каждого CRAN-требования. Теперь он указан в .gitignore
, так что он не возится с Github.
-
В файле LICENSE
содержится фактическая лицензия MIT, согласно требованиям Github. Он не указан в .Rbuildignore
, так что он не путается с CRAN.
Конечно, это не идеальное решение, потому что теперь ни CRAN, ни Github не архивируют всю базу кода. В частности, если код получен от Github, он не находится в состоянии, когда было бы допустимо загрузить его в CRAN. Если код, полученный от CRAN, он просто будет несовместим, чтобы опубликовать его на Github (поскольку Github не выводит лицензию).
Ответ 2
Теперь вы можете следовать шаблонам отправки для CRAN, и это будет поддерживаться GitHub. Например, этот репозиторий использует шаблон лицензии CRAN и правильно показывает лицензию на GitHub: https://github.com/TomKellyGenetics/vioplot
Это совместимо с представлением CRAN. CRAN отклонит отправку с полным файлом лицензии, а не с шаблоном:
Лицензионные компоненты с ограничениями и разрешением базовой лицензии: BSD_3_clause + file LICENSE Файл 'LICENSE': Copyright (c) 2004, Daniel Adler. Все права защищены.
Перераспределение...
Пожалуйста, отправляйте только шаблон CRAN для лицензии BSD_3_clause.
Это поддерживается GitHub (который, возможно, был обновлен). Вы должны отправить в CRAN с License: BSD_3_clause + file LICENSE
(или MIT) и использовать только файл шаблона, такой как:
YEAR: 2004
COPYRIGHT HOLDER: Daniel Adler
ORGANIZATION: University of Goettingen