-
-
Notifications
You must be signed in to change notification settings - Fork 502
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
v2.11 Roadmap #1446
Comments
FYI all 2.11 features can be found in the (or run => any early feedback is greatly appreciated <= |
I just switched to 2.10.0-rc.6 and everything is ok so far. Only one thing I had to google was |
Should the |
I wouldn't go that far, at this point people should already know that in v3 they will be removed and I don't want to cause hundreds of deprecation warnings if you are fine with the mutable modules |
Could we modify the original issue description to have checkboxes so we can easily keep track of what items have been backported already? I see some work has already started in #1455 but I imagine there will be many more of these PRs coming soon to do the rest of the work (actually there was already #1450 and #1449 as well) |
@cdimitroulas the heavy lifting is already done in the |
OK no problem! |
Are there items from this roadmap which you think would be suitable for others to help out with? Perhaps if you let us know whether there are any such items so that we can take some of the load off your end that would be easiest then :) |
@cdimitroulas sure, there are some items in the list that are tagged with a question mark:
I'm not totally sure about them, they derive from what I did in v3 but I would like to discuss with the community. Also, when the backporting is over, I would like some help to double check the alignment with v3: perfect alignment (when possible of course) is especially important to make the migration path easier. |
Only just seen the comments here, will hold off on any more back-porting. 👍 Is there anything that can done in the meantime, especially getting 2.10.0 released? (Seems pretty stable now.)
This is always a great (but complex) approach to take, so thanks. Divergence then back-porting is definitely a tricker approach, but sometimes needed. Do you plan to merge the |
I still haven't found a good way to structure a module. I started with:
and it was fine, but then when I started deriving functions from instances I ended up with a mix:
If we come up with a standand way to organize a module I can try to comply while developing v3, which should result in lesser merge conflicts, WDYT? |
It's probably useful to have such a standard, but not sure I know enough on how to group. Sounds like the former option might still make sense, just the derived functions should be positioned by their signature rather than their implementation? Either way, a module being consistent across branches is probably a more important goal? |
Just took a look at comparing the HEAD of
I don't know which other modules are in a better/worse state, but it should be possible to closely align them with changes on both sides (though more on There look to be other changes on |
Is there something I can do to help with the release of this version? |
@vinassefranche v2.11 is almost ready but these questions are still open. We may decide to postpone them to v2.12 though. |
I don't know if I can help on these. I don't have much input on them. Tell me if you need some code exploration to be done. |
@vinassefranche |
If the mutable collections are deprecated, does it make sense to drop the "Readonly" prefix on the immutable ones? \ Avoids verbosity, and in FP generally you're defaulting to immutables anyway. I know I could just |
@kylegoetz How would you handle the already existing native |
(pretty much a big backporting from v3)
traverseReadonlyArrayWithIndex
(andtraverseReadonlyArrayWithIndexSeq
when makes sense) to all data types and deprecate:traverseArrayWithIndex
traverseArray
sequenceArray
traverseSeqArrayWithIndex
traverseSeqArray
sequenceSeqArray
Array
/ReadonlyArray
range
, useNonEmptyArray
/ReadonlyNonEmptyArray
APIsTraversable
sequence
?ReadonlyTuple
Tuple2
module and deprecateReadonlyTuple
?Foldable
traverse_
?M
toE
: examplereduceM
->reduceE
internal
moduleEitherT
bracket
and refactor:IOEither
ReaderEither
ReaderTaskEither
TaskEither
orLeft
orElseFirst
orElseFirstW
):IOEither
ReaderEither
ReaderTaskEither
TaskEither
Witherable
wiltDefault
,witherDefault
Either
Option
ReadonlyArray
ReadonlyMap
ReadonlyRecord
These
ApT
Option
dependencytraverseReadonlyNonEmptyArrayWithIndex
etraverseReadonlyArrayWithIndex
TaskThese
ApT
traverseReadonlyNonEmptyArrayWithIndex
etraverseReadonlyArrayWithIndex
,traverseReadonlyNonEmptyArrayWithIndexSeq
etraverseReadonlyArrayWithIndexSeq
function
SK
Either
IO
IOEither
Option
Reader
ReaderEither
ReaderTask
ReaderTaskEither
State
StateReaderTaskEither
Task
TaskEither
TaskOption
tuple
module?tuple
constructor fromfunction
evolve
Predicate
modulePredicate
type fromfunction
function.getMonoid
example accordinglynot
fromfunction
Refinement
moduleRefinement
type fromfunction
not
,or
,and
Endomorphism
moduleEndomorphism
type fromfunction
getEndomorphismSemigroup
and rename,getEndomorphismMonoid
and renameFromReader
modulefromReaderK
(add toReaderEither
,ReaderTask
,ReaderTaskEither
,StateReaderTaskEither
)chainReaderK
(add toReaderEither
,ReaderTask
,ReaderTaskEither
,StateReaderTaskEither
)ask
(derived fromFromReader
),asks
(derived fromFromReader
),fromReader
eFromReader
Reader
(exceptfromReader
)ReaderEither
ReaderTask
ReaderTaskEither
StateReaderTaskEither
StateReaderTaskEither
ask
asks
FromState
modulefromStateK
(add toStateReaderTaskEither
)chainStateK
(add toStateReaderTaskEither
)FromThese
modulefromTheseK
void
modulesemigroupVoid
fromSemigroup
and rename toSemigroup
monoidVoid
fromMonoid
and rename toMonoid
struct
evolve
function
apply
Ord
equals
trivial
Eq
fromOrd
FromEither
Either
dependencyEither
combinators fromFromEither
FromEither1
fromPredicate
fromEitherK
chainEitherK
Option
FromEither
instancefromPredicate
fromFromEither.fromPredicate
fromEitherK
(derived formFromEither
)chainEitherK
(derived formFromEither
)Array
fromEither
constructorFromEither
instanceReadonlyArray
fromEither
constructorFromEither
instancenumber
MagmaSub
string
toUpperCase
Magma
reverse
concatAll
filterSecond
,filterFirst
endo
Array
/ReadonlyArray
isEmpty
a custom guardconcat
/concatW
match
,matchW
,matchLeftW
,matchRightW
(Add Array match function #1427)fromOption
fromOptionK
fromPredicate
(derived formFromEither
)fromEitherK
(derived formFromEither
)getUnionSemigroup
getUnionMonoid
getIntersectionSemigroup
getDifferenceMagma
Set
/ReadonlySet
getUnionSemigroup
getMonoidSemigroup
getIntersectionSemigroup
getDifferenceMagma
reduceRight
NonEmptyArray
/ReadonlyNonEmptyArray
concat
,concatW
matchLeft
,matchRight
(NonEmptyArray and ReadonlyNonEmptyArray are missing functions from Array and ReadonlyArray #1420 (comment))makeBy
modifyHead
updateHead
modifyLast
updateLast
range
replicate
rotate
sortBy
union
uniq
ReadonlyMap
union
,intersection
anddifference
getUnionSemigroup
getUnionMonoid
getIntersectionSemigroup
getDifferenceMagma
reduceWithIndex
foldMapWithIndex
reduceRightWithIndex
reduce
foldMap
reduceRight
traverseWithIndex
traverse
wither
wilt
ReadonlyRecord
union
,intersection
anddifference
getUnionSemigroup
getUnionMonoid
getIntersectionSemigroup
getDifferenceMagma
Ord
constraint to?keys
collect
toReadonlyArray
toUnfoldable
reduce
foldMap
reduceRight
reduceWithIndex
foldMapWithIndex
reduceRightWithIndex
traverseWithIndex
Alt
altAll
Alternative
altAll
TaskEither
fromTaskOptionK
chainTaskOptionK
The text was updated successfully, but these errors were encountered: