You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use modern npm package tooling to scaffold a library package.
Liftoscript is on webpack, which is clearly loosing the battle to vite. Getting onto vite tooling will keep this package maintainable.
Extract a minimal amount of code from the existing Liftosaur library related to the liftoscript language. Both what liftosaur is calling "planner" programs and "parser" programs.
As of right now, I'm calling these "plans" and "logic" to help differentiate them, since plans are literally just about workout plans, but the parser seems to be a general purpose, yet minimal language.
Logic
Plans
Write a comprehensive suite of tests covering all the existing cases covered in Liftosaur, plus more
One of the re-reqs will be to find any sort of test utilities that make adding a new case very simple. It should not take dozens of lines of boiler plate to add a test, because that means dozens of lines of boiler plate to read when you need to maintain a test. High boiler plate also means increased need to use shared test data, which obfuscates what is actually being tested and reduces test maintainability.
Logic
This is done! I've got 100% coverage of existing cases, plus a significant number of new test cases that weren't considered. In some cases my evaluator for these programs succeeds when original Liftoscript is throwing an error.
Plans
I've got all the existing tests ported in, but no better testing harnesses yet, or improved coverage.
Use modern syntax to write maintainable, tree shakeable, and extendible evaluators for Plans and Logic, along with utilities that will make them easy to work with
Make PRs to Liftosaur
Anton has indicated that the bar for PRs are very high. Since most PRs would take as much time for him to verify as it would take for him to prompt. So this PR series might never complete, but it's good housekeeping to plan how to improve the upstream. I might have a chance if I
PR to improve coverage of the tests for Logic
PR to improve coverage of the tests for Plans
PR to install this package for use in tests only, to compare it's output to the existing outputs
PR to swap out Logic evaluation with the one provided by this package
PR to swap out the Plan evaluation with the one provided by this package
PR to drop old system
Identify how I can extend the system to handle time, time/weight, time/distance, weight/distance, and time/weight/distance based exercises. Come up with a few proposals and evaluate
Extend the system so plans can contain these kinds of exercises
Can happen whenever
Resolve what the name of this package should be
Whether or not Anton approves of my re-using the name Liftoscript has yet to be determined. Especially if backwards compatibility is not kept, that further incentivizes a need to be differentiable from the original.
Resolve the scope of this package
Is backwards compatibility with existing Liftoscript plans a hard requirement?
Is there more than Plans and Logic that could realistically belong here?
Make a bare bones website so people can interact with these packages without installing them, to test and evaluate
I one shot a simple website, but it's just two code windows you can type into to check the highlighting so far.
Will more or less happen in order
Can happen whenever