.. SPDX-License-Identifier: GPL-2.0-only Contributing ============ rasdaemon follows the Linux kernel coding style and submission conventions. The module, event, database, and test-registration contracts are described in :doc:`development`. Before submitting a change, run unit tests and fix any warnings. It is also good to compile with both gcc and clang, as they may produce different warnings. A good procedure is to run:: # GCC compile make distclean && CC=gcc make # self-contained (hermetic) tests meson test -C build --print-errorlogs # CLANG compile make distclean && CC=clang make Please notice that the full test suite also have tests that depend on setting up MySQL or MariaDB and PostgreSQL databases. Running:: make test Executes all of them, but the DB backend tests will fail if you don't setup a rasdaemon_test database. The `Github action workflow <.github/workflows/unittest.yml>`_ contains instructions to setup such database. Check each patch with:: scripts/checkpatch.pl --strict --no-tree PATCH If the patch(es) modify python code, run also python unit tests:: make python-test Submitting changes ------------------ To avoid a single point of failure, the rasdaemon code is updated altogether on three separate independent locations: 1. https://github.com/mchehab/rasdaemon/ 2. https://gitlab.com/mchehab_kernel/rasdaemon 3. https://git.infradead.org/?p=users/mchehab/rasdaemon.git Yet, to keep our workflow simpler, we currently only check contributions or issues at `repository (1) `_. So, the proper way to submit code changes it to open a pull request (PR) against https://github.com/mchehab/rasdaemon/. If there are strong technical reasons to submit code on a different way, be sure to let me aware. Before opening a new PR, please search for existing ones and related issues first. Please mention related issues when opening a new PR. If you cannot prepare a PR, or if, before doing that, some discussions are needed, you may open an issue at https://github.com/mchehab/rasdaemon/issues. Also, please notice that rasdaemon patches are no longer expected or tracked by email. So, please don't send patches to the Linux EDAC mailing list anymore. When opening a PR, ensure that your patches are tested by ``scripts/checkpatch.pl`` and follow Linux Kernel best practices. In particular, each patch needs a ``Signed-off-by`` line using your real name. The ``sign-off-by`` certifies the contribution under the `Developer Certificate of Origin 1.1 `_.