Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a shell.nix and instructions for using it #2654

Merged
merged 1 commit into from
Dec 7, 2018

Conversation

ceedubs
Copy link
Contributor

@ceedubs ceedubs commented Dec 2, 2018

I have mixed feelings about this. On the one hand, it feels like which
tools a developer uses in their environment shouldn't bleed into the
source repository. On the other hand, getting a proper Cats development
environment includes wrangling some finicky bits that can be tricky for
a Scala developer (such as managing Jekyll and Node.js versions). I'm
generally in favor of lowering this barrier and using a deterministic
build environment.

I've been using something like this for a while when working on Cats and
thought that I'd put together this PR in case others are interested in
doing the same. If people aren't crazy about this, it's no big deal;
it's easy enough to have it ignored by git.

@ceedubs
Copy link
Contributor Author

ceedubs commented Dec 2, 2018

@tpolecat I've seen you comment on the mixed reviews that you've seen of Nix. For what it's worth, if you are on a Mac, I don't think that Nix is quite there as a Homebrew replacement, but I think that it works well for isolated development environments such as the one described in this PR. (I've also been using it as a Homebrew replacement, but it has required a lot of tinkering and some looking at source code, and not everything that I would want is there -- I think that the story is probably a bit better if you are running NixOS).

I have mixed feelings about this. On the one hand, it feels like which
tools a developer uses in their environment shouldn't bleed into the
source repository. On the other hand, getting a proper Cats development
environment includes wrangling some finicky bits that can be tricky for
a Scala developer (such as managing Jekyll and Node.js versions). I'm
generally in favor of lowering this barrier and using a deterministic
build environment.

I've been using something like this for a while when working on Cats and
thought that I'd put together this PR in case others are interested in
doing the same. If people aren't crazy about this, it's no big deal;
it's easy enough to have it ignored by git.
@codecov-io
Copy link

codecov-io commented Dec 2, 2018

Codecov Report

Merging #2654 into master will decrease coverage by 0.25%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2654      +/-   ##
==========================================
- Coverage   95.12%   94.86%   -0.26%     
==========================================
  Files         363      363              
  Lines        6704     6684      -20     
  Branches      289      283       -6     
==========================================
- Hits         6377     6341      -36     
- Misses        327      343      +16
Impacted Files Coverage Δ
testkit/src/main/scala/cats/tests/CatsSuite.scala 33.33% <0%> (-36.67%) ⬇️
core/src/main/scala/cats/syntax/either.scala 86.76% <0%> (-12.5%) ⬇️
.../src/main/scala/cats/data/RepresentableStore.scala 83.33% <0%> (-4.17%) ⬇️
core/src/main/scala/cats/data/IorT.scala 97.74% <0%> (-0.05%) ⬇️
core/src/main/scala/cats/Eval.scala 98.78% <0%> (-0.05%) ⬇️
core/src/main/scala/cats/data/Ior.scala 98.52% <0%> (-0.02%) ⬇️
core/src/main/scala/cats/data/ContT.scala 100% <0%> (ø) ⬆️
laws/src/main/scala/cats/laws/MonadLaws.scala 100% <0%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0bea999...45d025f. Read the comment docs.

@ceedubs
Copy link
Contributor Author

ceedubs commented Dec 2, 2018

This code coverage report makes no sense to me...

@rossabaker
Copy link
Member

I think this is harmless for those who don't know Nix it and useful for those who do, or are willing to try.

Copy link
Contributor

@kailuowang kailuowang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@LukaJCB
Copy link
Member

LukaJCB commented Dec 3, 2018

I haven't used Nix much yet (though I definitely want to), but I think this is small enough to be perfectly fine as part of this Repo :)

@kailuowang kailuowang merged commit b9707f1 into typelevel:master Dec 7, 2018
@kailuowang kailuowang added this to the 1.6 milestone Jan 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants