2016-10-26 6 views
1

stack sdistをプロジェクトディレクトリに実行すると、stack.yamlファイルはtarballに含まれません(これはbe expectedと思われます)。スタックでインストールできるhackageパッケージを作成します

したがって、私がタールボールをhackageにアップロードすると、stack install mypackageは、私がstack.yamlファイルで指定した欠落(extra-deps)の欠落を訴えています。

$ stack install pandoc-placetable 

Run from outside a project, using implicit global project config 
Using resolver: lts-5.17 from implicit global project's config file: ~/.stack/global-project/stack.yaml 
While constructing the BuildPlan the following exceptions were encountered: 

-- Failure when adding dependencies:  
     spreadsheet: needed (>=0.1.3 && <0.1.4), not present in build plan (latest applicable is 0.1.3.4) 
    needed for package: pandoc-placetable-0.4 

-- While attempting to add dependency, 
    Could not find package spreadsheet in known packages 

Recommended action: try adding the following to your extra-deps in /Users/maurobieg/.stack/global-project/stack.yaml 
- spreadsheet-0.1.3.4 

それともさらにhackage依存関係を持っている場合-installable hackageパッケージstackを作るために推奨される方法は何ですか?

更新:私はちょうど秘密結社ファイルにextra-source-files: stack.yamlを追加し、stack.yamlは確かに新しく発行されたバージョンのtarbalに含まれています。それにもかかわらず、stack install pandoc-placetable-0.4.1はまだ同じエラーが発生します。

cabal-installを自分のシステムにインストールしたくない人にGitHubからクローンを作成してから、stackでビルドすることもできます。それは小さなパッケージのための推奨されたアプローチですか?または、pandoc-placetable(つまりspreadsheet)の依存関係をグローバルstack.yamlに含めるように依頼する必要がありますか?グローバルファイルを汚染するような匂いがする...

+2

あなたがリンクしたスレッドの提案( 'extra-source-files:stack.yaml')はありますか?私はそれが期待される。 Hackageパッケージは 'スタックインストール可能'ではありません(スタックは何もしませんが、すべての作業を行う他のプログラムを呼び出すので、 'スタックインストール可能'は単に 'cabal-installable'です)。あなたのリゾルバからの 'stack.yaml'(念のため、パッケージメンテナーは複数のコンパイルバージョンをサポートし、複数の' stack.yaml'を持つことに注意してください)。 – user2407038

+0

上記のコメントに加えて、あなたのパッケージをStackageに入れることをお勧めします:https://github.com/fpco/stackage#add-your-package –

+0

@ user2407038 'extra-source-files'は役に立たない、私の更新を見てください。 – mb21

答えて

1

@mgsloanが上記のコメントに述べたように:開いているのはstack issue about using stack.yaml from hackage packageです。

私はちょうどそこにはGitHub(またはstack unpackに@MichaelSnoymanで述べたような)からクローンを作成する人々に伝えると、新しく作成したディレクトリにcdstack installます固定されるまで、私は推測します。

関連する問題