haskell-servant / haskell-servant/servant
Unbreak cookbooks and tutorial (Mono or multi repo?)
- Dominant language
- Haskell
- Stars
- 2k
- Forks
- 427
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 5
Description
Some cookbooks have been forsaken for many years now. I think it is very important to bring them back to life for the community.
I can't do it yet, for some of them, without breaking the CI.
Here are the external servant packages on which the cookbooks/tutorial depend on :
- servant-quickcheck
- servant-auth
- servant-multipart
- servant-swagger
- servant-blaze
- servant-js
2 options are in front of us :
## Mono repo
To avoid dependency loops ([like this](https://github.com/haskell-servant/servant-quickcheck/issues/74)), It think it would be nice to bring the packages back into the main servant repository.
### Pros
- Direct feedback on any change in servant, we would be forced to keep documentation up-to-date.
### Cons
- The cookbooks need to be compatible with ghc 8.0.2 (no DerivingStrategies, DerivingVia, import Data.Semigroup to have the (<>) operator is mandatory, etc.), which could lead to more verbosity. It could also be seen as a pro: they would always be compatible with the advertised compatible GHC versions of servant.
- Potentially longer CI time.
## Cookbooks and tutorial in their own repo
We could put the cookbooks and tutorial in their own repo and pin the packages they depend on.
### Pros
- The cookbooks could have different versions depending on the version of the packages they are using.
- Potentially shorter CI time
### Cons
- So far, the tendency has been to comment out the cookbooks if the package they rely on is not compatible with a new PR. If they are in their own repo, far away from our heart, we would probably forget them.
- If I see that servant is compatible with GHC 8.0.2, I would probably assume that the every coobooks would be compatible with it?
-*-*-*-
IMHO, the mono repository solution is better. What do you think?
Contributor guide
Assessment
This issue has not been assessed yet.