With the effort we spent last week, now we are able to generate correct metadata for 3008 ebuilds. Here is what I have done in this week:
- supported appending to variables like foo+=bar
- partly supported the shopt built-in
- supported the unset built-in
- supported the continue built-in
- supported single quoted string
- supported command substitution in double quoted string
- supported more characters in function name (not approved by bash manual but used by some eclasses)
- made the parser write current filename to output if something goes wrong
- improved test coverage
- made parser fail if it doesn’t match to EOF
The last thing makes our instruo fail to generate metadata for most of the ebuilds because some important eclasses can’t get fully parsed. We will tackle this issue in the next iteration.
We planned to have our CI server setup. But as robbat2 is on his vocation so we decided to put off the story to the next iteration.
I also wrote an article talking about LCOV and gcov usage in our project. That helped us improve the test coverage.
In the coming week, we plan to:
- fully parse the eclasses that are required for metadata generation (if it’s not doable in one day, add new stories).
- add stories from the output of instruo
- fix our instruo to make the order of INHERITED right (part of ebuild metadata)
- support pattern matching in keyword test
- compile with -Wconversion and -Wsign-conversion in developer mode
- support more Portage functions
- write ProjectXML for our project
Thank you for your attention.