move many ucm-related modules into unison-cli library component

This commit is contained in:
Mitchell Rosen 2021-11-05 00:40:50 -04:00
parent c4b98235e2
commit d46bdcbf3e
37 changed files with 355 additions and 92 deletions

View File

@ -91,11 +91,15 @@ jobs:
- name: build dependencies
run: stack --no-terminal build --fast --only-dependencies
- name: build
run: stack --no-terminal build --fast
run: stack --no-terminal build --fast --no-run-tests --test
# Run each test suite (tests and transcripts)
- name: tests
- name: unison-cli tests
run: stack --no-terminal test unison-cli
- name: unison-parser-typechecker tests
run: stack --no-terminal exec tests
- name: unison-util-relation tests
run: stack --no-terminal test unison-util-relation
- name: transcripts
run: |
stack --no-terminal exec transcripts
@ -105,5 +109,3 @@ jobs:
run: stack --no-terminal exec unison transcript unison-src/transcripts-round-trip/main.md
- name: integration-tests
run: stack --no-terminal exec integration-tests
- name: other test suites
run: stack --no-terminal test unison-util-relation

View File

@ -45,6 +45,12 @@ cradle:
- path: "parser-typechecker/tests"
component: "unison-parser-typechecker:exe:tests"
- path: "unison-cli/src"
component: "unison-cli:lib"
- path: "unison-cli/tests"
component: "unison-cli:test:tests"
- path: "unison-cli/transcripts"
component: "unison-cli:exe:transcripts"

View File

@ -9,7 +9,6 @@ import System.IO
import qualified Unison.Core.Test.Name as Name
import qualified Unison.Test.ABT as ABT
import qualified Unison.Test.Cache as Cache
import qualified Unison.Test.ClearCache as ClearCache
import qualified Unison.Test.Codebase.Branch as Branch
import qualified Unison.Test.Codebase.Causal as Causal
import qualified Unison.Test.Codebase.Path as Path
@ -28,7 +27,6 @@ import qualified Unison.Test.Typechecker as Typechecker
import qualified Unison.Test.Typechecker.Context as Context
import qualified Unison.Test.Typechecker.TypeError as TypeError
import qualified Unison.Test.UnisonSources as UnisonSources
import qualified Unison.Test.UriParser as UriParser
import qualified Unison.Test.Util.Bytes as Bytes
import qualified Unison.Test.Util.PinBoard as PinBoard
import qualified Unison.Test.Util.Pretty as Pretty
@ -36,10 +34,7 @@ import qualified Unison.Test.Util.Relation as Relation
import qualified Unison.Test.Var as Var
import qualified Unison.Test.ANF as ANF
import qualified Unison.Test.MCode as MCode
import qualified Unison.Test.VersionParser as VersionParser
import qualified Unison.Test.GitSync as GitSync
import qualified Unison.Test.CodebaseInit as CodebaseInit
import qualified Unison.Test.CommandLine as CommandLine
-- import qualified Unison.Test.BaseUpgradePushPullTest as BaseUpgradePushPullTest
test :: Test ()
@ -66,17 +61,12 @@ test = tests
, ANF.test
, MCode.test
, Var.test
, ClearCache.test
, Typechecker.test
, UriParser.test
, Context.test
, GitSync.test
, Name.test
, VersionParser.test
, Pretty.test
, PinBoard.test
, CodebaseInit.test
, CommandLine.test
, Branch.test
]

View File

@ -37,23 +37,9 @@ library
Unison.Codebase.Causal.FoldHistory
Unison.Codebase.CodeLookup
Unison.Codebase.CodeLookup.Util
Unison.Codebase.Editor.AuthorInfo
Unison.Codebase.Editor.Command
Unison.Codebase.Editor.DisplayObject
Unison.Codebase.Editor.Git
Unison.Codebase.Editor.HandleCommand
Unison.Codebase.Editor.HandleInput
Unison.Codebase.Editor.Input
Unison.Codebase.Editor.Output
Unison.Codebase.Editor.Output.BranchDiff
Unison.Codebase.Editor.Output.DumpNamespace
Unison.Codebase.Editor.Propagate
Unison.Codebase.Editor.RemoteRepo
Unison.Codebase.Editor.SlurpComponent
Unison.Codebase.Editor.SlurpResult
Unison.Codebase.Editor.TodoOutput
Unison.Codebase.Editor.UriParser
Unison.Codebase.Editor.VersionParser
Unison.Codebase.Execute
Unison.Codebase.FileCodebase
Unison.Codebase.GitError
@ -77,21 +63,11 @@ library
Unison.Codebase.SyncMode
Unison.Codebase.TermEdit
Unison.Codebase.TermEdit.Typing
Unison.Codebase.TranscriptParser
Unison.Codebase.Type
Unison.Codebase.TypeEdit
Unison.Codebase.Verbosity
Unison.Codebase.Watch
Unison.CodebasePath
Unison.CommandLine
Unison.CommandLine.DisplayValues
Unison.CommandLine.FuzzySelect
Unison.CommandLine.Globbing
Unison.CommandLine.InputPattern
Unison.CommandLine.InputPatterns
Unison.CommandLine.Main
Unison.CommandLine.OutputMessages
Unison.CommandLine.Welcome
Unison.DeclPrinter
Unison.FileParser
Unison.FileParsers
@ -357,17 +333,14 @@ executable tests
Unison.Test.ABT
Unison.Test.ANF
Unison.Test.Cache
Unison.Test.ClearCache
Unison.Test.Codebase.Branch
Unison.Test.Codebase.Causal
Unison.Test.Codebase.Path
Unison.Test.CodebaseInit
Unison.Test.ColorText
Unison.Test.CommandLine
Unison.Test.Common
Unison.Test.DataDeclaration
Unison.Test.FileParser
Unison.Test.GitSync
Unison.Test.Lexer
Unison.Test.MCode
Unison.Test.Range
@ -381,15 +354,12 @@ executable tests
Unison.Test.Typechecker.Context
Unison.Test.Typechecker.TypeError
Unison.Test.TypePrinter
Unison.Test.Ucm
Unison.Test.UnisonSources
Unison.Test.UriParser
Unison.Test.Util.Bytes
Unison.Test.Util.PinBoard
Unison.Test.Util.Pretty
Unison.Test.Util.Relation
Unison.Test.Var
Unison.Test.VersionParser
Paths_unison_parser_typechecker
hs-source-dirs:
tests

View File

@ -2,49 +2,67 @@ name: unison-cli
github: unisonweb/unison
copyright: Copyright (C) 2013-2018 Unison Computing, PBC and contributors
default-extensions:
- ApplicativeDo
- BlockArguments
- DeriveFunctor
- DerivingStrategies
- DoAndIfThenElse
- FlexibleContexts
- FlexibleInstances
- LambdaCase
- MultiParamTypeClasses
- ScopedTypeVariables
- TupleSections
- TypeApplications
flags:
optimized:
manual: true
default: false
ghc-options: -Wall
dependencies:
- ListLike
- async
- base
- bytestring
- configurator
- containers >= 0.6.3
- cryptonite
- directory
- errors
- extra
- filepath
- haskeline
- lens
- megaparsec >= 5.0.0 && < 7.0.0
- mtl
- open-browser
- random >= 1.2.0
- regex-tdfa
- stm
- text
- unison-codebase-sqlite
- unison-core1
- unison-parser-typechecker
- unison-prelude
- unison-util
- unison-util-relation
- unliftio
library:
source-dirs: src
tests:
tests:
dependencies:
- easytest
- here
- shellmet
- temporary
- unison-cli
main: Main.hs
source-dirs: tests
executables:
unison:
source-dirs: unison
main: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-I0 -optP-Wno-nonportable-include-path
dependencies:
- base
- bytestring
- configurator
- directory
- directory
- errors
- filepath
- megaparsec
- mtl
- optparse-applicative >= 0.16.1.0
- shellmet
- template-haskell
- temporary
- text
- unison-core1
- unison-parser-typechecker
- unison-prelude
- unliftio
- unison-cli
when:
- condition: '!os(windows)'
dependencies: unix
@ -54,16 +72,9 @@ executables:
main: Transcripts.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-N -v0
dependencies:
- base
- directory
- easytest
- filepath
- shellmet
- process
- text
- unison-core1
- unison-parser-typechecker
- unison-prelude
- shellmet
build-tools:
- unison-cli:unison
@ -72,16 +83,33 @@ executables:
main: Suite.hs
ghc-options: -W -threaded -rtsopts "-with-rtsopts=-N -T" -v0
dependencies:
- base
- easytest
- process
- shellmet
- text
- time
- unison-core1
- unison-parser-typechecker
- unison-prelude
when:
- condition: flag(optimized)
ghc-options: -O2 -funbox-strict-fields
default-extensions:
- ApplicativeDo
- BangPatterns
- BlockArguments
- DeriveFunctor
- DeriveGeneric
- DerivingStrategies
- DoAndIfThenElse
- FlexibleContexts
- FlexibleInstances
- GeneralizedNewtypeDeriving
- LambdaCase
- MultiParamTypeClasses
- NamedFieldPuns
- OverloadedStrings
- PatternSynonyms
- RankNTypes
- ScopedTypeVariables
- TupleSections
- TypeApplications
- ViewPatterns

30
unison-cli/tests/Main.hs Normal file
View File

@ -0,0 +1,30 @@
module Main where
import EasyTest
import System.Environment (getArgs)
import System.IO
import qualified Unison.Test.ClearCache as ClearCache
import qualified Unison.Test.CommandLine as CommandLine
import qualified Unison.Test.GitSync as GitSync
import qualified Unison.Test.UriParser as UriParser
import qualified Unison.Test.VersionParser as VersionParser
test :: Test ()
test =
tests
[ ClearCache.test,
CommandLine.test,
GitSync.test,
UriParser.test,
VersionParser.test
]
main :: IO ()
main = do
args <- getArgs
mapM_ (`hSetEncoding` utf8) [stdout, stdin, stderr]
case args of
[] -> runOnly "" test
[prefix] -> runOnly prefix test
[seed, prefix] -> rerunOnly (read seed) prefix test
_ -> error "expected no args, a prefix, or a seed and a prefix"

View File

@ -21,6 +21,90 @@ flag optimized
manual: True
default: False
library
exposed-modules:
Unison.Codebase.Editor.AuthorInfo
Unison.Codebase.Editor.Command
Unison.Codebase.Editor.HandleCommand
Unison.Codebase.Editor.HandleInput
Unison.Codebase.Editor.Input
Unison.Codebase.Editor.Output
Unison.Codebase.Editor.Output.BranchDiff
Unison.Codebase.Editor.Output.DumpNamespace
Unison.Codebase.Editor.Propagate
Unison.Codebase.Editor.SlurpComponent
Unison.Codebase.Editor.SlurpResult
Unison.Codebase.Editor.TodoOutput
Unison.Codebase.Editor.UriParser
Unison.Codebase.Editor.VersionParser
Unison.Codebase.TranscriptParser
Unison.CommandLine
Unison.CommandLine.DisplayValues
Unison.CommandLine.FuzzySelect
Unison.CommandLine.Globbing
Unison.CommandLine.InputPattern
Unison.CommandLine.InputPatterns
Unison.CommandLine.Main
Unison.CommandLine.OutputMessages
Unison.CommandLine.Welcome
other-modules:
Paths_unison_cli
hs-source-dirs:
src
default-extensions:
ApplicativeDo
BangPatterns
BlockArguments
DeriveFunctor
DeriveGeneric
DerivingStrategies
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
GeneralizedNewtypeDeriving
LambdaCase
MultiParamTypeClasses
NamedFieldPuns
OverloadedStrings
PatternSynonyms
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
ViewPatterns
ghc-options: -Wall
build-depends:
ListLike
, async
, base
, bytestring
, configurator
, containers >=0.6.3
, cryptonite
, directory
, errors
, extra
, filepath
, haskeline
, lens
, megaparsec >=5.0.0 && <7.0.0
, mtl
, open-browser
, random >=1.2.0
, regex-tdfa
, stm
, text
, unison-codebase-sqlite
, unison-core1
, unison-parser-typechecker
, unison-prelude
, unison-util
, unison-util-relation
, unliftio
if flag(optimized)
ghc-options: -O2 -funbox-strict-fields
default-language: Haskell2010
executable integration-tests
main-is: Suite.hs
other-modules:
@ -30,28 +114,58 @@ executable integration-tests
integration-tests
default-extensions:
ApplicativeDo
BangPatterns
BlockArguments
DeriveFunctor
DeriveGeneric
DerivingStrategies
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
GeneralizedNewtypeDeriving
LambdaCase
MultiParamTypeClasses
NamedFieldPuns
OverloadedStrings
PatternSynonyms
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
ghc-options: -W -threaded -rtsopts "-with-rtsopts=-N -T" -v0
ViewPatterns
ghc-options: -Wall -W -threaded -rtsopts "-with-rtsopts=-N -T" -v0
build-depends:
base
ListLike
, async
, base
, bytestring
, configurator
, containers >=0.6.3
, cryptonite
, directory
, easytest
, errors
, extra
, filepath
, haskeline
, lens
, megaparsec >=5.0.0 && <7.0.0
, mtl
, open-browser
, process
, random >=1.2.0
, regex-tdfa
, shellmet
, stm
, text
, time
, unison-codebase-sqlite
, unison-core1
, unison-parser-typechecker
, unison-prelude
, unison-util
, unison-util-relation
, unliftio
if flag(optimized)
ghc-options: -O2 -funbox-strict-fields
default-language: Haskell2010
@ -64,31 +178,59 @@ executable transcripts
transcripts
default-extensions:
ApplicativeDo
BangPatterns
BlockArguments
DeriveFunctor
DeriveGeneric
DerivingStrategies
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
GeneralizedNewtypeDeriving
LambdaCase
MultiParamTypeClasses
NamedFieldPuns
OverloadedStrings
PatternSynonyms
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
ghc-options: -threaded -rtsopts -with-rtsopts=-N -v0
ViewPatterns
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -v0
build-tools:
unison
build-depends:
base
ListLike
, async
, base
, bytestring
, configurator
, containers >=0.6.3
, cryptonite
, directory
, easytest
, errors
, extra
, filepath
, haskeline
, lens
, megaparsec >=5.0.0 && <7.0.0
, mtl
, open-browser
, process
, random >=1.2.0
, regex-tdfa
, shellmet
, stm
, text
, unison-codebase-sqlite
, unison-core1
, unison-parser-typechecker
, unison-prelude
, unison-util
, unison-util-relation
, unliftio
if flag(optimized)
ghc-options: -O2 -funbox-strict-fields
default-language: Haskell2010
@ -105,35 +247,58 @@ executable unison
unison
default-extensions:
ApplicativeDo
BangPatterns
BlockArguments
DeriveFunctor
DeriveGeneric
DerivingStrategies
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
GeneralizedNewtypeDeriving
LambdaCase
MultiParamTypeClasses
NamedFieldPuns
OverloadedStrings
PatternSynonyms
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
ghc-options: -threaded -rtsopts -with-rtsopts=-I0 -optP-Wno-nonportable-include-path
ViewPatterns
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-I0 -optP-Wno-nonportable-include-path
build-depends:
base
ListLike
, async
, base
, bytestring
, configurator
, containers >=0.6.3
, cryptonite
, directory
, errors
, extra
, filepath
, megaparsec
, haskeline
, lens
, megaparsec >=5.0.0 && <7.0.0
, mtl
, open-browser
, optparse-applicative >=0.16.1.0
, random >=1.2.0
, regex-tdfa
, shellmet
, stm
, template-haskell
, temporary
, text
, unison-cli
, unison-codebase-sqlite
, unison-core1
, unison-parser-typechecker
, unison-prelude
, unison-util
, unison-util-relation
, unliftio
if flag(optimized)
ghc-options: -O2 -funbox-strict-fields
@ -141,3 +306,75 @@ executable unison
build-depends:
unix
default-language: Haskell2010
test-suite tests
type: exitcode-stdio-1.0
main-is: Main.hs
other-modules:
Unison.Test.ClearCache
Unison.Test.CommandLine
Unison.Test.GitSync
Unison.Test.Ucm
Unison.Test.UriParser
Unison.Test.VersionParser
Paths_unison_cli
hs-source-dirs:
tests
default-extensions:
ApplicativeDo
BangPatterns
BlockArguments
DeriveFunctor
DeriveGeneric
DerivingStrategies
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
GeneralizedNewtypeDeriving
LambdaCase
MultiParamTypeClasses
NamedFieldPuns
OverloadedStrings
PatternSynonyms
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
ViewPatterns
ghc-options: -Wall
build-depends:
ListLike
, async
, base
, bytestring
, configurator
, containers >=0.6.3
, cryptonite
, directory
, easytest
, errors
, extra
, filepath
, haskeline
, here
, lens
, megaparsec >=5.0.0 && <7.0.0
, mtl
, open-browser
, random >=1.2.0
, regex-tdfa
, shellmet
, stm
, temporary
, text
, unison-cli
, unison-codebase-sqlite
, unison-core1
, unison-parser-typechecker
, unison-prelude
, unison-util
, unison-util-relation
, unliftio
if flag(optimized)
ghc-options: -O2 -funbox-strict-fields
default-language: Haskell2010