2017-04-21 13 views
9

(LƯU Ý: Câu hỏi này bao gồm từ "cấp phép" Nhưng hãy làm rõ:.. Câu hỏi này là không xin lời khuyên cấp phép Nó được hỏi làm thế nào để đồng thời đáp ứng các yêu cầu đặt tên tập tin của "các công cụ phần mềm thường được sử dụng bởi các lập trình viên": Github và CRAN Câu hỏi này có thể dễ dàng là về các tệp README.)Làm thế nào để đáp ứng cả hai cran và Github file bản quyền đặt tên yêu cầu

Tôi có gói R là mã mà tôi muốn giữ trên Github.

Phù hợp với R của requirements (xem here cho một lưu ý về giấy phép mẫu), tôi có trong tập tin DESCRIPTION tôi dòng:

License: MIT + file LICENCE 

LICENCE tập tin của tôi chứa mẫu MIT, theo yêu cầu:

YEAR: 2017 
COPYRIGHT HOLDER: Don Quixote 

Github được sử dụng để chỉ ra giấy phép bằng cách xem tệp LICENSE, cho phép tôi giữ văn bản MIT ở LICENSE để Github có thể xóa ect nó và mẫu CRAN trong LICENCE để CRAN sẽ phát hiện nó. Cách tiếp cận này đã sử dụng .Rbuildignore để ẩn Github LICENSE khỏi CRAN.

Nhưng bây giờ, một bóng tối đã rơi trên đất: Github nhìn vào cả hai LICENSELICENCE. Tìm thấy chúng khác nhau, nó từ bỏ nỗ lực của mình để xác định giấy phép của dự án.

Kết quả là, dường như không thể sử dụng giấy phép MIT hoặc các giấy phép theo khuôn mẫu khác, theo cách thỏa mãn cả CRAN và Github.

Đổi tên tệp mẫu giấy phép CRAN của tôi từ LICENCE thành LICENCE.template sẽ khắc phục vấn đề, nhưng sau đó CRAN khiếu nại về tệp không chuẩn.

Tôi có thể bỏ qua tệp mẫu giấy phép CRAN từ repo git, nhưng sau đó tôi không hy sinh điều khiển phiên bản cho hiệu quả.

Có cách giải quyết khác không?

+1

Bạn có thể bao gồm tệp giấy phép được liệt kê trong.Rbuildignore tập tin và do đó trình bày trên Github nhưng cũng tuân thủ CRAN. – Thomas

+0

@Thomas: Đó là một điểm tốt! Tôi đang sử dụng '.Rbuildignore' để đạt được tuân thủ CRAN, nhưng tôi không thích sử dụng' .gitignore' trong cùng một cách: nó là tốt đẹp để có tất cả mọi thứ phiên bản kiểm soát. Nhưng nó có thể là cần thiết. – Richard

Trả lời

3

cách tiếp cận hiện tại của tôi, dựa trên bình luận Thomas là như sau:

  • File LICENCE chứa mẫu giấy phép MIT, theo yêu cầu của cran. Nó bây giờ được liệt kê trong .gitignore, để nó không gây rối với Github.

  • Tệp LICENSE chứa giấy phép MIT thực tế, theo yêu cầu của Github. Nó không được liệt kê trong .Rbuildignore, để nó không gây rối với CRAN.

Tất nhiên, đây không phải là giải pháp lý tưởng vì giờ đây CRAN cũng không phải Github đang lưu trữ chính xác toàn bộ cơ sở mã. Đặc biệt, nếu mã được mua từ Github thì nó không ở trạng thái được phép tải nó lên CRAN. Nếu mã được mua lại từ CRAN, nó sẽ đơn thuần là không hợp tác để đăng nó trên Github (vì Github sẽ không suy ra giấy phép).

+0

Điều gì về việc đưa toàn bộ văn bản giấy phép MIT vào tệp LICENSE của bạn? Sau đó, DESCRIPTION của bạn có thể đọc 'Giấy phép: tệp LICENSE'. Nó sẽ cho phép Github có được những điều đúng, và nó đáp ứng các yêu cầu của R 'Một trong những chuỗi' LICENSE 'hoặc' file LICENSE 'đề cập đến một tệp có tên LICENSE hoặc LICENSE trong thư mục cấp cao nhất (nguồn và cài đặt) . ' Tôi chỉ không chắc chắn nếu CRAN sẽ chấp nhận bằng cách sử dụng một giấy phép 'tiêu chuẩn' theo cách đó, chứ không phải là 'MIT + file LICENSE'. – jpshanno

Các vấn đề liên quan