haskell-org / summer-of-haskell

Source code of summer.haskell.org
http://summer.haskell.org/
Other
86 stars 74 forks source link

Real World Haskell book: inspect, systematize outdated stuff and prepare a basis for fixes #131

Closed AleXoundOS closed 1 year ago

AleXoundOS commented 3 years ago

Following "Is Real World Haskell out of date in some ways?" and improving the state of Haskell for beginners. However:

The GSoC rules state that it must involve writing code primarily (as opposed to docs).

I'm not sure the amount of fixes for broken/deprecated code itself in the book is enough for a GSoC. Moreover, this may not be an optimal task for a non-professional haskeller.

But there are some more ideas which may or not constitute a GSoC task:

  1. Systematize haskell tools and libraries infrastructure instructions from the book. In the presence of modern tools document which instructions are:
    • valid
    • valid, but deprecated
    • outdated
    • insufficient (i.e. Windows gtk2hs instructions or missing Nix/OS)
  2. Systematize all code examples. In the presence of modern GHC document which:
    • build and run correctly
    • build and run correctly, but deprecated
    • do not build or run
  3. Write tests for all examples.
  4. Set up a continuous integration system for code examples in conjunction with a specific tools insfracstracture. This way it will be clear and easy to track which stackage LTS / GHC version / NixOS version is compatible or not.
  5. Upgrade the book text into Literate Haskell so that what we test is what we publish (unsure).
  6. Discover and document available modern solutions for outdated/deprecated/missing tools infrastructure.
  7. Write cabal, stack and nix project configurations for all code examples in the book.
  8. Make suggestions or fixes for code examples. Some may include replacement of entire libraries if they are not "Real World" anymore.

So in other words prepare a basis for easy gradual update.

Also, a student may have a different view on the book and catch problems, which an experienced Haskell programmer would unwittingly ignore when solving exercises from the book.

jaspervdj commented 3 years ago

There is a reasonable amount of code in the examples, so I think this would probably be a big enough workload. I'm not sure if "examples" constitute documentation; I can check with the GSoC admins to make sure.

However, I'm a worried if this would cause the examples to get out of date with the text. Maybe we should do this on top of an existing project like this one? https://github.com/tssm/up-to-date-real-world-haskell

AleXoundOS commented 3 years ago

Maybe we should do this on top of an existing project like this one? https://github.com/tssm/up-to-date-real-world-haskell

Yeah, why not.

jaspervdj commented 1 year ago

Cleaning up for 2023, if you receive this notification and have ideas from this year, please submit them!