-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Breaking changes v11 #2476
Comments
Thanks @gwhitney 👍 Instead of keeping the PR's open until all of them are done, I will create a |
Also am working on a PR for #2485 to go into this release. It will require publication of a new version of typed-function as well, according to the plan. |
possibly #2422 as well? |
Yeah good point. That is one of these "is it a bug fix or a breaking change" cases 😉 |
I just proposed #2490 which if you concur should be added to the list for this release. |
Ok, now that typed-function has v3 published we should be able to finish this off. I have v11_on_v3a which will run on top of it. I will rebase it on develop and add a commit that officially updates to typed-function v3 and confirm that here. But then it has a lot of changes as compared to the prior v11 branch. How do you want to go about reviewing? Or do you want some other strategy for rebuilding all of the v11 stuff on top of current develop and typed-function v3? I will wait to implement the last task, not chaining a rest parameter across the internal value and new arguments, until we have some plan for how to get this across the finish line. Looking forward to your thoughts. |
Yes, v11 can move on now 👍 Hm, I'm afraid it will be painful one way or the other. I would prefer the approach that would be least amount of work, but I'm not sure if that is solving merge conflicts from I've brought |
Well, I have now brought v11_on_v3a up to date with the latest develop as well, and it builds and passes all tests. It is precisely v11 followed by a series of commits to make it work on top of typesecript v3.0.0 (as v3a was published). There were no merge conflicts in rebasing on develop (there had been merge conflicts on previous rebases, but not this time). So as far as I am concerned, v11_on_v3a should be the new v11 and it is ready to go except for the last unchecked task on the list here. Do you feel there is any way you can review v11_on_v3a? Or what would allow you to do that? Again, I will wait to do the last task for the version 11 release until we've settled on what the foundation for the release will be. I do not think there is any point in making a version of v10 on top of typed-function v3.0.0; the refactoring benefitted a lot from the removal of a bunch of possibly ambiguous matrix functions in the version 11 branch. Then main refactor from the v11 branch to the v11_on_v3a branch is collapsing lots and lots of matrix/array operation boilerplate into the new "matrixAlgorithmSuite" utility where you just specify which of the algorithms to use for Sparse-Dense, Sparse-Sparse, Sparse-scalar, etc. (I also added mnemonics after the number for each of the matrix algorithms to keep myself sane as Otherwise each step is fairly minor and I tried to log them all reasonably clearly. I think you will see in the git log for v11_on_v3a that it is quite clean: it is just current develop, followed by the v11 commits through PR #2490, followed by the commits to adapt to typed-function v3. So I am hoping that it will be plausible for you just to review v11_on_v3a and for us to proceed with that. I expect you will have some requested changes, but I am hoping not too many to deal with, and other than any of those, I think v11_on_v3a is ready to get the last PR for the desired fix to chaining and then good to go. Thanks for taking a look and letting me know what you think. |
All that said, I realize that v11_on_v3a is a dozen commits on top of v11, so let me know anything I can do to facilitate your review of all that happened in going from v11 to v11_on_v3a. |
Ah, I still had an Object.hasOwn to protect against namespace pollution, but that's not supported in Node 14; also, removed 'resolve' from the list of known functions that fail the doc test, now that it handles strings. Hopefully, all should be working now. |
Ugh, IE 11 is failing with an 'expected ;' error in the browser tests for v11_on_v3a. It's pretty hard for me to decipher the output; can you have a look? I think maybe the problem is actually in typed-function, not mathjs? 32 days to go until IE 11 EOL... ;-) |
Thanks. Great to here there where no nasty merge conflicts in updating It is what it is, it will simply be a big PR, I will go through it coming Monday and have a look at the latest individual commits related to the typed-function@3 upgrade. It makes sense to me to go for branch I'll have a look into the IE11 issue. Yeah can't wait until EOL 😂 . I saw the latest version of |
Ok... I opened typed-function/test/browser.html on IE11 (using BrowserStack), and indeed it just doesn't run on IE11. In the code there are a couple of There are 13 occurrences of |
I mean, no objection from me -- I am sure I am the main culprit in not being able to keep track of which dialect of JavaScript was OK 7 years ago... Sorry about that. But so I have no problem dropping IE11 support, entirely up to you. |
And let me know if I should push a commit to v11_on_v3a removing bs_ie_11 from browserstack_karma.js. |
👍 Yes lets drop support for IE11 in |
Done. Please let me know if I should go ahead with the chaining restriction commit, or if you want to look this much over first. |
Awesome. Can you implement the chaining restriction in a separate feature branch that we can merge into |
Yup, will do. |
On the most recently added possibility, #2617, I registered my vote against it in the relevant issue. |
I've described all (breaking) changes in the history: https://github.com/josdejong/mathjs/blob/develop/HISTORY.md#not-yet-published-version-1100. @gwhitney can you have a look to see if the list is complete? I think all is ready for the release of v11, except for waiting for feedback on #2617 and finishing that up. I'm planning to publish v11 coming Friday. |
Comments on the HISTORY.md list you link in the previous comment: Otherwise all looks good to me. |
Thanks, good point to clarify those points with examples and more description. I've update the history accordingly (see 340a6f6). |
Seems good to me. Looking forward to Friday's publishing of this (and fingers crossed it won't suddenly turn up a bunch of bugs...). Also looking forward to your thoughts on the Pocomath prototype I posted yesterday, in terms of the next direction of mathjs. |
Yes I saw your Pocomath post 👍 . I love the name already but I still have to take the time to read your comments and understand the approach. |
In #2628, @costerwi points out that it should be possible to construct a Unit from a numeric value and a valueless Unit, whereas currently it only works with strings. I agree, but in fact on reflection, I don't actually understand why that constructor should take a string there at all; what the constructor needs is a value and the units for that value. For example, Anyhow, if it happens that (a) you agree that the two-argument Unit constructor should only take a valueless Unit (or undefined) in the second position, not a string, and (b) you would consider that a breaking change (not sure whether the Unit constructor is considered part of the mathjs API or not, especially given the plans I've heard to move Unit out of mathjs), then do you want to squeeze that into V11? If so, I'd be happy to take @costerwi's PR and rebase it right away (or perhaps @costerwi would like to do so) so that it can be incorporated in the V11 release. Let me know. |
Interesting to think that through. Let's discuss in #2628 and wait with releasing v11 until that is settled. |
We'll not introduce breaking changes in #2628. Going to publish |
Ok @gwhitney thanks for the huge amount of time and effort you've put in this release! |
For the first next breaking version
v11
release, the following changes are scheduled:typeOf
now returnsfunction
(lowercase) for a function instead ofFunction
Why does the behavior ofn mod 0
differ from the one in JavaScript? #2617 (will not do)Unit from Unit #2628 : change the Unit constructor (will not introduce breaking changes)If there are more breaking changes that should be taken care of in this release, please drop a message here
The text was updated successfully, but these errors were encountered: