Re: [eigen] Bugs on bugzilla |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
Kolja, Jitse, others, Thanks for tackling this. My response is bottom posted for flow.
On 05/29/2014 07:07 AM, Kolja Brix wrote:
I agree with JItse's characterization that bugzilla has many "feature requests that no developer is really interested in", and "bugs on exotic platforms".Dear Jitse,
On 08.04.2014 09:48, Jitse Niesen wrote:
I talked with Christoph on IRC earlier today about the amount of bugs
and other issues on bugzilla. The issue is that the number is growing
all the time; there are almost 300 open at the moment.
That in itself is perhaps not that much a problem though a bit
overwhelming. The real danger is that important bugs slip through.
Especially bad is when users submit a patch and nobody looks at it,
which does happen.
What can we do about this?
Why are there so many bugs / issues? Some issues are feature requests
that no developer is really interested in. Some are bugs on exotic
platforms that no developer has access to. Some bugs need discussion
(e.g., bug 662 on input operators).
But the main problem is a lack of manpower; or to put it another way,
the library is too big for the number of people working on it. This
is compounded by the fact that some parts of the code base (e.g.,
product, I think) are only really understood by one guy (Gael). So
improving the process and the bug tracker will not solve everything.
Christoph suggested that we have an IRC meeting to go through the
bugs and discuss them so to prioritize / downgrade / close /
delegate. Another suggestion is to enable voting on bugzilla to help
us prioritize the issues.
Any other ideas?
thank you for pointing out the current situation. There are a few more
observations:
In the Eigen source code simple or straight forward algorithms are often
well-documented. But unfortunately, the documentation of much more
advanced and complicated parts of the code (e.g. the template core part)
is very sparse, what might discourage newcomers. Of course, this is a
natural effect, but we should try to go against that. I know that
currently, core parts are rewritten for the evaluators, it would be
great if the concepts of the new code would be easier to understand.
In fact, Gael's presentation slides from Eurographics/CGLibs in Pisa
available on <http://eigen.tuxfamily.org/index.php?title=Publications>
helped me a lot to understand more on the architectural concepts behind
Eigen, but the link to this web page and the PDF file is not so easy to
find.
Therefore, possible strategies to attract more new contributors - and I
am quite sure that many users would like to contribute if the learning
curve was not so steep - could include the following issues:
* An improvement of the documentation in the code would be a great step
forward. In particular the documentation of the essential core parts and
the template mechanisms underlying the library would be very helpful.
Moreover, the concepts behind Eigen and its API need to be documented in
more detail, preferably outside the code.
* A review and a classification of the bugs possibly is also a good
idea. Maybe we can also rate them by how hard it probably is to fix
them [from "easy" (standard C++ knowledge is enough) via "advanced"
(additional knowledge on numerics or template metaprogramming necessary)
to "for experts only" (deep insight into Eigen internal structures
required)]. Then new contributers can get started with easy ones and
grow with the tasks.
* By setting up a kind of mentoring program for bug fixing new
contributors could learn much faster from current experts.
I view this as a symptom of the difficulty of contributing. If the learning curve was gentler, the reporting users would be empowered to enhance or fix things themselves.
I echo Kolja's sentiment -- if we reduce the barriers to entry, bug reports on bugzilla will more often come with test cases and patches.
Eigen is wonderfully easy to *use*. I love it! I think I speak for many Eigen users when I say I am so thankful to all the great developers who have worked so hard to make it! I am proud of my (small) part in helping make it.
... but Eigen internals are quite daunting sometimes (all for good reasons, I'm sure).
Adding to Kolja's ideas: How about a tutorial aimed at Eigen *internal* developers? e.g. Walk a user through a truly simple, developer task in the span of a half-hour. Maybe create a algorithm for something that is understandable and easy to code. Gram-Schmidt or Power Iteration come to mind. I'd stress that the cmake test environment is not necessary, at least for beginners.
I suspect the average Eigen user (who might become an occasional contributor) is an engineer or scientist, but not a computer scientist or a "language lawyer". He or she is competent in c++, but not comfortable with esoteric language features.
Musing on the "Drake Equation"-type probabilities -- the intersection of circumstance, knowledge, and skills needed to be a truly effective Eigen contributor (a set in which I am not an element) is very small indeed.
- desire to help
- time to help ( this is my greatest obstacle in the last few years )
- Linear Algebra skill : high to expert
- C++ skill: expert level ( comfort with metaprogramming, partial specialization, etc) <-- I suspect this shrinks the most!
- amenability to (possibly new) tools: CMake, mercurial, and doxygen-style commenting.
Multiply the probabilities and you start to see why there are few who rise to the elite rank: Gael, Benoit, Thomas, Desire, Jitse, Hauke, Chen-Pang, Pavel. (developers who have contributed more than 10,000 lines of code according to hg churn).
-- Mark
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |