@@ -29,68 +29,137 @@ import Control.Monad.Trans.Maybe (runMaybeT)
29
29
30
30
type ModuleName = Text
31
31
32
- -- renames without prefix: [(new name, old name)]
32
+ ------------------------
33
+ -- The refactor strategy
34
+ ------------------------
35
+
36
+ -- renames without Cardano.Api prefix: [(new name, old name)]
33
37
renames :: [(ModuleName , ModuleName )]
34
38
renames = map (bimap prependModulePrefix prependModulePrefix)
35
39
[ (" Byron.Internal.Key" , " Internal.Keys.Byron" )
36
- ,(" Address" , " Internal.Address" )
40
+
41
+ , (" Address" , " Internal.Address" )
42
+
37
43
, (" Block" , " Internal.Block" )
38
44
39
- -- TODO reexport through Cardano.Api.Tx
45
+ -- TODO reexport everything through Cardano.Api.Tx
46
+ , (" Tx.Internal.Body" , " Internal.Tx.Body" )
40
47
, (" Tx.Internal.Convenience" , " Internal.Convenience.Construction" )
41
48
, (" Tx.Internal.Fees" , " Internal.Fees" )
42
- -- TODO reexport through Cardano.Api.Query
43
- ,(" Query.Internal.Convenience" , " Internal.Convenience.Query" )
49
+ , (" Tx.Internal.Sign" , " Internal.Tx.Sign" )
44
50
45
- -- TODO reexport everything through Cardano.Api.Era
51
+ , (" Query" , " Internal.Query" )
52
+ , (" Query.Internal.Convenience" , " Internal.Convenience.Query" ) -- TODO reexport through Query module
53
+
54
+ -- TODO reexport everything through Era
46
55
, (" Era" , " Internal.Eras" )
47
56
, (" Era.Internal.Case" , " Internal.Eras.Case" )
48
57
, (" Era.Internal.Core" , " Internal.Eras.Core" )
49
- , (" Era.Internal.Eon.AllegraEraOnwards" , " Internal.Eon.AllegraEraOnwards" )
50
- , (" Era.Internal.Eon.AlonzoEraOnwards" , " Internal.Eon.AlonzoEraOnwards" )
51
- , (" Era.Internal.Eon.BabbageEraOnwards" , " Internal.Eon.BabbageEraOnwards" )
52
- , (" Era.Internal.Eon.ByronToAlonzoEra" , " Internal.Eon.ByronToAlonzoEra" )
53
- , (" Era.Internal.Eon.Convert" , " Internal.Eon.Convert" )
54
- , (" Era.Internal.Eon.ConwayEraOnwards" , " Internal.Eon.ConwayEraOnwards" )
55
- , (" Era.Internal.Eon.MaryEraOnwards" , " Internal.Eon.MaryEraOnwards" )
56
- , (" Era.Internal.Eon.ShelleyBasedEra" , " Internal.Eon.ShelleyBasedEra" )
57
- , (" Era.Internal.Eon.ShelleyEraOnly" , " Internal.Eon.ShelleyEraOnly" )
58
- , (" Era.Internal.Eon.ShelleyToAllegraEra" , " Internal.Eon.ShelleyToAllegraEra" )
59
- , (" Era.Internal.Eon.ShelleyToAlonzoEra" , " Internal.Eon.ShelleyToAlonzoEra" )
60
- , (" Era.Internal.Eon.ShelleyToBabbageEra" , " Internal.Eon.ShelleyToBabbageEra" )
61
- , (" Era.Internal.Eon.ShelleyToMaryEra" , " Internal.Eon.ShelleyToMaryEra" )
58
+ , (" Era.Internal.Eon.AllegraEraOnwards" , " Internal.Eon.AllegraEraOnwards" )
59
+ , (" Era.Internal.Eon.AlonzoEraOnwards" , " Internal.Eon.AlonzoEraOnwards" )
60
+ , (" Era.Internal.Eon.BabbageEraOnwards" , " Internal.Eon.BabbageEraOnwards" )
61
+ , (" Era.Internal.Eon.ByronToAlonzoEra" , " Internal.Eon.ByronToAlonzoEra" )
62
+ , (" Era.Internal.Eon.Convert" , " Internal.Eon.Convert" )
63
+ , (" Era.Internal.Eon.ConwayEraOnwards" , " Internal.Eon.ConwayEraOnwards" )
64
+ , (" Era.Internal.Eon.MaryEraOnwards" , " Internal.Eon.MaryEraOnwards" )
65
+ , (" Era.Internal.Eon.ShelleyBasedEra" , " Internal.Eon.ShelleyBasedEra" )
66
+ , (" Era.Internal.Eon.ShelleyEraOnly" , " Internal.Eon.ShelleyEraOnly" )
67
+ , (" Era.Internal.Eon.ShelleyToAllegraEra" , " Internal.Eon.ShelleyToAllegraEra" )
68
+ , (" Era.Internal.Eon.ShelleyToAlonzoEra" , " Internal.Eon.ShelleyToAlonzoEra" )
69
+ , (" Era.Internal.Eon.ShelleyToBabbageEra" , " Internal.Eon.ShelleyToBabbageEra" )
70
+ , (" Era.Internal.Eon.ShelleyToMaryEra" , " Internal.Eon.ShelleyToMaryEra" )
62
71
63
72
, (" Error" , " Internal.Error" )
64
73
65
74
, (" Genesis" , " Internal.Genesis" )
66
- -- TODO reexport through Genesis module
67
- , (" Genesis.Internal.Parameters" , " Internal.GenesisParameters" )
68
-
75
+ , (" Genesis.Internal.Parameters" , " Internal.GenesisParameters" ) -- TODO reexport through Genesis module
76
+
77
+ -- TODO export everything through Governance module
78
+ , (" Governance.Internal.Action.ProposalProcedure" , " Internal.Governance.Actions.ProposalProcedure" )
79
+ , (" Governance.Internal.Action.VotingProcedure" , " Internal.Governance.Actions.VotingProcedure" )
80
+ , (" Governance.Internal.Anchor" , " Internal.Anchor" )
81
+ , (" Governance.Internal.Metadata.DrepRegistration" , " Internal.Governance.Metadata.DrepRegistration" )
82
+ , (" Governance.Internal.Metadata.GovAction" , " Internal.Governance.Metadata.GovAction" )
83
+ , (" Governance.Internal.Metadata.Parsers" , " Internal.Governance.Metadata.Parsers" )
69
84
, (" Governance.Internal.Metadata.Validation" , " Internal.Governance.Metadata.Validation" )
85
+ , (" Governance.Internal.Poll" , " Internal.Governance.Poll" )
70
86
87
+ -- TODO reexport everything through IO
71
88
, (" IO" , " Internal.IO" )
89
+ , (" IO.Internal.Base" , " Internal.IO.Base" )
90
+ , (" IO.Internal.Compat" , " Internal.IO.Compat" )
91
+ , (" IO.Internal.Posix" , " Internal.IO.Posix" )
92
+ , (" IO.Internal.Win32" , " Internal.IO.Win32" )
72
93
73
94
, (" IPC" , " Internal.IPC" )
74
- -- TODO reexport through IPC module
75
- , (" IPC.Internal.Monad " , " Internal.IPC.Monad " )
95
+ , ( " IPC.Internal.Monad " , " Internal.IPC.Monad " ) -- TODO reexport through IPC module
96
+ , (" IPC.Internal.Version " , " Internal.IPC.Version " ) -- TODO reexport through IPC module
76
97
77
98
, (" LedgerState" , " Internal.LedgerState" )
78
99
79
- , (" Consensus" , " Internal.LedgerState" )
100
+ , (" Consensus.Internal.Mode" , " Internal.Modes" ) -- TODO reexport through Consensus module
101
+ , (" Consensus.Internal.InMode" , " Internal.InMode" ) -- TODO reexport through Consensus module -- should we get rid of this?
102
+
103
+ , (" Pretty" , " Internal.Pretty" )
104
+
105
+ , (" Plutus" , " Internal.Plutus" )
106
+ , (" Plutus.Script" , " Internal.Script" )
107
+ , (" Plutus.ScriptData" , " Internal.ScriptData" )
108
+
109
+ , (" ProtocolParameters" , " Internal.ProtocolParameters" )
110
+
111
+ , (" Serialise.Cbor.Canonical" , " Internal.Serialise.Cbor.Canonical" )
112
+ , (" Serialise.TextEnvelope" , " Internal.SerialiseTextEnvelope" )
113
+ , (" Serialise.Cip129" , " Internal.CIP.Cip129"
114
+ , (" Serialise.DeserialiseAnyOf" , " Internal.DeserialiseAnyOf" )
115
+ , (" Serialise.Internal.Json" , " Internal.Json" )
116
+ -- TODO this module needs to be removed: the conversion functions need to go into their respective places
117
+ -- TODO remove references to CDDL
118
+ , (" Serialise.TextEnvelope.Internal" , " Internal.SerialiseLedgerCddl" )
119
+
120
+ , (" Ledger.Internal" , " Internal.ReexposeLedger" )
121
+
122
+ , (" Network.Internal" , " Internal.ReexposeNetwork" )
123
+
124
+ , (" Certificate" , " Internal.Certificate" )
125
+
126
+ , (" Compatible.Tx" , " Internal.Compatible.Tx" )
127
+
128
+ , (" Experimental.Era" , " Internal.Experimental.Eras" )
129
+ , (" Experimental.Plutus.IndexedPlutusScriptWitness" , " Internal.Experimental.Plutus.IndexedPlutusScriptWitness" )
130
+ , (" Experimental.Plutus.Script" , " Internal.Experimental.Plutus.Script" )
131
+ , (" Experimental.Plutus.ScriptWitness" , " Internal.Experimental.Plutus.ScriptWitness" )
132
+ , (" Experimental.Plutus.Shim.LegacyScripts" , " Internal.Experimental.Plutus.Shim.LegacyScripts" )
133
+ , (" Experimental.Simple.Script" , " Internal.Experimental.Simple.Script" )
134
+ , (" Experimental.Tx" , " Internal.Experimental.Tx" )
135
+ , (" Experimental.Witness.AnyWitness" , " Internal.Experimental.Witness.AnyWitness" )
136
+ , (" Experimental.Witness.TxScriptWitnessRequirements" , " Internal.Experimental.Witness.TxScriptWitnessRequirements" )
137
+
138
+ , (" Feature" , " Internal.Feature" )
139
+
140
+ , (" HasTypeProxy" , " Internal.HasTypeProxy" )
141
+
142
+ , (" Hash" , " Hash" )
80
143
]
81
144
82
- -- TODO remove Cardano.Api.Shelley
145
+ -- TODO remove Cardano.Api.Shelley, and make sure that everything is exported from `Cardano.Api`
146
+ -- TODO move Cardano.Api.Internal.Tx.UTxO to Cardano.Api.Tx.UTxO - we don't need extra layer of redirection
83
147
where
84
148
prependModulePrefix t = modulePrefix <> " ." <> t
85
149
modulePrefix = " Cardano.Api"
86
150
87
151
-- TODO commits order:
88
152
-- 1. Update refactor.hs
89
153
-- 2. Adjust single function exports from modules, delete modules
90
- -- 3. Move modules not being exported to other-modules in cardano-api.cabal
91
- -- * caveat, some modules will still have to be exported
154
+ -- 3. Move some modules not being exported to other-modules in cardano-api.cabal
155
+ -- * caveat, some modules will still have to be exported, for e.g. for tests purposes
92
156
-- 4. Run refactor.hs renaming modules
93
157
158
+
159
+ -------------------------------------
160
+ -- The internals of the refactor code
161
+ -------------------------------------
162
+
94
163
type MonadApp e m = (HasCallStack , MonadIO m , MonadReader e m , HasLogFunc e )
95
164
96
165
substituteModuleNames :: [(ModuleName , ModuleName )] -> Text -> Text
@@ -120,8 +189,7 @@ main = runSimpleApp $ do
120
189
forM_ allFiles $ \ file -> do
121
190
if " .hs" `isSuffixOf` file
122
191
then do
123
- let shelley = (" Cardano.Api" , " Cardano.Api.Shelley" )
124
- updateFile (shelley: renames) file
192
+ updateFile renames file
125
193
else
126
194
removeEmptyDirectory file
127
195
0 commit comments