<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#CCCCCC" bgcolor="#333333">
<style type="text/css">p { margin-bottom: 0.25cm; line-height: 115%; }a.cjk:link { }a.ctl:link { }</style>
<p style="margin-bottom: 0cm; line-height: 100%">Hello everyone!</p>
<p style="margin-bottom: 0cm; line-height: 100%">Let me introduce
you
to a project that I am currently working on.</p>
<p style="margin-bottom: 0cm; line-height: 100%">The scope of the
project is to provide an easy way to search KDE code and
translations
repository since I consider that such a kind of an infrastructure
would help possible newcomers to easily obtain valuable
information
about the work of the community. For example:</p>
<blockquote>
<p style="margin-bottom: 0cm; line-height: 100%"> </p>
<p style="margin-bottom: 0cm; line-height: 100%">- which projects
exist</p>
<p style="margin-bottom: 0cm; line-height: 100%">- which ones are
the
most active</p>
<p style="margin-bottom: 0cm; line-height: 100%">- how developers
describe their work on them</p>
<p style="margin-bottom: 0cm; line-height: 100%">- find out the
developers that currently work on them</p>
</blockquote>
<p style="margin-bottom: 0cm; line-height: 100%">To make the long
story short, I was thinking that a google-like search engine would
facilitate onboarding of newcomers to KDE </p>
<p style="margin-bottom: 0cm; line-height: 100%">So, I ended up to a
solution that:</p>
<p style="margin-bottom: 0cm; line-height: 100%">1. Fetches git and
svn commit messages from the kde-commits mailing list</p>
<p style="margin-bottom: 0cm; line-height: 100%">2. Parses each
message and creates a json file that contains the below
information:</p>
<p style="margin-bottom: 0cm; line-height: 100%">- commit subject</p>
<p style="margin-bottom: 0cm; line-height: 100%">- commit message</p>
<p style="margin-bottom: 0cm; line-height: 100%">- author</p>
<p style="margin-bottom: 0cm; line-height: 100%">- project</p>
<p style="margin-bottom: 0cm; line-height: 100%">- commit date</p>
<p style="margin-bottom: 0cm; line-height: 100%">- isrevision (does
a
relative phabricator task exist?)</p>
<p style="margin-bottom: 0cm; line-height: 100%">- istranslation (is
it a translation commit?)</p>
<p style="margin-bottom: 0cm; line-height: 100%">- fixesbug (whether
the commit is bug-related)</p>
<p style="margin-bottom: 0cm; line-height: 100%">The relative code
can be found here <a class="moz-txt-link-freetext" href="https://github.com/dimkard/kde-commits-solr">https://github.com/dimkard/kde-commits-solr</a></p>
<p style="margin-bottom: 0cm; line-height: 100%">3. Loads the json
recordset to an Apache Solr instance</p>
<p style="margin-bottom: 0cm; line-height: 100%">4. On top of apache
Solr, Banana (port of Kibana for Solr) has been added. A custom
searching panel has been created to provide fuzzy searches against
KDE repositories. <br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%"><br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%">Moreover, it could
also be useful for KDE writers/promoters to get a clear view of
the
current development, either on code or translations, the new
features, the bug-fixing work, etc</p>
<p style="margin-bottom: 0cm; line-height: 100%"><br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%">To better
illustrate
the tool, let's simulate the creation of a post like
<a class="western"
href="https://pointieststick.wordpress.com/2018/04/29/this-week-in-usability-productivity-part-16-everything-else/">https://pointieststick.wordpress.com/2018/04/29/this-week-in-usability-productivity-part-16-everything-else/</a>
, leveraging the functionalities offered by this solution.</p>
<p style="margin-bottom: 0cm; line-height: 100%">At first, the
promoter wants to get more info and add references to open/save
dialog project improvements:<br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%"> <i>Open/Save
dialog
project</i></p>
<p style="margin-bottom: 0cm; line-height: 100%"> <i>The dialogs
now display previews for the same assortment of file types as
Dolphin
does (Alex Nemeth)</i></p>
<p style="margin-bottom: 0cm; line-height: 100%"> <i>Grid Spacing
in icons view has been tightened up to match Dolphin, allowing
more
to be shown in the window (Alex Nemeth)</i></p>
<p style="margin-bottom: 0cm; line-height: 100%"><i><br>
</i></p>
<p style="margin-bottom: 0cm; line-height: 100%">In case that the
writer remembers the name of the committer and knows that a
relative
bug report does exist, the facet in the left will be used and the
relative
time period will also be set (top-left):</p>
<p style="margin-bottom: 0cm; line-height: 100%"> </p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/z4PtCZxEul5K/L3tJZ8visR4I.png">https://framapic.org/z4PtCZxEul5K/L3tJZ8visR4I.png</a></p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/DnveENis7bEa/BsKkske4RVPz.png">https://framapic.org/DnveENis7bEa/BsKkske4RVPz.png</a></p>
<p style="margin-bottom: 0cm; line-height: 100%">The records
returned
are: </p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/8fv0crGCijf6/cPsbeZWO1CJH.png">https://framapic.org/8fv0crGCijf6/cPsbeZWO1CJH.png</a></p>
<p style="margin-bottom: 0cm; line-height: 100%">so the commit in
concern has been successfully found.</p>
<p style="margin-bottom: 0cm; line-height: 100%"><br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%">In case that no
committer name is available, the writer may search for sth like:</p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/wYn063MH0jPY/4zEdV8ngIidS.png">https://framapic.org/wYn063MH0jPY/4zEdV8ngIidS.png</a></p>
<style type="text/css">p { margin-bottom: 0.25cm; line-height: 115%; }a.cjk:link { }a.ctl:link { }</style>
<p style="margin-bottom: 0cm; line-height: 100%">Then following the
search suggestion</p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/owrsQQ2a5HVW/gWUiTNz7xWTB.png">https://framapic.org/owrsQQ2a5HVW/gWUiTNz7xWTB.png</a></p>
<p style="margin-bottom: 0cm; line-height: 100%">the relative commit
will be returned as top result:</p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/bNDgq0cbR7J7/xVd3HJqQ40Kv.png">https://framapic.org/bNDgq0cbR7J7/xVd3HJqQ40Kv.png</a></p>
<p style="margin-bottom: 0cm; line-height: 100%"><br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%">The same applies
for
the second search:</p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/qpddu38zvRJF/ssQO4MBEWt6s.png">https://framapic.org/qpddu38zvRJF/ssQO4MBEWt6s.png</a></p>
<p style="margin-bottom: 0cm; line-height: 100%">since the relative
commit is returned as well:</p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/g31g6x5mIOxR/5PNUInPMNxYw.png">https://framapic.org/g31g6x5mIOxR/5PNUInPMNxYw.png</a></p>
<p style="margin-bottom: 0cm; line-height: 100%"><br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%">Moreover, although
this is not its primary role, the solution provides some useful
interactive visualization tools. For example, searching work on
projects like plasma-phone-components, plasma-settings,
plasma-mobile
and kirigami, the tool would provide useful information regarding
work on Plasma Mobile. So, a relative promo article could be
accompanied with some useful statistics and references to real
plasma
mobile commits, like this:</p>
<p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
href="https://framapic.org/2RW8LlxCjYkh/LbkUnVQZTyZV.png">https://framapic.org/2RW8LlxCjYkh/LbkUnVQZTyZV.png</a></p>
<br>
<p style="margin-bottom: 0cm; line-height: 100%">In the future, such
a solution could be further extended indexing bugzilla data as
well.
As a result, reports about possible duplicates could be
automatically
generated and, why not, a fuzzy search engine could be offered to
the
bug reporters enhancing the reporting experience, avoiding
duplicates
and frustration about irrelevant results.</p>
<p style="margin-bottom: 0cm; line-height: 100%">Nevertheless, there
is a set of factors that should be considered as well. At first,
the
amount of commits on a project is just an indicator -among many
others- of the activity of a project. A lot of work may happen
behind
the scenes, in terms of communications, design, testing etc, and
this
work may be committed as a single or a few commits. So,
considering
all commits as equal is a trap. In addition, since the tool
measures
the # of commits by each developer, we may think twice about the
implications of such a tool regarding the psychological effects on
the personality of contributors.</p>
<p style="margin-bottom: 0cm; line-height: 100%">Do you think that
such a tool could help KDE community? I look forward to hearing
your
thoughts, since I am not still convinced if working on this would
really help the KDE ecosystem.</p>
<p style="margin-bottom: 0cm; line-height: 100%">PS: We may look at
other alternatives as regards to the technologies involved. I’ve
opted for the aforementioned since I have already worked on them
in
the past.</p>
<p style="margin-bottom: 0cm; line-height: 100%">PS1: If similar
projects that I am not aware of currently exist in KDE we
may consider using them instead of this approach (or join efforts
if
they are compatible). My intention is just to start a discussion
about how big data,
indexing and fuzzy searching may improve onboarding and
"promotion"
work.</p>
<p style="margin-bottom: 0cm; line-height: 100%">Dimitris<br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%"> </p>
<p style="margin-bottom: 0cm; line-height: 100%"> </p>
</body>
</html>