Haskell-Stack не удается построить проект с зависимостью DateTime, несмотря на запись в stack.yaml - PullRequest
1 голос
/ 28 июня 2019

Итак, я пытаюсь добавить этот пакет: datetime-0.3.1 , и я добавил то, что я считаю правильной ссылкой в ​​файле stack.yaml. Я пытался использовать стековый решатель, но этого больше не существует. Я также искал какой-то эквивалент pip, чтобы я мог просто сделать установку стека datetime-0.3.1 или что-то подобное, но это не похоже на то, что делает стек.

Код:

module FhirDataTypes (
    FhirId (..),
    toFhirId
) where

import Data.Maybe (Maybe(..))
import Data.List (length)
import Coding as Coding
import Data.Decimal
import FhirUri (FhirUri(..))
import FhirString (FhirString(..))
import SimpleQuantity (SimpleQuantity(..))
import Data.DateTime

newtype FhirId = FhirId FhirString deriving (Show)

toFhirId :: FhirString -> Maybe FhirId
toFhirId fs@(FhirString s)
    | length s > 64 = Nothing
    | otherwise = Just $ FhirId fs

data Money = Money  { value :: Decimal
                    , currency :: Code
}

data Range = Range  {   low :: SimpleQuantity
                    ,   high :: SimpleQuantity
}

data Ratio = Ratio  {   numerator :: Quantity
                    ,   denominator :: Quantity
}

data Period = Period    { start :: DateTime
                        , end :: DateTime
}

Ошибка, которую я получаю:

PS C:\util\haskell\fhir-practice> stack build

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for fhir-practice-0.1.0.0:
DateTime needed, but the stack configuration has no specified version (no package with that name found, perhaps there is a typo in
         a package's build-depends or an omission from the stack.yaml packages list?) needed since fhir-practice is a build target.

Some different approaches to resolving this:


Plan construction failed.

Мой файл stack.yaml:

flags: {}
packages:
- .
extra-deps: 
- network-  uri-2.6.1.0@sha256:62cc45c66023e37ef921d5fb546aca56a9c786615e05925fb193a70bf0913690
- Decimal-0.4.2
- datetime-0.3.1
resolver: lts-13.24

1 Ответ

2 голосов
/ 28 июня 2019
  1. stack install в основном используется для глобальной установки двоичных файлов, а не для пакетов, специфичных для проекта.

  2. Вы, вероятно, хотите использовать пакет time, а не datetime. так как первое активно поддерживается. Более того, в вашем случае time присутствует в LTS-13.24, поэтому вам не нужно добавлять его в extra-deps. Поле extra-deps предназначено только для зависимостей (в том числе транзитивных), которых нет в вашем преобразователе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...