On Fri, 2013-10-18 at 16:05 +0200, Herbert Valerio Riedel wrote: > Hello Duncan, > > ...any recommendation on this one? For isntance, how do I best add a link > from the > description-field pointing to the changelog file?
No I think the longer term solution is to treat the changelog properly in some machine-readable form so that hackage can show the changes in a reasonable way, e.g. most recent changes, expand to more detail. I don't think we really want to have the current situation where some packages have these huge descriptions including long changelogs and others have nothing. It's all rather inconsistent. We should probably have hackage show only the first ~20-30 lines of the description and let the user expand that if they want to see more, and do a similar thing for the changelog. Simon makes the point that he likes having the changelog in the .cabal file rather than a separate file because it's less mental effort to update, as you can see it at the same time as the version. So perhaps what we should do is add a changelog field to the .cabal file an allow that to be inline, or to refer to a file, e.g. "changelog:" or "changlog-file:". Either way we can then do a bit of simple syntax checking so we know we can format it ok on hackage and in other tools. Duncan
--- Begin Message ---I'm not keen on losing the changelog from the description. The idea of having the changelog in the description is: - it is prominent on the Hackage page for the package - it's next to the version in the .cabal file, so you're more likely to update it when updating the version. I don't mind splitting it into two - maybe the first few entries in the description and the rest in a separate file, with a link from the description. Cheers, Simon On 14/10/2013 22:38, git-4Dsf34iY/[email protected] wrote: > Repository : ssh://git-4Dsf34iY/[email protected]/stm > > On branch : master > Link : > http://git.haskell.org/packages/stm.git/commitdiff/aa4774b7d5f65cbf007803ff54995921a36fbaeb > >> --------------------------------------------------------------- > > commit aa4774b7d5f65cbf007803ff54995921a36fbaeb > Author: Herbert Valerio Riedel <hvr-mXXj517/[email protected]> > Date: Mon Oct 14 22:02:35 2013 +0200 > > Refactor & update `stm.cabal` to `cabal-version>=1.10` > > As the current code fails to build with GHC 6.10, I've updated the Cabal > meta-data to declare support for GHC>=6.12 and dropped support for > base3. This also moves the changelog from the Cabal description field > into a separate `changelog` file and adds a few entries. > > The code compiles warning-free for all tested GHC versions. > > Signed-off-by: Herbert Valerio Riedel <hvr-mXXj517/[email protected]> > > >> --------------------------------------------------------------- > > aa4774b7d5f65cbf007803ff54995921a36fbaeb > Control/Concurrent/STM/TVar.hs | 5 -- > Control/Sequential/STM.hs | 18 ------- > changelog | 38 +++++++++++++++ > stm.cabal | 103 > ++++++++++++++++++---------------------- > 4 files changed, 83 insertions(+), 81 deletions(-) > > diff --git a/Control/Concurrent/STM/TVar.hs b/Control/Concurrent/STM/TVar.hs > index d15896b..6435e17 100644 > --- a/Control/Concurrent/STM/TVar.hs > +++ b/Control/Concurrent/STM/TVar.hs > @@ -43,11 +43,6 @@ import GHC.Weak > import Control.Sequential.STM > #endif > > -#if ! (MIN_VERSION_base(4,2,0)) > -readTVarIO = atomically . readTVar > -#endif > - > - > -- Like 'modifyIORef' but for 'TVar'. > -- | Mutate the contents of a 'TVar'. /N.B./, this version is > -- non-strict. > diff --git a/Control/Sequential/STM.hs b/Control/Sequential/STM.hs > index 468e7bd..a644e67 100644 > --- a/Control/Sequential/STM.hs > +++ b/Control/Sequential/STM.hs > @@ -40,35 +40,17 @@ instance Monad STM where > x <- m r > unSTM (k x) r > > -#ifdef BASE4 > atomically :: STM a -> IO a > atomically (STM m) = do > r <- newIORef (return ()) > m r `onException` do > rollback <- readIORef r > rollback > -#else > -atomically :: STM a -> IO a > -atomically (STM m) = do > - r <- newIORef (return ()) > - m r `catch` \ ex -> do > - rollback <- readIORef r > - rollback > - throw ex > -#endif > > -#ifdef BASE4 > throwSTM :: Exception e => e -> STM a > -#else > -throwSTM :: Exception -> STM a > -#endif > throwSTM = STM . const . throwIO > > -#ifdef BASE4 > catchSTM :: Exception e => STM a -> (e -> STM a) -> STM a > -#else > -catchSTM :: STM a -> (Exception -> STM a) -> STM a > -#endif > catchSTM (STM m) h = STM $ \ r -> do > old_rollback <- readIORef r > writeIORef r (return ()) > diff --git a/changelog b/changelog > new file mode 100644 > index 0000000..1296a41 > --- /dev/null > +++ b/changelog > @@ -0,0 +1,38 @@ > +-*-changelog-*- > + > +2.4.2.1 Oct 2013 > + > + * Updated behaviour of `newBroadcastTChanIO` to match > + `newBroadcastTChan` in causing an error on a read from > + the broadcast channel > + > + * Add `mkWeakTVar` > + > + * Add `isFullTBQueue` > + > + * Fix `TChan` created via `newBroadcastTChanIO` to throw same > + exception on a `readTChan` as when created via `newBroadcastTChan` > + > +2.4.2 Nov 2012 > + > + * Add "Control.Concurrent.STM.TSem" (transactional semaphore) > + > + * Add Applicative/Alternative instances of STM for GHC <7.0 > + > + * Throw proper exception when `readTChan` called on a broadcast > + `TChan` > + > +2.4 Jul 2012 > + > + * Add "Control.Concurrent.STM.TQueue" (a faster `TChan`) > + > + * Add "Control.Concurrent.STM.TBQueue" (a bounded channel based on > + `TQueue`) > + > + * Add `Eq` instance for `TChan` > + > + * Add `newBroadcastTChan` and `newBroadcastTChanIO` > + > + * Some performance improvements for `TChan` > + > + * Add `cloneTChan` > diff --git a/stm.cabal b/stm.cabal > index 568b8a3..998bb24 100644 > --- a/stm.cabal > +++ b/stm.cabal > @@ -1,68 +1,55 @@ > -name: stm > +name: stm > version: 2.4.2.1 > -license: BSD3 > -license-file: LICENSE > -maintainer: [email protected] > -synopsis: Software Transactional Memory > +license: BSD3 > +license-file: LICENSE > +maintainer: [email protected] > +bug-reports: > http://ghc.haskell.org/trac/ghc/newticket?component=libraries%20%28other%29&keywords=stm > +synopsis: Software Transactional Memory > category: Concurrency > -description: > - A modular composable concurrency abstraction. > - . > - Changes in version 2.4.2.1 > - . > - * Updated behaviour of @newBroadcastTChanIO@ to match > - @newBroadcastTChan@ in causing an error on a read from > - the broadcast channel. > - . > - Changes in version 2.4.2 > - . > - * Added "Control.Concurrent.STM.TSem" (transactional semaphore) > - . > - Changes in version 2.4.1 > - . > - * Added Applicative/Alternative instances of STM for GHC <7.0 > - . > - Changes in version 2.4 > - . > - * Added "Control.Concurrent.STM.TQueue" (a faster @TChan@) > - . > - * Added "Control.Concurrent.STM.TBQueue" (a bounded channel based on > @TQueue@) > - . > - * @TChan@ has an @Eq@ instances > - . > - * Added @newBroadcastTChan@ and @newBroadcastTChanIO@ > - . > - * Some performance improvements for @TChan@ > - . > - * Added @cloneTChan@ > - > +description: A modular composable concurrency abstraction. > build-type: Simple > -cabal-version: >=1.6 > +cabal-version: >=1.10 > +tested-with: GHC==7.6.3, GHC==7.6.2, GHC==7.6.1, GHC==7.4.2, GHC==7.4.1, > GHC==7.2.2, GHC==7.2.1, GHC==7.0.4, GHC==7.0.3, GHC==7.0.2, GHC==7.0.1, > GHC==6.12.3 > + > +extra-source-files: > + changelog > > source-repository head > type: git > location: http://git.haskell.org/packages/stm.git > > -flag base4 > +source-repository this > + type: git > + location: http://git.haskell.org/packages/stm.git > + tag: stm-2.4.2.1-release > > library > - exposed-modules: > - Control.Concurrent.STM > - Control.Concurrent.STM.TArray > - Control.Concurrent.STM.TVar > - Control.Concurrent.STM.TChan > - Control.Concurrent.STM.TMVar > - Control.Concurrent.STM.TQueue > - Control.Concurrent.STM.TBQueue > - Control.Concurrent.STM.TSem > - Control.Monad.STM > - other-modules: > - Control.Sequential.STM > - build-depends: base < 5, array > - if flag(base4) > - build-depends: base >=4 > - cpp-options: -DBASE4 > - else > - build-depends: base <4 > - if impl(ghc >= 6.10) > - build-depends: base >=4 > + default-language: Haskell98 > + other-extensions: > + CPP > + DeriveDataTypeable > + FlexibleInstances > + MagicHash > + MultiParamTypeClasses > + UnboxedTuples > + if impl(ghc >= 7.2) > + other-extensions: Trustworthy > + > + build-depends: > + base >= 4.2 && < 4.8, > + array >= 0.3 && < 0.6 > + > + exposed-modules: > + Control.Concurrent.STM > + Control.Concurrent.STM.TArray > + Control.Concurrent.STM.TVar > + Control.Concurrent.STM.TChan > + Control.Concurrent.STM.TMVar > + Control.Concurrent.STM.TQueue > + Control.Concurrent.STM.TBQueue > + Control.Concurrent.STM.TSem > + Control.Monad.STM > + other-modules: > + Control.Sequential.STM > + > + ghc-options: -Wall > \ No newline at end of file > > _______________________________________________ > ghc-commits mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/ghc-commits >
--- End Message ---
_______________________________________________ cabal-devel mailing list [email protected] http://www.haskell.org/mailman/listinfo/cabal-devel
