Hello community,
here is the log from the commit of package ghc-conduit-combinators for
openSUSE:Factory checked in at 2016-10-24 14:44:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-conduit-combinators (Old)
and /work/SRC/openSUSE:Factory/.ghc-conduit-combinators.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-conduit-combinators"
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-conduit-combinators/ghc-conduit-combinators.changes
2016-07-21 08:11:23.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-conduit-combinators.new/ghc-conduit-combinators.changes
2016-10-24 14:44:32.000000000 +0200
@@ -1,0 +2,15 @@
+Sat Oct 1 17:18:13 UTC 2016 - [email protected]
+
+- Update to version 1.0.8 with cabal2obs.
+
+-------------------------------------------------------------------
+Mon Sep 26 06:52:07 UTC 2016 - [email protected]
+
+- Update to version 1.0.7 with cabal2obs.
+
+-------------------------------------------------------------------
+Thu Sep 15 06:35:11 UTC 2016 - [email protected]
+
+- Update to version 1.0.6 revision 0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
conduit-combinators-1.0.4.tar.gz
New:
----
conduit-combinators-1.0.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-conduit-combinators.spec ++++++
--- /var/tmp/diff_new_pack.AaZJ1U/_old 2016-10-24 14:44:33.000000000 +0200
+++ /var/tmp/diff_new_pack.AaZJ1U/_new 2016-10-24 14:44:33.000000000 +0200
@@ -19,15 +19,14 @@
%global pkg_name conduit-combinators
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.0.4
+Version: 1.0.8
Release: 0
Summary: Commonly used conduit functions, for both chunked and
unchunked data
License: MIT
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0:
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-base16-bytestring-devel
BuildRequires: ghc-base64-bytestring-devel
BuildRequires: ghc-bytestring-devel
@@ -58,7 +57,6 @@
BuildRequires: ghc-safe-devel
BuildRequires: ghc-silently-devel
%endif
-# End cabal-rpm deps
%description
Provides a replacement for Data.Conduit.List, as well as a convenient Conduit
@@ -79,20 +77,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ conduit-combinators-1.0.4.tar.gz -> conduit-combinators-1.0.8.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/conduit-combinators-1.0.4/ChangeLog.md
new/conduit-combinators-1.0.8/ChangeLog.md
--- old/conduit-combinators-1.0.4/ChangeLog.md 2016-07-04 18:48:05.000000000
+0200
+++ new/conduit-combinators-1.0.8/ChangeLog.md 2016-09-27 13:52:55.000000000
+0200
@@ -1,3 +1,20 @@
+# 1.0.8
+
+* Add lower bound on conduit 1.2.8 (make it easier to follow [the
+ reskin](http://www.snoyman.com/blog/2016/09/proposed-conduit-reskin).
+
+# 1.0.7
+
+* Add `sourceFileBS` and `sinkFileBS`
+
+# 1.0.6
+
+* Add `peekForeverE` combinator
+
+# 1.0.5
+
+* Add head, headDef and lastDef combinators
+
# 1.0.4
* Move into mono-traversable repo, support mono-traversable 1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/conduit-combinators-1.0.4/Data/Conduit/Combinators/Unqualified.hs
new/conduit-combinators-1.0.8/Data/Conduit/Combinators/Unqualified.hs
--- old/conduit-combinators-1.0.4/Data/Conduit/Combinators/Unqualified.hs
2016-07-04 18:48:05.000000000 +0200
+++ new/conduit-combinators-1.0.8/Data/Conduit/Combinators/Unqualified.hs
2016-09-27 13:52:55.000000000 +0200
@@ -25,6 +25,7 @@
-- *** I\/O
, sourceFile
+ , CC.sourceFileBS
, sourceHandle
, sourceIOHandle
, stdinC
@@ -75,10 +76,13 @@
, sinkLazyBuilder
, sinkNull
, awaitNonNull
+ , headC
+ , headDefC
, headCE
, peekC
, peekCE
, lastC
+ , lastDefC
, lastCE
, lengthC
, lengthCE
@@ -106,6 +110,7 @@
-- *** I\/O
, sinkFile
+ , CC.sinkFileBS
, sinkHandle
, sinkIOHandle
, printC
@@ -171,6 +176,7 @@
, vectorBuilderC
, CC.mapAccumS
, CC.peekForever
+ , CC.peekForeverE
) where
-- BEGIN IMPORTS
@@ -183,6 +189,8 @@
import qualified Data.Traversable
#if ! MIN_VERSION_base(4,8,0)
import Control.Applicative ((<$>))
+#else
+import Prelude ((<$>))
#endif
import Control.Monad.Base (MonadBase (..))
import Control.Monad.IO.Class (MonadIO (..))
@@ -191,6 +199,7 @@
import Data.Conduit
import qualified Data.Conduit.List as CL
import Data.IOData
+import Data.Maybe (fromMaybe)
import Data.Monoid (Monoid (..))
import Data.MonoTraversable
import qualified Data.Sequences as Seq
@@ -777,6 +786,18 @@
awaitNonNull = CC.awaitNonNull
{-# INLINE awaitNonNull #-}
+-- | Take a single value from the stream, if available.
+--
+-- Since 1.0.5
+headC :: Monad m => Consumer a m (Maybe a)
+headC = CC.head
+
+-- | Same as 'headC', but returns a default value if none are available from
the stream.
+--
+-- Since 1.0.5
+headDefC :: Monad m => a -> Consumer a m a
+headDefC = CC.headDef
+
-- | Get the next element in the chunked stream.
--
-- Since 1.0.0
@@ -805,6 +826,12 @@
lastC = CC.last
{-# INLINE lastC #-}
+-- | Same as 'lastC', but returns a default value if none are available from
the stream.
+--
+-- Since 1.0.5
+lastDefC :: Monad m => a -> Consumer a m a
+lastDefC = CC.lastDef
+
-- | Retrieve the last element in the chunked stream, if present.
--
-- Since 1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/conduit-combinators-1.0.4/Data/Conduit/Combinators.hs
new/conduit-combinators-1.0.8/Data/Conduit/Combinators.hs
--- old/conduit-combinators-1.0.4/Data/Conduit/Combinators.hs 2016-07-04
18:48:05.000000000 +0200
+++ new/conduit-combinators-1.0.8/Data/Conduit/Combinators.hs 2016-09-27
13:52:55.000000000 +0200
@@ -38,6 +38,7 @@
-- ** I\/O
, sourceFile
+ , sourceFileBS
, sourceHandle
, sourceIOHandle
, stdin
@@ -89,10 +90,13 @@
, sinkLazyBuilder
, sinkNull
, awaitNonNull
+ , head
+ , headDef
, headE
, peek
, peekE
, last
+ , lastDef
, lastE
, length
, lengthE
@@ -120,6 +124,7 @@
-- ** I\/O
, sinkFile
+ , sinkFileBS
, sinkHandle
, sinkIOHandle
, print
@@ -187,6 +192,7 @@
, vectorBuilder
, mapAccumS
, peekForever
+ , peekForeverE
) where
-- BEGIN IMPORTS
@@ -212,7 +218,7 @@
import Data.Conduit.Internal (ConduitM (..), Pipe (..))
import qualified Data.Conduit.List as CL
import Data.IOData
-import Data.Maybe (isNothing, isJust)
+import Data.Maybe (fromMaybe, isNothing, isJust)
import Data.Monoid (Monoid (..))
import Data.MonoTraversable
import qualified Data.Sequences as Seq
@@ -419,6 +425,14 @@
sourceFile fp = sourceIOHandle (SIO.openFile fp SIO.ReadMode)
{-# INLINE sourceFile #-}
+-- | 'sourceFile' specialized to 'ByteString' to help with type
+-- inference.
+--
+-- @since 1.0.7
+sourceFileBS :: MonadResource m => FilePath -> Producer m ByteString
+sourceFileBS = sourceFile
+{-# INLINE sourceFileBS #-}
+
-- | Read all data from the given @Handle@.
--
-- Does not close the @Handle@ at any point.
@@ -1029,6 +1043,18 @@
go' = maybe go (return . Just) . NonNull.fromNullable
{-# INLINE awaitNonNull #-}
+-- | Take a single value from the stream, if available.
+--
+-- Since 1.0.5
+head :: Monad m => Consumer a m (Maybe a)
+head = CL.head
+
+-- | Same as 'head', but returns a default value if none are available from
the stream.
+--
+-- Since 1.0.5
+headDef :: Monad m => a -> Consumer a m a
+headDef a = fromMaybe a <$> head
+
-- | Get the next element in the chunked stream.
--
-- Since 1.0.0
@@ -1080,6 +1106,12 @@
loop prev = await >>= maybe (return $ Just prev) loop
STREAMING0(last, lastC, lastS)
+-- | Same as 'last', but returns a default value if none are available from
the stream.
+--
+-- Since 1.0.5
+lastDef :: Monad m => a -> Consumer a m a
+lastDef a = fromMaybe a <$> last
+
-- | Retrieve the last element in the chunked stream, if present.
--
-- Subject to fusion
@@ -1300,6 +1332,14 @@
sinkFile fp = sinkIOHandle (SIO.openFile fp SIO.WriteMode)
{-# INLINE sinkFile #-}
+-- | 'sinkFile' specialized to 'ByteString' to help with type
+-- inference.
+--
+-- @since 1.0.7
+sinkFileBS :: MonadResource m => FilePath -> Consumer ByteString m ()
+sinkFileBS = sinkFile
+{-# INLINE sinkFileBS #-}
+
-- | Print all incoming values to stdout.
--
-- Subject to fusion
@@ -2130,3 +2170,24 @@
case mx of
Nothing -> return ()
Just _ -> inner >> loop
+
+-- | Run a consuming conduit repeatedly, only stopping when there is no more
+-- data available from upstream.
+--
+-- In contrast to 'peekForever', this function will ignore empty
+-- chunks of data. So for example, if a stream of data contains an
+-- empty @ByteString@, it is still treated as empty, and the consuming
+-- function is not called.
+--
+-- @since 1.0.6
+peekForeverE :: (Monad m, MonoFoldable i)
+ => ConduitM i o m ()
+ -> ConduitM i o m ()
+peekForeverE inner =
+ loop
+ where
+ loop = do
+ mx <- peekE
+ case mx of
+ Nothing -> return ()
+ Just _ -> inner >> loop
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/conduit-combinators-1.0.4/conduit-combinators.cabal
new/conduit-combinators-1.0.8/conduit-combinators.cabal
--- old/conduit-combinators-1.0.4/conduit-combinators.cabal 2016-07-04
18:48:05.000000000 +0200
+++ new/conduit-combinators-1.0.8/conduit-combinators.cabal 2016-09-27
13:52:55.000000000 +0200
@@ -1,5 +1,5 @@
name: conduit-combinators
-version: 1.0.4
+version: 1.0.8
synopsis: Commonly used conduit functions, for both chunked and
unchunked data
description: Provides a replacement for Data.Conduit.List, as well as
a convenient Conduit module.
homepage: https://github.com/snoyberg/mono-traversable
@@ -20,7 +20,7 @@
other-modules: Data.Conduit.Combinators.Unqualified
build-depends: base >= 4 && < 5
, chunked-data
- , conduit >= 1.2.2
+ , conduit >= 1.2.8
, conduit-extra >= 1.1.1
, transformers
, transformers-base
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/conduit-combinators-1.0.4/test/Spec.hs
new/conduit-combinators-1.0.8/test/Spec.hs
--- old/conduit-combinators-1.0.4/test/Spec.hs 2016-07-04 18:48:05.000000000
+0200
+++ new/conduit-combinators-1.0.8/test/Spec.hs 2016-09-27 13:52:55.000000000
+0200
@@ -668,6 +668,10 @@
res1 <- yieldMany strs $$ linesUnboundedC =$ sinkList
res2 <- yieldMany strs $$ peekForever (lineC $ foldC >>= yield) =$
sinkList
res2 `shouldBe` res1
+ prop "peekForeverE" $ \(strs :: [String]) -> do
+ res1 <- yieldMany strs $$ linesUnboundedC =$ sinkList
+ res2 <- yieldMany strs $$ peekForeverE (lineC $ foldC >>= yield) =$
sinkList
+ res2 `shouldBe` res1
StreamSpec.spec
evenInt :: Int -> Bool