Lute v3 porting milestone
01 Nov 2023Lots 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 thezzfuture 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.