[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