Not a blog Making the world a better place, one commit at a time

Lute v3 porting milestone

Lots of progress after lots of hacking. Just one test remaining, and everything seems fine. Still a handful of tasks before I can consider the initial port complete. Phew. I feel that v3 is a significant step in the right direction: the code is clearer, there’s less of it, and it’s faster.

What’s done

User facing stuff: Pretty much everything appears to be working – start up, creating books, reading, defining terms.

Back end: db and demo management, unit tests, acceptance tests.

Test porting:

$ composer dev:portstats
tests/acceptance/NoMecab_Test.php:    public function test_no_mecab_should_still_be_ok(): void  // V3-port: TODO
--------------------------------
> composer dev:find V3-port | grep DONE | wc -l
     287
> composer dev:find V3-port | grep TODO | grep -v README | wc -l
       1

Comparisons

  • Python code line count is smaller: about 75% of the PHP project total line count for both tests and source.
  • Acceptance test speed: v3 acceptance tests are, guessing, about 10x faster than v2.
  • Python/Flask code is much nicer to read than PHP/Symfony.
  • Architecturally, I feel it’s way better: things are more-or-less grouped according to function.

What’s left

It’s a medium-sized list of important things

  • user settings
  • code to-do comments (inv todos returns a few, ignore the zzfuture fix ones)
  • versioning w/ toml file
  • packaging
  • test installation through pip
  • ToDesktop (?)
  • … other stuff

The biggest things are the versioning and packaging.

And then I’ll need to dogfood it.