GSoC/2017/StatusReports/CsabaKertesz: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2017‎ | StatusReports
(Created page with "== Improve stability, testing and bring modern C++ to KStars == Brief explanation: KStars has a mature codebase with well-written C++. It has been under constant development...")
 
 
(19 intermediate revisions by the same user not shown)
Line 12: Line 12:
Knowledge Prerequisite: C++, Qt, Data Structures
Knowledge Prerequisite: C++, Qt, Data Structures


Mentor: Jasem Mutlaq (Matrix: Jasem)
== May 30, 2017 - June 30, 2017 ==
 
Progress of the planned items:
 
'''1. Add ccache support'''
 
Status: DONE
 
Example commits:
 
Add ccache support
https://github.com/KDE/kstars/commit/d0bd857d9dfb87b725ee02553bfaced8a6c10057
 
'''2. Add hardening support to the CMake build system (improve security)'''
 
Status: DONE
 
Example commits:
 
Add security (hardening) flags
https://github.com/KDE/kstars/commit/c9f2566cf956a449a88a40341c062d653ba99b3c
 
Update the security flags
https://github.com/KDE/kstars/commit/b0936baa56951dad2b67931aad73c63ea153c31f
 
'''3. Add Clang specific improvements to the CMake build system'''
 
Status: DONE
 
Example commits:
 
Add verbose warning and optimized debug/linker flags
https://github.com/KDE/kstars/commit/b6d848b849f4d3be664ad3b33a1a531734d11d23
 
'''4. Add Clang sanitizers to the CMake build system'''
 
Status: DONE
 
Example commits:
 
Add sanitizer support
https://github.com/KDE/kstars/commit/2c32445378c9bc9f74d48c136a5f8e9656159490
 
'''5. Run the KStars application with the sanitizers enabled and fix all memory error found by these tools'''
 
Status: DONE
 
Example commits:
 
Fix some sanitizer findings, update .gitignore and add a source file to compilation
https://github.com/KDE/kstars/commit/8888bdbaa45e2496df9c889a6bdd9ef7f753a021
 
'''6. Add Unity build to the CMake build system to cut the build time'''
 
Status: DONE
 
Example commits:
 
Add Unity Build support
https://github.com/KDE/kstars/commit/5a51c28935a420f9246f5e30cbed03c33667d717
 
'''7. Refactor codes to modern C++11/C++14 what I get in touch while fixing bugs:'''
 
Status: DONE
 
Example commits:
 
Replace NULL with nullptr
https://github.com/KDE/kstars/commit/827f5c2d60d9c4594470cd693edee66868af014e
 
Fix compiler warnings
https://github.com/KDE/kstars/commit/f075756affa3494f9be91d74221e93575ad8c4d9
 
'''8. Add documentation about the improvements and the sanitizers to the wiki pages.'''
 
Status: DONE
 
Wiki page: https://techbase.kde.org/Projects/Edu/KStars/C%2B%2B_developer_tools_with_KStars_on_Linux
 
== June 30, 2017 - July 24, 2017 ==
 
Progress of the planned items:
 
'''1. Add support to static code analyzer (cppcheck), run on the codebase, fix all problems and document on wiki page'''
 
Status: DONE
 
Example commits:
 
Add cppcheck script, fix findings and add more smart pointers
https://github.com/KDE/kstars/commit/654754f28a6a17331db084f608a4346cc42330b8
 
'''2. Add support to static code analyzer (Clazy), run on the codebase, fix all problems and document on wiki page.'''
 
Status: DONE
 
Example commits:
 
Add Clazy script, fix all problems and add more smart pointers
https://github.com/KDE/kstars/commit/4d8791c41e6f14e0bcdc4d9e3b0ae7276c1030cb
 
'''3. Add support to Clang Static Analyzer, run on the codebase, fix all problems and document on wiki page.'''
 
Status: DONE
 
Example commits:
 
Add Clang Static Analyzer script and fix the findings
https://github.com/KDE/kstars/commit/457ac1ab0b6148e8dee13d6f39092e513eca5701
 
'''4. Add support to static code analyzer (Clang Tidy), run on the codebase, fix all problems and document on wiki page.'''
 
Status: DONE
 
Example commits:
 
Add Clang Tidy analyzer script and fix the findings
https://github.com/KDE/kstars/commit/d08c6cb7ce845552dbe9efa84ac4b45ad43f8fc8
 
'''5. Add support to static code analyzer (Krazy), run on the codebase, fix all problems and document on wiki page.'''
 
Status: DONE
 
Example commits:
 
Fix Krazy findings
https://github.com/KDE/kstars/commit/d5435c7fdff6f209ac4ed2df544726de140dce1f
 
'''6. Add support to static code analyzer (Coverity), run on the codebase, fix all problems and document on wiki page.'''
 
Status: DONE
 
Example commits:
 
Fix Coverity findings
https://github.com/KDE/kstars/commit/48bf74532396849a0963d3c1ff05184427872444
 
'''7. Refactor codes to modern C++11/C++14 what I get in touch while fixing bugs.'''
 
Status: DONE
 
Example commits:
 
Add cppcheck script, fix findings and add more smart pointers
https://github.com/KDE/kstars/commit/654754f28a6a17331db084f608a4346cc42330b8
 
Add Clazy script, fix all problems and add more smart pointers
https://github.com/KDE/kstars/commit/4d8791c41e6f14e0bcdc4d9e3b0ae7276c1030cb
 
'''8. Add documentation about the static code analyzers to the wiki pages.'''
 
Status: DONE
 
Wiki page: https://techbase.kde.org/Projects/Edu/KStars/C%2B%2B_developer_tools_with_KStars_on_Linux


== May 30, 2017 - June 30, 2017 ==
== July 25, 2017 - Aug 21, 2017 ==


Progress of the planned items:
Progress of the planned items:


1. Add ccache support
'''1. Add basic GUI tests for KStars'''


Review ticket: https://phabricator.kde.org/D5988
Status: DONE


2. Add hardening support to the CMake build system (improve security)
Example commits:


3. Add Clang specific improvements to the CMake build system
Add some KStars UI tests
https://github.com/KDE/kstars/commit/49bd8c32cf894626085e2cc063060f2814b38e49


4. Add Clang sanitizers to the CMake build system
'''2. Add basic GUI tests for KStars Lite'''


5. Run the KStars application with the sanitizers enabled and fix all memory error found
Status: DONE
by these tools


6. Add Unity build to the CMake build system to cut the build time
Example commits:


7. Refactor codes to modern C++11/C++14 what I get in touch while fixing bugs:
Add basic GUI testing to KStars Lite
https://github.com/KDE/kstars/commit/3a59076baf094236d5e4a685ffd10c7d0ee6bb6c


Review ticket: https://phabricator.kde.org/D6044
'''3. Add documentation about the testing to the wiki pages'''


8. Add documentation about the improvements and the sanitizers to the wiki pages.
Status: DONE
 
Wiki page:
https://techbase.kde.org/Projects/Edu/KStars/Building_KStars_KF5#Running_tests
 
== Blog posts ==
 
* http://kecsapgsoc2017.blogspot.fi/2017/06/modernizing-kstars-codebase-during-gsoc.html
* http://kecsapgsoc2017.blogspot.fi/2017/06/the-achievements-in-first-period.html
* http://kecsapgsoc2017.blogspot.fi/2017/07/the-achievements-during-second-gsoc.html
* http://kecsapgsoc2017.blogspot.fi/2017/08/finalizing-gsoc-project-for-kstars.html
 
 
Mentor: Jasem Mutlaq (Matrix: Jasem)

Latest revision as of 18:56, 28 August 2017

Improve stability, testing and bring modern C++ to KStars

Brief explanation: KStars has a mature codebase with well-written C++. It has been under constant development for the last 16 years and requires serious modernization due to the complexity of the code with its many contributors. The student is required to refactor the sources with modern C++11/C++14 features, explore and fix corner cases, perform static code analysis and implement new testing methods.

Expected results:

Refactor code to C++11/C++14 Replace raw pointers with smart pointers where appropriate. Use standard containers. Migrate all connections/slots to new Qt style connection. Add new unit and functional tests covering the complete scope of the source code. Reduced memory footprint especially on embedded devices. Knowledge Prerequisite: C++, Qt, Data Structures

May 30, 2017 - June 30, 2017

Progress of the planned items:

1. Add ccache support

Status: DONE

Example commits:

Add ccache support https://github.com/KDE/kstars/commit/d0bd857d9dfb87b725ee02553bfaced8a6c10057

2. Add hardening support to the CMake build system (improve security)

Status: DONE

Example commits:

Add security (hardening) flags https://github.com/KDE/kstars/commit/c9f2566cf956a449a88a40341c062d653ba99b3c

Update the security flags https://github.com/KDE/kstars/commit/b0936baa56951dad2b67931aad73c63ea153c31f

3. Add Clang specific improvements to the CMake build system

Status: DONE

Example commits:

Add verbose warning and optimized debug/linker flags https://github.com/KDE/kstars/commit/b6d848b849f4d3be664ad3b33a1a531734d11d23

4. Add Clang sanitizers to the CMake build system

Status: DONE

Example commits:

Add sanitizer support https://github.com/KDE/kstars/commit/2c32445378c9bc9f74d48c136a5f8e9656159490

5. Run the KStars application with the sanitizers enabled and fix all memory error found by these tools

Status: DONE

Example commits:

Fix some sanitizer findings, update .gitignore and add a source file to compilation https://github.com/KDE/kstars/commit/8888bdbaa45e2496df9c889a6bdd9ef7f753a021

6. Add Unity build to the CMake build system to cut the build time

Status: DONE

Example commits:

Add Unity Build support https://github.com/KDE/kstars/commit/5a51c28935a420f9246f5e30cbed03c33667d717

7. Refactor codes to modern C++11/C++14 what I get in touch while fixing bugs:

Status: DONE

Example commits:

Replace NULL with nullptr https://github.com/KDE/kstars/commit/827f5c2d60d9c4594470cd693edee66868af014e

Fix compiler warnings https://github.com/KDE/kstars/commit/f075756affa3494f9be91d74221e93575ad8c4d9

8. Add documentation about the improvements and the sanitizers to the wiki pages.

Status: DONE

Wiki page: https://techbase.kde.org/Projects/Edu/KStars/C%2B%2B_developer_tools_with_KStars_on_Linux

June 30, 2017 - July 24, 2017

Progress of the planned items:

1. Add support to static code analyzer (cppcheck), run on the codebase, fix all problems and document on wiki page

Status: DONE

Example commits:

Add cppcheck script, fix findings and add more smart pointers https://github.com/KDE/kstars/commit/654754f28a6a17331db084f608a4346cc42330b8

2. Add support to static code analyzer (Clazy), run on the codebase, fix all problems and document on wiki page.

Status: DONE

Example commits:

Add Clazy script, fix all problems and add more smart pointers https://github.com/KDE/kstars/commit/4d8791c41e6f14e0bcdc4d9e3b0ae7276c1030cb

3. Add support to Clang Static Analyzer, run on the codebase, fix all problems and document on wiki page.

Status: DONE

Example commits:

Add Clang Static Analyzer script and fix the findings https://github.com/KDE/kstars/commit/457ac1ab0b6148e8dee13d6f39092e513eca5701

4. Add support to static code analyzer (Clang Tidy), run on the codebase, fix all problems and document on wiki page.

Status: DONE

Example commits:

Add Clang Tidy analyzer script and fix the findings https://github.com/KDE/kstars/commit/d08c6cb7ce845552dbe9efa84ac4b45ad43f8fc8

5. Add support to static code analyzer (Krazy), run on the codebase, fix all problems and document on wiki page.

Status: DONE

Example commits:

Fix Krazy findings https://github.com/KDE/kstars/commit/d5435c7fdff6f209ac4ed2df544726de140dce1f

6. Add support to static code analyzer (Coverity), run on the codebase, fix all problems and document on wiki page.

Status: DONE

Example commits:

Fix Coverity findings https://github.com/KDE/kstars/commit/48bf74532396849a0963d3c1ff05184427872444

7. Refactor codes to modern C++11/C++14 what I get in touch while fixing bugs.

Status: DONE

Example commits:

Add cppcheck script, fix findings and add more smart pointers https://github.com/KDE/kstars/commit/654754f28a6a17331db084f608a4346cc42330b8

Add Clazy script, fix all problems and add more smart pointers https://github.com/KDE/kstars/commit/4d8791c41e6f14e0bcdc4d9e3b0ae7276c1030cb

8. Add documentation about the static code analyzers to the wiki pages.

Status: DONE

Wiki page: https://techbase.kde.org/Projects/Edu/KStars/C%2B%2B_developer_tools_with_KStars_on_Linux

July 25, 2017 - Aug 21, 2017

Progress of the planned items:

1. Add basic GUI tests for KStars

Status: DONE

Example commits:

Add some KStars UI tests https://github.com/KDE/kstars/commit/49bd8c32cf894626085e2cc063060f2814b38e49

2. Add basic GUI tests for KStars Lite

Status: DONE

Example commits:

Add basic GUI testing to KStars Lite https://github.com/KDE/kstars/commit/3a59076baf094236d5e4a685ffd10c7d0ee6bb6c

3. Add documentation about the testing to the wiki pages

Status: DONE

Wiki page: https://techbase.kde.org/Projects/Edu/KStars/Building_KStars_KF5#Running_tests

Blog posts


Mentor: Jasem Mutlaq (Matrix: Jasem)