일반적으로 .cabal
파일에 새 종속성을 추가 할 때 사용하는 새 라이브러리의 버전을 지정합니다. 그러나 stack
은 큐 레이 티드 라이브러리 세트와 함께 작동하며, 패키지 버전을 .cabal
파일로 지정하는 것이 타당한 지 궁금합니다. 내 생각 엔 lts
버전을 stack.yaml
으로 지정하면 충분합니다.Cabal + Stack : Cabal 파일의 패키지 버전 지정
0
A
답변
5
.cabal 파일에 패키지 버전을 지정하는 것이 적절한 지 궁금합니다.
이것은 완전히 달라집니다. 해당 특정 스택 리졸버에없는 패키지 버전 을 지정하면 은 버전 관리를 조정하라는 오류를 던집니다.
내 생각 엔 stack.yaml에서 lts 버전을 지정하는 것으로 충분할 것입니다.
개인용 패키지의 경우 중요하지 않으며 필자는 버전 경계를 지정하지 않는 것이 좋습니다. 그러나 궁극적으로 Hackage에 게시 할 계획이라면 보통 CI system like Travis을 사용하고 몇 가지 테스트를 통해 그 한계를 바로 잡으십시오. 사실, 스택 가이드는 그런 것을 추천한다고 생각합니다.
저는 거의 1 년 후에 이것을 검토하고 있습니다. 'cabal'(또는'hpack'?) 파일의 상한선과 하한선은 해커에게 패키지를 공개 할 때 공개하려는 패키지의 모든 종속성에 대해 PVP가 상한과 하한을 요구할 때 필요합니다. –
@DamianNadales 아니요, 필요하지 않습니다. PVP에 대한 입장은 다른 사람들 사이에서 다른 의견으로 논란의 여지가 있습니다. – Sibi
그러나 [패키지를 hackage에 업로드하는 방법에 대한 지침] (https://hackage.haskell.org/upload)은 "모든 패키지는 Haskell의 Package Versioning Policy (PVP)를 따라야한다"는 PVP를 참조합니다. 패키지 제작자가 반드시 해당 페이지의 지침을 따르지 않는다는 뜻입니까? –