A few words about the community's reception and detailed future plans to get a stable base/make contributing easy.
Quick recapJust about twenty-four hours ago I have posted my initial post about postmarketOS on /r/linux and Hacker News. It quickly ended up at the front-page of both websites, and as of writing, there are more than 300 comments. The pmbootstrap repository has 115 stargazers, and two (resolved) bug reports. This means, people are already trying the code out! This definitely went past my expectations so here is a big thank you to everyone who has commented, shared the link, tested code or helped it otherwise!
I'm especially happy, that a few people want to port postmarketOS to their device. This is exactly what this project needs now, because with multiple developers it can accelerate!
CI: Static code analysis
The following week(s) I will focus on helping other developers with said porting process. Since the release, I have added continuous integration for static code analysis with flake8 and shellcheck (I've used both tools before publishing the code). Flake8 checks for common python errors (such as unused imports or variables) and for formatting according to the widespread PEP 8 style guide (no need to read all that, just run autopep8 after coding and you're good — static_code_analysis.sh
will output the exact command). And shellcheck, well, checks shell scripts (currently the checking script itself only, ideally it will check all scripts in the repo at some point in the future).
Ideally, the CI would also run all testcases, that the project has. So we could make full use of the safety net, that a testsuite provides, and never accidentally merge code which breaks a testcase.
Code, that does not break all the time is more fun and therefore good for the community, so this is my next personal goal for postmarketOS.
Binary package repositoryHere comes the catch: There is a testcase, for cross-compiling with the gcc-armhf package, which currently needs to be built from source. That takes some time, and while it is no problem on a developer's machine, because it gets only built once (probably before the testsuite even runs during normal usage of pmbootstrap), it is not feasible to do that every time in a CI environment.
So as a dependency of getting the testsuite working with CI, a binary package repository is needed and that is immediate my next step in the project. This will have the nice side-effect, that using pmbootstrap is faster for everyone, because you don't need to compile the packages you didn't change anymore.
The downside is of course, that you need to trust my binary packages, so I'll spend some time to figure out some kind of security strategy (compile on a dedicated machine, maybe get reproducible builds going for those few packages, if it is feasible?).
Closing wordsSo that is my plan for now, and I'll adjust it to what happens in the community. Please keep in mind, that I do this project in my free time, so it might take some time until I get it done.
Oh and I was amazed when I found out, that Alpine Linux (which postmarketOS is based on) has CI set up to build all packages, that get changed in a pull request (of course they have their dedicated servers for real package building, but this is a great safety feature)!
Happy porting!
Comments: reddit, Hacker News