Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ repository cardano-haskell-packages
-- repeat the index-state for hackage to work around haskell.nix parsing limitation
index-state:
-- Bump this if you need newer packages from Hackage
, hackage.haskell.org 2026-03-04T10:56:45Z
, hackage.haskell.org 2026-05-13T07:31:22Z

-- Bump this if you need newer packages from CHaP
, cardano-haskell-packages 2026-03-30T15:30:34Z
, cardano-haskell-packages 2026-05-11T20:15:43Z

active-repositories:
, :rest
Expand All @@ -32,6 +32,14 @@ packages: ./cardano-ping
./ntp-client
./acts-generic

-- TODO: contra-tracer 0.2.1.0 is on Hackage but shadowed by CHaP's 0.1.x under
-- active-repositories: cardano-haskell-packages:override.
source-repository-package
type: git
location: https://github.com/avieth/contra-tracer
tag: bf4a562a3b1315946aca7f6b4935e94ca1a23aa9
--sha256: 1d3zlyi8hlmwhfa2dw3icprr6rgx1xnfds5vk1rmchpjcvmz6bkb

tests: True
benchmarks: True

Expand Down
12 changes: 6 additions & 6 deletions cardano-diffusion/cardano-diffusion.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ library api-tests-lib
Cardano.Network.NodeToNode.Version.TestUtils

build-depends:
QuickCheck,
QuickCheck < 2.18,
base >=4.14 && <4.23,
cardano-diffusion:api,
ouroboros-network:api,
Expand All @@ -112,7 +112,7 @@ test-suite api-tests
Test.Cardano.Network.Version

build-depends:
QuickCheck,
QuickCheck < 2.18,
base >=4.14 && <4.23,
cardano-diffusion:{api, api-tests-lib},
ouroboros-network:api,
Expand Down Expand Up @@ -371,7 +371,7 @@ library protocols-tests-lib
Ouroboros.Network.Protocol.TxSubmission2.Test as Cardano.Network.Protocol.TxSubmission2.Test,

build-depends:
QuickCheck,
QuickCheck < 2.18,
base >=4.14 && <4.23,
bytestring,
cardano-diffusion:{api, api-tests-lib, protocols},
Expand Down Expand Up @@ -416,7 +416,7 @@ test-suite protocols-cddl
buildable: False

build-depends:
QuickCheck,
QuickCheck < 2.18,
base >=4.14 && <4.23,
bytestring,
cardano-diffusion:{api, api-tests-lib, protocols, protocols-tests-lib},
Expand Down Expand Up @@ -479,7 +479,7 @@ library cardano-diffusion-tests-lib
visibility: public
hs-source-dirs: tests/lib
build-depends:
QuickCheck,
QuickCheck < 2.18,
aeson,
base >=4.14 && <4.23,
bytestring,
Expand Down Expand Up @@ -559,7 +559,7 @@ library subscription
cardano-diffusion ^>=1.0.0.0,
cborg >=0.2.8 && <0.3,
containers >=0.5 && <0.9,
contra-tracer >=0.1 && <0.3,
contra-tracer ^>=0.2.1,
deepseq,
io-classes:si-timers ^>=1.8.0.1,
network-mux ^>=0.10.1.0,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
### Breaking

- Upgraded to `contra-tracer ^>=0.2.1`. The `Tracer` data constructor is no
longer exported; use `mkTracer` instead.
- Capped `QuickCheck < 2.18`.
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ import Control.Monad.Class.MonadTime.SI
import Control.Monad.Class.MonadTimer.SI
import Control.Monad.Fix
import Control.Monad.IOSim (IOSim)
import Control.Tracer (Tracer (..), contramap, nullTracer, traceWith)
import Control.Tracer (Tracer, contramap, mkTracer, nullTracer, traceWith)

import Data.Bifunctor (first)
import Data.Bool (bool)
Expand Down Expand Up @@ -1330,7 +1330,7 @@ diffusionSimulationM
, Node.aTimeWaitTimeout = 30
, Node.aDNSTimeoutScript = dnsTimeout
, Node.aDNSLookupDelayScript = dnsLookupDelay
, Node.aDebugTracer = Tracer (\s -> do
, Node.aDebugTracer = mkTracer (\s -> do
t <- getMonotonicTime
traceWith nodeTracer $ WithTime t (WithName addr (DiffusionDebugTrace s)))
, Node.aExtraChurnArgs = cardanoChurnArgs
Expand Down Expand Up @@ -1480,7 +1480,7 @@ diffusionSimulationM
m
mkTracers ntnAddr nodeId =
let sayTracer' :: Show event => Tracer m event
sayTracer' = Tracer $ \event ->
sayTracer' = mkTracer $ \event ->
-- time of events is added in `testWithIOSim` and
-- `testWithIOSimPOR`
say $ show nodeId ++ " @ " ++ show event
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import Control.Exception (AssertionFailed (..), catch, evaluate)
import Control.Monad (when)
import Control.Monad.Class.MonadTime.SI
import Control.Monad.Class.MonadTimer.SI
import Control.Tracer (Tracer (..))
import Control.Tracer (Tracer, mkTracer)

import Data.Bifoldable (bitraverse_)
import Data.ByteString.Char8 qualified as BS
Expand Down Expand Up @@ -4289,7 +4289,7 @@ _governorFindingPublicRoots targetNumberOfRootPeers readDomains readUseBootstrap
tracer' = tracer

tracer :: Show a => Tracer IO a
tracer = Tracer (BS.putStrLn . BS.pack . show)
tracer = mkTracer (BS.putStrLn . BS.pack . show)

actions
:: PeerSelectionActions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ import Control.Monad.Class.MonadTime.SI
import Control.Monad.Class.MonadTimer.SI hiding (timeout)
import Control.Monad.Fail qualified as Fail
import Control.Monad.IOSim
import Control.Tracer (Tracer (..), contramap, traceWith)
import Control.Tracer (Tracer, contramap, mkTracer, traceWith)

import Ouroboros.Network.BlockFetch (FetchMode (..), PraosFetchMode (..))
import Ouroboros.Network.ConnectionManager.Types (Provenance)
Expand Down Expand Up @@ -838,7 +838,7 @@ traceAssociationMode

-> Tracer (IOSim s)
(DebugPeerSelection Cardano.ExtraState extraFlags extraPeers PeerAddr)
traceAssociationMode interfaces actions = Tracer $ \(TraceGovernorState _ _ st) -> do
traceAssociationMode interfaces actions = mkTracer $ \(TraceGovernorState _ _ st) -> do
associationMode <- atomically $ readAssociationMode
(readUseLedgerPeers interfaces)
(Governor.peerSharing actions)
Expand Down
2 changes: 1 addition & 1 deletion cardano-ping/cardano-ping.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ library
base >=4.14 && <4.23,
bytestring >=0.10 && <0.13,
cborg >=0.2.8 && <0.3,
contra-tracer >=0.1 && <0.3,
contra-tracer ^>=0.2.1,
io-classes:{si-timers, strict-stm} ^>=1.8,
iproute ^>=1.7.15,
network ^>=3.2.7,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
### Breaking

- Upgraded to `contra-tracer ^>=0.2.1`. The `Tracer` data constructor is no
longer exported; use `mkTracer` instead.
12 changes: 6 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
### Breaking

- Upgraded to `contra-tracer ^>=0.2.1`. The `Tracer` data constructor is no
longer exported; use `mkTracer` instead. `nullTracers`, the `TracersI`
pattern synonym, `contramapTracers'`, `tracersWithBearer` and
`traceBearerState` now require `Monad m` rather than `Applicative m`.
- Capped `QuickCheck < 2.18`.
4 changes: 2 additions & 2 deletions network-mux/demo/mux-demo.hs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import Control.Concurrent (forkIO)
import Control.Concurrent.STM (atomically)
import Control.Exception (finally)
import Control.Monad
import Control.Tracer (Tracer (..))
import Control.Tracer (Tracer, mkTracer)

import System.Environment qualified as SysEnv
import System.Exit
Expand Down Expand Up @@ -72,7 +72,7 @@ putStrLn_ :: String -> IO ()
putStrLn_ = BSC.putStrLn . BSC.pack

debugTracer :: Show a => Tracer IO a
debugTracer = show >$< Tracer putStrLn_
debugTracer = show >$< mkTracer putStrLn_

--
-- Protocols
Expand Down
2 changes: 1 addition & 1 deletion network-mux/demo/mux-leios-demo.hs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ reqrespTracer
:: String
-- ^ tag
-> Tracer IO (TraceSendRecv (MsgReqResp ByteString ByteString))
reqrespTracer tag = Tracer $ \case
reqrespTracer tag = mkTracer $ \case
TraceSend (MsgReq a) -> putStrLn_ $ tag ++ " Send MsgReq " ++ show (BSC.length a)
TraceSend (MsgResp a) -> putStrLn_ $ tag ++ " Send MsgResp " ++ show (BSC.length a)
TraceSend MsgDone -> putStrLn_ $ tag ++ " Send MsgDone"
Expand Down
4 changes: 2 additions & 2 deletions network-mux/network-mux.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ library
binary >=0.8 && <0.11,
bytestring >=0.10 && <0.13,
containers >=0.5 && <0.9,
contra-tracer >=0.1 && <0.2,
contra-tracer ^>=0.2.1,
io-classes:{io-classes, si-timers, strict-stm} ^>=1.8,
monoidal-synchronisation >=0.1 && <0.2,
network ^>=3.2.7,
Expand Down Expand Up @@ -135,7 +135,7 @@ test-suite test
default-language: Haskell2010
default-extensions: ImportQualifiedPost
build-depends:
QuickCheck,
QuickCheck < 2.18,
Win32-network,
base >=4.14 && <4.23,
binary,
Expand Down
2 changes: 1 addition & 1 deletion network-mux/src/Network/Mux.hs
Original file line number Diff line number Diff line change
Expand Up @@ -723,7 +723,7 @@ muxChannel tracer egressQueue want@(Wanton w) mc md q =
traceWith tracer $ TraceChannelRecvEnd mc (fromIntegral $ BL.length blob)
return $ Just blob

traceBearerState :: Tracer m Trace -> State -> m ()
traceBearerState :: Monad m => Tracer m Trace -> State -> m ()
traceBearerState tracer state =
traceWith tracer (TraceState state)

Expand Down
3 changes: 1 addition & 2 deletions network-mux/src/Network/Mux/DeltaQ/TraceTransformer.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ module Network.Mux.DeltaQ.TraceTransformer

import Control.Concurrent.Class.MonadSTM.Strict
import Control.Tracer
import Data.Functor.Contravariant ((>$<))
import Data.Functor.Identity

import Network.Mux.DeltaQ.TraceStats
Expand All @@ -35,7 +34,7 @@ dqTracer :: MonadSTM m
=> StrictTVar m StatsA
-> Tracer m BearerTrace
-> Tracer m BearerTrace
dqTracer sTvar tr = Tracer go
dqTracer sTvar tr = mkTracer go
where
go (TraceRecvDeltaQObservation SDUHeader { mhTimestamp, mhLength } t)
= update mhTimestamp t (fromIntegral mhLength)
Expand Down
8 changes: 5 additions & 3 deletions network-mux/src/Network/Mux/Trace.hs
Original file line number Diff line number Diff line change
Expand Up @@ -209,14 +209,15 @@ tracersWith tr = Tracers {
}


nullTracers :: Applicative m => Tracers' m f
nullTracers :: Monad m => Tracers' m f
nullTracers = tracersWith nullTracer


-- | A convenient bidirectional pattern synonym which (un)wraps the `Identity`
-- functor in the `Tracer` type.
--
pattern TracersI :: forall m.
Monad m =>
Tracer m Trace
-> Tracer m ChannelTrace
-> Tracer m BearerTrace
Expand All @@ -238,7 +239,8 @@ pattern TracersI { tracer_, channelTracer_, bearerTracer_ } <-

-- | Contravariant natural transformation of `Tracers' m`.
--
contramapTracers' :: (forall x. f' x -> f x)
contramapTracers' :: Monad m
=> (forall x. f' x -> f x)
-> Tracers' m f -> Tracers' m f'
contramapTracers'
f
Expand All @@ -255,5 +257,5 @@ contramapTracers'

type TracersWithBearer connId m = Tracers' m (WithBearer connId)

tracersWithBearer :: peerId -> TracersWithBearer peerId m -> Tracers m
tracersWithBearer :: Monad m => peerId -> TracersWithBearer peerId m -> Tracers m
tracersWithBearer peerId = contramapTracers' (WithBearer peerId . runIdentity)
7 changes: 3 additions & 4 deletions network-mux/test/Test/Mux.hs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import Data.Binary.Put qualified as Bin
import Data.Bits
import Data.ByteString.Lazy qualified as BL
import Data.ByteString.Lazy.Char8 qualified as BL8 (pack)
import Data.Functor.Contravariant ((>$<))
import Data.List (dropWhileEnd, nub)
import Data.List qualified as List
import Data.Map qualified as M
Expand Down Expand Up @@ -1009,7 +1008,7 @@ prop_mux_starvation (Uneven response0 response1) =
activeMpsVar <- newTVarIO 0
traceHeaderVar <- newTVarIO []
let headerTracer =
Tracer $ \e -> case e of
mkTracer $ \e -> case e of
Mx.TraceRecvHeaderEnd header
-> atomically (modifyTVar traceHeaderVar (header:))
_ -> return ()
Expand Down Expand Up @@ -1914,7 +1913,7 @@ verboseTracer :: forall a m.
, Show a
)
=> Tracer m a
verboseTracer = threadAndTimeTracer $ show >$< Tracer say
verboseTracer = threadAndTimeTracer $ show >$< mkTracer say

muxVerboseTracer :: forall m.
( MonadAsync m
Expand All @@ -1929,7 +1928,7 @@ threadAndTimeTracer :: forall a m.
, MonadMonotonicTime m
)
=> Tracer m (WithThreadAndTime a) -> Tracer m a
threadAndTimeTracer tr = Tracer $ \s -> do
threadAndTimeTracer tr = mkTracer $ \s -> do
!now <- getMonotonicTime
!tid <- myThreadId
traceWith tr $ WithThreadAndTime now (show tid) s
Expand Down
3 changes: 0 additions & 3 deletions nix/ouroboros-network.nix
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,6 @@ let
packages.ouroboros-network.components.tests.framework-sim-tests.doCheck = onLinux;
packages.ouroboros-network.components.tests.ouroboros-network-sim-tests.doCheck = onLinux;
})
({ pkgs, ... }: lib.mkIf pkgs.stdenv.hostPlatform.isWindows {
packages.basement.configureFlags = [ "--hsc2hs-options=--cflag=-Wno-int-conversion" ];
})
];
});
in
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
### Breaking

- Upgraded to `contra-tracer ^>=0.2.1`. The `Tracer` data constructor is no
longer exported; use `mkTracer` instead.
1 change: 0 additions & 1 deletion ntp-client/demo/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import Control.Concurrent (threadDelay)
import Control.Concurrent.Async
import Control.Monad (forever)
import Control.Tracer
import Data.Functor.Contravariant ((>$<))

import Network.NTP.Client (NtpClient (..), NtpSettings (..), withNtpClient)

Expand Down
6 changes: 3 additions & 3 deletions ntp-client/ntp-client.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ library
base >=4.14 && <4.23,
binary >=0.8 && <0.11,
bytestring >=0.10 && <0.13,
contra-tracer >=0.1 && <0.2,
contra-tracer ^>=0.2.1,
network ^>=3.2.7,
stm >=2.4 && <2.6,
time >=1.9.1 && <1.16,
Expand Down Expand Up @@ -62,7 +62,7 @@ test-suite test
other-modules: Network.NTP.Client.Packet
type: exitcode-stdio-1.0
build-depends:
QuickCheck,
QuickCheck < 2.18,
base >=4.14 && <4.23,
binary >=0.8 && <0.11,
tasty,
Expand Down Expand Up @@ -90,7 +90,7 @@ executable demo-ntp-client
Win32-network >=0.1 && <0.3,
async >=2.2 && <2.3,
base >=4.14 && <4.23,
contra-tracer >=0.1 && <0.2,
contra-tracer ^>=0.2.1,
ntp-client,

default-language: Haskell2010
Expand Down
Loading
Loading