Rplidar messages are getting dropped and lidar range while visualising in gazebo is small

Please provide the following information:

OS:Ubuntu 20.04
ROS Distro:  Galactic
Built from source or installed: source
Package version: latest

Expected behaviour
On running
ros2 launch turtlebot4_ignition_bringup ignition.launch.py model:=lite rviz:=true slam:=sync
and moving the bot around slam map to be generated
Actual behaviour
 Message Filter dropping message: frame 'turtlebot4/rplidar_link/rplidar' at time 1.216 for reason 'discarding message because the queue is full'
Getting the above error and as a result obstacles are not detected
On visualizing lidar in gazebo below is the range covered

To Reproduce

Run  ros2 launch turtlebot4_ignition_bringup ignition.launch.py model:=lite rviz:=true slam:=sync
Try driving the bot https://turtlebot.github.io/turtlebot4-user-manual/tutorials/driving.html by following the manual
Slam map is not generated properly as obstacles are not detected

Logs for reference
[planner_server-4] [INFO] [1663570054.867082422] [global_costmap.global_costmap_rclcpp_node]: Message Filter dropping message: frame 'turtlebot4/rplidar_link/rplidar' at time 1.184 for reason 'the timestamp on the message is earlier than all the data in the transform cache' [sync_slam_toolbox_node-2] [INFO] [1663570054.902871461] [slam_toolbox]: Message Filter dropping message: frame 'turtlebot4/rplidar_link/rplidar' at time 1.216 for reason 'discarding message because the queue is full'

@roni-kreinin

We are running in quadro t1000 graphics card machine. Is there any minimum requirement on the same?
We are currently using ignition gazebo edifice version, could you please tell us which version you are using?

There aren't any specific minimum requirements but generally a PC with an i5 and dedicated GPU should work fine.
Also I am using Edifice as well. Fortress support will be coming with the Humble update.

We tried building from binary still facing the same issue. Can you please share your rplidar properties @roni-kreinin

I am using the default RPLIDAR description.
As for irobot_create_msgs, you will likely want to use the 1.2.4 tag, or the galactic branch. 2.0.0 and onwards is the Humble build, and the main branch also targets Humble.
Can you try running the simulation without SLAM and check in RVIZ that the lidar data looks correct?
i.e. ros2 launch turtlebot4_ignition_bringup ignition.launch.py model:=lite rviz:=true
If it does not look correct, do you have another PC you could test the simulation on? Or can you try to install the simulation on a VM?

@roni-kreinin We tried in 3 different systems one with dedicated graphics card and other 2 without but the issue persisted in all system. We also tried running via docker but it was the same case

Can you try running the standard turtlebot4 and see if you get the same issue?

@roni-kreinin yes we tried and the issue persisted

I have tested this again in a VM and still cannot reproduce your issue.

Can you detail the installation steps that you took?

Installation steps we followed while trying installation via binary

Installed ros2 galactic by following https://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html#additional-rmw-implementations-optional
Dev tools

sudo apt install -y \
python3-colcon-common-extensions \
python3-rosdep \
python3-vcstool

Installed edifice via

sudo apt-get update && sudo apt-get install wget
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update && sudo apt-get install ignition-edifice

Debian installation

sudo apt update
sudo apt install ros-galactic-turtlebot4-simulator ros-galactic-irobot-create-nodes

2 to 4 reference https://turtlebot.github.io/turtlebot4-user-manual/software/turtlebot4_packages.html#installation-3
@roni-kreinin for your reference

@roni-kreinin were you able to reproduce the issue? . After I changed the values to
  <gazebo reference="${name}_link">
    <xacro:ray_sensor sensor_name="${name}" gazebo="${gazebo}"
                  update_rate="62.0" visualize="1"
                  h_samples="640" h_res="1.0" h_min_angle="${-pi}" h_max_angle="${pi}"
                  r_min="0.164" r_max="12.0" r_res="0.01"  v_samples="16" v_res="1.0" v_min_angle="-0.001" v_max_angle="-0.001" >
                  <plugin name="dummy" filename="dummyfile"></plugin>
    </xacro:ray_sensor>
    <xacro:material_darkgray/>
  </gazebo>

in rplidar.urdf.xacro it is working fine as a 2d lidar

I tested this in a VM too and was not able to reproduce the issue there. The default vertical values are v_samples:=1 v_res:=1 v_min_angle:=0 v_max_angle:=0 so its strange that your change fixed it.

I tested turtlebot4 to build a map, and I also have this problem. I cannot get the activation data, and the laser line is not displayed on the ignition interface. Does this definitely require the GPU to obtain the data correctly, if the CPU cannot be used? @roni-kreinin

I installed turtlebot4 simulator on nuc, there is no GPU support, the installation is all right, but open ros2 launch turtlebot4_ignition_bringup ignition.launch.py model:=lite rviz:=true The default scan topic output data is 0, also on ingition There is no laser like the one in your picture. @roni-kreinin

@ncnynl Ignition Edifice only supports GPU rays and not CPU rays. As a result, a GPU is required to properly render the lidar and IR sensors. I am hoping that CPU rays will be supported in Ignition Fortress as we update to Humble/Fortress for TTB4.

@roni-kreinin  I found your previous reply, https://github.com/iRobotEducation/create3_sim/blob/main/irobot_create_common/irobot_create_description/urdf/create3.urdf.xacro#:~:text=<render_engine>ogre</render_engine% 3E
I found that if ogre2 is used in the model, both the camera and the radar can obtain data normally, and the radar data can be obtained even if the CPU is used

@ncnynl Are you able to get decent performance with ogre2? From my testing I would get significantly worse performance with the camera on ogre2, which is why I set it to ogre.

At present, we can't use ogre normally, only ogre2 can, but there is no obvious difference in performance. At present, the speed of simulation movement is relatively slow, is there any way to change the speed, or it will take time to complete a map or navigation It is relatively long. The speed is the same whether it is orge or ogre2. It may be related to the speed limit of turtlebot4 itself. I want to adjust it to 2 m/s under simulation, so that it will be more convenient to test.  @roni-kreinin

At present, I want to install turtlebot4_simulator on another nuc and virtual machine. I found that the same installation process, using orge2 will not work, and there will be a crash. @roni-kreinin
[ign gazebo-1] ign gazebo server: /var/lib/jenkins/workspace/ogre-2.1-debbuilder/repo/RenderSystems/GL3Plus/src/GLSL/OgreGLSLProgramManager.cpp:623: void Ogre::GLSLProgramManager::extractUniformsFromProgram(GLuint, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, const GpuConstantDefinitionMap*, Ogre::GLUniformReferenceList&, Ogre::GLAtomicCounterReferenceList&, Ogre::GLUniformBufferList&, Ogre::SharedParamsBufferMap&, Ogre::GLCounterBufferList&): Assertion `size_t (arraySize) == newGLUniformReference.mConstantDef->arraySize && "GL doesn't agree with our array size!"' failed.
[ign gazebo-1] Stack trace (most recent call last) in thread 11231:
[ign gazebo-1] #31   Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in
[ign gazebo-1] #30   Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddcb6c132, in clone
[ign gazebo-1] #29   Object "/lib/x86_64-linux-gnu/libpthread.so.0", at 0x7faddca30608, in
[ign gazebo-1] #28   Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7fadd88436b3, in
[ign gazebo-1] #27   Object "/usr/lib/x86_64-linux-gnu/ign-gazebo-5/plugins/libignition-gazebo-sensors-system.so", at 0x7fada84c9d87, in ignition::gazebo::v5::systems::SensorsPrivate::RenderThread()
[ign gazebo-1] #26   Object "/usr/lib/x86_64-linux-gnu/ign-gazebo-5/plugins/libignition-gazebo-sensors-system.so", at 0x7fada84c976e, in ignition::gazebo::v5::systems::SensorsPrivate::RunOnce()
[ign gazebo-1] #25   Object "/lib/x86_64-linux-gnu/libignition-sensors5.so.5", at 0x7fada8271c2e, in ignition::sensors::v5::Manager::RunOnce(std::chrono::duration<long, std::ratio<1l,<PHONE_NUMBER>l> > const&, bool)
[ign gazebo-1] #24   Object "/lib/x86_64-linux-gnu/libignition-sensors5.so.5", at 0x7fada8286ebd, in ignition::sensors::v5::Sensor::Update(std::chrono::duration<long, std::ratio<1l,<PHONE_NUMBER>l> > const&, bool)
[ign gazebo-1] #23   Object "/usr/lib/x86_64-linux-gnu/libignition-sensors5-rgbd_camera.so", at 0x7fad29b2cc05, in ignition::sensors::v5::RgbdCameraSensor::Update(std::chrono::duration<long, std::ratio<1l,<PHONE_NUMBER>l> > const&)
[ign gazebo-1] #22   Object "/lib/x86_64-linux-gnu/libignition-sensors5-rendering.so.5", at 0x7fada82b0845, in ignition::sensors::v5::RenderingSensor::Render()
[ign gazebo-1] #21   Object "/usr/lib/x86_64-linux-gnu/ign-rendering-5/engine-plugins/libignition-rendering-ogre2.so", at 0x7fad876af8ff, in ignition::rendering::v5::Ogre2DepthCamera::Render()
[ign gazebo-1] #20   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8620d74b, in Ogre::Root::renderOneFrame()
[ign gazebo-1] #19   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8620d5d8, in Ogre::Root::_updateAllRenderTargets()
[ign gazebo-1] #18   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8631c6ad, in Ogre::CompositorManager2::_updateImplementation(Ogre::SceneManagerEnumerator&, Ogre::HlmsManager*)
[ign gazebo-1] #17   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad863376e3, in Ogre::CompositorWorkspace::_update()
[ign gazebo-1] #16   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8632221e, in Ogre::CompositorNode::_update(Ogre::Camera const*, Ogre::SceneManager*)
[ign gazebo-1] #15   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8634a9c7, in Ogre::CompositorPassScene::execute(Ogre::Camera const*)
[ign gazebo-1] #14   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad861ed57e, in Ogre::RenderTarget::_updateViewportRenderPhase02(Ogre::Viewport*, Ogre::Camera*, Ogre::Camera const*, unsigned char, unsigned char, bool)
[ign gazebo-1] #13   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad860371e9, in Ogre::Camera::_renderScenePhase02(Ogre::Camera const*, Ogre::Viewport*, unsigned char, unsigned char, bool)
[ign gazebo-1] #12   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad8621b4ae, in Ogre::SceneManager::_renderPhase02(Ogre::Camera*, Ogre::Camera const*, Ogre::Viewport*, unsigned char, unsigned char, bool)
[ign gazebo-1] #11   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad861d3848, in Ogre::RenderQueue::render(Ogre::RenderSystem*, unsigned char, unsigned char, bool, bool)
[ign gazebo-1] #10   Object "/lib/x86_64-linux-gnu/libOgreMain.so.2.1.0", at 0x7fad861d13d5, in Ogre::RenderQueue::renderGL3(bool, bool, Ogre::HlmsCache*, Ogre::RenderQueue::RenderQueueGroup const&, Ogre::IndirectBufferPacked*, unsigned char*, unsigned char*)
[ign gazebo-1] #9    Object "/lib/x86_64-linux-gnu/libOgreHlmsPbs.so.2.1.0", at 0x7fada80c5f92, in Ogre::HlmsPbs::createShaderCacheEntry(unsigned int, Ogre::HlmsCache const&, unsigned int, Ogre::QueuedRenderable const&)
[ign gazebo-1] #8    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad8466f17c, in Ogre::GL3PlusRenderSystem::_setPipelineStateObject(Ogre::HlmsPso const*)
[ign gazebo-1] #7    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad84628cb0, in Ogre::GLSLMonolithicProgramManager::getActiveMonolithicProgram()
[ign gazebo-1] #6    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad84626e3f, in Ogre::GLSLMonolithicProgram::activate()
[ign gazebo-1] #5    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad84626da8, in Ogre::GLSLMonolithicProgram::buildGLUniformReferences()
[ign gazebo-1] #4    Object "/usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so", at 0x7fad846326d9, in Ogre::GLSLProgramManager::extractUniformsFromProgram(unsigned int, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Ogre::GpuConstantDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Ogre::GpuConstantDefinition>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*, std::vector<Ogre::GLUniformReference, Ogre::STLAllocator<Ogre::GLUniformReference, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, std::vector<Ogre::GLAtomicCounterReference, Ogre::STLAllocator<Ogre::GLAtomicCounterReference, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, std::vector<Ogre::v1::HardwareUniformBufferSharedPtr, Ogre::STLAllocator<Ogre::v1::HardwareUniformBufferSharedPtr, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, std::map<Ogre::SharedPtr<Ogre::GpuSharedParameters>, Ogre::v1::HardwareUniformBufferSharedPtr, std::less<Ogre::SharedPtr<Ogre::GpuSharedParameters> >, Ogre::STLAllocator<std::pair<Ogre::SharedPtr<Ogre::GpuSharedParameters> const, Ogre::v1::HardwareUniformBufferSharedPtr>, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, std::vector<Ogre::v1::HardwareCounterBufferSharedPtr, Ogre::STLAllocator<Ogre::v1::HardwareCounterBufferSharedPtr, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&)
[ign gazebo-1] #3    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca80fd5, in __assert_fail
[ign gazebo-1] #2    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca6f728, in
[ign gazebo-1] #1    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca6f858, in abort
[ign gazebo-1] #0    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca9000b, in gsignal
[ign gazebo-1] Aborted (Signal sent by tkill() 11153 1000)
[ign gazebo-1] Stack trace (most recent call last):
[ign gazebo-1] #19   Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in
[ign gazebo-1] #18   Object "ign gazebo gui", at 0x55a2da7231cd, in _start
[ign gazebo-1] #17   Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca71082, in __libc_start_main
[ign gazebo-1] #16   Object "ign gazebo gui", at 0x55a2da72317e, in
[ign gazebo-1] #15   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddcced45d, in ruby_run_node
[ign gazebo-1] #14   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddcce85f0, in
[ign gazebo-1] #13   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce57cf1, in rb_vm_exec
[ign gazebo-1] #12   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce515e0, in
[ign gazebo-1] #11   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce40805, in
[ign gazebo-1] #10   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce5a2da, in
[ign gazebo-1] #9    Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddce4d4b4, in
[ign gazebo-1] #8    Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddcdab3c7, in
[ign gazebo-1] #7    Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7faddcced405, in ruby_stop
[ign gazebo-1] #6    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca93a5f, in exit
[ign gazebo-1] #5    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7faddca938a6, in
[ign gazebo-1] #4    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd59b14cc, in
[ign gazebo-1] #3    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd59b12b1, in
[ign gazebo-1] #2    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd59e2ddc, in QQmlPropertyCache::~QQmlPropertyCache()
[ign gazebo-1] #1    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd59e28e8, in QQmlPropertyCache::~QQmlPropertyCache()
[ign gazebo-1] #0    Object "/lib/x86_64-linux-gnu/libQt5Qml.so.5", at 0x7fadd57bae30, in
[ign gazebo-1] Segmentation fault (Address not mapped to object [0x7fad909c7460])
[INFO] [ign gazebo-1]: process has finished cleanly [pid 10701]

This issue is being closed due to inactivity. If you are still experiencing the issue, feel free to reopen this ticket when you are ready to continue the troubleshooting process.

@roni-kreinin I found your previous reply, https://github.com/iRobotEducation/create3_sim/blob/main/irobot_create_common/irobot_create_description/urdf/create3.urdf.xacro#:~:text=<render_engine>ogre</render_engine% 3E I found that if ogre2 is used in the model, both the camera and the radar can obtain data normally, and the radar data can be obtained even if the CPU is used
The effect is like this tutorial I wrote https://www.ncnynl.com/archives/202210/5587.html

@ncnynl thank you for your solution. I tried it as a last ditch effort and somehow worked to fix it. However, like @roni-kreinin said it is visibly affecting the performance of my simulation

@HyydenJakcz if you have the freedom to, try upgrading to Humble, there have been a number of improvements made for the Humble version of the packages.

My setup at the moment is already using Humble. However, I tried what @ncnynl mentioned as a last-ditch effort when I saw that it was not really distro-dependent.

So the solution is to use Ogre2? What if I'm on a Raspberry Pi? Its GPU doesn't support OpenGL3.3 and Ogre2 demands it...

我找到了你之前的回复，https://github.com/iRobotEducation/create3_sim/blob/main/irobot_create_common/irobot_create_description/urdf/create3.urdf.xacro#:~:text=<render_engine>ogre</render_engine% 3E 我发现如果模型中使用了 ogre2，摄像头和雷达都可以正常获取数据，即使使用 CPU 也可以获取雷达数据
效果就像我写的这个教程 https://www.ncnynl.com/archives/202210/5587.html

我找到了你之前的回复，https://github.com/iRobotEducation/create3_sim/blob/main/irobot_create_common/irobot_create_description/urdf/create3.urdf.xacro#:~:text=<render_engine>ogre</render_engine% 3E 我发现如果模型中使用了 ogre2，摄像头和雷达都可以正常获取数据，即使使用 CPU 也可以获取雷达数据
效果就像我写的这个教程 https://www.ncnynl.com/archives/202210/5587.html

ogre不是默认使用GPU吗，我电脑上是有GPU的，但是收不到雷达数据。使用ogre2后，使用cpu运算，能收到雷达数据。想问一下ogre是不是不支持在仿真中使用GPU，只能在真机上使用GPU？


IsDirty flag in the validation sample's ModelBase

I believe the "IsDirty" property needs to roll up.  So, instead of simply saying "public bool IsDirty { get; }" (line 79), I believe the code should look something like "public bool IsDirty => Properties.Any(p => p.Value.IsDirty);"
I tried to upload this change but seem to be forbidden from pushing changes.  Of course, it's quite possible that I simply don't know Git well enough.
Brad.

Submit a PR from your fork

Yep.


support of others languages like Danish

Hi,
Great Alarm panel, but is there a chance for getting other language.
My req is Danish, because i am from Denmark.
If you need help, i will be a honour to help with input for Danish
Best regards  Kim

We already support Dutch, its for the Netherlands.


Bug: Support filename which contains space characters

Reproducer:
$ slide2mp4.sh ./Value\ of\ subscription\ -\ RHEL.pdf ssml.txt lexicon.pls output.mp4
/home/kankun/bin/slide2mp4.sh: line 54: [: too many arguments
/home/kankun/bin/slide2mp4.sh: line 56: [: too many arguments
/home/kankun/bin/slide2mp4.sh: line 69: check_./Value.txt: No such file or directory
Because of my local patches, line numbers may be different.

I've applied the following patch to slide2mp4.sh.
https://github.com/h-kojima/slide2mp4/commit/9afcf3f07b01706b2184662afd4128dd12c21c03
Please try to see if slide2mp4.sh works.

Thank you!


can support https://gitee.com/？

can support in china

Before a new provider can be integrated into Drone it got to be implemented within https://github.com/drone/go-scm and https://github.com/drone/go-login, but beside that it's questionable if an integration within the Drone core could be properly handled as even the Swagger documentation is only available in chinese.


Grapher - split datasets into datasets and tables

Split tables datasets into two tables datasets and tables that link to variables.
Using Tables doesn't get us any immediate value, so it's likely a low priority at the moment.
There's a branch with implementation in grapher.

@Marigold same as before, can you spell this out a bit more please? Thank you!

Before this is merged I think we should schedule some work on the admin as well - i.e. where we currently display "Datasets" in the admin UI we should probably show an overview of the tables and then for one table show the individual variables.


Overhaul job logging

Closes: #2331
What's Changed

Removed bespoke logging methods on BaseJob and extend celery task loggers to log to Nautobot JobLogEntry database entries

Currently logs all message levels to the database, setting the --loglevel setting when starting the worker with nautobot-server celery worker will only filter the log messages output to the console on the worker
Jobs may either use self.logger or retrieve the logger from celery.utils.log.get_task_logger(__name__), they should be identical

Changed logging levels from previous custom levels: default, info, success, warning, failure to python default logging levels: debug, info, warning, error and critical

Migrated success and default to info and failure to error

Extend celery stdout/stderr redirect logging to also log to Nautobot JobLogEntry database entries if CELERY_WORKER_REDIRECT_STDOUTS is enabled (enabled by default)

STDOUT and STDERR log messages honor the CELERY_WORKER_REDIRECT_STDOUTS_LEVEL setting, which defaults to outputting these messages as level warning

Updated runjob management command and JobResult.enqueue_job to properly setup logging when running synchronously on the nautobot server as the nautobot server does not trigger the celery signals that set up logging on the workers
Removed active_test property from BaseJob class. Jobs may specify the grouping they would like to use in their log messages by passing it in the extra kwarg when logging their message. If no grouping is provided, the name of the method that logged the message will be used.
Removed failed property from BaseJob class. Celery tracks the state of the job now.

TODO

[ ] Explanation of Change(s)
[ ] Added change log fragment(s) (for more information see the documentation)
[ ] Attached Screenshots, Payload Example
[ ] Unit, Integration Tests
[ ] Documentation Updates (when adding/changing features)
[ ] Example Plugin Updates (when adding/changing features)
[ ] Outline Remaining Work, Constraints from Design

Still needs some more migration docs for job authors but marking as ready for review to review the implementation


For those who wants to use a http proxy or socks proxy

Just adding capabilities to the webdriver rather than using the AddProxy method
like this
caps := selenium.Capabilities{
	"browserName": "chrome",
}
caps.AddChrome(chrome.Capabilities{
	Prefs: map[string]interface{}{"profile.default_content_setting_values.notifications": 2},
	Args: []string{
		"--window-size=1920,1080",
		"--headless",
		"--no-sandbox",
		fmt.Sprintf("--proxy-server=%s", viper.GetString("selenium.proxy_url")),   #--proxy-server=http://<IP_ADDRESS>:1234
	},
})

To the author:
im graceful for you creating this amazing package, but if you can not keep it active, just make it archieve or involve more people to work together, rather than leaving this massiv issues down here.

How to use http proxy with auth

The trick for Firefox and socks proxy:
caps.AddFirefox(firefox.Capabilities{
		Prefs: map[string]interface{}{"network.proxy.socks": "localhost", "network.proxy.type": 1, "network.proxy.socks_port": 9150, "network.proxy.socks_version": 5},
	})

Of course you need to change localhost to preferred host and socks_port to your port. The configuration above is for using TOR proxy.


New Input System

This contains input changes and #656
New Input Backend Overview
There's 2 main things this system attempts to solve:

Detaching the main input polling (& window) loop from places that actually check for input.
Adding layers that can consume certain input events so they are ignore by the layers below them

Window changes
Activations of (GFX.MainWindow) now run the main input loop, you can still use it as previously but to get the full separation you should run MainWindow without any Content parameter, this will cause it to no longer create a built-in renderer & graphics context. Alternatively you could have Contents handle input and have a separate renderer by passing the :DetachRenderer true parameter.
A separate renderer can be created and attached to the window like below:
(GFX.MainWindow
  :Title "Rare"
  :Width 1280
  :Height 720) = .main-window

 (GFX.Renderer
   :Window .main-window
   :IgnoreCompilationErrors true ; This param was previously on MainWindow
   :Contents (-> ; GFX code here
   ))

Window size changes
Specified initial window sizes are now display scaling aware, so a size of 1280x720 will approximately take up the same amount of screen space regardless of the amount of pixels
Detached Input
To address the input layer issue, a new shard has been added: Inputs.Detached
It can be used anywhere & at any frequency independently from the input loop. The Name parameter is used for debug purposes and the Priority parameter controls in which order the input events are handled.
The consumption of input events are currently controlled internally by the InputContext's (each detached input has it's own) ConsumeFlags:
struct ConsumeFlags {
  bool wantsPointerInput{};
  bool wantsKeyboardInput{};
  bool requestFocus{};
};

Various shards such as the Camera/UI/Gizmos set these flags based on the last inputs it received. If various detached inputs run at different frequencies this might cause some delays but will generally not cause any issues and has been shown to work well currently for rare.
Example:
; Layer 0, will handle any input last
(Inputs.Detached
   .main-window
   :Name "Game"
   :Priority 0
   :Contents (->
     (Inputs.IsKeyDown "w")
     ...))

; Layer1, UI layer, any input consumed by the UI will not be sent to the layers below it.
(Inputs.Detached
   .main-window
   :Name "UI"
   :Priority 1
   :Contents (->
     (UI (->... )))

Feel free to leave any comments/feedback.

TODO: Test on iOS

Merged through guus/picking


ACM-12100 Add kubevirt detection for imported hosted clusters

https://issues.redhat.com/browse/ACM-12100

Improve efficiency by removing unnecessary use of useAllClusters
Refactor cluster mapping code functions to mostly use destructured object params

Before

After

/cc @jeswanke

/cc @Randy424

/retest

/test unit-tests-sonarcloud

/retest

/retest


MWPW-155065 PartnerCards fallback for invalid thumbnail images

syncs changes from dme partners PR at https://github.com/adobecom/dme-partners/pull/28
LINKS:
Before:

https://stage--dx-partners--adobecom.hlx.page/technologypartners/drafts/dragana/knowledge-overview
https://stage--dx-partners--adobecom.hlx.page/solutionpartners/drafts/dragana/partner-news

After:

https://mwpw-155065-invalid-thumbnail-fallback--dx-partners--adobecom.hlx.page/technologypartners/drafts/dragana/knowledge-overview
https://mwpw-155065-invalid-thumbnail-fallback--dx-partners--adobecom.hlx.page/solutionpartners/drafts/dragana/partner-news

Codecov Report
Attention: Patch coverage is 95.45455% with 1 line in your changes missing coverage. Please review.

Project coverage is 84.18%. Comparing base (af52e4d) to head (9701383).

Files
Patch %
Lines

eds/components/NewsCard.js
95.45%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##            stage      #48      +/-   ##
==========================================
+ Coverage   84.09%   84.18%   +0.09%
==========================================
  Files          10       10
  Lines        2565     2586      +21
==========================================
+ Hits         2157     2177      +20
- Misses        408      409       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


FR: ability to disable embeddings

Hi,
I'd like to use OpenAI for ask and suggest but am not comfortable sending my whole shell history to them. There's a non zero chance that I leaked a secret at some point in my history and sending it remotely is not okay with me.
Hence, I think it's reasonnable to add an arg to specify which provider to use for embeddings.

Hi @thiswillbeyourgithub.
This is great feedback.
I prefer to be safe than sorry, so I think I will go ahead and by default disable embeddings if the provider is non-local LLM unless explicitly configured by the user.

Resolved in 0.0.5


Pale colors only in exports but fine in viewer

Hi Rob,
Did you ever experience different colors when exporting?
Here I got
Left: rendered mp4, open in Quicktime (same is in Quicklook)
Middle: rendered frame images, open in Quicklook
Right: Coldtype Viewer

Color is hsl(0.975, 0.99, 0.6), but I see the same happening with other colors.
rendering is the usual release = animation.export("h264", loops=1)
When working with the clips in DaVinci Resolve, their colors look bright as in the viewer, and in the export they become a little pale again.
Maybe there’s a setting I am missing? Did you ever see something like this happening?

I wish I knew! Getting exact colors has always been a mystery to me, and is part of the reason I usually finish my animations in a professional video editor (I've been using Resolve these days, which is known for its color capabilities). That is, I import the exported frames into Resolve as an image sequence, then do any final color manipulation there — so in this case you could re-boost the contrast and even rotate the hue, that kind of thing.
All that said, I'm sure there is some way to get better colors out of both the skia renderer and the ffmpeg mp4 conversion process, it's just a dark art I've never been able to understand.

But that’s already great to know that you see the same.
In DaVinci the colors look even great when I import and use the videos instead of the single frames. The export gets a bit pale again, but not that much. I’ll keep an eye on it and see if I can find any hints. As a workaround I also thought about color grading in DaVinci, but for now the result was fair enough, had a little retro touch that I didn’t mind :D
Thanks so much for your time and thoughts on this, Rob!

Maybe this could be related in some way? Could it be that the preview and the render use different color spaces? sRGB vs RGB or such a thing?

I managed to get an mp4 with way more accurate colors with this ffmpeg command (directly from terminal (without Coldtype) on a folder of Coldtype generated PNGs:
ffmpeg -framerate 30 -pattern_type glob -i '*.png' -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2,colormatrix=bt601:bt709,format=yuv420p" -c:v libx264 out.mp4

Maybe you could play around with that mouthful a bit and find some useful pieces that can be added to Coldtype.
The visual quality is a little different from the Coldtype mp4s (looks more artificially sharpened).

So I ended up using this as a custom release funtion:
def release(passes):
    from coldtype.osutil import show_in_finder
    from subprocess import run

    animations = set([p.render for p in passes])

    for a in animations:
        root = a.pass_path(f"%4d.{a.fmt}").parent.parent
        mp4 = root / (a.name + ".mp4")
        frames = str(root / a.name / '*.png')
        run([
            "ffmpeg",
            "-y", # overwrite existing files
            "-loglevel", "16", # 'error, 16' Show all errors
            "-framerate", str(a.timeline.fps),
            "-pattern_type", "glob",
            "-i", frames,
            "-vf", "scale=trunc(iw/2)*2:trunc(ih/2)*2",
            "-vf", "colormatrix=bt601:bt709",
            "-pix_fmt", "yuv420p", # pixel format
            "-c:v", "libx264",
            # "-crf", "18", # Not required for this custom wrapper. almost doubles the file size with no visual difference
            mp4
            ])
        print("\n")

        show_in_finder(mp4.parent)

It is based on your custom gifsky wrapper, you showed me, but instead using this ffmpeg command.

Here is an example:
top = Coldtype Viewer
middle = this custom renderer
bottom = default Coltype ffmpeg render (h264)

While the custom one is still not perfectly bright, it is definitely closer to the targeted color, and when used on my website it visually blends quite well into my color scheme of the site.

all looks good to me! I do wish I had a better answer to the color issue, though I think the place to "fix" it would be the PNG export, not the mp4 command, so I don't think it'd make sense to incorporate the colormatrix changes in Coldtype directly, at least not until the png color space issue is fixed (though I have no idea how to fix that). All in all, I tend to think of the colors that come out of Coldtype as a starting point for my own work, and I often end up tweaking them in another app before creating any final assets. Definitely room for improvement, and great to have your solution here as a reference for others!

Maybe I forgot to mention it, but the colors of the PNGs are perfectly fine.

All in all, I tend to think of the colors that come out of Coldtype as a starting point for my own work, and I often end up tweaking them in another app before creating any final assets

Tweaking the colors afterwards is not such a nice option for me. First, it is against one of my main benefits of Coldtype: automated generation of images/animations. Secondly, it is not only cumbersome to import images into another app, and especially get the colors right to the value there. I mean, if I got a pale green, how can I get that back to exactly the one I intended with tweaking color filters?
Anyway, This custom method works better for me, and I might try if I can get it even better.

though I think the place to "fix" it would be the PNG

Hm, I really think ffmpeg and its settings are to blame here, as the PNGs are perfect, and also my different settings show different results.

great to have your solution here as a reference for others!

Yes, anyone, be my guest :)


Please remove automatically moving concept notes from 'need screening' to 'internal review'

Please do not work on this issue until #18 has been completed.
Currently concept notes are automatically moved from need screening to internal review when one reviewer is assigned. Please remove this automation.
Priority

Low priority (annoying, would be nice to not see)

Affected roles

Staff

Ideal deadline
January 2022

This is now on test for testing.

I tested this submission https://test-apply.hypha.app/apply/submissions/482/, but it moved automatically after one review
Does this only apply to NEW submissions?

Was this issue not about moving after assigning staff to submissions?

I have updated the PR to stop transitions after reviews as well as after assignments now. It all on test now as well (in a few minuts after I write this).

Tack! Works like a charm 💯


SWARM-1047 - Allow injectability of complex @Configurable object trees

Motivation
Things like keycloak security constraints are hard to inject piecemeal.
Modifications
Allow to inject a Map or List, and get an object-shaped tree of collections
and scalars.
Result
More flexibility in injecting configurables beyond single scalars.

[X] Have you followed the guidelines in our Contributing document?
[X] Have you created a JIRA and used it in the commit message?
[X] Have you checked to ensure there aren't other open Pull Requests for the same issue?
[X] Have you built the project locally prior to submission with mvn clean install?

retest this please


Make a copy of "live" view on Gradle tasks in Protoc plugin before iterating through them

Currently the version updates of Spine dependencies aren't possible. With the updated versions of Gradle plugins something will change. In particular, the way Protoc plugin attempts to modify a list of Gradle tasks while iterating through the same list.
So basically instead of inserting an element into a collection being traversed, this PR changes the way we treat a collection. And before iterating through tasks, we create a copy of the Gradle task collection and use it for iteration.

@dmdashenkov PTAL.


Run impls in last modified desc order

For faster failing feedback loop from Travis.

Last modified won't work on Travis, because that is always clone time. Must be last git modified.


Changed url from 9fans to github.

Changed import url from 9fans.net/go to github.com/9fans/go.

+1

the use of 9fans.net import path (a.k.a "vanity import path") is deliberate.


Error installing openl3 on Win64 with Python 3.10

When installing openl3 with pip I get the following error:
wheel.vendored.packaging._tokenizer.ParserSyntaxError: Expected end or semicolon (after version specifier)
  scikit-image>=0.14.3librosa>=0.7.2

'

Currently, only Python 3.6, 3.7, and 3.8 are supported. We'll have to do some updates at some point to deal with the new PyPI packaging conventions.

What are the known issues with Python 3.10 support?
I might be interested in trying to address them, as we are transitioning from Python 3.8 to 3.10

I am already stuck in installation. So I can't tell you whats happening later.

Oh whoops also this specific issue is due to a typo in setup.py. The latest version should address this.

What are the known issues with Python 3.10 support?
I might be interested in trying to address them, as we are transitioning from Python 3.8 to 3.10

The issue that I've seen people facing seem to be a difference in how PyPI packaging metadata is defined. I haven't caught up yet with whatever changes they may have made yet.

I am using Python version 3.12 and encountered problems with the installation.


pip update --outdated shouldn't take into account version restrictions in the Pipfile

Is your feature request related to a problem? Please describe.
I don't have a way to know which packages I'm using that have an update outside the version restriction in the Pipfile. I can do pip list --outdated, but that lists every package in the enviroment, instead of only the ones in the Pipfile.
Describe the solution you'd like
I think pipenv update --outdated should show every package in the Pipfile with an update. However it should be indicated which ones are in the version restrictions of the Pipfile.
For example, Composer color codes it depending on semver https://getcomposer.org/doc/03-cli.md#outdated

I’m not entirely sure I understand what you’re asking. Can you attach a Pipfile and illustrate what you want with its output?

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[dev-packages]

[packages]
six = "==1.10.*"
rules = "==1.2.*"
requests = "==2.18.*"

[requires]
python_version = "3.6"

If you run pip list --outdated you get this:
Package  Version Latest Type
-------- ------- ------ -----
idna     2.6     2.7    wheel
requests 2.18.4  2.19.1 wheel
rules    1.2.1   1.3    sdist
six      1.10.0  1.11.0 wheel
urllib3  1.22    1.23   wheel

However if you run pipenv update --outdated you get nothing. If I change the version restrictions to this:
[packages]
six = "==1.10.*"
rules = "==1.3.*"
requests = "==2.19.*"

Then the result of pipenv update --outdated is
Package 'rules' out–of–date: '==1.2.1' installed, '==1.3' available.
Package 'urllib3' out–of–date: '==1.22' installed, '==1.23' available.
Package 'requests' out–of–date: '==2.18.4' installed, '==2.19.1' available.
Package 'idna' out–of–date: '==2.6' installed, '==2.7' available.

My point is, just like composer and pip, pipenv shouldn't take into account the version restrictions when showing if there's an update to a package. It should show all of them, like pip, but informing the user whether the update is allowed under the restrictions in the Pipfile.

I actually really like this idea, I liked it even when I couldn't read the properly formatted version when I was on mobile this morning.  We will need to run it by Kenneth and @ncoghlan but I am fairly confident this will be thumbs up from them as well.

I've reworded the issue title based on what I believe @Alexgmin is actually proposing (i.e. respect the version restrictions when it comes to actually updating anything, but also note in the output when there are newer packages being ignored based on the Pipfile constraints).
Assuming I've understood the proposal correctly, it seems like a reasonable prompt to me - while there's some risk of notification fatigue, I agree that warning about this situation will be better default behaviour.


Additional search functionality for tags.

Is your feature request related to a problem? Please describe.
I am currently going through and adding additional organization to my files, which are mostly DnD minis and terrain pieces. For example, I am adding 'size' and challenge ratings to each piece, as well as its source book. Currently, as far as I am aware there is no good way to determine what files do not have a particular tag, nor is there a way to select every file which has
Describe the solution you'd like
Add a button to the top of the tag section which allows the user to select 'or', 'nor', and 'not', in addition to the 'and' search ability.
I think this makes sense but if not, for five files tagged
A - Fantasy, humanoid, minis
B -  Fantasy, dragon, minis
C - Sci-Fi, humanoid, minis
D- Fantasy, terrain
E- Sci-fi, terrain
Using the search tags of 'Fantasy, Humanoid, Minis',
And: Current result, returns 'A'
Or: Returns 'A, B, C, and D'
Nor: Returns E
Not: Returns B, C, D, E
Describe alternatives you've considered
One other option would be to move tags into the search field and allow a 'not' operator there, like adding - to the beginning of a search term on google.
Additional context
Thank you so much for this project, it's exactly what I needed to not go insane.

Thanks, very useful to get ideas for how people actually want to use these things. Good idea to integrate tag choice into search, just as a standard query, rather than using URL parameters - makes it all more consistent and means we have to have more powerful search options in order to make the site work!
Linking this up to #1401, search needs a big overhaul I think.


Don't use default timeouts of RestClient

Set them to about 3-6sec

@Timrael have a look at the PR #10 i made and let me know if we can merge it.


Add history cap in memory units

In addition to the user controlled history depth, we should also prevent the history from using too much RAM.
The actual history cap should be the minimum of the depth specified in the history window and a preference which specifies the max history depth, in GB.
Additionally, when adding new waveforms to the history, if total free system memory would drop below a safety margin (new preference), then old history should be purged regardless of preferences and the history depth cap.

Closing as wontfix since we now have the option of pushing history to files instead, relieving RAM pressure. Needs more internal work but that is the long term plan.


React native 0.76

Hi! 👋
Firstly, thanks for your work on this project! 🙂

Here is the diff that solved my problem:
diff --git a/node_modules/react-native-mmkv-storage/android/src/main/rnmmkv/CMakeLists.txt b/node_modules/react-native-mmkv-storage/android/src/main/rnmmkv/CMakeLists.txt
index a61f56a..7341c12 100644
--- a/node_modules/react-native-mmkv-storage/android/src/main/rnmmkv/CMakeLists.txt
+++ b/node_modules/react-native-mmkv-storage/android/src/main/rnmmkv/CMakeLists.txt
@@ -25,13 +25,29 @@ find_package(ReactAndroid REQUIRED CONFIG)
 find_library(log-lib log)
 find_package(fbjni REQUIRED CONFIG)

-target_link_libraries(
-        ${PACKAGE_NAME}
-        core
-        ${log-lib}
-        fbjni::fbjni
-        ReactAndroid::jsi
-        ReactAndroid::turbomodulejsijni
-        ReactAndroid::react_nativemodule_core
-        android
-)
+# Ideally we would just depend on `REACTNATIVE_MERGED_SO`
+# See https://github.com/react-native-community/discussions-and-proposals/discussions/816
+# For some reason (yet to be determined) we don't have REACTNATIVE_MERGED_SO set here.
+# See https://github.com/react-native-community/discussions-and-proposals/discussions/816#discussioncomment-10659654
+if (REACTNATIVE_MERGED_SO OR ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
+        target_link_libraries(
+                ${PACKAGE_NAME}
+                core
+                ${log-lib}
+                fbjni::fbjni
+                ReactAndroid::jsi
+                ReactAndroid::reactnative
+                android
+        )
+else()
+        target_link_libraries(
+                ${PACKAGE_NAME}
+                core
+                ${log-lib}
+                fbjni::fbjni
+                ReactAndroid::jsi
+                ReactAndroid::turbomodulejsijni
+                ReactAndroid::react_nativemodule_core
+                android
+        )
+endif()

Closes


Cluster Overview - All instances of Ram should be all capitals as RAM is an acronym or use Memory as the Ember UI

Rancher master-head (07/23/2020) fd3e37bec k8s HA install.
dashboard-index -> latest

Deploy any cluster type
Navigate to Dashboard and to land in the Cluster Overview
Notice there are two components using the Ram string. But each has 1 sub element using Ram too. (4 Ram strings)

RAM is an acronym.
Ember UI is using Memory instead of RAM.
Ram Reserved and Ram Used:

Rancher version: master-head (07/27/2020) e20f472d4
dashboard-index -> latest
This is fixed now. Ram was replaces by Memory


How would I run this on Windows 7?

I understand that Windows 7 does not support universal apps but is there a way to get this to run on Windows 7?

Thanks for opening this issue, Files relies on APIs and features that are only available on Windows 10. We don't plan on backporting Files to Windows 7, sorry.

Hi thanks for your response @gave92 :)
So I understand you guys won't be porting it over to Windows 7, but is there a third party software which allows windows 10 applications to run on Windows 7?

To my knowledge, no.

Thanks anyways


Remove uneeded voids from arity

All those voids are there to make JSHint happy. This PR just makes it relax a little while inside arity.

:cow2:

Damn, I would swear we'd tried that and it didn't work for some reason!
:+1"


ARROW-14053: [C++][CSV] Use atomic counter for async tests

@github-actions crossbow submit test-ubuntu-20.04-cpp-thread-sanitizer


Spike: Run light miners on Helium testnet

Follow these instructions: https://docs.google.com/document/d/1ZENpXrNmAcJoPIRwGVSc96tyclNTbJWZCgzc0S9vYvA/edit
Acceptance criteria

Deploy at least one ROCK Pi, RPi indoor, and RPi outdoor to testnet
Determine if helium/miner can be run in this manner when light miners go live

ROCK Pi

Balena: https://dashboard.balena-cloud.com/devices/f00da3b83b8bc879fed1927c1bfecde8/summary
AddGateway hash: Kv04OFkYZBUnkFM9ILtIxHn1IY8PAQP6sUpyOAdXeOo
Identity:

{
  "key": "1ZF2HSYMRdjdk2tsCiAzjt8HxEAB2bY7NTQ7s5Jf4j9ahfGSBRf",
  "name": "wonderful-misty-pig"
}

RPi Indoor

Balena: https://dashboard.balena-cloud.com/devices/6e54f41d04eec1886cd89eea6ca61f08/summary
AddGateway hash: kD_GB-W7onpVSKUDmPjA1W9R6SB-U9egWrPMkKabvho
Identity:

{
  "key": "1Zx68c1ghuwd7UCWqvCKTgFxR1ZvfBLSk4suQnmFRHVw4o4yKev",
  "name": "faithful-oily-wren"
}

RPi Outdoor

Balena: https://dashboard.balena-cloud.com/devices/fd5f350f18f50c45a1a23eeb1a3170da/summary
AddGateway hash: Anamg443k2gIW-N2FGVRtOdRbHY1bZxHW0DbqwJO6JI
Identity:

{
  "name": "thankful-wintergreen-wren",
  "key": "1YwZHCKQhdZ3HgjmHuxVAwmuVedX9BqxLq4KzeWTJ638JqpYCiF"
}

Commands for future reference:
# Create wallet
$ ./helium-wallet create basic --network testnet
$ ./helium-wallet info

# AddGateway
$ WALLETADDRESS=[copy]
$ miner txn add_gateway owner=$WALLETADDRESS --payer $WALLETADDRESS --staking_fee 4000000 --fee 65000
$ ADD_GATEWAY_OUTPUT=[copy]
$ ./helium-wallet hotspots add $ADD_GATEWAY_OUTPUT --commit

# AssertLocation
$ ./helium-wallet hotspots assert --gateway [gateway_address] --elevation [5] --gain [3] --lat=[latitude] --lon=[longitude]

# Get PK
$ /opt/miner/lib/miner-0.1.0/priv/gateway_rs/helium_gateway -c /opt/miner/lib/miner-0.1.0/priv/gateway_rs/ key info

Testnet was previously down while onboarding the devices. It was restored today. Will continue to monitor these devices according to https://github.com/NebraLtd/hnt-products/issues/7.
ROCK Pi

wonderful-misty-pig
https://testnet-explorer.helium.com/hotspots/1ZF2HSYMRdjdk2tsCiAzjt8HxEAB2bY7NTQ7s5Jf4j9ahfGSBRf
https://dashboard.balena-cloud.com/devices/f00da3b83b8bc879fed1927c1bfecde8/summary

RPi indoor

faithful-oily-wren
https://testnet-explorer.helium.com/hotspots/1Zx68c1ghuwd7UCWqvCKTgFxR1ZvfBLSk4suQnmFRHVw4o4yKev
https://dashboard.balena-cloud.com/devices/6e54f41d04eec1886cd89eea6ca61f08/summary

RPi outdoor

thankful wintergreen wren
https://testnet-explorer.helium.com/hotspots/1YwZHCKQhdZ3HgjmHuxVAwmuVedX9BqxLq4KzeWTJ638JqpYCiF
https://dashboard.balena-cloud.com/devices/fd5f350f18f50c45a1a23eeb1a3170da/summary

It's not 100% clear from Discord what the state of helium/miner will be at the time they go live with light miners and how that will compare to helium/gateway-rs. In my opinion, we should continue to prioritize gateway-rs integration as that is the inevitable future. At the same time, I'll keep an eye on how things perform using their maker instructions on Helium testnet. @vpetersson @shawaj

@shawaj @vpetersson fyi not currently witnessing anything. Haven't been able to look into why yet.

@shawaj @vpetersson fyi not currently witnessing anything. Haven't been able to look into why yet.

@marvinmarnold do you mean the 3 hotspots above are all on testnet but not witnessing each other? maybe speak to helium on discord

and should we not leave this open if not witnessing?

@shawaj I let them know on Discord and waiting for a response. The intention is for @MuratUrsavas to take this over and track the work as part of: https://github.com/NebraLtd/hnt-products/issues/7

These two rockpi miners are also on testnet:
Balena:
https://dashboard.balena-cloud.com/devices/ec30aba9527d5dcd3dda93ecfca85c48
https://dashboard.balena-cloud.com/devices/faa7d571d415cc3a79d4c471ca714f33
Testnet explorer:
https://testnet-explorer.helium.com/hotspots/hex/883d146b3dfffff
https://testnet-explorer.helium.com/hotspots/hex/883d146b31fffff


Changed the background color of the home screen cells container view …

…to UIColor.secondarySystemGroupedBackground.

Refers to issue: https://github.com/corona-warn-app/cwa-app-ios/issues/103

Looks good to me. Certainly better than what we have at the moment. That being said dark mode is currently under refinement and we will give more love to dark mode starting tomorrow evening. I will merge this but leave the issue open...


bug in Centrify.Platform.PowerShell/Lib/New-VaultAlternateAccount.ps1

line 71 in the file Centrify.Platform.PowerShell/Lib/New-VaultAlternateAccount.ps1 reads:
$VaultAccount = Get-VaultAccount -Domain (Get-VaultDomain -Name $AccountDomain) -User $AccountName
this should read:
$VaultAccount = Get-VaultAccount -VaultDomain (Get-VaultDomain -Name $AccountDomain) -User $AccountName

Fixed.


simp? wrapping incorrectly

Sometimes when I write simp? it suggests a very long list of lemmas. If it is long enough to be much more than 100 characters, then it will provide linebreaks. However, these linebreaks sometimes still go over the ruler. Can this be fixed?

Fixed in https://github.com/leanprover/std4/pull/299


Upgrade the ScanCode version (and install it from binary release)

Binary releases are slightly more featureful and better supported by upstream
We also make sure we properly run the configure script (instead of running it implicitly)
and run it inside its own directory which is what it is expecting.
and additional scancode-pip binary is linked so that you can install custom plugins
(which is what we have at Renault)
superseeds #4324

#3902 is a much better approach, but I am not sure when it will land.

Please note that there's also https://github.com/oss-review-toolkit/ort/pull/4324 (as a draft, though).

@sschuberth I saw #4324 but it does not build (an error about requirement.txt which is due to current directory being not the one expected by the configure script)

Works for me (with Docker):
> head native-scan-results/NPM/unknown/acorn/7.4.1/scan-results_ScanCode.json
{
  "headers": [
    {
      "tool_name": "scancode-toolkit",
      "tool_version": "21.8.4",
      "options": {
        "input": [
          "/tmp/ort-ScanCode621495451432505429/NPM/unknown/acorn/7.4.1"
        ],
        "--copyright": true,
...

:+1: for merging

FYI: new scancode release: https://github.com/nexB/scancode-toolkit/releases/tag/v30.1.0

It is a larger release. Shouldn't we first merge this one, rather than risking a break with new version?

https://github.com/nexB/scancode-toolkit/releases/tag/v30.0.0 introduce a new version of the json
We also have introduced a new JSON output format version based on semver to
version the JSON output format data structure and have documented the new
versioning approach.

So there is high chance ORT parser is broken for those versions.

Then maybe update to the last version that is compatible? The pre-release v3.2.1rc2 is from Sep 11, 2020.

This has been superseded by now by several other PRs including https://github.com/oss-review-toolkit/ort/pull/4773 and https://github.com/oss-review-toolkit/ort/pull/4916. ScanCode is still installed from sources, though.


Prepare Getting started with GT in 7' YouTube video

Possible points to cover (to be refined and structured):
Download and get started.
What do you see?
Start with the book.
What can you do? (What do you want to do?)
Learn some programming? Explore some data? Build a model?
Look at a few case studies.
Start programming in a playground.
Mix code and test snippets.
Use the inspector to explore models with Miller columns.
How to evaluate code, explore objects, navigate, and play with objects in their inspector playground.
Extracting code?
How to search for stuff with Spotter.
Tools to get started: Lepiter (Book + your own notes), Spotter, Inspector, File manager.
Some advanced stuff? Drilling? Creating custom views?
Something on visualizations?
Asked on Discord for topics to add.
For example: How do you update GT? Do you just download it again and discard the existing install? Am I missing something obvious?
KH: What I'd put into such a video is (1) an overview of the main tools in GT followed by (2) a good introduction to Spotter as the main door to exploration.
EH: An introduction to BrAptitude .
Sepoy: enabling a non-technical user to interact with your creation.
specifically building forms, accepting input, (doing stuff), and transitioning to the resulting view would be very insightful
BWT: Maybe too advanced for 7' video, but a high level of how moldable development becomes a reality with the various tools in Gt:

Custom Views
Custom Searches
Custom editor stylers
Etc. Basically the different ways to modify the system, which usually tie back to some type of annotation that begins with <gt...

Published at https://youtu.be/lqogvp1dGpk


[Feature Request] reverse socks5

Is it possible to create socks5 on the server side and have the client's local network?

Hello,
I have added socks5 reverse tunnel.
Would you mind trying this pre-release and let me know if it works for you https://github.com/erebe/wstunnel/releases/tag/v8.1.0 ?

Released https://github.com/erebe/wstunnel/releases/tag/v8.1.1, feel free to re-open if not working


Emulator start error

So, I was building a docker image on architecture linux/amd64. I got an image and wanted to setup my GitLab CI Pipeline:
stages:
  - testing
  - history_copy
  - reports
  - deploy

docker_job:
  stage: testing
  image: webberbond/appium-python3.11-ewf
  tags:
    - docker
  before_script:
    - chmod +x ./scripts/start_emu_headless.sh
  script:
    - ./scripts/start_emu_headless.sh
  allow_failure: true
  artifacts:
    when: always
    paths:
      - ./allure-results
    expire_in: 1 day

history_job:
  stage: history_copy
  tags:
    - docker
  image: storytel/alpine-bash-curl
  script:
    - 'curl --location --output artifacts.zip "https://gitlab.com/api/v4/projects/20887326/jobs/artifacts/master/download?job=pages&job_token=$CI_JOB_TOKEN"'
    - apk add unzip
    - unzip artifacts.zip
    - chmod -R 777 public
    - cp -r ./public/history ./allure-results
  allow_failure: true
  artifacts:
    paths:
      - ./allure-results
    expire_in: 1 day
  rules:
    - when: always

allure_job:
  stage: reports
  tags:
    - docker
  image: frankescobar/allure-docker-service
  script:
     - allure generate -c ./allure-results -o ./allure-report
  artifacts:
    paths:
      - ./allure-results
      - ./allure-report
    expire_in: 1 day
  rules:
    - when: always

When i started the pipeline the logs I obtained are:
Running with gitlab-runner 16.9.1 (782c6ecb)
  on green-4.saas-linux-small-amd64.runners-manager.gitlab.com/default ntHFEtyX, system ID: s_8990de[2](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L2)1c550
  feature flags: FF_USE_IMPROVED_URL_MASKING:true
Preparing the "docker+machine" executor
01:50
Using Docker executor with image webberbond/appium-python[3](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L3).11-ewf ...
Pulling docker image webberbond/appium-python3.11-ewf ...
Using docker image sha256:6e1616d109fa5dc3262a7b338b[4](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L4)df[5](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L5)19dc3d[6](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L6)2e203b428ae0232[7](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L7)e5ee4584b28 for webberbond/appium-python3.11-ewf with digest webberbond/appium-python3.11-ewf@sha256:aade93efc4ae0f1798d5250ec870e1511d5026a37095d6ae0015fccf136ed72f ...
Preparing environment
00:03
Running on runner-nthfetyx-project-56003221-concurrent-0 via runner-nthfetyx-s-l-s-amd64-1710994542-12594ae0...
Getting source from Git repository
00:08
Fetching changes with git depth set to 20...
Initialized empty Git repository in /builds/webbersd/test-ci/.git/
Created fresh repository.
Checking out 5ee22eeb as detached HEAD (ref is main)...
Skipping Git submodules setup
$ git remote set-url origin "${CI_REPOSITORY_URL}"
Executing "step_script" stage of the job script
00:07
Using docker image sha256:6e1616d109fa5dc3262a7b338b4df519dc3d62e203b428ae02327e5ee4584b28 for webberbond/appium-python3.11-ewf with digest webberbond/appium-python3.11-ewf@sha256:aade93efc4ae0f1798d5250ec870e1511d5026a37095d6ae0015fccf136ed72f ...
$ chmod +x ./scripts/start_emu_headless.sh
$ ./scripts/start_emu_headless.sh
* daemon not running; starting now at tcp:5037
* daemon started successfully
linux-gnu: emulator @nexus -no-window -no-snapshot -noaudio -no-boot-anim -memory 204[8](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L8) -accel off -camera-back none -gpu off
INFO    | Storing crashdata in: /tmp/android-unknown/emu-crash-34.1.1[9](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L9).db, detection is enabled for process: 29
INFO    | Android emulator version <IP_ADDRESS> (build_id 11525734) (CL:N/A)
INFO    | Found systemPath /opt/android/system-images/android-34/google_apis_playstore/x86_64/
WARNING | File System is not ext4, disable QuickbootFileBacked feature
WARNING | x86_64 emulation may not work without hardware acceleration!
WARNING | Your AVD has been configured with an in-guest renderer, but the system image does not support guest rendering.Falling back to 'swiftshader_indirect' mode.
INFO    | Storing crashdata in: /tmp/android-unknown/emu-crash-34.1.19.db, detection is enabled for process: 29
INFO    | Duplicate loglines will be removed, if you wish to see each individual line launch with the -log-nofilter flag.
INFO    | Increasing RAM size to 3072MB
library_mode swiftshader_indirect gpu mode swiftshader_indirect
Initializing hardware OpenGLES emulation supportandroid_startOpenglesRenderer: gpu infoI0321 04:20:28.073729      29 HealthMonitor.cpp:279] HealthMonitor disabled.
cannot add library /opt/android/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed
cannot add library /opt/android/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so.1: failed
added library /opt/android/emulator/lib64/vulkan/libvulkan.so
createGlobalVkEmulation:964 Selecting Vulkan device: SwiftShader Device (Subzero)
initialize: Supports id properties, got a vulkan device UUID
WARNING: could not open libX11.so, try libX11.so.6
I0321 04:20:28.343840      29 VkCommonOperations.cpp:1226] Initializing VkEmulation features:
I0321 04:20:28.343865      29 VkCommonOperations.cpp:1227]     glInteropSupported: false
I0321 04:20:28.343870      29 VkCommonOperations.cpp:1228]     useDeferredCommands: true
I0321 04:20:28.343873      29 VkCommonOperations.cpp:1230]     createResourceWithRequirements: true
I0321 04:20:28.343875      29 VkCommonOperations.cpp:1231]     useVulkanComposition: false
I0321 04:20:28.343878      29 VkCommonOperations.cpp:1232]     useVulkanNativeSwapchain: false
I0321 04:20:28.343883      29 VkCommonOperations.cpp:1233]     enable guestRenderDoc: false
I0321 04:20:28.343887      29 VkCommonOperations.cpp:1234]     ASTC LDR emulation mode: 2
I0321 04:20:28.343889      29 VkCommonOperations.cpp:1235]     enable ETC2 emulation: true
I0321 04:20:28.343891      29 VkCommonOperations.cpp:1236]     enable Ycbcr emulation: false
I0321 04:20:28.343893      29 VkCommonOperations.cpp:1237]     guestUsesAngle: false
I0321 04:20:28.343896      29 VkCommonOperations.cpp:1238]     useDedicatedAllocations: false
I0321 04:20:28.344636      29 FrameBuffer.cpp:486] Graphics Adapter Vendor Google (Google Inc.)
I0321 04:20:28.344653      29 FrameBuffer.cpp:487] Graphics Adapter Android Emulator OpenGL ES Translator (Google SwiftShader)
I0321 04:20:28.344657      29 FrameBuffer.cpp:488] Graphics API Version OpenGL ES 3.0 (OpenGL ES 3.0 SwiftShader <IP_ADDRESS>)
I0321 04:20:28.344659      29 FrameBuffer.cpp:489] Graphics API Extensions GL_OES_EGL_sync GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint GL_OES_texture_float GL_OES_texture_float_linear GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_packed_depth_stencil GL_OES_vertex_half_float GL_OES_standard_derivatives GL_OES_texture_npot GL_OES_rgb8_rgba8 GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_texture_format_BGRA8888 GL_APPLE_texture_format_BGRA8888
I0321 04:20:28.344662      29 FrameBuffer.cpp:490] Graphics Device Extensions N/A
OpenGL Vendor=[Google (Google Inc.)]OpenGL Renderer=[Android Emulator OpenGL ES Translator (Google SwiftShader)]OpenGL Version=[OpenGL ES 3.0 (OpenGL ES 3.0 SwiftShader <IP_ADDRESS>)]INFO    | Sending adb public key [QAAAAL+KmdvBGplTr3YBVkxOdU8udCSnPyt01pJ3Zz7FE+5YdSjL4tt1nvx6BTBPpAc+/K3Xuz74bNCy8d1zsfkuSwj80pHcHnkWvws0zmocAVEDU8U7RJpwTkrTh3mJxSUf80j7zM2DZ0sKVw9s5/bQK3rCGWWl/1Hs8GmgkSOSAsJ62QlkjCLU9Try9/dTAWlrdJkeeBGjNqXJsurH2dy1zlGLWKW9BTvgIE0Y3Ea0ygy36x7F1/ccEb+gWD2mly8Z6TX7kXbPP7p6HLPWAHgH7AdSDe8RSNA+xlZtEo7ZpXH2ujmYNo82r5lVnas5HVToU0ebxYsp6YGHMQe7XL0qmzU7sSufL40/j5y5ddKzQjx1gjpsddSKglXZi3bbJoZMfjVaM0+R6Y5Pmk08/V9/pHFB28LkjpkZO60L+S+lmfUuFlzZMc1Q1jRRtYD/C8TMOrZSW+laZ5hORWqSUnC/JAo2RLWpQLQe58N359dBe0YGSz8jQI8WpDSi7Xw1Lz1KsPlgCG0A0Z1MSk6bHA1WXtVPrXXtyN7rZaeGn3zgtbnXAeYKpZwuYSR4p59doK+w0n9ByW2LlHpFVpDeyfWEtftHVE8Ng1RNtDHTQpi/dVaFrOg9KGNRJdmAs/LuZTCyjZ6KALsD77cRtOeMQi67QfYWkBWExQ3VOujPqvIqRcK5W52FBQEAAQA= @unknown]
TCG doesn't support requested feature: CPUID.01H:ECX.tsc-deadline [bit 24]
TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit 29]
TCG doesn't support requested feature: CPUID.01H:ECX.tsc-deadline [bit 24]
TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit 29]
WARNING: cannnot unmap ptr 0x7f5fe685c000 as it is in the protected range from 0x7f5fe685c000 to 0x7f60a6a5c000
WARNING: cannnot unmap ptr 0x7f60a6a0[10](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L10)00 as it is in the protected range from 0x7f5fe685c000 to 0x7f60a6a5c000
WARNING | Using fallback path for the emulator registration directory.
WARNING | The emulator now requires a signed jwt token for gRPC access! Use the -grpc flag if you really want an open unprotected grpc port
INFO    | Using security allow list from: /opt/android/emulator/lib/emulator_access.json
WARNING | *** Basic token auth should only be used by android-studio ***
INFO    | The active JSON Web Key Sets can be found here: /root/.android/avd/running/29/jwks/b66c8346-fdd2-4bc1-b46a-7139cce5df4e/active.jwk
INFO    | Scanning /root/.android/avd/running/29/jwks/b66c8346-fdd2-4bc1-b46a-7139cce5df4e for jwk keys.
INFO    | Started GRPC server at [12](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L12)<IP_ADDRESS>:8554, security: Local, auth: +token
WARNING | Using fallback path for the emulator registration directory.
INFO    | Advertising in: /root/.android/avd/running/pid_29.ini
I0321 04:20:28.455288      91 FrameBuffer.cpp:3707] setDisplayConfigs w [14](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L14)40 h 2560 dpiX 560 dpiY 560
I0321 04:[20](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L20):[28](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L28).455647      91 FrameBuffer.cpp:[37](https://gitlab.com/webbersd/test-ci/-/jobs/6443251953#L37)20] setDisplayActiveConfig 0
INFO    | Cold boot: requested by the user
WARNING | Cold boot:  requested by the user
INFO    | Activated packet streamer for bluetooth emulation
==> Checking emulator booting up status 🧐
Uploading artifacts for failed job
00:00
Uploading artifacts...
WARNING: ./allure-results: no matching files. Ensure that the artifact path is relative to the working directory (/builds/webbersd/test-ci)
ERROR: No files to upload
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: exit code 1

Don't know how to fix, would like to get help

==> Checking emulator booting up status
Does it fail right away after this line, or it take few minutes ?

I resolved this (via Windows/Docker Desktop using the non-Windows specific yaml) by changing to install emulator as well. Assuming that's the right call, but still in early testing phase on my end.

ff31d3f10f123a8f33e0da02cb200d5d93731417

However, I can't build the image on an M3, so that's another problem I need to read/learn more about... (Assuming something obvious I'm missing due to architecture.) I may end up posting a separate issue to ask for assistance.

Build error
docker build -t android-emulator .                                                            Android-Emulator-image
[+] Building 2.1s (9/13)                                                                                docker:desktop-linux
=> [internal] load build definition from Dockerfile                                                                      0.0s
=> => transferring dockerfile: 3.74kB                                                                                0.0s
=> [internal] load metadata for docker.io/library/openjdk:18-jdk-slim                                                    0.9s
=> [internal] load .dockerignore                                                                                0.0s
=> => transferring context: 215B                                                                                0.0s
=> [ 1/10] FROM docker.io/library/openjdk:18-jdk-slim@sha256:8e17383576d7e71988ee5927473a32e8461381c7a29eefa9a0c24b3a28  0.0s
=> [internal] load build context                                                                                0.0s
=> => transferring context: 6.33kB                                                                                0.0s
=> CACHED [ 2/10] RUN apt update && apt install -y curl sudo wget unzip bzip2 libdrm-dev libxkbcommon-dev libgbm-dev li  0.0s
=> CACHED [ 3/10] RUN wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -P /tmp  0.0s
=> CACHED [ 4/10] RUN yes Y | sdkmanager --licenses                                                                      0.0s
=> ERROR [ 5/10] RUN yes Y | sdkmanager --verbose --no_https system-images;android-34;google_apis_playstore;x86_64 plat  1.2s
------
> [ 5/10] RUN yes Y | sdkmanager --verbose --no_https system-images;android-34;google_apis_playstore;x86_64 platforms;android-34 build-tools;34.0.0 platform-tools emulator:
Info: Parsing legacy package: /opt/android/cmdline-tools/tools
Warning: Errors during XML parse:
Warning: Additionally, the fallback loader failed to parse the XML.
Warning: Failed to find package 'emulator'
1.126 [===                                    ] 10% Computing updates...
------
Dockerfile:50
--------------------
  48 |     #============================================
  49 |     RUN yes Y | sdkmanager --licenses
  50 | >>> RUN yes Y | sdkmanager --verbose --no_https ${ANDROID_SDK_PACKAGES}
  51 |
  52 |     #============================================
--------------------
ERROR: failed to solve: process "/bin/bash -c yes Y | sdkmanager --verbose --no_https ${ANDROID_SDK_PACKAGES}" did not complete successfully: exit code: 1

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/s68eub1jc6wde7vscrszlwppx

My local setup before I found this image seemed fine, but I now notice these XML errors just the same:
🔮  sdkmanager emulator
Warning: Errors during XML parse:
Warning: Additionally, the fallback loader failed to parse the XML.
[=======================================] 100% Unzipping... emulator/._NOTICE.tx

Local for reference:

"Without Android Studio"
  1. Install Android Studio Command Line Tools: https://developer.android.com/studio#command-tools
     - **MacOS**
       * [homebrew](https://formulae.brew.sh/cask/android-commandlinetools): `brew install --cask android-commandlinetools`
         - To see where things are installed: `brew info --cask android-commandlinetools`
     - **Windows** (_Fully untested_)
       * [scoop](https://scoop.sh/#/apps?q=android+command+line+tools): `scoop bucket add main`
       * ~~winget: [microsoft/winget-pkgs/issues/4082](https://github.com/microsoft/winget-pkgs/issues/4082)~~
  2. Install emulator and platform-tools: `sdkmanager platform-tools emulator`
  3. Find _your_ target system image, platform, and build tools: `sdkmanager --list`
     - Example:
       * System Images: `system-images;android-33;google_apis;arm64-v8a`
       * Platform: `platforms;android-33`
       * Build Tools: `build-tools;33.0.3`
  4. Install target platform, system image, and build tools: `sdkmanager "<platforms>" "<system-images>" "<build-tools>"`
     - Example: `sdkmanager "platforms;android-33" "system-images;android-33;google_apis;arm64-v8a" "build-tools;33.0.3"`
       * Alternatively, you can install components individually:
         ```
         sdkmanager "platforms;android-33"
         sdkmanager "system-images;android-33;google_apis;arm64-v8a"
         sdkmanager "build-tools;33.0.3"
         ```
       * If you don't specify a version for platforms or build tools, latest will be used:
         - Example: `sdkmanager "platforms;" "build-tools;"`
  5. Create Android Virtual Device (AVD): `avdmanager create avd --name <avd-name-here> --package “<your-target>”`
     - Example: `avdmanager create avd --name android-33 --package "system-images;android-33;google_apis;arm64-v8a"`
       * _Note: I did not elect to create a custom hardware profile when asked._
  6. Set [`ANDROID_HOME` environment variables](#environment-variables)
  7. Run emulator to verify installation: `emulator -avd <avd-name>`
     - Example: `emulator -avd android-33`
  8. CTRL+C on running terminal to end the process, or:
     - Or: `adb -e emu kill` or `adb -s <avd-name> emu kill`
     - Or: `emulator -avd <avd-name> -no-window && emulator -avd <avd-name> -wipe-data`

Unfortunately, won't have time for a bit longer to dive into, but posting in case it helps someone else before I have a chance to revisit.

@abaldwin-op
Yea, the actual issue that we are currently missing the support for apple silicon arm chip, looking forward to find a solution for that.


[Bug]: Analysis results with a vulnerability layer at a different admin than the default doesn't render a result

What happened?
If I run analysis while choosing a vulnerability layer at a different admin level than the default, no results are shown. You can see this in Mozambique with the MPI layer, and in Sri Lanka with any of the food security layers
Which country / deployment are you running?
Mozambique / Sri Lanka on new UX branch
Add a screenshot (if relevant)

@ericboucher - I'm not sure when this bug was introduced, but this was working previously

As far as I could tell this doesn't work on master either. I'm attempting to fix this in #818


Gradient in the line from linechart

How can I made a gradient for the line in linechart? (not the fill) in Android is with the paint and shader but I dont know how to set the same in flutter, thanks!

do you mean gradient in lines?


create migration for locations, tags, jobs and job_requirements table

table list:

[ ] lajo_locations
[ ] lajo_tags
[ ] lajo_jobs
[ ] lajo_job_requirements

@joypal23jkp take a look


⚠ ClamAV has degraded performance

In 9945bc8, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: ClamAV performance has improved in 0fec946.


Add function to add plural and context to existing entry

Checked your latest version and found createNew option in updateEntry-method. Now I'm using this instead of the other fork.

Could you please give me some feedback on my changes?

Sorry, I missunderstood you and thought you discarded the pull-request due to finding the features you need in the last version. I will check your changes soon

Although, I agree with the naming setEntryXXX you've used (I'm planning to use that in new major version), could we use updateEntryPlurals and updateEntryContext instead to follow current naming? I don't see any other problems ;)

No problem, changed it :)


hint: model

I mean yes, it depends on the model
but 8 of 10 womens are "caucasian"   ^^

Yes. This is all on the model training. Not something that this script can deal with.
This is the appropriate place to discuss/request re-training of the model:
https://huggingface.co/MiaoshouAI/Florence-2-base-PromptGen-v1.5/discussions


How to use fetchLogs

https://github.com/latticexyz/mud/blob/7e2cdadf131066ffc5ab0b42ed43c2ca25379e75/packages/cli/src/deploy/getWorldDeploy.ts#L20C3-L29C1

Can you provide more info?


functional tests: Document make functional-check target

This also fixes some style issues.
Fixes #1422

After the nitpick, LGTM


[Feature request] Add URI.parse(uri : URI) and URI.join(*args)

Feature Request
More details discuss check https://forum.crystal-lang.org/t/where-is-the-alternative-to-uri-join-strs/5424/1
Basically, Need add two class methods into URI module. (Consider harmless and backward compatible)
class URI
  def self.parse(uri : URI)
    uri.dup
  end

  def self.join(*args)
    # Probably have a better implementation? although, this should just work.
    args[1..-1].reduce(URI.parse(args[0])) { |a, e| a.resolve(e) }
  end
end

Then, user can use like this:
p! URI.join("https://www.google.com/", "/search", "?q=crystal")
uri = URI.parse("https://www.google.com/")
p! URI.join(uri, "/search", "?q=crystal")
p! URI.join(uri, URI.parse("/search"), "?q=crystal")

# URI.join("https://www.google.com/", "/search", "?q=crystal") # => #<URI:0x7f799415fe40 @scheme="https", @host="www.google.com", @port=nil, @path="/search", @query="q=crystal", @user=nil, @password=nil, @fragment=nil>

p! url = URI.parse("https://www.rfc-editor.org/rfc/rfc3986.txt")  #<URI:0x7fb6a4d00ae0 ...>
p! URI.parse(url)                                                 #<URI:0x7fb6a4d00a80 ...>

Related links:
http://planetruby.github.io/gems/2020/21-addressable.html#conversion-method-vs-copy-constructor
https://ruby-doc.org/stdlib-3.0.2/libdoc/uri/rdoc/URI.html#method-c-join-label-Synopsis
https://www.rubydoc.info/gems/addressable/Addressable%2FURI.parse

What's the deal with URI.parse(URI)? Doesn't make much sense to me that you want to parse a URI when it's already parsed.
I suppose the behaviour URI.join could be more useful. But it's also hard to grasp and potentially confusing (see https://www.honeybadger.io/blog/why-is-uri-join-so-counterintuitive/ for example). There's some unavoidable similarity to File.join which works by concatenating individual path components. But the mode of operation for URI.join as proposed here (and as the Ruby implementation) is different.
File.join("/foo", "bar", "baz/", "qux")     # => "/foo/bar/baz/qux"
URI.join("/foo", "bar", "baz/", "qux").to_s # => "/baz/qux"

I don't think it would be wise to have to method with related function and the same name but entirely different semantics.
One option could be to choose a different name, sufficiently distinct from File.join and clear about how it works.
Maybe another path could be to allow URI#resolve to receive multiple parameters (splat) and resolve one after the other. Then you could write URI.parse("https://www.google.com/").resolve("/search", "?q=crystal") which is fairly obvious about what it means.

If anything, I would name it URI.merge or something like that. But that merge algorithm is very confusing! We should probably avoid ir.

What's the deal with URI.parse(URI)? Doesn't make much sense to me that you want to parse a URI when it's already parsed.

The user may URI.parse(some_uri) accidentally. e.g. following code from Addressable gem doc:
# With Addressable, the parse method acts as a copy constructor

addressable_uri = Addressable::URI.parse("https://www.rfc-editor.org/rfc/rfc3986.txt")
addressable_uri2 = Addressable::URI.parse(addressable_uri) # => #<Addressable::URI:0x654 URI:https://www.rfc-editor.org/rfc/rfc3986.txt>
addressable_uri2.equal?(addressable_uri) # => false

Current Crystal raise a exception instead
require "uri"

addressable_uri = URI.parse("https://www.rfc-editor.org/rfc/rfc3986.txt")
URI.parse(addressable_uri)

 33 | URI.parse(addressable_uri)
                ^--------------
Error: expected argument #1 to 'URI.parse' to be String, not URI

Overloads are:
 - URI.parse(raw_url : String)

Some cases, user probalby don't know the real type of passed args is, it maybe a URI or String, URI.parse should workaround this.
e.g. the URI.join i defined above.

But it's also hard to grasp and potentially confusing (see https://www.honeybadger.io/blog/why-is-uri-join-so-counterintuitive/ for example).

I consider this is the expected behavior, ruby addressable gem do same things.
[14] pry(main)> Addressable::URI.join("https://www.honeybadger.io", "plans", "change")
=> #<Addressable::URI:0xb4 URI:https://www.honeybadger.io/change>
[15] pry(main)> Addressable::URI.join("https://www.honeybadger.io", "plans/", "change")
=> #<Addressable::URI:0xc8 URI:https://www.honeybadger.io/plans/change>

I don't think it would be wise to have to method with related function and the same name but entirely different semantics.

Agree, maybe the name of URI.join not so good.

But, I actually don't know what use case you have for that. The examples provided here don't seem like real use cases

This functionality more useful when write crawler.
URI.join(a, b, c, d), in this case, a b c, d can be any combination of String or URI,
one of them probably generate from scrap as a URI object.

Then you could write URI.parse("https://www.google.com/").resolve("/search", "?q=crystal") which is fairly obvious about what it means.

this is good  if it can accept String combinate URI as *args and no backword compatible issue, i consider a new added method more safe then change resolve.

I found the ruby implement of URI.join will raise error if all part is relative.
[9] pry(main)> URI.join("www.google.com", URI.parse("/search"), "?q=crystal")

URI::BadURIError: both URI are relative

Following code try to workaround this.
class URI
  class BadURIError < Exception
  end

  def self.parse(uri : URI)
    uri.dup
  end

  def self.join(*args)
    # Probably have a better implementation? although, this should just work.
    url = args[1..-1].reduce(URI.parse(args[0])) { |a, e| a.resolve(e) }

    raise BadURIError.new("both URI are relative") if url.relative?

    url
  end
end


Create schueler.txt

@hyWse Pull request merged. Please notice that free educational license for JetBrains tools is for high and higher schools students, i.e. those who are over 13 of age. Thank you!


fix: close session when profile changed

Summary
Fix #745
It has to close current session whenever profile changed
Testing
Test case in #745

Test is completed, reported issue is fixed.


postgresql 9.6

Hello,

The new variables intreduced with pg 9.6 (eg dynamic_shared_memory_type )
make the creation of the data directory fail:

prestogres-ctl create pgdata

I had to comment those variable in order to make it working.

I do not use the 5432 default port. All prestogres-ctl command were failing. Is there a way to

prestogres-ctl -p 5435 migrate

BTW, good job, this is a complex architecture, with a simple install. Do you plan to maintain this  (no change for a year)?

try using prestogresctl  instead of prestogres-ctl


catai serve exit with error: 132 (on MacOS M1 pro)

Describe the bug

Install: catai install Vicuna-7B
Run 'catai serve'
Got an error 132 - As you can see below the full details.

Screenshots
Got this:
catai $ catai serve
$ cd /usr/local/lib/node_modules/catai
$ npm start -- --production true --ui catai

><EMAIL_ADDRESS>start
> node src/index.js --production true --ui catai

/bin/bash: line 1: 49127 Illegal instruction: 4  npm start -- --production true --ui catai
/bin/bash: line 1: 49127 Illegal instruction: 4  npm start -- --production true --ui catai
    at file:///usr/local/lib/node_modules/catai/scripts/cli.js:69:27
    exit code: 132 (Illegal instruction)

Desktop

OS: MacOS 13.4 M1 pro
Browser: chrome
CatAI version: 0.3.12
Node.js version: v19.8.1

That is probably because you do not have enough memory available.
Check in the ActivityMonitor that there is a least 6GM of available memory and the memory pressure is green and try again.

I have over 20G of free memory (the physical memory is 32GB and the used is only 9)

I could not reproduce this error,
I recommend you try this again from scratch just to be sure.
npm r -g catai
npm i -g catai
catai remove Vicuna-7B
catai install Vicuna-7B

If that still does not work, please open an issue on node-llama GitHub page.
This version of CatAI, uses node-llama 0.1.5,
Maybe the creator of the package will know what causing this error.
BTW: Did other models work for you?

Yep - other models did work for me (but not on node).
alpaca.cpp is working so I'm 'playing' with it for now.
I'll open an issue at node-llama.
Thank you for all the help 🙌🏾
It's really cool project you are starting here ;)

Does llama-cpp works for you?

CatAI now uses a custom lib to connect to ggml models.
Try to update, and use a model listed in catai ls


Test out possibly breaking changes on security updates made from dependabot pull-requests

Respectively, we have the following opening PRs from dependabot, where we need to test everything out, as such build scripts, and so on, to make sure that nothing is going to be broken if we merge them in main:

[ ] #1722
[ ] #1720
[ ] #1706
[ ] #1705
[ ] #1704
[ ] #1703
[ ] #1698
[ ] #1697
[ ] #1724

Anyone feel free to pick it up and update your progress here in the comments for any of the above changes needing to be tested. As many people as we get to help here will be very valuable, especially for newcomers contributors.

Hey @renatobenks, can I look into this issue?

Would be very handful @ProttoyChakraborty 🙏🏻

@pedronauck  can you guide me on how should I proceed with testing out changes , should I manually upgrade the packages and then test them out?


ROX-26240: sanitize error

Description

This is part of the effort to triage SAST findings.  There is a slim chance that the error converting a time could leak some unencoded user input.  So I updated it to log the time error and then to provide back to the user an encoded version of the input.  Possible this still fails the findings.
User-facing documentation

[x] CHANGELOG is updated OR update is not needed
[x] documentation PR is created and is linked above OR is not needed

Testing and quality

[x] the change is production ready: the change is GA or otherwise the functionality is gated by a feature flag
[x] CI results are inspected

Automated testing

[ ] added unit tests
[ ] added e2e tests
[ ] added regression tests
[ ] added compatibility tests
[ ] modified existing tests

How I validated my change

Before the change (Notice the script tags in the output have no escaping):
dashrews-mac:stackrox dashrews$ roxctl --insecure-skip-tls-verify -e central-stackrox.apps.ds-09-19-toothsome-kittens-s.ocp.infra.rox.systems:443 -p $(cat deploy/openshift/central-deploy/password) central debug download-diagnostics --since "2006-01-02T14:06:06.000Z"
INFO:	Downloading diagnostic bundle...
INFO:	Successfully wrote diagnostic zip file to "stackrox_diagnostic_2024_09_19_14_21_33.zip"
dashrews-mac:stackrox dashrews$ roxctl --insecure-skip-tls-verify -e central-stackrox.apps.ds-09-19-toothsome-kittens-s.ocp.infra.rox.systems:443 -p $(cat deploy/openshift/central-deploy/password) central debug download-diagnostics --since "<script>alert(document.cookie)</script>"
INFO:	Downloading diagnostic bundle...
ERROR:	could not download zip: expected status code 200, but received 400. Response Body: invalid timestamp value: "0001-01-01 00:00:00 +0000 UTC"
: parsing time "<script>alert(document.cookie)</script>" as "2006-01-02T15:04:05.000Z": cannot parse "<script>alert(document.cookie)</script>" as "2006"

After this PR:

Output

dashrews-mac:stackrox dashrews$ roxctl --insecure-skip-tls-verify -e central-stackrox.apps.ds-09-19-toothsome-kittens-s.ocp.infra.rox.systems:443 -p $(cat deploy/openshift/central-deploy/password) central debug download-diagnostics --since "2006-01-02T14:06:06.000"
INFO:	Downloading diagnostic bundle...
ERROR:	could not download zip: expected status code 200, but received 400. Response Body: invalid time since value: "2006-01-02T14%3A06%3A06.000"
dashrews-mac:stackrox dashrews$ roxctl --insecure-skip-tls-verify -e central-stackrox.apps.ds-09-19-toothsome-kittens-s.ocp.infra.rox.systems:443 -p $(cat deploy/openshift/central-deploy/password) central debug download-diagnostics --since "2006-01-02T14:06:06.000Z"
INFO:	Downloading diagnostic bundle...
INFO:	Successfully wrote diagnostic zip file to "stackrox_diagnostic_2024_09_19_14_08_37.zip"
dashrews-mac:stackrox dashrews$ roxctl --insecure-skip-tls-verify -e central-stackrox.apps.ds-09-19-toothsome-kittens-s.ocp.infra.rox.systems:443 -p $(cat deploy/openshift/central-deploy/password) central debug download-diagnostics --since "<script>alert(document.cookie)</script>"
INFO:	Downloading diagnostic bundle...
ERROR:	could not download zip: expected status code 200, but received 400. Response Body: invalid time since value: "%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E"

Logs

debug/service: 2024/09/19 14:07:17.464091 service.go:892: Error: parsing time "14:06:06.018014" as "2006-01-02T15:04:05.000Z": cannot parse "14:06:06.018014" as "2006"
debug/service: 2024/09/19 14:07:51.207936 service.go:892: Error: parsing time "2006-01-02T14:06:06" as "2006-01-02T15:04:05.000Z": cannot parse "" as ".000"
debug/service: 2024/09/19 14:08:28.360040 service.go:892: Error: parsing time "2006-01-02T14:06:06.000" as "2006-01-02T15:04:05.000Z": cannot parse "" as "Z"
debug/service: 2024/09/19 14:08:37.666942 service.go:875: Info: Started writing diagnostic bundle "stackrox_diagnostic_2024_09_19_14_08_37.zip" with options: {logs:3 telemetryMode:6 withCPUProfile:false withLogImbue:true withAccessControl:true withNotifiers:true withCentral:true clusters:[] since:{wall:0 ext:63271807566 loc:<nil>} withComplianceOperator:false withDBOnly:false}
debug/service: 2024/09/19 14:08:57.788024 service.go:774: Info: Finished writing data to the diagnostic bundle
debug/service: 2024/09/19 14:10:01.169559 service.go:892: Error: parsing time "<script>alert(document.cookie)</script>" as "2006-01-02T15:04:05.000Z": cannot parse "<script>alert(document.cookie)</script>" as "2006"

/retest

/test ocp-4-12-ui-e2e-tests


Display more than 5 rows ?

Hello, is it possible to display more than 5 rows ?
Cheers

Default pageSize is 10. You should be able to change it with:
<Griddle pageProperties={{ pageSize: 20 }} ... />

Or create a plugin with:
{
  initialState: {
    pageProperties: {
      pageSize: 10,
    },
  },
}


[$500]  Hold Request - 'Reason' is not translated to Spanish

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.43-0
Reproducible in staging?: y
Reproducible in production?: new feature
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
Action Performed:

Change app language preference to Spanish
Create an IOU with a user
Navigate to IOU reports details page
Click on three dot > Hold request

Expected Result:
'Reason' in the input field should be translated into Spanish
Actual Result:
'Reason' in the input field is not translated into Spanish
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/43996225/2be6e5ca-3b39-43d4-ae5d-b63de9cd71c2

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01470739ce07ee196a
Upwork Job ID:<PHONE_NUMBER>341258752
Last Price Increase: 2024-02-20

@tienifr's proposal looks good. Straight forward fix.
🎀 👀 🎀 C+ reviewed

We also have another similar translation issue here https://github.com/Expensify/App/issues/36836
And given it's a minor issue. I am thinking to handle it internally

I'm going to remove the Help wanted and External labels, as Monil has a PR up for this.

contributors spent time and effort to make sure the cause is identified and the blocker is fixed quickly.

I would probably agree if we aren't talking about a missing Spanish translation.

@MonilBhavsar already started working on a fix, so I'm not going to create a follow-up PR, let me know if I can help you with anything though! 👀

Sounds good! Deployed to staging, so awaiting prod deploy and regression period to pay out @situchan for the review.

@situchan offer sent for the C+ review.

Settled up!


Scheduled local notification were not fired when app is force closed

I tried the example app from my Android device(One Plus), I schedule a notification by next 5 mins base on local timezone. Then I force close the app, and the notification never came(it worked on IOS in the same case). I don't know if the library is covering this case for the Android version, or I just missed any required setup step?
Thanks sir!

How do you forced the app to close?

I "Clear all" app stacks, or just swipe up only "Awesome Notification" example app

do u have any ideas about it, @rafaelsetragni ?

I guess is because of something like that:
Alarm Manager SetRepeating is not working in background and app got killed
But I didn't have time yet to verify this. That error could happens depending of what android distribution are running Alarm Manager

I'm seeing the same behavior.  It only happens on Android--iOS is OK.
As a workaround, I'm saving my notifications to SharedPrefs and re-creating them on startup if I detect that they've been cancelled by the OS.  You can examine AwesomeNotifications().listScheduledNotifications() to see if your notifications are still scheduled.
This behavior should be added to the readme as it can lead to some difficult-to-find bugs.  It's not uncommon for people to FC their apps.

I'm seeing the same behavior     huawei

I tested it on version 0.6.19 with this simple example and it scheduled perfectly.
I've shared the example on github so you can clone and test it yourself:
https://github.com/rafaelsetragni/issue_285

我用这个简单的例子在0.6.19版本上测试了它，它完美地安排好了。我已经在github上分享了这个例子，所以你可以自己克隆和测试它：
https://github.com/rafaelsetragni/issue_285

Tested for many times, android can't receive notification when kill app

Tested for many times, android can't receive notification when kill app

Please, set the debug option to true on the initialization method and send me here your logcat (the log of your device)

经过多次测试，Android在杀死应用程序时无法收到通知

请在初始化方法上将调试选项设置为true，并将您的logcat（您设备的日志）发送到此处。

After testing Huawei many times, Xiaomi has the same problem

logcat
logcat.txt

经过多次测试，Android在杀死应用程序时无法收到通知

请在初始化方法上将调试选项设置为true，并将您的logcat（您设备的日志）发送到此处。
logcat.txt

We are facing similar issue on OnePlus 5.
Tested with other devices i.e "Mi Note 5 pro", "Moto E4 Plus" and "Samsung note 9"  and it is working fine on them in all states i.e Foreground, background and Killed. Only issues seems to be in OnePlus 5.
Example App test results screen recordings
RedMi Note 5 Pro Test screen recording
OnePlus Test screen recording
OnePlus Android version 9
RedMi Note 5 Pro Android version 9
Samsung Note 9 Android version 10
Moto E4 Plus Android version: 7.1.1
Flutter version: Channel stable, 2.8.1
Machine:  macOS 11.5.1 20G80 darwin-x64
iOS: Working fine on all three states Foreground, Background and Killed.

Hi! Sorry for taking so long to respond to your issue on GitHub. I was focused on releasing the new 0.7.0 version of awesome_notifications and awesome_notifications_fcm and i didn't had time enough to do both. But now I can answer all your questions.
So now i'm asking you to recreate this topic using the new issue template. There's a lot of missing informations that i need to understand your problem, and all the instructions are already in the new issue template. Also, remember to check beforehand if your issue was posted by another user.
So I will automatically close all previous issues so far.
Sorry for the inconvenience and i will be waiting for your new issue request.
Thank you so much for your support!


CR0 WriteProtect bit

Apparently, if CR0 WP bit is not set, then the kernel can write in RO pages. We might want to set it.

Already done by the bootstrap when it enables paging. https://github.com/roblabla42/KFS/blob/9bd1ffcd336ae9aac7069a94f0e45c39073de4ef/bootstrap/src/paging/mod.rs#L46
I can't believe I was smart enough to think about it ... and then forget it.
Anyway, I tried writing to a read-only page from the kernel, to test it, and it page-faulted as expected.


Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.

Issue Id: 290afa18-2fa0-b006-a1d4-b75d46a0c5d4Versions - 1.0.0-insider-  17fa1cbb49e3c5edd5868f304a64115fcc7c9c2cStack Error: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.    at Error (native)/vs/base/parts/tree/browser/treeView.ts#L236:20 (btoa)/vs/base/parts/tree/browser/treeView.ts#L1133:7 (render)/vs/base/parts/tree/browser/treeView.ts#L1118:7 (refreshViewItem)/vs/base/parts/tree/browser/treeViewModel.ts#L81:8 (onRefreshItem)/vs/base/parts/tree/browser/treeView.ts#L1010:21 (onInsertItems)/vs/base/parts/tree/browser/treeView.ts#L713:10 (onItemExpanded)/vs/base/parts/tree/browser/treeView.ts#L677:66 (onModelEvents)/vs/base/common/eventEmitter.ts#L253:21 (events)/vs/base/common/eventEmitter.ts#L262:8 (_emitToBulkListeners)

@bpasero fixed?

:+1:


Further docs updates based on Laura's base work on new API updates

Things to verify

[ ] Snapshot methods for locations and cursors actually exist in the SDK and are correctly documented in the README.
[ ] Check if sending client options instead of the client itself has been removed as part of the release.

Snapshot methods for locations and cursors actually exist in the SDK and are correctly documented in the README.

Confirmed.

Check if sending client options instead of the client itself has been removed as part of the release.

As far as I can gather to create a new instance of Spaces you can only pass types.RealtimePromise which I assume are just the client options? See here.
@surminus that looks like the promise version of the Ably client, which in turn accepts client options (what I was expecting).