-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
0.29.0 Upgrade Guide #3369
Comments
It feels like the breaking changes are kind of glossed over, like, |
I have split breaking changes from normal improve changes. |
looks like |
btw what's the point of changing order in propEq ? I think the arguments should be sorted by how static they are. consider this: import { cond, propEq, T as _, flip } from 'ramda'
const eq = propEq('hour') // this has to be now changed to flip(propEq)('hour')
type OwnProps = {
hour: number
}
export const ClockBullet = cond<[OwnProps], JSX.Element>([
[eq(1), () => <IconClockHour1 fill="white" color="#228be6" />],
[eq(2), () => <IconClockHour2 fill="white" color="#228be6" />],
...
[_, () => <IconClock fill="white" color="#228be6" />]
]) |
What sort of versioning scheme is ramda following? Don't the breaking changes warrant a v1 release? |
No. Breaking changes are allowed in semantic versioning when you are in 0.* |
Major version zero is for initial development; ramda has been available for I-dont-know-how-many-years and has thousands of dependent packages. Isn't it time to declare v1 and start adhering to some stricter API stability requirements? |
Would have appreciated a param swap on
|
see the discussion in |
I really don't understand why you're switching the parameters order in Why not coming up with new names, but leaving the original functions intact? Maybe Just to be clear: I absolutely LOVE Ramda and I include it de facto in each NodeJS or Javascript project I work on. So it's not a rant, but a recommendation for improvement. |
I would prefer revert this change, based on the most common use case, discussed in the below issues/prs:
This change was happened and reverted before. Aligning function's props order is the same reason as it was introducing at the last time. There is no stronger reason for introducing the same change again. It also breaks the expectation of the semantic versioning convention if only bumps the minor version. (I know anything can happen in 0.x, but many bot settings like dependabot ignore rule is set to ignore major version and expecting no breaking change in minor version update) Maybe it's a naming problem as stated in this comment:
Could we clone the current |
Thanks all for the feedback. It seems the comments in favor of the old order far outnumber those in favor of the new order. I like the logic presented here, but from the reception of this change we need to go about any breaking changes we might make to these functions in a more deliberate manor, maybe after 1.0 as well. I think the simplest thing to do is revert this change asap, release 0.30.0, and possibly revisit at a later date. I will try to put up a PR at some point this week. |
Please don't change the order back. I refactored thousands of lines of code in multiple repos to change the order while also delivering tickets.. I'll have to lock that project to 0.29.0 .. this is really amateur guys, just release a 1.0.0 already so you start taking this library seriously. |
Just a reminder for everyone, the rules of semver dictact that any update for Though I would also argue that |
v0.28.0...v0.29.0
🆕 Added:
addIndexRight
isNotNil
swap
dropRepeatsBy
💥 Breaking Changes:
without
first argument must now be arraypropEq
/pathEq
parameters order: comparing value first,prop
/path
second. This change will makepropEq
/pathEq
parameters order be consistent topropSatisfies
/pathSatisfies
of
now works with Applicatives #3272 improveof
to work with more Applicative types.of
now receives two parameters instead of one: the first parameter is type Constructor, and the second parameter is the value to be wrapped💡 Changes:
assocPath
overwrite primitive values with keys in pathwithout
andintersection
time complexitytoString
clone
performance_reduce
to returnacc
when thelist
is null/undefined_cloneRegExp
min
andmax
logicidentical
#3210 remove placeholder check fromidentical
mergeWithKey
,mergeAll
,mergeLeft
,mergeRight
,mergeWith
curryX
dependency for internal transducer creator functionsgroupBy
enters a broken state when used as transducerdropLast
with negative and zero param when used as transducer_reduce
to_xReduce
(for transformers) and_reduce
(for reducers)clone
traverse
andsequence
Fantasy-Land compliant⭐ Miscellaneous
📋 Documentation fixes: #2004 #2116 #2368 #2797 #2955 #3010 #3220 #3221 #3228 #3235 #3242 #3244 #3263 #3291
✔️ Testing improvements: #3269 #3276
Build and other internal improvements: #3018 #3082 #3100
Many thanks to all the contributors supporting this release.
We'd also like to call out to all those who submitted issues or PRs that we've chosen not to include. It's often easy to forget that the attempts that fail are often just as important to long-term success as those that succeed. Thank you for all your great work! 🎆
The text was updated successfully, but these errors were encountered: