I'm not sure if there's any additional discussion coming on this thread,
but I still feel pretty strongly that (1) "more tools is not better" and
(2) we are basically at a tool selection phase with leanings toward one
with multi-language support (which errorprone is not). I agree with
Robert's assertion that folks can use whatever tools they want locally
however, I don't think we want to encourage a mixed bag of "code cleanup"
type pull requests either. If there is something important that needs fixup
it should be isolated and likely presented here for discussion. Any other
thoughts/opinions?



On Tue, Apr 3, 2018 at 2:08 PM, Robert Dale <robd...@gmail.com> wrote:

> It's definitely hard enough to get one tool done right, as demonstrated by
> the broken PR, let alone trying to get several tools done right.  It makes
> sense for our team to choose one tool that's most broadly applicable. We
> can master that one tool and use it to its full extent. Then we can
> evaluate what's not covered and decide on the right tool for that job.  So,
> right, we as a project need to decide on what we're willing and able to
> support. However, this process does not impose any limitation on what an
> individual can do. Any person can choose to run any preferred tool on a
> local copy of the source code, report findings, fix, etc based on that
> tool.  In that case, the more the merrier!
>
> The error-prone PR could be saved if it removed the error-prone compiler,
> made some statements on why certain changes were made, and built cleanly.
>
> Robert Dale
>
> On Tue, Apr 3, 2018 at 12:57 PM, Stephen Mallette <spmalle...@gmail.com>
> wrote:
>
> > 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