2017-07-09 3 views
4

Ich habe travis-ci bisher erfolgreich benutzt, aber ich habe Probleme bei der Verwendung von travis-ci mit R 3.4.0 im Vignettenerstellungsschritt mit dem folgenden Fehler in der "Gebäude-Paket" Abschnitt:Travis-CI: Knitr nicht gefunden in loadVignetteBuilder

* installing the package to build vignettes 
* creating vignettes ... ERROR 
Error in loadVignetteBuilder(vigns$pkgdir) : 
    vignette builder 'knitr' not found 
Calls: <Anonymous> -> loadVignetteBuilder 
Execution halted 

Wenn ich laufen R-CMD-Check vor Ort geht es und ich bekomme keine Fehler

Hier ist der aktuelle .travis.yml

language: R 
sudo: false 
install: 
    - R -e "0" --args --bootstrap-packrat 
cache: 
    directories: 
    - $TRAVIS_BUILD_DIR/packrat/src 
    - $TRAVIS_BUILD_DIR/packrat/lib 
    packages: true 

r_packages: 
    - covr 

after_success: 
    - Rscript -e 'library(covr); codecov()' 

BESCHREIBUNG hat die Vignette Linie darin:

VignetteBuilder: knitr 

knitr ist auch in meiner packrat.lock Datei und packrat ist für den Build in .travis.yml verwendet.

Ich habe ohne Erfolg folgendes versucht:

  • den r_packages in .travis.yml
  • knitr hinzugefügt
  • r_check_args: "--no-vignettes" hinzugefügt, um die Importe in BESCHREIBUNG knitr hinzugefügt travis.yml in die Hoffnung, den Vignettenbau zu überspringen. packrat Anruf in travis.yml install-before_install
  • hinzugefügt

Ich wusste ziemlich Paketen R Gebäude, nie travis-ci dagegen so bin ich nicht sicher, ob ich verstehen, warum die Vignette Builder würde nicht haben Zugang zum Knitr Package.

Repo: https://github.com/cormac85/datakindr
Travis: https://travis-ci.org/cormac85/datakindr

+0

Also am Ende habe ich die [Build to Pass] (https://travis-ci.org/cormac85/datakindr/builds/251766673) durch Entfernen nur packrat Config von der .travis.yml.Diese Konfiguration wurde in der [Travis R-Dokumentation] (https://docs.travis-ci.com/user/languages/r/#Packrat) vorgeschlagen, funktionierte jedoch nicht für den Schritt loadVignetteBuilder() während meiner Builds. Wenn jemand dies noch sieht, könntest du bitte kommentieren, ob das für mein Build ein Problem ist oder ob es genereller ist und ein Problem auf der [Travis-CI Github-Seite?] (Https: // github. com/travis-ci/travis-ci/issues) – Cormac

Antwort

0

Also am Ende bekam ich den Build von nur passieren packrat config .travis.yml entfernt und mit dem normalen Paket Gebäude Config ersetzt: cache: packages.

Die Packrat-Konfiguration, die ich verwendet habe, wurde in der Travis R Documentation vorgeschlagen und funktionierte gut für den Rest der Elemente im Paket, aber es hat nicht für den Schritt während des Builds funktioniert.

3

Ein mögliches Problem beinhaltet die 'Einfuhren' und/oder 'Schlägt' Abschnitte in Ihrem description file.

dplyr muss in Ihrem sein schlägt vor, wenn nicht importiert.

See Hadleys 2015 O'Reilly Buch, R Packages:

Häufige Probleme:

Die Vignette baut interaktiv, aber bei der Überprüfung, schlägt es mit einem Fehler über ein fehlendes Paket, das Sie wissen ist installiert. Dies bedeutet, dass Sie vergessen haben, diese Abhängigkeit in der DESCRIPTION zu deklarieren (normalerweise sollte es in Suggests gehen).

+0

Danke, ich arbeite daran, das zu beheben und werde diesen Teil von der Frage entfernen, wenn das erledigt ist. Ich habe es zunächst der Vollständigkeit halber hier angegeben, aber ich vermute, dass es das Hauptproblem im Travis-ci-Build nicht beeinflussen wird. – Cormac

+0

Ich denke, Sie haben Recht, und ich hoffe, dass das Entfernen dieses Rauschens hilft, sauberere Informationen über die Knitr-Nachricht zu liefern. Ich bin beeindruckt, dass Sie packrat und travis auf Ihrem ersten Paket anpacken. – wibeasley

+0

Das ist sehr nett von dir. Technisch mein drittes Paket, aber die anderen beiden waren kleine private Projekte. Dieses ist für eine Wohltätigkeitsorganisation, mit der ich freiwillig arbeite, also dachte ich, dass dies eine gute Zeit wäre, Dinge richtig zu machen, einschließlich CI, Dokumente, Vignetten usw. Daher meine Schwierigkeiten mit Travis-CI und der Vignettenbildung. – Cormac