Below are some easy ways to do merge requests (MR) for the KDE git repositories. And easy ways to contribute to the KDE Community.
You can find here instructions on how to open a KDE git repository in the IDE Qt Creator. After you build that KDE git repository using kdesrc-build.
Spell check and grammar check a random KDE wiki page
Create a new Google Doc named “SpellCheck”. In the web browser: Navigate to a KDE wiki page. E.g. https://community.kde.org/Get_Involved Ctrl+A Ctrl+C. In the Google Doc: Ctrl+Shift+V. From the Google Doc main menu > Tools > Spelling and grammar > Spelling and grammar check. It says that we should replace: “KDE's Quality Assurance team tests pre-release software and proposed changed to make sure that everything works properly!” with: “KDE's Quality Assurance team tests pre-release software and proposes changes to make sure that everything works properly!” In the web browser: edit the KDE wiki page to fix the spelling or grammar error.
You should be able to build all 400 KDE git repositories using kdesrc-build
From time to time, make sure that all the KDE git repositories (continue to) build correctly using kdesrc-build. Run: kdesrc-build without parameters. That will build all 400 KDE git repositories. If a KDE git repository built successfully last week, but does not build successfully today, invest time to investigate why it stopped building, ask in the KDE Matrix channel (e.g. https://webchat.kde.org/#/room/#kde-welcome:kde.org ) if this module is supposed to build. Example: let's say that kcalc does not build and that in ~/.config/kdesrc-buildrc I have: directory-layout invent In konsole: I would run: clear rm -rf ~/kde/build/utilities/kcalc kdesrc-build --no-include-dependencies --debug kcalc In konsole main menu > Edit > Select All, Ctrl+Shift+C In the web browser create a pastebin https://pastebin.centos.org/ Paste the contents of the clipboard. Paste the URL of the new pastebin in the KDE matrix channel when requesting help.
Spell check all GUI strings
The KDE git repos use GNU gettext and *.po files for translating the Graphical User Interface elements such as buttons and menus. Look through all of the KDE git repos, through all of the en*.po files and make sure that there are no typos. E.g. build all KDE git repos using kdesrc-build. Run: kdesrc-build without parameters. In konsole: cd ~/kde/src grep --include=*.po -r msgid . | grep /en.*/ | sort -u | sed 's/[^a-zA-Z ]/ /g' | tr 'A-Z ' 'a-z\n' | grep '[a-z]' | sort -u | comm -23 - <(sort /usr/share/dict/words) > ~/GuiWordsNotInDictionary.txt kate ~/GuiWordsNotInDictionary.txt E.g. we find the probably wrong word "disactived". In konsole: cd ~/kde/src code . In VS Code: Search for the word "disactived". Files to exclude "*.po". There is just one single result: ~/kde/src/clementine/src/widgets/osd.cpp line 251 "tr("Wii Remote %1: disactived")". You edit file ~/kde/src/clementine/src/widgets/osd.cpp and replace: disactived with: deactivated With just this one line change in the source code, you do one git commit and one MR.
Call the cmake_minimum_required() command at the beginning of the top-level CMakeLists.txt file
* https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html : "Note Call the cmake_minimum_required() command at the beginning of the top-level CMakeLists.txt file even before calling the project() command. It is important to establish version and policy settings before invoking other commands whose behavior they may affect. See also policy CMP0000." Find an affected KDE git repo where in the top level CMakeLists.txt before cmake_minimum_required() exist non empty lines, no comment lines, but lines that contain CMake source code. Do a MR like https://invent.kde.org/graphics/kolourpaint/-/merge_requests/23 Example: I install Microsoft Visual Studio Code and I make sure that "code" is in $PATH. I build all KDE git repos: kdesrc-build without parameters. In ~/.config/kdesrc-buildrc I have: directory-layout invent In konsole: cd ~/kde/src code . # This will start VS Code. In VS Code main menu > View > Search Ctrl+Shift+F. In the Search field write: cmake_minimum_required in the field "files to include" write: CMakeLists.txt Press F4 one hundred times. It will go through all of the lines that contain "cmake_minimum_required" in all of the files named "CMakeLists.txt". You probably do not want to edit the CMakeLists.txt file from subdirectories named like 3rdparty. These directories are a non KDE project, which has its upstream git repo outside invent.kde.org. Fix the issues in third party libraries in their upstream git repo.
Just running kdesrc-build should not create "Unstaged Changes" in the local clone of a KDE git repo
Build all the KDE git repositories using kdesrc-build. Run: kdesrc-build You should not see displayed the text: * You had local changes to <ModuleName>, which have been re-applied. In this case the issue is probably that the .gitignore file in the git repo is outdated. E.g. Install meld. Let's say that kcalc is the git repo that reproduces this issue. You should have seen the text: "* You had local changes to kcalc, which have been re-applied." E.g. in ~/.config/kdesrc-buildrc I have: directory-layout invent In konsole: I would run: meld ~/kde/src/frameworks/kconfig/.gitignore ~/kde/src/utilities/kcalc/.gitignore In the diff viewer I can see that the last two lines in the file ~/kde/src/frameworks/kconfig/.gitignore are new and do not exist yet in ~/kde/src/utilities/kcalc/.gitignore. I copy the new lines to ~/kde/src/utilities/kcalc/.gitignore such that the two .gitignore files are identical. Then I do a MR like https://invent.kde.org/graphics/kamera/-/merge_requests/5
Fix g++ C++ compiler warning
In konsole: CXX=g++ kdesrc-build kcalc --debug |& tee ~/buildoutput_gxx.txt Open the file ~/buildoutput.txt in a text editor. E.g. kate. Search for the string "warning: ". It should appear tens of thousands of times. Pick a build warning that seems simple enough to you. Invest time to fix one build warning. Test that your fix is OK. E.g. for kcalc built as shown above (i.e. in ~/.config/kdesrc-buildrc I have: "directory-layout invent"). In konsole: rm -rf ~/kde/build/utilities/kcalc kdesrc-build kcalc --no-src --no-include-dependencies --debug # Make sure there are no errors cd ~/kde/build/utilities/kcalc make test # Make sure there are no errors If everything is OK, fix a single g++ build warning, do a single git commit and do a single MR. Again, one MR should contain just one git commit. And one git commit should contain only a single type of fixes (e.g. one type of fix), with only handful of source code lines changed (e.g. only one line changed).
Fix clang++ C++ compiler warning
Do exactly as for g++ above. Replace the first command line with: CXX=clang++ kdesrc-build kcalc --debug |& tee ~/buildoutput_clangxx.txt
Fix clangd C++ compiler warning
Fix Clang-Tidy static analysis issue
Build a KDE git repository using kdesrc-build. Open it in the IDE Qt Creator. From Qt Creator main menu > Analyze > Clang-Tidy and Clazy... > press the Analyze button. https://www.google.com/search?q=clang-tidy
Fix PVS-Studio static analysis issue
Fix Cppcheck static analysis issue
https://en.wikipedia.org/wiki/Cppcheck https://www.youtube.com/watch?v=5OYvQ4Mi_1I https://www.youtube.com/watch?v=1TSeSVDI3_s Qt Creator has a plugin for cppcheck. Build a KDE git repository using kdesrc-build. Open it in the IDE Qt Creator. From Qt Creator main menu > Help > About Plugins > Code Analyzer > enable Cppcheck (experimental). Restart Qt Creator. From Qt Creator main menu > Analyze > Cppcheck > press the Analyze button.
Fix KDE clazy static analysis issue
Build a KDE git repository using kdesrc-build. Open it in the IDE Qt Creator. From Qt Creator main menu > Analyze > Clang-Tidy and Clazy... > press the Analyze button. https://www.youtube.com/watch?v=Z6MENrBRYJI
Fix deprecation issue
E.g. kDebug, kWarning and other symbols from ~/kde/usr/include/KF5/KDELibs4Support/kdebug.h are deprecated. Replace with e.g. the symbols in the family of qDebug from ~/kde/usr/include/QtCore/qlogging.h and ~/kde/usr/include/QtCore/qdebug.h .
E.g. run kdesrc-build without parameters, this will git clone and build all KDE git repositories. Search in ~/kde/src (i.e. in all the KDE git repositories) using e.g. VS Code for a deprecated symbol. You find an affected source code file in the git repository X. Open that git repository correctly in Qt Creator. Make sure that the deprecated symbol really is the one you thought it is. Replace the deprecated symbol. Build, test, git commit, MR.
E.g. In the web browser: https://community.kde.org/index.php?title=Special:Random takes you to: https://community.kde.org/Incubator/Projects/Rkward you click on the URL: "Its features can be extended by plugins, and it's all free software (Above information from the current Rkward homepage." http://rkward.sourceforge.net/wiki/Main_Page This takes you to: https://rkward.kde.org/Main_Page which is a web page that does not exist. Edit the KDE wiki such that you replace the invalid URL "http://rkward.sourceforge.net/wiki/Main_Page" with a valid URL. Which in this case is the canonical homepage of the project rkward. I.e. https://apps.kde.org/rkward/ . This URL is probably better than the other possibility: https://rkward.kde.org/ .
Besides kdesrc-build. KDE has another tool that can build KDE git repos: KDE Craft. https://community.kde.org/Craft E.g. choose a KDE git repo. E.g. kcalc. Choose one of the operating systems supported by KDE Craft. One of Microsoft Windows, Apple macOS, Linux or FreeBSD. E.g. Linux. Create a Linux VM, install KDE Craft in this VM. In konsole: craft kcalc Run the newly built/downloaded and installed kcalc.
Run executable using a run time analyzer
This is neither easy, nor suitable for beginners. Build a KDE git repo that is not a framework or a library. I.e. build a KDE app. Make sure that you have kdesrc-build configured to build using CMake build configuration "Debug". I.e. in ~/.config/kdesrc-buildrc I have: cmake-options -DCMAKE_BUILD_TYPE=Debug E.g. build kcalc: In konsole: kdesrc-build kcalc Then run kcalc under valgrind. If valgrind says that there is an issue. And if the issue is not in Mesa or in Qt. But the issue is in one of the KDE git repos, e.g. a memory leak. valgrind will say the line where the leak occurs.