2015-05-27 5 views
34

Sto creando un pacchetto R su GitHub, LW1949, che dipende da un altro pacchetto R su GitHub, jvamisc. Quando provo ad installare LW1949 utilizzandoCreare un pacchetto R che dipende da un altro pacchetto R situato su GitHub

require(devtools) 
devtools::install_github("user/LW1949") 

ottengo il messaggio: Skipping 1 packages not available: jvamisc.

Come posso indirizzare la parte import(jvamisc) del pacchetto LW1949 (in NAMESPACE) a Github anziché CRAN per trovare questa dipendenza?

Sicuramente questa domanda è stata posta e risposta in precedenza, ma non sono riuscito a cercarla (forse perché i termini di ricerca sono così comuni - R, pacchetto, GitHub, ecc.). Mi sono imbattuto in Travis CI e Packrat, nessuno dei quali ho usato. Non ho idea se avrebbero aiutato. Preferirei una soluzione il più semplice possibile. (Non tutti noi?)

Sto usando R versione 3.1.3 per Windows in R Studio versione 0.98.1103.

+5

domanda simile appena ottenuta askend su r-pkg-devel. Se crei un repository Drat su github, puoi apparentemente specificarlo nel campo 'Additional_repositories' del tuo file DESCRIPTION. –

+0

Ciao Jean. E 'bello vederti su SO. L'opzione aggiuntiva era anche necessaria quando c'era una miscela di pacchetti CRAN e BioC che erano interdipendenti, ma ora si può specificare l'elenco di ricerca di repository in un'opzione: 'options (" repos ")' Vedi anche '? SetRepositories' –

+1

Si potrebbe voler bifare il progetto e collegarlo a quello nel pacchetto ... nel caso in cui l'utente originale lo rimuove/altera in modo tale da rompere il pacchetto. – cory

risposta

21

Questa domanda sembra essere stata risolta abbastanza recentemente, indirizzata in this issue del repository github di devtools.


pacchetto sviluppatore POV:

1) fare:

devtools::use_package("jvamisc") 
devtools::document() 

per aggiungere la dipendenza nel Imports campo del vostro file di descrizione.

2) aggiungere manualmente un campo "telecomandi:" nel file di descrizione, specificando dove su github R dovrebbe cercare il pacchetto:

#in DESCRIPTION 
Imports: ..., 
    jvamisc, 
    ... 
Remotes: JVAdams/jvamisc 


POV utente finale:

1) l'utente finale deve avere l'ultima versione di sviluppo di devtools (o almeno quella corrispondente a commit # f21ca3516c). Bisogna in qualche modo 'costringerlo' per aggiornare la sua versione devtools (Credo che appena messo questo nelle istruzioni di montaggio ... Non riesco a pensare ad un modo migliore)

devtools::install_github(“hadley/devtools”, ref = “f21ca3516c”) 

2) Riavviare il R Sessione scarico/ricaricare il pacchetto di DevTools

3) fare la solita install_github

require(devtools) 
devtools::install_github("user/LW1949") 

immagino questa funzionalità verrà aggiunto prima o poi alla versione CRAN di devtools, quindi non ci sarà alcuna necessità per l'utente di recuperare la versione di sviluppo e andrebbe direttamente al punto 3).


I passi e le opzioni aggiuntive sono dettagliate nella this vignette

9

La soluzione reale sembra aggiungere nel vostro file di descrizione della linea

Remotes: hadley/testthat 

vedere la documentazione di DevTools:

# Git 
Remotes: git::https://github.com/hadley/ggplot2.git 

# Bitbucket 
Remotes: bitbucket::sulab/[email protected], dannavarro/lsr-package 

# Bioconductor 
Remotes: bioc::3.3/SummarizedExperiment#117513, bioc::release/Biobase 

# SVN 
Remotes: svn::https://github.com/hadley/stringr 

# URL 
Remotes: url::https://github.com/hadley/stringr/archive/master.zip 

# Local 
Remotes: local::/pkgs/testthat 

# Gitorious 
Remotes: gitorious::r-mpc-package/r-mpc-package