typelevel/squants

Cross-compilation with Dotty and other platforms

Closed this issue · 10 comments

So I've started to work on making squants ready for Dotty, which lead to (hello, unshaved yaks) replacing tut with mdoc and some build modifications.

The WIP is in here: master...keynmol:dotty

Should I attempt to break it down or will it be okay to submit as one unit?

There's a lot of things that just don't sit right with Dotty as a whole, so I'm wondering what's the take on the actual design of the library going forward.

We actually had a working version of squants in the dotty community build: https://github.com/dotty-staging/squants/commits/bbbb64791b2be3ebc53943cdfa94871ce2b79e7a, but given that it seems like this project isn't actively maintained upstream currently, we'll probably drop it until it's officially supported in this repo so we don't have to maintain it ourselves.

Hello @keynmol @smarter Does anyone know if squants is indeed in active maintenance by anyone interested in scala 3?
It's one of the 2 libraries blocking our path to full migration. Unfortunately time and budgetary constraints prevent us from taking up this particular burden, but if it's not happening we'll just cobble something together for our very simple use cases (multiple UoM in mass and space in the logistics sector occasioned by customers in different countries)

@larsrh and @cquiroz seem to be merging some PRs, may be they can weigh in :)

We'd certainly accept PRs to get squants to cross compile to dotty
It doesn't have too many dependencies so it may be straightforward but I haven't tried it

Ok I'll try to finish my PR then. Only issue I was having was with tests but that was 3 months ago and Scala 3 stuff has certainly progressed a lot more since then :)

many thanks for this!

Thanks for notifying me, @keynmol! I'm very interested in getting Dotty support for all Typelevel libraries. To that extent, #406 already prepared some stuff. Sadly I don't have time to look out for all the projects 😉 But feel free to sent a PR and tag me there for a review.

@keynmol at this point I can't really use squants (1.7+) because of mdoc runtime deps, which grabs JBoss undertow and other things I don't really like to see in my Cats project.

I think it's somewhat related to the cross compiling plugins and current SBT setup, need investigating.

For now, I'm forced to exclude it explicitly

("org.typelevel" %% "squants" % "1.8.0").excludeAll(ExclusionRule("org.scalameta", "mdoc_2.13"),
                                                    ExclusionRule("org.scalameta", "mdoc-runtime_2.13"),
                                                    ExclusionRule("org.scalameta", "mdoc-interfaces_2.13")
)

Dotty support has been included for a while

🎉