haskell-servant / haskell-servant/servant

Unbreak cookbooks and tutorial (Mono or multi repo?)

Open
#1,404 6 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.