Как удовлетворить требования именования файлов лицензий 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