Build failure on macOS (w/o homebrew)

Hello! Thanks for making Musikcube, I can't wait to try it out but unfortunately I'm hitting a building failure on macOS 11.4.
Specifically it seems that the CMake ensure_library_exists function is not picking up the installed libev:
$ pkg_info -L libev
Information for libev-4.33:

Files:
/opt/pkg/include/ev/ev++.h
/opt/pkg/include/ev/ev.h
/opt/pkg/include/ev/event.h
/opt/pkg/lib/ev/libev.la
/opt/pkg/lib/ev/libev.4.dylib
/opt/pkg/lib/ev/libev.a
/opt/pkg/lib/ev/libev.dylib
/opt/pkg/share/man/man3/ev.3.gz

Here's the CMake failure message:
$ cmake .
-- resolved BSD_PATH_PREFIX to: ''
-- [check-dependencies] curl found at /opt/pkg/lib/libcurl.dylib
-- [check-dependencies] pthread found at /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/lib/libpthread.tbd
-- [check-dependencies] ssl found at /opt/pkg/lib/libssl.dylib
-- [check-dependencies] crypto found at /opt/pkg/lib/libcrypto.dylib
-- [check-dependencies] z found at /opt/pkg/lib/libz.dylib
-- [build] ENABLE_BUNDLED_TAGLIB not defined, setting to 'true'
-- [build] link libraries are: /opt/pkg/lib/libboost_system.dylib;/opt/pkg/lib/libboost_filesystem.dylib;/opt/pkg/lib/libboost_thread.dylib;/opt/pkg/lib/libboost_chrono.dylib;/opt/pkg/lib/libboost_date_time.dylib;/opt/pkg/lib/libboost_atomic.dylib;curl;pthread;ssl;crypto;dl
CMake Error at .cmake/CheckDependencies.cmake:16 (message):

  [check-dependencies] ev not found

Call Stack (most recent call first):
  src/musikcubed/CMakeLists.txt:5 (ensure_library_exists)

-- Configuring incomplete, errors occurred!
See also "/Users/pwr/Developer/musikcube/CMakeFiles/CMakeOutput.log".
See also "/Users/pwr/Developer/musikcube/CMakeFiles/CMakeError.log".

And ./CMakeFiles/CMakeError.log:
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /Library/Developer/CommandLineTools/usr/bin/cc
Build flags:
Id flags:

The output was:
1
ld: library not found for -lSystem
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Any ideas? I think it's just a case of supplying the appropriate CXXFLAGS or LDFLAGS but I'm sorry to say I'm not terribly familiar with CMake...

I assume you're trying to install via homebrew? If so, this has been fixed, I just need to release a new version.

I've used pkgsrc to install the dependencies (no stinkin' homebrew for me) then trying to build musikcube from master.
I noticed that CMakeLists.txt section "custom include/library directories for BSDs" has a hardcoded rule to use homebrew so I tried removing that to just keep BSD_PATH_PREFIX as "/usr/local" but got the same result.

Neat, I wasn't aware of pkgsrc. Unfortunately, that clearly mean it isn't currently supported. :)
What if you set BSD_PATH_PREFIX to /opt/pkg?

Progress! I needed to rewrite CMakeLists.txt a bit:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c69e19b..7f4326c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,22 +38,27 @@ link_directories ("${musikcube_SOURCE_DIR}/bin/plugins")

 # custom include/library directories for BSDs
 if (CMAKE_SYSTEM_NAME MATCHES "Darwin" OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
-  set(BSD_PATH_PREFIX "/usr/local")
-  if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
-    execute_process(
-      COMMAND brew config
-      COMMAND grep -i HOMEBREW_PREFIX
-      COMMAND awk "{print $2}"
-      OUTPUT_STRIP_TRAILING_WHITESPACE
-      OUTPUT_VARIABLE BSD_PATH_PREFIX)
-  endif()
+  set(BSD_PATH_PREFIX "/opt/pkg")
   message(STATUS "resolved BSD_PATH_PREFIX to: '${BSD_PATH_PREFIX}'")
   link_directories ("${BSD_PATH_PREFIX}/lib")
-  link_directories ("${BSD_PATH_PREFIX}/opt/openssl/lib")
-  link_directories ("${BSD_PATH_PREFIX}/opt/ncurses/lib")
+  link_directories ("${BSD_PATH_PREFIX}/lib/openssl")
+  link_directories ("${BSD_PATH_PREFIX}/lib/ncurses")
+  link_directories ("${BSD_PATH_PREFIX}/lib/ev")
+  link_directories ("${BSD_PATH_PREFIX}/lib/ffmpeg4")
+  link_directories ("${BSD_PATH_PREFIX}/lib/ffmpeg4/libavcodec")
+  link_directories ("${BSD_PATH_PREFIX}/lib/ffmpeg4/libavutil")
+  link_directories ("${BSD_PATH_PREFIX}/lib/ffmpeg4/libavformat")
+  link_directories ("${BSD_PATH_PREFIX}/lib/ffmpeg4/libswresample")
   include_directories("${BSD_PATH_PREFIX}/include")
-  include_directories("${BSD_PATH_PREFIX}/opt/openssl/include")
-  include_directories("${BSD_PATH_PREFIX}/opt/ncurses/include")
+  include_directories("${BSD_PATH_PREFIX}/include/openssl")
+  include_directories("${BSD_PATH_PREFIX}/include/ncurses")
+  include_directories("${BSD_PATH_PREFIX}/include/ev")
+  include_directories("${BSD_PATH_PREFIX}/include/ffmpeg4")
+  include_directories("${BSD_PATH_PREFIX}/include/ffmpeg4/libavcodec")
+  include_directories("${BSD_PATH_PREFIX}/include/ffmpeg4/libavutil")
+  include_directories("${BSD_PATH_PREFIX}/include/ffmpeg4/libavformat")
+  include_directories("${BSD_PATH_PREFIX}/include/ffmpeg4/libswresample")
+
 endif ()

 if (${LINK_STATICALLY} MATCHES "true")

Maybe the function ensure_library_exists could check in subdirectories too?
But, my progress was slowed with make:
$ make
[  1%] Building CXX object src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/plugin.mm.o
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:14:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/chrono:827:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:71:9: error: no member named 'clock_t' in the global namespace
using ::clock_t;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:73:9: error: no member named 'time_t' in the global namespace; did you mean 'size_t'?
using ::time_t;
      ~~^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/stddef.h:46:23: note: 'size_t' declared here
typedef __SIZE_TYPE__ size_t;
                      ^
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:14:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/chrono:827:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:74:9: error: no member named 'tm' in the global namespace
using ::tm;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:78:9: error: no member named 'clock' in the global namespace
using ::clock;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:79:9: error: no member named 'difftime' in the global namespace
using ::difftime;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:80:9: error: no member named 'mktime' in the global namespace
using ::mktime;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:81:9: error: no member named 'time' in the global namespace
using ::time;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:83:9: error: no member named 'asctime' in the global namespace
using ::asctime;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:84:9: error: no member named 'ctime' in the global namespace
using ::ctime;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:85:9: error: no member named 'gmtime' in the global namespace
using ::gmtime;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:86:9: error: no member named 'localtime' in the global namespace
using ::localtime;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:88:9: error: no member named 'strftime' in the global namespace
using ::strftime;
      ~~^
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:14:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/chrono:1581:12: error: unknown type name 'time_t'; did you mean 'size_t'?
    static time_t     to_time_t  (const time_point& __t) _NOEXCEPT;
           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/cstddef:50:9: note: 'size_t' declared here
using ::size_t;
        ^
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:14:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/chrono:1582:35: error: unknown type name 'time_t'; did you mean 'size_t'?
    static time_point from_time_t(time_t __t) _NOEXCEPT;
                                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/cstddef:50:9: note: 'size_t' declared here
using ::size_t;
        ^
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:14:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/chrono:2949:10: error: unknown type name 'time_t'; did you mean 'size_t'?
  static time_t to_time_t(const time_point& __t) noexcept {
         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/cstddef:50:9: note: 'size_t' declared here
using ::size_t;
        ^
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:14:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/chrono:2956:33: error: unknown type name 'time_t'; did you mean 'size_t'?
  static time_point from_time_t(time_t __t) noexcept {
                                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/cstddef:50:9: note: 'size_t' declared here
using ::size_t;
        ^
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:14:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/chrono:2951:14: error: use of undeclared identifier 'time_t'; did you mean 'size_t'?
      return time_t(
             ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/cstddef:50:9: note: 'size_t' declared here
using ::size_t;
        ^
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:15:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/system_error:149:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/string:506:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/string_view:175:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/algorithm:643:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/memory:681:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/atomic:576:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__threading_support:325:28: error: incomplete result type '__libcpp_timespec_t' (aka 'timespec') in function definition
inline __libcpp_timespec_t __convert_to_timespec(const chrono::nanoseconds& __ns)
                           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/pthread.h:307:16: note: forward declaration of 'timespec'
                const struct timespec * _Nullable __restrict)
                             ^
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:15:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/system_error:149:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/string:506:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/string_view:175:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/algorithm:643:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/memory:681:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/atomic:576:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__threading_support:329:23: error: variable has incomplete type '__libcpp_timespec_t' (aka 'timespec')
  __libcpp_timespec_t __ts;
                      ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/pthread.h:307:16: note: forward declaration of 'timespec'
                const struct timespec * _Nullable __restrict)
                             ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/plugin.mm.o] Error 1
make[1]: *** [src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/all] Error 2
make: *** [all] Error 2

Yikes. It looks like some include paths are missing, but I'm not quite sure how to fix it. I think I'll need to get an pkgsrc environment setup to debug.
It does look like all of these errors are coming from the macosmediakeys plugin, though. I'm curious if it succeeds if you comment out these two lines in the top-level CMakeLists:
  add_subdirectory(src/plugins/macosmediakeys)
  add_dependencies(musikcube macosmediakeys)

My guess is you'll run into similar errors in other plugins, though... but probably worth a try to see if that narrows down the problem.

You're on the money there; removing those lines runs into the same cascade of errors with coreaudioout, and removing those runs into errors with ffmpegdecoder. Definitely seems like the include paths aren't being passed... somewhere?

p.s. Please don't feel obliged to spend time on pkgsrc just to debug, but I wholeheartedly recommend using pkgsrc for whatever OS you're on. It's amazing, and surely the most Unix-ish package manager.

Yeah -- I'm trying to figure out how to deal with this particular issue; I don't currently have an easy path for getting a pkgsrc installation up and running. Hmm.
Would it be possible for you to give me a snippet of verbose make output? i.e. VERBOSE=1 make? I'm interested in the compiler flags being resolved -- things like include paths, c++ version, etc. Something along these lines would suffice:
cd /Users/clangen/src/musikcube/src/musikcore && /Library/Developer/CommandLineTools/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_THREAD_DYN_LINK -DHAVE_BOOST -DMCSDK_DEFINE_EXPORTS -DSIGSLOT_USE_POSIX_THREADS -D_FILE_OFFSET_BITS=64 -Dmusikcore_EXPORTS -I/Users/clangen/src/musikcube/src -I/Users/clangen/src/musikcube/src/musikcore -I/Users/clangen/src/musikcube/src/musikcube -I/Users/clangen/src/musikcube/src/musikcube/cursespp -I/Users/clangen/src/musikcube/src/3rdparty/include -I/opt/homebrew/opt/openssl/include -I/opt/homebrew/opt/ncurses/include -I/Users/clangen/src/musikcube/src/musikcore/. -I/Users/clangen/src/musikcube/src/musikcore/.. -I/Users/clangen/src/musikcube/src/musikcore/../3rdparty/include -I/Users/clangen/src/musikcube/src/musikcore/../3rdparty/include/md5 -I/Users/clangen/src/musikcube/src/musikcore/../3rdparty/include/sqlite -isystem /opt/homebrew/include -std=c++14 -Wno-unused-result -Wno-deprecated-declarations -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk -fPIC -MD -MT src/musikcore/CMakeFiles/musikcore.dir/audio/PlaybackService.cpp.o -MF CMakeFiles/musikcore.dir/audio/PlaybackService.cpp.o.d -o CMakeFiles/musikcore.dir/audio/PlaybackService.cpp.o -c /Users/clangen/src/musikcube/src/musikcore/audio/PlaybackService.cpp

Thanks for looking into this for me!
I think pkgsrc might be a red herring here. If the build process assumes for homebrew's unorthodox install paths on macOS (e.g. stuff like /usr/local/opt/*, /usr/local/ncurses/include etc.) it will still cause trouble for people who have manually built/installed dependencies.
But here's a snippet of a verbose make, and it does appear like all the include paths are passed...
$ make VERBOSE=1
/opt/pkg/bin/cmake -S/Users/pwr/Developer/musikcube -B/Users/pwr/Developer/musikcube --check-build-system CMakeFiles/Makefile.cmake 0
/opt/pkg/bin/cmake -E cmake_progress_start /Users/pwr/Developer/musikcube/CMakeFiles /Users/pwr/Developer/musikcube//CMakeFiles/progress.marks
/Library/Developer/CommandLineTools/usr/bin/make  -f CMakeFiles/Makefile2 all
/Library/Developer/CommandLineTools/usr/bin/make  -f src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/build.make src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/depend
cd /Users/pwr/Developer/musikcube && /opt/pkg/bin/cmake -E cmake_depends "Unix Makefiles" /Users/pwr/Developer/musikcube /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys /Users/pwr/Developer/musikcube /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/DependInfo.cmake --color=
/Library/Developer/CommandLineTools/usr/bin/make  -f src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/build.make src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/build
[  1%] Building CXX object src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/plugin.mm.o
cd /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys && /Library/Developer/CommandLineTools/usr/bin/c++ -DHAVE_BOOST -DSIGSLOT_USE_POSIX_THREADS -D_FILE_OFFSET_BITS=64 -Dmacosmediakeys_EXPORTS -I/Users/pwr/Developer/musikcube/src -I/Users/pwr/Developer/musikcube/src/musikcore -I/Users/pwr/Developer/musikcube/src/musikcube -I/Users/pwr/Developer/musikcube/src/musikcube/cursespp -I/Users/pwr/Developer/musikcube/src/3rdparty/include -I/opt/pkg/include -I/opt/pkg/include/openssl -I/opt/pkg/include/ncurses -I/opt/pkg/include/ev -I/opt/pkg/include/ffmpeg4 -I/opt/pkg/include/ffmpeg4/libavcodec -I/opt/pkg/include/ffmpeg4/libavutil -I/opt/pkg/include/ffmpeg4/libavformat -I/opt/pkg/include/ffmpeg4/libswresample -std=c++14 -Wno-unused-result -Wno-deprecated-declarations -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk -fPIC -o CMakeFiles/macosmediakeys.dir/plugin.mm.o -c /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm
In file included from /Users/pwr/Developer/musikcube/src/plugins/macosmediakeys/plugin.mm:39:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/mutex:190:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__mutex_base:14:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/chrono:827:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/ctime:71:9: error: no member named 'clock_t' in the global namespace
using ::clock_t;
      ~~^

...

fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/plugin.mm.o] Error 1
make[1]: *** [src/plugins/macosmediakeys/CMakeFiles/macosmediakeys.dir/all] Error 2
make: *** [all] Error 2

Yeah, I think that homebrew is somehow masking whatever the root cause is, but it's strange because the missing symbols seem to be things that are built into C/C++... your compiler flags correctly specify -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk, which should be sufficient.
In this example, the symbol clock_t doesn't seem to be available in ctime, but it's defined at /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/sys/_types/_clock_t.h
Out of curiosity, what version of macOS are you running?

So, funny story, in attempt to fix this I upgraded Apple's Command Line Tools (12.5.1) and, as is Apple's wont, they completely broke the cc compiler when called from CMake. I'll need to put this issue on hold until I figure out how to fix cc.

Yikes. Maybe that suggests something was already slightly amiss? All the best figuring it out. 😬 Let me know if musikcube compiles once cc/c++ are back and working.

Unfortunately, looks like it is also/still broken on MacOS 12.1 Monterey with their clang 13. sigh. this is getting tiresome and i now see my Mac days coming to a close. Anyway, in case in helps here's what it looked like:
 ~/C/musikcube> git log -n1
commit e0763f3730306d07b07f09a6ef9d224705372cf6 (HEAD -> master, origin/master, origin/HEAD)
Author: casey langen<EMAIL_ADDRESS>Date:   Sun Jan 2 23:32:08 2022 -0800

    Add additional debug logging to PipeWire state changes.

 ~/C/musikcube> git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

 ~/C/musikcube> cmake .
-- The C compiler identification is AppleClang <IP_ADDRESS>00029
-- The CXX compiler identification is AppleClang <IP_ADDRESS>00029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB
-- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Success
-- Performing Test LLVM_HAS_ATOMICS
-- Performing Test LLVM_HAS_ATOMICS - Success
-- resolved BSD_PATH_PREFIX to: '/usr/local'
-- Found Boost: /usr/local/lib/cmake/Boost-1.76.0/BoostConfig.cmake (found suitable version "1.76.0", minimum required is "1.55.0") found components: system filesystem thread
-- [check-dependencies] curl found at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib/libcurl.tbd
-- [check-dependencies] pthread found at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib/libpthread.tbd
-- [check-dependencies] ssl found at /usr/local/opt/openssl/lib/libssl.dylib
-- [check-dependencies] crypto found at /usr/local/opt/openssl/lib/libcrypto.dylib
-- [check-dependencies] z found at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib/libz.tbd
-- [build] ENABLE_BUNDLED_TAGLIB not defined, setting to 'true'
-- [build] link libraries are: Boost::system;Boost::filesystem;Boost::thread;curl;pthread;ssl;crypto;dl
-- [check-dependencies] ev found at /usr/local/lib/libev.dylib
-- [taglibmetadatareader] defining ENABLE_FFMPEG
-- [taglibmetadatareader] using bundled taglib = true
-- [taglibmetadatareader] using /Users/ngzax/Code/musikcube/src/plugins/taglib_plugin/taglib-1.11/stage/lib/libtag.a
-- [check-dependencies] microhttpd found at /usr/local/lib/libmicrohttpd.dylib
-- [check-dependencies] mp3lame found at /usr/local/lib/libmp3lame.dylib
-- [stockencoders] defining ENABLE_FFMPEG
-- [check-dependencies] avcodec found at /usr/local/lib/libavcodec.dylib
-- [check-dependencies] avutil found at /usr/local/lib/libavutil.dylib
-- [check-dependencies] avformat found at /usr/local/lib/libavformat.dylib
-- [check-dependencies] swresample found at /usr/local/lib/libswresample.dylib
-- [libopenmpt] enabled = true; found library at /usr/local/lib/libopenmpt.dylib
-- [check-dependencies] openmpt found at /usr/local/lib/libopenmpt.dylib
-- [ffmpeg] enabled = true
-- [check-dependencies] avcodec found at /usr/local/lib/libavcodec.dylib
-- [check-dependencies] avutil found at /usr/local/lib/libavutil.dylib
-- [check-dependencies] avformat found at /usr/local/lib/libavformat.dylib
-- [check-dependencies] swresample found at /usr/local/lib/libswresample.dylib
-- [mpris] systemd *not* found. MPRIS plugin not enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/ngzax/Code/musikcube

~/C/musikcube> make
Consolidate compiler generated dependencies of target macosmediakeys
[  1%] Built target macosmediakeys
Consolidate compiler generated dependencies of target musikcore
[ 23%] Built target musikcore
[ 23%] Performing configure step for 'taglib'
CMake Warning at /usr/local/Cellar/cmake/3.22.1/share/cmake/Modules/Platform/Darwin-Initialize.cmake:303 (message):
  Ignoring CMAKE_OSX_SYSROOT value:

   /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk

  because the directory does not exist.
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.22.1/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake:21 (include)
  CMakeLists.txt:3 (project)

-- The C compiler identification is AppleClang <IP_ADDRESS>00029
-- The CXX compiler identification is AppleClang <IP_ADDRESS>00029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - broken
CMake Error at /usr/local/Cellar/cmake/3.22.1/share/cmake/Modules/CMakeTestCCompiler.cmake:69 (message):
  The C compiler

    "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /Users/ngzax/Code/musikcube/src/plugins/taglib_plugin/taglib-prefix/src/taglib-build/CMakeFiles/CMakeTmp

    Run Build Command(s):/usr/bin/make -f Makefile cmTC_b5b2a/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_b5b2a.dir/build.make CMakeFiles/cmTC_b5b2a.dir/build
    Building C object CMakeFiles/cmTC_b5b2a.dir/testCCompiler.c.o
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -mmacosx-version-min=10.15 -MD -MT CMakeFiles/cmTC_b5b2a.dir/testCCompiler.c.o -MF CMakeFiles/cmTC_b5b2a.dir/testCCompiler.c.o.d -o CMakeFiles/cmTC_b5b2a.dir/testCCompiler.c.o -c /Users/ngzax/Code/musikcube/src/plugins/taglib_plugin/taglib-prefix/src/taglib-build/CMakeFiles/CMakeTmp/testCCompiler.c
    Linking C executable cmTC_b5b2a
    /usr/local/Cellar/cmake/3.22.1/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b5b2a.dir/link.txt --verbose=1
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc  -mmacosx-version-min=10.15 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_b5b2a.dir/testCCompiler.c.o -o cmTC_b5b2a
    ld: library not found for -lSystem
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[4]: *** [cmTC_b5b2a] Error 1
    make[3]: *** [cmTC_b5b2a/fast] Error 2

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:3 (project)

-- Configuring incomplete, errors occurred!
See also "/Users/ngzax/Code/musikcube/src/plugins/taglib_plugin/taglib-prefix/src/taglib-build/CMakeFiles/CMakeOutput.log".
See also "/Users/ngzax/Code/musikcube/src/plugins/taglib_plugin/taglib-prefix/src/taglib-build/CMakeFiles/CMakeError.log".
make[2]: *** [src/plugins/taglib_plugin/taglib-prefix/src/taglib-stamp/taglib-configure] Error 1
make[1]: *** [src/plugins/taglib_plugin/CMakeFiles/taglib.dir/all] Error 2
make: *** [all] Error 2

it's weird that cmake is looking for cc in MacOSX11.1.sdk since CMakeCache.txt has correctly identified and set CMAKE_OSX_SYSROOT to MacOSX12.1.sdk.
the good news is that the homebrew install does work so i am still able to run the best music player evah! :)

This seems to be the closest to identifying the source of the problem: https://stackoverflow.com/questions/54068035/linking-not-working-in-homebrews-cmake-since-mojave/54103956#54103956
However the fix suggested does not work for me. CMake is basically a show-stopper on macOS now.

thanks for the pointer. being stubborn i tried editing CMakeLists.txt as well per the SO issue and it didn't work for me either. f apple. :/


Complete control flow tags as snippets

Follow up on https://github.com/Shopify/theme-check-vscode/issues/31
The expecation was that completing an if/for/case would add the end tags.
# typing this
{% if<tab>

# should complete to
{% if | %}
{% endif %}

Closed in favour of https://github.com/Shopify/theme-tools/issues/201


Routing rules support matching cookie

Most web clients use cookie to store user and client information. We want to be able to do A / B testing based on user information and client information. So I wonder if it is possible to support matching cookie in routing rules?

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. My advanced AI has spotted that your issue might be a configuration problem or relates to something that doesn't look like a bug.
To confirm this, please join our Community Forum and reach out to us on the Traefik section.
In case I'm wrong (well, that would be embarrassing :sweat_smile:), my developers will re-open the issue and fix me!
In the meantime, you can double check Traefik's documentation.


ambient cni: consistent fetch iptables command

We sometimes ran this before setting the global. Instead, use a Lazy var so it MUST be initialized.
Please provide a description of this PR:

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio_exp
f8f543cb8b63c59752d5596ae837535e106c01ee
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test unit-tests


Update to allow controlled iteration on a git tree.

Closed in favor of https://github.com/xetdata/xet-core/pull/302.


as prop

Many component libraries implement the now famous as prop:

Reakit as
RBX as
Material UI <Box component />
Grommet <Box as />
Semantic UI as

It allows you to control declaratively what HTML root tag gets rendered by a component.
The as prop would simplify the API of this library by removing the need for the existence of some components we have now:
/**
 * I believe there would not be a need for <InputLabel /> anymore
 */
<InputLabel >
<Text as="label" />

/**
 * We could export <Link /> as a convenience but only mapping to `<Text />`
 */
<Link />
<Text as="a" />

/**
 * We could still export a <Heading size={'l' | 'm' | 's'} /> component as a convenience but internally it
 * would just map to `<Text />`
 */
<Header1 /> <Header2 /> <Header3 />
<Text as="h1" variant="display" />
<Text as="h2" variant="display" />
<Text as="h3" variant="display" />

/**
 * I think there wouldn't be a need for this ones?
 */
<Title1 /> <Title2 /> <Title3 />
<Text as="h1" /> <Text as="h2" /> <Text as="h3" />

@lluia if we spread props then we get this out of the box with styled-components https://www.styled-components.com/docs/api#as-polymorphic-prop

@thegrinder nice and good catch! 🎊 ❤
@poteirard are you happy if we work on this? I guess we'll only need to make sure that:

render root node is always a styled component
props are always spread on this ☝ node

Maybe it makes more sense to have only <Text /> component and the prop as as required in it? Also maybe after the rebranding the typography components doesn't make sense (I don't know)

span seems like a sensible default to me to be honest. There would be only a few cases where you actually wanna use <p> tag. With the rebranding, we'd still need it but would just change the sizes accordingly

I can talk to the design team when I'm in London next week, and explain our idea to simplify our typography through <Text /> ( they too wanted to simplify last time I checked with them ) and maybe get some spec ready 🧐 📐

Closing as @thegrinder mentioned, this is already provided by styled-components.

Reopening since TS complains about types related to as.
At the moment we can use as the problem is that the types do not interfere properly.
For example in my case I want to have:
<Navbar.Link as={ReactRouterLink} to={some_page_url}>

Addressed on 2.0 ☝


How do you split into multiple spans?

Markwon version: 4.6.2

I want to be able to render the spans separately due to both performance and customizability because right now android struggles to render huge textviews and even more so when images are involved. To do this I want to use a recycleview however I dont know how to do that, the best I have been able to achieve is
val renderResult = markwon.render(markwon.parse(...))
textAdapter.submitList(renderResult.getSpans<Any>().toMutableList())

however I cant render the spans like EmphasisSpan in a textview as they are not spannable. How should I split up the spans and render them into seperate textviews/imageviews? Normally when not using markwon I would simply split at newlines and let the recycleview use the substrings to render to a sepearte textview but I still want to keep the formatting and image support markwon has.

Even when trying to use getSpanStart and getSpanEnd I get much shorter strings than what is actually expected or am I missing something because I cant do spanned.substring(spanned.getSpanStart(obj),spanned.getSpanEnd(obj))


Revert "Add separate icons for non-stable builds"

Reverts microsoft/azuredatastudio#8078
@Charles-Gagnon this is causing breaks in the system installer creation build phase.  Let's revert and queue a new insiders build while investigating how this got through the CI process.
Reading file (WizardImageFile)
File: e:\mssqltoolsagentworkspace\72\s\resources\win32\inno-big-100-insiders-insiders.bmp
Error on line 23 in E:\mssqltoolsagentworkspace\72\s\build\win32\code.iss: Could not read "e:\mssqltoolsagentworkspace\72\s\resources\win32\inno-big-100-insiders-insiders.bmp".
Error: The system cannot find the file specified.
Compile aborted.
[09:06:50] Finished vscode-win32-x64-system-setup after 87 ms
[09:06:50] Finished 'vscode-win32-x64-system-setup' after 95 ms
Done in 7.58s.

Well, that's unfortunate. I think I know what the issue is but I'm curious why this didn't happen when I did an ad-hoc build for testing purposes before submitting...
Anyways I'll investigate and re-open once I've done more validation.

Ah – so looks like it did fail but the build just wasn’t exposing that error so everything seemed fine (I had just tested with the user installer and didn’t notice that the system installer wasn’t there)
https://mssqltools.visualstudio.com/CrossPlatBuildScripts/_build/results?buildId=42865
I’ve created an issue to track fixing it so we catch this in the future :
https://github.com/microsoft/azuredatastudio/issues/8226


Group Policy path for setting Microsoft Office preview channel is different from shown on Windows Build 25145

The path in the instructions to you Group Policy editor doesn't seem to work for the Windows 11 Dev Channel.
The instructions show:
Computer Configuration\Policies\Administrative Templates\Microsoft Office 2016 (Machine)\Updates
But on Build 25145 under Computer Configuration there is no Policies entry. The tp ones are Software Settings, Windows Settings, and Administrative Settings. Under All settings, there are entries for Office 2016, but none for (Machine).
FYI, I download the Preview channel Office 365 using the .xml file method, but it reverts to standard Channel.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e89daf60-7ec1-5ca4-5969-8050cdc42d72
Version Independent ID: e89daf60-7ec1-5ca4-5969-8050cdc42d72
Content: Use Group Policy to install Office Insider on Windows devices - Office Insider
Content Source: DeployOffice/office-insider/deploy/group-policy.md
Service: o365-proplus-itpro
GitHub Login: @DHB-MSFT
Microsoft Alias: danbrown

@dutch55   Have you downloaded the Office policy files from https://www.microsoft.com/en-us/download/details.aspx?id=49030?
The Policies node shows up if you're using the Group Policy Management Console, which is a Windows Server admin tool. If you're just using the Group Policy Editor, which comes on Windows client, then you won't see the Policies node.
In either tool, with the Office policy files installed, you should see an entry for Microsoft Office 2016 (Machine) under Administrative Templates, similar to this screenshot.

Thanks for answering. I am not a Windows systems admin, and I just manage my own two desktops, and I wasn't paying attention to the distinction. I modified the registry using the other method described on that page.  Since the screen layout on my Windows desktop looks like the desktop MMC that's been around forever, I didn't appreciate there was a difference.


"host_interface" ignored if only 1 private interface is configured

If only 1 private, but further public interfaces are configured:
    config.vm.network :private_network, ip: '<IP_ADDRESS>'
    config.vm.network :public_network, :bridge => 'en0: Wi-Fi (AirPort)'

and we want to use the public interface for landrush:
config.landrush.host_interface = 'eth2'

That configuration is ignored, because landrush assumes the private interface to be the desired one.

Merged.


fix(CalendarDay): apply styles for start and end modifiers

Previous versions of the library would add the CalendarDay--selected-start and CalendarDay--selected-end class names whenselected-start and selected-end modifiers were passed.
I think after the switch to react-with-styles these classes got lost and making it harder to modify the styles of the beginning and end of a range.
I'm not very familiar with react-with-styles, so I don't know if this is the proper way to get those class names set in the component.
I would also like to add unit tests for this, but I didn't see tests in CalendarDay regarding other modifiers and I'm not quite sure how to test this. I see that the wrapper gets the class names in the test, but they have what it seems a random modifier at the end. Also, the react-with-styles docs mention that css(...) returns an object with an opaque structure, so definitely, checking the value of the props added by this object doesn't seem a good testing option.
Fixes #786.

Coverage remained the same at 86.76% when pulling a4b58d9516e4266ede9dbab8a1db21fbffebdac5 on relayrides:calendar_day_start_end_modifiers into ef98109ef45b9e377c51bbb7344bf64465d781af on airbnb:master.

Hi @tagoro9, you should be able to test if the classes you expect get applied by running npm run storybook:css and inspecting the elements. The default storybook script uses aphrodite which is not quite... the class structure you are expecting.

Thanks for the reply @majapw. I tested that the classes got added to the implementation in the story book. When I said I didn't know how to test it, I meant how to write a unit test that ensures that those classes get added. I should have explained that better in the description.

Sweet. Yeah, in general, we don't want to write tests for the styling (because it would be testing the interface's internals) and the end-goal is to integrate with a tool like https://github.com/Galooshi/happo instead to check for visual regressions.
THIS IS ON OUR ... eventual roadmap. :) but i've just been swamped.


Build FAILED: build/_/unit-test on Raspbian 11(bullseye)

Describe the bug
Build failed.
To Reproduce
Steps to reproduce the behavior:
Following the instructions for Linux, and failed during the last step
./3rd/luamake/luamake rebuild
Expected behavior
Build succeeds.
Screenshots
If applicable, add screenshots to help explain your problem.

many similar errors omitted here

Environment (please complete the following information):

OS: Raspbian 11(bullseye)
Is WSL remote? No
Client: neovim

Additional context
Add any other context about the problem here.
Provide logs
1.log

Should be fixed by https://github.com/sumneko/lua-language-server/commit/cc6142db768430288fa71e144ba479a7a0e6e420

Verified, the bug is gone. Thanks a lot!


Continue when getting a redirect from a health check

https://ocd.appscale.com:8080/job/Daily Build/717/


Better print css

Sorry this is brief, if you wish to help out with it leave a comment and I'll gladly spec it out in more detail
@media print, hide the header, footer, aside menu, make the background transparent, unset the x and y margins on the text blocks, and ensure page breaks doesn't happen in the middle of a text row

Hey,
I am Suruchi and I wants to work out on these issues , could you suggest me some ways that how can I start contributing as I am a beginner and needs some guidance.

Hello,
I am Sakshi Goyal , a beginner towards open source needs guidance.
please assign this issue to me ,


Add manylinux build to test workflow

Add manylinux build config to test workflow to assist in debugging https://github.com/plasma-umass/slipcover/pull/31

@jaltmayerpizzorno This pass validates the manylinux build configuration as part of the test workflow,
which is currently failing with the same error you're seeing in #31.
alexford@AB-00RQ8221400C:~/asford/slipcover$ git show
commit a3c5debb560feae747c4226ada368d58cc0ea2c0 (HEAD -> add_manylinux_build_test, origin/add_manylinux_build_test, main)
Author: Alex Ford<EMAIL_ADDRESS>Date:   Tue Nov 8 12:51:50 2022 -0800

    Add manylinux build to test workflow

diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 132f60d..3b81cc7 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -35,3 +35,32 @@ jobs:

     - name: run tests
       run: python3 -m pytest
+
+  # Run a manylinux wheel build to verify build configuration
+  test-build-wheel-manylinux:
+    runs-on: ubuntu-latest
+    container: ${{ matrix.container }}
+    strategy:
+      matrix:
+        python_version: ['3.8', '3.9', '3.10']
+        include:
+          - os: ubuntu-latest
+            container: quay.io/pypa/manylinux_2_24_x86_64  # https://github.com/pypa/manylinux
+
+    steps:
+      - uses: actions/checkout@v2
+      - name: set up python
+        run: |
+          PYV=`echo "${{ matrix.python_version }}" | tr -d "."`; ls -d -1 /opt/python/cp$PYV*/bin | head -n 1 >> $GITHUB_PATH
+          cat $GITHUB_PATH
+      - name: install dependencies
+        run: |
+          python3 -m pip install setuptools wheel twine
+      - name: build wheel
+        run: |
+            python3 setup.py bdist_wheel
+      - name: run auditwheel for manylinux
+        run: |
+          auditwheel repair dist/*.whl
+          rm -f dist/*.whl
+          mv wheelhouse/*.whl dist/
alexford@AB-00RQ8221400C:~/asford/slipcover$ act workflow_dispatch -j test-build-wheel-manylinux
[tests/test-build-wheel-manylinux-1] 🚧  Skipping unsupported platform -- Try running with `-P ubuntu-latest=...`
[tests/test-build-wheel-manylinux-2] 🚧  Skipping unsupported platform -- Try running with `-P ubuntu-latest=...`
[tests/test-build-wheel-manylinux-3] 🚧  Skipping unsupported platform -- Try running with `-P ubuntu-latest=...`
[tests/test-build-wheel-manylinux-4] 🚀  Start image=quay.io/pypa/manylinux_2_24_x86_64
[tests/test-build-wheel-manylinux-4]   🐳  docker pull image=quay.io/pypa/manylinux_2_24_x86_64 platform= username= forcePull=false
[tests/test-build-wheel-manylinux-4]   🐳  docker create image=quay.io/pypa/manylinux_2_24_x86_64 platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[tests/test-build-wheel-manylinux-4]   🐳  docker run image=quay.io/pypa/manylinux_2_24_x86_64 platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[tests/test-build-wheel-manylinux-4] 🧪  Matrix: map[container:quay.io/pypa/manylinux_2_24_x86_64 os:ubuntu-latest]
[tests/test-build-wheel-manylinux-4] ⭐ Run Main actions/checkout@v2
[tests/test-build-wheel-manylinux-4]   🐳  docker cp src=/home/alexford/asford/slipcover/. dst=/home/alexford/asford/slipcover
[tests/test-build-wheel-manylinux-4]   ✅  Success - Main actions/checkout@v2
[tests/test-build-wheel-manylinux-4] ⭐ Run Main set up python
[tests/test-build-wheel-manylinux-4]   🐳  docker exec cmd=[sh -e -c /var/run/act/workflow/1.sh] user= workdir=
| /opt/python/cp310-cp310/bin
[tests/test-build-wheel-manylinux-4]   ✅  Success - Main set up python
[tests/test-build-wheel-manylinux-4] ⭐ Run Main install dependencies
[tests/test-build-wheel-manylinux-4]   🐳  docker exec cmd=[sh -e -c /var/run/act/workflow/2.sh] user= workdir=
| Requirement already satisfied: setuptools in /opt/_internal/cpython-3.10.8/lib/python3.10/site-packages (65.5.1)
| Requirement already satisfied: wheel in /opt/_internal/cpython-3.10.8/lib/python3.10/site-packages (0.38.2)
| Collecting twine
|   Downloading twine-4.0.1-py3-none-any.whl (36 kB)
| Collecting importlib-metadata>=3.6
|   Downloading importlib_metadata-5.0.0-py3-none-any.whl (21 kB)
| Collecting rich>=12.0.0
|   Downloading rich-12.6.0-py3-none-any.whl (237 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 237.5/237.5 kB 7.4 MB/s eta 0:00:00
| Collecting pkginfo>=1.8.1
|   Downloading pkginfo-1.8.3-py2.py3-none-any.whl (26 kB)
| Collecting requests>=2.20
|   Downloading requests-2.28.1-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 10.5 MB/s eta 0:00:00
| Collecting rfc3986>=1.4.0
|   Downloading rfc3986-2.0.0-py2.py3-none-any.whl (31 kB)
| Collecting urllib3>=1.26.0
|   Downloading urllib3-1.26.12-py2.py3-none-any.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.4/140.4 kB 13.7 MB/s eta 0:00:00
| Collecting requests-toolbelt!=0.9.0,>=0.8.0
|   Downloading requests_toolbelt-0.10.1-py2.py3-none-any.whl (54 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.5/54.5 kB 12.6 MB/s eta 0:00:00
| Collecting keyring>=15.1
|   Downloading keyring-23.11.0-py3-none-any.whl (36 kB)
| Collecting readme-renderer>=35.0
|   Downloading readme_renderer-37.3-py3-none-any.whl (14 kB)
| Collecting zipp>=0.5
|   Downloading zipp-3.10.0-py3-none-any.whl (6.2 kB)
| Collecting SecretStorage>=3.2
|   Downloading SecretStorage-3.3.3-py3-none-any.whl (15 kB)
| Collecting jaraco.classes
|   Downloading jaraco.classes-3.2.3-py3-none-any.whl (6.0 kB)
| Collecting jeepney>=0.4.2
|   Downloading jeepney-0.8.0-py3-none-any.whl (48 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.4/48.4 kB 10.6 MB/s eta 0:00:00
| Collecting bleach>=2.1.0
|   Downloading bleach-5.0.1-py3-none-any.whl (160 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 160.9/160.9 kB 16.7 MB/s eta 0:00:00
| Collecting Pygments>=2.5.1
|   Downloading Pygments-2.13.0-py3-none-any.whl (1.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 4.7 MB/s eta 0:00:00
| Collecting docutils>=0.13.1
|   Downloading docutils-0.19-py3-none-any.whl (570 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 570.5/570.5 kB 18.0 MB/s eta 0:00:00
| Collecting charset-normalizer<3,>=2
|   Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
| Collecting certifi>=2017.4.17
|   Downloading certifi-2022.9.24-py3-none-any.whl (161 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 161.1/161.1 kB 22.5 MB/s eta 0:00:00
| Collecting idna<4,>=2.5
|   Downloading idna-3.4-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 15.6 MB/s eta 0:00:00
| Collecting commonmark<0.10.0,>=0.9.0
|   Downloading commonmark-0.9.1-py2.py3-none-any.whl (51 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 51.1/51.1 kB 6.1 MB/s eta 0:00:00
| Collecting six>=1.9.0
|   Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
| Collecting webencodings
|   Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
| Collecting cryptography>=2.0
|   Downloading cryptography-38.0.3-cp36-abi3-manylinux_2_24_x86_64.whl (4.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.1/4.1 MB 12.5 MB/s eta 0:00:00
| Collecting more-itertools
|   Downloading more_itertools-9.0.0-py3-none-any.whl (52 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.8/52.8 kB 11.0 MB/s eta 0:00:00
| Collecting cffi>=1.12
|   Downloading cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (441 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 441.8/441.8 kB 12.0 MB/s eta 0:00:00
| Collecting pycparser
|   Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.7/118.7 kB 7.9 MB/s eta 0:00:00
| Installing collected packages: webencodings, commonmark, zipp, urllib3, six, rfc3986, Pygments, pycparser, pkginfo, more-itertools, jeepney, idna, docutils, charset-normalizer, certifi, rich, requests, jaraco.classes, importlib-metadata, cffi, bleach, requests-toolbelt, readme-renderer, cryptography, SecretStorage, keyring, twine
| Successfully installed Pygments-2.13.0 SecretStorage-3.3.3 bleach-5.0.1 certifi-2022.9.24 cffi-1.15.1 charset-normalizer-2.1.1 commonmark-0.9.1 cryptography-38.0.3 docutils-0.19 idna-3.4 importlib-metadata-5.0.0 jaraco.classes-3.2.3 jeepney-0.8.0 keyring-23.11.0 more-itertools-9.0.0 pkginfo-1.8.3 pycparser-2.21 readme-renderer-37.3 requests-2.28.1 requests-toolbelt-0.10.1 rfc3986-2.0.0 rich-12.6.0 six-1.16.0 twine-4.0.1 urllib3-1.26.12 webencodings-0.5.1 zipp-3.10.0
| WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[tests/test-build-wheel-manylinux-4]   ✅  Success - Main install dependencies
[tests/test-build-wheel-manylinux-4] ⭐ Run Main build wheel
[tests/test-build-wheel-manylinux-4]   🐳  docker exec cmd=[sh -e -c /var/run/act/workflow/3.sh] user= workdir=
| running bdist_wheel
| running build
| running build_py
| creating build
| creating build/lib.linux-x86_64-cpython-310
| creating build/lib.linux-x86_64-cpython-310/slipcover
| copying slipcover/__main__.py -> build/lib.linux-x86_64-cpython-310/slipcover
| copying slipcover/bytecode.py -> build/lib.linux-x86_64-cpython-310/slipcover
| copying slipcover/slipcover.py -> build/lib.linux-x86_64-cpython-310/slipcover
| copying slipcover/branch.py -> build/lib.linux-x86_64-cpython-310/slipcover
| copying slipcover/__init__.py -> build/lib.linux-x86_64-cpython-310/slipcover
| running build_ext
| building 'slipcover.probe' extension
| creating build/temp.linux-x86_64-cpython-310
| g++ -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/opt/_internal/cpython-3.10.8/include/python3.10 -c probe.cxx -o build/temp.linux-x86_64-cpython-310/probe.o -std=c++17
| probe.cxx:21:10: error: ‘byte’ in namespace ‘std’ does not name a type
|      std::byte* _code;
|           ^~~~
| probe.cxx: In constructor ‘Probe::Probe(PyObject*, PyObject*, PyObject*, PyObject*)’:
| probe.cxx:29:61: error: class ‘Probe’ does not have any field named ‘_code’
|          _d_miss_threshold(PyLong_AsLong(d_miss_threshold)), _code(nullptr) {}
|                                                              ^~~~~
| probe.cxx: In member function ‘PyObject* Probe::signal()’:
| probe.cxx:45:29: error: ‘_code’ was not declared in this scope
|          if (!_signalled || (_code == nullptr && _d_miss_threshold < -1)) {
|                              ^~~~~
| probe.cxx:69:17: error: ‘_code’ was not declared in this scope
|              if (_code) {    // immediate de-instrumentation
|                  ^~~~~
| probe.cxx:70:43: error: ‘byte’ in namespace ‘std’ does not name a type
|                  *_code = static_cast<std::byte>(JUMP_FORWARD);
|                                            ^~~~
| probe.cxx: In member function ‘PyObject* Probe::set_immediate(PyObject*, PyObject*)’:
| probe.cxx:117:9: error: ‘_code’ was not declared in this scope
|          _code = reinterpret_cast<std::byte*>(PyBytes_AsString(code_bytes));
|          ^~~~~
| probe.cxx:117:39: error: ‘byte’ in namespace ‘std’ does not name a type
|          _code = reinterpret_cast<std::byte*>(PyBytes_AsString(code_bytes));
|                                        ^~~~
| probe.cxx:117:43: error: expected ‘>’ before ‘*’ token
|          _code = reinterpret_cast<std::byte*>(PyBytes_AsString(code_bytes));
|                                            ^
| probe.cxx:117:43: error: expected ‘(’ before ‘*’ token
| probe.cxx:117:44: error: expected primary-expression before ‘>’ token
|          _code = reinterpret_cast<std::byte*>(PyBytes_AsString(code_bytes));
|                                             ^
| probe.cxx:117:75: error: expected ‘)’ before ‘;’ token
|          _code = reinterpret_cast<std::byte*>(PyBytes_AsString(code_bytes));
|                                                                            ^
| error: command '/usr/bin/g++' failed with exit code 1
[tests/test-build-wheel-manylinux-4]   ❌  Failure - Main build wheel
[tests/test-build-wheel-manylinux-4] exitcode '1': failure
[tests/test-build-wheel-manylinux-4] 🏁  Job failed
Error: Job 'test-build-wheel-manylinux' failed

There's something wrong with the manylinux build image you're targeting, it has a really old version of gcc which doesn't support c++17.
This doesn't match the upstream manylinix spec and is very like a container bug.
https://github.com/pypa/manylinux
Must have broken recently, because your old builds worked?
alexford@AB-00RQ8221400C:~/asford/slipcover$ docker run -it quay.io/pypa/manylinux2014_x86_64 gcc --version
gcc (GCC) 10.2.1 20210130 (Red Hat 10.2.1-11)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

alexford@AB-00RQ8221400C:~/asford/slipcover$ docker run -it quay.io/pypa/manylinux_2_24_x86_64 gcc --version
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Not %100 sure on downstream implications of manylinux2014, as I live in the conda-verse,
but switching to manylinux 2014 fixes the issue by reintroducing c++17 support.
I'd recommend looking at cibuildwheel,
which defaults to manylinux 2014.

Not %100 sure on downstream implications of manylinux2014, as I live in the conda-verse, but switching to manylinux 2014 fixes the issue by reintroducing c++17 support.

C++17 support isn't entirely missing in GCC 6, which is what manylinux_2_24 has, but I don't use a lot of it.
Anyway, it's certainly way better in the newer GCCs.

I'd recommend looking at cibuildwheel, which defaults to manylinux 2014.

Yea, I look into that while setting this up, but it seemed overkill/complicated.
It's a good idea to have the build be part of the tests... I didn't do it before because it takes so long to run (our build & upload action, when started manually, uploads to testpypi).
I'll probably want to move to manylinux_2_28 eventually, for compatibility, but since auditwheel is downgrading the requirements anyway, this looks good to me.
@asford would you consider contributing a workflow that tests building for conda, so that this isn't missed again?

Certainly can, but the “full” conda build is also quite slow to setup and run.
I’m more than happy to continue maintaining the conda-forge recipe for this once it merges, and will push a build test here for that.


Debugging .NET Core

I spun this up and had a quick go, love the potential here. Could be just the justification I need for a powerful dev box sitting in a cupboard... ;)
One dealbreaker though, and I'm not sure this is something that can be resolved from this end is that the .NET debugger is not licensed for use with anything non-Microsoft. The following notification pops up when I try:

.NET Debugging is supported only in Microsoft versions of VS Code. See https://aka.ms/VSCode-DotNet-DbgLicense for more information.

Furthermore, I'm working with an Angular frontend, how would debugging work for that? Would a local browser tab directed at the server debug instance latch on to the IDE debugger?
Thanks and keep up the good work, I'm keen to see where this goes!

ciao @MakoPhil
for the second, I can suggest you an idea:

install chrome or chromium in docker
use the browser preview extension from https://github.com/auchenberg/vscode-browser-preview

see our Dockerfile for an idea of this:
https://github.com/monostream/code-server/blob/develop/Dockerfile
and yes... I feed you because the .net core debug story - unsure if this project can do something without the support of microsoft. jetbrains had the same issue in rider - and workaround somehow: see here https://blog.jetbrains.com/dotnet/2017/06/16/rider-eap-23-net-core-debugger-back-code-cleanup/

Thanks for the response, @adrianliechti! I did not know about that extension so thanks for introducing me to it. I'll keep an eye on this project, without .NET Core debugging it's not much use to me I'm afraid, but who knows, maybe Microsoft will take an interest down the line.

Very disappointed with the lack of debugging on netcore. Can you work that out, like jetbains did?

Jetbrains made their own .NET Core debugger, see comments here -https://blog.jetbrains.com/dotnet/2017/02/23/rider-eap-18-coreclr-debugging-back-windows/
Perhaps they could elaborate on this.

Microsoft limit it? So bad.

What does this error mean?
The C# extension for Visual Studio Code includes the Microsoft .NET Core Debugger (vsdbg). Unlike VS Code, and most other parts of the .NET Core Ecosystem, vsdbg is not an open source product but rather is a proprietary part of Visual Studio. It is licensed to work only with IDEs from Microsoft -- Visual Studio Code, Visual Studio, or Visual Studio for Mac. Visual Studio Code has an official version distributed by Microsoft but it is also an open source project, so anyone can build and distribute their own version. The C# extension itself along with the C# and Razor language services will work correctly with a VS Code distribution based on the OSS project. However, the debugger is only licensed to work with the Microsoft-distributed version of Visual Studio Code.

@Alumniminium VSC Remote isn't open source from what I can tell, but we do use the new VSCode Web variation which is totally different from VSC Remote (it does use VSCR internals but we serve a entire cloud IDE).

I tested this Samsung Debugger and it works - but sadly the C# extension does not let you define this pipeTransport as it's default.
If you have a look at the docker file:
https://github.com/monostream/code-server/blob/develop/Dockerfile
# Setup the Environment for .NET
ENV DOTNET_CLI_TELEMETRY_OPTOUT "true"
ENV MSBuildSDKsPath "/usr/share/dotnet/sdk/2.2.402/Sdks"
ENV PATH "${PATH}:${MSBuildSDKsPath}"

# Setup .NET Core Extension
RUN mkdir -p ${VSCODE_EXTENSIONS}/csharp \
    && curl -JLs https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-vscode/vsextensions/csharp/latest/vspackage | bsdtar --strip-components=1 -xf - -C ${VSCODE_EXTENSIONS}/csharp extension

# Download the Samsung Debugger
RUN curl -sL https://github.com/Samsung/netcoredbg/releases/download/latest/netcoredbg-linux-master.tar.gz | tar -zx -C /home/coder
ENV PATH "${PATH}:/home/coder/netcoredbg"

In launch options of a c# project, set the pipetransport to use this debugger.
{
   // Use IntelliSense to find out which attributes exist for C# debugging
   // Use hover for the description of the existing attributes
   // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
   "version": "0.2.0",
   "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/bin/Debug/netcoreapp2.2/project.dll",
            "args": [],
            "cwd": "${workspaceFolder}",
            // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
            "console": "internalConsole",
            "stopAtEntry": false,
            "pipeTransport": {
                "pipeProgram": "bash",
                "pipeArgs": [
                    "-c"
                ],
                "debuggerPath": "/home/coder/netcoredbg/netcoredbg",
                "quoteArgs": true
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

I tested this Samsung Debugger and it works - but sadly the C# extension does not let you define this pipeTransport as it's default.
If you have a look at the docker file:
https://github.com/monostream/code-server/blob/develop/Dockerfile
# Setup the Environment for .NET
ENV DOTNET_CLI_TELEMETRY_OPTOUT "true"
ENV MSBuildSDKsPath "/usr/share/dotnet/sdk/2.2.402/Sdks"
ENV PATH "${PATH}:${MSBuildSDKsPath}"

# Setup .NET Core Extension
RUN mkdir -p ${VSCODE_EXTENSIONS}/csharp \
    && curl -JLs https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-vscode/vsextensions/csharp/latest/vspackage | bsdtar --strip-components=1 -xf - -C ${VSCODE_EXTENSIONS}/csharp extension

# Download the Samsung Debugger
RUN curl -sL https://github.com/Samsung/netcoredbg/releases/download/latest/netcoredbg-linux-master.tar.gz | tar -zx -C /home/coder
ENV PATH "${PATH}:/home/coder/netcoredbg"

In launch options of a c# project, set the pipetransport to use this debugger.
{
   // Use IntelliSense to find out which attributes exist for C# debugging
   // Use hover for the description of the existing attributes
   // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
   "version": "0.2.0",
   "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/bin/Debug/netcoreapp2.2/project.dll",
            "args": [],
            "cwd": "${workspaceFolder}",
            // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
            "console": "internalConsole",
            "stopAtEntry": false,
            "pipeTransport": {
                "pipeProgram": "bash",
                "pipeArgs": [
                    "-c"
                ],
                "debuggerPath": "/home/coder/netcoredbg/netcoredbg",
                "quoteArgs": true
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

Really interesting workaround. We'll try to fix this on our end so its easier to work with C# people. I know a lot of C# developers would like to use code-server for this.

any one manages to make samsung .NET Core debugger with dockerized environment ? I cannot make it work, if anyone has a config file that work out I would be very grateful


[release/v1.4] Prepare OSM v1.4.1

What this PR does / why we need it:
According to the release process, bumping OSP versions to v1.4.1 to be in line with the upcoming OSM patch release to address Flatcar issues.
Which issue(s) this PR fixes:

Fixes #
What type of PR is this?
/kind chore
Special notes for your reviewer:
Does this PR introduce a user-facing change? Then add your Release Note here:

NONE

Documentation:

NONE

/cc @ahmedwaleedmalik

/retest
flake, I think?


Bump minimum version of djangorestframework to 3.15.1

We only support Django 4.2 and 5.0. DRF v3.14.0 was released on 22-09-2022, while Django 4.2 was released on 03-04-2023. This means Django 4.2 and 5.0 support were officially introduced in DRF 3.15.0.
While our tests used to indicate our use of an older version of DRF didn't cause any issues when installed with a newer version of Django, we should bump this anyway. This prevents people from installing a cached version of DRF that we "claim" to be compatible with Wagtail, but in reality DRF itself doesn't officially support our minimum Django version. In such cases, the installation can still proceed as DRF does not impose an upper bound on Django.
This also fixes an issue where our tests would fail when installed with DRF < 3.15.0 as the PermissionDenied error messages became more specific.

@lb- this should resolve the issues you and some other contributors have been having with CircleCI.


Turn a #map into #each where the return value is unused

The return value of RubyProject.add_to_load_path is neither useful nor used anywhere. In this case, #each communicates intent better than #map.
Shout out to @scottmatthewman for highlighting this method at the November 2015 meeting of the London Ruby User Group.

Looks good to me


Tidy Structs

This tidies all of the struct definitions into their respective files per #49.
I was debating whether to squash the commits but I think having the individual commits makes more sense. Happy to squash if others aren't that bothered.

LGTM

LGTM as well.


unread: Fix logic for wildcard mentions in direct messages.

CZO: https://chat.zulip.org/#narrow/stream/6-frontend/topic/Wildcard.20mentions.20in.20direct.20messages
Wildcard mentions in direct messages were not being counted as mentions due to incorrect calculation of the is_unmuted_mention variable in the update_message_for_mention() function in unread.js. Fixed this by correcting the calculation of the is_unmuted_mention variable to be equal to the message.mentioned && (message.type === "private" || !user_topics.is_topic_muted(message.stream_id, message.topic)).

Fixes:

Screenshots and screen captures:

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@timabbott This PR is ready for your review.

Updated logic for is_unmuted_topic calculations to be:
    // A message is said to have an unmuted mention if message contains a mention and
    // if the message is a direct message or
    // if the message is in a not muted topic in an unmuted stream or
    // if the message is in a followed or an unmuted topic in a muted stream.
    const is_unmuted_mention =
        message.mentioned &&
        (message.type === "private" ||
            (!stream_data.is_muted(message.stream_id) &&
                !user_topics.is_topic_muted(message.stream_id, message.topic)) ||
            (stream_data.is_muted(message.stream_id) &&
                user_topics.is_topic_unmuted_or_followed(message.stream_id, message.topic)));

Checked all the mentions, and it updated the mentions counter in the left sidebar correctly when a new message with a mention is received by a user for all cases.
However, I was facing some issues with wildcard mentions in unmuted or followed topics in a muted stream they were being counted as mentions when the message was received, but on page reload the mention count was getting reduced again.
@prakhar1144 @timabbott  Is it due to this issue #26848? That on reload the server was not sending correct data for wildcard mentions in the muted stream?

Yeah, I think #26848 is probably why that was confusing.

The tests are probably a bit less complete than would be ideal -- adding unread.test.js tests where we actually set up muted/unmuted/followed topics and DMs would be ideal -- but the logic is correct and I'm comfortable merging at this point to fix the bug, thanks @Ddharmani3 and @prakhar1144!


Creating rememberSwipeBackNavigator

Creating a SwipeBackNavigator remember to act more like the bottom sheet from accompanist. This means it won't be added to the provider repeatedly.
I ran into an issue when changing the theme where my app crashed. I looked at logcat and saw:
java.lang.IllegalStateException: Navigator com.fragula2.compose.SwipeBackNavigator@1665b1f is replacing an already attached com.fragula2.compose.SwipeBackNavigator@b83b225

Realizing that it was because of:
navController.apply {
            navigatorProvider.addNavigator(SwipeBackNavigator())
        }

It was being added whenever it would be recomposed.
This pr should fix that.
I do love the library and it's really cool!

Please resolve merge conflict so I can merge your PR into develop branch

All resolved!


feat: issue #8969 adding position function

Which issue does this PR close?
#8969

Closes #.
Rationale for this change

What changes are included in this PR?
adding a new function position(str in fullstr)

Are these changes tested?
yes, but not fully tested

Are there any user-facing changes?

I think this PR is just waiting on implementing @Weijun-H 's suggestion to use a alias rather than a new function https://github.com/apache/arrow-datafusion/pull/8988#discussion_r1467178896
Marking as a draft to signal it isn't waiting on feedback. Please mark as ready for review when it is ready for another look


Unable to trigger write name event in Home APP

The function "HandleDeviceNameWrite" was not called when I changed the accessory name in APP. The code is as follows.
static const HAPStringCharacteristic lightBulbNameCharacteristic = {     .format = kHAPCharacteristicFormat_String,     .iid = kIID_LightBulbName,     .characteristicType = &kHAPCharacteristicType_Name,     .debugDescription = kHAPCharacteristicDebugDescription_Name,     .manufacturerDescription = NULL,     .properties = { .readable = true,                     .writable = true,                     //.writable = false,                     // .supportsEventNotification = false,                     .supportsEventNotification = true,                     .hidden = false,                     .requiresTimedWrite = false,                     .supportsAuthorizationData = false,                     .ip = { .controlPoint = false, .supportsWriteResponse = false },                     .ble = { .supportsBroadcastNotification = false,                              .supportsDisconnectedNotification = false,                              .readableWithoutSecurity = false,                              .writableWithoutSecurity = false } },     .constraints = { .maxLength = 64 },     // .callbacks = { .handleRead = HAPHandleNameRead, .handleWrite = NULL }     .callbacks = { .handleRead = HandleDeviceNameRead, .handleWrite = HandleDeviceNameWrite } }; const HAPService lightBulbService = {     .iid = kIID_LightBulb,     .serviceType = &kHAPServiceType_LightBulb,     .debugDescription = kHAPServiceDebugDescription_LightBulb,     .name = "Light Bulb",     .properties = { .primaryService = true, .hidden = false, .ble = { .supportsConfiguration = false } },     .linkedServices = NULL,     .characteristics = (const HAPCharacteristic* const[]) { &lightBulbServiceSignatureCharacteristic,                                                             &lightBulbNameCharacteristic,                                                             &lightBulbOnCharacteristic,                                                             NULL } };

/**

The 'Name' characteristic of the Light Bulb service.
*/
static const HAPStringCharacteristic lightBulbNameCharacteristic = {
.format = kHAPCharacteristicFormat_String,
.iid = kIID_LightBulbName,
.characteristicType = &kHAPCharacteristicType_Name,
.debugDescription = kHAPCharacteristicDebugDescription_Name,
.manufacturerDescription = NULL,
.properties = { .readable = true,
.writable = true,//.writable = false,
// .supportsEventNotification = false,
.supportsEventNotification = true,
.hidden = false,
.requiresTimedWrite = false,
.supportsAuthorizationData = false,
.ip = { .controlPoint = false, .supportsWriteResponse = false },
.ble = { .supportsBroadcastNotification = false,
.supportsDisconnectedNotification = false,
.readableWithoutSecurity = false,
.writableWithoutSecurity = false } },
.constraints = { .maxLength = 64 },
// .callbacks = { .handleRead = HAPHandleNameRead, .handleWrite = NULL }
.callbacks = { .handleRead = HandleDeviceNameRead, .handleWrite = HandleDeviceNameWrite }
};

/**

The Light Bulb service that contains the 'On' characteristic.
/
const HAPService lightBulbService = {
.iid = kIID_LightBulb,
.serviceType = &kHAPServiceType_LightBulb,
.debugDescription = kHAPServiceDebugDescription_LightBulb,
.name = "Light Bulb",
.properties = { .primaryService = true, .hidden = false, .ble = { .supportsConfiguration = false } },
.linkedServices = NULL,
.characteristics = (const HAPCharacteristic const[]) { &lightBulbServiceSignatureCharacteristic,
&lightBulbNameCharacteristic,
&lightBulbOnCharacteristic,
NULL }
};

If you mean the Name characteristic, it has no write permissions
PermissionsPairedRead

Thank you


[bug]: Channel down. Connectivity good. Logs showing ping-pong ok. "...read next header: EOF"

Background
Me : LND 0.17.3, bitcoind 25 (full indexed, mempool = 2Gb), Ubuntu, hybrid mode
My peer : LND 0.17.3, bitcoind 25, Ubuntu, hybrid
I will put as many info as I think can help. Sorry for the long list.
Collected logs from my node:
2024-01-02 19:40:49.095 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending Ping(ping_bytes=0000002ca6054fadad240dc7ff229a6c5885e5b0fd2240615540010000000000000000004ee761c92773f379599bd49800cfc7bdfb4470967de11d81edc8d77642ce7d5445669465b3e803175ceeb8ac) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666
2024-01-02 19:40:49.336 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received Ping(ping_bytes=0000002ca6054fadad240dc7ff229a6c5885e5b0fd2240615540010000000000000000004ee761c92773f379599bd49800cfc7bdfb4470967de11d81edc8d77642ce7d5445669465b3e803175ceeb8ac) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666
2024-01-02 19:40:49.336 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending Pong(pong_bytes=00000000000000000000000000000000) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666
2024-01-02 19:40:49.352 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received Pong(pong_bytes=00000000000000000000000000000000) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666
2024-01-02 19:40:54.614 [INF] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): unable to read message from peer: read next header: EOF
2024-01-02 19:40:54.614 [INF] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): disconnecting 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666, reason: read handler closed
2024-01-02 19:40:54.714 [DBG] SRVR: Peer 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666 has been disconnected
2024-01-02 19:40:54.714 [DBG] FNDG: Cancelling all reservations for peer 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6
2024-01-02 19:40:54.714 [DBG] FNDG: No active reservations for node: 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6
2024-01-02 19:40:54.714 [INF] DISC: Removing GossipSyncer for peer=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6
2024-01-02 19:40:54.714 [DBG] SRVR: Notifying that peer 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666 is offline
2024-01-02 19:40:54.714 [DBG] SRVR: removing peer 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666
2024-01-02 19:40:54.714 [DBG] PRNF: PeerNotifier notifying peer: 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6 offline
2024-01-02 19:40:54.714 [DBG] DISC: Stopping GossipSyncer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6)
2024-01-02 19:40:54.715 [DBG] DISC: GossipSyncer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6) stopped
2024-01-02 19:42:54.559 [DBG] RPCS: [connectpeer] requested connection to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:54.559 [DBG] SRVR: Connecting to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:54.559 [DBG] RPCS: Connected to peer: 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:54.559 [DBG] CMGR: Attempting to connect to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735 (reqid 182)
2024-01-02 19:42:54.560 [DBG] RPCS: [connectpeer] requested connection to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666
2024-01-02 19:42:54.560 [WRN] SRVR: Already have 1 persistent connection requests for 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666, connecting anyway.
2024-01-02 19:42:54.560 [DBG] SRVR: Connecting to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666
2024-01-02 19:42:54.560 [DBG] RPCS: Connected to peer: 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666
2024-01-02 19:42:54.560 [DBG] CMGR: Attempting to connect to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666 (reqid 183)
2024-01-02 19:42:58.800 [DBG] CMGR: Connected to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735 (reqid 182)
2024-01-02 19:42:58.800 [INF] SRVR: Established connection to: 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:58.800 [INF] SRVR: Finalizing connection to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735, inbound=false
2024-01-02 19:42:58.800 [DBG] CMGR: Canceling: 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666 (reqid 183)
2024-01-02 19:42:58.800 [DBG] PRNF: PeerNotifier notifying peer: 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6 online
2024-01-02 19:42:58.800 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending Init to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.543 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received Init from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.543 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Loaded 1 active channels from database
2024-01-02 19:42:59.558 [INF] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Loading ChannelPoint(f72ee2c9b466c4a0aba77bb247b7e96295c6894952dc45b09d6a3fe4a085942e:0), isPending=false
2024-01-02 19:42:59.559 [INF] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Negotiated chan series queries
2024-01-02 19:42:59.559 [DBG] SRVR: Notifying that peer 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735 is online
2024-01-02 19:42:59.559 [INF] DISC: Creating new GossipSyncer for peer=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6
2024-01-02 19:42:59.559 [DBG] DISC: Created new GossipSyncer[state=chansSynced type=PassiveSync] for peer=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.559 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending ChannelReestablish(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, next_local_height=624566, remote_tail_height=626204) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.559 [DBG] DISC: Starting GossipSyncer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6)
2024-01-02 19:42:59.559 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending NodeAnnouncement(node=023369b071005d376bfa94b76d2ec52d01d6709f57d6b67bf26250f2ef57a66aea, update_time=2024-01-02 19:42:59 +0000 UTC) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.559 [DBG] DISC: GossipSyncer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): state=chansSynced, type=PassiveSync
2024-01-02 19:42:59.591 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received NodeAnnouncement(node=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6, update_time=2024-01-02 19:42:59 +0000 UTC) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.591 [DBG] CRTR: Waiting for dependent on job=lnwire.NodeAnnouncement, pub=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6
2024-01-02 19:42:59.591 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received ChannelReestablish(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, next_local_height=626205, remote_tail_height=624565) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.591 [DBG] DISC: Processing NodeAnnouncement: peer=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735, timestamp=2024-01-02 19:42:59 +0000 UTC, node=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6
2024-01-02 19:42:59.594 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending UpdateFailHTLC(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, id=153171, reason=32fe027ae7c710204cbc716729ce3e3bebebf2675816d2089366c42a206c963131a04c8c16055f50eb6d21c6a136d476f0b14c1b0a9aca43b9349e1e937cefeaeb9319f688b90d057f09d03efd530238bd33684d9322f480aa805261e6b51ce4aaeafae2818718db509896f85a7cbfc923710a95c4c20020315b201e614d214ca606b21055514e5dfe0719338d919a1fc9e927b5a8082975b6d576db58921e912421b05402d307a58c23a7bdaaf816092075d0833512f5f33e157317820864e34541ae69595bbb1942bd5b989d6ea95cdd7435e10ff2b4978a57d56aada0b41227af3e007db4ea3f15873a56c9ae672d308fee094d01d24b6e14d92590ea6ac449282fd3de018c5d38f688f73d0d29c93bcad9c4be0c93224412ecf5d13774804ddb712f) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.594 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending CommitSig(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, num_htlcs=13) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:43:00.099 [DBG] DISC: Processed NodeAnnouncement: peer=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735, timestamp=2024-01-02 19:42:59 +0000 UTC, node=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6
2024-01-02 19:43:00.344 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received UpdateFailHTLC(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, id=191493, reason=028e711f2414f92eb7e9467d24e15dca9acb9f245be31558396852fe2fb45e0f3992c2d95cac172e771c77b4a8ce63dbe5ab9e141ff39be271be445b513f8dbfe8f83ffbda047c0b8f77d31f2e93ed10f6dd16314048a5b035cf3fd7cb7fb721d73774744d731799128330e9fbf0a8e5a73fb1fbb8094c0eb27bcf1688a9260cedefaa25fdf9c245ea098b10b822bdc5393db86569d3e50e1a1d24f1a6d9ee990f0cc7e248d41b23e184d212900669592e2cfcdf92f114b519b30a03eb073de801ee39e565caff13214be8dcf65c423daf54462b222105fcc34154795b9358d60c4ef0da68e755f17d95a2a28821e9bfa86d9eeda87211f9942ae0ab2dcd2aa571917959692ed82e53a9b7119ce2c7aa223e4e577bb9944f901bc10a96b296eb2225c765) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:43:00.345 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received Error(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, err=internal error) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:43:00.345 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending Error(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, err=remote error) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:43:13.657 [DBG] CMGR: Ignoring connection for canceled conn req: 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:59666 (reqid 183)
2024-01-02 19:43:16.114 [DBG] RPCS: [listpeers] yielded
2024-01-02 19:43:18.689 [DBG] CRTR: Reporting pair success to Mission Control: pair=026165850492521f4ac8abd9bd8088123446d126f648ca35e60f88177dc149ceb2 -> 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6, amt=10021100 mSAT
2024-01-02 19:43:18.689 [DBG] CRTR: Setting<PHONE_NUMBER>92521f4ac8abd9bd8088123446d126f648ca35e60f88177dc149ceb2->023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6 range to [19804593 mSAT-0 mSAT]
2024-01-02 19:43:18.689 [DBG] CRTR: Reporting pair failure to Mission Control: pair=023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6 -> 02e4971e61a3f55718ae31e2eed19aaf2e32caf3eb5ef5ff03e01aa3ada8907e78, amt=10021000 mSAT
2024-01-02 19:43:18.689 [DBG] CRTR: Setting 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6->02e4971e61a3f55718ae31e2eed19aaf2e32caf3eb5ef5ff03e01aa3ada8907e78 range to [0 mSAT-10021000 mSAT]
2024-01-02 19:43:40.606 [DBG] RPCS: [listpeers] yielded
{LOTS OF PEERS}
2024-01-02 19:43:57.272 [DBG] SRVR: Sending 0 messages to peer 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6
2024-01-02 19:43:57.749 [INF] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): unable to read message from peer: read next header: EOF
2024-01-02 19:43:57.749 [INF] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): disconnecting 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735, reason: read handler closed
2024-01-02 19:43:57.849 [DBG] SRVR: Peer 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735 has been disconnected

That happens when the remote peer hangs up the connection. So unless there's some other issue, I think it's something with that remote peer. They keep hanging up the TCP connection.

That happens when the remote peer hangs up the connection. So unless there's some other issue, I think it's something with that remote peer. They keep hanging up the TCP connection.

Thanks for the reply. My node is connected and working well. Why is it hanging up only this peer? Can it be a side effect of a bigger problem, like the channel reserve bug?
Thanks
JVX

I am talking with my peer, and it is happening only with our channel.
What could cause a hang up? Is there any other debug information that would help? Any test that can be done?
I have 98% outbound.
max-channel-fee-allocation=1 already configured.
Channel reserve bug?

I think we have found the problem.
The Ballance in each peer is different. Check the images.

How can we solve this situation?

These two log-lines stand out:
2024-01-02 19:43:00.344 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received UpdateFailHTLC(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, id=191493, reason=028e711f2414f92eb7e9467d24e15dca9acb9f245be31558396852fe2fb45e0f3992c2d95cac172e771c77b4a8ce63dbe5ab9e141ff39be271be445b513f8dbfe8f83ffbda047c0b8f77d31f2e93ed10f6dd16314048a5b035cf3fd7cb7fb721d73774744d731799128330e9fbf0a8e5a73fb1fbb8094c0eb27bcf1688a9260cedefaa25fdf9c245ea098b10b822bdc5393db86569d3e50e1a1d24f1a6d9ee990f0cc7e248d41b23e184d212900669592e2cfcdf92f114b519b30a03eb073de801ee39e565caff13214be8dcf65c423daf54462b222105fcc34154795b9358d60c4ef0da68e755f17d95a2a28821e9bfa86d9eeda87211f9942ae0ab2dcd2aa571917959692ed82e53a9b7119ce2c7aa223e4e577bb9944f901bc10a96b296eb2225c765) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:43:00.345 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received Error(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, err=internal error) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735

Your Peer is sending you an internal error for this channel, the detailed logs why he sends this error should be found in this logs.

These two log-lines stand out:
2024-01-02 19:43:00.344 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received UpdateFailHTLC(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, id=191493, reason=028e711f2414f92eb7e9467d24e15dca9acb9f245be31558396852fe2fb45e0f3992c2d95cac172e771c77b4a8ce63dbe5ab9e141ff39be271be445b513f8dbfe8f83ffbda047c0b8f77d31f2e93ed10f6dd16314048a5b035cf3fd7cb7fb721d73774744d731799128330e9fbf0a8e5a73fb1fbb8094c0eb27bcf1688a9260cedefaa25fdf9c245ea098b10b822bdc5393db86569d3e50e1a1d24f1a6d9ee990f0cc7e248d41b23e184d212900669592e2cfcdf92f114b519b30a03eb073de801ee39e565caff13214be8dcf65c423daf54462b222105fcc34154795b9358d60c4ef0da68e755f17d95a2a28821e9bfa86d9eeda87211f9942ae0ab2dcd2aa571917959692ed82e53a9b7119ce2c7aa223e4e577bb9944f901bc10a96b296eb2225c765) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:43:00.345 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Received Error(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, err=internal error) from 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735

Your Peer is sending you an internal error for this channel, the detailed logs why he sends this error should be found in his logs.

The channel was Forced Closed yesterday. @ziggie1984 Why did we have this difference in channel balance?

That is normal, your peer and you do have a different version of the commitment transaction. During the build-up of an HTLC the states of those 2 commitment transactions can be different. And according to your logs they are different because you sent your peer this:
2024-01-02 19:42:59.594 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending UpdateFailHTLC(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, id=153171, reason=32fe027ae7c710204cbc716729ce3e3bebebf2675816d2089366c42a206c963131a04c8c16055f50eb6d21c6a136d476f0b14c1b0a9aca43b9349e1e937cefeaeb9319f688b90d057f09d03efd530238bd33684d9322f480aa805261e6b51ce4aaeafae2818718db509896f85a7cbfc923710a95c4c20020315b201e614d214ca606b21055514e5dfe0719338d919a1fc9e927b5a8082975b6d576db58921e912421b05402d307a58c23a7bdaaf816092075d0833512f5f33e157317820864e34541ae69595bbb1942bd5b989d6ea95cdd7435e10ff2b4978a57d56aada0b41227af3e007db4ea3f15873a56c9ae672d308fee094d01d24b6e14d92590ea6ac449282fd3de018c5d38f688f73d0d29c93bcad9c4be0c93224412ecf5d13774804ddb712f) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735
2024-01-02 19:42:59.594 [DBG] PEER: Peer(023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6): Sending CommitSig(chan_id=2e9485a0e43f6a9db045dc524989c69562e9b747b27ba7aba0c466b4c9e22ef7, num_htlcs=13) to 023e24602891c28a7872ea1ad5c1bb41abe4206ae1599bb981e3278a121e7895d6@<IP_ADDRESS>:9735

essentially progressing the state without an HTLC, but your peer did not sent you the Commit_Sig for this new state but sent you an error, you need to ask your peer what his logs say in detail, does he run on 17.2 ?


Typo in command parser

AddDate/RemoveDate command parsers have typos in the usage message,].

Closed by #169


3D demo deployment

@markhougaard I have a hunch that this is not needed anymore. Can we close it?


x/pkgsite: searching for "youtube" only show results for github.com/youtube/vitess

What is the URL of the page with the issue?
https://pkg.go.dev/search?q=youtube
What did you do?
I searched for "youtube" on go.dev
What did you expect to see?
Different packages about youtube. I was looking for a package to download youtube videos.
What did you see instead?
Pages and pages of submodules (?) of the github.com/youtube/vitess project. With the exception of the very first result, the first non-vitess result is on page 4 and the next one on page 17.

This will be addressed #47321, so closing this issue.


Added additional ways to get into BootSel mode

This PR adds two additional ways to get into BootSel mode for instances where you may not have a mapped S2 button or access to a mapped S2 button for a web-config BootSel reboot.

We're going to axe this one in favor of other failsafes. But a good brainstorm


github page is down?

Browsing to https://select2.github.io/ currently returns 404...

back now :-)

GitHub had a temporary issue with GitHub pages earlier today that was fixed relatively quickly.
https://status.github.com/messages/2016-01-21


Time Syncronization

It's been mentioned in a few other issues as a pre-requisite to more advanced actions, with some sort of future action pending or waiting, but there's no specified actions or instant actions to do time synchronization.
In practice, I've seen a client call our getTime routine every 10sec or so, to make sure the system is synchronized, and we could port this functionality to our implementation of the VDA 5050 spec with custom / proprietary actions, but it seems like a commonly applicable feature.
As for the specific implementation, our tentative ideas are either a ping-like or setTimestamp instant action from the master control, or a small heartbeat-like ping request from the vehicle (payload as small as the current timestamp).

Time synchronization is not in the scope of this standard IMO. Does your setup not allow for a dedicated time synchronization like NTP or something more elaborate/precise?

We face two issues, one where we control the MC, but want to use 3rd party "VDA 5050 compatible" robots we don't have otherwise software support or control upon, and the issue when our "VDA 5050 compatible" robots have (at the moment) no online way to make sure the time is synchronized, for the reporting timestamps.
I can assume that the MC can be accurately sync'd to current UTC time, but that's not to be assumed for robots.
This is all to say, when all you have is VDA 5050, because that's the selling or integrating feature, and no control of the other side, there's no explicit VDA 5050 api / action that allows for timestamp exchanges.
On our setup, when we control the MC and the robot and the software on both, can do whatever we like, with or without VDA 5050. But that's not the point.

I got the point of "all you have is VDA 5050" and "no online way" now. But introducing actions in the standard to do things usually taken care of by basis system services feels like an anti-pattern. AFAIK no action so far relies on synchronized clocks (talking from experience). If someone decides to introduce such an action, it is up to them to make sure they are synchronized.
Maybe this kind of pre-requisites would be something to add to the "factsheet" topic.  If the MC is running in the same network, it could share its own time. Otherwise, any other computer can be set up to do that (without the need to expose the robots to the internet).


removed vague wording

Description
@danielbryantuk  thought this line was confusing, so we'll remove it.
Related Issues
List related issues.
Testing
A few sentences describing what testing you've done, e.g., manual tests, automated tests, deployed in production, etc.
Todos

[ ] Tests
[ ] Documentation

Other

If this is a documentation change, please open the pull request at https://github.com/datawire/ambassador-docs instead.
Code changes should occur against master.

+1