mirror of
https://github.com/qfpl/applied-fp-course.git
synced 2024-11-29 16:55:12 +03:00
dd907523ba
* Restructure entire course into a single library with multiple executable definitions. Makes working through the course a bit easier with respect to sandboxes, nix shells, and stack caching. Should be a side benefit of giving editor tooling a bit of an easier time. Lowers switch time between course levels. * Readme updates to suit new structure. Add comment to cabal file. * Syntax error in Travis yml file. Not sure where yet. * Applied some linting suggestions to travis file * Fixed missing comments in travis yml, removed duplicate executable entry in the cabal file * Added changelog file, vcs entry to cabal file * Fixing travis file, WIP. * Still trying * Added cabal.project file * Still trying (Travis) * Moved var declaration to higher level in travis.yml file. * Forgo the complexity of hvrs script and go low-tech. * Remove Haddocks from stack build. Add extra-deps because what was a working stack build is now failing for some reason, despite having the same version bounds and using the same LTS as before. * Added more deps to extra-deps to appease the stackbeast. * Updated base README * Readme tweaks, level 03 test updates * Moved Level07 to Level05, bumped other levels accordingly. * Moved 'Main' to 'Core'. Updated READMEs, first pass. Updated Cabal file. Updated Tests to handle change of Main to Core. * Proof read #3616 Lots of small fixes for file paths, wording, some additional exercises. Fixed up the tests to be more consistent as they've been reordered a few times and mostly left to rot. Readmes updated where needed. New exercise added to level07 for using the general `ExceptT` type. * Fix up some tests and avoid any more dynamic linking errors, I think * Fix up cabal config for doctests, missing packages and some exposed-modules * Removed use of Semigroup in tests to avoid CPP in cabal file for including semigroups package. Added bounds to base dependency for doctests test-suite
254 lines
9.0 KiB
Plaintext
254 lines
9.0 KiB
Plaintext
-- Initial level01.cabal generated by cabal init. For further
|
|
-- documentation, see http://haskell.org/cabal/users-guide/
|
|
|
|
-- The name of the package.
|
|
name: applied-fp-course
|
|
|
|
-- The package version. See the Haskell package versioning policy (PVP)
|
|
-- for standards guiding when and how versions should be incremented.
|
|
-- https://wiki.haskell.org/Package_versioning_policy
|
|
-- PVP summary: +-+------- breaking API changes
|
|
-- | | +----- non-breaking API additions
|
|
-- | | | +--- code changes with no API change
|
|
version: 0.1.0.0
|
|
|
|
-- A short (one-line) description of the package.
|
|
synopsis: Simplest of web apps for educational purposes.
|
|
|
|
-- A longer description of the package.
|
|
description: Haskell course for people looking to start building larger applications.
|
|
|
|
-- The license under which the package is released.
|
|
license: BSD3
|
|
|
|
-- The file containing the license text.
|
|
license-file: LICENCE
|
|
|
|
-- The package author(s).
|
|
author: QFPL @ Data61
|
|
|
|
-- An email address to which users can send suggestions, bug reports, and
|
|
-- patches.
|
|
maintainer: sean.chalmers@data61.csiro.au
|
|
|
|
-- A copyright notice.
|
|
copyright: Copyright (C) 2017 Commonwealth Scientific and Industrial Research Organisation (CSIRO)
|
|
|
|
category: Education
|
|
|
|
build-type: Simple
|
|
|
|
-- Extra files to be distributed with the package, such as examples or a README.
|
|
extra-source-files: changelog.md
|
|
|
|
-- Constraint on the version of Cabal needed to build this package.
|
|
cabal-version: >=1.10
|
|
|
|
tested-with: GHC==8.4.1
|
|
, GHC==8.2.2
|
|
, GHC==8.0.2
|
|
, GHC==7.10.3
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/qfpl/applied-fp-course
|
|
|
|
library
|
|
-- Modules included in this executable, other than Main.
|
|
exposed-modules:
|
|
Level01.Core
|
|
, Level02.Core
|
|
, Level02.Types
|
|
, Level03.Core
|
|
, Level03.Types
|
|
, Level04.Conf
|
|
, Level04.DB
|
|
, Level04.DB.Types
|
|
, Level04.Core
|
|
, Level04.Types
|
|
, Level04.Types.CommentText
|
|
, Level04.Types.Error
|
|
, Level04.Types.Topic
|
|
, Level05.AppM
|
|
, Level05.Conf
|
|
, Level05.DB
|
|
, Level05.DB.Types
|
|
, Level05.Core
|
|
, Level05.Types
|
|
, Level05.Types.CommentText
|
|
, Level05.Types.Error
|
|
, Level05.Types.Topic
|
|
, Level06.AppM
|
|
, Level06.Conf
|
|
, Level06.Conf.CommandLine
|
|
, Level06.Conf.File
|
|
, Level06.DB
|
|
, Level06.DB.Types
|
|
, Level06.Core
|
|
, Level06.Types
|
|
, Level06.Types.CommentText
|
|
, Level06.Types.Error
|
|
, Level06.Types.Topic
|
|
, Level07.AppM
|
|
, Level07.Conf
|
|
, Level07.Conf.CommandLine
|
|
, Level07.Conf.File
|
|
, Level07.DB
|
|
, Level07.DB.Types
|
|
, Level07.Core
|
|
, Level07.Responses
|
|
, Level07.Types
|
|
, Level07.Types.CommentText
|
|
, Level07.Types.Error
|
|
, Level07.Types.Topic
|
|
|
|
ghc-options: -Wall
|
|
-fno-warn-unused-binds
|
|
-fno-warn-unused-do-bind
|
|
-fno-warn-unused-imports
|
|
-fno-warn-type-defaults
|
|
-ferror-spans
|
|
|
|
-- Other library packages from which modules are imported.
|
|
build-depends: base >=4.8 && <4.12
|
|
, wai == 3.2.*
|
|
, warp == 3.2.*
|
|
, http-types >= 0.9 && < 0.13
|
|
, bytestring == 0.10.*
|
|
, text == 1.2.*
|
|
, optparse-applicative >= 0.13 && < 0.15
|
|
, aeson == 1.*
|
|
, mtl == 2.2.*
|
|
, time >= 1.4 && < 1.10
|
|
, sqlite-simple == 0.4.*
|
|
, sqlite-simple-errors == 0.6.*
|
|
, semigroups == 0.18.*
|
|
, transformers >= 0.4 && < 0.6
|
|
|
|
-- Directories containing source files.
|
|
hs-source-dirs: src
|
|
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|
|
|
|
test-suite app-fp-tests
|
|
default-language: Haskell2010
|
|
type: exitcode-stdio-1.0
|
|
|
|
hs-source-dirs: tests
|
|
main-is: Test.hs
|
|
|
|
other-modules: Level03Tests
|
|
, Level04Tests
|
|
, Level05Tests
|
|
, Level06Tests
|
|
, Level07Tests
|
|
|
|
build-depends: base >= 4.8 && <4.12
|
|
, applied-fp-course
|
|
, wai == 3.2.*
|
|
, wai-extra == 3.0.*
|
|
, hspec >= 2.2 && < 3.0
|
|
, hspec-wai >= 0.6 && < 0.10
|
|
, bytestring == 0.10.*
|
|
, text == 1.2.*
|
|
, mtl == 2.2.*
|
|
|
|
test-suite doctests
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|
|
type: exitcode-stdio-1.0
|
|
|
|
other-modules: Level04Tests
|
|
, Level05Tests
|
|
, Level06Tests
|
|
, Level07Tests
|
|
|
|
ghc-options: -threaded
|
|
main-is: doctests.hs
|
|
hs-source-dirs: tests
|
|
build-depends: base >= 4.8 && <4.12
|
|
, applied-fp-course
|
|
, mtl == 2.2.*
|
|
, hspec >= 2.2 && < 3.0
|
|
, hspec-wai >= 0.6 && < 0.10
|
|
, doctest >= 0.11 && < 0.16
|
|
|
|
-- Level Executables
|
|
executable level01-exe
|
|
-- .hs or .lhs file containing the Main module.
|
|
main-is: Level01.hs
|
|
-- Directories containing source files.
|
|
hs-source-dirs: exe
|
|
-- Other library packages from which modules are imported.
|
|
build-depends: base >=4.8 && <4.12
|
|
, applied-fp-course
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|
|
|
|
executable level02-exe
|
|
-- .hs or .lhs file containing the Main module.
|
|
main-is: Level02.hs
|
|
-- Directories containing source files.
|
|
hs-source-dirs: exe
|
|
-- Other library packages from which modules are imported.
|
|
build-depends: base >=4.8 && <4.12
|
|
, applied-fp-course
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|
|
|
|
executable level03-exe
|
|
-- .hs or .lhs file containing the Main module.
|
|
main-is: Level03.hs
|
|
-- Directories containing source files.
|
|
hs-source-dirs: exe
|
|
-- Other library packages from which modules are imported.
|
|
build-depends: base >=4.8 && <4.12
|
|
, applied-fp-course
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|
|
|
|
executable level04-exe
|
|
-- .hs or .lhs file containing the Main module.
|
|
main-is: Level04.hs
|
|
-- Directories containing source files.
|
|
hs-source-dirs: exe
|
|
-- Other library packages from which modules are imported.
|
|
build-depends: base >=4.8 && <4.12
|
|
, applied-fp-course
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|
|
|
|
executable level05-exe
|
|
-- .hs or .lhs file containing the Main module.
|
|
main-is: Level05.hs
|
|
-- Directories containing source files.
|
|
hs-source-dirs: exe
|
|
-- Other library packages from which modules are imported.
|
|
build-depends: base >=4.8 && <4.12
|
|
, applied-fp-course
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|
|
|
|
executable level06-exe
|
|
-- .hs or .lhs file containing the Main module.
|
|
main-is: Level06.hs
|
|
-- Directories containing source files.
|
|
hs-source-dirs: exe
|
|
-- Other library packages from which modules are imported.
|
|
build-depends: base >=4.8 && <4.12
|
|
, applied-fp-course
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|
|
|
|
executable level07-exe
|
|
-- .hs or .lhs file containing the Main module.
|
|
main-is: Level07.hs
|
|
-- Directories containing source files.
|
|
hs-source-dirs: exe
|
|
-- Other library packages from which modules are imported.
|
|
build-depends: base >=4.8 && <4.12
|
|
, applied-fp-course
|
|
-- Base language which the package is written in.
|
|
default-language: Haskell2010
|