git.iko.soy/typeable/cassava-streams
on trunk help sign in
Updates to match new dependencies

* Add stack and LTS Haskell 5.2 * Some updates based on hlint suggestions * Bump version and dependency versions * Rename the change log

commit050572cbaacc0d520c6e9a69cedbb1b991fa442d authorPeter Jones <pjones@pmade.com> dateMon 8 Feb 2016, 14:17 (11 years ago) parentba7f69c
13 files changed+70−44
.gitignore+4 .gitmodules−3 CHANGELOG−8 CHANGES.md+15 GNUmakefile+14−18 LICENSE+1−1 build/nixpkgs.nix+13 build/stack.yaml+9 cassava-streams.cabal+10−8 src/System/IO/Streams/Csv/Encode.hs+1−1 src/System/IO/Streams/Csv/Tutorial.hs−1 test/test.hs+3−3 util−1
.gitignore+4
@@ -2,3 +2,7 @@
22/.cabal-sandbox
33/cabal.sandbox.config
44/test/massive.csv
5+/.stack-work
6+/build/.stack-work
7+/default.nix
8+/stack.yaml
.gitmodules−3
@@ -1,3 +0,0 @@
1−[submodule "util"]
2− path = util
3− url = git://pmade.com/haskell-util
CHANGELOGdeleted−8
@@ -1,8 +0,0 @@
1−2014-11-11 Peter Jones <pjones@devalot.com>
2−
3− * System/IO/Streams/Csv/Decode.hs added more descriptive error messages.
4− * cassava-streams bumped version number (0.1.1.0).
5−
6−2014-04-30 Peter Jones <pjones@devalot.com>
7−
8− * cassava-streams initial release (version 0.1.0.0).
CHANGES.mdnew file+15
@@ -0,0 +1,15 @@
1+# Change Log / Release Notes
2+
3+## 0.2.0.0 (February 8, 2016)
4+
5+ * Compile with GHC 7.10.3
6+ * Update dependency versions
7+ * Build with stack and LTS Haskell 5.2
8+
9+## 0.1.1.0 (November 11, 2014)
10+
11+ * `System/IO/Streams/Csv/Decode.hs` added more descriptive error messages.
12+
13+## 0.1.0.0 (April 30, 2014)
14+
15+ * cassava-streams initial release
GNUmakefile+14−18
@@ -1,27 +1,23 @@
11################################################################################
2−# From util/haskell.mk (git submodule update --init)
3−CABAL_FLAGS = --enable-tests -fmaintainer -ftutorial
4−include util/haskell.mk
2+export TMPDIR = $(HOME)/tmp
53
64################################################################################
7−CSV_HEADER = test/header.csv
8−CSV_MEGA = test/massive.csv
9−TUTORIAL = dist/build/tutorial/tutorial todo
10−PROF_OPTS = +RTS -sstderr -hc -pa -xc
5+TMP_DUMMY = $(TMPDIR)/.dummy
6+STACK_OPTS = --stack-yaml=build/stack.yaml
117
128################################################################################
13−clean::
14− rm -f $(CSV_MEGA)
15− rm -f $(foreach e,aux hp pdf prof ps,tutorial.$(e))
9+.PHONY: all test clean
1610
1711################################################################################
18−profile:: $(CSV_MEGA)
19− $(TUTORIAL) $(PROF_OPTS) < $(CSV_MEGA) > profile.stdout
20− hp2ps -M -b -c tutorial.hp
21− ps2pdf tutorial.ps
12+all: $(TMP_DUMMY)
13+ stack $(STACK_OPTS) setup
14+ stack $(STACK_OPTS) build
15+ hlint src test
2216
2317################################################################################
24−# Generate a very large CSV file for profiling.
25−$(CSV_MEGA): $(CSV_HEADER)
26− sh test/make-huge-csv.sh $@ $(CSV_HEADER)
27− du -h $@
18+test:
19+ stack $(STACK_OPTS) test
20+
21+################################################################################
22+clean:
23+ stack $(STACK_OPTS) clean
LICENSE+1−1
@@ -1,4 +1,4 @@
1−Copyright (c) 2014 Peter Jones <pjones@devalot.com>
1+Copyright (c) 2014-2016 Peter Jones <pjones@devalot.com>
22
33All rights reserved.
44
build/nixpkgs.nixnew file+13
@@ -0,0 +1,13 @@
1+with (import <nixpkgs> {});
2+
3+stdenv.mkDerivation {
4+ name = "cassava-streams";
5+
6+ buildInputs = [
7+ # GHC:
8+ haskell.packages.lts-4_2.ghc
9+
10+ # Non-Haskell Dependencies:
11+ zlib
12+ ];
13+}
build/stack.yamlnew file+9
@@ -0,0 +1,9 @@
1+resolver: lts-5.2
2+
3+packages:
4+ - ../
5+
6+flags:
7+ cassava-streams:
8+ maintainer: true
9+ tutorial: true
cassava-streams.cabal+10−8
@@ -1,16 +1,16 @@
11--------------------------------------------------------------------------------
22name: cassava-streams
3−version: 0.1.1.0
3+version: 0.2.0.0
44synopsis: io-streams interface for the cassava CSV library.
55license: BSD3
66license-file: LICENSE
77author: Peter Jones <pjones@devalot.com>
88maintainer: Peter Jones <pjones@devalot.com>
9−copyright: Copyright (c) 2014 Peter Jones
9+copyright: Copyright (c) 2014-2016 Peter Jones
1010category: Data, Text, CSV, IO-Streams
1111build-type: Simple
12−cabal-version: >=1.10
13−tested-with: GHC==7.8.2, GHC==7.8.3
12+cabal-version: >=1.18
13+tested-with: GHC==7.10.3
1414homepage: https://github.com/pjones/cassava-streams
1515bug-reports: https://github.com/pjones/cassava-streams/issues
1616description:
@@ -22,8 +22,10 @@ description:
2222--------------------------------------------------------------------------------
2323extra-source-files:
2424 README.md
25− CHANGELOG
26− test/simple.csv
25+ CHANGES.md
26+ test/*.csv
27+ build/*.yaml
28+ build/*.nix
2729
2830--------------------------------------------------------------------------------
2931source-repository head
@@ -61,8 +63,8 @@ library
6163 build-depends: base >= 4.6 && < 5.0
6264 , bytestring >= 0.10 && < 0.11
6365 , cassava >= 0.4 && < 0.5
64− , io-streams >= 1.1 && < 1.2
65− , vector >= 0.10 && < 0.11
66+ , io-streams >= 1.1 && < 1.4
67+ , vector >= 0.10 && < 0.12
6668
6769--------------------------------------------------------------------------------
6870executable tutorial
src/System/IO/Streams/Csv/Encode.hs+1−1
@@ -75,7 +75,7 @@ encodeStreamByNameWith :: ToNamedRecord a
7575 -> IO (OutputStream a) -- ^ New @OutputStream@.
7676encodeStreamByNameWith opts hdr output = do
7777 ref <- newIORef opts
78− makeOutputStream $ dispatch (\opts' -> encodeByNameWith opts' hdr) ref output
78+ makeOutputStream $ dispatch (`encodeByNameWith` hdr) ref output
7979
8080--------------------------------------------------------------------------------
8181-- | Encode records, ensuring that the header is written no more than once.
src/System/IO/Streams/Csv/Tutorial.hs−1
@@ -30,7 +30,6 @@ module System.IO.Streams.Csv.Tutorial
3030 ) where
3131
3232--------------------------------------------------------------------------------
33−import Control.Applicative
3433import Control.Monad
3534import Data.Csv
3635import qualified Data.Vector as V
test/test.hs+3−3
@@ -19,7 +19,7 @@ module Main (main) where
1919import Control.Monad
2020import Data.ByteString (ByteString)
2121import qualified Data.ByteString as BS
22−import Data.Csv hiding (Record, NamedRecord, record)
22+import Data.Csv hiding (Record, NamedRecord, record, header)
2323import qualified Data.Vector as V
2424import System.IO.Streams (InputStream, OutputStream)
2525import qualified System.IO.Streams as Streams
@@ -96,8 +96,8 @@ prop_indexedRoundTrip recsIn = not (null recsIn) ==> monadicIO $ do
9696--------------------------------------------------------------------------------
9797tests :: TestTree
9898tests = testGroup "Tests"
99− [ QC.testProperty "namedRoundTrip" $ prop_namedRoundTrip
100− , QC.testProperty "indexedRoundTrip" $ prop_indexedRoundTrip
99+ [ QC.testProperty "namedRoundTrip" prop_namedRoundTrip
100+ , QC.testProperty "indexedRoundTrip" prop_indexedRoundTrip
101101 ]
102102
103103--------------------------------------------------------------------------------
utildeleted−1

Submodule changed.