Nodejs wrapper failing to build or install via npm on Mac OS Catalina

Required Info

Camera Model
{ D415 }

Firmware Version
(<IP_ADDRESS>)

Operating System & Version
{MacOS Catalina 10.15.7

Platform
Mac OS

SDK Version
{ 2.45.0 }

Language
{nodejs }

Segment
{building nodejs from source }

Issue Description
I'm trying to get the nodejs wrapper on my system but neither intsalling from npm or building from source is working for me. I'll post the print out from both, respectively.
I have installed { libusb, pkg-config, glfw, cmake } using homebrew.
I have jsdoc globally installed using npm.
librealsense release is already built and installed on the system.
Running  npm install --save node-librealsense from within my project virtualenv seems to fail specifically at:
npm ERR! ../src/addon.cpp:30:20: error: no matching member function for call to 'Get'
npm ERR!     return v8obj_->Get(Nan::New(name).ToLocalChecked());

Have a look at the full print out
npm ERR! code 1
npm ERR! path /Users/andrew/projects/eel/node_modules/node-librealsense
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! CXX(target) Release/obj.target/node_librealsense/src/addon.o
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using<EMAIL_ADDRESS>npm ERR! gyp info using<EMAIL_ADDRESS>| darwin | x64
npm ERR! gyp info find Python using Python version 3.9.5 found at "/Users/andrew/projects/eel/bin/python3"
npm ERR! (node:50808) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
npm ERR!  /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3973:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!                                           ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3976:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!                                           ^
npm ERR! ../src/addon.cpp:38:13: error: no matching member function for call to 'Set'
npm ERR!     v8obj_->Set(Nan::New(name).ToLocalChecked(), Nan::Undefined());
npm ERR!     ~~~~~~~~^~~
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3926:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!                                     ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3929:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!                                     ^
npm ERR! ../src/addon.cpp:42:13: error: no matching member function for call to 'Delete'
npm ERR!     v8obj_->Delete(Nan::New(name).ToLocalChecked());
npm ERR!     ~~~~~~~~^~~~~~
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:4011:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Delete(Local<Context> context,
npm ERR!                                     ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:4016:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Delete(Local<Context> context,
npm ERR!                                     ^
npm ERR! ../src/addon.cpp:46:13: error: no matching member function for call to 'Set'
npm ERR!     v8obj_->Set(Nan::New(name).ToLocalChecked(),
npm ERR!     ~~~~~~~~^~~
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3926:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!                                     ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3929:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!                                     ^
npm ERR! ../src/addon.cpp:51:13: error: no matching member function for call to 'Set'
npm ERR!     v8obj_->Set(Nan::New(name).ToLocalChecked(), value);
npm ERR!     ~~~~~~~~^~~
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3926:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!                                     ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3929:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!                                     ^
npm ERR! ../src/addon.cpp:55:13: error: no matching member function for call to 'Set'
npm ERR!     v8obj_->Set(Nan::New(name).ToLocalChecked(),
npm ERR!     ~~~~~~~~^~~
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3926:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!                                     ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3929:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR!   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!                                     ^
npm ERR! ../src/addon.cpp:74:38: error: no matching member function for call to 'Get'
npm ERR!     v8::Local<v8::Value> v = v8obj_->Get(Nan::New(name).ToLocalChecked());
npm ERR!                              ~~~~~~~~^~~
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3973:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!                                           ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3976:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!                                           ^
npm ERR! ../src/addon.cpp:134:61: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!     singleton_->js_error_container_.Reset(info[0]->ToObject());
npm ERR!                                           ~~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3031:3: note: 'ToObject' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:135:51: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!     v8::String::Utf8Value value(info[1]->ToString());
npm ERR!                                 ~~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3019:3: note: 'ToString' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:174:10: warning: 'MakeCallback' is deprecated [-Wdeprecated-declarations]
npm ERR!     Nan::MakeCallback(container, js_error_callback_name_.c_str(),
npm ERR!          ^
npm ERR! ../../nan/nan.h:1068:3: note: 'MakeCallback' has been explicitly marked deprecated here
npm ERR!   NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
npm ERR!   ^
npm ERR! ../../nan/nan.h:106:40: note: expanded from macro 'NAN_DEPRECATED'
npm ERR! # define NAN_DEPRECATED __attribute__((deprecated))
npm ERR!                                        ^
npm ERR! ../src/addon.cpp:314:9: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result]
npm ERR!         data_array->Set(Nan::GetCurrentContext(),
npm ERR!         ^~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! ../src/addon.cpp:382:41: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!     constructor_.Reset(tpl->GetFunction());
npm ERR!                        ~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:6750:3: note: 'GetFunction' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:384:35: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!                  tpl->GetFunction());
npm ERR!                  ~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:6750:3: note: 'GetFunction' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:535:74: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!     auto to = Nan::ObjectWrap::Unwrap<RSStreamProfile>(info[0]->ToObject());
npm ERR!                                                        ~~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3031:3: note: 'ToObject' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:660:41: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!     constructor_.Reset(tpl->GetFunction());
npm ERR!                        ~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:6750:3: note: 'GetFunction' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:661:73: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!     exports->Set(Nan::New("RSFrame").ToLocalChecked(), tpl->GetFunction());
npm ERR!                                                        ~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:6750:3: note: 'GetFunction' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:735:59: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!         obj, translation_name).ToLocalChecked()->ToObject();
npm ERR!         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3031:3: note: 'ToObject' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:737:56: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!         obj, velocity_name).ToLocalChecked()->ToObject();
npm ERR!         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3031:3: note: 'ToObject' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:739:60: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!         obj, acceleration_name).ToLocalChecked()->ToObject();
npm ERR!         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3031:3: note: 'ToObject' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:741:56: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!         obj, rotation_name).ToLocalChecked()->ToObject();
npm ERR!         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3031:3: note: 'ToObject' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!   ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8config.h:452:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
npm ERR! #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
npm ERR!                               ^
npm ERR! ../src/addon.cpp:743:64: error: too few arguments to function call, single argument 'context' was not specified
npm ERR!         obj, angular_velocity_name).ToLocalChecked()->ToObject();
npm ERR!         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
npm ERR! /Users/andrew/Library/Caches/node-gyp/16.2.0/include/node/v8.h:3031:3: note: 'ToObject' declared here
npm ERR!   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
npm ERR!   ^
npm ERR!  System Darwin 19.6.0
npm ERR! gyp ERR! command "/usr/local/Cellar/node/16.2.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /Users/andrew/projects/eel/node_modules/node-librealsense
npm ERR! gyp ERR! node -v v16.2.0
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! not ok

npm ERR!      /Users/andrew/.npm/_logs/2021-05-21T03_31_08_291Z-debug.log

Using Cmake cmake .. -DBUILD_NODEJS_BINDINGS=1 or cmake .. -DBUILD_NODEJS_BINDINGS=1 -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false and then make -j8 produces this error.
clang: error: no such file or directory: '/Users/andrew/projects/librealsense/wrappers/nodejs/../../build/Release/librealsense2.dylib'
make[3]: *** [Release/node_librealsense.node] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (node:events:365:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR!       /Users/andrew/.npm/_logs/2021-05-21T03_44_45_862Z-debug.log

Hi @alifeinbinary   It looks as though you are using Node.js version 16.2.  The librealsense SDK currently supports up to Node.js version 14.

Good call @MartyG-RealSense, sorry I missed that! I reverted back to node v14.0.0, ran npm install && npm install --save node-librealsense. The build actually initiated this time and looked like it was about to finish, however, it stopped again at the same point.
It looks like a dependency isn't getting included in ./wrappers/nodejs/src/addon.cpp. Get,Set, Delete functions aren't linked?
><EMAIL_ADDRESS>install /Users/andrew/projects/humanyse/eel/node_modules/node-librealsense
> node-gyp rebuild

  CXX(target) Release/obj.target/node_librealsense/src/addon.o
../src/addon.cpp:30:20: error: no matching member function for call to 'Get'
    return v8obj_->Get(Nan::New(name).ToLocalChecked());
           ~~~~~~~~^~~
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3686:43: note: candidate function not viable: requires 2
      arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3689:43: note: candidate function not viable: requires 2
      arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
../src/addon.cpp:38:13: error: no matching member function for call to 'Set'
    v8obj_->Set(Nan::New(name).ToLocalChecked(), Nan::Undefined());
    ~~~~~~~~^~~
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3639:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3642:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
../src/addon.cpp:42:13: error: no matching member function for call to 'Delete'
    v8obj_->Delete(Nan::New(name).ToLocalChecked());
    ~~~~~~~~^~~~~~
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3724:37: note: candidate function not viable: requires 2
      arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Delete(Local<Context> context,
                                    ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3729:37: note: candidate function not viable: requires 2
      arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Delete(Local<Context> context,
                                    ^
../src/addon.cpp:46:13: error: no matching member function for call to 'Set'
    v8obj_->Set(Nan::New(name).ToLocalChecked(),
    ~~~~~~~~^~~
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3639:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3642:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
../src/addon.cpp:51:13: error: no matching member function for call to 'Set'
    v8obj_->Set(Nan::New(name).ToLocalChecked(), value);
    ~~~~~~~~^~~
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3639:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3642:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
../src/addon.cpp:55:13: error: no matching member function for call to 'Set'
    v8obj_->Set(Nan::New(name).ToLocalChecked(),
    ~~~~~~~~^~~
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3639:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3642:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
../src/addon.cpp:74:38: error: no matching member function for call to 'Get'
    v8::Local<v8::Value> v = v8obj_->Get(Nan::New(name).ToLocalChecked());
                             ~~~~~~~~^~~
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3686:43: note: candidate function not viable: requires 2
      arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3689:43: note: candidate function not viable: requires 2
      arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
../src/addon.cpp:134:61: error: too few arguments to function call, single argument 'context' was not specified
    singleton_->js_error_container_.Reset(info[0]->ToObject());
                                          ~~~~~~~~~~~~~~~~~ ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:2819:3: note: 'ToObject' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
  ^
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8config.h:422:31: note: expanded from macro
      'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/addon.cpp:135:51: error: too few arguments to function call, single argument 'context' was not specified
    v8::String::Utf8Value value(info[1]->ToString());
                                ~~~~~~~~~~~~~~~~~ ^

Trying again to build from source with node14 installed produces the following error.
[ 74%] Building CXX object tools/terminal/CMakeFiles/rs-terminal.dir/auto-complete.cpp.o
[ 74%] Linking CXX executable rs-ar-advanced
  SOLINK_MODULE(target) Release/node_librealsense.node
clang: error: no such file or directory: '/Users/andrew/projects/humanyse/librealsense/wrappers/nodejs/../../build/Release/librealsense2.dylib'
make[3]: *** [Release/node_librealsense.node] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Darwin 19.6.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/andrew/projects/humanyse/librealsense/wrappers/nodejs
gyp ERR! node -v v14.0.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, socklen_t, unsigned int)
-- Performing Test curl_cv_func_send_test
[ 74%] Building CXX object tools/recorder/CMakeFiles/rs-record.dir/rs-record.cpp.o
[ 74%] Building CXX object tools/fw-update/CMakeFiles/rs-fw-update.dir/rs-fw-update.cpp.o
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[ 74%] Built target rs-ar-advanced

npm ERR!      /Users/andrew/.npm/_logs/2021-05-21T09_28_34_365Z-debug.log
make[2]: *** [../wrappers/nodejs/build/Release/node_librealsense.node] Error 1
make[1]: *** [wrappers/nodejs/CMakeFiles/BUILD_NODE_ADDON.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, unsigned int, int)
-- Performing Test curl_cv_func_send_test
[ 75%] Linking CXX executable rs-tracking-and-depth
[ 76%] Linking CXX executable rs-hdr
-- Performing Test curl_cv_func_send_test - Failed

Copying librealsense<IP_ADDRESS>.dylib, librealsense2.2.45.dylib, and librealsense2.dylib from a completed build to ./wrappers/nodejs/build/Release didn't make a difference.
The build output is littered with this. What could this mean?
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, int, unsigned int)
-- Performing Test curl_cv_func_send_test
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, size_t, int)
-- Performing Test curl_cv_func_send_test
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, size_t, unsigned int)
-- Performing Test curl_cv_func_send_test
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, socklen_t, int)
-- Performing Test curl_cv_func_send_test
[ 76%] Linking CXX executable rs-enumerate-devices
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, socklen_t, unsigned int)
[ 76%] Linking CXX shared library librealsense2-gl.dylib
-- Performing Test curl_cv_func_send_test
[ 76%] Built target rs-enumerate-devices
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, unsigned int, int)
-- Performing Test curl_cv_func_send_test
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const char *, unsigned int, unsigned int)
-- Performing Test curl_cv_func_send_test
[ 76%] Built target realsense2-gl
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const void *, int, int)
-- Performing Test curl_cv_func_send_test
-- Performing Test curl_cv_func_send_test - Failed
-- Tested: ssize_t send(int, const void *, int, unsigned int)
-- Performing Test curl_cv_func_send_test

Your help is very much appreciated.

I do not have a reference to a past example of a RealSense Node.js installation on Mac to compare to yours.  A RealSense user in a past case who had problems with the npm install instruction did find though that the alternative instruction below worked for them, so you could give that a try:
npm i --vs-configuration=Release
https://github.com/IntelRealSense/librealsense/issues/8847#issuecomment-821787303

Running that command in ./wrappers/nodejs/ doesn't help.
It looks to me like that problem is isolated to the ./wrappers/nodejs/src/addon.cpp file. Whether building from source or installing via npm, it always fails at that spot.
This is the first error that appears during a build with npm.
** BUILD SUCCEEDED **

><EMAIL_ADDRESS>install /Users/andrew/projects/eel/node_modules/node-librealsense
> node-gyp rebuild

  CXX(target) Release/obj.target/node_librealsense/src/addon.o
../src/addon.cpp:30:20: error: no matching member function for call to 'Get'
    return v8obj_->Get(Nan::New(name).ToLocalChecked());
           ~~~~~~~~^~~
/Users/andrew/Library/Caches/node-gyp/14.0.0/include/node/v8.h:3686:43: note: candidate function not viable: requires 2
      arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,

Thanks very much for your patience.  My research located some guidance about using node-gyp with MacOS Catalina that may be worth reading.
https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md

Wow, that a wild ride. You were right @MartyG-RealSense , it had to do with node-gyp's compatibility issues with Catalina specifically.
What worked for me.
Open ~/.node-gyp/<your version>/include/node/common.gypi, search for MACOSX_DEPLOYMENT_TARGET and set it to your current version of Mac OS. My file reported 10.13, even though I'm on 10.15.7, so I corrected it. Next, use n or nvm to downgrade to<EMAIL_ADDRESS>with sudo n 8.16.1. npm install --save node-librealsense worked after I did those steps. Thanks so much Marty, you're a livesaver!

You are very welcome @alifeinbinary - thanks so much for sharing the details of your MacOS Catalina installation method for Node.js with the RealSense community!   :)


Support the sonar.search.javaOpts property

thanks! accepting coffee contributions too :)

and btw, would you like to get write access, handle PRs,...?

thanks! accepting coffee contributions too :)

:-)

and btw, would you like to get write access, handle PRs,...?

Sure

cool, invitation sent. To push a release just do rake module:release, it will tag the code and travis will autodeploy to the forge

Could you please remind me how it work to perform a relase?
rake module:release, but how do I set the version?
once done, how long does it take to have the tag created, etc. ?
Thank you
David RACODON
Freelance QA Consultant
LinkedIn https://ch.linkedin.com/pub/david-racodon/11/62/283 | Twitter
https://twitter.com/davidracodon
On Thu, Jul 9, 2015 at 9:03 AM, Carlos Sanchez<EMAIL_ADDRESS>wrote:

cool, invitation sent. To push a release just do rake module:release, it
will tag the code and travis will autodeploy to the forge
—
Reply to this email directly or view it on GitHub
https://github.com/maestrodev/puppet-sonarqube/pull/31#issuecomment-119847586
.

It uses https://github.com/maestrodev/puppet-blacksmith
It will release the version set in the manifest and bump the patch number. If you want to release a different version just edit the manifest before doing it
The upload to the forge is done by travis from the tag created by rake module:release in a short period of time

Thanks for the quick answer. It looks like the metadata.json file has been
updated:
https://github.com/maestrodev/puppet-sonarqube/commit/cb20edcd56b1bee2bbf2c10bce9e24bd9e01efed
but I can't see any v2.6.3 tag. Am I missing something?
David RACODON
Freelance QA Consultant
LinkedIn https://ch.linkedin.com/pub/david-racodon/11/62/283 | Twitter
https://twitter.com/davidracodon
On Fri, Aug 21, 2015 at 5:15 PM, Carlos Sanchez<EMAIL_ADDRESS>wrote:

It uses https://github.com/maestrodev/puppet-blacksmith
It will release the version set in the manifest and bump the patch number.
If you want to release a different version just edit the manifest before
doing it
The upload to the forge is done by travis from the tag created by rake
module:release in a short period of time
—
Reply to this email directly or view it on GitHub
https://github.com/maestrodev/puppet-sonarqube/pull/31#issuecomment-133459561
.

v2.6.2 is the version released
2.6.3 is the next version

OK. I guess I'm a bit tired... Sorry for the inconvenience.
David RACODON
Freelance QA Consultant
LinkedIn https://ch.linkedin.com/pub/david-racodon/11/62/283 | Twitter
https://twitter.com/davidracodon
On Fri, Aug 21, 2015 at 5:29 PM, Carlos Sanchez<EMAIL_ADDRESS>wrote:

v2.6.2 is the version released
2.6.3 is the next version
—
Reply to this email directly or view it on GitHub
https://github.com/maestrodev/puppet-sonarqube/pull/31#issuecomment-133463306
.


Improve crawler source workflow.

Currently, the crawler source TSV file is cumbersome and adding a new crawler source requires a fairly heavy database operation.
We've always imagined having a UI of some kind that allowed registration of new crawler sources.
Let's work in that direction by implementing a stand alone crawler source json object for each source that can be validated and may grow over time per #63 -- a github action could then be set up to test the json objects and create the crawler source tsv file?
In a future sprint, we could build a UI around the json objects such that the contribution model is no longer through a PR but through some kind of interface.

If we take the route of JSON files representing each source, it would be an option to have the crawler update the crawler source table at the start of its run rather than requiring a liquibase execution first. Having the crawler manage its own table makes sense to me and avoiding table data loading with liquibase should help simplify db management long term. (manage schema, not data)

Good call -- I think this would be a big improvement. Let's keep an eye on it. I'd meant to fit this in last year and it didn't happen. It's for sure a priority.

Example JSON file for a single source:
{
	"crawlerSourceId" : 5,
	"sourceName" : "NWIS Surface Water Sites",
	"sourceSuffix" : "nwissite",
	"sourceUri" : "https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=usgs_nldi_gages.geojson",
	"featureId" : "provider_id",
	"featureName" : "name",
	"featureUri" : "subjectOf",
	"featureReach" : "nhdpv2_REACHCODE",
	"featureMeasure" : "nhdpv2_REACH_measure",
	"ingestType" : "reach",
	"featureType" : "hydrolocation"
}

The key names map directly to the database columns, but we could simplify them as needed.

Here's a first draft of a schema to validate the crawler source files. Let me know what you think and any suggestions for better descriptions/names @dblodgett-usgs It has very loose validation with most of it being character limits that match the database table.
{
	"$schema": "http://json-schema.org/draft/2020-12/schema",
	"title": "Crawler Source",
	"description": "A source from which the Crawler can ingest features.",
	"type": "object",
	"properties": {
		"id": {
			"description": "The unique identifier for the source",
			"type": "integer",
			"minimum": 0,
			"maximum":<PHONE_NUMBER>
		},
		"name": {
			"description": "A human readable name for the source",
			"type": "string",
			"pattern": "^[0-9a-zA-z_-]{1,500}$"
		},
		"suffix": {
			"description": "Unique suffix for database and service use",
			"type": "string",
			"pattern": "^[0-9a-zA-z_-]{1,1000}$"
		},
		"uri": {
			"description": "Source location to download GeoJSON features",
			"type": "string",
			"pattern": "^.{1,256}$"
		},
		"feature": {
			"description": "Metadata of the features",
			"type": {
				"$ref": "#/$defs/feature"
			}
		},
		"ingestType": {
			"description": "Method used to index feature",
			"type": "string",
			"pattern": "^(reach|point)$"
		}
	},
	"required": [
		"id",
		"name",
		"suffix",
		"uri",
		"feature",
		"ingestType"
	],
	"$defs": {
		"feature": {
			"type": "object",
			"required": [
				"id",
				"type",
				"name",
				"uri"
			],
			"properties": {
				"id": {
					"type": "string",
					"description": "Key name that maps to the ID of the feature",
					"pattern": "^.{1,500}$"
				},
				"type": {
					"type": "string",
					"description": "Associated location type for this feature",
					"pattern": "^(hydrolocation|type|varies)$"
				},
				"name": {
					"type": "string",
					"description": "Key name that maps to the name of the feature",
					"pattern": "^.{1,500}$"
				},
				"uri": {
					"type": "string",
					"description": "Key name that maps to the URI of the feature",
					"pattern": "^.{1,256}$"
				},
				"reach": {
					"type": "string",
					"description": "Key name that maps to the reachcode of the feature",
					"pattern": "^.{1,500}$"
				},
				"measure": {
					"type": "string",
					"description": "Key name that maps to the measure of the feature",
					"pattern": "^.{1,500}$"
				}
			}
		}
	}
}

Optionally, we could validate the source URI with a HEAD request to check if we get a 200 response.

I like that idea. I think we should go ahead and get this implemented.


Notification after Integration Test run on Jenkins

Is your feature request related to a problem? Please describe
Currently, TestPublisher is publishing test results to S3. To make the results more visible send a notification informing about the test run.
Describe the solution you'd like
Notification can be send to either slack or through email.
Describe alternatives you've considered
No response
Additional context
No response

[Triage] @owaiskazi19 Are you working on this? If yes can you assign it to yourself and add the approach here?
Thanks!

[Triage] @owaiskazi19 Are you working on this? If yes can you assign it to yourself and add the approach here? Thanks!

I have assigned it. I'll add the approach once we finalize it. Thanks.

Followed 2 designs for the issue:

[Discarded] Sending a single notification after every bundle is build and tested. Draft PR for the same: https://github.com/opensearch-project/opensearch-build/pull/972. Based on the discussion as all 3 tests Integ, Perf and BWC combined takes around 10 hrs to run. It'll delay the notification for a longer time.

Creating a separate channel for sending notification of tests as when they are run. https://github.com/opensearch-project/opensearch-build/pull/1105


Travis tweaks

Coverage increased (+0.3%) to 100.0% when pulling 5b4771889080cb6f64558770338d04f6d9f53494 on travis-tweaks into 2aeae2f1b1dce9cb86941124c28adc607ca775f4 on master.


Sandbox orders should be identifiable to a merchant

The business requirement here is that owners need to be able to id test orders such that they are not accidentally fulfilled. The is quite a bit of feedback from merchants on this one.
Ideas? Is there any information we can add here?

Add as order comment.


Refresh image url

Can you tell me how can I refresh image cache for particular image URL?
Use case :

I upload the image to firebase storage with the same name(which replaces existing image). When I clear app data I get the correct image, It seems that the same URL image is not being downloaded again(Which is intended behavior) but I would like to refresh that image URL manually.

try clearDiskCachedImage to clear particular url cached


Add a special case for git config discovery inside tests

Fixes #7469: Some tests will fail if one have a local git config user.name/user.email

r? @ehuss
(rust_highfive has picked a reviewer for you, use r? to override)

Thanks!   This looks like it changes the behavior when config files fail to load. Previously errors were ignored, and I think it would be good to preserve that behavior.

I have restored the previous behavior as requested. I went even further with env::current_dir()?, handing the error in place: now default git config is returned if that happens.
It bothers me a bit that the code to do that turned out to be not very elegant:
    let current_working_directory = env::current_dir();

    if current_working_directory.is_err() {
        return GitConfig::open_default().ok();
    }

    let current_working_directory = current_working_directory.unwrap();

There are probably some combinators that could be applied here to seamlessly integrate with the code that goes after it, but I couldn't come up with any. Suggestions welcome!

@ehuss There are now two additional commits as a result of the review, should I squash everything into one for cleaner history?

Yea, if you could squash, that would be great.  We're often not too careful about that here, but I do prefer a cleaner history.

Done. Didn't want to do that during the review to make it easier to view the changes.

Thanks! 😄
@bors r+

:pushpin: Commit 0f51c48fc9290b66e7f4337bda984b98b9703c80 has been approved by ehuss

:hourglass: Testing commit 0f51c48fc9290b66e7f4337bda984b98b9703c80 with merge 6256eca9deed80a2b0d4f92dc9b428a7b8d98ac8...

:sunny: Test successful - checks-azure
Approved by: ehuss
Pushing 6256eca9deed80a2b0d4f92dc9b428a7b8d98ac8 to master...


No map file generated while building with Neo.Compiler.MSIL console app v<IP_ADDRESS> [DEBUGGER SUPPORT]

Hello,
I have compiled the neo-debugger neo compiler tool and compiled with it a smart contract, .debug.json file generated but no .map file generated:
Here is the output of the compiler:
1>------ Rebuild All started: Project: NeoContract2, Configuration: Release Any CPU ------
1>  NeoContract2 -> D:\NEO\TestProjects\NeoContract2\NeoContract2\bin\Release\NeoContract2.dll
1>  Start NeoContract converter, Source File: D:\NEO\TestProjects\NeoContract2\NeoContract2\bin\Release\NeoContract2.dll
1>  Neo.Compiler.MSIL console app v<IP_ADDRESS> [DEBUGGER SUPPORT]
1>  Find entrypoint:System.Int32 NeoContract2.Contract2::Main(System.String,System.Object[])
1>  convert succ
1>  gen abi succ
1>  gen debug map succ
1>  write:NeoContract2.avm
1>  write:NeoContract2.abi.json
1>  write:NeoContract2.debug.json
1>  SUCC
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
Please tell me why ?
Can anyone upload already compiled neo-debugger-tools for Windows 10 ?
Kind Regards.

The .debug.json file is what you need for latest version of the debugger. Just open the .avm in the debugger and it all should work.

This is what the compiler makes:
1>------ Rebuild All started: Project: NEO-Emulator, Configuration: Release Any CPU ------
1> NEO-Emulator -> D:\NEO\NEO_debug_tools\Newest\neo-debugger-tools-master\neo-debugger-tools-master\NEO-Emulator\bin\Release\NEO-Emulator.dll
2>------ Rebuild All started: Project: ICO-Template, Configuration: Release Any CPU ------
2>D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2041,5): warning MSB3274: The primary reference "D:\NEO\NEO_debug_tools\Newest\neo-debugger-tools-master\neo-debugger-tools-master\NEO-Emulator\bin\Release\NEO-Emulator.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.7" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.6.1".
2> ICO-Template -> D:\NEO\NEO_debug_tools\Newest\neo-debugger-tools-master\neo-debugger-tools-master\ICO-Template\bin\Release\ICOContract.dll
2> Start NeoContract converter, Source File: D:\NEO\NEO_debug_tools\Newest\neo-debugger-tools-master\neo-debugger-tools-master\ICO-Template\bin\Release\ICOContract.dll
2> Neo.Compiler.MSIL console app v<IP_ADDRESS> [DEBUGGER SUPPORT]
2> Find entrypoint:System.Object Neo.SmartContract.ICO_Template::Main(System.String,System.Object[])
2> convert succ
2> gen abi succ
2> gen debug map succ
2> write:ICOContract.avm
2> write:ICOContract.abi.json
2> write:ICOContract.debug.json
2> SUCC
========== Rebuild All: 2 succeeded, 0 failed, 0 skipped ==========
Thank you for your answer Relfos.
I need the .neomap file, how to generate the .neomap file?

Like I wrote in the other rep, current version no longer uses .neomap format.
Readme was updated.


Leave browser open. Dev workflow how to?

Is it possible to leave remote browser open?
Because now when I change something in my code during development I need to restart php cli script, wich leads to closing chrome and then I need to craete it again, copy paste token, login, go to needed page etc. This is very annoying and slows down  development a lot.
Commenting browser.close(); in PuppeteerConnectionDelegate.js did not help

Oh I was working with wrong version of PuppeteerConnectionDelegate.js. Now it helps


/es

Request type

[] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x ] Correction or update

Details

In this link https://developer.mozilla.org/es/docs/Móvil/Viewport_meta_tag has a link on the section "Common Viewport Sizes on Mobile Devices and Tablets" to "https://docs.adobe.com/content/help/en/target/using/experiences/vec/mobile-viewports.html" but in Spanish that link are wrong and link to "http://i-skool.co.uk/mobile-development/web-design-for-mobiles-and-tablets-viewport-sizes/" butthat domain is for sale

https://developer.mozilla.org/es/docs/Móvil/Viewport_meta_tag

Unfortunately, translations can be outdated sometimes. We are working on a long term solution.
For now, please note that we're not having the bandwidth to address issues like this. See also https://github.com/mdn/sprints#mdn-translations


Profile-Guided Optimization (PGO) benchmark report

Hi!
I was interested in optimizing the library's performance even further. I evaluated Profile-Guided Optimization (PGO) on many projects - all the results are available at https://github.com/zamazan4ik/awesome-pgo . Since this compiler optimization works well in many places, especially different parsers, I decided to apply it to the project - here are my benchmark results.
Test environment

Fedora 40
Linux kernel 6.9.7
AMD Ryzen 9 5900x
48 Gib RAM
SSD Samsung 980 Pro 2 Tib
Compiler - Rustc 1.79
ieee80211-rs version: master branch on commit<PHONE_NUMBER>134c5487a03754c80f18e5f92be563
Disabled Turbo boost

Benchmark
For benchmark purposes, I use built-in into the project benchmarks. For PGO optimization I use cargo-pgo tool. Release bench result I got with taskset -c 0 cargo bench command. The PGO training phase is done with taskset -c 0 cargo pgo bench, PGO optimization phase - with taskset -c 0 cargo pgo optimize bench.
taskset -c 0 is used for reducing the OS scheduler influence on the results. All measurements are done on the same machine, with the same background "noise" (as much as I can guarantee).
Results
I got the following results:

Release: https://gist.github.com/zamazan4ik/9ef6e41b3559cfc240adcb7ccf0bf372
PGO optimized compared to Release: https://gist.github.com/zamazan4ik/8a11bed6a61d3e22875e2dc84a1c669a
(just for reference) PGO instrumented compared to Release: https://gist.github.com/zamazan4ik/ab2c3a81e04dad3866e2ab7a3f9084b7

According to the results, PGO measurably improves the library's performance in many cases.
Further steps
I can suggest the following action points:

Perform more PGO benchmarks with other datasets (if you are interested enough in it). If it shows improvements - add a note to the documentation (the README file, I guess) about possible improvements in the library's performance with PGO.
Probably, you can try to get some insights about how the code can be optimized further based on the changes that the compiler performed with PGO. It can be done via analyzing flamegraphs before and after applying PGO to understand the difference or checking some assembly/LLVM IR differences before and after PGO.

I would be happy to answer your questions about PGO.
P.S. I created the issue just because Discussions are disabled for the repository. It's just a benchmark report, not a bug or smth like that.

Hi, thanks a lot for the write up!
I'm going to take a closer look at this tomorrow and enable discussions. I'd do it now, if I weren't lying in a tent somewhere.
It's pretty obvious, that the library benefits from PGO greatly.

I added some stuff to the README and enabled discussions. Thanks a lot for this optimization!


Updates to WinForms interop

What does the pull request do?

Renames Avalonia.Win32.Interop to Avalonia.Win32.Interoperability as that's how this project was named on the nuget.
Fixes CI configuration to build Avalonia.Win32.Interoperability project again. For reference, it wasn't published to nuget singe 11.0-preview1 (I assume because we dropped old MSBuild around there, and forgot to adjust config).
Adds "net6.0-windows" to the Avalonia.Win32.Interoperability. Still buildable on non-windows.
~Replaces old flucky implementation of WpfAvaloniaHost with one based on HwndHost. Old implementation potentially could work better and deeper integrated, but didn't maintain it at all, leaving that in a bad state. HwndHost-based solution matches the behavior of WinForms Avalonia control and in works better in general.~
WPF implementation was removed after internal discussion. It might be returned at some point when we implement proper backend for WPF. Before that, if you need to host Avalonia control in WPF, and don't mind airspace problem, please use combination of HwndHost and EmbeddableControlRoot. See https://github.com/maxkatz6/AvaloniaHwndHostSample/blob/main/Avalonia.Win32.Interoperability/AvaloniaHwndHost.cs for reference.
Both controls do start render timer automatically now and handle correct control lifecycle events (handle created/destroyed) instead of inializing right away in ctor.
Some minor fixes in ControlCatalog.Desktop.

Breaking changes

Namespace change.
WPF control was removed.

Fixed issues
Fixes #11454
Fixes #4951
Fixes #5865
Fixes #8816
Fixes #5019
Fixes #4953 (possibly, but I couldn't repro even before)
Fixes #4952

You can test this PR using the following package version. 11.0.999-cibuild0035274-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]

I don't think airspace is a huge problem with WpfAvaloniaHost in most cases, as the most likely overlap are popups or opened combobox contents which already work fine. So I don't understand why it will be removed. There are already blog posts out there that show how to use it those will now be useless and lead to frustration if trying to follow

@Mrxx99 @robloo
Yes, it shouldn't be a big problem for existing applications for a couple of reasons:

Old wpf host control was broken with lots of issues:

forcing direct2d + sharpdx (=bad perf)
forcing ui-thread renderer (=bad perf x2)
wheel scrolling is just broken for some reason
no adorners at all for some reason
tab focus is broken for some reason
embedding is not implemented (though, not a big deal)
also https://github.com/AvaloniaUI/Avalonia/issues/4952
and https://github.com/AvaloniaUI/Avalonia/issues/5019
and https://github.com/AvaloniaUI/Avalonia/issues/8816

From the nuget statistics, this package was rarely used, one of the least downloaded packages we even have. And nobody even noticed that this package wasn't shipped to the nuget since 11.0-preview1
There is a simple drop in replacement based on HwndHost (see my repo). Which I have recommended a while before.

XPF reasoning here related to the fact, that it is possible to implement a proper backend for WPF (not only XPF) without HwndHost in the future. While it's less possible for WinForms.

You can test this PR using the following package version. 11.0.999-cibuild0035850-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]


Installation issue

Not sure if this is related issue #4 , but after installing higlass-manage on a python3 environment, I tried higlass-manage start, and it gave the following error message.

/anaconda2/envs/python36/lib/python3.6/site-packages/h5py/init.py:36: FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type.
from ._conv import register_converters as _register_converters
Traceback (most recent call last):
File "/anaconda2/envs/python36/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/urllib3/connectionpool.py", line 357, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 1026, in _send_output
self.send(msg)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 964, in send
self.connect()
File "/anaconda2/envs/python36/lib/python3.6/site-packages/docker/transport/unixconn.py", line 42, in connect
sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/anaconda2/envs/python36/lib/python3.6/site-packages/requests/adapters.py", line 440, in send
timeout=timeout
File "/anaconda2/envs/python36/lib/python3.6/site-packages/urllib3/connectionpool.py", line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File "/anaconda2/envs/python36/lib/python3.6/site-packages/urllib3/util/retry.py", line 357, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/urllib3/packages/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/urllib3/connectionpool.py", line 357, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 1026, in _send_output
self.send(msg)
File "/anaconda2/envs/python36/lib/python3.6/http/client.py", line 964, in send
self.connect()
File "/anaconda2/envs/python36/lib/python3.6/site-packages/docker/transport/unixconn.py", line 42, in connect
sock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/anaconda2/envs/python36/bin/higlass-manage", line 11, in
sys.exit(cli())
File "/anaconda2/envs/python36/lib/python3.6/site-packages/click/core.py", line 722, in call
return self.main(*args, **kwargs)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/anaconda2/envs/python36/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/higlass_manage.py", line 296, in start
container = client.containers.get(container_name)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/docker/models/containers.py", line 843, in get
resp = self.client.api.inspect_container(container_id)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/docker/utils/decorators.py", line 19, in wrapped
return f(self, resource_id, *args, **kwargs)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/docker/api/container.py", line 730, in inspect_container
self._get(self._url("/containers/{0}/json", container)), True
File "/anaconda2/envs/python36/lib/python3.6/site-packages/docker/utils/decorators.py", line 46, in inner
return f(self, *args, **kwargs)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/docker/api/client.py", line 198, in _get
return self.get(url, **self._set_request_timeout(kwargs))
File "/anaconda2/envs/python36/lib/python3.6/site-packages/requests/sessions.py", line 521, in get
return self.request('GET', url, **kwargs)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/anaconda2/envs/python36/lib/python3.6/site-packages/requests/adapters.py", line 490, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

Not sure if this will be fixed in v0.1.14. I installed v0.1.13 through pip. I also tried some earlier versions, and they all gave the same error message. What might be the problem here? Is it related to that I am installing in a python3 environment? Thanks.

Just to make sure, do you have Docker installed?

Yes, I do have Docker installed.

I found the reason. After I installed Docker, I never opened it or logged in... Now that I logged in on Docker, the error message went away. Thanks!

Thanks for reporting, I added a more meaningful error message that will appear in the next release.


Rename GraphQL filter typenames

@laura-ham The typenames for the filter where objects are specific to a class, however, the properties of the object seem to be generic. Is this done op purpose? Would it make more sense to either make the typenames generic (more flexibility) or the properties specific to the class (better type safety)?

Sure! For example, when looking at BuyAction and Flight action in the GraphQL schema, they have their typenames for the where field defined as WeaviateLocalGetActionsBuyActionWhereInpObj and WeaviateLocalGetActionsFlightWhereInpObj. However, the properties of these objects are equal:
path: [String]
Specify the path from the Things or Actions fields to the property name (e.g. ['Things', 'City', 'population'] leads to the 'population' property of a 'City' object)

valueInt: Int
Specify an Integer value that the target property will be compared to

operands: [WeaviateLocalGetActionsFlightWhereOperandsInpObj]
Contains the Operands that can be applied to a 'where' filter

operator: WeaviateLocalGetActionsFlightWhereOperatorEnum
Contains the Operators that can be applied to a 'where' filter

valueDate: String
Specify a String value that the target property will be compared to

valueBoolean: Boolean
Specify a Boolean value that the target property will be compared to

valueString: String
Specify a String value that the target property will be compared to

valueText: String
Specify a Text value that the target property will be compared to

valueNumber: Float
Specify a Float value that the target property will be compared to

True, I had to change the names for the where, operator and operands elements to keep a pre-existing test from failing. They were generic before.
I'm fine with renaming the other properties (valueX) to something more specific, but making the names for where, operator and operands generic won't work.

Please do so @JeroenStravers1 but also align with @laura-ham (for the prototype) and @etiennedi (for potential impact on the implementation).

Assuming this is obsolete. Closing.


CLOUD-973 added BC provider (security)

@doktoric

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1560/


Spike typescript writeup

What is the context of this PR?
Documents the Flow vs Typescript spike
How to review
Check it makes sense, anything else that needs adding?

 Spike: using Typescript


how to stop slide counting?

Hi!
How can I stop the slide counter from a specific slide? (say)
Thank you
= Appendix
== Bibliography<touying:hidden>
// stop counting from here

#show: appendix
---Original---
From: "Romain @.>
Date: Sun, Sep 29, 2024 20:50 PM
To: @.>;
Cc: @.***>;
Subject: [touying-typ/touying] how to stop slide counting? (Issue #87)
Hi!
How can I stop the slide counter from a specific slide? (say)
Thank you
= Appendix == Bibliography<touying:hidden> // stop counting from here
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

It does not make any change:
...

#show: appendix

= Appendix//<touying:hidden>

Please pay attention to the current slide number.

==  Notes<touying:hidden>
bla

== Bibliography<touying:hidden>
#bibliography("hdr.bib", title: none, style: "apa")

Can you provide a minimally reproducible example?

I sent you an email.

I checked the email you sent and I think it worked correctly.
In touying, only last-slide-counter will be frozen, while slide-counter will not be frozen, which is expected.
Maybe you were confused by your own #utils.slide-counter.update(), I don't quite understand why you need to manually change slide-counter.

Yes it worked well in the end


MC server crashed - chunk regenerating

Hey,
I have compiled mc server on my raspberry from current source. Was able to play in my skyblock world, after I used the stop command the server crashed.
[22:36:54]   D:    | MCServer has encountered an error and needs to close
[22:36:54] Details | SIGSEGV: Segmentation fault
./MCServer(_Z15PrintStackTracev+0x14)[0x1b9fb4]
./MCServer(_Z14NonCtrlHandleri+0x7c)[0x1b4368]
/lib/arm-linux-gnueabihf/libc.so.6(__default_sa_restorer_v2+0x0)[0xb6cabf20]
[22:36:54]   D:    | MCServer has encountered an error and needs to close
[22:36:54] Details | SIGABRT: Server self-terminated due to an internal fault
./MCServer(_Z15PrintStackTracev+0x14)[0x1b9fb4]
./MCServer(_Z14NonCtrlHandleri+0xa0)[0x1b438c]
/lib/arm-linux-gnueabihf/libc.so.6(__default_sa_restorer_v2+0x0)[0xb6cabf20]
/lib/arm-linux-gnueabihf/libc.so.6(gsignal+0x40)[0xb6caacdc]

Do you need more information?
Thanks,
Seadragon91

I am closing this. With the latest version of mc server, I was unable to reproduce the crash anymore.


Fix FileSystem.fullPath error when directory doesn't exist

If you try to do haxelib dev on a directory that doesn't exist FileSystem.fullPath will throw a std@file_full_path error before the exists check is run.

I moved the fullPath call out of the try block (cee23ba574bb3d94ad213df296fec2c405f01087) to prevent misleading "couldn't write to devfile" errors in case when fullPath fails.


Adding unit tests for new_workflow, workflow_list, import_workflow_modal components

Description
Adding unit tests for new_workflow, workflow_list, import_workflow_modal components
Issues Resolved
Related to #96 , #97
Check List

[x] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented.
[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

I'll be adding additional tests to the above components in my upcoming PRs to ensure better coverage


Missing 'fallthough' option

https://expressjs.com/en/4x/api.html#fallthrough
The ServeStaticOptions type when using this Plugin is missing the fallthrough property, which exists onNestExpressApplication#useStaticAssets

Would you like to create a PR for this?

Hi, @kamilmysliwiec
I created a pull request for this:  #372
I hope it will go well
Tony

Is it intentional so that fallthrough will not fallthrough to the next static path? or am I doing something wrong?


Use d3-hexbin with Angular 8

HI! I'm trying to find some reference on how to use the library with Angular 8, but didn't find anything by now. If someone can help me, I would appreciate it.
Thanks!

Please use Stack Overflow tag d3.js to ask for help. Stack Overflow provides a better collaborative forum: thousands of D3-related questions have been asked there, and some answers may be relevant to you.
When asking for help, please include a link to demonstrate the issue, preferably as an Observable notebook. It is often impossible to debug from code snippets alone. Isolate the issue and reduce your code as much as possible before asking for help. The less code you post, the easier it is for someone to debug, and the more likely you are to get a helpful response.
If you have a question about D3’s behavior and want to discuss it with other users, also consider the d3-js Google Group or joining the d3-js Slack.
Thank you! 🤗


Connect problem

Hi,
I sill get error when I run pytradfri
python3 -i -m pytradfri <IP_ADDRESS> D0kEUsM3IrRTtEbt

DEBUG:pytradfri.coap_cli:Executing <IP_ADDRESS> get ['status']
DEBUG:pytradfri.coap_cli:Received: {}
DEBUG:pytradfri.coap_cli:Executing <IP_ADDRESS> get ['15001']
DEBUG:pytradfri.coap_cli:Received: []
Traceback (most recent call last):
  File "/usr/lib/python3.4/runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.4/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.4/dist-packages/pytradfri/__main__.py", line 22, in <module>
    light = lights[0]
IndexError: list index out of range
>>> lights
[]
>>>

If i understand correctly I can connect to gateway but there is no chance to get list of lights. (I own 2 lights) I have tried reset of gateway several times. Also on some fresh installation... raspbian, raspbian lite, hassbian, ubuntu. Oryginally i was try to connect tradfri via home assistant which is using this modifided libcoap but also no succes. Home assistant accepted my security key and thats it... no error but also no lights :( I suppose that the isssue is libcoap.

DEBUG:pytradfri.coap_cli:Executing <IP_ADDRESS> get ['15001']
DEBUG:pytradfri.coap_cli:Received: []

This means that no lights have been received from your gateway.

Yep I realized that :). I was struggle with that so hard. I did restart all devices again and then home assistant starts working with Tradfri. So I guess it was my mistake. Pairing devices maybe... nvm. My fault I am noob :) Anyway thanks for you answer! I appreciate it! btw home assistant It's great! thx


Sprite Bounty Part 2

Adds sprites for the Sector commander

merged in PR https://github.com/Pax-Astralis-Dev/pax-astralis-station/pull/35


Add BZ automation to repo

Adding the Bugzilla Automation to your Repo (from bz-github-action)

I think the truth is unfortunately a little of both: it would be
master:1.4.z up until the point that we cut a release branch for
release-1.4.1, then it would be release-1.4.1:1.4.z
Does it make sense to keep it at the former until we branch, and change it
then?
On Tue, Jan 26, 2021 at 11:04 AM Shawn Hurley<EMAIL_ADDRESS>wrote:

@shawn-hurley commented on this pull request.
In .github/workflows/pr-merge.yml
https://github.com/konveyor/mig-ui/pull/1108#discussion_r564630311:

bz-on-pr-merge:

The type of runner that the job will run on

runs-on: ubuntu-latest

Steps represent a sequence of tasks that will be executed as part of the job

steps:

 - uses: docker://quay.io/konveyor/pr-merge-github-action

   name: update bugzilla to modified

   with:

     bugzilla_token: ${{ secrets.BUGZILLA_TOKEN }}

     org_repo: ${{ github.repository }}

     pr_number: ${{ github.event.pull_request.number }}

     bz_product: "Migration Toolkit for Containers"

     title: ${{ github.event.pull_request.title }}

     github_token: ${{ secrets.GITHUB_TOKEN }}

     branch_to_release: "release-1.3.2:1.3.z,release-1.4.0:1.4.0,master:1.5.0"

I think it would be good to ask @eriknelson
https://github.com/eriknelson or @ibolton336
https://github.com/ibolton336 how they are using the master branch and
bugs for this particular repo
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/konveyor/mig-ui/pull/1108#discussion_r564630311, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADEKNPZ2YRI7BDWUHKQ5WTS33RXBANCNFSM4WTHURNQ
.

I think the truth is unfortunately a little of both: it would be
master:1.4.z up until the point that we cut a release branch for
release-1.4.1, then it would be release-1.4.1:1.4.z
Does it make sense to keep it at the former until we branch, and change it
then?
On Tue, Jan 26, 2021 at 11:04 AM Shawn Hurley<EMAIL_ADDRESS>wrote:

@shawn-hurley commented on this pull request.
In .github/workflows/pr-merge.yml
https://github.com/konveyor/mig-ui/pull/1108#discussion_r564630311:

bz-on-pr-merge:

The type of runner that the job will run on

runs-on: ubuntu-latest

Steps represent a sequence of tasks that will be executed as part of the job

steps:

 - uses: docker://quay.io/konveyor/pr-merge-github-action

   name: update bugzilla to modified

   with:

     bugzilla_token: ${{ secrets.BUGZILLA_TOKEN }}

     org_repo: ${{ github.repository }}

     pr_number: ${{ github.event.pull_request.number }}

     bz_product: "Migration Toolkit for Containers"

     title: ${{ github.event.pull_request.title }}

     github_token: ${{ secrets.GITHUB_TOKEN }}

     branch_to_release: "release-1.3.2:1.3.z,release-1.4.0:1.4.0,master:1.5.0"

I think it would be good to ask @eriknelson
https://github.com/eriknelson or @ibolton336
https://github.com/ibolton336 how they are using the master branch and
bugs for this particular repo
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/konveyor/mig-ui/pull/1108#discussion_r564630311, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADEKNPZ2YRI7BDWUHKQ5WTS33RXBANCNFSM4WTHURNQ
.


Improving format of commands in the main guides.

What is the purpose of this change? What does it change?
This PR modifies the format of commands in the main guides, Readme, Development, Getting started and Installation and examples.
It also has a change in command in the Readme on line 145 & 146 based on input from @surajnarwade
I will raise another PR for the rest of the docs.

@cdrage, @surajnarwade please review

Warning: oc apply should be used on resource created by either oc create --save-config or oc apply
oauth.config.openshift.io/cluster configured
error: You must be logged in to the server (Unauthorized)

/retest

@kadel  could you provide more context to the above comment? Is it to do with the changes made in this PR?

/retest

/approve

/test e2e-core
 Failed to login as developer
make[1]: *** [configure-installer-tests-cluster] Error 1

@kadel I have rebased my PR post Suraj's PR introducing a conflict. I think this is good to go, can we merge it?


feature: Add support to Shell

Is your feature request related to a problem? Please describe.

Currently Sextant don't support Xamarin.Forms.Shell and neither does shell support any MVVM Framework.
Describe the solution you'd like

Once a solution is born from this issue: https://github.com/xamarin/Xamarin.Forms/issues/5166
I suggest to discuss this with the Xamarin team to see how we can make our life easier.
Describe alternatives you've considered

Describe suggestions on how to achieve the feature

Additional context

AFAIK they are still working on a specification and that should be share soon, so let's be ready to participate.

Any update for this @RLittlesII ?

It's not happening anytime soon due to issues on the Microsoft time. There's a reason why prism etc haven't done it either.
There is currently some work the Xamarin.Forms team is doing to support MVVM with Shell. Last I was told that work is being tracked here xamarin/Xamarin.Forms#5166

@jeanberrocalGL As stated in the body of the issue, there is work the Xamarin.Forms team has to do in order to make this feature possible.  I have seen some of the work towards that end, and I have seen some of the extension points.  I have not gone down the road of attempting an implementation because as I see it the entire API surface may have to change just to support Shell.


scrape_samples_scraped missing HELP metadata

What did you do?
I downloaded and ran the Prometheus binary with the default config to scrape itself.
I found that:

I could graph scrape_samples_scraped at /graph endpoint
But viewing the metrics metadata at /api/v1/metadata there was no entry for scrape_samples_scraped

I'm trying to both:

Understand better what this metric is, and
Help other users of Grafana to gain the same understanding.

Within Grafana you can typically see the HELP part of the metric-metadata on hover in the metrics browser:

But for this metric, there's nothing useful:

I'm interested in this metric in particular because I think it can help diagnose problems with people setting their scrape_interval much smaller than they need (and shipping data far too frequently). For example, as described here:
https://grafana.com/docs/grafana-cloud/billing-and-usage/control-prometheus-metrics-usage/changing-scrape-interval/#grafana-agent
What did you expect to see?
HELP metadata for this metric both on the /api/v1/metadata endpoint and in Grafana (on hover, in the metrics-browser).
What did you see instead? Under which circumstances?
No metadata
System information
Darwin 21.6.0 arm64
Prometheus version
prometheus, version 2.40.4 (branch: HEAD, revision: 414d31aee6586a5f29e755ae059b7d7131f1c6c8)
  build user:       root@45956a3006ca
  build date:       20221129-11:04:07
  go version:       go1.19.3
  platform:         darwin/arm64

Prometheus configuration file
# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: [ "localhost:9090" ]

Alertmanager version
No response
Alertmanager configuration file
No response
Logs
No response

The scrape_... metrics are so-called synthetic metrics. They are not exposed by the target, but they are created by Prometheus itself during scraping based on the scrape. Another synthetic metric (and the most famous of all) is the up metric.
Metadata is still not a native concept of the internal Prometheus data model. It is only really present in the exposition format (from where it is quite superficially handled and made available via the metadata API). But since synthetic metrics are only created internally and never exposed, they never get metadata attached.
One might argue the metadata should still be created for the sake of the metadata API. To me, that would feel like patching an already quite patchy API even more. It would be much better to finally fully embrace metadata in the internal data model (as it is beginning right now, out of necessity, with native histograms).

To get back to your original concern, you can estimate the scrape interval by counting the number of times the up metrics were inserted over the last hour with the following query:
count_over_time(up[1h])

This query returns the number of times the targets were scraped over the last hour.

I get that this is 'not as easy as it looks', but can someone confirm that scrape_samples_scraped is a gauge metric, as opposed to a counter?

Yes it is a gauge

Thanks!

Hello from the bug scrub.
Would this be something that is covered by the proposal to add metadata as a first class citizen in Prometheus? Should we just add metadata for these synthetic metrics or does it need to be discussed as part of the wider Metadata proposals?

I guess there are three parts to the question:

Do we want synthetic metrics to have metadata?
Do we want to expose that metadata via the current (and hopefully soon legacy) metadata endpoints?
Do we want to tackle this issue before we have a 1st class concept for metadata?

Obviously, (1) is what this issue is asking for, and if we don't want metadata for synthetic metrics, we can close this issue right now. However, once metadata is a 1st class citizen, it would be weird if synthetic metrics don't have any. (This is in the same vein as recording rules not having help and type and unit etc. right now, but once we have proper metadata support, we would start to miss those things for recording rules soon.) As (3) states, maybe we don't want to tackle this issue before we have that 1st class metadata concept (and know how it looks like). With 1st class metadata, I would assume that metadata is returned via the normal query APIs and not necessarily via the current metadata APIs, which are a bit wonky and mostly introduced on the fly to have at least some metadata support based on the data cached by the scraper (but without TSDB involvement). Which leads to (2): Once we have metadata for synthetic metrics, should we shoehorn that data into the legacy metadata APIs? If the answer is yes, we could start with it right now, but if the answer is no, we really have to wait for 1st class metadata.

Related to #11969 (which is about metadata for recording rules).


Footer Improvement

Footer Improvement
Issue Overview
The current footer design lacks functionality and visual appeal, which can detract from the overall user experience. This section outlines suggested improvements for enhancing the footer.
Current Limitations

Limited Information: The footer currently contains minimal information, making it less informative for users.
Visual Design: The design is outdated and does not align with modern UI standards, reducing engagement.
Accessibility Issues: There may be issues with text contrast and clarity, affecting usability for all users.

Suggested Improvements
1. Expand Footer Content

Description: Include additional information such as links to privacy policies, terms of service, and contact information.
Expected Outcome: Users have quick access to important information without navigating away from the page.

2. Modernize Visual Design

Description: Update the footer’s visual elements, including colors, fonts, and layout, to align with current design trends.
Expected Outcome: The footer should have a cohesive look that complements the overall application design.

3. Add Social Media Links

Description: Include icons linking to the project's social media profiles (e.g., Twitter, Facebook, LinkedIn).
Expected Outcome: Users can easily connect with the project on social media, increasing engagement and visibility.

4. Ensure Accessibility

Description: Optimize the footer for accessibility by ensuring sufficient contrast and using semantic HTML elements.
Expected Outcome: All users, including those with disabilities, can navigate the footer easily.

Steps to Reproduce Current Issues

Open the application and scroll to the footer section.
Observe the limited information provided and assess the visual appeal.
Evaluate accessibility by checking color contrast and clarity.

Screenshots

@thakuratul2 can you please assign this to me under gssoc-ext and hacktoberfest and also give a level

@Rizvi-Faiz Assigned and create the Proper PR

Hi @Rizvi-Faiz could you please assign this to me

@samriddhitiwary already assigned create new issue

Closing this issue as it's fixed in PR #116 .