2015-06-03 14 views
5

Tôi muốn đặt một gói lên CRAN. Tuy nhiên, gói hiện đang sử dụng mô hình C bên ngoài (mô hình chuẩn ISDA), được tạo theo giấy phép phân phối lại công khai. Tuy nhiên, người quản trị CRAN từ chối đặt gói trên CRAN nếu nó chứa mô hình C này. Vì vậy, có anyway để đưa các gói vào CRAN mà không có mô hình C này, và khi gọi install.packages("my.package"), nó có thể tự động tải về các mô hình C từ github.com/my_github?Cài đặt một số bộ phận từ Github khi gọi "install.packages()" trong R

Còn bây giờ, tôi đã viết đoạn mã sau vào zzz.R:

.onLoad <- function(libname, pkgname) { 
    if (! "Github_pkg" %in% (all.available = TRUE)){ 
     devtools::install_github("myGithub/Github_pkg") 
    } 
} 

Đây có phải là ổn nếu tôi nộp cho cran? Hoặc tôi nên sử dụng gói drat bởi Dirk? Cảm ơn!!

Trả lời

6

Bạn có thể xem gói drat của mình để tạo kho lưu trữ của riêng bạn trên GitHub. Tôi sử dụng ví dụ đó để lưu trữ gói Rblpapi tôi đóng góp (và dựa trên số library from Bloomberg) trong this ghrr repository built using drat.

Tất cả đều hoạt động. CRAN thậm chí đã chấp nhận một gói sử dụng ghrr drat repo làm kho lưu trữ bên ngoài (nhưng vì đã loại bỏ gói đó vì một lý do khác).

Bạn vẫn cần tổ chức gói "chính" trên CRAN theo cách mà gói "phụ" chỉ là "Đề xuất:" vì phụ thuộc thực tế cũng phải ở CRAN. Nhưng ít nhất điều này mang lại cho bạn một cách để tự động hóa các quy trình này.

+0

Tôi sẽ gửi cho CRAN hai tuần này và tôi có một câu hỏi. Bây giờ, tôi đã không sử dụng 'drat' nhưng thay vì viết đoạn mã sau trong' zzz.R': '.onLoad <- function (libname, pkgname) nếu (!" Github_pkg "% in% (all.available = TRUE)) {devtools :: install_github ("myGithub/Github_pkg")} '. Bạn có nghĩ rằng điều này là ổn nếu tôi gửi cho CRAN? Và nếu 'drat' là thích hợp hơn, bạn có thể cho tôi thêm một chút hướng dẫn về cách chèn' Github_pkg' của tôi bằng cách sử dụng 'drat'? Cảm ơn nhiều!! –

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