Daily builds - with static analysis
Hi all, I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ After some clicking, you will find these interesting pages (links may become obsolete after a new build) http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr... and http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20...
As you can see, there are still some nasty bugs in trunk. For example http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr...
-Johan
(currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future)
Pretty impressive error reports! Thanks for setting this up.
On Thu, 2014-10-09 at 10:43 +0200, jbc.engelen@...2592... wrote:
Hi all, I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ After some clicking, you will find these interesting pages (links may become obsolete after a new build) http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr... and http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20...
As you can see, there are still some nasty bugs in trunk. For example http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr...
-Johan
(currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future)
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.cl... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
These look really nice.
Is there any way you want this resource linked on the website or wiki?
Martin,
On Thu, 2014-10-09 at 10:43 +0200, jbc.engelen@...2592... wrote:
Hi all, I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ After some clicking, you will find these interesting pages (links may become obsolete after a new build) http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr... and http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20...
As you can see, there are still some nasty bugs in trunk. For example http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr...
-Johan
(currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future)
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.cl... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Hi Martin, Yes, for sure! ci.inkscape.org sounds good to me.
(the server will change in the near future, so don't waste too much time on it)
-Johan
On 9-10-2014 21:21, Martin Owens wrote:
These look really nice.
Is there any way you want this resource linked on the website or wiki?
Martin,
On Thu, 2014-10-09 at 10:43 +0200, jbc.engelen@...2592... wrote:
Hi all, I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ After some clicking, you will find these interesting pages (links may become obsolete after a new build) http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr... and http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20...
As you can see, there are still some nasty bugs in trunk. For example http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr...
-Johan
(currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future)
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.cl... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Hi Johan,
Wow. This looks like it could be really useful in the days to come!
Thanks for taking the time to set this up,
Samuel
On Thu, Oct 9, 2014 at 2:13 PM, <jbc.engelen@...2592...> wrote:
Hi all, I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ After some clicking, you will find these interesting pages (links may become obsolete after a new build) http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr... and http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20...
As you can see, there are still some nasty bugs in trunk. For example http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr...
-Johan
(currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future)
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.cl... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Great work! Awesome to see this for Inkscape, static analysis is a must these days.
I have never used Clang static analyzer, how good is it? a lot of false-positives?
On 12-10-2014 9:13, Christoffer Holmstedt wrote:
Great work! Awesome to see this for Inkscape, static analysis is a must these days.
I feel the only way forward for our project is to use these tools.
I have never used Clang static analyzer, how good is it? a lot of false-positives?
I have not seen many false positives, but they are there. However, *all* false positives that I have seen in our codebase are the result of very very poor code design, and it takes a while to figure out that it is a false positive at all. Clang's static analyzer is the best I have used and presents its reports in a nice HTML page that helps to find and fix the problem. It's also easy to set up btw. (use scan-build)
-Johan
-- Christoffer Holmstedt
2014-10-12 9:03 GMT+02:00 Samuel Chase <samebchase@...400... mailto:samebchase@...400...>:
Hi Johan, Wow. This looks like it could be really useful in the days to come! Thanks for taking the time to set this up, Samuel On Thu, Oct 9, 2014 at 2:13 PM, <jbc.engelen@...2592... <mailto:jbc.engelen@...2592...>> wrote: > Hi all, > I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ > After some clicking, you will find these interesting pages (links may become obsolete after a new build) > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_trunk_scan-build/Inkscape_trunk_scan-build_report/ > and > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20trunk/7/warnings16Result/ > > As you can see, there are still some nasty bugs in trunk. For example > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_trunk_scan-build/Inkscape_trunk_scan-build_report/report-b5ae8a.html#EndPath > > -Johan > > (currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future) >
Johan, this looks great... We could integrate it into the PPA build system, and install the resulting output into a new Debian package (e.g., inkscape-build-analysis). This will then automatically update the HTML output on each daily build.
Any thoughts?
AV On 12 Oct 2014 11:01, "Johan Engelen" <jbc.engelen@...2592...> wrote:
On 12-10-2014 9:13, Christoffer Holmstedt wrote:
Great work! Awesome to see this for Inkscape, static analysis is a must these days.
I feel the only way forward for our project is to use these tools.
I have never used Clang static analyzer, how good is it? a lot of false-positives?
I have not seen many false positives, but they are there. However, *all* false positives that I have seen in our codebase are the result of very very poor code design, and it takes a while to figure out that it is a false positive at all. Clang's static analyzer is the best I have used and presents its reports in a nice HTML page that helps to find and fix the problem. It's also easy to set up btw. (use scan-build)
-Johan
-- Christoffer Holmstedt
2014-10-12 9:03 GMT+02:00 Samuel Chase <samebchase@...400...>:
Hi Johan,
Wow. This looks like it could be really useful in the days to come!
Thanks for taking the time to set this up,
Samuel
On Thu, Oct 9, 2014 at 2:13 PM, <jbc.engelen@...2592...> wrote:
Hi all, I have set up a daily build system that checks if trunk still builds
(on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here:
http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ After some clicking, you will find these interesting pages (links may
become obsolete after a new build)
http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr...
and
http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20...
As you can see, there are still some nasty bugs in trunk. For example
http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr...
-Johan
(currently I run Jenkins on free-tier EC2, but we are working on
getting something more permanent. Expect a longer email with plans in the near future)
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://p.sf.net/sfu/Zoho _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Hi Alex, From what I've seen of it the PPA system appears nice for just checking if trunk builds, and providing the binary results. For test results or other debug output, I think the system is not suited and we need a real CI system. Jenkins provides a much better interface for that kind of stuff I feel. But we can also use another CI system. We should have one website that displays all relevant info without too many clicks, in a nicely readable format (looking at console output really should be a last resort). Jenkins has plugins that parse console output, XML output, HTML output from all these tools, which are then accessible without too many clicks. I just found a plugin that is able to parse clang's static analysis output into a trend graph. We should also integrate the rendersuite into this system, which I think will not be too much work.
-Johan
On 12-10-2014 14:20, Alex Valavanis wrote:
Johan, this looks great... We could integrate it into the PPA build system, and install the resulting output into a new Debian package (e.g., inkscape-build-analysis). This will then automatically update the HTML output on each daily build.
Any thoughts?
AV
On 12 Oct 2014 11:01, "Johan Engelen" <jbc.engelen@...2592... mailto:jbc.engelen@...2592...> wrote:
On 12-10-2014 9:13, Christoffer Holmstedt wrote:
Great work! Awesome to see this for Inkscape, static analysis is a must these days.
I feel the only way forward for our project is to use these tools.
I have never used Clang static analyzer, how good is it? a lot of false-positives?
I have not seen many false positives, but they are there. However, *all* false positives that I have seen in our codebase are the result of very very poor code design, and it takes a while to figure out that it is a false positive at all. Clang's static analyzer is the best I have used and presents its reports in a nice HTML page that helps to find and fix the problem. It's also easy to set up btw. (use scan-build) -Johan
-- Christoffer Holmstedt 2014-10-12 9:03 GMT+02:00 Samuel Chase <samebchase@...400... <mailto:samebchase@...400...>>: Hi Johan, Wow. This looks like it could be really useful in the days to come! Thanks for taking the time to set this up, Samuel On Thu, Oct 9, 2014 at 2:13 PM, <jbc.engelen@...2592... <mailto:jbc.engelen@...2592...>> wrote: > Hi all, > I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ > After some clicking, you will find these interesting pages (links may become obsolete after a new build) > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_trunk_scan-build/Inkscape_trunk_scan-build_report/ > and > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20trunk/7/warnings16Result/ > > As you can see, there are still some nasty bugs in trunk. For example > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_trunk_scan-build/Inkscape_trunk_scan-build_report/report-b5ae8a.html#EndPath > > -Johan > > (currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future) >
------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://p.sf.net/sfu/Zoho _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net <mailto:Inkscape-devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/inkscape-devel
On Sun, Oct 12, 2014, at 02:58 AM, Johan Engelen wrote:
On 12-10-2014 9:13, Christoffer Holmstedt wrote:
Great work! Awesome to see this for Inkscape, static analysis is a must these days.
I feel the only way forward for our project is to use these tools.
I have never used Clang static analyzer, how good is it? a lot of false-positives?
I have not seen many false positives, but they are there. However, *all* false positives that I have seen in our codebase are the result of very very poor code design, and it takes a while to figure out that it is a false positive at all.
Clang's static analyzer is the best I have used and presents its reports in a nice HTML page that helps to find and fix the problem.
It's also easy to set up btw. (use scan-build)
Yes, I'd agree with Johan's assessment overall. Clang has a few issues (warning on redundant assignment being one), but it helps far more to have it running reports than not. Coverity is much better, but Bryce and I have a bit more work with the company getting that setup and going again.
I'm traveling today, but once I'm home I can setup some wiki pages on Clang and its results. There are a few things that are helpful to know, common approaches for different warnings/scenarios, gotchas to keep an eye out on, etc. I've already started hammering some of those out with Johan, so collecting up and publishing our info can help the rest of the devs.
-- Jon A. Cruz jon@...18...
On 12-10-2014 16:40, Jon A. Cruz wrote:
Clang has a few issues (warning on redundant assignment being one)
I think in many cases, this particular warning can flag bugs, where someone accidentally made a typo or used one name for two variables. This means that fixing these errors is actually not a straight forward task!!! However, there are also usecases where it is good to overwrite a variable with a new value, to ease future extension of the code.
How about we add an idiom for silencing that particular error? We need two idioms to let the other devs and clang know, that some variable is intentionally unused.
1. new variable max, never used: double min = ...; //double max = ...;
2. update variable max, never used after: #include "helper/static_analysis.h" min = ...; max = ...; intentionally_unused(max);
I am not sure, but perhaps there is a way to silence the analyzer iff max is unused afterwards. Perhaps "x = x;". Note that this would have to also not give warnings for gcc. Hence the small helper header file, with a compiler-dependent macro "intentionally_unused".
-Johan
On 12-10-2014 9:03, Samuel Chase wrote:
Hi Johan,
Wow. This looks like it could be really useful in the days to come!
Hope you can work on fixing some bugs! Put highest priority on the "Dereference of null pointer" bugs in our own code (so excluding the "lib..." directories). Be careful, some of them are not well-solved by an extra if (ptr)...
cheers, Johan
Hi all, What time would be good (UTC) for starting a new daily build for trunk? The current solution has enough compute power to do one build per day for trunk in about 1.5hrs. Perhaps someone finds it fun to make a graph of average commit activity versus time of the day that I can use to decide when to bzr up and start the build. :-)
cheers, Johan
On 9-10-2014 10:43, jbc.engelen@...2592... wrote:
Hi all, I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ After some clicking, you will find these interesting pages (links may become obsolete after a new build) http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr... and http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20...
As you can see, there are still some nasty bugs in trunk. For example http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_tr...
-Johan
(currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future)
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.cl... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Attached are two tables with commits per hour of the day and commits per timezone of the inkscape repository (git clone, created by gitstats). I just ran gitstats for the first time ever so not sure if it looks in all branches or just trunk and so on (and libs are not excluded afaik). I'm sure it is configurable to just look at the last year as well but haven't looked into that. The table "commits per timezone" is probably a bit skewed towards UTC as it is default for many system I guess.
Much obliged.
-Johan
On 16-10-2014 7:28, Christoffer Holmstedt wrote:
Attached are two tables with commits per hour of the day and commits per timezone of the inkscape repository (git clone, created by gitstats). I just ran gitstats for the first time ever so not sure if it looks in all branches or just trunk and so on (and libs are not excluded afaik). I'm sure it is configurable to just look at the last year as well but haven't looked into that. The table "commits per timezone" is probably a bit skewed towards UTC as it is default for many system I guess.
-- Christoffer Holmstedt
2014-10-16 1:02 GMT+02:00 Johan Engelen <jbc.engelen@...2592... mailto:jbc.engelen@...2592...>:
Hi all, What time would be good (UTC) for starting a new daily build for trunk? The current solution has enough compute power to do one build per day for trunk in about 1.5hrs. Perhaps someone finds it fun to make a graph of average commit activity versus time of the day that I can use to decide when to bzr up and start the build. :-) cheers, Johan On 9-10-2014 10:43, jbc.engelen@...2592... <mailto:jbc.engelen@...2592...> wrote: > Hi all, > I have set up a daily build system that checks if trunk still builds (on Ubuntu) and, more importantly, runs clang's static analyzer using scan-build. You can find the results here: > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/ > After some clicking, you will find these interesting pages (links may become obsolete after a new build) > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_trunk_scan-build/Inkscape_trunk_scan-build_report/ > and > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape%20trunk/7/warnings16Result/ > > As you can see, there are still some nasty bugs in trunk. For example > http://ec2-54-69-235-61.us-west-2.compute.amazonaws.com:8080/job/Inkscape_trunk_scan-build/Inkscape_trunk_scan-build_report/report-b5ae8a.html#EndPath > > -Johan > > (currently I run Jenkins on free-tier EC2, but we are working on getting something more permanent. Expect a longer email with plans in the near future) > > > ------------------------------------------------------------------------------ > Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer > http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk > _______________________________________________ > Inkscape-devel mailing list > Inkscape-devel@lists.sourceforge.net <mailto:Inkscape-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/inkscape-devel > ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://p.sf.net/sfu/Zoho _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net <mailto:Inkscape-devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/inkscape-devel
participants (8)
-
unknown@example.com
-
Alex Valavanis
-
Christoffer Holmstedt
-
Johan Engelen
-
Jon A. Cruz
-
Martin Owens
-
Samuel Chase
-
Tavmjong Bah