ci/woodpecker/pr/woodpecker Pipeline was successful Details
ci/woodpecker/push/woodpecker Pipeline was successful Details
ci/woodpecker/tag/woodpecker Pipeline was successful Details
at the moment, there are two channels: edge and stable. this builds up on few previous commits, most notably the persistent configuration storage.
|21 hours ago|
|doc||1 year ago|
|lib||2 months ago|
|src||21 hours ago|
|tools||2 months ago|
|.clang-format||4 months ago|
|.git-blame-ignore-revs||8 months ago|
|.gitignore||1 year ago|
|.woodpecker.yml||2 months ago|
|LICENSE||8 months ago|
|README.md||2 months ago|
|build.zig||1 month ago|
nakamochi daemon and gui (ndg)
build for rpi:
zig build -Dtarget=aarch64-linux-musl -Ddriver=fbev -Doptimize=ReleaseSafe -Dstrip
zig build on dev host
note that compiling the daemon on macOS is currently unsupported since it requires some linux primitives.
compiling is expected to be as easy as
# only gui zig build ngui # only daemon zig build nd # everything at once zig build
the output is placed in
./zig-out/bin directory. for example, to run the gui,
the build script has a few project-specific options. list them all with
zig build --help command. for instance, to reduce LVGL logging verbosity in
debug build mode, one can set this extra build flag:
zig build ngui -Dlvgl_loglevel=warn
run all tests with
zig build test
or a filtered subset using
zig build test -Dtest-filter=xxx
significant contributors may find adding .git-blame-ignore-revs
file to their git config useful, to skip very likely irrelevant commits
git config blame.ignoreRevsFile .git-blame-ignore-revs
see also the contributing section.
CI automated checks
the CI runs code format checks, tests and builds for fbdev+evdev on aarch64 and SDL2. it requires a container image with zig and clang tools such as clang-format.
to make a new image and switch the CI to use it, first modify the ci-containerfile and produce the image locally:
podman build --rm -t ndg-ci -f ./tools/ci-containerfile \ --build-arg ZIGURL=https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz
then tag it with the target URL, for example:
podman tag localhost/ndg-ci git.qcode.ch/nakamochi/ci-zig0.11.0:v2
generate an access token, login to the container registry and push the image to remote:
podman login git.qcode.ch podman push git.qcode.ch/nakamochi/ci-zig0.11.0:v2
the image will be available at https://git.qcode.ch/nakamochi/-/packages/
finally, delete the access token from https://git.qcode.ch/user/settings/applications
what's left is to update the CI build pipeline and delete the older version of the image.
to contribute, create a pull request or send a patch with git send-mail to alex-dot-cloudware.io.
before sending a change, please make sure tests pass:
zig build test
and all code is formatted: zig code with
zig fmt and C according to the
style described by .clang-format file. if
is installed, all formatting can be checked with:
note that only C files in
src/ are formatted.
leave third party libraries as is - it is easier to update and upgrade when
the original style is preserved, even if it doesn't match this project.