[sane-devel] [Janitorial] Zero(!) compiler warnings
Olaf Meeuwissen
paddy-hack at member.fsf.org
Thu Sep 22 12:43:22 UTC 2016
Hi Johannes,
Johannes Meixner writes:
> Hello Olaf,
>
> On Sep 21 22:12 Olaf Meeuwissen wrote (excerpt):
>> About a year ago, I set out trying to get rid of *all*
>> compiler warnings on a "well-defined" build platform.
>> I'm happy to report that we've made it!
>
> Awesome!
Thanks!
> I appreciate very much your continuous persistent work
> to get the code clean.
>
>> ... the debian-8-full build[2], is free of compiler warnings!
> ...
>> [2] https://gitlab.com/sane-project/backends/builds/4218963
>
> What a boring build log it is now ;-)
>
> Now the crucial question:
>
> How to keep the code clean for the future?
I've already turned on -Werror on the debian-8-full builds and will get
notified when builds failed.
> Could there be automated builds with automated tests
> that reject code changes that introduce warnings?
Yes that *is* possible but requires a few changes to how the SANE
project works (and therefore requires a bit of discussion):
- move the repository from alioth to GitLab
The GitLab repositories are mirrors of what's on alioth right now.
On the GitLab site, I'd just have to stop mirroring. On the alioth
site it would require preventing new commits in some way (and maybe
set it up to mirror the GitLab repositories? Better yet, let GitLab
push!).
- make all code changes go through merge requests
IIRC, such requests can be set up to merge automatically to their
target branch once the build succeeds. This *might* require the
additional approval of a project "master" (something like a "Senior
Developer" on alioth) who is supposed to review the changes. I'd
have to look up the details though.
BTW, there's no need to be a project member, you can fork and create
merge requests from your fork to the sane-project/backend project.
That's the beauty of DVCS.
As for automated tests, those will be limited in scope. There is no
feasible way that shared runner builds have access to real scanners, so
whatever tests they run are restricted to the ones that don't require
any devices. Anyway, a `make check` could be added to the builds.
Hope this helps,
--
Olaf Meeuwissen, LPIC-2 FSF Associate Member since 2004-01-27
GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13 F43E B8A4 A88A F84A 2DD9
Support Free Software https://my.fsf.org/donate
Join the Free Software Foundation https://my.fsf.org/join
More information about the sane-devel
mailing list