Hello community,

here is the log from the commit of package ghc-MusicBrainz for openSUSE:Factory 
checked in at 2017-08-31 20:46:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-MusicBrainz (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-MusicBrainz.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-MusicBrainz"

Thu Aug 31 20:46:02 2017 rev:3 rq:513193 version:0.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-MusicBrainz/ghc-MusicBrainz.changes  
2017-06-04 01:56:55.396830986 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-MusicBrainz.new/ghc-MusicBrainz.changes     
2017-08-31 20:46:03.943019486 +0200
@@ -1,0 +2,5 @@
+Thu Jul 27 14:07:54 UTC 2017 - psim...@suse.com
+
+- Update to version 0.3 revision 1.
+
+-------------------------------------------------------------------

Old:
----
  MusicBrainz-0.2.4.tar.gz

New:
----
  MusicBrainz-0.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-MusicBrainz.spec ++++++
--- /var/tmp/diff_new_pack.vFdcgc/_old  2017-08-31 20:46:04.922881949 +0200
+++ /var/tmp/diff_new_pack.vFdcgc/_new  2017-08-31 20:46:04.934880265 +0200
@@ -18,7 +18,7 @@
 
 %global pkg_name MusicBrainz
 Name:           ghc-%{pkg_name}
-Version:        0.2.4
+Version:        0.3
 Release:        0
 Summary:        Interface to MusicBrainz XML2 web service
 License:        GPL-3.0+

++++++ MusicBrainz-0.2.4.tar.gz -> MusicBrainz-0.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MusicBrainz-0.2.4/MusicBrainz.cabal 
new/MusicBrainz-0.3/MusicBrainz.cabal
--- old/MusicBrainz-0.2.4/MusicBrainz.cabal     2015-05-08 13:49:53.000000000 
+0200
+++ new/MusicBrainz-0.3/MusicBrainz.cabal       2017-05-21 16:09:59.000000000 
+0200
@@ -1,5 +1,5 @@
 name:                MusicBrainz
-version:             0.2.4
+version:             0.3
 synopsis:            interface to MusicBrainz XML2 web service
 description:         interface to MusicBrainz XML2 web service
 homepage:            http://floss.scru.org/hMusicBrainz
@@ -7,7 +7,7 @@
 license-file:        LICENSE
 author:              Clint Adams
 maintainer:          cl...@debian.org
-copyright:           2012-2015 Clint Adams
+copyright:           2012-2017 Clint Adams
 category:            Network
 build-type:          Simple
 cabal-version:       >=1.8
@@ -32,17 +32,17 @@
                , xml-types     >= 0.3
                , http-conduit  >= 1.8.8
                , http-types    >= 0.6
-               , xml-conduit   >= 1.1
+               , xml-conduit   >= 1.5
                , HTTP          >= 4000.0
                , aeson         >= 0.6.1
   ghc-options: -Wall
 
 source-repository head
   type:     git
-  location: git://anonscm.debian.org/users/clint/MusicBrainz.git
+  location: https://anonscm.debian.org/git/users/clint/MusicBrainz.git
   branch:   master
 
 source-repository this
   type:     git
-  location: git://anonscm.debian.org/users/clint/MusicBrainz.git
-  tag:      hMB/0.2.4
+  location: https://anonscm.debian.org/git/users/clint/MusicBrainz.git
+  tag:      hMB/0.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/MusicBrainz-0.2.4/Network/Protocol/MusicBrainz/JSON/WebService.hs 
new/MusicBrainz-0.3/Network/Protocol/MusicBrainz/JSON/WebService.hs
--- old/MusicBrainz-0.2.4/Network/Protocol/MusicBrainz/JSON/WebService.hs       
2015-05-08 13:49:53.000000000 +0200
+++ new/MusicBrainz-0.3/Network/Protocol/MusicBrainz/JSON/WebService.hs 
2017-05-21 16:09:59.000000000 +0200
@@ -9,7 +9,6 @@
 import Network.Protocol.MusicBrainz.Types
 
 import Control.Monad.IO.Class (MonadIO)
-import Control.Monad.Trans.Control (MonadBaseControl)
 import Data.Aeson (eitherDecode)
 import qualified Data.ByteString.Lazy as BL
 import Data.List (intercalate)
@@ -24,8 +23,8 @@
     simpleHttp url
     where
         incs [] = ""
-       incs xs = ("?inc="++) . intercalate "+" . map T.unpack $ xs
-       fj = "&fmt=json"
+        incs xs = ("?inc="++) . intercalate "+" . map T.unpack $ xs
+        fj = "&fmt=json"
 
 musicBrainzWSSearch :: MonadIO m => Text -> Text -> Maybe Int -> Maybe Int -> 
m BL.ByteString
 musicBrainzWSSearch reqtype query mlimit moffset = do
@@ -33,22 +32,22 @@
     simpleHttp url
     where
         limit Nothing = ""
-       limit (Just l) = "&limit=" ++ show l
+        limit (Just l) = "&limit=" ++ show l
         offset Nothing = ""
-       offset (Just o) = "&offset=" ++ show o
-       fj = "&fmt=json"
+        offset (Just o) = "&offset=" ++ show o
+        fj = "&fmt=json"
 
-getRecordingById :: (MonadBaseControl IO m, MonadIO m) => MBID -> m (Either 
String Recording)
+getRecordingById :: MonadIO m => MBID -> m (Either String Recording)
 getRecordingById mbid = do
     lbs <- musicBrainzWSLookup "recording" (unMBID mbid) ["artist-credits"]
     return $ eitherDecode lbs
 
-getReleaseById :: (MonadBaseControl IO m, MonadIO m) => MBID -> m (Either 
String Release)
+getReleaseById :: MonadIO m => MBID -> m (Either String Release)
 getReleaseById mbid = do
     lbs <- musicBrainzWSLookup "release" (unMBID mbid) ["recordings", 
"artist-credits"]
     return $ eitherDecode lbs
 
-searchReleasesByArtistAndRelease :: (MonadIO m, MonadBaseControl IO m)  => 
Text -> Text -> Maybe Int -> Maybe Int -> m (Either String [(Int, Release)])
+searchReleasesByArtistAndRelease :: MonadIO m => Text -> Text -> Maybe Int -> 
Maybe Int -> m (Either String [(Int, Release)])
 searchReleasesByArtistAndRelease artist release mlimit moffset = do
     lbs <- musicBrainzWSSearch "release" (T.concat ["artist:\"", artist, "\" 
AND release:\"", release, "\""]) mlimit moffset
     return $ eitherDecode lbs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/MusicBrainz-0.2.4/Network/Protocol/MusicBrainz/Types.hs 
new/MusicBrainz-0.3/Network/Protocol/MusicBrainz/Types.hs
--- old/MusicBrainz-0.2.4/Network/Protocol/MusicBrainz/Types.hs 2015-05-08 
13:49:53.000000000 +0200
+++ new/MusicBrainz-0.3/Network/Protocol/MusicBrainz/Types.hs   2017-05-21 
16:09:59.000000000 +0200
@@ -27,7 +27,7 @@
 import Data.Aeson (FromJSON(..), (.:), (.:?), Value(..))
 import Data.Maybe (fromMaybe)
 import qualified Data.Text as T
-import Data.Time.Format (parseTime)
+import Data.Time.Format (parseTimeM)
 import Data.Time.Locale.Compat (defaultTimeLocale)
 
 newtype MBID = MBID { unMBID :: Text }
@@ -53,19 +53,19 @@
 instance FromJSON Release where
     parseJSON (Object v) = Release <$>
                                  (MBID <$> v .: "id") <*>
-                                v .: "title" <*>
-                                v .:? "status" <*>
-                                v .:? "quality" <*>
-                                v .:? "packaging" <*>
-                                v .:? "text-representation" <*>
-                                v .: "artist-credit" <*>
-                                ((parseTime defaultTimeLocale "%Y-%m-%d" . 
T.unpack =<<) <$> v .:? "date") <*>
-                                v .:? "country" <*>
-                                v .: "release-events" <*>
-                                v .:? "barcode" <*>
-                                v .:? "asin" <*>
-                                v .:? "cover-art-archive" <*>
-                                v .: "media"
+                                 v .: "title" <*>
+                                 v .:? "status" <*>
+                                 v .:? "quality" <*>
+                                 v .:? "packaging" <*>
+                                 v .:? "text-representation" <*>
+                                 v .: "artist-credit" <*>
+                                 ((parseTimeM True defaultTimeLocale 
"%Y-%m-%d" . T.unpack =<<) <$> v .:? "date") <*>
+                                 v .:? "country" <*>
+                                 v .: "release-events" <*>
+                                 v .:? "barcode" <*>
+                                 v .:? "asin" <*>
+                                 v .:? "cover-art-archive" <*>
+                                 v .: "media"
     parseJSON _          = mzero
 
 data TextRepresentation = TextRepresentation {
@@ -75,8 +75,8 @@
 
 instance FromJSON TextRepresentation where
     parseJSON (Object v) = TextRepresentation <$>
-                                v .:? "language" <*>
-                                v .:? "script"
+                                 v .:? "language" <*>
+                                 v .:? "script"
     parseJSON _          = mzero
 
 data Medium = Medium {
@@ -90,12 +90,12 @@
 
 instance FromJSON Medium where
     parseJSON (Object v) = Medium <$>
-                                v .:? "title" <*>
-                                v .:? "position" <*>
-                                v .:? "format" <*>
-                                v .:  "track-count" <*>
-                                v .:? "track-offset" <*>
-                                v .:? "tracks"
+                                 v .:? "title" <*>
+                                 v .:? "position" <*>
+                                 v .:? "format" <*>
+                                 v .:  "track-count" <*>
+                                 v .:? "track-offset" <*>
+                                 v .:? "tracks"
     parseJSON _          = mzero
 
 data Track = Track {
@@ -109,12 +109,12 @@
 
 instance FromJSON Track where
     parseJSON (Object v) = Track <$>
-                                (MBID <$> v .: "id") <*>
-                                v .: "artist-credit" <*>
-                                v .:? "position" <*>
-                                v .:? "number" <*>
-                                v .:? "length" <*>
-                                v .: "recording"
+                                 (MBID <$> v .: "id") <*>
+                                 v .: "artist-credit" <*>
+                                 v .:? "position" <*>
+                                 v .:? "number" <*>
+                                 v .:? "length" <*>
+                                 v .: "recording"
     parseJSON _          = mzero
 
 data Recording = Recording {
@@ -126,10 +126,10 @@
 
 instance FromJSON Recording where
     parseJSON (Object v) = Recording <$>
-                                (MBID <$> v .: "id") <*>
-                                v .:? "title" <*>
-                                v .:? "length" <*>
-                                v .: "artist-credit"
+                                 (MBID <$> v .: "id") <*>
+                                 v .:? "title" <*>
+                                 v .:? "length" <*>
+                                 v .: "artist-credit"
     parseJSON _          = mzero
 
 data ArtistCredit = ArtistCredit {
@@ -140,9 +140,9 @@
 
 instance FromJSON ArtistCredit where
     parseJSON (Object v) = ArtistCredit <$>
-                                v .: "artist" <*>
-                                v .:? "joinphrase" <*>
-                                v .:? "name"
+                                 v .: "artist" <*>
+                                 v .:? "joinphrase" <*>
+                                 v .:? "name"
     parseJSON _          = mzero
 
 data Artist = Artist {
@@ -154,10 +154,10 @@
 
 instance FromJSON Artist where
     parseJSON (Object v) = Artist <$>
-                                (MBID <$> v .: "id") <*>
-                                v .:? "name" <*>
-                                v .:? "sort-name" <*>
-                                v .:? "disambiguation"
+                                 (MBID <$> v .: "id") <*>
+                                 v .:? "name" <*>
+                                 v .:? "sort-name" <*>
+                                 v .:? "disambiguation"
     parseJSON _          = mzero
 
 data ReleaseGroup = ReleaseGroup {
@@ -188,8 +188,8 @@
 
 instance FromJSON ReleaseEvent where
     parseJSON (Object v) = ReleaseEvent <$>
-                                ((parseTime defaultTimeLocale "%Y-%m-%d" . 
T.unpack =<<) <$> v .:? "date") <*>
-                                v .:? "area"
+                                 ((parseTimeM True defaultTimeLocale 
"%Y-%m-%d" . T.unpack =<<) <$> v .:? "date") <*>
+                                 v .:? "area"
     parseJSON _          = mzero
 
 data Area = Area {
@@ -203,12 +203,12 @@
 
 instance FromJSON Area where
     parseJSON (Object v) = Area <$>
-                                (MBID <$> v .: "id") <*>
-                                v .:? "name" <*>
-                                v .:? "sort-name" <*>
-                                (fromMaybe [] <$> v .:? "iso_3166_1_codes") <*>
-                                (fromMaybe [] <$> v .:? "iso_3166_2_codes") <*>
-                                (fromMaybe [] <$> v .:? "iso_3166_3_codes")
+                                 (MBID <$> v .: "id") <*>
+                                 v .:? "name" <*>
+                                 v .:? "sort-name" <*>
+                                 (fromMaybe [] <$> v .:? "iso_3166_1_codes") 
<*>
+                                 (fromMaybe [] <$> v .:? "iso_3166_2_codes") 
<*>
+                                 (fromMaybe [] <$> v .:? "iso_3166_3_codes")
     parseJSON _          = mzero
 
 data CoverArtArchive = CoverArtArchive {
@@ -220,10 +220,10 @@
 
 instance FromJSON CoverArtArchive where
     parseJSON (Object v) = CoverArtArchive <$>
-                                v .:? "artwork" <*>
-                                v .:? "count" <*>
-                                v .:? "front" <*>
-                                v .:? "back"
+                                 v .:? "artwork" <*>
+                                 v .:? "count" <*>
+                                 v .:? "front" <*>
+                                 v .:? "back"
     parseJSON _          = mzero
 
 newtype ISO3166Code = ISO3166Code { unISO3166Code :: Text }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/MusicBrainz-0.2.4/Network/Protocol/MusicBrainz/XML2/WebService.hs 
new/MusicBrainz-0.3/Network/Protocol/MusicBrainz/XML2/WebService.hs
--- old/MusicBrainz-0.2.4/Network/Protocol/MusicBrainz/XML2/WebService.hs       
2015-05-08 13:49:53.000000000 +0200
+++ new/MusicBrainz-0.3/Network/Protocol/MusicBrainz/XML2/WebService.hs 
2017-05-21 16:09:59.000000000 +0200
@@ -20,13 +20,13 @@
 import Data.Text (Text)
 import qualified Data.Text as T
 import qualified Data.Text.Read as TR
-import Data.Time.Format (parseTime)
+import Data.Time.Format (parseTimeM)
 import qualified Data.Vector as V
 import Data.XML.Types (Event)
 import Network.HTTP.Base (urlEncode)
 import Network.HTTP.Conduit (simpleHttp)
 import Data.Time.Locale.Compat (defaultTimeLocale)
-import Text.XML.Stream.Parse (parseBytes, def, content, tagNoAttr, tagName, 
requireAttr, optionalAttr, force, many, AttrParser)
+import Text.XML.Stream.Parse (parseBytes, def, content, tagNoAttr, tag', 
requireAttr, attr, force, many, AttrParser)
 import Text.XML (Name(..))
 
 musicBrainzWSLookup :: MonadIO m => Text -> Text -> [Text] -> m BL.ByteString
@@ -35,7 +35,7 @@
     simpleHttp url
     where
         incs [] = ""
-       incs xs = ("?inc="++) . intercalate "+" . map T.unpack $ xs
+        incs xs = ("?inc="++) . intercalate "+" . map T.unpack $ xs
 
 musicBrainzWSSearch :: MonadIO m => Text -> Text -> Maybe Int -> Maybe Int -> 
m BL.ByteString
 musicBrainzWSSearch reqtype query mlimit moffset = do
@@ -43,9 +43,9 @@
     simpleHttp url
     where
         limit Nothing = ""
-       limit (Just l) = "&limit=" ++ show l
+        limit (Just l) = "&limit=" ++ show l
         offset Nothing = ""
-       offset (Just o) = "&offset=" ++ show o
+        offset (Just o) = "&offset=" ++ show o
 
 getRecordingById :: (MonadBaseControl IO m, MonadIO m, MonadThrow m) => MBID 
-> m Recording
 getRecordingById mbid = do
@@ -66,18 +66,18 @@
 sinkReleases = force "metadata required" (tagNoAttr 
"{http://musicbrainz.org/ns/mmd-2.0#}metadata"; $ many (fmap (fmap snd) 
parseRelease))
 
 sinkReleaseList :: MonadThrow m => Consumer Event m [(Int, Release)]
-sinkReleaseList = force "metadata required" (tagName 
"{http://musicbrainz.org/ns/mmd-2.0#}metadata"; (optionalAttr "created") $ \_ ->
-    force "release-list required" (tagName 
"{http://musicbrainz.org/ns/mmd-2.0#}release-list"; (liftA2 (,) (requireAttr 
"count") (requireAttr "offset")) $ \_ -> many parseRelease))
+sinkReleaseList = force "metadata required" (tag' 
"{http://musicbrainz.org/ns/mmd-2.0#}metadata"; (attr "created") $ \_ ->
+    force "release-list required" (tag' 
"{http://musicbrainz.org/ns/mmd-2.0#}release-list"; (liftA2 (,) (requireAttr 
"count") (requireAttr "offset")) $ \_ -> many parseRelease))
 
 parseRecording :: MonadThrow m => Consumer Event m (Maybe Recording)
-parseRecording = tagName "{http://musicbrainz.org/ns/mmd-2.0#}recording"; 
(requireAttr "id") $ \rid -> do
+parseRecording = tag' "{http://musicbrainz.org/ns/mmd-2.0#}recording"; 
(requireAttr "id") $ \rid -> do
     title <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}title"; content
     len <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}length"; content
     ncs <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}artist-credit"; $ 
many parseArtistCredit
     return Recording { _recordingId = MBID rid, _recordingTitle = title, 
_recordingLength = fmap forceReadDec len, _recordingArtistCredit = fromMaybe [] 
ncs }
 
 parseArtistCredit :: MonadThrow m => Consumer Event m (Maybe ArtistCredit)
-parseArtistCredit = tagName "{http://musicbrainz.org/ns/mmd-2.0#}name-credit"; 
(buggyJoinPhrase) $ \mjp -> force "artist required" (tagName 
"{http://musicbrainz.org/ns/mmd-2.0#}artist"; (requireAttr "id") $ \aid -> do
+parseArtistCredit = tag' "{http://musicbrainz.org/ns/mmd-2.0#}name-credit"; 
(buggyJoinPhrase) $ \mjp -> force "artist required" (tag' 
"{http://musicbrainz.org/ns/mmd-2.0#}artist"; (requireAttr "id") $ \aid -> do
     name <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}name"; content
     sortName <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}sort-name"; 
content
     _ <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}disambiguation"; content
@@ -88,13 +88,13 @@
 -- what's up with this
 buggyJoinPhrase :: AttrParser (Maybe Text)
 buggyJoinPhrase = fmap Just (requireAttr 
"{http://musicbrainz.org/ns/mmd-2.0#}joinphrase";)
-    <|> optionalAttr "{http://musicbrainz.org/ns/mmd-2.0#}joinphrase"; { 
nameNamespace = Nothing }
+    <|> attr "{http://musicbrainz.org/ns/mmd-2.0#}joinphrase"; { nameNamespace 
= Nothing }
 
 forceReadDec :: Integral a => Text -> a
 forceReadDec = (\(Right (d, _)) -> d) . TR.decimal
 
 parseRelease :: MonadThrow m => Consumer Event m (Maybe (Int, Release))
-parseRelease = tagName "{http://musicbrainz.org/ns/mmd-2.0#}release"; (liftA2 
(,) (requireAttr "id") (optionalAttr 
"{http://musicbrainz.org/ns/ext#-2.0}score";)) $ \(rid,score) -> do
+parseRelease = tag' "{http://musicbrainz.org/ns/mmd-2.0#}release"; (liftA2 (,) 
(requireAttr "id") (attr "{http://musicbrainz.org/ns/ext#-2.0}score";)) $ 
\(rid,score) -> do
     title <- force "title required" (tagNoAttr 
"{http://musicbrainz.org/ns/mmd-2.0#}title"; content)
     status <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}status"; content
     quality <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}quality"; content
@@ -104,12 +104,12 @@
     _ <- parseReleaseGroup
     date <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}date"; content
     country <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}country"; content
-    rel <- tagName "{http://musicbrainz.org/ns/mmd-2.0#}release-event-list"; 
(requireAttr "count") $ \_ -> many parseReleaseEvent
+    rel <- tag' "{http://musicbrainz.org/ns/mmd-2.0#}release-event-list"; 
(requireAttr "count") $ \_ -> many parseReleaseEvent
     barcode <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}barcode"; content
     amazonASIN <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}asin"; content
     coverArtArchive <- parseCoverArtArchive
     _ <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}label-info-list"; $ 
parseLabelInfo
-    media <- tagName "{http://musicbrainz.org/ns/mmd-2.0#}medium-list"; 
(requireAttr "count") $ \_ -> (tagNoAttr 
"{http://musicbrainz.org/ns/mmd-2.0#}track-count"; content >> many parseMedium)
+    media <- tag' "{http://musicbrainz.org/ns/mmd-2.0#}medium-list"; 
(requireAttr "count") $ \_ -> (tagNoAttr 
"{http://musicbrainz.org/ns/mmd-2.0#}track-count"; content >> many parseMedium)
     return (maybe 0 forceReadDec score, Release {
         _releaseId = MBID rid
       , _releaseTitle = title
@@ -118,7 +118,7 @@
       , _releasePackaging = packaging
       , _releaseTextRepresentation = tr
       , _releaseArtistCredit = fromMaybe [] ncs
-      , _releaseDate = parseTime defaultTimeLocale "%Y-%m-%d" . T.unpack =<< 
date
+      , _releaseDate = parseTimeM True defaultTimeLocale "%Y-%m-%d" . T.unpack 
=<< date
       , _releaseCountry = country
       , _releaseEvents = fromMaybe [] rel
       , _releaseBarcode = barcode
@@ -141,7 +141,7 @@
     title <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}title"; content
     position <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}position"; 
content
     format <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}format"; content
-    Just med <- tagName "{http://musicbrainz.org/ns/mmd-2.0#}track-list"; 
(liftA2 (,) (requireAttr "count") (optionalAttr "offset")) $ \(c,o) -> do -- 
not Just
+    Just med <- tag' "{http://musicbrainz.org/ns/mmd-2.0#}track-list"; (liftA2 
(,) (requireAttr "count") (attr "offset")) $ \(c,o) -> do -- not Just
         tracks <- many parseTrack
         return Medium {
             _mediumTitle = title
@@ -154,7 +154,7 @@
     return med
 
 parseTrack :: MonadThrow m => Consumer Event m (Maybe Track)
-parseTrack = tagName "{http://musicbrainz.org/ns/mmd-2.0#}track"; (requireAttr 
"id") $ \i -> do
+parseTrack = tag' "{http://musicbrainz.org/ns/mmd-2.0#}track"; (requireAttr 
"id") $ \i -> do
     position <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}position"; 
content
     number <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}number"; content
     len <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}length"; content
@@ -170,7 +170,7 @@
     }
 
 parseReleaseGroup :: MonadThrow m => Consumer Event m (Maybe ReleaseGroup)
-parseReleaseGroup = tagName 
"{http://musicbrainz.org/ns/mmd-2.0#}release-group"; (liftA2 (,) (requireAttr 
"type") (requireAttr "id")) $ \(t,i) -> do
+parseReleaseGroup = tag' "{http://musicbrainz.org/ns/mmd-2.0#}release-group"; 
(liftA2 (,) (requireAttr "type") (requireAttr "id")) $ \(t,i) -> do
     title <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}title"; content
     frd <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}first-release-date"; 
content
     pt <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}primary-type"; content
@@ -194,7 +194,7 @@
     }
 
 parseLabel :: MonadThrow m => Consumer Event m (Maybe Label)
-parseLabel = tagName "{http://musicbrainz.org/ns/mmd-2.0#}label"; (requireAttr 
"id") $ \i -> do
+parseLabel = tag' "{http://musicbrainz.org/ns/mmd-2.0#}label"; (requireAttr 
"id") $ \i -> do
     name <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}name"; content
     sortname <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}sort-name"; 
content
     labelcode <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}label-code"; 
content
@@ -210,12 +210,12 @@
     date <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}date"; content
     area <- parseArea
     return ReleaseEvent {
-      _releaseEventDate = parseTime defaultTimeLocale "%Y-%m-%d" . T.unpack 
=<< date
+      _releaseEventDate = parseTimeM True defaultTimeLocale "%Y-%m-%d" . 
T.unpack =<< date
     , _releaseEventArea = area
     }
 
 parseArea :: MonadThrow m => Consumer Event m (Maybe Area)
-parseArea = tagName "{http://musicbrainz.org/ns/mmd-2.0#}area"; (requireAttr 
"id") $ \i -> do
+parseArea = tag' "{http://musicbrainz.org/ns/mmd-2.0#}area"; (requireAttr "id") 
$ \i -> do
     name <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}name"; content
     sortname <- tagNoAttr "{http://musicbrainz.org/ns/mmd-2.0#}sort-name"; 
content
     isocodes1 <- tagNoAttr 
"{http://musicbrainz.org/ns/mmd-2.0#}iso-3166-1-code-list"; $ many 
parseISO3166Code

++++++ MusicBrainz.cabal ++++++
--- /var/tmp/diff_new_pack.vFdcgc/_old  2017-08-31 20:46:05.198843215 +0200
+++ /var/tmp/diff_new_pack.vFdcgc/_new  2017-08-31 20:46:05.210841531 +0200
@@ -1,5 +1,5 @@
 name:                MusicBrainz
-version:             0.2.4
+version:             0.3
 x-revision: 1
 synopsis:            interface to MusicBrainz XML2 web service
 description:         interface to MusicBrainz XML2 web service
@@ -8,7 +8,7 @@
 license-file:        LICENSE
 author:              Clint Adams
 maintainer:          cl...@debian.org
-copyright:           2012-2015 Clint Adams
+copyright:           2012-2017 Clint Adams
 category:            Network
 build-type:          Simple
 cabal-version:       >=1.8
@@ -26,24 +26,24 @@
                , conduit       >= 1.0.0
                , conduit-extra >= 1.0.0
                , text
-               , time
+               , time          >= 1.5
                , resourcet
                , time-locale-compat
                , vector        >= 0.9
                , xml-types     >= 0.3
                , http-conduit  >= 1.8.8
                , http-types    >= 0.6
-               , xml-conduit   >= 1.1 && <1.5
+               , xml-conduit   >= 1.5
                , HTTP          >= 4000.0
                , aeson         >= 0.6.1
   ghc-options: -Wall
 
 source-repository head
   type:     git
-  location: git://anonscm.debian.org/users/clint/MusicBrainz.git
+  location: https://anonscm.debian.org/git/users/clint/MusicBrainz.git
   branch:   master
 
 source-repository this
   type:     git
-  location: git://anonscm.debian.org/users/clint/MusicBrainz.git
-  tag:      hMB/0.2.4
+  location: https://anonscm.debian.org/git/users/clint/MusicBrainz.git
+  tag:      hMB/0.3


Reply via email to