This replaces the current loop calling pmbootstrap lint once for each
package with a single invocation for increased performance.
Here are some measurements for linting all packages under main/.
Before this change:
$ time .gitlab-ci/apkbuild-linting.py > /dev/null
real 3m55,840s
user 3m48,592s
sys 0m16,913s
After this change but without postmarketOS/pmbootstrap!2100:
$ time .gitlab-ci/apkbuild-linting.py > /dev/null
real 0m14,359s
user 0m17,994s
sys 0m6,488s
After this change with postmarketOS/pmbootstrap!2100:
$ time .gitlab-ci/apkbuild-linting.py > /dev/null
real 0m6,411s
user 0m13,334s
sys 0m2,417s
Note that postmarketOS/pmbootstrap!2100 is not required for that little
bit of extra performance but rather because it allows to differentiate
between linting errors for different packages in the output.
Depends: postmarketOS/pmbootstrap!2100
Closes: #564
For APKBUILD linting we care only about APKBUILD files that were changed,
not to which package they belong or whatever.
The "with_directory" option of get_changed_packages() really meant
"just give me changed files", which means that we can just use
get_changed_files() instead.
Since we copy these aports directly from Alpine and try to keep them in
sync, we don't want to differ from upstream because our CI doesn't pass
on linting. If the APKBUILD should be improved, it should be done
upstream which is then synced back to us.