de1501f0e94b6633dc38b0dd05d5bd6a915775c1
[packages/containers.git] / CONTRIBUTING.md
1 # Instructions for Contributors
2
3 As mentioned in the [README](https://github.com/haskell/containers/blob/master/README.md), for reporting bugs (and maybe even the respective fix), please use the [GitHub issue tracker](https://github.com/haskell/containers/issues).
4
5 For proposing API changes/enhancements, please follow the [guidelines outlined on the Haskell Wiki](https://wiki.haskell.org/Library_submissions#Guide_to_proposers). Especially note that all API changes/enhancements should be discussed on libraries@haskell.org mailing list.
6
7 ## Building, testing, and benchmarking
8
9 Building, testing, and benchmarking the containers package can be done using either `cabal-install` or `stack`.
10
11 ### With cabal-install
12
13 Minimum cabal version: 1.24
14
15 _Note: The procedure here is a little weird because cabal configure is unable to solve for the constraints. We're looking into why that is ([#462](https://github.com/haskell/containers/issues/462))._
16
17 ```
18 cabal sandbox init
19 cabal install --only-dependencies
20 # Install test dependencies
21 cabal install 'test-framework >= 0.3.3' 'test-framework-quickcheck2 >= 0.2.9' 'QuickCheck >= 2.4.0.1' 'ChasingBottoms' 'HUnit' 'test-framework-hunit'
22 # Install benchmark dependencies
23 cabal install 'criterion'
24 # If you only need tests or benchmarks, you can omit the other --enable-xyz flag.
25 cabal configure -v2 --enable-tests --enable-benchmarks
26 cabal build
27 cabal test
28 cabal bench
29 ``` 
30
31
32 ### With [Stack](https://docs.haskellstack.org/en/stable/README/)
33
34 Minimum stack version: 1.6.1
35
36 ```
37 stack init   # If you haven't previously initialized stack
38 stack build
39 stack test
40 stack bench
41 ```
42
43 ## Troubleshooting
44
45 - If you're using Stack, make sure you have version >= 1.6.1 ([1], [2])
46
47
48 [1] https://github.com/commercialhaskell/stack/issues/3624
49
50 [2] https://github.com/commercialhaskell/stack/issues/3345