2017-01-02 9 views
2

スタックを使用してHackageにインストールされているスタティック(Hackage)のパッケージをテストするためのワークフローは何ですか?スタックを使用してHackageパッケージをテストするためのワークフロー(Stackageには含まれません)

stack new tester 
cd tester 
# Then add the package PKG to 'extra-deps' 
stack build . --force-dirty 

例えば

は十分でなく、誤差の結果(「現在のプログラムで、または任意の公知のパッケージでないモジュール」)は、パッケージの一部のimportが試行された場合。

が明示的に

stack build PKG 

で(それは必要ありませんように思える)パッケージを構築することは、「隠されたパッケージPKGのメンバーであることを警告してた(どちらか動作しません... ")。

私はstack ghciセッションでパッケージのコンポーネントをインポートしようとすると私は同じ「隠されたパッケージ」のエラーが表示されます、私は代わりに、単に

stack new tester --force 
cd tester 
stack build PKG 

場合。

Haskageスタックを使用して、Hackage上で特定のパッケージを使用するための隔離された一時的なインストールを作成する(ベストプラクティス)ワークフローとは何ですか? Stackageで利用できないパッケージで再生するに

+0

あなたは、パッケージのコードベースで遊んでいるように、パッケージ自体を実験しますか?あるいは、自分のコードを書くためにそのパッケージを利用できるようにしたいのですか? –

+0

@MichaelLitchard:私はそれがインストールされているかのように使用できるようにしたいが、サンドボックスにしたい。例えば、ghciに入り( 'stack ghci'を使ってインポートしてそこで使うことができます)、トリック(これをちょっと混乱させてしまった)のように思えるのは、 'stack ghci --no-package-hiding'を使うことです。しかし、ghciだけで動作するかもしれないし、これを達成するための "ベストプラクティス"のようにも見えません。 – orome

答えて

1

、私は通常、最初のグローバルプロジェクトでそれを構築しよう:通常ので、不足している依存関係や境界の、問題が解決しない場合は

$ cd ~/ 
$ stack build the-package 
$ stack ghci 

私は次のワークフローに頼っています:

$ stack new playground 
$ cd playground 
# In playground.cabal, add the-package to the library build-depends section 
$ stack solver --update-config 
$ stack ghci 
# Play with the package 
+0

ええ、私は、グローバルレベルのワークフロー(ビルドと動作のみ)を単純にサンドボックスで(何らかのファイル編集なしで)複製することはできません。私は、サンドボックス( 'stack new tester && cd tester')を持っていれば、グローバルな" box "(そして' stack build PKG && stack ghci'で十分でしょう)のように振る舞うでしょう。その代わりに(ファイルを編集することなく)もっとも近いものはGHCiの呼び出しに '--no-package-hiding'を追加するだけです。ちょっと面倒です(あいまいではありません)。 – orome

+0

正確に、段階的に、何をしたのか、そしてあなたの経験があなたの期待と異なるところで説明してください。 – sjakobi

+0

私はちょうどやったと思った。私は '--no-package-hiding'(または' .cabal'ファイルを手動で編集するもっと複雑な手順)を使わなければならないということに驚いています。特に、どちらもグローバルレベルでは必要ないからです。 – orome

関連する問題