GSoC/2017/StatusReports/CsabaKertesz: Difference between revisions
No edit summary |
No edit summary |
||
Line 92: | Line 92: | ||
Wiki page: https://techbase.kde.org/Projects/Edu/KStars/C%2B%2B_developer_tools_with_KStars_on_Linux | Wiki page: https://techbase.kde.org/Projects/Edu/KStars/C%2B%2B_developer_tools_with_KStars_on_Linux | ||
Mentor: Jasem Mutlaq (Matrix: Jasem) | |||
== June 30, 2017 - July 24, 2017 == | |||
Progress of the planned items: | |||
'''1. Run the codebase through static code analyzers (Coverity, cppcheck, Krazy, Clazy, Clang Static Code Analyzer, Clang Tidy).''' | |||
'''2. Fix all problems found by the static code analyzers.''' | |||
'''3. Add the static code analyzers to the KDE continuous integration system.''' | |||
'''4. Refactor codes to modern C++11/C++14 what I get in touch while fixing bugs.''' | |||
'''5. Add documentation about the static code analyzers to the wiki pages.''' | |||
== Blog posts == | == Blog posts == |
Revision as of 10:38, 25 June 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
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
Mentor: Jasem Mutlaq (Matrix: Jasem)
June 30, 2017 - July 24, 2017
Progress of the planned items:
1. Run the codebase through static code analyzers (Coverity, cppcheck, Krazy, Clazy, Clang Static Code Analyzer, Clang Tidy).
2. Fix all problems found by the static code analyzers.
3. Add the static code analyzers to the KDE continuous integration system.
4. Refactor codes to modern C++11/C++14 what I get in touch while fixing bugs.
5. Add documentation about the static code analyzers to the wiki pages.