Skip to content

Commit

Permalink
Merge pull request #336 from input-output-hk/erikd/stylish
Browse files Browse the repository at this point in the history
Add stylish-haskell rules and use them in CI
  • Loading branch information
erikd committed Oct 13, 2020
2 parents d629b3e + 1deab3e commit 4b1b790
Show file tree
Hide file tree
Showing 52 changed files with 254 additions and 135 deletions.
100 changes: 100 additions & 0 deletions .stylish-haskell.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Stylish-haskell configuration file.

# Principles:
#
# 1. Amount of indent should not be dependent on the length of the previous line
# 2. Imports lists should be compact
# 3. All linting rules that delete comments should be disabled
# 4. No inline indenting, for example indent of ->, =, <-, as
# 5. Redunant imports and pragmas should be removed
# 6. Consistent syntax
# 7. No trailing whitespaces
# 8. Slightly generous screen with assumed
# 9. All Haskell files in the project are subject to code formatting style

steps:
# Principle 4
- simple_align:
cases: false
top_level_patterns: false
# Principle 3
records: false

# Import cleanup
- imports:
align: global

# Principle 1,2
list_align: with_module_name

# Principle 4
pad_module_names: false

# Principle 2
long_list_align: inline

empty_list_align: inherit

list_padding: 2

separate_lists: true

space_surround: false

- language_pragmas:
style: vertical

align: false

# Principle 5
remove_redundant: true

# Principle 6
language_prefix: LANGUAGE

# Principle 7
- trailing_whitespace: {}

# Principle 8
columns: 100

newline: native

# Principle 9
#
# These syntax-affecting language extensions are enabled so that
# stylish-haskell wouldn't fail with parsing errors when processing files
# in projects that have those extensions enabled in the .cabal file
# rather than locally.
#
# In particular language extensions with British and American spellings
# that we use should be included here until stylish-haskell supports
# the British spelling.
language_extensions:
- BangPatterns
- ConstraintKinds
- DataKinds
- DefaultSignatures
- DeriveDataTypeable
- DeriveGeneric
- ExistentialQuantification
- FlexibleContexts
- FlexibleInstances
- FunctionalDependencies
- GADTs
- GeneralizedNewtypeDeriving
- LambdaCase
- MultiParamTypeClasses
- MultiWayIf
- NoImplicitPrelude
- OverloadedStrings
- PolyKinds
- ScopedTypeVariables
- StandaloneDeriving
- TemplateHaskell
- TupleSections
- TypeApplications
- TypeFamilies
- ExplicitNamespaces

cabal: true
2 changes: 1 addition & 1 deletion cardano-db-sync-extended/Setup.hs
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain
2 changes: 1 addition & 1 deletion cardano-db-sync-extended/app/cardano-db-sync-extended.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Cardano.Prelude

import Cardano.Db (MigrationDir (..))
import Cardano.DbSync (ConfigFile (..), DbSyncNodeParams (..), LedgerStateDir (..),
SocketPath (..), runDbSyncNode)
SocketPath (..), runDbSyncNode)
import Cardano.DbSync.Plugin.Extended (extendedDbSyncNodePlugin)

import Cardano.Slotting.Slot (SlotNo (..))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ module Cardano.DbSync.Plugin.Extended


import Cardano.DbSync (DbSyncNodePlugin (..), defDbSyncNodePlugin)
import Cardano.DbSync.Plugin.Epoch (epochPluginOnStartup, epochPluginInsertBlock,
epochPluginRollbackBlock)
import Cardano.DbSync.Plugin.Epoch (epochPluginInsertBlock, epochPluginOnStartup,
epochPluginRollbackBlock)

extendedDbSyncNodePlugin :: DbSyncNodePlugin
extendedDbSyncNodePlugin =
Expand Down
2 changes: 1 addition & 1 deletion cardano-db-sync/Setup.hs
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain
2 changes: 1 addition & 1 deletion cardano-db-sync/app/cardano-db-sync.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Cardano.Prelude

import Cardano.Db (MigrationDir (..))
import Cardano.DbSync (ConfigFile (..), DbSyncNodeParams (..), LedgerStateDir (..),
SocketPath (..), defDbSyncNodePlugin, runDbSyncNode)
SocketPath (..), defDbSyncNodePlugin, runDbSyncNode)

import Cardano.Slotting.Slot (SlotNo (..))

Expand Down
45 changes: 23 additions & 22 deletions cardano-db-sync/src/Cardano/DbSync.hs
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ module Cardano.DbSync

import Control.Tracer (Tracer)

import qualified Cardano.BM.Setup as Logging
import Cardano.BM.Data.Tracer (ToLogObject (..))
import qualified Cardano.BM.Setup as Logging
import Cardano.BM.Trace (Trace, appendName, logInfo)
import qualified Cardano.BM.Trace as Logging

Expand All @@ -45,13 +45,13 @@ import Cardano.DbSync.Metrics
import Cardano.DbSync.Plugin (DbSyncNodePlugin (..))
import Cardano.DbSync.Plugin.Default (defDbSyncNodePlugin)
import Cardano.DbSync.Rollback (unsafeRollback)
import Cardano.DbSync.StateQuery (StateQueryTMVar, getSlotDetails,
localStateQueryHandler, newStateQueryTMVar)
import Cardano.DbSync.StateQuery (StateQueryTMVar, getSlotDetails, localStateQueryHandler,
newStateQueryTMVar)
import Cardano.DbSync.Tracing.ToObjectOrphans ()
import Cardano.DbSync.Types
import Cardano.DbSync.Util

import Cardano.Prelude hiding (option, (%), Nat)
import Cardano.Prelude hiding (Nat, option, (%))

import Cardano.Slotting.Slot (SlotNo (..), WithOrigin (..))

Expand All @@ -70,39 +70,40 @@ import Data.Void (Void)
import Network.Mux (MuxTrace, WithMuxBearer)
import Network.Mux.Types (MuxMode (..))

import Network.TypedProtocol.Pipelined (Nat (Succ, Zero))
import Ouroboros.Network.Driver.Simple (runPipelinedPeer)
import Network.TypedProtocol.Pipelined (Nat(Zero, Succ))

import Ouroboros.Consensus.Block.Abstract (CodecConfig, ConvertRawHash (..))
import Ouroboros.Consensus.Byron.Ledger.Config (mkByronCodecConfig)
import Ouroboros.Consensus.Byron.Node ()
import Ouroboros.Consensus.Cardano.Block (CardanoEras, CodecConfig (..))
import Ouroboros.Consensus.Cardano.Node ()
import Ouroboros.Consensus.HardFork.History.Qry (Interpreter)
import Ouroboros.Consensus.Network.NodeToClient (ClientCodecs,
cChainSyncCodec, cStateQueryCodec, cTxSubmissionCodec)
import Ouroboros.Consensus.Network.NodeToClient (ClientCodecs, cChainSyncCodec,
cStateQueryCodec, cTxSubmissionCodec)
import Ouroboros.Consensus.Node.ErrorPolicy (consensusErrorPolicy)
import Ouroboros.Consensus.Shelley.Ledger.Config (CodecConfig (ShelleyCodecConfig))
import Ouroboros.Consensus.Shelley.Protocol (StandardCrypto)

import Ouroboros.Network.Block (BlockNo (..), HeaderHash, Point (..), Tip (..), blockNo,
genesisPoint, getTipBlockNo, getTipPoint)
import Ouroboros.Network.Mux (MuxPeer (..), RunMiniProtocol (..))
import Ouroboros.Network.NodeToClient (ClientSubscriptionParams (..), ConnectionId,
ErrorPolicyTrace (..), Handshake, IOManager, LocalAddress,
NetworkSubscriptionTracers (..), NodeToClientProtocols (..), TraceSendRecv,
WithAddr (..), localSnocket, localTxSubmissionPeerNull, networkErrorPolicies,
withIOManager)
import qualified Ouroboros.Network.NodeToClient.Version as Network
import Ouroboros.Network.Block (BlockNo (..), HeaderHash, Point (..),
Tip (..), blockNo, genesisPoint, getTipBlockNo, getTipPoint)
import Ouroboros.Network.Mux (MuxPeer (..), RunMiniProtocol (..))
import Ouroboros.Network.NodeToClient (IOManager, ClientSubscriptionParams (..),
ConnectionId, ErrorPolicyTrace (..), Handshake, LocalAddress,
NetworkSubscriptionTracers (..), NodeToClientProtocols (..),
TraceSendRecv, WithAddr (..), localSnocket,
localTxSubmissionPeerNull, networkErrorPolicies, withIOManager)
import qualified Ouroboros.Network.Point as Point
import Ouroboros.Network.Point (withOrigin)
import qualified Ouroboros.Network.Point as Point

import Ouroboros.Network.Protocol.ChainSync.ClientPipelined (ChainSyncClientPipelined (..),
ClientPipelinedStIdle (..), ClientPipelinedStIntersect (..), ClientStNext (..),
chainSyncClientPeerPipelined, recvMsgIntersectFound, recvMsgIntersectNotFound,
recvMsgRollBackward, recvMsgRollForward)
import Ouroboros.Network.Protocol.ChainSync.PipelineDecision (pipelineDecisionLowHighMark,
PipelineDecision (..), runPipelineDecision, MkPipelineDecision)
import Ouroboros.Network.Protocol.ChainSync.ClientPipelined
(ChainSyncClientPipelined (..), ClientPipelinedStIdle (..),
ClientPipelinedStIntersect (..), ClientStNext (..), chainSyncClientPeerPipelined,
recvMsgIntersectFound, recvMsgIntersectNotFound, recvMsgRollBackward,
recvMsgRollForward)
import Ouroboros.Network.Protocol.ChainSync.PipelineDecision (MkPipelineDecision,
PipelineDecision (..), pipelineDecisionLowHighMark, runPipelineDecision)
import Ouroboros.Network.Protocol.ChainSync.Type (ChainSync)
import Ouroboros.Network.Protocol.LocalStateQuery.Client (localStateQueryClientPeer)
import qualified Ouroboros.Network.Snocket as Snocket
Expand Down
2 changes: 1 addition & 1 deletion cardano-db-sync/src/Cardano/DbSync/Config/Byron.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}

module Cardano.DbSync.Config.Byron
Expand Down
6 changes: 3 additions & 3 deletions cardano-db-sync/src/Cardano/DbSync/Config/Cardano.hs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}

module Cardano.DbSync.Config.Cardano
Expand All @@ -20,17 +20,17 @@ import Cardano.Crypto.ProtocolMagic (ProtocolMagicId (..))
import qualified Cardano.Crypto.Hash.Class as Crypto

import Cardano.DbSync.Config.Byron
import Cardano.DbSync.Config.Types
import Cardano.DbSync.Config.Shelley
import Cardano.DbSync.Config.Types
import Cardano.DbSync.Error
import Cardano.DbSync.Util

import Control.Monad.Trans.Except (ExceptT)

import Ouroboros.Consensus.BlockchainTime.WallClock.Types (SystemStart (..))
import Ouroboros.Consensus.Cardano (Nonce (..), Protocol (..))
import Ouroboros.Consensus.Cardano.CanHardFork (TriggerHardFork (..))
import qualified Ouroboros.Consensus.Cardano as Consensus
import Ouroboros.Consensus.Cardano.CanHardFork (TriggerHardFork (..))
import Ouroboros.Consensus.Config (TopLevelConfig (..))
import Ouroboros.Consensus.Ledger.Basics (LedgerConfig)
import Ouroboros.Consensus.Node.ProtocolInfo (ProtocolInfo)
Expand Down
2 changes: 1 addition & 1 deletion cardano-db-sync/src/Cardano/DbSync/Config/Node.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ import Cardano.Prelude
import Cardano.Slotting.Slot (EpochNo (..))

import Data.Aeson (FromJSON (..), Object, (.:), (.:?))
import Data.Aeson.Types (Parser)
import qualified Data.Aeson as Aeson
import Data.Aeson.Types (Parser)
import Data.Foldable (asum)
import qualified Data.Yaml as Yaml

Expand Down
2 changes: 1 addition & 1 deletion cardano-db-sync/src/Cardano/DbSync/Config/Shelley.hs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}

module Cardano.DbSync.Config.Shelley
Expand Down
2 changes: 1 addition & 1 deletion cardano-db-sync/src/Cardano/DbSync/Config/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ import Cardano.Slotting.Slot (EpochNo (..), SlotNo (..))
import Cardano.Prelude

import Data.Aeson (FromJSON (..), Object, Value (..), (.:))
import Data.Aeson.Types (Parser, typeMismatch)
import qualified Data.Aeson as Aeson
import Data.Aeson.Types (Parser, typeMismatch)
import Data.Text (Text)

import Ouroboros.Consensus.BlockchainTime.WallClock.Types (SystemStart (..))
Expand Down
2 changes: 1 addition & 1 deletion cardano-db-sync/src/Cardano/DbSync/Era.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}

module Cardano.DbSync.Era
Expand Down
5 changes: 3 additions & 2 deletions cardano-db-sync/src/Cardano/DbSync/Era/Byron/Genesis.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ module Cardano.DbSync.Era.Byron.Genesis

import Cardano.Prelude

import qualified Cardano.Binary as Binary
import Cardano.BM.Trace (Trace, logInfo)
import qualified Cardano.Binary as Binary
import qualified Cardano.Chain.Common as Byron
import qualified Cardano.Chain.Genesis as Byron
import qualified Cardano.Chain.UTxO as Byron
import qualified Cardano.Crypto as Crypto (Hash, fromCompactRedeemVerificationKey, serializeCborHash)
import qualified Cardano.Crypto as Crypto (Hash, fromCompactRedeemVerificationKey,
serializeCborHash)

import qualified Cardano.Db as DB
import qualified Cardano.DbSync.Era.Byron.Util as Byron
Expand Down
4 changes: 2 additions & 2 deletions cardano-db-sync/src/Cardano/DbSync/Era/Byron/Insert.hs
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ module Cardano.DbSync.Era.Byron.Insert
( insertByronBlock
) where

import Cardano.Binary (serialize')
import Cardano.BM.Trace (Trace, logDebug, logInfo)
import Cardano.Binary (serialize')

import Control.Monad.Logger (LoggingT)
import Control.Monad.Trans.Control (MonadBaseControl)
import Control.Monad.Trans.Except.Extra (firstExceptT, hoistEither, newExceptT,
runExceptT)
runExceptT)

import qualified Cardano.Binary as Binary

Expand Down
4 changes: 2 additions & 2 deletions cardano-db-sync/src/Cardano/DbSync/Era/Byron/Util.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}

module Cardano.DbSync.Era.Byron.Util
Expand Down Expand Up @@ -37,8 +37,8 @@ import qualified Cardano.Chain.Block as Byron
import qualified Cardano.Chain.Common as Byron
import qualified Cardano.Chain.Genesis as Byron
import qualified Cardano.Chain.Slotting as ByronInsanity
import qualified Cardano.Chain.Update as Byron
import qualified Cardano.Chain.UTxO as Byron
import qualified Cardano.Chain.Update as Byron

import Crypto.Hash (Blake2b_256)

Expand Down
2 changes: 1 addition & 1 deletion cardano-db-sync/src/Cardano/DbSync/Era/Shelley/Insert.hs
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ import qualified Cardano.Crypto.Hash as Crypto
import qualified Cardano.Db as DB
import Cardano.DbSync.Config.Types
import Cardano.DbSync.Era.Shelley.Metadata
import Cardano.DbSync.Era.Shelley.Query
import qualified Cardano.DbSync.Era.Shelley.Util as Shelley
import Cardano.DbSync.Error
import Cardano.DbSync.Era.Shelley.Query
import Cardano.DbSync.LedgerState
import Cardano.DbSync.Types
import Cardano.DbSync.Util
Expand Down
6 changes: 3 additions & 3 deletions cardano-db-sync/src/Cardano/DbSync/Era/Shelley/Query.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ module Cardano.DbSync.Era.Shelley.Query

import qualified Cardano.Crypto.Hash as Crypto
import Cardano.Db
import Cardano.DbSync.Types
import Cardano.DbSync.Era.Shelley.Util (unKeyHashRaw)
import Cardano.DbSync.Types
import Cardano.DbSync.Util

import Control.Monad.IO.Class (MonadIO)
Expand All @@ -25,8 +25,8 @@ import Data.Either (fromRight)
import Data.Maybe (listToMaybe)
import Data.Word (Word64)

import Database.Esqueleto (InnerJoin (..), Value (..), (^.), (==.), (<=.),
desc, from, on, orderBy, select, val, where_)
import Database.Esqueleto (InnerJoin (..), Value (..), desc, from, on, orderBy, select,
val, where_, (<=.), (==.), (^.))
import Database.Persist.Sql (SqlBackend)

import qualified Shelley.Spec.Ledger.TxBody as Shelley
Expand Down

0 comments on commit 4b1b790

Please sign in to comment.