Digikam/GSoC2013

From KDE Community Wiki

Small Projects to Introduce Students

libjpeg-turbo detection

Auto-Lens correction tool don't work in BQM

Keyboard Tagging Improvements

  • Patch to review : http://git.reviewboard.kde.org/r/108382/
  • Assigned to : Saurabh Patel
  • Note : author keyboard workflow need to be understood and tested. It miss some menu entries to make shortcuts visible to end users.
  • Status : Pending

Panorama Tool - Hiding binaries details

  • Brief explanation : The goal is to hide the external binaries table when all the binaries are found on the system. A "Binaries' Details" button should be added, which upon clicked will show the table. If all the binaries are not found on start-up, then, the table should be shown by default (can be done by simply generating a pseudo click on the above described button once its implemented). Once it is successfully implemented here, it can be extended to all kipi-plugins which use external binaries.
  • Knowledge Prerequisite : C++, Qt
  • Assigned to : Nishita Tanwar
  • Status : Pending

Read face from Picasa metadata to populate digiKam database

Video Support in Advanced Search Tool

  • Bugzilla entry : https://bugs.kde.org/show_bug.cgi?id=164442
  • Assigned to : Yiou Wang
  • Note : an initial patch for Advanced Search tool GUI have been posted and must be adapted to last code from git/master. But DB queries builder is not patched and need to be done.
  • Status : Completed

Fix KML export file generator

Remove internal Clapack library

Auto Crop Tool

  • Brief explanation: In some users case relevant of photo workflow, as Panorama assembly for example, digiKam need an algorithm to detect black hole borders of image and crop it automatically, respecting the most largest suitable image area. No adjustment must be require by end user. As JPEG is the most used image format used in photography and as JPEG library support a loss-less crop feature, a specific way must be implemented to process JPEG crop in batch without to lose image quality.
  • Dependencies: Batch Queue Manager, Image Editor.
  • Bugzilla entry: 267436, 204135
  • Knowledge Prerequisite: C/C++, Qt, Imagery
  • Expected results: new editor and batch queue manager tools to crop automatically images
  • Assigned to : Sayantan Datta
  • Status : Completed

JAlbum plugin

Sort Image by Pixel Size and Image Ratio

  • Patch to review : http://git.reviewboard.kde.org/r/108574/
  • Assigned to : Pankaj Kumar
  • Note : this patch is incomplete. It miss something to do in Filter tab from icon view right sidebar, and Advanced Search tool to perform search based on these criteria.
  • Status : Completed

digiKam Google Summer of Code 2013 Projects list

Port Image digiKam Editor Canvas Classes to Qt4 Model/View

  • Student  : Yiou Wang <geow812 at gmail dot com>
  • Come from  : Beijing, China
  • Lead Mentor  : Islam Wazery
  • Alternative Mentor : Marcel Wiesweg
  • Working on  : digiKam "gsoc2013-editorcanvas-mv" Git branch
  • Proposal page
  • Status : Pending

Port Showfoto Thumb bar to Qt4 Model/View

  • Student  : Mohamed Anwer <mohammed dot ahmed dot anwer at gmail dot com>
  • Come from  : Cairo, Egypt
  • Lead Mentor  : Islam Wazery
  • Alternative Mentor : Gilles Caulier
  • Working on  : digiKam "gsoc2013-thumbbar-mv" Git branch
  • Proposal page
  • Status : Pending

digiKam Tag Manager

  • Student  : Veaceslav Munteanu <slavuttici at gmail dot com>
  • Come from  : Bucharest, Romania
  • Lead Mentor  : Smit Mehta
  • Alternative Mentor : Marcel Wiesweg
  • Working on  : digiKam "gsoc2013-tagmngr" Git branch
  • Proposal page
  • Status : Pending

Image Quality Sorter for digiKam

  • Student  : Gowtham Ashok <gwty93 at gmail dot com>
  • Come from  : Chennai, India
  • Lead Mentor  : Gilles Caulier
  • Alternative Mentor : Marcel Wiesweg
  • Working on  : digiKam "gsoc2013-imgqsort" Git branch
  • Proposal page
  • Status : Pending

Local Adjustment Tool in digiKam

  • Student  : Sayantan Datta <kenzo dot zombie at gmail dot com>
  • Come from  : Durgapur, India
  • Lead Mentor  : Gilles Caulier
  • Alternative Mentor : ???
  • Working on  : digiKam "gsoc2013-localadj" Git branch
  • Proposal page
  • Status : Pending

Cloud Integration Export Plugin

  • Student  : Saurabh Patel <saurabhpatel7717 at gmail dot com>
  • Come from  : Ahmedabad, India
  • Lead Mentor  : Pankaj Kumar
  • Alternative Mentor : Smit Mehta
  • Working on  : Kipi-plugins "gsoc2013-cloudexport" Git branch
  • Proposal page
  • Status : Pending

HDR Composer Plugin

  • Student  : Soumajyoti Sarkar <ergy dot ergy at gmail dot com>
  • Come from  : Shibpur, India
  • Lead Mentor  : Benjamin Girault
  • Alternative Mentor : Janardhan Reddy and Marcel Wiesweg
  • Working on  : Kipi-plugins "gsoc2013-hdr" Git branch
  • Proposal page
  • Status : Pending

Video Metadata Write support for Exiv2

  • Student  : Mahesh Hegde <maheshmhegade at gmail dot com>
  • Come from  : Bangalore, India
  • Lead Mentor  : Abhinav Badola
  • Alternative Mentor : Gilles Caulier
  • Working on  : Exiv2 "gsoc2013-videow" Svn branch
  • Wiki Page
  • Proposal page
  • Status : Pending

Exiv2 "Cloud Ready" Project

  • Student  : Nhu Dinh Tuan <nhudinhtuan at gmail dot com>
  • Come from  : Singapore, Asia
  • Lead Mentor  : Robin Mills
  • Alternative Mentor : Abhinav Badola
  • Working on  : Exiv2 "gsoc2013-cloudr" Svn branch
  • Proposal page
  • Status : Pending

Mentors List and Coordination

Name Email Come From
Gilles Caulier <caulier dot gilles at gmail dot com> Aix en provence, France
Marcel Wiesweg <marcel dot wiesweg at gmx dot de> Essen, Germany
Abhinav Badola <mail dot abu dot to at gmail dot com> Chandigarh, India
Smit Mehta <smit dot meh at gmail dot com> Chennai, India
Islam Wazery <wazery at ubuntu dot com> Cairo, Egypt
Benjamin Girault <benjamin dot girault at gmail dot com> Lyon, France
Robin Mills <robin at clanmills dot com> San Jose, USA
Pankaj Kumar <me at panks dot me> Hyderabad, India
Janardhan Reddy <annapareddyjanardhanreddy at gmail dot com> Chennai, India


Students and mentors will use digikam-soc-devel at kde dot org mailing-list to coordinate projects.

Repositories, Branching, and Dates

Developer Account

To be able to code and work on digiKam project, each student must ask for a developer account to KDE Git repository administrator. See this page for details about KDE developers rules.

For Exiv2 project, please contact your mentor to get write access on Subversion repository.

Coverity Analyser Account

digiKam and Exiv2 has registred in Coverty Scan Program to reports all source code dysfunctions. Code are parsed automatically through a cronned script each week end. Reports has forwarded to digikam-soc-devel_at_kde_dot_org mailing-list.

To be able to review and fix errors reported by Scan analyser, all students must be registered in relevant Coverity project :

KDE Repository

All students working on digiKam will play with KDE Git repository from Git master branch.

We have a digiKam Software Compilation Repository where you will be able to checkout all sub-repositories including all shared libraries managed by team. This not included Exiv2 which is hosted outside KDE.

Instructions to checkout and compile code is given in this README file.

Branches Creation and Maintenance

During GSoC 2013 coding time, git/master will still the stable implementation receiving important fixes. Each students must create a dedicated development branch for each project (your branch name is defined in project list by "Working on" property). In charge for each students to sync it with git/master periodically. To do it, see below as example how to sync digiKam "MY_DEVEL_BRANCH" branch tracking "remotes/origin/development/MY_DEVEL_BRANCH" from KDE git repository:

$>git checkout master
$>git pull --rebase
$>git checkout -b MY_DEVEL_BRANCH remotes/origin/development/MY_DEVEL_BRANCH
  Branch MY_DEVEL_BRANCH set up to track remote branch development/MY_DEVEL_BRANCH from origin.
  Switched to a new branch 'MY_DEVEL_BRANCH'
$>git merge master
  Merge made by the 'recursive' strategy.
  ...
$>git push


The 2 first lines take a sure that your local master repository is up to date. The 3rd line create in local the "MY_DEVEL_BRANCH" development branch. Merge between master and MY_DEVEL_BRANCH branch is done with 4th line. Git can ask you to resolve conflicts here. When it's done, it will ask you a commit comment. Finally push your merge into remote KDE repository.

Note: If you have already created MY_DEVEL_BRANCH branch, just run "git checkout MY_DEVEL_BRANCH" as well instead git checkout -b MY_DEVEL_BRANCH remotes/origin/development/MY_DEVEL_BRANCH. This give this concatenated command line:

$>git checkout master; git pull --rebase; git checkout MY_DEVEL_BRANCH; git pull; git merge master
  ...
$>git push


For advanced rules, especially to create remote working branches in KDE git repository, please look on this tutorial from KDE TechBase.

Roadmap and Releases Plan including all GSoC-2013 works

Date Action Remark
02 Jun 2013 digiKam Software Collection 3.3.0-beta1 released -
09 Jun 2013 digiKam GSoC-2013 branches created in KDE git repository see branches listed in projects list
09 Jun 2013 Kipi-plugins GSoC-2013 branches created in KDE git repository see branches listed in projects list
09 Jun 2013 Exiv2 GSoC-2013 branches created in SVN repository see branches listed in projects list
21 Jul 2013 digiKam Software Collection 3.3.0 released -
18 Aug 2013 digiKam Software Collection 3.4.0 released sync with KDE 4.11
20 Aug 2013 Exiv2 GSoC-2013 branches merged to svn/trunk -
08 sep 2013 digiKam GSoC-2013 development branches are merged back to git/master -
08 sep 2013 Kipi-plugins GSoC-2013 development branches are merged back to git/master -
15 Sep 2013 digiKam Software Collection 4.0.0 beta1 including all GSoC-2013 works -
06 Oct 2013 digiKam Software Collection 4.0.0 beta2 -
10 Nov 2013 digiKam Software Collection 4.0.0 beta3 -
22 Dec 2013 digiKam Software Collection 4.0.0 RC -
09 feb 2014 digiKam Software Collection 4.0.0 Final sync with KDE 4.12

Coding Sprint

As a lots of students come from India this year, it will be nice to plan a reunion between developers in this country to reduce travel and hotel costs.