Get Involved/development/Easy

From KDE Community Wiki
Revision as of 23:30, 14 October 2022 by Nmariusp (talk | contribs) (Fix g++ C++ compiler warnings)

Below are some easy ways to do merge requests (MR) for the KDE git repositories. And easy ways to contribute to the KDE Community.

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 proposed 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
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.

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 warnings

In konsole:
kdesrc-build --debug | tee ~/buildoutput.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).