Tenrec-Builders / pi-scan

Pi Scan is a simple, robust capture appliance for book scanners. It runs on a Raspberry Pi 2.
BSD 2-Clause "Simplified" License
262 stars 37 forks source link

CI build system for pi-scan #21

Open decentral1se opened 4 years ago

decentral1se commented 4 years ago

It would be great to have a CI (like Travis, Gitlab CI, whatever) building the image and also running things like quality assurance checks on the source code (flake8, isort, black, etc.) so as to contribute to the robustness of pi-scan on the dev/software level. Is there any interest in that? I've done this quite a bit and can help. It also makes doing things like experimental features / refactoring easier because you get faster feedback if something breaks in the image building, for example.

duerig commented 4 years ago

Generally speaking, building the image and automatically doing quality assurance on the code are likely to be two separate tasks. The building of the image is 99% installing a bunch of dependencies and actual code changes are the last and almost instantaneous step of it.

In addition, there is very little inside of the Pi Scan software itself. It is mostly a thin membrane stretching between a UI, the mechanism for controlling a USB block device, and the mechanisms for communicating with the cameras. A good testing framework would create mockups for all of these interfaces and run against a number of tests as the code changed. This would need to be supplemented with real tests with physical cameras on a real Raspberry Pi for any release of course.

So I think in this context, CI would mean constant updating of the code on the test framework server and re-running the test suite while builds would likely be a daily or weekly thing which would generate candidates we could test with real cameras for actual release.

A lot of things can be done to make the Pi Scan system more robust, and I've been working on some of those changes behind the scenes. While a testing system would be hard given the nature of the application, it would certainly make adding robustness easier especially when it is so easy to add regression bugs.

On Sun, Jan 19, 2020, at 6:16 AM, decentral1se wrote:

It would be great to have a CI (like Travis, Gitlab CI, whatever) building the image and also running things like quality assurance checks on the source code (flake8, isort, black, etc.) so as to contribute to the robustness of pi-scan on the dev/software level. Is there any interest in that? I've done this quite a bit and can help. It also makes doing things like experimental features / refactoring easier because you get faster feedback if something breaks in the image building, for example.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Tenrec-Builders/pi-scan/issues/21?email_source=notifications&email_token=AAGWYTEA2AELQYQTIQDWBVDQ6RHELA5CNFSM4KIZGJ2KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IHFUUFA, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGWYTFVSL4YIB4XPQOGG4DQ6RHELANCNFSM4KIZGJ2A.