https://github.com/systemd/systemd/blob/master/.github/CONTRIBUTING.md
+When adding new functionality, tests should be added. For shared functionality
+(in src/basic and src/shared) unit tests should be sufficient. The general
+policy is to keep tests in matching files underneath src/test,
+e.g. src/test/test-path-util.c contains tests for any functions in
+src/basic/path-util.c. If adding a new source file, consider adding a matching
+test executable. For features at a higher level, tests in src/test/ are very
+strongly recommended. If that is no possible, integration tests in test/ are
+encouraged.
+
Please always test your work before submitting a PR. For many of the components
of systemd testing is straight-forward as you can simply compile systemd and
run the relevant tool from the build directory.
or:
- # qemu-kvm -m 512 -smp 2 -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -hda image.raw
+ # qemu-system-x86_64 -enable-kvm -m 512 -smp 2 -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -hda image.raw
Every time you rerun the "mkosi" command a fresh image is built, incorporating
all current changes you made to the project tree.
$ git clone https://github.com/systemd/systemd.git
$ cd systemd
$ vim src/core/main.c # or wherever you'd like to make your changes
- $ ./autogen.sh c # configure the source tree
- $ make -j `nproc` # build it locally, see if everything compiles fine
- $ make -j `nproc` check # run some simple regression tests
+ $ meson build # configure the build
+ $ ninja -C build # build it locally, see if everything compiles fine
+ $ ninja -C build test # run some simple regression tests
$ sudo mkosi # build a test image
$ sudo systemd-nspawn -bi image.raw # boot up the test image
$ git add -p # interactively put together your patch
$ git commit # commit it
- $ ...
+ $ git push REMOTE HEAD:refs/heads/BRANCH
+ # where REMOTE is your "fork" on github
+ # and BRANCH is a branch name.
-And after that, please submit your branch as PR to systemd via github.
+And after that, head over to your repo on github and click "Compare & pull request"
Happy hacking!