1
1
mirror of https://github.com/qfpl/applied-fp-course.git synced 2024-11-26 06:38:40 +03:00
applied-fp-course/applied-fp-course.cabal

239 lines
8.6 KiB
Plaintext
Raw Permalink Normal View History

Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
-- 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
2018-09-27 07:11:10 +03:00
tested-with: GHC==8.6.1
, GHC==8.4.3
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, GHC==8.2.2
, GHC==8.0.2
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
, 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.
2018-09-27 07:11:10 +03:00
build-depends: base >=4.8 && <4.13
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, wai == 3.2.*
, warp == 3.2.*
, http-types >= 0.9 && < 0.13
, bytestring == 0.10.*
, text == 1.2.*
, optparse-applicative >= 0.13 && < 0.15
, mtl == 2.2.*
, time >= 1.4 && < 1.10
the bonnet is up and we're on bricks. Fix it. (#71) * Add shell.nix that includes sqlite. previous shell environment didn't include an application that was necessary for developing the application. Whoops. This new shell.nix lets students add their own development tools if they want to try something out. `ghcid` for example. * Overhaul: New techniques, new exercises. Remove hspec-wai dependencies, add waargonaut. The aeson dependency has been replaced with waargonaut, and the exercises have been updated to match. Some exercises have been removed. Add the use of `finally` as a demonstration and reminder that we should be cleaning up things like connections when an app is done. Explain the purpose of the `runDB` function so that implementation makes more sense to students as an exercise. Add exercise to generalise the error type that is used in the `AppM` transformer that they implement. This flows onto a later exercise where they reuse this type to simplify a function that is not part of the core application. This also allows for an easier introduction of `ExceptT` as an exercise later in the course when `AppM` is no longer usable. Add a startup error constructor as making the students add it isn't informative when compared to the rest of the exercise. * Remove all duplicate tests. Rebuild Level03. Level03 has been changed entirely to be centered on writing tests for student code. The tests are then to be updated by the students as they progress through the course. There are no duplicated tests and there is a bit more incentive for students to get in and get their hands dirty with respect to testing their own work. Still not sure what to do with doctests just yet. More documentation is required for that. * Remove Level03 exe and modules. * Feedback driven development * Add tighter bounds for lens. * Add bounds for old-locale and contravariant. * Realign some imports. * Rename 'AppM'' to 'AppM' and 'AppM' to 'App'. * Clean up an utterly misleading and out of date comment regarding configuration package choices. Revert to unremarkable statement about it being JSON. * Remove redundant import of `Level02.Types` from `tests/Test.hs`. * Add waargonaut to extra-deps in stack.yaml. * Bump LTS in stack.yaml to 12.14. * Fix typos. * Improve wording, restructure some comments. * Revert LTS bump, increase contravariant upper bound for GHC 8.6.1 * Try updated stack.yaml * Update travis.yml: Bump patch versions of GHC: * 8.4.3 -> 8.4.4 * 8.6.1 -> 8.6.2 Drop Stack LTS: 6, 9, 10 Add Stack LTS: 11, 12 * Add fixes to help stack nightly builds on travis. Remove some comments in cabal file * Remove LTS-11, add in-memory db notes to level04 * add workshop levels document for expansion * Proofread changes. * Try to use cached GHC downloads for stack on travis * Remove install ghc flag from stack commands * Last try to stop stack downloading its own GHC * Revert stack travis changes. Attempt to pin appar version for 7.10.3. * Drop support for GHC 7.10.3
2018-12-07 03:16:13 +03:00
, old-locale >= 1.0 && < 1.5
, contravariant >= 1.4 && < 1.6
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, sqlite-simple == 0.4.*
, sqlite-simple-errors == 0.6.*
, semigroups == 0.18.*
, transformers >= 0.4 && < 0.6
the bonnet is up and we're on bricks. Fix it. (#71) * Add shell.nix that includes sqlite. previous shell environment didn't include an application that was necessary for developing the application. Whoops. This new shell.nix lets students add their own development tools if they want to try something out. `ghcid` for example. * Overhaul: New techniques, new exercises. Remove hspec-wai dependencies, add waargonaut. The aeson dependency has been replaced with waargonaut, and the exercises have been updated to match. Some exercises have been removed. Add the use of `finally` as a demonstration and reminder that we should be cleaning up things like connections when an app is done. Explain the purpose of the `runDB` function so that implementation makes more sense to students as an exercise. Add exercise to generalise the error type that is used in the `AppM` transformer that they implement. This flows onto a later exercise where they reuse this type to simplify a function that is not part of the core application. This also allows for an easier introduction of `ExceptT` as an exercise later in the course when `AppM` is no longer usable. Add a startup error constructor as making the students add it isn't informative when compared to the rest of the exercise. * Remove all duplicate tests. Rebuild Level03. Level03 has been changed entirely to be centered on writing tests for student code. The tests are then to be updated by the students as they progress through the course. There are no duplicated tests and there is a bit more incentive for students to get in and get their hands dirty with respect to testing their own work. Still not sure what to do with doctests just yet. More documentation is required for that. * Remove Level03 exe and modules. * Feedback driven development * Add tighter bounds for lens. * Add bounds for old-locale and contravariant. * Realign some imports. * Rename 'AppM'' to 'AppM' and 'AppM' to 'App'. * Clean up an utterly misleading and out of date comment regarding configuration package choices. Revert to unremarkable statement about it being JSON. * Remove redundant import of `Level02.Types` from `tests/Test.hs`. * Add waargonaut to extra-deps in stack.yaml. * Bump LTS in stack.yaml to 12.14. * Fix typos. * Improve wording, restructure some comments. * Revert LTS bump, increase contravariant upper bound for GHC 8.6.1 * Try updated stack.yaml * Update travis.yml: Bump patch versions of GHC: * 8.4.3 -> 8.4.4 * 8.6.1 -> 8.6.2 Drop Stack LTS: 6, 9, 10 Add Stack LTS: 11, 12 * Add fixes to help stack nightly builds on travis. Remove some comments in cabal file * Remove LTS-11, add in-memory db notes to level04 * add workshop levels document for expansion * Proofread changes. * Try to use cached GHC downloads for stack on travis * Remove install ghc flag from stack commands * Last try to stop stack downloading its own GHC * Revert stack travis changes. Attempt to pin appar version for 7.10.3. * Drop support for GHC 7.10.3
2018-12-07 03:16:13 +03:00
, lens >= 4.15 && < 4.18
, waargonaut >= 0.6 && < 0.7
the bonnet is up and we're on bricks. Fix it. (#71) * Add shell.nix that includes sqlite. previous shell environment didn't include an application that was necessary for developing the application. Whoops. This new shell.nix lets students add their own development tools if they want to try something out. `ghcid` for example. * Overhaul: New techniques, new exercises. Remove hspec-wai dependencies, add waargonaut. The aeson dependency has been replaced with waargonaut, and the exercises have been updated to match. Some exercises have been removed. Add the use of `finally` as a demonstration and reminder that we should be cleaning up things like connections when an app is done. Explain the purpose of the `runDB` function so that implementation makes more sense to students as an exercise. Add exercise to generalise the error type that is used in the `AppM` transformer that they implement. This flows onto a later exercise where they reuse this type to simplify a function that is not part of the core application. This also allows for an easier introduction of `ExceptT` as an exercise later in the course when `AppM` is no longer usable. Add a startup error constructor as making the students add it isn't informative when compared to the rest of the exercise. * Remove all duplicate tests. Rebuild Level03. Level03 has been changed entirely to be centered on writing tests for student code. The tests are then to be updated by the students as they progress through the course. There are no duplicated tests and there is a bit more incentive for students to get in and get their hands dirty with respect to testing their own work. Still not sure what to do with doctests just yet. More documentation is required for that. * Remove Level03 exe and modules. * Feedback driven development * Add tighter bounds for lens. * Add bounds for old-locale and contravariant. * Realign some imports. * Rename 'AppM'' to 'AppM' and 'AppM' to 'App'. * Clean up an utterly misleading and out of date comment regarding configuration package choices. Revert to unremarkable statement about it being JSON. * Remove redundant import of `Level02.Types` from `tests/Test.hs`. * Add waargonaut to extra-deps in stack.yaml. * Bump LTS in stack.yaml to 12.14. * Fix typos. * Improve wording, restructure some comments. * Revert LTS bump, increase contravariant upper bound for GHC 8.6.1 * Try updated stack.yaml * Update travis.yml: Bump patch versions of GHC: * 8.4.3 -> 8.4.4 * 8.6.1 -> 8.6.2 Drop Stack LTS: 6, 9, 10 Add Stack LTS: 11, 12 * Add fixes to help stack nightly builds on travis. Remove some comments in cabal file * Remove LTS-11, add in-memory db notes to level04 * add workshop levels document for expansion * Proofread changes. * Try to use cached GHC downloads for stack on travis * Remove install ghc flag from stack commands * Last try to stop stack downloading its own GHC * Revert stack travis changes. Attempt to pin appar version for 7.10.3. * Drop support for GHC 7.10.3
2018-12-07 03:16:13 +03:00
, attoparsec >= 0.13 && < 0.15
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
-- 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
2018-09-27 07:11:10 +03:00
build-depends: base >= 4.8 && <4.13
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, applied-fp-course
, wai == 3.2.*
, wai-extra == 3.0.*
, http-types >= 0.9 && < 0.13
, tasty >= 0.8 && < 1.2
, tasty-hunit >= 0.9 && < 0.11
the bonnet is up and we're on bricks. Fix it. (#71) * Add shell.nix that includes sqlite. previous shell environment didn't include an application that was necessary for developing the application. Whoops. This new shell.nix lets students add their own development tools if they want to try something out. `ghcid` for example. * Overhaul: New techniques, new exercises. Remove hspec-wai dependencies, add waargonaut. The aeson dependency has been replaced with waargonaut, and the exercises have been updated to match. Some exercises have been removed. Add the use of `finally` as a demonstration and reminder that we should be cleaning up things like connections when an app is done. Explain the purpose of the `runDB` function so that implementation makes more sense to students as an exercise. Add exercise to generalise the error type that is used in the `AppM` transformer that they implement. This flows onto a later exercise where they reuse this type to simplify a function that is not part of the core application. This also allows for an easier introduction of `ExceptT` as an exercise later in the course when `AppM` is no longer usable. Add a startup error constructor as making the students add it isn't informative when compared to the rest of the exercise. * Remove all duplicate tests. Rebuild Level03. Level03 has been changed entirely to be centered on writing tests for student code. The tests are then to be updated by the students as they progress through the course. There are no duplicated tests and there is a bit more incentive for students to get in and get their hands dirty with respect to testing their own work. Still not sure what to do with doctests just yet. More documentation is required for that. * Remove Level03 exe and modules. * Feedback driven development * Add tighter bounds for lens. * Add bounds for old-locale and contravariant. * Realign some imports. * Rename 'AppM'' to 'AppM' and 'AppM' to 'App'. * Clean up an utterly misleading and out of date comment regarding configuration package choices. Revert to unremarkable statement about it being JSON. * Remove redundant import of `Level02.Types` from `tests/Test.hs`. * Add waargonaut to extra-deps in stack.yaml. * Bump LTS in stack.yaml to 12.14. * Fix typos. * Improve wording, restructure some comments. * Revert LTS bump, increase contravariant upper bound for GHC 8.6.1 * Try updated stack.yaml * Update travis.yml: Bump patch versions of GHC: * 8.4.3 -> 8.4.4 * 8.6.1 -> 8.6.2 Drop Stack LTS: 6, 9, 10 Add Stack LTS: 11, 12 * Add fixes to help stack nightly builds on travis. Remove some comments in cabal file * Remove LTS-11, add in-memory db notes to level04 * add workshop levels document for expansion * Proofread changes. * Try to use cached GHC downloads for stack on travis * Remove install ghc flag from stack commands * Last try to stop stack downloading its own GHC * Revert stack travis changes. Attempt to pin appar version for 7.10.3. * Drop support for GHC 7.10.3
2018-12-07 03:16:13 +03:00
, tasty-wai >= 0.1 && < 0.2
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, bytestring == 0.10.*
, text == 1.2.*
, mtl == 2.2.*
, semigroups == 0.18.*
, transformers >= 0.4 && < 0.6
the bonnet is up and we're on bricks. Fix it. (#71) * Add shell.nix that includes sqlite. previous shell environment didn't include an application that was necessary for developing the application. Whoops. This new shell.nix lets students add their own development tools if they want to try something out. `ghcid` for example. * Overhaul: New techniques, new exercises. Remove hspec-wai dependencies, add waargonaut. The aeson dependency has been replaced with waargonaut, and the exercises have been updated to match. Some exercises have been removed. Add the use of `finally` as a demonstration and reminder that we should be cleaning up things like connections when an app is done. Explain the purpose of the `runDB` function so that implementation makes more sense to students as an exercise. Add exercise to generalise the error type that is used in the `AppM` transformer that they implement. This flows onto a later exercise where they reuse this type to simplify a function that is not part of the core application. This also allows for an easier introduction of `ExceptT` as an exercise later in the course when `AppM` is no longer usable. Add a startup error constructor as making the students add it isn't informative when compared to the rest of the exercise. * Remove all duplicate tests. Rebuild Level03. Level03 has been changed entirely to be centered on writing tests for student code. The tests are then to be updated by the students as they progress through the course. There are no duplicated tests and there is a bit more incentive for students to get in and get their hands dirty with respect to testing their own work. Still not sure what to do with doctests just yet. More documentation is required for that. * Remove Level03 exe and modules. * Feedback driven development * Add tighter bounds for lens. * Add bounds for old-locale and contravariant. * Realign some imports. * Rename 'AppM'' to 'AppM' and 'AppM' to 'App'. * Clean up an utterly misleading and out of date comment regarding configuration package choices. Revert to unremarkable statement about it being JSON. * Remove redundant import of `Level02.Types` from `tests/Test.hs`. * Add waargonaut to extra-deps in stack.yaml. * Bump LTS in stack.yaml to 12.14. * Fix typos. * Improve wording, restructure some comments. * Revert LTS bump, increase contravariant upper bound for GHC 8.6.1 * Try updated stack.yaml * Update travis.yml: Bump patch versions of GHC: * 8.4.3 -> 8.4.4 * 8.6.1 -> 8.6.2 Drop Stack LTS: 6, 9, 10 Add Stack LTS: 11, 12 * Add fixes to help stack nightly builds on travis. Remove some comments in cabal file * Remove LTS-11, add in-memory db notes to level04 * add workshop levels document for expansion * Proofread changes. * Try to use cached GHC downloads for stack on travis * Remove install ghc flag from stack commands * Last try to stop stack downloading its own GHC * Revert stack travis changes. Attempt to pin appar version for 7.10.3. * Drop support for GHC 7.10.3
2018-12-07 03:16:13 +03:00
-- [Challenge] Packages
, hedgehog >= 0.6 && < 0.7
, tasty-hedgehog >= 0.2 && < 0.3
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
test-suite doctests
-- Base language which the package is written in.
default-language: Haskell2010
type: exitcode-stdio-1.0
ghc-options: -threaded
main-is: doctests.hs
hs-source-dirs: tests
2018-09-27 07:11:10 +03:00
build-depends: base >= 4.8 && <4.13
, doctest >= 0.11 && < 0.17
the bonnet is up and we're on bricks. Fix it. (#71) * Add shell.nix that includes sqlite. previous shell environment didn't include an application that was necessary for developing the application. Whoops. This new shell.nix lets students add their own development tools if they want to try something out. `ghcid` for example. * Overhaul: New techniques, new exercises. Remove hspec-wai dependencies, add waargonaut. The aeson dependency has been replaced with waargonaut, and the exercises have been updated to match. Some exercises have been removed. Add the use of `finally` as a demonstration and reminder that we should be cleaning up things like connections when an app is done. Explain the purpose of the `runDB` function so that implementation makes more sense to students as an exercise. Add exercise to generalise the error type that is used in the `AppM` transformer that they implement. This flows onto a later exercise where they reuse this type to simplify a function that is not part of the core application. This also allows for an easier introduction of `ExceptT` as an exercise later in the course when `AppM` is no longer usable. Add a startup error constructor as making the students add it isn't informative when compared to the rest of the exercise. * Remove all duplicate tests. Rebuild Level03. Level03 has been changed entirely to be centered on writing tests for student code. The tests are then to be updated by the students as they progress through the course. There are no duplicated tests and there is a bit more incentive for students to get in and get their hands dirty with respect to testing their own work. Still not sure what to do with doctests just yet. More documentation is required for that. * Remove Level03 exe and modules. * Feedback driven development * Add tighter bounds for lens. * Add bounds for old-locale and contravariant. * Realign some imports. * Rename 'AppM'' to 'AppM' and 'AppM' to 'App'. * Clean up an utterly misleading and out of date comment regarding configuration package choices. Revert to unremarkable statement about it being JSON. * Remove redundant import of `Level02.Types` from `tests/Test.hs`. * Add waargonaut to extra-deps in stack.yaml. * Bump LTS in stack.yaml to 12.14. * Fix typos. * Improve wording, restructure some comments. * Revert LTS bump, increase contravariant upper bound for GHC 8.6.1 * Try updated stack.yaml * Update travis.yml: Bump patch versions of GHC: * 8.4.3 -> 8.4.4 * 8.6.1 -> 8.6.2 Drop Stack LTS: 6, 9, 10 Add Stack LTS: 11, 12 * Add fixes to help stack nightly builds on travis. Remove some comments in cabal file * Remove LTS-11, add in-memory db notes to level04 * add workshop levels document for expansion * Proofread changes. * Try to use cached GHC downloads for stack on travis * Remove install ghc flag from stack commands * Last try to stop stack downloading its own GHC * Revert stack travis changes. Attempt to pin appar version for 7.10.3. * Drop support for GHC 7.10.3
2018-12-07 03:16:13 +03:00
, applied-fp-course
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
-- 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.
2018-09-27 07:11:10 +03:00
build-depends: base >=4.8 && <4.13
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, 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.
2018-09-27 07:11:10 +03:00
build-depends: base >=4.8 && <4.13
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, 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.
2018-09-27 07:11:10 +03:00
build-depends: base >=4.8 && <4.13
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, 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.
2018-09-27 07:11:10 +03:00
build-depends: base >=4.8 && <4.13
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, 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.
2018-09-27 07:11:10 +03:00
build-depends: base >=4.8 && <4.13
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, 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.
2018-09-27 07:11:10 +03:00
build-depends: base >=4.8 && <4.13
Full Course Layout Change with a shuffle. (#54) * 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
2018-05-08 02:02:51 +03:00
, applied-fp-course
-- Base language which the package is written in.
default-language: Haskell2010