Help with uROS on a Nucleo-F401RE

I am a beginner when it comes to using micro ROS. I have tried the tutorial for using a First micro-ROS Application on Linux and everything works fine. Now I am trying to make a micro-ROS Application on an RTOS.
the board I have is a Nucleo-F401RE and I'm running on ubuntu 20.04.3, and I am a bit lost as the tutorial uses a different board that is flashed through a JTAG connector.
So first of all I would like to know is it even possible to run a micro ROS application on this board ? and if so would you please direct me to a guide that can help?
Thank you in advance for your help ^_^

Ive been having some difficulties trying to build the micro-ROS project for my board using the STMCubeIDE, I created a new project and cloned the repository in its folder then followed all the instruction and using the U(S)ART with DMA transport configuration but when I try to build the project it gives the following error :
12:00:10 **** Incremental Build of configuration Debug for project firstTest ****
make -j4 all
docker pull microros/micro_ros_static_library_builder:galactic && docker run --rm -v /home/ouss/Desktop/workspace/firstTest:/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library_ide microros/micro_ros_static_library_builder:galactic
galactic: Pulling from microros/micro_ros_static_library_builder
Digest: sha256:064eee8df3e651aef52bd24db5b4a8ec85300b539942aa267995f1d79e81fa3c
Status: Image is up to date for microros/micro_ros_static_library_builder:galactic
docker.io/microros/micro_ros_static_library_builder:galactic
Found CFLAGS:
-ffunction-sections -fdata-sections -DSTM32CUBEIDE -DENOTSUP=1 -DECANCELED=1 -DEOWNERDEAD=1 -DENOTRECOVERABLE=1 -mcpu=cortex-m4 -mfloat-abi=hard -mthumb -mfpu=fpv4-sp-d16 -O0 -DDEBUG -DSTM32F401xE -DUSE_HAL_DRIVER --specs=nano.specs -I/project/Drivers/STM32F4xx_HAL_Driver/Inc -I/project/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I/project/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -Imicro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include -I/project/Middlewares/Third_Party/FreeRTOS/Source/include -I/project/Core/Inc -I/project/Drivers/CMSIS/Device/ST/STM32F4xx/Include -I/project/Drivers/CMSIS/Include -I/project/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:5 http://packages.ros.org/ros2/ubuntu focal InRelease [4670 B]
Get:6 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1275 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
Get:10 http://packages.ros.org/ros2/ubuntu focal/main amd64 Packages [884 kB]
Get:11 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [30.1 kB]
Get:12 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [628 kB]
Get:13 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1183 kB]
Get:14 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [802 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [33.4 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [679 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1636 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1086 kB]
Get:19 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [6310 B]
Get:20 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [2668 B]
Fetched 20.4 MB in 4s (4839 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
binutils-arm-none-eabi libnewlib-arm-none-eabi libnewlib-dev
libstdc++-arm-none-eabi-newlib
Suggested packages:
libnewlib-doc
The following NEW packages will be installed:
binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi
libnewlib-dev libstdc++-arm-none-eabi-newlib
0 upgraded, 5 newly installed, 0 to remove and 33 not upgraded.
Need to get 271 MB of archives.
After this operation, 2340 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 binutils-arm-none-eabi amd64 2.34-4ubuntu1+13ubuntu1 [2571 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 gcc-arm-none-eabi amd64 15:9-2019-q4-0ubuntu1 [31.6 MB]
Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 libnewlib-dev all 3.3.0-0ubuntu1 [131 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal/universe amd64 libnewlib-arm-none-eabi all 3.3.0-0ubuntu1 [34.5 MB]
Get:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 libstdc++-arm-none-eabi-newlib all 15:9-2019-q4-0ubuntu1+12build2 [202 MB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 271 MB in 37s (7336 kB/s)
Selecting previously unselected package binutils-arm-none-eabi.
(Reading database ...

Preparing to unpack .../binutils-arm-none-eabi_2.34-4ubuntu1+13ubuntu1_amd64.deb ...
Unpacking binutils-arm-none-eabi (2.34-4ubuntu1+13ubuntu1) ...
Selecting previously unselected package gcc-arm-none-eabi.
Preparing to unpack .../gcc-arm-none-eabi_15%3a9-2019-q4-0ubuntu1_amd64.deb ...
Unpacking gcc-arm-none-eabi (15:9-2019-q4-0ubuntu1) ...
Selecting previously unselected package libnewlib-dev.
Preparing to unpack .../libnewlib-dev_3.3.0-0ubuntu1_all.deb ...
Unpacking libnewlib-dev (3.3.0-0ubuntu1) ...
Selecting previously unselected package libnewlib-arm-none-eabi.
Preparing to unpack .../libnewlib-arm-none-eabi_3.3.0-0ubuntu1_all.deb ...
Unpacking libnewlib-arm-none-eabi (3.3.0-0ubuntu1) ...
Selecting previously unselected package libstdc++-arm-none-eabi-newlib.
Preparing to unpack .../libstdc++-arm-none-eabi-newlib_15%3a9-2019-q4-0ubuntu1+12build2_all.deb ...
Unpacking libstdc++-arm-none-eabi-newlib (15:9-2019-q4-0ubuntu1+12build2) ...
Setting up binutils-arm-none-eabi (2.34-4ubuntu1+13ubuntu1) ...
Setting up gcc-arm-none-eabi (15:9-2019-q4-0ubuntu1) ...
Setting up libnewlib-dev (3.3.0-0ubuntu1) ...
Setting up libnewlib-arm-none-eabi (3.3.0-0ubuntu1) ...
Setting up libstdc++-arm-none-eabi-newlib (15:9-2019-q4-0ubuntu1+12build2) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Creating firmware for generate_lib platform generic
Warning: running 'rosdep update' as root is not recommended.
reading in sources list data from /etc/ros/rosdep/sources.list.d
You should run 'sudo rosdep fix-permissions' and invoke 'rosdep update' again without sudo.
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip distro "ardent" different from requested "galactic"
Skip distro "bouncy" different from requested "galactic"
Skip distro "crystal" different from requested "galactic"
Skip distro "dashing" different from requested "galactic"
Skip distro "eloquent" different from requested "galactic"
Skip distro "foxy" different from requested "galactic"
Add distro "galactic"
Skip distro "groovy" different from requested "galactic"
Skip distro "hydro" different from requested "galactic"
Skip distro "indigo" different from requested "galactic"
Skip distro "jade" different from requested "galactic"
Skip distro "kinetic" different from requested "galactic"
Skip distro "lunar" different from requested "galactic"
Skip distro "melodic" different from requested "galactic"
Skip distro "noetic" different from requested "galactic"
Skip distro "rolling" different from requested "galactic"
updated cache in /root/.ros/rosdep/sources.cache
#All required rosdeps installed successfully
.......
=== ./ament/ament_cmake (git) ===
Cloning into '.'...
=== ./ament/ament_index (git) ===
Cloning into '.'...
=== ./ament/ament_lint (git) ===
Cloning into '.'...
=== ./ament/ament_package (git) ===
Cloning into '.'...
=== ./ament/googletest (git) ===
Cloning into '.'...
=== ./ament/uncrustify_vendor (git) ===
Cloning into '.'...
=== ./ros2/ament_cmake_ros (git) ===
Cloning into '.'...
List of repositories is empty
#All required rosdeps installed successfully
..............
=== ./ros2/common_interfaces (git) ===
Cloning into '.'...
=== ./ros2/example_interfaces (git) ===
Cloning into '.'...
=== ./ros2/libyaml_vendor (git) ===
Cloning into '.'...
=== ./ros2/rcl (git) ===
Cloning into '.'...
=== ./ros2/rcl_interfaces (git) ===
Cloning into '.'...
=== ./ros2/rcl_logging (git) ===
Cloning into '.'...
=== ./ros2/rcpputils (git) ===
Cloning into '.'...
=== ./ros2/rmw (git) ===
Cloning into '.'...
=== ./ros2/rmw_implementation (git) ===
Cloning into '.'...
=== ./ros2/rosidl (git) ===
Cloning into '.'...
=== ./ros2/rosidl_dds (git) ===
Cloning into '.'...
=== ./ros2/rosidl_defaults (git) ===
Cloning into '.'...
=== ./ros2/test_interface_files (git) ===
Cloning into '.'...
=== ./ros2/unique_identifier_msgs (git) ===
Cloning into '.'...
...........
=== ./eProsima/Micro-CDR (git) ===
Cloning into '.'...
=== ./eProsima/Micro-XRCE-DDS-Client (git) ===
Cloning into '.'...
=== ./uros/micro_ros_msgs (git) ===
Cloning into '.'...
=== ./uros/micro_ros_utilities (git) ===
Cloning into '.'...
=== ./uros/rcl (git) ===
Cloning into '.'...
=== ./uros/rclc (git) ===
Cloning into '.'...
=== ./uros/rcutils (git) ===
Cloning into '.'...
=== ./uros/rmw_microxrcedds (git) ===
Cloning into '.'...
=== ./uros/rosidl_typesupport (git) ===
Cloning into '.'...
=== ./uros/rosidl_typesupport_microxrcedds (git) ===
Cloning into '.'...
=== ./uros/tracetools (git) ===
Cloning into '.'...

Cloning into 'uros/rmw_embeddedrtps'...
Cloning into 'uros/embeddedRTPS'...
Crosscompiled environment: cleaning path
Building firmware for generate_lib platform generic
Using provided meta: /project/micro_ros_stm32cubemx_utils/microros_static_library_ide/library_generation/colcon-embeddedrtps.meta
Starting >>> rcutils
Starting >>> rosidl_cli
Starting >>> rosidl_typesupport_interface
Starting >>> microcdr
Finished <<< rosidl_cli [0.94s]
Starting >>> rosidl_adapter
Finished <<< rosidl_typesupport_interface [1.14s]
Starting >>> rmw_implementation_cmake
Finished <<< rmw_implementation_cmake [1.61s]
Starting >>> tracetools
Finished <<< microcdr [3.71s]
Starting >>> embeddedrtps
Finished <<< rosidl_adapter [2.93s]
Starting >>> rosidl_parser
--- stderr: rcutils
In function 'rcutils_char_array_strncat',
inlined from 'rcutils_char_array_strcat' at /uros_ws/firmware/mcu_ws/uros/rcutils/src/char_array.c:239:10:
/uros_ws/firmware/mcu_ws/uros/rcutils/src/char_array.c:224:3: warning: 'strncat' output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
224 |   strncat(char_array->buffer, src, n);
|   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/char_array.c: In function 'rcutils_char_array_strcat':
/uros_ws/firmware/mcu_ws/uros/rcutils/src/char_array.c:239:10: note: length computed here
239 |   return rcutils_char_array_strncat(char_array, src, strlen(src));
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/logging.c: In function 'rcutils_get_env_var_zero_or_one':
/uros_ws/firmware/mcu_ws/uros/rcutils/src/logging.c:130:35: warning: unused parameter 'zero_semantic' [-Wunused-parameter]
Finished <<< rcutils [4.36s]
Starting >>> rosidl_runtime_c
130 |   const char * name, const char * zero_semantic,
|                      ~^
/uros_ws/firmware/mcu_ws/uros/rcutils/src/logging.c:131:16: warning: unused parameter 'one_semantic' [-Wunused-parameter]
131 |   const char * one_semantic)
|   ~^~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/time_unix.c:42:4: warning: #warning is a GCC extension
42 | #  warning no monotonic clock function available
|    ^~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/time_unix.c:42:4: warning: #warning no monotonic clock function available [-Wcpp]
/uros_ws/firmware/mcu_ws/uros/rcutils/src/time_unix.c: In function 'rcutils_system_time_now':
/uros_ws/firmware/mcu_ws/uros/rcutils/src/time_unix.c:64:3: warning: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
64 |   clock_gettime(CLOCK_REALTIME, &timespec_now);
|   ^~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/atomic_64bits.c:53:10: warning: mismatch in argument 1 type of built-in function '__atomic_load_8'; expected 'const volatile void *' [-Wbuiltin-declaration-mismatch]
53 | uint64_t __atomic_load_8(uint64_t *mem, int model) {
|          ^~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/atomic_64bits.c:62:6: warning: mismatch in argument 1 type of built-in function '__atomic_store_8'; expected 'volatile void *' [-Wbuiltin-declaration-mismatch]
62 | void __atomic_store_8(uint64_t *mem, uint64_t val, int model) {
|      ^~~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/atomic_64bits.c:70:10: warning: mismatch in argument 1 type of built-in function '__atomic_exchange_8'; expected 'volatile void *' [-Wbuiltin-declaration-mismatch]
70 | uint64_t __atomic_exchange_8(uint64_t *mem, uint64_t val, int model) {
|          ^~~~~~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/atomic_64bits.c:80:10: warning: mismatch in argument 1 type of built-in function '__atomic_fetch_add_8'; expected 'volatile void *' [-Wbuiltin-declaration-mismatch]
80 | uint64_t __atomic_fetch_add_8(uint64_t *mem, uint64_t val, int model) {
|          ^~~~~~~~~~~~~~~~~~~~
Finished <<< tracetools [2.15s]
Starting >>> rcl_logging_interface
--- stderr: embeddedrtps
In file included from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/UdpConnection.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/UdpDriver.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/common/Locator.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/ParticipantProxyData.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/src/discovery/ParticipantProxyData.cpp:25:
/uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/TcpipCoreLock.h:28:10: fatal error: lwip/tcpip.h: No such file or directory
28 | #include <lwip/tcpip.h>
|          ^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/embeddedrtps.dir/build.make:79: CMakeFiles/embeddedrtps.dir/src/discovery/ParticipantProxyData.cpp.obj] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/BuiltInEndpoints.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/SEDPAgent.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/src/discovery/SEDPAgent.cpp:25:
/uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/entities/StatefulReader.h:28:10: fatal error: lwip/sys.h: No such file or directory
28 | #include "lwip/sys.h"
|          ^~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/embeddedrtps.dir/build.make:92: CMakeFiles/embeddedrtps.dir/src/discovery/SEDPAgent.cpp.obj] Error 1
In file included from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/UdpConnection.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/UdpDriver.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/common/Locator.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/TopicData.h:30,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/src/discovery/TopicData.cpp:24:
/uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/TcpipCoreLock.h:28:10: fatal error: lwip/tcpip.h: No such file or directory
28 | #include <lwip/tcpip.h>
|          ^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/embeddedrtps.dir/build.make:66: CMakeFiles/embeddedrtps.dir/src/discovery/TopicData.cpp.obj] Error 1
In file included from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/src/discovery/SPDPAgent.cpp:25:
/uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/SPDPAgent.h:28:10: fatal error: lwip/sys.h: No such file or directory
28 | #include "lwip/sys.h"
|          ^~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/embeddedrtps.dir/build.make:105: CMakeFiles/embeddedrtps.dir/src/discovery/SPDPAgent.cpp.obj] Error 1
Aborted  <<< rosidl_runtime_c [1.02s]
make[1]: *** [CMakeFiles/Makefile2:108: CMakeFiles/embeddedrtps.dir/all] Error 2
make: *** [Makefile:144: all] Error 2
Failed   <<< embeddedrtps [1.63s, exited with code 2]
Aborted  <<< rosidl_parser [1.53s]
Aborted  <<< rcl_logging_interface [0.88s]
Summary: 7 packages finished [6.38s]
1 package failed: embeddedrtps
3 packages aborted: rcl_logging_interface rosidl_parser rosidl_runtime_c
4 packages had stderr output: embeddedrtps rcl_logging_interface rcutils rosidl_runtime_c
55 packages not processed
make[1]: *** [makefile:95: pre-build] Error 2
make: *** [makefile:63: all] Error 2
"make -j4 all" terminated with exit code 2. Build might be incomplete.
12:02:49 Build Failed. 13 errors, 11 warnings. (took 2m:39s.388ms)
Im guessing that its using the embeddedRTPS that uses the LwIP as a middleware and that my board doesnt support it ? if so how can I solve this problem using the eProsima Micro XRCE-DDS as middleware?
Thank you for ur clarifactions ^_^

Ive been having some difficulties trying to build the micro-ROS project for my board using the STMCubeIDE, I created a new project and cloned the repository in its folder then followed all the instruction and using the U(S)ART with DMA transport configuration but when I try to build the project it gives the following error :
12:00:10 **** Incremental Build of configuration Debug for project firstTest ****
make -j4 all
docker pull microros/micro_ros_static_library_builder:galactic && docker run --rm -v /home/ouss/Desktop/workspace/firstTest:/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library_ide microros/micro_ros_static_library_builder:galactic
galactic: Pulling from microros/micro_ros_static_library_builder
Digest: sha256:064eee8df3e651aef52bd24db5b4a8ec85300b539942aa267995f1d79e81fa3c
Status: Image is up to date for microros/micro_ros_static_library_builder:galactic
docker.io/microros/micro_ros_static_library_builder:galactic
Found CFLAGS:
-ffunction-sections -fdata-sections -DSTM32CUBEIDE -DENOTSUP=1 -DECANCELED=1 -DEOWNERDEAD=1 -DENOTRECOVERABLE=1 -mcpu=cortex-m4 -mfloat-abi=hard -mthumb -mfpu=fpv4-sp-d16 -O0 -DDEBUG -DSTM32F401xE -DUSE_HAL_DRIVER --specs=nano.specs -I/project/Drivers/STM32F4xx_HAL_Driver/Inc -I/project/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I/project/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -Imicro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include -I/project/Middlewares/Third_Party/FreeRTOS/Source/include -I/project/Core/Inc -I/project/Drivers/CMSIS/Device/ST/STM32F4xx/Include -I/project/Drivers/CMSIS/Include -I/project/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:5 http://packages.ros.org/ros2/ubuntu focal InRelease [4670 B]
Get:6 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1275 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
Get:10 http://packages.ros.org/ros2/ubuntu focal/main amd64 Packages [884 kB]
Get:11 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [30.1 kB]
Get:12 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [628 kB]
Get:13 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1183 kB]
Get:14 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [802 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [33.4 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [679 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1636 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1086 kB]
Get:19 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [6310 B]
Get:20 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [2668 B]
Fetched 20.4 MB in 4s (4839 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
binutils-arm-none-eabi libnewlib-arm-none-eabi libnewlib-dev
libstdc++-arm-none-eabi-newlib
Suggested packages:
libnewlib-doc
The following NEW packages will be installed:
binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi
libnewlib-dev libstdc++-arm-none-eabi-newlib
0 upgraded, 5 newly installed, 0 to remove and 33 not upgraded.
Need to get 271 MB of archives.
After this operation, 2340 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 binutils-arm-none-eabi amd64 2.34-4ubuntu1+13ubuntu1 [2571 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 gcc-arm-none-eabi amd64 15:9-2019-q4-0ubuntu1 [31.6 MB]
Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 libnewlib-dev all 3.3.0-0ubuntu1 [131 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal/universe amd64 libnewlib-arm-none-eabi all 3.3.0-0ubuntu1 [34.5 MB]
Get:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 libstdc++-arm-none-eabi-newlib all 15:9-2019-q4-0ubuntu1+12build2 [202 MB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 271 MB in 37s (7336 kB/s)
Selecting previously unselected package binutils-arm-none-eabi.
(Reading database ...

Preparing to unpack .../binutils-arm-none-eabi_2.34-4ubuntu1+13ubuntu1_amd64.deb ...
Unpacking binutils-arm-none-eabi (2.34-4ubuntu1+13ubuntu1) ...
Selecting previously unselected package gcc-arm-none-eabi.
Preparing to unpack .../gcc-arm-none-eabi_15%3a9-2019-q4-0ubuntu1_amd64.deb ...
Unpacking gcc-arm-none-eabi (15:9-2019-q4-0ubuntu1) ...
Selecting previously unselected package libnewlib-dev.
Preparing to unpack .../libnewlib-dev_3.3.0-0ubuntu1_all.deb ...
Unpacking libnewlib-dev (3.3.0-0ubuntu1) ...
Selecting previously unselected package libnewlib-arm-none-eabi.
Preparing to unpack .../libnewlib-arm-none-eabi_3.3.0-0ubuntu1_all.deb ...
Unpacking libnewlib-arm-none-eabi (3.3.0-0ubuntu1) ...
Selecting previously unselected package libstdc++-arm-none-eabi-newlib.
Preparing to unpack .../libstdc++-arm-none-eabi-newlib_15%3a9-2019-q4-0ubuntu1+12build2_all.deb ...
Unpacking libstdc++-arm-none-eabi-newlib (15:9-2019-q4-0ubuntu1+12build2) ...
Setting up binutils-arm-none-eabi (2.34-4ubuntu1+13ubuntu1) ...
Setting up gcc-arm-none-eabi (15:9-2019-q4-0ubuntu1) ...
Setting up libnewlib-dev (3.3.0-0ubuntu1) ...
Setting up libnewlib-arm-none-eabi (3.3.0-0ubuntu1) ...
Setting up libstdc++-arm-none-eabi-newlib (15:9-2019-q4-0ubuntu1+12build2) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Creating firmware for generate_lib platform generic
Warning: running 'rosdep update' as root is not recommended.
reading in sources list data from /etc/ros/rosdep/sources.list.d
You should run 'sudo rosdep fix-permissions' and invoke 'rosdep update' again without sudo.
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip distro "ardent" different from requested "galactic"
Skip distro "bouncy" different from requested "galactic"
Skip distro "crystal" different from requested "galactic"
Skip distro "dashing" different from requested "galactic"
Skip distro "eloquent" different from requested "galactic"
Skip distro "foxy" different from requested "galactic"
Add distro "galactic"
Skip distro "groovy" different from requested "galactic"
Skip distro "hydro" different from requested "galactic"
Skip distro "indigo" different from requested "galactic"
Skip distro "jade" different from requested "galactic"
Skip distro "kinetic" different from requested "galactic"
Skip distro "lunar" different from requested "galactic"
Skip distro "melodic" different from requested "galactic"
Skip distro "noetic" different from requested "galactic"
Skip distro "rolling" different from requested "galactic"
updated cache in /root/.ros/rosdep/sources.cache
#All required rosdeps installed successfully
.......
=== ./ament/ament_cmake (git) ===
Cloning into '.'...
=== ./ament/ament_index (git) ===
Cloning into '.'...
=== ./ament/ament_lint (git) ===
Cloning into '.'...
=== ./ament/ament_package (git) ===
Cloning into '.'...
=== ./ament/googletest (git) ===
Cloning into '.'...
=== ./ament/uncrustify_vendor (git) ===
Cloning into '.'...
=== ./ros2/ament_cmake_ros (git) ===
Cloning into '.'...
List of repositories is empty
#All required rosdeps installed successfully
..............
=== ./ros2/common_interfaces (git) ===
Cloning into '.'...
=== ./ros2/example_interfaces (git) ===
Cloning into '.'...
=== ./ros2/libyaml_vendor (git) ===
Cloning into '.'...
=== ./ros2/rcl (git) ===
Cloning into '.'...
=== ./ros2/rcl_interfaces (git) ===
Cloning into '.'...
=== ./ros2/rcl_logging (git) ===
Cloning into '.'...
=== ./ros2/rcpputils (git) ===
Cloning into '.'...
=== ./ros2/rmw (git) ===
Cloning into '.'...
=== ./ros2/rmw_implementation (git) ===
Cloning into '.'...
=== ./ros2/rosidl (git) ===
Cloning into '.'...
=== ./ros2/rosidl_dds (git) ===
Cloning into '.'...
=== ./ros2/rosidl_defaults (git) ===
Cloning into '.'...
=== ./ros2/test_interface_files (git) ===
Cloning into '.'...
=== ./ros2/unique_identifier_msgs (git) ===
Cloning into '.'...
...........
=== ./eProsima/Micro-CDR (git) ===
Cloning into '.'...
=== ./eProsima/Micro-XRCE-DDS-Client (git) ===
Cloning into '.'...
=== ./uros/micro_ros_msgs (git) ===
Cloning into '.'...
=== ./uros/micro_ros_utilities (git) ===
Cloning into '.'...
=== ./uros/rcl (git) ===
Cloning into '.'...
=== ./uros/rclc (git) ===
Cloning into '.'...
=== ./uros/rcutils (git) ===
Cloning into '.'...
=== ./uros/rmw_microxrcedds (git) ===
Cloning into '.'...
=== ./uros/rosidl_typesupport (git) ===
Cloning into '.'...
=== ./uros/rosidl_typesupport_microxrcedds (git) ===
Cloning into '.'...
=== ./uros/tracetools (git) ===
Cloning into '.'...

Cloning into 'uros/rmw_embeddedrtps'...
Cloning into 'uros/embeddedRTPS'...
Crosscompiled environment: cleaning path
Building firmware for generate_lib platform generic
Using provided meta: /project/micro_ros_stm32cubemx_utils/microros_static_library_ide/library_generation/colcon-embeddedrtps.meta
Starting >>> rcutils
Starting >>> rosidl_cli
Starting >>> rosidl_typesupport_interface
Starting >>> microcdr
Finished <<< rosidl_cli [0.94s]
Starting >>> rosidl_adapter
Finished <<< rosidl_typesupport_interface [1.14s]
Starting >>> rmw_implementation_cmake
Finished <<< rmw_implementation_cmake [1.61s]
Starting >>> tracetools
Finished <<< microcdr [3.71s]
Starting >>> embeddedrtps
Finished <<< rosidl_adapter [2.93s]
Starting >>> rosidl_parser
--- stderr: rcutils
In function 'rcutils_char_array_strncat',
inlined from 'rcutils_char_array_strcat' at /uros_ws/firmware/mcu_ws/uros/rcutils/src/char_array.c:239:10:
/uros_ws/firmware/mcu_ws/uros/rcutils/src/char_array.c:224:3: warning: 'strncat' output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
224 | strncat(char_array->buffer, src, n);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/char_array.c: In function 'rcutils_char_array_strcat':
/uros_ws/firmware/mcu_ws/uros/rcutils/src/char_array.c:239:10: note: length computed here
239 | return rcutils_char_array_strncat(char_array, src, strlen(src));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/logging.c: In function 'rcutils_get_env_var_zero_or_one':
/uros_ws/firmware/mcu_ws/uros/rcutils/src/logging.c:130:35: warning: unused parameter 'zero_semantic' [-Wunused-parameter]
Finished <<< rcutils [4.36s]
Starting >>> rosidl_runtime_c
130 | const char * name, const char * zero_semantic,
| ~^
/uros_ws/firmware/mcu_ws/uros/rcutils/src/logging.c:131:16: warning: unused parameter 'one_semantic' [-Wunused-parameter]
131 | const char * one_semantic)
| ~^~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/time_unix.c:42:4: warning: #warning is a GCC extension
42 | # warning no monotonic clock function available
| ^~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/time_unix.c:42:4: warning: #warning no monotonic clock function available [-Wcpp]
/uros_ws/firmware/mcu_ws/uros/rcutils/src/time_unix.c: In function 'rcutils_system_time_now':
/uros_ws/firmware/mcu_ws/uros/rcutils/src/time_unix.c:64:3: warning: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
64 | clock_gettime(CLOCK_REALTIME, &timespec_now);
| ^~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/atomic_64bits.c:53:10: warning: mismatch in argument 1 type of built-in function '__atomic_load_8'; expected 'const volatile void *' [-Wbuiltin-declaration-mismatch]
53 | uint64_t __atomic_load_8(uint64_t *mem, int model) {
| ^~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/atomic_64bits.c:62:6: warning: mismatch in argument 1 type of built-in function '__atomic_store_8'; expected 'volatile void *' [-Wbuiltin-declaration-mismatch]
62 | void __atomic_store_8(uint64_t *mem, uint64_t val, int model) {
| ^~~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/atomic_64bits.c:70:10: warning: mismatch in argument 1 type of built-in function '__atomic_exchange_8'; expected 'volatile void *' [-Wbuiltin-declaration-mismatch]
70 | uint64_t __atomic_exchange_8(uint64_t *mem, uint64_t val, int model) {
| ^~~~~~~~~~~~~~~~~~~
/uros_ws/firmware/mcu_ws/uros/rcutils/src/atomic_64bits.c:80:10: warning: mismatch in argument 1 type of built-in function '__atomic_fetch_add_8'; expected 'volatile void *' [-Wbuiltin-declaration-mismatch]
80 | uint64_t __atomic_fetch_add_8(uint64_t *mem, uint64_t val, int model) {
| ^~~~~~~~~~~~~~~~~~~~
Finished <<< tracetools [2.15s]
Starting >>> rcl_logging_interface
--- stderr: embeddedrtps
In file included from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/UdpConnection.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/UdpDriver.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/common/Locator.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/ParticipantProxyData.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/src/discovery/ParticipantProxyData.cpp:25:
/uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/TcpipCoreLock.h:28:10: fatal error: lwip/tcpip.h: No such file or directory
28 | #include <lwip/tcpip.h>
| ^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/embeddedrtps.dir/build.make:79: CMakeFiles/embeddedrtps.dir/src/discovery/ParticipantProxyData.cpp.obj] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/BuiltInEndpoints.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/SEDPAgent.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/src/discovery/SEDPAgent.cpp:25:
/uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/entities/StatefulReader.h:28:10: fatal error: lwip/sys.h: No such file or directory
28 | #include "lwip/sys.h"
| ^~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/embeddedrtps.dir/build.make:92: CMakeFiles/embeddedrtps.dir/src/discovery/SEDPAgent.cpp.obj] Error 1
In file included from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/UdpConnection.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/UdpDriver.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/common/Locator.h:28,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/TopicData.h:30,
from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/src/discovery/TopicData.cpp:24:
/uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/communication/TcpipCoreLock.h:28:10: fatal error: lwip/tcpip.h: No such file or directory
28 | #include <lwip/tcpip.h>
| ^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/embeddedrtps.dir/build.make:66: CMakeFiles/embeddedrtps.dir/src/discovery/TopicData.cpp.obj] Error 1
In file included from /uros_ws/firmware/mcu_ws/uros/embeddedRTPS/src/discovery/SPDPAgent.cpp:25:
/uros_ws/firmware/mcu_ws/uros/embeddedRTPS/include/rtps/discovery/SPDPAgent.h:28:10: fatal error: lwip/sys.h: No such file or directory
28 | #include "lwip/sys.h"
| ^~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/embeddedrtps.dir/build.make:105: CMakeFiles/embeddedrtps.dir/src/discovery/SPDPAgent.cpp.obj] Error 1
Aborted <<< rosidl_runtime_c [1.02s]
make[1]: *** [CMakeFiles/Makefile2:108: CMakeFiles/embeddedrtps.dir/all] Error 2
make: *** [Makefile:144: all] Error 2
Failed <<< embeddedrtps [1.63s, exited with code 2]
Aborted <<< rosidl_parser [1.53s]
Aborted <<< rcl_logging_interface [0.88s]
Summary: 7 packages finished [6.38s]
1 package failed: embeddedrtps
3 packages aborted: rcl_logging_interface rosidl_parser rosidl_runtime_c
4 packages had stderr output: embeddedrtps rcl_logging_interface rcutils rosidl_runtime_c
55 packages not processed
make[1]: *** [makefile:95: pre-build] Error 2
make: *** [makefile:63: all] Error 2
"make -j4 all" terminated with exit code 2. Build might be incomplete.
12:02:49 Build Failed. 13 errors, 11 warnings. (took 2m:39s.388ms)
Im guessing that its using the embeddedRTPS that uses the LwIP as a middleware and that my board doesnt support it ? if so how can I solve this problem using the eProsima Micro XRCE-DDS as middleware?
Thank you for ur clarifactions ^_^

Our fault, solved here: https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/pull/38
Please update your repo and rebuild when merged.

First of all I would like to thank u for ur help and fast replies !
I managed to successfully build  the micro-ROS project and when I try to to run it to the board I get the following results in the console (with both the LED1 & LED3 turning RED ) :
STMicroelectronics ST-LINK GDB server. Version 5.9.1
Copyright (c) 2021, STMicroelectronics. All rights reserved.
Starting server with the following options:
Persistent Mode            : Disabled
Logging Level              : 1
Listen Port Number         : 61234
Status Refresh Delay       : 15s
Verbose Mode               : Disabled
SWD Debug                  : Enabled
InitWhile                  : Enabled
Waiting for debugger connection...
Debugger connected
-------------------------------------------------------------------
STM32CubeProgrammer v2.8.0
-------------------------------------------------------------------
ST-LINK SN  : 066FFF323637414257031853
ST-LINK FW  : V2J38M27
Board       : NUCLEO-F401RE
Voltage     : 3.25V
SWD freq    : 4000 KHz
Connect mode: Under Reset
Reset mode  : Hardware reset
Device ID   : 0x433
Revision ID : Rev Z
Device name : STM32F401xD/E
Flash size  : 512 KBytes
Device type : MCU
Device CPU  : Cortex-M4
BL Version  : 0x__
Memory Programming ...
Opening and parsing file: ST-LINK_GDB_server_uP9Zc2.srec
File          : ST-LINK_GDB_server_uP9Zc2.srec
Size          : 71488 Bytes
Address       : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 4]
Download in Progress:
File download complete
Time elapsed during download operation: 00:00:02.211
Verifying ...
Download verified successfully
Debugger connection lost.
Shutting down...
I tried using a simple LED2 blinking program and i got the same result on the console but the LED2 was actually blinking (and both the LED1 & LED3 were solid RED ) so I'm guessing the code is actually being run on the board.
If so how do I test if the micro-ROS code is actually running and the msg is being published ? I'm using sample_main.c as the main.c code
And Thank u once more for the help ^_^

this is what I get when i run the micro-ros agent  with the docker command:

You should not copy-paste sample_main.c because it probably targets other boards and other configurations. Just take your working example and complete the micro-ROS part taking sample_main.c as reference.

after some debugging using the LED toggling it seems that the code stops at  the allocator = rcl_get_default_allocator(); line so I added a HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); after it and it did not toggle the LED so I added a few dynamic printf breakpoints and here is the result : even if it hits the toggle line it doenst toggle the LED then it stops on the rclc_support_init(&support, 0, NULL, &allocator); line

`

after some debugging using the LED toggling it seems that the code stops at the rclc_support_init(&support, 0, NULL, &allocator);  line so I added a HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); before and after it and it and only the line b4 it worked (the LED stays ON), then I added a few dynamic printf breakpoints and here is the result :

: which indicates that the code does stop  on the rclc_support_init(&support, 0, NULL, &allocator);  line

Are you sure that your serial port is working correctly? Could you check if the serial port is opening and if the write function is being called in the micro-ROS transport file?

Could you kindly show me how can I check that ? 😅

@pablogs9 ?

Just check if you can see data being written in the UART port. Use miniterm or minicom or a similar software to check if the MCU is writing in your selected UART in the board.

After using both miniterm and minicom here are the results that I got

It seems like no data is being written in the UART port ?

That's right, you are not writing well to the serial port

Any idea on what I'm doing wrong and how can I fix it?

First of all test, an application that does not use micro-ROS is able to write to a certain serial port in order to check if it is configured properly. Once we have a working serial port that sends data to minicom or miniterm, then we can use this same well-configured uart with micro-ROS.

After creating a new simple project that writes to the serial port using HAL_UART_Transmit I was able to read that data using minicom and miniterm but after activating the freeRTOS as shown in the picture of the tutorial (picture below) I stopped receiving my data

After creating a new simple project that writes to the serial port using HAL_UART_Transmit I was able to read that data using minicom and miniterm. Then I started configuring my .ioc file to try to find the problem and I found out that after activating the freeRTOS as shown in the picture in the tutorial (picture below) I stopped receiving my data

Are you setting here the correct UART?

Yes I did change it to &huart2 as I am using UART2.

even in the simple application that doesnt use micro-ROS i stopped receiving data in minicom after activating freeRTOS in the .ioc file

It seems that way and That's what's I'm trying to resolve but I can't find any solutions at the moment

I cant get the UART communication to work with freeRTOS, as soon as I activate freeRTOS I dont receive anything on miniterm Im pretty sure I followed the configuration steps shown here Here are screenshots of the configuration I did :
enabling DMA for Tx and Rx under DMA Settings and setting DMA priotity to Very High and seting the DMA mode to Circular for Rx and also enabling global interrupt under NVIC Settings
for the freeRTOS Ive just activated it under CMSIS_V2 interface and changed the stack size to 3000

Is there anything I'm doing wrong ?

I finally made it work ! After many tries to make the UART communication work with freeRTOS using "U(S)ART with DMA" transport configuration nothing seemed to work so I just tried the "U(S)ART with Interrupts" one and used the it_transport.cfile and boom now every thing works I started receiving stuff on minicom

after running the Micro-ROS agent with the docker command docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:galactic serial --dev /dev/ttyACM0 -v6 and it worked

after connecting to that docker from a new terminal I was able to receive the data using ros2 topic echo /cubemx_publisher

I would like to thank you very much for ur time and effort trying to help me ! ^_^

@pablogs9  Hello, Ive been playing around with microROS and im now trying to subscribe to a topic of type sensor_msgs/msg/LaserScan to do some obstacle avoidance with dolly, I wrote a code that simply blinks the LED once a message is published on my topic but I cant make it work. Im able to make this work when subscribing to an std_msgs/msg/int32  or to geometry_msgs/msg/twist topics but once I change the ROSIDL_GET_MSG_TYPE_SUPPORT to ROSIDL_GET_MSG_TYPE_SUPPORT(sensor_msgs, msg, LaserScan) the LED doesn't blink even after publishing msgs on the terminal. Any idea on what might be the problem ?

can you share the code?

I have been able to solve the previous problem and  subscribe to a sensor_msgs/msg/LaserScan type topic by declaring my sensor_msgs__msg__LaserScan msg; variable on the Private variables on the top of my code instead of inside of the StartDefaultTask function (which I don't know why it works so maybe u can clarify that lol ).
Sending a msg with the terminal with ros2 topic pub dolly/laser_scan sensor_msgs/msg/LaserScan "{angle_max: 1}"  makes the LED blink so the code works, but when I subscribe to the actual Dolly laser I get the following on my agent terminal :

P.S : my QoS is set to rmw_qos_profile_sensor_data other profiles doesn't seem to be compatible with the dolly laser
Here is my code :
LaserReader.txt

You are not initing the message memory on sensor_msgs__msg__LaserScan msg: https://micro.ros.org/docs/tutorials/advanced/handling_type_memory/
It has at least a header and a couple of unbounded arrays: http://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/LaserScan.html

The warning is about a message of 1660 trying to be serialized in a 508 MTU (the default MTU size in micro-ROS) using a best-effort stream. You need to change it to reliable in order to use XRCE-DDS fragmentation.

using a reliable stream results in a incompatible QoS tho

You can also increase the MTU in the colcon.meta and rebuild the library


nibabel.filebasedimages.ImageFileError for large label files

For large label files (for example, 14.4 MB), I am getting the following error:
Using TensorFlow backend.
2021-09-28 09:09:30.136046: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 AVX512F FMA
2021-09-28 09:09:30.169198: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2021-09-28 09:09:30.169382: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x561d43a4d680 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2021-09-28 09:09:30.169402: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2021-09-28 09:09:30.169534: I tensorflow/core/common_runtime/process_util.cc:147] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.
generation 0 took 23.8s
generation 0 took 23.1s
generation 0 took 19.6s
     .
     .
     .
generation 0 took 19.4s
Traceback (most recent call last):
  File "/home/miran045/reine097/projects2/lab2im/lab2im/dcan/image_generation_from_folder.py", line 18, in <module>
    generate_images_from_folder(sys.argv[1], sys.argv[2], sys.argv[3], int(sys.argv[4]))
  File "/home/miran045/reine097/projects2/lab2im/lab2im/dcan/image_generation_from_folder.py", line 14, in generate_images_from_folder
    generate_images(join(input_folder, file_name), priors_folder, output_folder, image_count)
  File "/home/miran045/reine097/projects2/lab2im/lab2im/dcan/image_generation.py", line 177, in generate_images
    use_specific_stats_for_channel=True)
  File "/home/miran045/reine097/projects2/lab2im/lab2im/image_generator.py", line 102, in __init__
    utils.get_volume_info(self.labels_paths[0], aff_ref=np.eye(4))
  File "/home/miran045/reine097/projects2/lab2im/lab2im/utils.py", line 148, in get_volume_info
    im, aff, header = load_volume(path_volume, im_only=False)
  File "/home/miran045/reine097/projects2/lab2im/lab2im/utils.py", line 75, in load_volume
    x = nib.load(path_volume)
  File "/home/miran045/reine097/.local/lib/python3.7/site-packages/nibabel/loadsave.py", line 55, in load
    raise ImageFileError(f'Cannot work out file type of "{filename}"')
nibabel.filebasedimages.ImageFileError: Cannot work out file type of "/home/feczk001/shared/data/nnUNet/nnUNet_raw_data_base/nnUNet_raw_data/Task509_Paper/labelsTr1/1mo_sub-375518.nii.gz"

This does not happen for smaller files.

I was able to reproduce this with a small stand-alone script, excluding lab2im, hence it cannot be a lab2im problem.
import nibabel as nib

file_path = '/home/feczk001/shared/data/nnUNet/nnUNet_raw_data_base/nnUNet_raw_data/Task509_Paper/labelsTr1/1mo_sub' \
            '-375518.nii.gz '
img = nib.load(file_path)
print(img.shape)


unable to Connect to gcm config Start?

05-11 19:44:19.840 E/GmsClient(5818): unable to connect to service: com.google.android.gms.config.START
i am getting this error but do not have any hinter what is causing it. maybe its my New Installation of Google keyboard App?!

I dont have any problems at the moment. Can be closed.


[FEATURE REQ] Split "Electrum Server" guide into two guides: "Electrum Server" & "Desktop wallet" + focus on one desktop app only (e.g. Sparrow)

What & why
Presently, the Electrum server guide contains instructions on:

How to install and setup Electrs
How to connect the Electrum wallet and BitBoxApp to Electrs

However, the Electrums server is used for other apps than Electrum and BitBoxApp: e.g. the BTC RPC Explorer and possibly other wallet apps.
I'm noticing that new users often have some issues connecting their desktop wallet (e.g. Electrum) to their Electrum server. This could be partly due to the concise nature of the existing guidelines.
Therefore, to make things structurally clearer and to have a bit more space to explain how to connect a wallet to the server, I think that separating the two sections could make a lot of sense, i.e.:

An "Electrum server" guide that focuses solely on the installation and configuration of Electrs (and pointing to alternatives in the bonus section, e.g. ElectrumX etc)
Followed by a "Desktop wallet" guide that clearly explains how to install and connect a desktop wallet to Electrs

So the new layout for the "Bitcoin" section of the guide could be:

Bitcoin Core*
Electrum server
Desktop wallet
Blockchain Explorer

* Note: as the other sub-headings are all generic names rather than program names.. we should maybe use "Bitcoin node implementation" or something more generic like this rather than "Bitcoin Core".. wdyt?
For the "Desktop wallet" guide, I think we should focus on explaining how to install and connect only one popular desktop wallet. All other apps could be as bonus guides linked to in this section. IMHO, the two main candidates would be either:

Electrum
Sparrow

My preference would go to Sparrow as its focus on showing how things are under the hood really resonates with the whole "RaspiBolt" philosophy (+ its native coinjoining capabilities that could be highlighted)
How

Restrict the existing "Electrum Server" guide to installation and configuration of Electrs only (remove the Electrum and BitBoxApp sections)
Create a new "Desktop wallet" guide that explains how to install only one popular app (e.g. Sparrow) and how to connect it to Electrs. Links to the bonus section for guides on how to connect other apps (Electrum, BitBoxApp, Specter, Bisq etc).

Wdyat? :)

This change would place emphasis on installing a bitcoin desktop app (so on another device than the SCB), which could be seen (or not) as straying away from a guide explaining how to setup a SCB-based node.
It really depends what goals we want the guide to achieve:

Do we want to keep it solely focused on having a bitcoin and lightning node on a SCB? in that case a bitcoin desktop wallet is seen as secondary and would belong to bonus guides or optional sections... or
Do we want the guide to provide an integrated set of self-sovereign tools to bitcoiners? in that case, a guide that explains how to setup a desktop wallet and connect it to the node would prefectly fit in

IMHO, I like to think of the RaspiBolt as more option 2. But I'd understand if vision number 1 is preferred and therefore a separate bitcoin desktop wallet guide would'nt really make sense.
In any case, even if vision 1 is preferred, I believe the Electrum Server guide would benefit from focusing on only one wallet, have that section a bit expanded to clarify a few common mistakes and then having links to bonus guides for other apps.
Anyways, enough of me talking. Looking forward to hear feedback and ideas on all this :)

PS: forgot to say: I'd be happy to have a go at writing a draft PR for this... but I wanted to see if there was some appetite for it before, as it would take a fair amount of time. Hence the thread here.

Just to give an idea on how it could look, here is a first draft: https://vajraofindra.github.io/RaspiBolt/

I like the separation and also that you have chosen sparrow wallet as an examlpe :)

Is there any issue connecting BOTH electrum and sparrow wallets to my electrum server using the exact same xyzaddress.onion:50002 -and- proxy: localhost:9050 ?
Or is this the only possible way to connect them?.... can both wallets run at the same time using these ports/proxys?  I would think so, but I'm still very new to all this stuff.... thanks!

Is there any issue connecting BOTH electrum and sparrow wallets to my electrum server using the exact same xyzaddress.onion:50002 -and- proxy: localhost:9050 ?

Afaik, it should be ok.

Or is this the only possible way to connect them?....

You could connect Sparrow to Bitcoin Core directly also. But it 's more complicated as it requires to edit the bitcoin.conf file. It also leave a wallet.dat unecnrypted on your node which means anyone that get read access to your node (ok, unlikely..) could know your public keys and balance. See https://www.sparrowwallet.com/docs/best-practices.html#the-expert-stage

can both wallets run at the same time using these ports/proxys? I would think so, but I'm still very new to all this stuff.... thanks!

The proxy for Sparrow is not related to your node. It determines wheter Sparrow will use clearnet or Tor to get two pieces of information: 1) the bitcoin price from a public API, 2) the communication with the Whirlpool server when doing coinjoins


Allow Production CyHy account to update DNS records

Modify the assume_role_policy document for the route53resourcechange_role so that the Production CyHy account is allowed.
While we're at it, we can get rid of the specific sessendemail_assume_role_doc since both roles in this project are now allowed to be assumed by the Production CyHy account.

It turns out this change is not needed, thanks to the magic of AWS source profiles.  See https://github.com/cisagov/cyhy_amis/pull/257 for the change that accomplishes this.


input geometry is too narrow

Environment (please complete the following information):

OS: Arch Linux x86_64 Kernel 5.12.1-arch1-1
(Neo)Vim version: NVIM v0.5.0-dev+1343-g75992f2ad
vim-clap version: commit 1c970361e49e974f93ef606ffd504b8e0c52f9fd
Have you reproduced with a minimal vimrc: yes
Have you updated to the latest plugin version: yes
Have you upgraded to/compiled the latest Rust binary: yes

Describe the bug
the geometry of the input is narrower than it should be
Clap debug
            has cargo: 1
            has maple: v:null
         has +python3: 1
has py dynamic module: 0
            has ctags: ctags with JSON output support
    Current sync impl: Lua
     Current FileType: vim
Third Party Providers: []
       Global Options:
    let g:clap#autoload_dir = '/home/zach/Dev/vim-clap/autoload'
    let g:clap#provider_alias = {'gfiles': 'git_files', 'hist:': 'command_history', 'hist/': 'search_history'}
    let g:clap_background_shadow_blend = 50
    let g:clap_disable_bottom_top = 0
    let g:clap_disable_matches_indicator = v:false
    let g:clap_disable_optional_async = v:false
    let g:clap_disable_run_rooter = v:false
    let g:clap_enable_background_shadow = v:true
    let g:clap_enable_debug = v:false
    let g:clap_enable_icon = 0
    let g:clap_forerunner_status_sign = {'done': '•', 'running': '!', 'using_cache': '*'}
    let g:clap_insert_mode_only = v:false
    let g:clap_multi_selection_warning_silent = 0
    let g:clap_no_matches_msg = 'NO MATCHES FOUND'
    let g:clap_open_action = {'ctrl-v': 'vsplit', 'ctrl-x': 'split', 'ctrl-t': 'tab split'}
    let g:clap_open_preview = 'always'
    let g:clap_popup_border = 'rounded'
    let g:clap_preview_direction = 'LR'
    let g:clap_preview_size = 5
    let g:clap_providers_relaunch_code = '@@'
    let g:clap_search_box_border_style = 'nil'
    let g:clap_search_box_border_symbols = {'nil': ['', ''], 'curve': ['', ''], 'arrow': ['', '']}
  Provider Variables:
                     []

To Reproduce
Steps to reproduce the behavior:

Create the minimal vimrc min.vim:

set nocompatible
set runtimepath^=/path/to/vim-clap
syntax on
filetype plugin indent on

Start (neo)vim with command: vim -u min.vim

Type :Clap

See that the input doesn't reach the preview

Expected behavior
the input fills the space between the spinner and the preview
Screenshots

I wrote @ in the buffer behind the clap window to demonstrate that the input doesn't fill the space completely

Yeah, it's a trade-off for displaying the matches indicator when your screen is not spacious. You can decrease the indicator winwidth as below, but I haven't come up with a proper approach.
diff --git a/autoload/clap.vim b/autoload/clap.vim
index b9a7a3c..cff9bd8 100644
--- a/autoload/clap.vim
+++ b/autoload/clap.vim
@@ -51,7 +51,7 @@ let g:clap_disable_optional_async = get(g:, 'clap_disable_optional_async', v:fal
 let g:clap_no_matches_msg = get(g:, 'clap_no_matches_msg', 'NO MATCHES FOUND')
 let g:__clap_no_matches_pattern = '^'.g:clap_no_matches_msg.'$'

-let g:__clap_indicator_winwidth = 18
+let g:__clap_indicator_winwidth = 5

 let s:default_symbols = {
       \ 'arrow' : ["\ue0b2", "\ue0b0"],


Mikrotik security issues

Hi @zahodi !
Just suggesting to use the most recent version, since this year they have 2 big security issues.
Nice project.

I approved that.  @zahodi may be using this in testing still, so not sure if this is the best path.  We may also want to simply default it, and parameterize the option to specify an environment variable.

@lucianosds @senorsmile yes I agree on both.


Addon doesn't work in SoD BWL/ZG patch

Describe the bug
It doesn't work. The minimap button is not there. "/gbb" is completely empty. "/gbb config" is also empty and doesn't work.
To Reproduce
Steps to reproduce the behavior:
1a. Look at minimap
2a. See no minimap button
1b. "/gbb"
2b. See it is empty
1c. "/gbb config"
2c. See it is empty
Expected behavior
To see the minimap button. To see the list of people looking for groups. To see the settings.
Screenshots

Minimap, default window, and settings window are visibly empty and/or not present while I am in LFG chat as seen in the bottom left chat.
Desktop (please complete the following information):

LFGBulletinBoard-v3.38-classic.zip

Additional context
Classic SoD, BWL/ZG patch. The screenshot might be a little deceiving because I am making the game look a little bit like Dragonflight.

For whatever reason it works now, some other addon might have caused it to break.

Glad to hear it because I couldn't repro it


Demo: do not use div for the default slot content

This is what the snippet looks like in case of empty radio-button:

We should check if the default slot is the only one.
If so, no need to create the <div> here:
https://github.com/web-padawan/api-viewer-element/blob/0669d66385c534e383fc9e368cefeca730e36cd8/src/lib/renderer.ts#L34
Instead, use document.createTextNode and then append it as a child.

Fixed by #36 and will be released later this week.


loggregator-fluentd doesn't read logs from docker containers

cf logs shows only API logs if docker is used on k8s cluster.
Here is what I found to be the cause:
$ kubectl -n scf log loggregator-fluentd-ggwpj loggregator-fluentd --tail=100 | grep scf_router | tail -n1
2019-07-14 14:55:46 +0000 [warn]: #0 [in_tail_container_logs] /var/log/containers/router-0_scf_router-215f3442d0d4ad6cf77e79619899434cc0a6fc7250e34018ca3a294a9637b559.log unreadable. It is excluded and would be examined next time.

root@loggregator-fluentd-ggwpj:~# stat $(readlink -m /var/log/containers/router-0_scf_router-215f3442d0d4ad6cf77e79619899434cc0a6fc7250e34018ca3a294a9637b559.log)
stat: cannot stat '/var/lib/docker/containers/215f3442d0d4ad6cf77e79619899434cc0a6fc7250e34018ca3a294a9637b559/215f3442d0d4ad6cf77e79619899434cc0a6fc7250e34018ca3a294a9637b559-json.log': No such file or directory

The following change mostly (with an exception for RTR logs) made it work for me (found here):
$ git diff helm/eirini/templates/daemonset-fluentd.yaml
diff --git a/helm/eirini/templates/daemonset-fluentd.yaml b/helm/eirini/templates/daemonset-fluentd.yaml
index f63477a..e899789 100644
--- a/helm/eirini/templates/daemonset-fluentd.yaml
+++ b/helm/eirini/templates/daemonset-fluentd.yaml
@@ -43,6 +43,9 @@ spec:
           mountPath: /var/data
         - name: varlog
           mountPath: /var/log
+        - name: varlibdockercontainers
+          mountPath: /var/lib/docker/containers
+          readOnly: true
         - name: config-volume
           mountPath: /fluentd/etc/
           readOnly: false
@@ -80,6 +83,9 @@ spec:
       - name: varlog
         hostPath:
           path: /var/log
+      - name: varlibdockercontainers
+        hostPath:
+          path: /var/lib/docker/containers
       - name: fluentd-conf
         configMap:
           name: fluentd-conf

There is still one concern though. I've noticed that loggregator-fluentd is trying to read logs from all containers on a particular node no matter if the containers have been deployed with Eirini or not. Is this a bug or Eirini should be using dedicated nodes?

Hi @giner - right now we're focusing on supporting containerd rather than dockerd, but we would happily accept a PR for docker support. We believe the logs are filtered to only containers in theeirini namespace here.
Additionally you may be interested in this extension project.
Thanks!

Hi @julz, they are filtered for output fluentd still reads all of them https://github.com/cloudfoundry-incubator/eirini-release/blob/7a1cf08/helm/eirini/templates/fluentd-configmap.yaml#L15. Should they be excluded from source?


restrictions annotations missing for /teams endpoint

The service doesn't support the following call in v1/beta today:

GET /teams

However, our current OpenAPI description is documenting this operation, leading clients to have an API surface for it, confusing customers.
To be clear, GET /teams/{id} is supported and POST /teams as well
We should add an annotation to the metadata XSL to this operation is not emitted anymore during the conversion process.

@baywet, the service support GET /teams in beta - https://learn.microsoft.com/en-us/graph/api/teams-list?view=graph-rest-beta&tabs=http. The restrictions annotations should only be applied to the v1.0 metadata.


Redpanda Kafka input error log

I setup an example Kafka to Kafka pipeline using docker compose to setup the Benthos containers and a Redpanda container for Kafka. I have been seeing the following error in the log, but the output topic is receiving the message so the Benthos pipeline seems to be working as intended. I don't see this error using the same pipeline and Kafka running locally, so I think it has something to do with Redpanda.
{"@timestamp":"2021-03-24T13:19:29Z","@service":"benthos","component":"benthos.input","level":"ERROR","message":"Kafka group message recv error: kafka: error while consuming output-testing/0: kafka: insufficient data to decode packet, more bytes expected"}
The pipeline does seem to be working as expected, so this error is mostly just confusing to see and not an issue with functionality.

Hey @nmbryant, I believe this is caused by the Sarama client library not ignoring some control messages coming from Redpanda. The fault is harmless and I believe they're working on coordinating with Sarama to get a fix out. I'll keep this open until we can verify the fix.
This might also be related to https://github.com/Shopify/sarama/issues/1888

@nmbryant  - although we were spec'ed correctly - we added a simple counter/translator to https://github.com/vectorizedio/redpanda/pull/1228 - so this should be gone with v21.4.15 (it is still a bug upstream) but you shouldn't see this in the logs.
@Jeffail feel free to tag me and i'll try to help next time w/ redpanda issues :) - always happy to help benthos.

Hi @Jeffail I've just ran into the same issue.
the data in the (redpanda) kafka topic looks completely normal and i can consume it fine via cli, however when i try consume from it using benthos i get the same error, however nothing is produced to the output:
{"@timestamp":"2021-11-18T08:58:55+01:00","@service":"benthos","component":"incoming","level":"ERROR","message":"Kafka group message recv error: kafka: error while consuming xxx/0: kafka: insufficient data to decode packet, more bytes expected"}

Here's the config I used to test it, which works fine for other topics:
http:
  address: <IP_ADDRESS>:4195
  read_timeout: 5s
  root_path: /benthos
  debug_endpoints: false

input:
  label: incoming
  kafka:
    addresses:
      - "some_broker:31572"
    tls:
      enabled: true
      root_cas_file: /path/to/redpanda/ca.crt
      client_certs:
        - cert_file: /path/to/redpanda/cluster.crt
          key_file: /path/to/redpanda/cluster.key
    sasl:
      mechanism: "SCRAM-SHA-256"
      user: "user"
      password: "password"
    topics: [ "some_topic" ]
    consumer_group: some_consumer_group
    client_id: some_client_id
    checkpoint_limit: 1

buffer:
  type: none
  none: {}

output:
  label: "output"
  stdout:
    codec: lines

The specific topic in question was produced via a meterialize sink which according to @senior7515 should work identically and is tested through integration tests on redpanda's side.
Any idea what might be going on here?
We're running
Benthos version: 3.58.0
Redpanda: v21.9.6

Hey @chjdev, that sounds like a more severe problem. Could you open a new issue for it? It sounds as though this is reproducible, it would be a massive help if you could put together a docker-compose example I can use.

hi, yep will do!

new issue with a docker-compose repro live here: https://github.com/Jeffail/benthos/issues/953


Add support for ZED-F9P RTK receiver

Includes updates to the device permission script and the README of the svea_sensors package.

Yep 👍


Minxing Fu GitHub handle looks wrong

I doubt there is a space there. Perhaps it's a typo?

@MinxingFu can you have a look?

@MinxingFu - you should fix this


webui seems to not resolve apiAPI URL correctly when hosted elsewhere

When using QmSDgpiHco5yXdyVTfhKxr3aiJ82ynz8V14QcGKicM3rVh/ version from https://lunet.link/webui apiAPI seems to resolve to <IP_ADDRESS>:5001 but with a latest release QmXc9raDM1M5G5fpBnVyQ71vR4gbnskwnB9iMEzBuLgvoZ it produces invalid URL.
I'm afraid I did not saved it but it was something like https:///dnsaddr/lunet.link/ or something strange like that.

I think this is https://github.com/ipfs-shipyard/ipfs-webui/issues/925 that we have a fix for ✨


Configure CI/CD for your application tutorial error

HI, there.
I follow your instruction for setting up CI to GHCR.yml file, then I got a error at build and push.
Any advice would be appreciated.
Error:
#11 exporting to image
#11 sha256:e8c613e07b0b7ff33893b694f7759a10d42e180f2b4dc349fb57dc6b71dcab00
#11 pushing layers 0.5s done
#11 ERROR: unexpected status: 403 Forbidden
------
 > exporting to image:
------
error: failed to solve: rpc error: code = Unknown desc = unexpected status: 403 Forbidden
Error: buildx call failed with: error: failed to solve: rpc error: code = Unknown desc = unexpected status: 403 Forbidden

Here is my yml file:
name: CI to GitHub container registry login

on:
  push:
    branches: [ main ]

jobs:

  build:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      -
        name: Set up Docker Buildx
        id: buildx
        uses: docker/setup-buildx-action@v1
      -
        name: Cache Docker layers
        uses: actions/cache@v2
        with:
          path: /tmp/.buildx-cache
          key: ${{ runner.os }}-buildx-${{ github.sha }}
          restore-keys: |
            ${{ runner.os }}-buildx-
      -
        if: github.event_name != 'pull_request'
        uses: docker/login-action@v1
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.ghcr_TOKEN }}
      -
        name: Build and push
        id: docker_build
        uses: docker/build-push-action@v2
        with:
          context: ./
          file: ./dockerfile
          builder: ${{ steps.buildx.outputs.name }}
          push: true
          tags: ghcr.io/${{ github.repository_owner }}/docker:latest
          cache-from: type=local,src=/tmp/.buildx-cache
          cache-to: type=local,dest=/tmp/.buildx-cache
      -
        name: Image digest
        run: echo ${{ steps.docker_build.outputs.digest }}

Hi all,
I fixed this issue, I think I did not setting the username and pwd properly.
Now everything is done!!


Feature/refactor

Hello @askn ,
I improve your code in more OOP style. Also I add Unit Test with spec. So tu ensure project works correctly you simpy need to run
$ crystal spec

I also deleted the Task..
$ ./fikri init

.. now you simply have to add/list task and the file will be automatically created.
I hope you'll enjoy my work. Don't hesitate if you see something wrong :)
Alex

Hello Alex,
I thank you for your time improving my code. I think you did a good job. But I'd rather prefer that you don't change the part that is reflected to the end user (the format that is printed on the screen). I'd like this to stay as it is.

Hello Aşkın,
I have no problem to change the output format but in the new version I do not use ID..
In my mind task name should be unique and there are no need to store anything more.
So to toggle a task you just have to:
$ ./fikri -t my task

... and the output will alway be as the first output from your screenshot. Something like this
$ ./fikri -l my task
    X a task not completed
    V a tasks completed

What do you think about?

Yes, I did understand you. But because of the task is too long, it would be difficult to use. Probably "id" could also be written inside of the file.

Dear Aşkın,
I added ID system on task. I think it should be alright now.

Thank you, it’s awesome. But I have found a little bug. If I add the same task, the id gets -1


Look at all the complaints below👇

Everyone is having the same problem, we paid for this app and the fact that it hasn't been updated is appalling.

this is for the mcpe blocklaucher immediate crashing problem

Zhuowei is working on it, he is very busy and has his own life to worry about as well. Be patient.


Add Korean resources

Translated by google machine translation
(Original strings are from Japanese into Korean)
Fix bug and revised by hands.

Hi @ziozzang  Thank you for your PR.
Could you please specify which Acceptance policy option, do you want to use??
SoftEther VPN Patch Acceptance Policy:
http://www.softether.org/5-download/src/9.patch


syslog.read() never returns on break

looks like 9.3.3 broke something in the syslog.read() command.
I can't ever get it to return, it just hangs.
I need this  because I don't want previous syslogs, just the syslog that is from the moment that I launch it.

any idea if you can fix this?

are you calling it via code or the command line?  All I do is call read on the underlying socket, so if it blocks so do I.  The command line tool just calls this in a loop - hence you should get all the syslog the device has available.  If you want to discard previous stuff you need to read it all and discard it.
you could try calling with a smaller read size (default is 1024) and see if that helps.
It appears to be working correctly on my device - so I'll need more info on whats going on to be able to 'fix' it

Calling it via code.  I'll check out with smaller read size.  I ended up converting all the output from syslog into a date time object, and compare with current time on my system, get rid of anything that is older than the current time the test started.


Add uh.edu domain: University of Houston.

Additional info:

the university official website URL: https://uh.edu/
a URL of a page on the official website where a long-term (>1 year) IT related course is offered by the university: https://hpedsi.uh.edu/education/training
a URL of a page or some other proof (.pdf or a screenshot are OK) showing that the university recognizes the domain which you are submitting as an official email domain for the enrolled students: https://uh.edu/infotech/services/accounts/email/alias/

Note: Two branch campuses, UH Downtown and UH Clear Lake, are already in the directory.

@rudazhang I am sorry, the domain uh.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Correctly flag JSX elements as being used for the purposes of module imports

Fixes bug #3674

Verified. this fixes the bug.

:+1:


Reversed order of check for RVM non-binary

If you provision once with a failure but past this step, then provision again, line 71 will fail. Reversing the order of the when clause succeeds because item.rc will not equal zero but install_rubies results will be empty and skipped because the first part of the and check fails so the second statement doesnt evaluate.

Thanks @eavonius. Merging it in.


Hitbox apply onHit bug

Swinging a weapon/tool near a mob uses up durability and hunger without hitting it.

Client side only. It happens because the client thinks you hit and the server doesn't. Once the client is updated, it returns to the proper state. This is most noticeable if this happens on the last durability point of a weapon, causing it to reappear.
Not enough effect on gameplay to worry about fixing right now since it's purely client side.

Wacky bug. Is the hunger lost clientside too?

Honestly i don't remember how hunger used when swinging works. If it only takes hunger to hit something, then yes that's client side only. If it takes hunger just to swing than you would've lost that anyways. Either way, there's no erroneous loss of hunger.

Hunger is only lost when hitting an mob, swinging does not consume hunger.


Configure pre-commit tool for this repo

Rules:

DO NOT commit to master. ever.
ABSOLUTELY NO force pushes allowed for public non-feature branches.
For every feature, create a new branch matching name feature/<issue-number>-<feature-name>.
Submit every feature by creating Pull Request @ github, after that wait for review, fix issues, repeat until approved. If needed rebase the branch on top of master and re-push force it.

[ ] I HAVE READ AND UNDERSTOOD THE RULES ABOVE

[ ] Install pre-commit locally as follows:

python3.8 -m pip install pre-commit --user
python3.8 -m pre_commit install

[ ] Create branch called feature/pre-commit-integration
[ ] Add .pre-commit-config.yaml config, containing the following hooks:

[ ] no-commit-to-branch
[ ] add-trailing-comma
[ ] remove-tabs
[ ] trailing-whitespace
[ ] check-merge-conflict
[ ] double-quote-string-fixer
[ ] requirements-txt-fixer
[ ] check-yaml
[ ] check-docstring-first
[ ] end-of-file-fixer
[ ] name-tests-test
[ ] check-ast
[ ] debug-statements
[ ] flake8
[ ] pydocstyle
[ ] pylint using "local" mode
[ ] mypy

[ ] Check repo using command pre-commit run --all-files, fix all issues and commit fixes as well
[ ] Create PR with this branch

@l1storez do this after #5 and after you read about branches in #4


Missing profiles?

https://commits.top/germany.html
Seems I do not exist there even if I have much more contributions.

Update script runs once a week - looks like you're there now 👍

Interesting, there are users with the same amount of followers and less contributions in the list, but mine doesn't show up. I saw myself in the list several months ago, but not any more :)


Getting functional server error

Description
Hi, I'm encountering an issue while attempting to use a functional server to upload files through an API. Specifically, when I run the server with the following command, I receive an error related to connection establishment. However, if I run the server without enabling the functional server, it works as expected.
Please help me to solve the issue.
Thank You
Command
 python generate.py --base_model=meta-llama/Meta-Llama-3.1-8B-Instruct  --score_model=None --langchain_mode='UserData' --user_path=user_path --use_auth_token=True --visible_visible_models=False --max_seq_len=8192 --max_max_new_tokens=4096 --max_new_tokens=4096 --min_new_tokens=256 --api_open=True --allow_api=True --max_quality=True  --function_server=True --function_server_workers=5 --multiple_workers_gunicorn=True --function_server_port=5002 --function_api_key=API_KEY

Issue Details
Traceback (most recent call last):
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/connection.py", line 196, in _new_conn
    sock = connection.create_connection(
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/connectionpool.py", line 789, in urlopen
    response = self._make_request(
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/connectionpool.py", line 495, in _make_request
    conn.request(
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/connection.py", line 398, in request
    self.endheaders()
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/http/client.py", line 1278, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/http/client.py", line 1038, in _send_output
    self.send(msg)
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/http/client.py", line 976, in send
    self.connect()
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/connection.py", line 236, in connect
    self.sock = self._new_conn()
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/connection.py", line 211, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7de388ea7010>: Failed to establish a new connection: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/requests/adapters.py", line 667, in send
    resp = conn.urlopen(
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/connectionpool.py", line 843, in urlopen
    retries = retries.increment(
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/urllib3/util/retry.py", line 519, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='<IP_ADDRESS>', port=5002): Max retries exceeded with url: /execute_function/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7de388ea7010>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/versha/Documents/narad050824_pmdemo_mobile_lake_apitest/weseecore/src/gpt_langchain.py", line 9383, in update_user_db
    return _update_user_db(file, db1s=db1s,
  File "/home/versha/Documents/narad050824_pmdemo_mobile_lake_apitest/weseecore/src/gpt_langchain.py", line 9664, in _update_user_db
    sources = call_function_server('<IP_ADDRESS>', function_server_port, 'path_to_docs', (file,), simple_kwargs,
  File "/home/versha/Documents/narad050824_pmdemo_mobile_lake_apitest/weseecore/src/function_client.py", line 50, in call_function_server
    execute_result = execute_function_on_server(host, port, function_name, args, kwargs, use_disk, use_pickle,
  File "/home/versha/Documents/narad050824_pmdemo_mobile_lake_apitest/weseecore/src/function_client.py", line 21, in execute_function_on_server
    response = requests.post(url, json=payload, headers=headers)
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
  File "/home/versha/miniconda3/envs/narad_050824_pmdemomobile_lake/lib/python3.10/site-packages/requests/adapters.py", line 700, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=5002): Max retries exceeded with url: /execute_function/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7de388ea7010>: Failed to establish a new connection: [Errno 111] Connection refused'))

That means the client side can't reach the function server.  You can check the start-up shows the 5002 port started, and you can look at the openai_logs/* function server related files to see if present
i.e. they may look like:
(h2ogpt) jon@pseudotensor:~/h2ogpt$ ls -alrt openai_logs/
total 224
-rw-------  1 jon jon     0 Oct 20 10:00 gunicorn_OpenAI_d9ffa2da-638d-4d78-a66b-2ddf28748f4a_stdout.log
-rw-------  1 jon jon     0 Oct 20 10:00 gunicorn_Function_c8db57d7-aa31-494f-b4a6-01cc810663ed_stdout.log
-rw-------  1 jon jon  1154 Oct 20 10:00 gunicorn_OpenAI_d9ffa2da-638d-4d78-a66b-2ddf28748f4a_stderr.log
-rw-------  1 jon jon  1154 Oct 20 10:00 gunicorn_Function_c8db57d7-aa31-494f-b4a6-01cc810663ed_stderr.log
-rw-------  1 jon jon   299 Oct 20 15:48 gunicorn_OpenAI_110a8b60-9f67-4045-ad93-4fa75b21ff44_stdout.log
-rw-------  1 jon jon 11486 Oct 20 15:48 gunicorn_Agent_f900440d-2f0f-4b81-a2b0-0b44dfd6231c_stdout.log
-rw-------  1 jon jon 21009 Oct 20 15:56 gunicorn_OpenAI_110a8b60-9f67-4045-ad93-4fa75b21ff44_stderr.log
-rw-------  1 jon jon 20392 Oct 20 15:56 gunicorn_Agent_f900440d-2f0f-4b81-a2b0-0b44dfd6231c_stderr.log
-rw-------  1 jon jon   167 Oct 20 15:58 gunicorn_OpenAI_2a853fe3-bc2b-4069-a3a0-7ab4f3346568_stdout.log
-rw-------  1 jon jon 11486 Oct 20 15:58 gunicorn_Agent_a3da0ca9-6eef-4f01-b5d6-0cff2d36c92c_stdout.log
-rw-------  1 jon jon 19283 Oct 20 16:00 gunicorn_OpenAI_2a853fe3-bc2b-4069-a3a0-7ab4f3346568_stderr.log
-rw-------  1 jon jon 20073 Oct 20 16:00 gunicorn_Agent_a3da0ca9-6eef-4f01-b5d6-0cff2d36c92c_stderr.log
-rw-------  1 jon jon     0 Oct 20 16:01 gunicorn_OpenAI_96b3c872-136c-45f8-a0f2-c9a228887872_stdout.log
-rw-------  1 jon jon     0 Oct 20 16:01 gunicorn_Agent_5e81accd-e122-4890-902f-dddccbcc6edb_stdout.log
drwx------  2 jon jon  4096 Oct 20 16:01 ./
-rw-------  1 jon jon 15287 Oct 20 16:02 gunicorn_OpenAI_96b3c872-136c-45f8-a0f2-c9a228887872_stderr.log
-rw-------  1 jon jon 15923 Oct 20 16:02 gunicorn_Agent_5e81accd-e122-4890-902f-dddccbcc6edb_stderr.log
drwxrwxr-x 83 jon jon 61440 Oct 23 12:51 ../
(h2ogpt) jon@pseudotensor:~/h2ogpt$

over multiple runs (new file each run).
e.g. this would be a bad startup:
(h2ogpt) jon@pseudotensor:~/h2ogpt$ cat openai_logs/gunicorn_Function_c8db57d7-aa31-494f-b4a6-01cc810663ed_stderr.log
[2024-10-20 10:00:37 -0700] [907130] [INFO] Starting gunicorn 23.0.0
[2024-10-20 10:00:37 -0700] [907130] [ERROR] Connection in use: ('<IP_ADDRESS>', 5002)
[2024-10-20 10:00:37 -0700] [907130] [ERROR] connection to ('<IP_ADDRESS>', 5002) failed: [Errno 98] Address already in use
[2024-10-20 10:00:38 -0700] [907130] [ERROR] Connection in use: ('<IP_ADDRESS>', 5002)
[2024-10-20 10:00:38 -0700] [907130] [ERROR] connection to ('<IP_ADDRESS>', 5002) failed: [Errno 98] Address already in use
[2024-10-20 10:00:39 -0700] [907130] [ERROR] Connection in use: ('<IP_ADDRESS>', 5002)
[2024-10-20 10:00:39 -0700] [907130] [ERROR] connection to ('<IP_ADDRESS>', 5002) failed: [Errno 98] Address already in use
[2024-10-20 10:00:40 -0700] [907130] [ERROR] Connection in use: ('<IP_ADDRESS>', 5002)
[2024-10-20 10:00:40 -0700] [907130] [ERROR] connection to ('<IP_ADDRESS>', 5002) failed: [Errno 98] Address already in use
[2024-10-20 10:00:41 -0700] [907130] [ERROR] Connection in use: ('<IP_ADDRESS>', 5002)
[2024-10-20 10:00:41 -0700] [907130] [ERROR] connection to ('<IP_ADDRESS>', 5002) failed: [Errno 98] Address already in use
[2024-10-20 10:00:42 -0700] [907130] [ERROR] Can't connect to ('<IP_ADDRESS>', 5002)
(h2ogpt) jon@pseudotensor:~/h2ogpt$

While a good output would be:
(h2ogpte) jon@pseudotensor:~/h2ogpte/docker_data/h2ogpt/docker_logs/h2ogpt_openai$ tail -10 gunicorn_Function_296f27f4-e7ae-4284-85e2-5fd7a741b25c_stdout.log
git_hash: cf74d576ecfca0e24cac27588b52a4701dd7cb1d
visible_models: ['meta-llama/Meta-Llama-3.1-8B-Instruct']
visible_vision_models: ['mistralai/Pixtral-12B-2409']
Command: /usr/bin/gunicorn -w 5 -k uvicorn.workers.UvicornWorker --timeout 60 -b <IP_ADDRESS>:5002 openai_server.function_server:app
Hash: cf74d576ecfca0e24cac27588b52a4701dd7cb1d
Prep: persist_directory=db_dir_UserData exists, using
Prep: persist_directory=db_dir_UserData exists, using
Prep: persist_directory=db_dir_UserData exists, using
Prep: persist_directory=db_dir_UserData exists, using
Prep: persist_directory=db_dir_UserData exists, using
(h2ogpte) jon@pseudotensor:~/h2ogpte/docker_data/h2ogpt/docker_logs/h2ogpt_openai$ tail -10 gunicorn_Function_296f27f4-e7ae-4284-85e2-5fd7a741b25c_stderr.log
[2024-10-23 22:37:58 +0000] [198] [INFO] Application startup complete.
[2024-10-23 22:37:58 +0000] [200] [INFO] Started server process [200]
[2024-10-23 22:37:58 +0000] [200] [INFO] Waiting for application startup.
[2024-10-23 22:37:58 +0000] [200] [INFO] Application startup complete.
[2024-10-23 22:37:58 +0000] [201] [INFO] Started server process [201]
[2024-10-23 22:37:58 +0000] [201] [INFO] Waiting for application startup.
[2024-10-23 22:37:58 +0000] [201] [INFO] Application startup complete.
[2024-10-23 22:37:58 +0000] [197] [INFO] Started server process [197]
[2024-10-23 22:37:58 +0000] [197] [INFO] Waiting for application startup.
[2024-10-23 22:37:58 +0000] [197] [INFO] Application startup complete.
(h2ogpte) jon@pseudotensor:~/h2ogpte/docker_data/h2ogpt/docker_logs/h2ogpt_openai$

to fix your trouble check this solution click
maybe this will solve your problem.


how to run server app

hi,
After install server app, I don't know how to run it.I try to run it from common line
I use "adb shell am startservice -n  com.litekite.server/.service.BankService", but I get this error
Error: Requires permission com.litekite.server.permission.BIND_BANK_SERVICE
btw, my phone is android 10
thank you very much!

Hi @marcoaros ,
The permission "com.litekite.server.permission.BIND_BANK_SERVICE" is a signature level permission and this service can only be started or bound with the application that is signed with the same keystore credentials.
Please install client app also to make a service connection. Internally, the service was started in ConnectorLib library.


Update ostree-ext

In particular, this gets us much improved SELinux handling.

OK well no one reviewed this after 3 full working days, which is a bit unfortunate. This ended up getting merged via https://github.com/containers/bootc/pull/816 anyways.


Question about authentication in version 3

Hi,
How is authentication supposed to work now? I was on the 1.0.2 gem and this code was working:
namespace :auth do
  desc 'Check if auth token is expired'
  task check_token: :environment do
    @refresh_token = true
    @access_token_file = ENV['ACCESS_TOKEN_FILE']
    if File.exist? @access_token_file
      json_web_token = YAML.load(File.read(@access_token_file))
      expires_at = json_web_token[:expires_at]
      if expires_at >= Time.now - 300
        puts 'Loading JSON Web Token from file'
        @api_client = json_web_token[:access_token]
        @refresh_token = false
      end
    end
  end

  desc 'Load Dotenv config and generate token'
  task get_token: :check_token do
    integration_key = ENV['INTEGRATION_KEY']
    private_key = ENV['RSA_PRIVATE_KEY_FILE']
    api_username = ENV['API_USERNAME']
    api_endpoint = ENV['API_ENDPOINT']
    auth_server = ENV['AUTH_SERVER_URL']
    @account_id = ENV['ACCOUNT_ID']
    if @refresh_token == true
      puts 'Generating new access token'
      configuration = DocuSign_eSign::Configuration.new
      configuration.host = api_endpoint
      @api_client = DocuSign_eSign::ApiClient.new configuration
      @api_client.configure_jwt_authorization_flow(private_key, auth_server, integration_key, api_username, 3600)
      json_web_token = Hash.autonew
      json_web_token[:access_token] = @api_client
      json_web_token[:expires_at ] = Time.now + 3600
      File.open(@access_token_file, 'w') { |file| file.write(json_web_token.to_yaml) }
    end
  end

But now it seems the configure_jwt_authorization_flow method has been replaced by request_jwt_user_token? But the method seems different and I don't understand what input it's  expecting for scope. Can I get an example to work of off please.

The eg-01-ruby-jwt should provide the example code but it hasn't been updated yet. I've filed DEVDOCS-1615
Re: use request_jwt_user_token? Yes, that's correct.
Meanwhile, here is my suggestion.
Notes:

Use the defaults for the scope and expires_in
It is better InfoSec to provide the private key as a string value, vs storing it on disk for the SDK to read. The string must include new line characters and the private key's header/trailer lines.

    # Request JWT User Token
    # @param [String] client_id DocuSign OAuth Client Id(AKA Integrator Key)
    # @param [String] user_id DocuSign user Id to be impersonated
    # @param [String] private_key_or_filename the RSA private key
    # @param [Number] expires_in number of seconds remaining before the JWT assertion is considered as invalid -- Use default
    # @param scopes The list of requested scopes.  Client applications may be scoped to a limited set of system access. -- use default
    # @return [OAuth::OAuthToken]
    def request_jwt_user_token(client_id, user_id, private_key_or_filename)


fix style inconsistencies on password reset pages

This fixes:

Button font didn't match login page on both the reset and change password pages.
'Go back to login page' text color was wrong on change password page.

Signed-off-by: Ross Dougherty<EMAIL_ADDRESS>

Backported into the v2.4 branch :+1:


KAFKA-5520: KIP-171 - Extend Consumer Group Reset Offset for Stream Application - Updated

KIP: https://cwiki.apache.org/confluence/display/KAFKA/KIP-171+-+Extend+Consumer+Group+Reset+Offset+for+Stream+Application
Merge changes from KIP-198
Ref: https://github.com/apache/kafka/pull/3831

FAILURE
No test results found.
--none--

FAILURE
No test results found.
--none--

FAILURE
No test results found.
--none--

FAILURE
No test results found.
--none--

FAILURE
No test results found.
--none--

FAILURE
No test results found.
--none--

FAILURE
8076 tests run, 5 skipped, 2 failed.
--none--

SUCCESS
8076 tests run, 5 skipped, 0 failed.
--none--

SUCCESS
8076 tests run, 5 skipped, 0 failed.
--none--

FAILURE
8076 tests run, 5 skipped, 2 failed.
--none--

FAILURE
7959 tests run, 5 skipped, 1 failed.
--none--

SUCCESS
8076 tests run, 5 skipped, 0 failed.
--none--

@jeqo We just merged a fix for the failing tests. Can you please rebase. thx.

FAILURE
7963 tests run, 5 skipped, 1 failed.
--none--

SUCCESS
8080 tests run, 5 skipped, 0 failed.
--none--

Thanks for the PR, looks good overall just one minor comment.
The maybeReset method is long; maybe we could put the code in if statements over 2 or 3 lines in separate methods for readability?

@bbejeck agree. I've fix it.
@guozhangwang I will give a try and check how it goes.
Thanks for your feedback!

@guozhangwang I've added StreamsResetterTest to unit-test seek and removeRecords functionality, and about integration tests, I have add methods to test it with SSL.
Let me know if there's anything missing to merge :)

@jeqo The unit tests of StreamsResetterTest lgtm. For the integration test though, my previous comment is that we do not need to add more under integration tests as they should be well covered. LMK.

@guozhangwang I've removed SSL integration test, and put integration tests in one class. how does it look now?

Thanks for the updates. Still wondering if we should share more code for the individual test methods. Do not insist on if, but might be worth. WDYT @guozhangwang ?

I looked at the StreamsResetterTest and I think it is well readable, while sharing common code may be less effective, so if you are referring to this test class I actually think it is good as is.

@mjsax we could go back to private methods once we move StreamsResetter to streams module (i.e. merge KIP-222), so it should be a temporary solution to unit-test.

I just looked into StreamsResetter. Wondering why the test passed without the boolean flag we just added back. Shouldn't we throw here and die if there is no intermediate topic to be deleted, and finally return EXIT_CODE_ERROR ?
    private void doDelete(final List<String> topicsToDelete,
                          final KafkaAdminClient adminClient) {
        boolean hasDeleteErrors = false;
        final DeleteTopicsResult deleteTopicsResult = adminClient.deleteTopics(topicsToDelete);
        final Map<String, KafkaFuture<Void>> results = deleteTopicsResult.values();

        for (final Map.Entry<String, KafkaFuture<Void>> entry : results.entrySet()) {
            try {
                entry.getValue().get(30, TimeUnit.SECONDS);
            } catch (Exception e) {
                System.err.println("ERROR: deleting topic " + entry.getKey());
                e.printStackTrace(System.err);
                hasDeleteErrors = true;
            }
        }
        if (hasDeleteErrors) {
            throw new RuntimeException("Encountered an error deleting one or more topics");
        }
    }

But doDelete is to delete internal topics, not intermediate ones. Intermediates are suppose to move offsets to the end with maybeResetInputAndSeekToEndIntermediateTopicOffsets

The reason that it does not fail is because in the resetter, we use a client to subscribe to all the topics, and then populate the intermediate topics:
client.subscribe(topicsToSubscribe);
            client.poll(1);

            final Set<TopicPartition> partitions = client.assignment();
            final Set<TopicPartition> inputTopicPartitions = new HashSet<>();
            final Set<TopicPartition> intermediateTopicPartitions = new HashSet<>();

            for (final TopicPartition p : partitions) {
                final String topic = p.topic();
                if (isInputTopic(topic)) {
                    inputTopicPartitions.add(p);
                } else if (isIntermediateTopic(topic)) {
                    intermediateTopicPartitions.add(p);
                } else {
                    System.err.println("Skipping invalid partition: " + p);
                }
            }

If the intermediate topic does not exist, then the intermediateTopicPartitions would be empty, and hence maybeSeekToEnd will be a no-op, so no exceptions will be thrown.

@jeqo You are right -- I did look at the wrong code. My bad. Makes sense that the test passed.
Did create https://issues.apache.org/jira/browse/KAFKA-6318 a follow up.

LGTM. Merged to trunk.
@jeqo Thanks for your contribution!


Framework requirements

Has Microsoft imposed any framework requirements upon the application under test to allow for operation with  either
Inspect or WinAppDriver?
Of particular concern is the project build configuration. In Visual Studio must the check box "Enable Application Framework" be checked (ie enable the application framework)?

After a bit of experimentation I have concluded that there are some framework requirements.
The testing application is vb.net based, so the observation my not be applicable for your development.
The project appears to need both of the following application configuration selections
(1) Enable Application framework
(2) Enable XP visual styles
The following distinction is observed
When  so configured Inspect.exe identifies a TreeNode as UIA_TreeItemControlTypeId (0xC368)
When not so configured Inspect.exe identifies a TreeNode as UIA_TreeControlTypeId (0xC367)
The behavior of WinAppDriver is consistent with the above distinctions
There is a bug to be found (or an operation restriction to be imposed)


Exception finding scroll element for emoji picker

We get this frontend exception in production:
Message:
Expected one element in jQuery set, 2 found

Stacktrace:
Error
   at e.error (https://zulipchat.com/static/webpack-bundles/ea3954ab8bbc630b7437.js:1:7539)
       = ./static/js/blueslip.js line 243 column 57
   at $.fn.expectOne (https://zulipchat.com/static/webpack-bundles/app.effe5e9f19d9637ed737.js:2:287714)
       = ./static/js/setup.js line 48 column 13
   at n.get_scroll_element (https://zulipchat.com/static/webpack-bundles/app.effe5e9f19d9637ed737.js:2:695969)
       = ./static/js/ui.js line 24 column 5
   at S (https://zulipchat.com/static/webpack-bundles/app.effe5e9f19d9637ed737.js:2:1719129)
       = ./static/js/emoji_picker.js line 311 column 13
   at Anonymous function (https://zulipchat.com/static/webpack-bundles/app.effe5e9f19d9637ed737.js:2:1725017)
       = ./static/js/emoji_picker.js line 720 column 9

The code that's failing is this:
            const $emoji_map = $(".emoji-popover-emoji-map");
            const start = ui.get_scroll_element($emoji_map).scrollTop();
            next_emoji.focus();
=>>>          if (ui.get_scroll_element($emoji_map).scrollTop() !== start) {

So the bug is most likely that somehow we have two copies of .emoji-popover-emoji-map in the DOM.  I'm not sure what might cause that, but one possibility is a bug that lets us open two emoji popovers at once (maybe a reactions one and a message editing or compose one)?

I can't reproduce this bug, no matter how many times I click on various widgets to launch the emoji_picker popover.
Obviously, when @timabbott says "one possibility is a bug that lets us open two emoji popovers at once", that seems like the most plausible theory.
I think we should get to the root of why it seems that two emoji pickers can be open simultaneously.  I opened #15447 to track that separately.
I am gonna down a slightly different route.  In theory we should be able to have an arbitrary number of pickers open, and the singleton architecture is overly rigid.  So I'm gonna fix a few places that do $(".emoji-popover-emoji-map") instead let their children pass in the object.  And some of those children will know from context which version to use.


do overrides do more than just main?

example:
overrides: {
    'jquery': {
        'dependencies': {
            'projectIwantJqueryToDependOn' : 'version'
        }
    }
}

What effect would you hope it to have? If you were to do that, wiredep would try to get information about bower_components/projectIwantJqueryToDependOn to find if it has a main file to inject as well as to determine the sorting order.

You can use this to override unwanted dependencies. For example I used the following snippet
"overrides": {
  "angularjs-color-picker": {
    "main": "angularjs-color-picker.js",
    "dependencies": {
      "tinycolor": "~1.1.0",
      "angular": "~1.3.0",
      "bootstrap": "~3.3.0"
    }
  }
}

to override the original dependency to angularjs.

@hzpz is spot on.