2016-08-12 1 views
1

Ich habe Probleme herauszufinden, was falsch ist mit einer Abhängigkeit von Quellcode in meinem Stack-Projekt. Angenommen, ich möchte eine modifizierte Version der Bibliothek hsparql in meinem Projekt testen. Ein minimales Setup wäre:Wie mit Abhängigkeiten von Teilprojekten im Stapel umgehen

stack new mytest simple 
mkdir 3rdpary 
cd 3rdpary 
git clone https://github.com/robstewart57/hsparql 

Ändern stack.yml die lokale und modifizierte Version von hsparql in meinem Projekt gehören:

packages: 
- '.' 
- 3rdparty/hsparql 

# Dependency packages to be pulled from upstream that are not in the resolver 
# (e.g., acme-missiles-0.3) 
extra-deps: 
- rdf4h-2.0.0 
- hgal-2.0.0.2 

Wenn gehe ich zum 3rdparty/hsparql Ordner kann ich stack test ohne Probleme ich bekommen, aber von der Wurzel meines Projekts

$ stack test 
hsparql-0.2.7: build (lib + test) 
Progress: 1/2 
-- While building package hsparql-0.2.7 using: 
     /home/cebrian/.stack/setup-exe-cache/x86_64-linux/setup-Simple-Cabal-1.22.5.0-ghc-7.10.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-1.22.5.0 build lib:hsparql test:test-hsparql --ghc-options " -ddump-hi -ddump-to-file" 
    Process exited with code: ExitFailure 1 
    Logs have been written to: /home/cebrian/borralodedentro/stack-test/.stack-work/logs/hsparql-0.2.7.log 

    Preprocessing library hsparql-0.2.7... 
    In-place registering hsparql-0.2.7... 
    Preprocessing test suite 'test-hsparql' for hsparql-0.2.7... 

    /home/cebrian/borralodedentro/stack-test/3rdparty/hsparql/tests/Database/HSparql/ConnectionTest.hs:10:18: 
     Could not find module ‘Data.RDF.TriplesGraph’ 
     Use -v to see a list of the files searched for. 

aus irgendeinem Grund ist die Testaktion nicht in der Lage, die Bibliothek zu finden rdf4h, dass‘ s wurde sowohl in der ursprünglichen Bibliothek als auch in meiner eigenen stack.yml angegeben.

Ich habe keine Ahnung, was ich falsch mache, so dass jede Hilfe geschätzt wird.

+0

Die Wiedergabe Schritte sind ein wenig verwirrend: Ich vermute, es ist ein Tippfehler ('3rdpary' /' 3rdparty') und eine fehlende 'cd mytest' als zweiter Schritt . Auch Ihre Fehlermeldungen melden 'stack-test' als übergeordnetes Verzeichnis von' 3rdparty'. – sjakobi

+0

Beim Aufruf von 'stack test' aus dem Projektstamm verwendet der Stack' rdf4h-2.0.0' wie in 'stack.yaml' angegeben. Diese Version von 'rdf4h' enthält nicht 'Data.RDF.TriplesGraph', also die Fehlermeldung. Wenn stack test im 'hsparql'-Verzeichnis ausgeführt wird, verwendet stack einen anderen' stack.yaml'. – sjakobi

Antwort

2

hsparql Autor hier. Danke für den Bericht. Ich habe eine commit geschoben, die Kompatibilität mit rdf4h> = 2.0.0 behebt. Ich habe einen hsparql-Versionsbump auf 0.2.8 zum hacken geschoben. Der stack test Befehl funktioniert nun wie man es erwarten würde:

Progress: 1/2Database.HSparql.Connection tests: 
    selectQuery: [OK] 
    askQuery: [OK] 
    constructQuery: [OK] 
    describeQuery: [OK] 

     Test Cases Total  
Passed 4   4   
Failed 0   0   
Total 4   4