Comments (4)
Also @katlasik note that scalacheck is gone in the Scala 3 version
from mouse.
Hi @danicheg Not at all urgent, but Id like to do a zoom meeting with you sometime to talk about Scala 3 strategy for mouse. There were some non-obvious things I discovered when porting mouse to pure scala 3 that it'd be good to show-and-tell via a screenshare. Can you email me at [email protected]
some time..
from mouse.
Good idea, @benhutchison! I've left a comment about Scala 3 migration in your PR, but I will repeat my thoughts here too. I propose to have one main
branch and introduce a new syntax powered with extension methods in Scala 3 source directory (as I've done in #248 for tuple syntax for Scala 2 only).
from mouse.
Scala 3 src directories could work...
-
In my Scala 3 branch, there was a nice surprise: the need for whole
js
src tree went away completely when switching to extension methods andexport
instead of package objects and syntax traits. The root of the need is we offer some extensions forjava.net.Url
on jvm only. But the way package objects work in 2.x means two versions of package are needed, with different traits mixed in. Whereas in 3.x, it's a strictly "additive" model where you can just declare all extensions independently, both shared and platform-specific, and they get rolled together and exported. -
I also did a deprecation cycle in the branch. Methods have been added to core, and conventions have emerged, that didnt exist when mouse was first created. Eg Users should be nudged to move off
right
andleft
onOption
sincetoRight
/toLeft
in core work perfectly well now.parseDoubleOption
and friends on String is obselete now that core offerstoDoubleOption
etc. There's an emergent convention toto<X><Y>
for String conversions where X=payload type (eg Boolean) and Y=container (Option, Either etc) I moved to, dropping mouse'sparse
prefix. -
I threw out ScalaCheck. It always seemed like over-engineering in mouse, which is all about syntactic convenience. If a method is complex enough to need property testing, it probably belongs somewhere other than mouse.
-
Finally, I think one of mouse original "design goals" - to ease source compatibility between Cats and Scalaz - has largely gone away. Should probably remove from readme.
from mouse.
Related Issues (20)
- Publish for Cats 2.1.0? HOT 1
- Offer of code, int/long to le/be endian array and string to zero terminated array support HOT 1
- Add whenA/unlessA extension methods for Boolean HOT 1
- mapKeys method isn't pure HOT 2
- Proposal: rename master to main HOT 3
- Microsite for `mouse` HOT 2
- whenA and unlessA do not have lazy functions HOT 6
- Which Scala 3 version should be the base for `mouse`? HOT 4
- please review notes for 1.0.8 release HOT 2
- consider merging into cats HOT 7
- bad option `-doc-external-doc` on Scala 3 HOT 6
- Fix publishing HOT 2
- Adding mapValuesF to MapOps HOT 3
- Adding `toRightIn` and `toOptionIn` HOT 4
- Adding `mapInF` HOT 3
- Proposal: Enhance navigation in the root `mouse` package HOT 4
- Suggestion: Add `parFlatMapN` HOT 4
- RFE - partialFunction liftEither as extended method HOT 2
- parseUrl for String on the JVM HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mouse.