-
-
Notifications
You must be signed in to change notification settings - Fork 71
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
v4 release scope #253
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I think the only other thing to consider for inclusion in version 4 is support for a lazy However, I would like to consider a more radical change to the Anyway, here is my idea about I could say more (because I can always say more), but I will pause here for now. @cmeeren, what do you think about making a breaking change related to |
Depends on the change, of course. The fact that it's breaking is not itself a problem, though. So please go on. :) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Should we wait until Elmish 4 stable comes out before releasing v4? Do you know the timeframe for that? |
I don't know their timeframe. I think it would be good to wait for technical reasons (so we don't need to make another major release to support their major release) and for the current version symmetry (we are both on v3 now and both moving to v4 "soon"). However, I don't want to delay publishing a new NuGet package with the new features just because they are delaying. I would be satisfied if we published a NuGet package from our our |
@et1975 do you have a timeframe for final Elmish v4 release? |
Sorry, no time frame - I've been experimenting with Elm-like subscriptions, but got nothing definitive yet. |
When I wrote that, the suggestion I was considering was to related to However, #266 is improving this situation. It uses a different value for In fact, I now think I would like to make I would also like the function arguments in all the Binding methods to be fully curried (as I mentioned in #266 (comment)). I think think of two advantages for pairing some inputs. The first is because passing |
Gotcha. We'll release v4 when we're ready, and if updating to Elmish 4.0 causes breaking changes, we'll release v5 at that time.
That was not the intention; the version match in this specific case is purely coincidental. Semver guidelines is certainly the way to go and the way we're currently doing it.
I'll get back to you when I have read your comment. Might be a day or two until I can find the time.
I don't understand. Do you have an example? As you just said, passing |
Yes, sorry. I should have given an example from the start. For example, in this function... Elmish.WPF/src/Elmish.WPF/Binding.fs Lines 1740 to 1746 in 9222c08
...I am suggesting that toBindingModel: 'model * 'subModel -> 'bindingModel ...be replaced with... toBindingModel: 'model -> 'subModel -> 'bindingModel ...and... toMsg: 'id * 'bindingMsg -> 'msg ...be replaced with toMsg: 'id -> 'bindingMsg -> 'msg ("Replaced" here actually means (1) copy the method, (2) paste the method, (3) make the change in the pasted method, (4) mark the original method as obsolete.) |
Thanks, I see. The reason for
The whole point is that you can just pass the DU case. It's less noise. If you have an example that could convince me otherwise, feel free to share it. Regarding |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I have now read your comments. I do not see the full implications of making this change. Unfortunately I can't prioritize digging into this at the moment, nor do I know when I can. But at least it's backwards compatible. If you feel fairly sure that this will not drive users away from the pit of success (also here), feel free to go ahead and work on this. Also, is |
Just a thought, for whatever it's worth: It's possible to mix curried style and tupled style. |
FYI: I learned about profunctors from this tweet, so I modified the tutorial to mentioned this concept. |
FYI: I modified the release notes to match the new behavior introduced by PR #272, which replaced Since we are no longer using I plan to read and learn more about profunctors. As I do, I expect that this might give me more ideas for how to design the binding API. I don't want to make the same mistake I did with the |
I would like to release version 4 with the currently implemented features. Features like The next step in this direction is to merge |
👍
Neither am I. The easiest way to merge may be to take the versions from |
I did a "manual" rebase of I pushed Now I suggest we merge At this point, I no longer want to maintain two branches: i.e. no more changes to 3.x. By only having one branch again, I think my motivation to make progress will return. We had some discussions in the past about how exactly the mapping API would look. (Some of that discussion might be in #295, but it is long, and I didn't reread it.) By creating a prerelease, we can still change the API before releasing Normally the intention of such a prerelease version is to do a feature freeze while finding and fixing bugs. Although some bug might exist, that is not my concern. This project is the most robust codebase (for its size) I have ever seen. In our case, the purpose of this prerelease is more for you (@cmeeren) and others to try the new (mapping) API, which is much more subjective. Because I am not concerned about bugs, I don't mind continuing to add features into What do you think @cmeeren? |
I don't.
Sounds fine.
Nothing better! 🥳 I had no idea this was a pain point for you.
This is fine. I have forgotten the discussion(s) on whether or not
👍
This sounds good to me! Are you able and willing to make a changelog for this release? And briefly describe any relevant migrations? |
I just pushed this potential release to commit to If you think we should elaborate more about the breaking changes and migrations, then I suggest we use create a "new release" using GitHub. Here is an example. |
I left a comment: 0b1603a#r46988514 Other than that, I think this is sufficient. |
This comment was marked as outdated.
This comment was marked as outdated.
I updated the initial comment in this issue. I think it is now rather accurate. |
This comment was marked as outdated.
This comment was marked as outdated.
I merged in #560 which should mark a feature-complete version of the Static View Models feature. It needs mention in the docs yet, however. |
I'm proposing making a release in #585 with the current state of the beta. |
Branch
v4
contains these new features.wrapDispatch
feature (which was proposed in Throttling individual bindings #114 and implemented in #114 wrap dispatch in bindings #118) so that we can add themapMsg
feature instead (c.f. PR DRAFT: Improve sub model seq composability #244)Obsolete
attributeoneWaySeq
binding implemented viaoneWaySeqLazy
withequals
=refEq
andmap
=id
.equality
type constraints for type parameters likeid
(c.f. Documentation improvements for 'id #139)Would anyone like to see any other changes? Does anyone have any concerns with this list of changes?
I will edit this comment to keep this list of items current (such as to add, check off, and strikethrough).
The text was updated successfully, but these errors were encountered: