Sure, I think that I was the one to specifically say that I didn't agree
that "running more tools was better". Sorry, I should have said more on
that to explain why I felt that way.

Shouldn't projects consider the cost to each new tool that gets added the
build chain? It seems undesirable to me for a project to run findbugs and
coverity and errorprone and whatever else just because there is some chance
that one might find something the other doesn't at the additional cost to
build time (i don't what that might be - maybe not an issue?) and ongoing
maintenance. In my mind there should be some added value for each new thing
we add to the build chain. I don't know that the added value needs to be
significant (that would be nice), but it should at least be explainable in
a definitive way (e.g. "we need to add findbugs because it covers X, Y, Z
and errorprone does not").  I think that I'd want that kind of explanation
if someone moved to add a second tool after we'd chosen a first before I
would jump on-board with such a change.

To continue with the issue of tool selection while I think I can agree that
one tool may or may not find "everything", right now, we have no tools in
place for this at all. It is a green field. If we should introduce a tool
it should be one that gets us the most bang for the buck and that would be
one that handles multiple languages. We would focus on getting that
particular tool into play first and then go through the process of turning
on the various checks we want in that tool and, as we have multiple
languages, we'd want to do that for each language we support. Once all that
is done, then we would determine if there are things that aren't covered
and whether or not additional tools are helpful or redundant.

Adding stuff (i.e. "tools" but also features or new dependencies) just
because it is available or because it provides a small incremental value
usually doesn't feel right to me. We've haphazardly done things like this
in the past and it's always ended up burning us which is why I'm advocating
for a slow and logical approach to making this happen. For example,
sometime back, we added an appveyor build to try to ensure the project
built on windows. But after a while we came to realize that it was false
failing on a fairly regular basis. The failed builds basically put red "X"s
on all the PRs even though they were fine which made it hard to quickly
figure out what was truly passing and what wasn't. We were dealing with all
this extra effort just so that if someone on windows pulled the code they
could build TinkerPop if they wanted. We learned that having appveyor in
the mix was a small incremental value that wasn't really worth the effort
expended since we generally found that no one was really building on
windows in the first place. I can't even recall the last complaint about
that issue.

Anyway, I hope that explains where I'm coming from a bit.








On Tue, Apr 3, 2018 at 11:24 AM, Roman Leventov <leventov...@gmail.com>
wrote:

> Could somebody explain how adding a multi-language tool makes adding a
> single-language tool undesirable, given one doesn't strictly cover another?
>
> On Tue, 3 Apr 2018, 16:36 Stephen Mallette, <spmalle...@gmail.com> wrote:
>
> > Reviving this thread a bit - a quick summary of where things were left:
> >
> > 1. no one seems specifically against adding a tool of this kind (though
> > Florian went so far as to be positive on doing so)
> > 2. if we did add a tool it was a good suggestion to get the tool selected
> > first and then slowly enable different checks.
> > 3. having multi-language support in the tool was brought up as a possible
> > requirement in tool selection
> >
> > the more i've thought about it the more that I think my preference for
> > putting code analysis in place would involve using a tool that provided
> > multi-language support. Therefore, something like sonarqube or coverity
> > would be more appealing to me than the original JVM only solution that
> was
> > proposed. Is that basically the representative feeling on this for
> > everyone?
> >
> >
> >
> > On Wed, Mar 21, 2018 at 10:03 AM, Robert Dale <robd...@gmail.com> wrote:
> >
> > > It has multi-language support -
> > > https://community.synopsys.com/s/question/0D53400003WcsSiCAJ/what-
> > > languages-are-supported-by-synopsys-static-analysis-coverity
> > >
> > > Robert Dale
> > >
> > > On Wed, Mar 21, 2018 at 10:01 AM, Robert Dale <robd...@gmail.com>
> wrote:
> > >
> > > > Another option might be to use Coverity -
> > https://scan.coverity.com/faq
> > > -
> > > > and run it in Travis CI
> > > >
> > > > Robert Dale
> > > >
> > > > On Wed, Mar 21, 2018 at 9:43 AM, Stephen Mallette <
> > spmalle...@gmail.com>
> > > > wrote:
> > > >
> > > >> >  I think any proposed changes would be separate PRs and reviewed
> on
> > a
> > > >> case-by-case
> > > >> basis.
> > > >>
> > > >> yeah - i think if we want something like this the goal should first
> be
> > > to
> > > >> decide on a tool (i can't say that i agree with Roman that "running
> > more
> > > >> tools is always better" btw). note i'm still saying, "if we want
> > > something
> > > >> like this" because while i'm not against it I'd like to be convinced
> > > that
> > > >> we need to worry about this now at this stage of TinkerPop's
> > > development.
> > > >> i'd have been more inclined to deal with this early on in
> TinkerPop's
> > > >> development rather than now. And, yes, also agree that i would like
> to
> > > see
> > > >> the tool in first and then each introduction of "rule" be a separate
> > > >> discussion and PR.
> > > >>
> > > >> > As for making it the default compiler, I think this would be a
> > > profile,
> > > >> disabled by default, at best at least until a time it can be
> massaged
> > to
> > > >> where it works for this project.
> > > >>
> > > >> yeah....that might be a smart way to go
> > > >>
> > > >> >  whether other static analysis tools would find most of the
> problems
> > > >> that
> > > >> such a compiler can find and also work with other languages than
> Java.
> > > >>
> > > >> very good thought. while the bulk of our code is java, we are far
> > from a
> > > >> single language code base. if there is one tool that can give us
> some
> > > nice
> > > >> clean analysis across the entire code base, perhaps that's the best
> > way
> > > to
> > > >> go (again, "if we want something like this").
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> On Tue, Mar 20, 2018 at 8:41 AM, Florian Hockmann <
> > > f...@florian-hockmann.de
> > > >> >
> > > >> wrote:
> > > >>
> > > >> > In general, I am +1 on adding a static analysis tool to our tool
> > > chain.
> > > >> > I just wonder whether a Java compiler is the best choice for us
> > right
> > > >> > now or whether other static analysis tools would find most of the
> > > >> > problems that such a compiler can find and also work with other
> > > >> > languages than Java. SonarQube[1] for example looks pretty nice.
> It
> > > also
> > > >> > supports Python, C#, and JavaScript and we can probably just
> > integrate
> > > >> > it via GitHub to generate reports for the release branches and all
> > PRs
> > > >> > where it would then add issues in the form of inline comments.
> > > >> >
> > > >> > [1] https://www.sonarqube.org/
> > > >> >
> > > >> > Am 20.03.2018 um 03:42 schrieb Robert Dale:
> > > >> > > Some changes look good others look wrong evident by the failed
> > > >> builds.  I
> > > >> > > think any proposed changes would be separate PRs and reviewed
> on a
> > > >> > > case-by-case basis.  As for making it the default compiler, I
> > think
> > > >> this
> > > >> > > would be a profile, disabled by default, at best at least until
> a
> > > >> time it
> > > >> > > can be massaged to where it works for this project.
> > > >> > >
> > > >> > > On Mon, Mar 19, 2018 at 14:59 Roman Leventov <
> > leventov...@gmail.com
> > > >
> > > >> > wrote:
> > > >> > >
> > > >> > >> See https://github.com/apache/tinkerpop/pull/819.
> > > >> > >>
> > > >> > >> 1) Are there any objections to using error-prone compiler
> instead
> > > of
> > > >> > >> OpenJDK's javac compiler?
> > > >> > >> 2) Stephen raised the question, that Tinkerpop project may
> better
> > > use
> > > >> > >> another static analysis tool instead of error-prone. I have to
> > > answer
> > > >> > that
> > > >> > >> no static analysis tool covers 100% of the errors found by any
> > > other
> > > >> > tool,
> > > >> > >> so running more tools is always better.
> > > >> > >> 3) Stephen raised the question, what checks should be enabled.
> I
> > > >> believe
> > > >> > >> this is out of scope of the PR (
> > > >> > >> https://github.com/apache/tinkerpop/pull/819),
> > > >> > >> because it doesn't (and doesn't intent to) enable  any more
> > checks
> > > >> > beyond
> > > >> > >> the default (= minimal) set of error patterns. More checks may
> or
> > > may
> > > >> > not
> > > >> > >> be enabled in later PRs and that could be discussed separately.
> > > >> > >>
> > > >> >
> > > >> >
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>

Reply via email to