Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghc-these for openSUSE:Factory checked in at 2023-06-22 23:25:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-these (Old) and /work/SRC/openSUSE:Factory/.ghc-these.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-these" Thu Jun 22 23:25:36 2023 rev:11 rq:1094452 version:1.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-these/ghc-these.changes 2023-04-04 21:24:13.050487111 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-these.new.15902/ghc-these.changes 2023-06-22 23:26:07.833862838 +0200 @@ -1,0 +2,18 @@ +Sat May 27 09:22:59 UTC 2023 - OndÅej Súkup <mimi...@gmail.com> + +- Update these to version 1.2. + # 1.2 + + - Depend on `bifunctor-classes-compat` instead of `bifunctors` + See changelog note in `bifunctors-5.6`: https://hackage.haskell.org/package/bifunctors-5.6/changelog + This is breaking change, but affects only GHC-8.0 and older users. + In that case you should check various combinations of newer/older + `bifunctors`, `these` (and e.g. `semialign`) packages. + - Depend on `assoc-1.1`. Since version 1.1 `assoc` has an almost trivial + dependency footprint, so `these` depends on it unconditionally. + - Add `Bifoldable1 These` instance + - Add `Foldable1 (Data.Functor.These1 f g)` instance + - Change `Eq (These1 f g a)`, `Ord`, `Read`, `Show`, `NFData` instances similarly to how + they are changed for `Product` and `Sum` in `base-4.18.0.0`. + +------------------------------------------------------------------- Old: ---- these-1.1.1.1.tar.gz these.cabal New: ---- these-1.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-these.spec ++++++ --- /var/tmp/diff_new_pack.bjLbvN/_old 2023-06-22 23:26:09.241870019 +0200 +++ /var/tmp/diff_new_pack.bjLbvN/_new 2023-06-22 23:26:09.245870039 +0200 @@ -19,13 +19,12 @@ %global pkg_name these %global pkgver %{pkg_name}-%{version} Name: ghc-%{pkg_name} -Version: 1.1.1.1 +Version: 1.2 Release: 0 Summary: An either-or-both data type License: BSD-3-Clause URL: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz -Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/6.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-assoc-devel BuildRequires: ghc-assoc-prof @@ -35,6 +34,8 @@ BuildRequires: ghc-binary-prof BuildRequires: ghc-deepseq-devel BuildRequires: ghc-deepseq-prof +BuildRequires: ghc-foldable1-classes-compat-devel +BuildRequires: ghc-foldable1-classes-compat-prof BuildRequires: ghc-hashable-devel BuildRequires: ghc-hashable-prof BuildRequires: ghc-rpm-macros @@ -90,7 +91,6 @@ %prep %autosetup -n %{pkg_name}-%{version} -cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build ++++++ these-1.1.1.1.tar.gz -> these-1.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/these-1.1.1.1/CHANGELOG.md new/these-1.2/CHANGELOG.md --- old/these-1.1.1.1/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200 +++ new/these-1.2/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200 @@ -1,3 +1,17 @@ +# 1.2 + +- Depend on `bifunctor-classes-compat` instead of `bifunctors` + See changelog note in `bifunctors-5.6`: https://hackage.haskell.org/package/bifunctors-5.6/changelog + This is breaking change, but affects only GHC-8.0 and older users. + In that case you should check various combinations of newer/older + `bifunctors`, `these` (and e.g. `semialign`) packages. +- Depend on `assoc-1.1`. Since version 1.1 `assoc` has an almost trivial + dependency footprint, so `these` depends on it unconditionally. +- Add `Bifoldable1 These` instance +- Add `Foldable1 (Data.Functor.These1 f g)` instance +- Change `Eq (These1 f g a)`, `Ord`, `Read`, `Show`, `NFData` instances similarly to how + they are changed for `Product` and `Sum` in `base-4.18.0.0`. + # 1.1.1.1 - Workaround GCC-4 C-preprocessor bug diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/these-1.1.1.1/src/Data/Functor/These.hs new/these-1.2/src/Data/Functor/These.hs --- old/these-1.1.1.1/src/Data/Functor/These.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/these-1.2/src/Data/Functor/These.hs 2001-09-09 03:46:40.000000000 +0200 @@ -4,6 +4,7 @@ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} +{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE Safe #-} @@ -23,10 +24,9 @@ ) where import Data.Foldable (Foldable) -import Data.Functor.Classes - (Eq1 (..), Ord1 (..), Read1 (..), Show1 (..), compare1, eq1, readsPrec1, - showsPrec1) +import Data.Functor.Classes (Eq1 (..), Ord1 (..), Read1 (..), Show1 (..)) import Data.Monoid (Monoid (..)) +import Data.Semigroup (Semigroup (..)) import Data.Traversable (Traversable) import GHC.Generics (Generic) import Prelude @@ -34,9 +34,13 @@ Show (..), lex, readParen, return, seq, showChar, showParen, showString, ($), (&&), (.)) +import qualified Data.Foldable as F +import qualified Data.Foldable1 as F1 #if MIN_VERSION_deepseq(1,4,3) -import Control.DeepSeq (NFData (..), NFData1 (..), rnf1) +import Control.DeepSeq (NFData (..), NFData1 (..)) +#else +import Control.DeepSeq (NFData (..)) #endif #if __GLASGOW_HASKELL__ >= 706 @@ -190,10 +194,55 @@ -- Eq, Ord, Show, Read ------------------------------------------------------------------------------- -instance (Eq1 f, Eq1 g, Eq a) => Eq (These1 f g a) where (==) = eq1 -instance (Ord1 f, Ord1 g, Ord a) => Ord (These1 f g a) where compare = compare1 -instance (Show1 f, Show1 g, Show a) => Show (These1 f g a) where showsPrec = showsPrec1 -instance (Read1 f, Read1 g, Read a) => Read (These1 f g a) where readsPrec = readsPrec1 +instance (Eq (f a), Eq (g a), Eq a) => Eq (These1 f g a) where + This1 f == This1 f' = f == f' + That1 g == That1 g' = g == g' + These1 f g == These1 f' g' = f == f' && g == g' + + This1 {} == _ = False + That1 {} == _ = False + These1 {} == _ = False + +instance (Ord (f a), Ord (g a), Ord a) => Ord (These1 f g a) where + compare (This1 f) (This1 f') = compare f f' + compare (This1 _) _ = LT + compare _ (This1 _) = GT + + compare (That1 g) (That1 g') = compare g g' + compare (That1 _) _ = LT + compare _ (That1 _) = GT + + compare (These1 f g) (These1 f' g') = + compare f f' `mappend` compare g g' + +instance (Show (f a), Show (g a), Show a) => Show (These1 f g a) where + showsPrec d (This1 f) = showParen (d > 10) + $ showString "This1 " + . showsPrec 11 f + showsPrec d (That1 g) = showParen (d > 10) + $ showString "That1 " + . showsPrec 11 g + showsPrec d (These1 f g) = showParen (d > 10) + $ showString "These1 " + . showsPrec 11 f + . showChar ' ' + . showsPrec 11 g + +instance (Read (f a), Read (g a), Read a) => Read (These1 f g a) where + readsPrec d = readParen (d > 10) $ \s0 -> do + (t, s1) <- lex s0 + case t of + "This1" -> do + (x, s2) <- readsPrec 11 s1 + return (This1 x, s2) + "That1" -> do + (y, s2) <- readsPrec 11 s1 + return (That1 y, s2) + "These1" -> do + (x, s2) <- readsPrec 11 s1 + (y, s3) <- readsPrec 11 s2 + return (These1 x y, s3) + _ -> [] ------------------------------------------------------------------------------- -- deepseq @@ -205,8 +254,34 @@ liftRnf r (This1 x) = liftRnf r x liftRnf r (That1 y) = liftRnf r y liftRnf r (These1 x y) = liftRnf r x `seq` liftRnf r y - --- | This instance is available only with @deepseq >= 1.4.3.0@ -instance (NFData1 f, NFData1 g, NFData a) => NFData (These1 f g a) where - rnf = rnf1 #endif + +-- | Available always +-- +-- @since 1.2 +instance (NFData (f a), NFData (g a), NFData a) => NFData (These1 f g a) where + rnf (This1 x) = rnf x + rnf (That1 y) = rnf y + rnf (These1 x y) = rnf x `seq` rnf y + +------------------------------------------------------------------------------- +-- foldable1 +------------------------------------------------------------------------------- + +-- | @since 1.2 +instance (F1.Foldable1 f, F1.Foldable1 g) => F1.Foldable1 (These1 f g) where + foldMap1 f (This1 x) = F1.foldMap1 f x + foldMap1 f (That1 y) = F1.foldMap1 f y + foldMap1 f (These1 x y) = F1.foldMap1 f x <> F1.foldMap1 f y + + foldrMap1 f g (This1 x) = F1.foldrMap1 f g x + foldrMap1 f g (That1 y) = F1.foldrMap1 f g y + foldrMap1 f g (These1 x y) = F.foldr g (F1.foldrMap1 f g y) x + + head (This1 x) = F1.head x + head (That1 y) = F1.head y + head (These1 x _) = F1.head x + + last (This1 x) = F1.last x + last (That1 y) = F1.last y + last (These1 _ y) = F1.last y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/these-1.1.1.1/src/Data/These/Combinators.hs new/these-1.2/src/Data/These/Combinators.hs --- old/these-1.1.1.1/src/Data/These/Combinators.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/these-1.2/src/Data/These/Combinators.hs 2001-09-09 03:46:40.000000000 +0200 @@ -92,6 +92,9 @@ import Data.Bifunctor.Swap (swap) #endif +-- $setup +-- >>> import Data.These + ------------------------------------------------------------------------------- -- bifunctors ------------------------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/these-1.1.1.1/src/Data/These.hs new/these-1.2/src/Data/These.hs --- old/these-1.1.1.1/src/Data/These.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/these-1.2/src/Data/These.hs 2001-09-09 03:46:40.000000000 +0200 @@ -33,7 +33,7 @@ -- * Distributivity -- - -- | This distributivity combinators aren't isomorphisms! + -- | These distributivity combinators aren't isomorphisms! , distrThesePair , undistrThesePair , distrPairThese @@ -43,6 +43,7 @@ import Control.Applicative (Applicative (..), (<$>)) import Control.DeepSeq (NFData (..)) import Data.Bifoldable (Bifoldable (..)) +import Data.Bifoldable1 (Bifoldable1 (..)) import Data.Bifunctor (Bifunctor (..)) import Data.Binary (Binary (..)) import Data.Bitraversable (Bitraversable (..)) @@ -84,6 +85,8 @@ -- $setup -- >>> import Control.Lens +-- >>> import Data.List.NonEmpty (NonEmpty (..)) +-- >>> import Prelude (Either (..), map, ($)) -- -------------------------------------------------------------------------- -- | The 'These' type represents values with two non-exclusive possibilities. @@ -216,8 +219,6 @@ -- Instances ------------------------------------------------------------------------------- - - instance (Semigroup a, Semigroup b) => Semigroup (These a b) where This a <> This b = This (a <> b) This a <> That y = These a y @@ -254,9 +255,15 @@ instance Bifoldable These where bifold = these id id mappend + bifoldMap f g = these f g (\x y -> mappend (f x) (g y)) bifoldr f g z = these (`f` z) (`g` z) (\x y -> x `f` (y `g` z)) bifoldl f g z = these (z `f`) (z `g`) (\x y -> (z `f` x) `g` y) +-- | @since 1.2 +instance Bifoldable1 These where + bifold1 = these id id (<>) + bifoldMap1 f g = these f g (\x y -> f x <> g y) + instance Bitraversable These where bitraverse f _ (This x) = This <$> f x bitraverse _ g (That x) = That <$> g x @@ -368,7 +375,6 @@ -- assoc ------------------------------------------------------------------------------- -#ifdef MIN_VERSION_assoc -- | @since 0.8 instance Swap These where swap (This a) = That a @@ -392,7 +398,6 @@ unassoc (These a (This b)) = This (These a b) unassoc (These a (That c)) = These (This a) c unassoc (These a (These b c)) = These (These a b) c -#endif ------------------------------------------------------------------------------- -- deepseq diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/these-1.1.1.1/these.cabal new/these-1.2/these.cabal --- old/these-1.1.1.1/these.cabal 2001-09-09 03:46:40.000000000 +0200 +++ new/these-1.2/these.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,8 +1,8 @@ cabal-version: >=1.10 name: these -version: 1.1.1.1 +version: 1.2 synopsis: An either-or-both data type. -homepage: https://github.com/isomorphism/these +homepage: https://github.com/haskellari/these license: BSD3 license-file: LICENSE author: C. McCann, Oleg Grenrus @@ -39,27 +39,27 @@ || ==8.2.2 || ==8.4.4 || ==8.6.5 - || ==8.8.3 - || ==8.10.1 + || ==8.8.4 + || ==8.10.7 + || ==9.0.2 + || ==9.2.7 + || ==9.4.4 + || ==9.6.1 , GHCJS ==8.4 source-repository head type: git - location: https://github.com/isomorphism/these.git - -flag assoc - description: Build with assoc dependency - manual: True - default: True + location: https://github.com/haskellari/these.git + subdir: these library - default-language: Haskell2010 - ghc-options: -Wall + default-language: Haskell2010 + ghc-options: -Wall if impl(ghc >=8.0) ghc-options: -Wno-trustworthy-safe - hs-source-dirs: src + hs-source-dirs: src exposed-modules: Data.Functor.These Data.These @@ -67,28 +67,34 @@ -- ghc boot libs build-depends: - base >=4.5.1.0 && <4.15 + base >=4.5.1.0 && <4.19 , binary >=0.5.1.0 && <0.10 , deepseq >=1.3.0.0 && <1.5 -- other dependencies - build-depends: hashable >=1.2.7.0 && <1.4 + -- note: we need to depend on assoc-1.1 to be sure that + -- Bifunctor type class comes from bifunctor-classes-compat + build-depends: + assoc >=1.1 && <1.2 + , hashable >=1.2.7.0 && <1.5 if impl(ghc <7.5) build-depends: ghc-prim + if !impl(ghc >=9.6) + build-depends: foldable1-classes-compat >=0.1 && <0.2 + if !impl(ghc >=8.2) - build-depends: bifunctors >=5.5.4 && <5.6 + build-depends: bifunctor-classes-compat >=0.1 && <0.2 if !impl(ghc >=8.0) build-depends: - semigroups >=0.18.5 && <0.20 - , transformers >=0.3.0.0 && <0.6 - , transformers-compat >=0.6.5 && <0.7 + semigroups >=0.18.5 && <0.21 + , transformers >=0.3.0.0 && <0.7 + , transformers-compat >=0.6.5 && <0.8 -- Ensure Data.Functor.Classes is always available if impl(ghc >=7.10) build-depends: transformers >=0.4.2.0 - if flag(assoc) - build-depends: assoc >=1 && <1.1 + x-docspec-extra-packages: lens