Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 28 19:44
    KineticCookie commented #1592
  • Sep 27 06:17
    blast-hardcheese commented #1592
  • Sep 27 06:13

    blast-hardcheese on core-v0.75.2

    (compare)

  • Sep 27 06:05
    blast-hardcheese labeled #1539
  • Sep 27 06:03

    blast-hardcheese on master

    Update akka-http, akka-http-tes… Merge pull request #1576 from s… (compare)

  • Sep 27 06:03
    blast-hardcheese closed #1576
  • Sep 27 06:03
    codecov[bot] commented #1576
  • Sep 27 05:49
    blast-hardcheese closed #1553
  • Sep 27 05:49
    blast-hardcheese closed #1551
  • Sep 27 05:48

    blast-hardcheese on master

    Update scala-library, scala-ref… Update wartremover.sbt Update scoverage.sbt and 2 more (compare)

  • Sep 27 05:48
    blast-hardcheese closed #1589
  • Sep 27 05:47
    codecov[bot] commented #1589
  • Sep 27 05:47
    codecov[bot] commented #1589
  • Sep 27 05:47
    codecov[bot] commented #1589
  • Sep 27 05:46
    blast-hardcheese synchronize #1576
  • Sep 27 05:46
    codecov[bot] commented #1589
  • Sep 27 05:46
    codecov[bot] commented #1589
  • Sep 27 05:27
    blast-hardcheese synchronize #1589
  • Sep 27 05:11

    blast-hardcheese on master

    Trying to work around codecov b… (compare)

  • Sep 27 03:16
    blast-hardcheese closed #1584
jonasberg
@jonasberg:matrix.org
[m]
Sure, I can (try) to take care of that. I won't be able to do it today as it is already late but if there is no hurry I'm going to implement it and create a PR.
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
Yep -- the functionality is in the core and CLI drivers, but you're exactly right -- it didn't get all the way to the sbt plugin
I'll take care of it now and have a new release, 0.70.0.2, with that functionality shortly. It's my fault for not noticing that it wasn't finished in the first place πŸ˜‰
jonasberg
@jonasberg:matrix.org
[m]
ok ok :)
I just started using guardrail and was not in touch with its internals
so if you want to push 0.70.0.2 soon, I agree it might be better if you do it this time 😁
ah hey: thank you for adding basic auth support πŸ™
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
almost entirely community driven, I'm appreciative for the contribution as well πŸ™‚
the guardrail internals are not particularly straightforward, but things are getting better I think
guardrail-dev/sbt-guardrail#172 is available for review, I'll leave it up for a few hours then merge and release
jonasberg
@jonasberg:matrix.org
[m]
awesome, thank you πŸ‘οΈ
I haven't had a deep look into the Code of your basic auth PR, but am I right that for the server-side the specified auth type doesn't really matter, because you provide your own logic through the http4s middleware. Where it makes a difference is on the client side. Is that correct?
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
jonasberg Correct. There are a few different variants of the server auth generator that all transform the Routes into AuthedRoutes parameterized by whatever type you specify
Even though the initial PR was intending to only support basic auth, by the end we ended up conforming to http4s' auth middleware interface, so it is actually compatible with digest auth, oauth, and other middleware providers
hopefully this isn't a problem for you, but http4s client generation has not been altered to support the different authentication schemes yet.
presumably it would be straightforward to add now that the groundwork is done, if that's necessary, I've just had my head down on this modularization work.
jonasberg
@jonasberg:matrix.org
[m]
If you generate a client based on a api spec that has auth for all or certain endpoints, is there a way to add credentials to the generated client today?
or is that not possible at all
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
that's certainly possible.
jonasberg
@jonasberg:matrix.org
[m]
ok, so it's just more convenience thing that this is missing. That should be ok for my use case πŸ‘οΈ
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
Yes. Low level protocol work can be done by way of supplying a pre-authenticated HttpClient[F], by way of FooClient.httpClient[F[_]](httpClient: Http4sClient[F], host: String = "http://localhost:1234")(implicit F: Async[F]): FooClient[F]
this is also used in the case of servers that misrepresent content types or include other odd network features that must be coerced
jonasberg
@jonasberg:matrix.org
[m]
had a look at my generated client and was wondering exactly that πŸ˜ƒ
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
πŸ‘οΈ
jonasberg
@jonasberg:matrix.org
[m]
Thank you!
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
Of course! I'm going to keep driving now, but please enjoy your evening
jonasberg
@jonasberg:matrix.org
[m]
Thanks, have a nice day
Lorenzo Gabriele
@lolgab
Hi :)
Thank you for guardrail! It is amazing!
I wanted to ask a question about optional fields on objects, is it possible to disable the = None default values for optional values?
blast_hardcheese
@blast_hardcheese:matrix.org
[m]

@lolgab Pardon for the delay in response! I must have missed the notification.

This isn't currently configurable, though I'm curious about your use case. Would you want to disable this in all cases, in order to make it obvious where the code needs to change if a spec changes?
The location where those None values are interpolated is here

blast_hardcheese
@blast_hardcheese:matrix.org
[m]
I don't have a great answer for you right now, since I'm still working on guardrail-dev/guardrail#1414, but once that is merged and released, you should be able to define a subclass of any of these generators directly in sbt, for instance like project/src/main/scala/dev/guardrail/CirceOverrides.scala. I'm trying to get that wrapped up soon, life has been getting in the way a bit πŸ˜…
Lorenzo Gabriele
@lolgab

Would you want to disable this in all cases, in order to make it obvious where the code needs to change if a spec changes?

Yes, I try to avoid default parameters since I always forget to propagate some of them and end up creating bugs.
I check if I can define that override myself, thank you very much :)

blast_hardcheese
@blast_hardcheese:matrix.org
[m]
I'll really try to wrap up the spi branch in the next few weeks, if you don't mind waiting; I can provide a working example of what you're trying to do once it's done
This kind of extensibility is a desired feature, to support companies that need to add internal frameworks
Lorenzo Gabriele
@lolgab

This kind of extensibility is a desired feature, to support companies that need to add internal frameworks

Definitely! Great, thank you!

martijn.hoekstra.zivver
@martijn.hoekstra.zivver:matrix.org
[m]
Hey all, I'm wondering what the status is of the projects CI -- github runners are failing, and have been for a long time. Can I help getting that passing?
blast_hardcheese
@blast_hardcheese:matrix.org
[m]

martijn.hoekstra.zivver: It's an unfortunate state of the MiMa checker -- I'm changing how the module system works, building towards a new minor release, but the build fails unless there's the GitHub major or minor tag present in the build event...

I was thinking of trying to use the GitHub API to collect the semver tags of merged PRs, though maybe as a stopgap just disabling MiMa checking on master would be acceptable

blast_hardcheese
@blast_hardcheese:matrix.org
[m]
The tests all pass on individual PRs though πŸ˜…
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
@martijnhoekstra: Thanks for bringing this up -- it was easy to lose sight of the visibility of the master CI tests and what that means to people checking out the repo for the first time. I've fixed it now, hopefully that improves confidence more broadly.
or martijn.hoekstra.zivver... sorry, mistyped
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
Stale PRs now reduced to 14 -- getting closer to addressing them all πŸ“ˆ
Lorenzo Gabriele
@lolgab
πŸ‘πŸ‘πŸ‘
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
@lolgab: OK. It's a little messy, but it is now possible to override built-in functionality in the source generators.
https://gist.github.com/blast-hardcheese/4e0037332eb606330b90c3b19650e874 is a gist to explain how to do it, with a link to a branch in the sample-sbt-http4s repo where it is used.
The reason I think this is useful is it permits new feature development, alternately better fitment to custom internal idioms.
iterating in this way ends up being way faster than modifying the main guardrail repository, as well as working in your existing repository, so you can see what kind of impact it would have on your real-world code
Each of the *Generator classes has a .copy method that takes all parameters, so you can just open a file, copy the entire function you want to modify, then modify and re-inject it via https://github.com/guardrail-dev/guardrail-sample-sbt-http4s/blob/a3c270dc2ef340ed7f980b6e866c9c1d2cafb3b4/custom-circe/src/main/scala/CustomCirce.scala#L120-L122
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
please let me know how the experience is, and if there are any obvious improvements that could be made.
(I actually anticipated it would be possible to do by defining the extension directly inside projects/, but I got bit by sbt/sbt#3498 )
Lorenzo Gabriele
@lolgab
Thank you very much @blast_hardcheese:matrix.org ! This is wonderful! Every great software has a plug-in system, and now also Guardrail has it (which was already great software :) )!
I'm going to try it and let you know :)
blast_hardcheese
@blast_hardcheese:matrix.org
[m]
sbt-guardrail 0.72.0 released, with some significant improvements. Pretty excited.