Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 05 2019 14:43
    @typelevel-bot banned @jdegoes
  • Jan 31 2019 21:17
    codecov-io commented #484
  • Jan 31 2019 21:08
    scala-steward opened #484
  • Jan 31 2019 18:19
    andywhite37 commented #189
  • Jan 31 2019 02:41
    kamilongus starred typelevel/cats-effect
  • Jan 30 2019 00:01
    codecov-io commented #483
  • Jan 29 2019 23:51
    deniszjukow opened #483
  • Jan 29 2019 23:37
  • Jan 29 2019 23:22
  • Jan 29 2019 20:26
    Rui-L starred typelevel/cats-effect
  • Jan 29 2019 18:01
    jdegoes commented #480
  • Jan 29 2019 17:04
    thomaav starred typelevel/cats-effect
  • Jan 28 2019 17:43
    asachdeva starred typelevel/cats-effect
  • Jan 28 2019 07:12
    alexandru commented #480
  • Jan 28 2019 05:45
    codecov-io commented #482
  • Jan 28 2019 05:35
    daron666 opened #482
  • Jan 27 2019 13:56
    codecov-io commented #481
  • Jan 27 2019 13:46
    lrodero opened #481
  • Jan 27 2019 05:47
    codecov-io commented #460
  • Jan 27 2019 05:37
    codecov-io commented #460
Paul Snively
@paul-snively
Right. If you can possibly change test frameworks: Weaver, MUnit's cats-effect module, Kallikrein...
Daniel Spiewak
@djspiewak

Okay thanks, there should be a rule, no documentation on the webpage, the feature doesn't exist :-)

Yes. This. 100%

I mean, he can be kind of random, I guess? ;-)

tbh I'm pretty random :-)

We're starting to see a trend towards tighter integration with functional effects in testing frameworks. Weaver was really the first one here, but munit and even scalacheck now have support (via external modules). I would expect the next version of Specs will be in a similar boat.
In a sense, cats-effect-testing is a short-term "catch all" shim that fills in the gaps for frameworks which haven't already added this kind of support
I'd like to see it disappear someday :-)
Paul Snively
@paul-snively
@djspiewak: Right now, I think it fills a crucial role in integrating with the major frameworks that are already in heavy use and tend to have painful backward-compatibility stories upon upgrading.
Someone says "We're using ScalaTest," and they (probably) won't have much pain using cats-effect-testing with it.
Daniel Spiewak
@djspiewak
that's the goal exactly!
I don't want people to have to use a separate testing framework to have a nice experience with IO and Cats Effect in general
also part of my motivation here is exceptionally selfish, since you can pry Specs2 from my cold, dead hands :-P
Paul Snively
@paul-snively
I recently used ScalaTest 3.2. It was an excruciating experience.
$DAYJOB settled on sbt-docker-compose and MUnit with the cats-effect module going forward.
Christopher Davenport
@ChristopherDavenport
Thank goodness for Daniel being the other dedicated specs2 person.
I was starting to feel alone.
Paul Snively
@paul-snively
"Committed... or should be," said the MacApp project t-shirt.
Daniel Spiewak
@djspiewak
lol
MUnit is legitimately impressive. It's definitely missing something that I like quite a lot about specs, but I've been impressed by what I've seen from it so far.
Ryan Peters
@sloshy
I would love to use munit or weaver at work. We're stuck on scalatest because all of our tests are written with matcher syntax
But on personal projects I've been pretty pleased with both
Gavin Bisesi
@Daenyth
@sloshy I bet you could make something that's source-compatible for your most-commonly-used matcher dsl invocations, but defers to munit
then swap the traits
Ryan Peters
@sloshy
I actually tried that. Did not go over as well as I hoped lol
It does add a bit of indirection in the complexity of it all. I think as a team the decision was, at a future date we can evaluate moving new projects to a different framework if it's deemed preferably by a majority of people
Gavin Bisesi
@Daenyth
hard to do that if no one gets a chance to use it. Oh well
Adam Rosien
@arosien
val longProcess = (IO.sleep(5.seconds) *> IO(println("Ping!"))).foreverM

val srv: Resource[IO, ServerBinding[IO]] = for {
  _ <- longProcess.background
  server <- server.run
} yield server

val application = srv.use(binding => IO(println("Bound to " + binding)) *> IO.never)

What's server.run ?

@WickedUk_gitlab where's that example from? looks like http4s.

do you mean what is the type of server.run? or what are the execution semantics when it happens "after" the background?

Adam Rosien
@arosien
basically, it's really difficult to come up with examples that both illustrate the basic solutions (the point is to show background, but you're using background as the non-essential thing when looking from "the outside", which is about starting some server) and not confuse people with the details (server.run isn't defined in the snippet).
Gavin Bisesi
@Daenyth
Does anyone recall where the convo was yesterday(?) about clocks - realtime vs monotonic
Michael Pilquist
@mpilquist
cats-effect-dev
what’s up?
Gavin Bisesi
@Daenyth
adjusting my code and wanted to link to the convo in the commit ;)
Michael Pilquist
@mpilquist
:)
Gavin Bisesi
@Daenyth
hmm... I still can't find it :|
oh well'
Daniel Spiewak
@djspiewak
it was about 20 km worth of scrollback ago
rnd4222
@rnd4222_gitlab
Its unfortunate that gitter history is not easily browsable/searchable, sometimes useful tips are only accessible via google-indexed search results
Steven Fines
@sfines-clgx
yeah, i've found that frustrating too
Daniel Spiewak
@djspiewak
hence why documentation needs to be better!
Gavin Bisesi
@Daenyth
I've been trying to ask my specific questions on github issues and link to the issue in chat
and likewise in projects I help maintain I file issues for questions, or encourage askers to copy their question to an issue
I think gitter being so easy is part of why scala docs are so bad - people don't ask questions in a place that's easily searched
Adam Rosien
@arosien
questions asked via gitter are a great source for future documentation, blog posts, and, uhh, books. :D
rnd4222
@rnd4222_gitlab
I'm usually afraid of asking questions on github, because I don't want to clutter it with a (probably silly) questions that (probably) was already answered many times before
Daniel Spiewak
@djspiewak

I'm usually afraid of asking questions on github, because I don't want to clutter it with a (probably silly) questions that (probably) was already answered many times before

Don't be afraid! I'd rather reply and close tickets that have been answered previously rather than risk someone having a question that they didn't find an answer to

Adam Rosien
@arosien
oh i think this is the place for questions. it's just then ensuring they are subsequently recorded and tracked
Daniel Spiewak
@djspiewak
this is a better place for questions, but I'd rather you ask the question anywhere than not ask :-)
Adam Rosien
@arosien
yes
that too
David Flynn
@WickedUk_gitlab
val longProcess = (IO.sleep(5.seconds) *> IO(println("Ping!"))).foreverM

val srv: Resource[IO, ServerBinding[IO]] = for {
  _ <- longProcess.background
  server <- server.run
} yield server

val application = srv.use(binding => IO(println("Bound to " + binding)) *> IO.never)

What's server.run ?

@WickedUk_gitlab where's that example from? looks like http4s.

It's cats-effect Concurrency.background scaladoc.

Gabriel Volpe
@gvolpe
@rohan-sircar that's probably a better question for the Monix gitter channel