google / mathsteps

Step by step math solutions for everyone
https://socratic.org
Apache License 2.0
2.12k stars 274 forks source link

DO NOT MERGE [wip] starting the porting to semantic math #217

Closed evykassirer closed 5 years ago

evykassirer commented 7 years ago

this is a complete work in progress, but here's what I got done tonight

The basic idea was to replace the bodies of Node.Type and Node.Creator with their semantic-math equivalents, and see if the rest of the code would just work. I've found a bunch of things that need updating in this repo or in semantic-math repos and added TODOs, and will keep investigating why various things are failing to find more TODOs.

This isn't linted and the commit names aren't very descriptive, so I'll try to get that done. If you see something here and want to fix it in semantic-math or help me fix something please yes help! :)

My goal is to in the next week (or so?) get a better idea of what we need to do, clean up this PR, and then make this a base branch with a bunch of TODOs and disabled tests, and people can make PRs off of it to help fix various issues. (Let me know if you think that won't work)

WOOOO porting :)

cc @kevinbarabash

More things, not mentioned in this PR's code:

kevinbarabash commented 7 years ago

I can definitely add better debug messages to the math-parser. Please open issues in that repo.

evykassirer commented 7 years ago

I got to

 426 passing (4s)
  35 pending
  221 failing

pending means I know why it's failing and don't want to fix it in this PR (for the most part) the failing ones I haven't looked into all of them, but I think at least half are more printing things

one is that nthroots need to be updated to explicitly show that the root is 2 (which I think is fine to change on mathsteps side)

another is to get rid of the space between coefficient and symbol when the symbol is also of the form x^2, so I'll make a PR to math-parser for that this weekend hopefully

evykassirer commented 7 years ago

eeeek it's getting close! just a few more things to clean up!

  569 passing (1s)
  82 pending
  29 failing

my plans are:

  1. get all the tests passing or skipped
  2. return to skipped tests and decide if I want to deal with them in this PR or leave as a TODO
  3. address all the semantic math and porting related TODOs
  4. go through all these changes and self-review and cleanup while cleaning them into more reviewable commits
  5. see if folks from the community will review this for me?? (fingers crossed)
  6. merge the new tree!!
evykassirer commented 7 years ago

down to 10 failing tests :o

evykassirer commented 6 years ago

600 passing (1s) 82 pending

and the linter passes!

🎉

next steps:

if anyone is willing to review and has opinions on any things I can do from now until you take a look to make it easier to read - let me know!