Kexi/Season: Difference between revisions
mNo edit summary |
|||
Line 79: | Line 79: | ||
'''Tasks assigned:''' | '''Tasks assigned:''' | ||
* Add identifier-related autotests {{Task|5056}} Assigned to Priyanshu | * Add identifier-related autotests {{Task|5056}} Assigned to Priyanshu | ||
* Add record-deleting-related autotests {{Task|5091}} Assigned to Nitish | * Add record-deleting-related autotests {{Task|5091}} Assigned to Nitish - DONE | ||
== Achievements == | == Achievements == |
Latest revision as of 11:59, 11 February 2017
This is a home page of the Season of KDE / Season of Kexi program.
We are using it to record drafts of our tasks and results.
Welcome abroad! The program is aimed at students starting to contribute to Kexi.
Note: This page is updated with information for the 2016/17 edition
Contact channels
See Kexi/Contact for details.
- Subscribe and use the usual development channel [email protected].
- Real time contact: #kexi IRC channel
- When needed: Skype or google hangouts (please request)
Collaboration. Often more than student is working within the program. Please collaborate and support each other. Ability to cooperate is as highly scored as pure technical skills.
Members
Students:
- Khushboo Gupta: [email protected], her wiki page here
- Priyanshu Jain: [email protected], his wiki page here
- Nitish Kumar Dwivedi: [email protected], his wiki page here
Mentor:
- Jaroslaw Staniek: [email protected]
Project member that can be contacted too:
- Adam Pigg: [email protected]
Tasks
For all tasks please report any difficulties as they appear, share time estimations for your tasks, collaborate with other members.
T0: Getting started
- Accustom with the Kexi development wiki and in particular with Kexi/Getting_Started.
- Create an identity.kde.org and share your ID on the mailing list. Please, use real name, not nickname to make our life easier.
- Accustom with code review tool https://phabricator.kde.org/differential, project management https://phabricator.kde.org/project/view/17/ and possible other tools.
- Report any questions and difficulties.
Assigned students: all
T1: Build Kexi
Build kdb/kproperty/kreport frameworks, then Kexi: Kexi/Building. Note: the build instructions are combined with Calligra insteuctions and may be incomplete/ouitdated; you have to deal with this quite realistic situation to learn how to overcome challenges.' Report any difficulties, collaborate during this tasl. Master basic build and debug-related activities to prepare for further tasks.
Assigned students: all
T2: Build mdbtools
Build the original https://github.com/brianb/mdbtools so it is possible to test contributed patches before sending upstream. These builds are not needed for Kexi itself, Kexi.git keeps a copy (snapshot) of mdbtools lib without any extra tools, and the code is possible patched.
Assigned students: all
T3: Accustom with autotesting features
Autotest is a superset of unit test. It can test larger functionality, not just a single function. Autotesting in Kexi and its frameworks are needed because it's a part of golden standard for software development. Also there in the so many corner cases that are hard to reproduce by hand after every major change made to the source code. Developers need a way to assure stability and keep the cost of development as low as possible. More info: Wikipedia.
autotest/ subdir is part of kdb/kreport/kproperty/kexi repositories. By convention it's a KDE's standard location.
Also see Guidelines_and_HOWTOs/UnitTests and Qt docs on testing.
The task: accustom with autotests before you try to write your own.
- Set the BUILD_TESTING cmake option to enable autotests, then build the projects (no full rebuild is needed)
- Learn how to run tests and run them (using CMake's ctest program or in Qt Creator [1])
- Observe the results, make sure every test passes
- Study the source code in autotest/ subdirs
- Try to find functions or features not tested and propose one for future implementation (to the mentor)
T4: Implement autotests
Implement test for APIs as discussed with mentor. Please sync with mentor to avoid double work and simple mistakes. We're using phabricator.kde.org to keep the tasks.
Some technical notes:
- Use KDbTestUtils where possible to reduce size and complexity of your tests, this helper is able to create database and
- For now we're running the tests for SQLite only but in the future we'll run them for mysql and pgsql too, we expect this will be done with a small code change but it's out of scope of the Season. The KDb API is the same for all the database backends, the only exception is KDbConnection::executeSQL() and alike but you won't touch it.
Style notes:
- Use this coding style: https://community.kde.org/Policies/Kdelibs_Coding_Style
- Prior to committing remove qDebug lines and obvious comments/notes. qWarning and more fatal messages if needed should be kept.
- Use a Doxygen style comments in the code. Public docs are written in headers. See how other code is documented.
- Add your name and year to the copyright at the top of the file
Tasks assigned:
- Add identifier-related autotests Task #5056 Assigned to Priyanshu
- Add record-deleting-related autotests Task #5091 Assigned to Nitish - DONE
Achievements
Nov 10
- Priyanshu Jain: found that sdc.py isn't ported to python 3 in kdb.git (unlike in kreport.git)
Tools
- IDE/editor
- Compiler
- Debugger
- git
- Note: Students have no write access to the repository so mentor pushes the approved commits on behalf of them
- Our code review is Phabricator's Differential: https://phabricator.kde.org/differential, not Reviewboard.
Benefits
Benefits for the SoK students.
- Improving skills, adding practical experience
- Making contacts
- Starting a longer-term relation to a FOSS project
- Endorsement from the KDE community and the Kexi project
- Your name in the Kexi's About box and on web sites will be always present!
- You're placed on a list of engineers for any future project-related employment plans