Skip to content

[#110] Maintenance#111

Merged
gromakovsky merged 6 commits intomasterfrom
gromak/#110-maintenance
Oct 23, 2019
Merged

[#110] Maintenance#111
gromakovsky merged 6 commits intomasterfrom
gromak/#110-maintenance

Conversation

@gromakovsky
Copy link
Member

@gromakovsky gromakovsky commented Oct 14, 2019

Resurrect o-clock in nightly resolver. Specifically:

  • Explicitly support GHC-8.8.
  • Bump many upper bounds.
  • Make benchmarks not buildable by default, remove allow-newer option.
  • Drop support for GHC-8.0 and GHC-8.2. They required a lot of conditionals and nowadays there are 3 newer GHC versions.

Fixes #110.

Problem: stack.yaml uses some old nightly resolver.
It seems to be a common practice to use recent LTS.

Solution: use latest LTS available at the moment – 14.8.
We still support resolver with 8.4, for that purpose
stack-8.4.4.yaml was added.
Problem: GHC-8.8 is a thing, we want to make sure that
we can build o-clock using stack and latest GHC.

Solution: add stack-8.8.1.yaml which uses nightly resolver
with GHC-8.8.1. Add such build to Travis config. Also add
cabal build with 8.8.1 and update o-clock.cabal (tested-with).
@gromakovsky gromakovsky self-assigned this Oct 14, 2019
Problem: we support GHC versions starting from 8.0, but 8.0 and 8.2
lack several features and it requires us to use CPP in many cases to
detect GHC version. Nowadays there are also 8.4, 8.6 and 8.6. My
personal opinion is that it is sufficient to support only the latest
three. It makes maintenance easier.

Solution: remove old stack.yaml configs, remove relevant lines from
Travis config, remove most of CPP checks from code.
Problem: there are new versions of some dependencies but out
upper bounds do not permit using them.

Solution: update upper bounds to permit latest versions. I've
checked that there are apparently no breaking changes that matter
for us.
Problem: our benchmarks depend on `time-units` and `tiempo` which are
rather dead libraries. Because of that we have to specify `allow-newer`
in Stack configurations and nightly resolver does not have `o-clock`
because it cares about benchmarks and these dependencies are not in
the resolver.

Solution: so we conditionally make benchmarks not buildable. One still
can build them by passing a new flag.
There are important changes so we would like to release a new
version.
@gromakovsky gromakovsky changed the title WIP [#110] Maintenance [#110] Maintenance Oct 14, 2019
@gromakovsky gromakovsky merged commit b114726 into master Oct 23, 2019
@gromakovsky gromakovsky deleted the gromak/#110-maintenance branch October 23, 2019 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

o-clock is not in nightly

2 participants