- add a ffmpeg process to kivy tests if it detects running inside docker
- this approach can be reused for other tests that may benefit from a
video
- it may be possible to do this in bash, outside of python, but that
would exacerbate the process synchronisation issues, as outlined here:
- X server must be running before ffmpeg starts, otherwise ffmpeg
can't record and quits
- ffmpeg must end before the X server ends, as otherwise it segfaults
and video will be incomplete
- ffmpeg must start before the actual tests start and stop after the
tests stop, otherwise a part of the tests will be missing from the
recording
- this approach I chose here avoids most synchronisation issues.
If ffmpeg takes more than 2 seconds to start recording (unlikely), a
part of the video will be missing. Also if for some reason ffmpeg is
too slow, then also we may end up with a truncated video, at the end.
- I chose lossless vp9 codec with webm format, this appears to work on
firefox and chrome. Safari refuses to show the video even though it
should be supported.
- don't require bash
- mark appimage stage
- use --no-cache if docker build fails
- remove container after running the tests
- use tty for colorful output
- kivy mock now uses a mock multiqueue, as the existing code didn't
handle all problems. For example, trying to load OpenSSL currently
crashes on my M1 Mac, so I can't even add an exception handler to fall
back. With this patch, the kivy_mock simply forces a fallback to Queue
in index.rst README.md is splitted in two parts - References now in the
bottom of the page; protocol.rst is the separate file, referenced on top.
Closes: #1033