Jump to content

GSoC/2018/StatusReports/kecsap

From KDE Community Wiki

Improving the reliability and usability of KStars

Brief explanation: KStars has a mature codebase with well-written C++ for a desktop and a mobile client. The applicant would like to contribute enhancements by improving the sources (C++11/C++14 features, static code analysis, better testing in CI) and adding usability improvements to the desktop and the mobile version of KStars.

Expected results: After the GSOC, all findings of the static code analyzers will be fixed, the C++ tooling will be integrated to Jenkins in KDE CI. The desktop version of KStars will have usability improvements, the build system (CMake) of the Android client will be enhanced and the new functionalities for telescope equipment control will be implemented.

May 14, 2017 - June 10, 2018

Progress of the planned items:

1. Analyze KStars codebase with Coverity and fix new problems

Status: DONE

Example commits:

Fix Coverity findings https://github.com/KDE/kstars/commit/85560b163d3e73cc7412814afc0d4a0e4461b00d

2. Analyze KStars codebase with Clang Static Analyzer and fix new problems

Status: DONE

Example commits:

Fix the Clang Static Analyzer findings https://github.com/KDE/kstars/commit/503b140eb42ebed691167dc8f381ddf9d59b6ac9

3. Analyze KStars codebase with Clang Tidy and fix new problems

Status: DONE

Example commits:

Update Clang Tidy script to Clang 6.0 and fix some findings https://github.com/KDE/kstars/commit/e63bed30cb5783ede5f173e4a072d8a44faaa937

4. Analyze KStars codebase with Clazy and fix new problems

Status: DONE

Example commits:

Clazy fixes https://github.com/KDE/kstars/commit/d893c3452660e843f2e746c00b06a78889f2ca05

5. Analyze KStars codebase with Cppcheck Static Analyzer and fix new problems

Status: DONE

Example commits:

Fix cppcheck findings https://github.com/KDE/kstars/commit/84bb9885cb2c047ed40e3e2937628cf441b50235

6. Analyze KStars codebase with Krazy and fix new problems

Status: DONE

Example commits:

Krazy fixes https://github.com/KDE/kstars/commit/d058ae1aba44da35f45f6dfcbaca6491bed8f337

7. Replace C-like enums with C++11 enum classes

Status: DROPPED

Reason: The mentor found too much work after these changes.

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

Status: DONE

Example commits:

Remove redundant returns https://github.com/KDE/kstars/commit/48e8cc7ab5009c06aae7ea5030f437ad02875a86

Modernize for cycles https://github.com/KDE/kstars/commit/6569077b8a9f657efec7d54e385f2f1aa15af2c4