Skip to content

Roadmap #1

@AustinGrey

Description

@AustinGrey

Will more or less happen in order

  • 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
      • Image
    • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions