Will EdgeTPU support LeakyRelu and Hardswish ops?

I was converting yolov5 int8 TFLite model to EdgeTPU, but LeakyRelu and Hardswish ops are not supported. (https://github.com/ultralytics/yolov5/pull/959)

LeakyRelu and Hardswish is the major part of CPU operations (8+51=59 out of 72).
I guess if they are supported in EdgeTPU, the model will run significantly faster.
Network inspection by netron is as below

Edge TPU Compiler version 15.0.340273435
Here is the converted EdgeTPU model yolov5s-int8_edgetpu.zip
PS: I saw  https://github.com/google-coral/edgetpu/issues/165 also discussing the support for LeakyRelu.

The support would be awesome.

Hi folks, thanks for checking in!
Previous experiments with yolo or any models requiring leakyrelu, we suggest changing the model architect to use normal relu activation (as suggested here).
But it seems to me that at this point we should really push to have this activation functions be a part of our supported ops. Ill communicate with our teams to push for this. Thanks and regards

Hi @zldrobit , @brunovollmer Okay!

LeakyReLU you can substitute it with PReLU activation which you should not experience any mAP drops at all!
For HardSwish. you can try using ReLU6 for very minimal drop in mAP.

In doing so your should have most ops mapped to the edgetpu for efficiency and still good accuracy

@Namburger Thanks for your suggestion.
After checked the PyTorch and TF documentatioin, I found that PReLU is actually identical to LeakyReLU.
I could just substitute LeakyReLU with PReLU without any further modifications.
I have already implemented HardSwish with ReLU6 op in TensorFlow API
(https://github.com/zldrobit/yolov5/blob/1f8499c047126d678f631b8ee73681c913c64995/models/tf.py#L82-L83)
        elif isinstance(w.act, nn.Hardswish):
            self.act = (lambda x: x * tf.nn.relu6(x+3) * 0.166666667) if act else tf.identity

TensorFlow Hardswish op shown in Netron (from *.pb) is depicted as

After conversion from TensorFlow to TFLite, it seems that MLIR compiler translates

to Hardswish ops, as shown in netron (from *.tflite)

I think I have to disable some part of the translation process in MLIR tflite converter to keep ReLU6 ops instread of Hardswish ops.

@zldrobit yes, PReLU is identical with an additional alpha parameter which you could default to 0.02(I believe) to keep it equivalent with LeakyReLU.
Regarding HardSwish @Naveen-Dodda do you have some suggestions on how we were able to keep it as ReLU6?

@zldrobit and @Namburger, this is great discussion ! I know a lot of people trying to use YoloV5 on coral accelerator. It is really an amazing model. We are looking forward to hearing good news on this issue !

I have discussed this in my repository issues.
https://github.com/PINTO0309/PINTO_model_zoo/issues/53
I haven't tried it yet to see if it works properly.

@zldrobit, I was able to trick the MLIR by typing the Hardswish formula just slightly different such as x * ReLU6(x+3) * 0.16666671. Not sure it would impact the accuracy though. The problem is even though tflite converter now converts those ops as ReLU6 in the tflite quantized model, I don't see them in the Edge TPU compiled model.
@Namburger, I replaced the LeakyReLUs with PReLUs . But compiler did not map them on Edge TPU :(
Yolov5-int8-EdgeTPU.tflite

@pirazor
Generally, "Operation is otherwise supported, but not mapped due to unspecified limitation" means that the input size are too large :(
I would also love to hear about the impact of replacing Hardswish with Relu6

@Namburger I find a way to suppress HardSwish transformation in TFLite conversion.
Just comment out TensorFlow v.2.4.0 code:
https://github.com/tensorflow/tensorflow/blob/582c8d236cb079023657287c318ff26adb239002/tensorflow/compiler/mlir/lite/transforms/optimize_patterns.td#L247-L286
and build TensorFlow from source.
Then, one can use this modified TensorFlow to convert models to TFLite format without HardSwish op.
I tested TFLite models before/after the mentioned modification on Edge TPU:

model
correctness
inference time

yolov5s 320x320 w/ HardSwish
False
370ms

yolov5s 416x416 w/ HardSwish
False
600ms

yolov5s 320x320 w/o HardSwish
True
100ms

yolov5s 416x416 w/o HardSwish
True
170ms

The int8 quantized TFLite model is shown in Netron:

The log of Edge TPU compilation:

@zldrobit so it seems that hardswish op is a major cause of slowdown. Very interesting, nice work tracking this down!
We are currently preparing updated YOLOv5 models for a v4.0 release that use nn.SiLU() instead of nn.Hardswish(). These new models are slightly smaller and also slightly faster (on PyTorch GPU at least). I'm not sure what effect this will have on TFLite exports. Here's a link to the updated YOLOv5s:
https://github.com/ultralytics/yolov5/releases/download/v3.1/yolov5s4.pt
I'm hoping nn.SiLU() can export directly to Swish layers in TF and TFLite, especially since Google has adopted the activation function in many of their own works like EfficientDet. The new v4.0 release should be live soon.

@zldrobit so it seems that hardswish op is a major cause of slowdown. Very interesting, nice work tracking this down!
We are currently preparing updated YOLOv5 models for a v4.0 release that use nn.SiLU() instead of nn.Hardswish(). These new models are slightly smaller and also slightly faster (on PyTorch GPU at least). I'm not sure what effect this will have on TFLite exports. Here's a link to the updated YOLOv5s:
https://github.com/ultralytics/yolov5/releases/download/v3.1/yolov5s4.pt
I'm hoping nn.SiLU() can export directly to Swish layers in TF and TFLite, especially since Google has adopted the activation function in many of their own works like EfficientDet. The new v4.0 release should be live soon.

@zldrobit, did you also resolve the leaky_relu to prelu conversion ? I think 8 more TPU operations will add some more speed.

@zldrobit, did you also resolve the leaky_relu to prelu conversion ? I think 8 more TPU operations will add some more speed.

@pirazor recent YOLOv5 v4.0 release replaces all nn.LeakyReLU() activations and nn.Hardswish() activations with nn.SiLU() activations. If the nn.SiLU() ops can be exported to run on TPU then most of the speed issues should be resolved.

@pirazor recent YOLOv5 v4.0 release replaces all nn.LeakyReLU() activations and nn.Hardswish() activations with nn.SiLU() activations. If the nn.SiLU() ops can be exported to run on TPU then most of the speed issues should be resolved.

@glenn-jocher @pirazor According to the updated YOLOv5 v4.0 release, I could convert all activation layers to Edge TPU.
Inference time reduces from ~100ms (v3) to ~60ms (v4).

@glenn-jocher @pirazor According to the updated YOLOv5 v4.0 release, I could convert all activation layers to Edge TPU.
Inference time reduces from ~100ms (v3) to ~60ms (v4).

@zldrobit, I've tested and your changes in your tf-export script and was able to produce the same model. What I am curious is if we can also somehow map the resize nearest neighbor operations that are in the middle of the graph. The edgetpu will not have to split the graph again if they were supported. The compiler says the version is not supported, so maybe we can find a matching Tensorflow version. @Namburger do you know which version of Tensorflow we should use to support the resize nearest neighbor operations on Edge Tpu ?

@zldrobit, I've tested and your changes in your tf-export script and was able to produce the same model. What I am curious is if we can also somehow map the resize nearest neighbor operations that are in the middle of the graph. The edgetpu will not have to split the graph again if they were supported. The compiler says the version is not supported, so maybe we can find a matching Tensorflow version. @Namburger do you know which version of Tensorflow we should use to support the resize nearest neighbor operations on Edge Tpu ?

@zldrobit that's great news! It seems I made the right change replacing Hardswish with SiLU.
@pirazor yes that's a good point. These are the two upscaling layers in YOLO that upscale from P3 to P4, and then from P4 to P5.
A second spot for improvement may be the STRIDED_SLICE layers. These are due to the very first YOLOv5 module called Focus(). This uses a method very similar Tensorflow space_to_depth: https://www.tensorflow.org/api_docs/python/tf/nn/space_to_depth
Perhaps in the next release I can try to align the two methods so that the TF space_to_depth can be used directly, perhaps improving export compatibility on the STRIDED_SLICE ops.

@zldrobit that's great news! It seems I made the right change replacing Hardswish with SiLU.
@pirazor yes that's a good point. These are the two upscaling layers in YOLO that upscale from P3 to P4, and then from P4 to P5.
A second spot for improvement may be the STRIDED_SLICE layers. These are due to the very first YOLOv5 module called Focus(). This uses a method very similar Tensorflow space_to_depth: https://www.tensorflow.org/api_docs/python/tf/nn/space_to_depth
Perhaps in the next release I can try to align the two methods so that the TF space_to_depth can be used directly, perhaps improving export compatibility on the STRIDED_SLICE ops.

@pirazor the TF upsample op is here. Perhaps you can try alternative implementations (I see one is present but commented).
https://github.com/zldrobit/yolov5/blob/c761637b51701565a9efbd585a05f093f8aa5f41/models/tf.py#L219-L228

@pirazor the TF upsample op is here. Perhaps you can try alternative implementations (I see one is present but commented).
https://github.com/zldrobit/yolov5/blob/c761637b51701565a9efbd585a05f093f8aa5f41/models/tf.py#L219-L228

@zldrobit the Focus() module that we might be able to replace with a space_to_depth layer is here. The problem is the current order of ops in the Focus() layer does not translate directly, so replacement is not possible in the v4.0 release models. I can try to work with the TF layer to create a compatible Focus() op for the next release.
https://github.com/zldrobit/yolov5/blob/c761637b51701565a9efbd585a05f093f8aa5f41/models/tf.py#L78-L92

@zldrobit the Focus() module that we might be able to replace with a space_to_depth layer is here. The problem is the current order of ops in the Focus() layer does not translate directly, so replacement is not possible in the v4.0 release models. I can try to work with the TF layer to create a compatible Focus() op for the next release.
https://github.com/zldrobit/yolov5/blob/c761637b51701565a9efbd585a05f093f8aa5f41/models/tf.py#L78-L92

@Namburger I find a way to suppress HardSwish transformation in TFLite conversion.
Just comment out TensorFlow v.2.4.0 code:
https://github.com/tensorflow/tensorflow/blob/582c8d236cb079023657287c318ff26adb239002/tensorflow/compiler/mlir/lite/transforms/optimize_patterns.td#L247-L286
and build TensorFlow from source.
Then, one can use this modified TensorFlow to convert models to TFLite format without HardSwish op.

I try to do like this one. But got some error after I install tensorflow v2.4.0 from source.
This is the error when I try python3 models/tf.py --weight ./runs/train/exp/weights/best.pt ....
E tensorflow/stream_executor/cuda/cuda_blas.cc:226] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
W tensorflow/core/framework/op_kernel.cc:1763] OP_REQUIRES failed at conv_ops.cc:1106 : Not found: No algorithm worked!
TensorFlow saved_model export failure: No algorithm worked! [Op:Conv2D]
@zldrobit Can you guide me how to install tensorflow from source properly?
This is the way I do:

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r2.4
Open optimize_patterns.td: delete everything from line 247 to 286 (HardSwishOp)
./configure (below is the configure, only yes in Cuda option)

You have bazel 3.1.0 installed.
Please specify the location of python. [Default is /usr/bin/python3]:
Found possible Python library paths:
/usr/lib/python3.6/dist-packages
/usr/local/lib/python3.6/dist-packages
/usr/lib/python3/dist-packages
Please input the desired Python library path to use.  Default is [/usr/lib/python3.6/dist-packages]
Do you wish to build TensorFlow with ROCm support? [y/N]:
No ROCm support will be enabled for TensorFlow.
Do you wish to build TensorFlow with CUDA support? [y/N]: y
CUDA support will be enabled for TensorFlow.
Do you wish to build TensorFlow with TensorRT support? [y/N]:
No TensorRT support will be enabled for TensorFlow.
Found CUDA 11.1 in:
/usr/local/cuda-11.1/targets/x86_64-linux/lib
/usr/local/cuda-11.1/targets/x86_64-linux/include
Found cuDNN 8 in:
/usr/local/cuda-11.1/targets/x86_64-linux/lib
/usr/local/cuda-11.1/targets/x86_64-linux/include
Please specify a list of comma-separated CUDA compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus. Each capability can be specified as "x.y" or "compute_xy" to include both virtual and binary GPU code, or as "sm_xy" to only include the binary code.
Please note that each additional compute capability significantly increases your build time and binary size, and that TensorFlow only supports compute capabilities >= 3.5 [Default is: 7.5]:
Do you want to use clang as CUDA compiler? [y/N]:
nvcc will be used as CUDA compiler.
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:
Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]:
Not configuring the WORKSPACE for Android builds.
Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details.
--config=mkl         	# Build with MKL support.
--config=mkl_aarch64 	# Build with oneDNN support for Aarch64.
--config=monolithic  	# Config for mostly static monolithic build.
--config=ngraph      	# Build with Intel nGraph support.
--config=numa        	# Build with NUMA support.
--config=dynamic_kernels	# (Experimental) Build kernels into separate shared objects.
--config=v2          	# Build TensorFlow 2.x instead of 1.x.
Preconfigured Bazel build configs to DISABLE default on features:
--config=noaws       	# Disable AWS S3 filesystem support.
--config=nogcp       	# Disable GCP support.
--config=nohdfs      	# Disable HDFS support.
--config=nonccl      	# Disable NVIDIA NCCL support.
Configuration finished

bazel build --config=cuda //tensorflow/tools/pip_package:build_pip_package
pip3 install /tmp/tensorflow_pkg./tensorflow-2.4.0-cp36-cp36m-linux_x86_64.whl
After that I check tensorflow lib, everything seem to be alright but I got the error that I mention above.

@Namburger I find a way to suppress HardSwish transformation in TFLite conversion.
Just comment out TensorFlow v.2.4.0 code:
https://github.com/tensorflow/tensorflow/blob/582c8d236cb079023657287c318ff26adb239002/tensorflow/compiler/mlir/lite/transforms/optimize_patterns.td#L247-L286
and build TensorFlow from source.
Then, one can use this modified TensorFlow to convert models to TFLite format without HardSwish op.

I try to do like this one. But got some error after I install tensorflow v2.4.0 from source.
This is the error when I try python3 models/tf.py --weight ./runs/train/exp/weights/best.pt ....
E tensorflow/stream_executor/cuda/cuda_blas.cc:226] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
W tensorflow/core/framework/op_kernel.cc:1763] OP_REQUIRES failed at conv_ops.cc:1106 : Not found: No algorithm worked!
TensorFlow saved_model export failure: No algorithm worked! [Op:Conv2D]
@zldrobit Can you guide me how to install tensorflow from source properly?
This is the way I do:

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r2.4
Open optimize_patterns.td: delete everything from line 247 to 286 (HardSwishOp)
./configure (below is the configure, only yes in Cuda option)

You have bazel 3.1.0 installed.
Please specify the location of python. [Default is /usr/bin/python3]:
Found possible Python library paths:
/usr/lib/python3.6/dist-packages
/usr/local/lib/python3.6/dist-packages
/usr/lib/python3/dist-packages
Please input the desired Python library path to use.  Default is [/usr/lib/python3.6/dist-packages]
Do you wish to build TensorFlow with ROCm support? [y/N]:
No ROCm support will be enabled for TensorFlow.
Do you wish to build TensorFlow with CUDA support? [y/N]: y
CUDA support will be enabled for TensorFlow.
Do you wish to build TensorFlow with TensorRT support? [y/N]:
No TensorRT support will be enabled for TensorFlow.
Found CUDA 11.1 in:
/usr/local/cuda-11.1/targets/x86_64-linux/lib
/usr/local/cuda-11.1/targets/x86_64-linux/include
Found cuDNN 8 in:
/usr/local/cuda-11.1/targets/x86_64-linux/lib
/usr/local/cuda-11.1/targets/x86_64-linux/include
Please specify a list of comma-separated CUDA compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus. Each capability can be specified as "x.y" or "compute_xy" to include both virtual and binary GPU code, or as "sm_xy" to only include the binary code.
Please note that each additional compute capability significantly increases your build time and binary size, and that TensorFlow only supports compute capabilities >= 3.5 [Default is: 7.5]:
Do you want to use clang as CUDA compiler? [y/N]:
nvcc will be used as CUDA compiler.
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:
Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]:
Not configuring the WORKSPACE for Android builds.
Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details.
--config=mkl         	# Build with MKL support.
--config=mkl_aarch64 	# Build with oneDNN support for Aarch64.
--config=monolithic  	# Config for mostly static monolithic build.
--config=ngraph      	# Build with Intel nGraph support.
--config=numa        	# Build with NUMA support.
--config=dynamic_kernels	# (Experimental) Build kernels into separate shared objects.
--config=v2          	# Build TensorFlow 2.x instead of 1.x.
Preconfigured Bazel build configs to DISABLE default on features:
--config=noaws       	# Disable AWS S3 filesystem support.
--config=nogcp       	# Disable GCP support.
--config=nohdfs      	# Disable HDFS support.
--config=nonccl      	# Disable NVIDIA NCCL support.
Configuration finished

bazel build --config=cuda //tensorflow/tools/pip_package:build_pip_package
pip3 install /tmp/tensorflow_pkg./tensorflow-2.4.0-cp36-cp36m-linux_x86_64.whl
After that I check tensorflow lib, everything seem to be alright but I got the error that I mention above.

Plz check your CUDA version and your GPU model type.
Or try running models/tf.py again after rebooting your machine?
Actually, I didn't build TF with CUDA support because models/tf.py does not require CUDA for inference.
At 2021-01-11 20:25:13, "ngotra2710"<EMAIL_ADDRESS>wrote:
@Namburger I find a way to suppress HardSwish transformation in TFLite conversion.
Just comment out TensorFlow v.2.4.0 code:
https://github.com/tensorflow/tensorflow/blob/582c8d236cb079023657287c318ff26adb239002/tensorflow/compiler/mlir/lite/transforms/optimize_patterns.td#L247-L286
and build TensorFlow from source.
Then, one can use this modified TensorFlow to convert models to TFLite format without HardSwish op.
I try to do like this one. But got some error after I install tensorflow v2.4.0 from source.
This is the error when I try python3 models/tf.py --weight ./runs/train/exp/weights/best.pt ....
E tensorflow/stream_executor/cuda/cuda_blas.cc:226] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
W tensorflow/core/framework/op_kernel.cc:1763] OP_REQUIRES failed at conv_ops.cc:1106 : Not found: No algorithm worked!
TensorFlow saved_model export failure: No algorithm worked! [Op:Conv2D]
@zldrobit Can you guide me how to install tensorflow from source properly?
This is the way I do:
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r2.4
Open optimize_patterns.td: delete everything from line 247 to 286 (HardSwishOp)
./configure (below is the configure, only yes in Cuda option)
You have bazel 3.1.0 installed.
Please specify the location of python. [Default is /usr/bin/python3]:
Found possible Python library paths:
/usr/lib/python3.6/dist-packages
/usr/local/lib/python3.6/dist-packages
/usr/lib/python3/dist-packages
Please input the desired Python library path to use. Default is [/usr/lib/python3.6/dist-packages]
Do you wish to build TensorFlow with ROCm support? [y/N]:
No ROCm support will be enabled for TensorFlow.
Do you wish to build TensorFlow with CUDA support? [y/N]: y
CUDA support will be enabled for TensorFlow.
Do you wish to build TensorFlow with TensorRT support? [y/N]:
No TensorRT support will be enabled for TensorFlow.
Found CUDA 11.1 in:
/usr/local/cuda-11.1/targets/x86_64-linux/lib
/usr/local/cuda-11.1/targets/x86_64-linux/include
Found cuDNN 8 in:
/usr/local/cuda-11.1/targets/x86_64-linux/lib
/usr/local/cuda-11.1/targets/x86_64-linux/include
Please specify a list of comma-separated CUDA compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus. Each capability can be specified as "x.y" or "compute_xy" to include both virtual and binary GPU code, or as "sm_xy" to only include the binary code.
Please note that each additional compute capability significantly increases your build time and binary size, and that TensorFlow only supports compute capabilities >= 3.5 [Default is: 7.5]:
Do you want to use clang as CUDA compiler? [y/N]:
nvcc will be used as CUDA compiler.
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:
Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]:
Not configuring the WORKSPACE for Android builds.
Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details.
--config=mkl # Build with MKL support.
--config=mkl_aarch64 # Build with oneDNN support for Aarch64.
--config=monolithic # Config for mostly static monolithic build.
--config=ngraph # Build with Intel nGraph support.
--config=numa # Build with NUMA support.
--config=dynamic_kernels # (Experimental) Build kernels into separate shared objects.
--config=v2 # Build TensorFlow 2.x instead of 1.x.
Preconfigured Bazel build configs to DISABLE default on features:
--config=noaws # Disable AWS S3 filesystem support.
--config=nogcp # Disable GCP support.
--config=nohdfs # Disable HDFS support.
--config=nonccl # Disable NVIDIA NCCL support.
Configuration finished
bazel build --config=cuda //tensorflow/tools/pip_package:build_pip_package
pip3 install /tmp/tensorflow_pkg./tensorflow-2.4.0-cp36-cp36m-linux_x86_64.whl
After that I check tensorflow lib, everything seem to be alright but I got the error that I mention above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Plz check your CUDA version and your GPU model type.
Or try running models/tf.py again after rebooting your machine?
Actually, I didn't build TF with CUDA support because models/tf.py does not require CUDA for inference.
At 2021-01-11 20:25:13, "ngotra2710"<EMAIL_ADDRESS>wrote:
@Namburger I find a way to suppress HardSwish transformation in TFLite conversion.
Just comment out TensorFlow v.2.4.0 code:
https://github.com/tensorflow/tensorflow/blob/582c8d236cb079023657287c318ff26adb239002/tensorflow/compiler/mlir/lite/transforms/optimize_patterns.td#L247-L286
and build TensorFlow from source.
Then, one can use this modified TensorFlow to convert models to TFLite format without HardSwish op.
I try to do like this one. But got some error after I install tensorflow v2.4.0 from source.
This is the error when I try python3 models/tf.py --weight ./runs/train/exp/weights/best.pt ....
E tensorflow/stream_executor/cuda/cuda_blas.cc:226] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
W tensorflow/core/framework/op_kernel.cc:1763] OP_REQUIRES failed at conv_ops.cc:1106 : Not found: No algorithm worked!
TensorFlow saved_model export failure: No algorithm worked! [Op:Conv2D]
@zldrobit Can you guide me how to install tensorflow from source properly?
This is the way I do:
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r2.4
Open optimize_patterns.td: delete everything from line 247 to 286 (HardSwishOp)
./configure (below is the configure, only yes in Cuda option)
You have bazel 3.1.0 installed.
Please specify the location of python. [Default is /usr/bin/python3]:
Found possible Python library paths:
/usr/lib/python3.6/dist-packages
/usr/local/lib/python3.6/dist-packages
/usr/lib/python3/dist-packages
Please input the desired Python library path to use. Default is [/usr/lib/python3.6/dist-packages]
Do you wish to build TensorFlow with ROCm support? [y/N]:
No ROCm support will be enabled for TensorFlow.
Do you wish to build TensorFlow with CUDA support? [y/N]: y
CUDA support will be enabled for TensorFlow.
Do you wish to build TensorFlow with TensorRT support? [y/N]:
No TensorRT support will be enabled for TensorFlow.
Found CUDA 11.1 in:
/usr/local/cuda-11.1/targets/x86_64-linux/lib
/usr/local/cuda-11.1/targets/x86_64-linux/include
Found cuDNN 8 in:
/usr/local/cuda-11.1/targets/x86_64-linux/lib
/usr/local/cuda-11.1/targets/x86_64-linux/include
Please specify a list of comma-separated CUDA compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus. Each capability can be specified as "x.y" or "compute_xy" to include both virtual and binary GPU code, or as "sm_xy" to only include the binary code.
Please note that each additional compute capability significantly increases your build time and binary size, and that TensorFlow only supports compute capabilities >= 3.5 [Default is: 7.5]:
Do you want to use clang as CUDA compiler? [y/N]:
nvcc will be used as CUDA compiler.
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:
Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]:
Not configuring the WORKSPACE for Android builds.
Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details.
--config=mkl # Build with MKL support.
--config=mkl_aarch64 # Build with oneDNN support for Aarch64.
--config=monolithic # Config for mostly static monolithic build.
--config=ngraph # Build with Intel nGraph support.
--config=numa # Build with NUMA support.
--config=dynamic_kernels # (Experimental) Build kernels into separate shared objects.
--config=v2 # Build TensorFlow 2.x instead of 1.x.
Preconfigured Bazel build configs to DISABLE default on features:
--config=noaws # Disable AWS S3 filesystem support.
--config=nogcp # Disable GCP support.
--config=nohdfs # Disable HDFS support.
--config=nonccl # Disable NVIDIA NCCL support.
Configuration finished
bazel build --config=cuda //tensorflow/tools/pip_package:build_pip_package
pip3 install /tmp/tensorflow_pkg./tensorflow-2.4.0-cp36-cp36m-linux_x86_64.whl
After that I check tensorflow lib, everything seem to be alright but I got the error that I mention above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@zldrobit
I've used your tf-android-tfl-detect script to get the edget tpu model. And it accuracy is way better than MobileNet SSD V2 from the offical site.
But as mentioned in #297 . I consistently encounter the following error after i switching from MobileNet SSD V2 to yolov5s.
F :859] transfer on tag 2 failed. Abort. Deadline exceeded: USB transfer error 2 [LibUsbDataOutCallback]
Can you test if you will encounter the same error when running for a long period of time(couple of hours)

@zldrobit
I've used your tf-android-tfl-detect script to get the edget tpu model. And it accuracy is way better than MobileNet SSD V2 from the offical site.
But as mentioned in #297 . I consistently encounter the following error after i switching from MobileNet SSD V2 to yolov5s.
F :859] transfer on tag 2 failed. Abort. Deadline exceeded: USB transfer error 2 [LibUsbDataOutCallback]
Can you test if you will encounter the same error when running for a long period of time(couple of hours)

@ling9601 Thanks. My colleague run YOLOv5 320x320 on EdgeTPU for 24 hours yesterday without errors.
He uses dpkg libedgetpu1-max library.
We just plug Coral EdgeTPU to a USB dock on PC.
So, there should not be any power issues in our situation.

@ling9601 Thanks. My colleague run YOLOv5 320x320 on EdgeTPU for 24 hours yesterday without errors.
He uses dpkg libedgetpu1-max library.
We just plug Coral EdgeTPU to a USB dock on PC.
So, there should not be any power issues in our situation.

@zldrobit
Thanks.
I also run YOLOV5 on EdgeTPU for 48 hours on an ubuntu PC without  errors.
But error occur when runing on raspberrypi 4(Raspberry Pi OS)  even with TPU plugged to a USB hub.
so, i may be an os issue?

@zldrobit
Thanks.
I also run YOLOV5 on EdgeTPU for 48 hours on an ubuntu PC without  errors.
But error occur when runing on raspberrypi 4(Raspberry Pi OS)  even with TPU plugged to a USB hub.
so, i may be an os issue?

@ling9601 I agree with you, but I can't assure that since I haven't an RPI.

@ling9601 I agree with you, but I can't assure that since I haven't an RPI.

@zldrobit @glenn-jocher is there a repo that holds links to  the latest compiled yolov5 weights specifically for edgeTPU? It looks like things are evolving reading the thread above. I develop open source for home security and a lot of my users use coral. We are limited to using mobiledet or mobilenet  -  both of which are terrible on accuracy (but good perf). If yolov5 is similar in accuracy to to would be a big win for my users! Thanks

@zldrobit @glenn-jocher is there a repo that holds links to  the latest compiled yolov5 weights specifically for edgeTPU? It looks like things are evolving reading the thread above. I develop open source for home security and a lot of my users use coral. We are limited to using mobiledet or mobilenet  -  both of which are terrible on accuracy (but good perf). If yolov5 is similar in accuracy to to would be a big win for my users! Thanks

@pliablepixels You could export and test Edge TPU model with https://github.com/zldrobit/yolov5/tree/tf-android-tfl-detect.
PS: I attached the COCO Edge TPU model with 320x320 input resolution in case you're interested.
yolov5s-int8_edgetpu.zip

@pliablepixels You could export and test Edge TPU model with https://github.com/zldrobit/yolov5/tree/tf-android-tfl-detect.
PS: I attached the COCO Edge TPU model with 320x320 input resolution in case you're interested.
yolov5s-int8_edgetpu.zip

Thank you @zldrobit - I don't want to distract from the main purpose of this issue thread. Is there a repo where I can report issues related to this model? Your repo linked above does not have issue reporting enabled. When I try this model with the standard pycoral example, it errors our with an index out of range error.

Thank you @zldrobit - I don't want to distract from the main purpose of this issue thread. Is there a repo where I can report issues related to this model? Your repo linked above does not have issue reporting enabled. When I try this model with the standard pycoral example, it errors our with an index out of range error.

@pliablepixels plz report Edge TPU YOLOv5 related issues to https://github.com/ultralytics/yolov5/pull/1127

@pliablepixels plz report Edge TPU YOLOv5 related issues to https://github.com/ultralytics/yolov5/pull/1127

@zldrobit Would you be able to share

@pliablepixels You could export and test Edge TPU model with https://github.com/zldrobit/yolov5/tree/tf-android-tfl-detect.
PS: I attached the COCO Edge TPU model with 320x320 input resolution in case you're interested.
yolov5s-int8_edgetpu.zip

Would you be so kind and share the prediction script? I have tried the detect_image.py from pycoral examples, but without any success. It would help me a lot. Thank you!

@pliablepixels You could export and test Edge TPU model with https://github.com/zldrobit/yolov5/tree/tf-android-tfl-detect.
PS: I attached the COCO Edge TPU model with 320x320 input resolution in case you're interested.
yolov5s-int8_edgetpu.zip

I love the work! Thank you for the effort. Do you think you could share the script for prediction on the google coral devboard which is compatible with the tflite model you shared?

@batrlatom I use an Intel CPU with 20 threads for the test, and it should be faster than the CPU on the dev board.
I don't have a complete script for the dev board, but you could refer to this comment.
In the comment, there is code for the bounding box reconstrution and NMS.
You could just add the code on your script, and test it.

@zldrobit @pliablepixels
I stumbled upon this looking for a solution as to why my MPCIe TPU module works on Ubuntu 20.04 but not Windows 10 (dual boot i3-4025 system) but running a yolo model on the TPU is something I really want to try!  Plugging in the USB3 TPU my Windows code runs, so my PyCoral installation seems correct.  I've just ported my TPU code from "legacy" edgetpu to pycoral.
I'm doing pretty much like what @pliablepixels has done with ZoneMinder,  adding AI to existing security DVR/NVR (Lorex, Amcrest, GeoVision, etc.) setups.  https://github.com/wb666greene/AI-Person-Detector
Could either of you point me to the labels file for this yolo_v5 model?  Also what is the output format? I need the object.id (0 for a person with mobilenetSSD_v2 tflite_edgetpu model), the box points, and detection confidence.  I've downloaded the 320x320 yolo_5 model @zldrobit was kind enough to link, and am ready to drop it into my system once I can figure out how to decode the inference output.
@batrlatom  you seem to be basically using the Edge TPU PyCoral detection example code, it only does a single image.  If arg.count is 1,  the inference time includes loading the model, but 350 mS seems unreasonable.  If count is greater than 1, then the same image inference is repeated again, which should be pretty much the best case inference time, what times are reported for counts greater than one?  Perhaps the "12 CPU operations" are killing the TPU performance which makes the TPU not usable.  I get ~4.5 fps for yolov4-416 with the Jetson Nano sample code.    Getting ~3fps with yolo an a TPU would not be very useful to me.

@wb666greene yes person is index 0 in the class vector. You can see the full list of classes in the model.yaml file:
https://github.com/ultralytics/yolov5/blob/238583b7d5c19029920d56c417c406c829569c75/data/coco.yaml#L20-L30
You can print class indices with:
# Print classes
with open('data/coco.yaml') as f:
    d = yaml.load(f, Loader=yaml.FullLoader)  # dict
    for i, x in enumerate(d['names']):
        print(i, x)

320 image size works well also.

@glenn-jocher
Thanks, I don't really need the full labels file as once the inference has been run I only look at the output inside an if statement where the object id matches that for a "person" so knowing that person is index zero is sufficient.
You may not have seen my edit where I tried with the assumption that person was index 0 but got an error in detection=detect.get_objects(model, confidence, (1.0,1.0)) which is run immediately after model.invoke()
Do you have any idea what I did wrong?
Since the sample code accepts a --model command line parameter and doesn't seem to have any parameters to account for differences in detection output formats, I assume the detection output format has been "standardized".  I know there seem to be differences in the returned object between pycoral and edgetpu:
    if __PYCORAL__ is False:
           detection = model.detect_with_image(frame, threshold=confidence, keep_aspect_ratio=True, relative_coord=False)
           for r in detection:
                if r.label_id == 0:
                    # extract the bounding box and box and predicted class label
                    box = r.bounding_box.flatten().astype("int")
                    ##detect_label = labels[r.label_id] #not being used anywhere now
                    (startX, startY, endX, endY) = box.flatten().astype("int")
    else:
           common.set_input(model,frame)
           model.invoke()
           detection=detect.get_objects(model, confidence, (1.0,1.0))
           for r in detection:
                if r.id == 0:
                    startX=r.bbox.xmin
                    startY=r.bbox.ymin
                    endX=r.bbox.xmax
                    endY=r.bbox.ymax
`

@batrlatom I ran the code you posted and superficially seem to get pretty good performance using  the yolo5 edgetpu.tflite model that @zldrobit linked.
Running Ubuntu 16.04 on an i3-4025 with the USB3 TPU the first inference is ~65 milliSeconds, the 4 repeats average ~49 mS.  Using the MPCIe module the first inference is ~56 mS and the others average ~43 mS.
But I still can't make any sense of the output from interpreter.get_tensor(output_index) so I've no idea iif its actually doing anything useful or not.

@pirazor Hi, I am wondering if you have solved the prelu issue on edgetpu? I am also trying to use prelu and meet the same problem as yours. I have tried to reduce the input size but it does not work. :( I am Curious if you have solved this issue?

@wb666greene Sorry for the late reply.  After some investigations, I found that PyCoral lacks some API for inference. For example, there isn't a output_details() API to get the quantization parameters for the final output. Would you stick to the tflite inference API since PyCoral is a wrapper of tflite?


Way to change quality of the video using different links, not abr.

Have you read the Tutorials?
Yes.
Have you read the FAQ and checked for duplicate open issues?
yes, a few times.
What version of Shaka Player are you using?
3.0.4
Please ask your question
Hi there. I need to create something like custom ABR. It's because we store different videos quality at different links and they aren't concatenated in one manifest file. So I need to detect a current bitrate and approximately bitrate that client network can provide. Maybe someone have a ways or ideas how to do this?

Hello @kovaletsyurii ,
Thank you for reaching out!
Are the videos basically multiple manifests?
If so, currently I am not sure there's a proper way to do this. We'll be able to pre-load multiple manifests once our Preload API is implemented, and choose one of the manifests to start playback.
Does this help?

Hello @kovaletsyurii ,
Thank you for reaching out!
Are the videos basically multiple manifests?
If so, currently I am not sure there's a proper way to do this. We'll be able to pre-load multiple manifests once our Preload API is implemented, and choose one of the manifests to start playback.
Does this help?

Hello @kovaletsyurii ,
Thank you for reaching out!
Are the videos basically multiple manifests?
If so, currently I am not sure there's a proper way to do this. We'll be able to pre-load multiple manifests once our Preload API is implemented, and choose one of the manifests to start playback.
Does this help?

Yes it helps, thanks :)


Migrations not version controlled?

Hi,
Just a quick question - I was wondering why the installation procedure recommends making the migrations during the install? Usually I have seen these files in version control, if they are not it can make things a bit harder so if there isn't a particular reason why I'm happy to submit a PR with them in!
Many thanks
Dom

Hi @DomHudson, thanks for pointing this out.  We probably missed these after resetting the migrations during cleanup for open source release.  A PR to add them would be great if you have a minute!

Thanks for the PR, @DomHudson !


Disappear when dragging near to center bottom

I tried and not able to reproduce the issue.
Can you please add some more description(like device info) or attach a video supporting the same issue?

it just disappears everytime after you let go

Yes I am Also facing the same issue. When i drag buttons right top and release buttons then it disappears.

Still facing the issue? Please provide a video/screenshot with the device details.
That will help figure out the issue as I can't reproduce on my end although trying different devices.

after  init drag move it  and it disappear

Still facing the issue? Please provide a video/screenshot with the device details. That will help figure out the issue as I can't reproduce on my end although trying different devices.

after init drag move it and it disappear

Yes i'm facing the same issue.


Add overloads for DotNetCore*() methods taking FilePath instead of string

What You Are Seeing?
I recently got a compilation exception because I was trying to pass a FilePath that I'd found through GetFiles().Single() into DotNetCoreNuGetPush().
What is Expected?
The argument passed to DotNetCoreNuGetPush() is a file path, but is of type string. It seems off that I need to do myFilePath.ToString() to pass it in. I would expect this method to take a FilePath type.
Of course, backwards compatibility is a concern - but could FilePath overload be added? The DotNetCore*() methods in general seem to vary between taking a FilePath or a string - I can't work out any pattern here?
This may have initially be confused by the inaccurate docs, see: https://github.com/dotnet/docs/issues/4585
What version of Cake are you using?
0.26.0
Are you running on a 32 or 64 bit system?
64 bit
What environment are you running on?  Windows? Linux? Mac?
Windows
Are you running on a CI Server?  If so, which one?
Nope
How Did You Get This To Happen? (Steps to Reproduce)
var filePath = GetFiles("*.nupkg").Single();
DotNetCoreNuGetPush(filePath);

for now filePath.FullName will work.

I've seen since that my example takes a string instead of a file path as dotnet nuget push can also accept globs. (Undocumented though, it seems 😞)
In that case, I'm not totally sure what the right solution is here. Is a FilePath overload that converts the call to filepath.FullName under the hood sensible, or should the user convert themselves? Is there a convention with Cake aliases for this?
I'd be happy to PR this one, but I'm just not sure what the solution should be to keep things inline with the rest of the Cake API.

Should we just convert any argument we get to string ?

@ChrisMaddock @kaabus a FilePath overload that converts the call to filePath.FullPath under the hood would be great.

Hello! I would like to try to help with this issue. Can you help me get started? @augustoproiete

@dharillo Thanks for looking into this. This issue is from early 2018 so it's likely that the implicit conversion to string didn't exist at that time.
Changing the existing aliases to use FilePath and leveraging the implicit conversion seems like a good approach 👍🏻
NB: It is a binary breaking change though and would impact addins, but we will release this together with Cake v2.0.0, so timing is good!

I have added a pull request with the changes. I don't know if I have to do something more. I cannot request a review in the pull request.


Error when running launch.sh

Hello:
I get this error when running the launch.sh file:
pgrep: invalid user name: -x
Any ideas?
This is from i3-gaps running on Kubuntu 18.04.
Both i3-gaps and polybar were compiled instead of being installed from a .deb.

Where is this script located @kas ? I couldn't find any launch.sh script.

It is located near the top of the wiki homepage.

On some systems sh is true shell , on others it's symbolic link to bash. You can check this out by typing readlink /bin/sh. Can you try changing the head of your script to:

#!/bin/bash

and try running it again ?

For some reason your the $UID environment variable isn't set when you run the script and that's why you get that error. Does that happen when you run the launch.sh script from the terminal?


Add discovery support to mqtt climate component.

Description:
The MQTT climate control did not support MQTT discovery - I needed it for a project and enabling it was very easy with minimal code changes. So maybe this is something that can be merged back to the main home-assistant codebase.

## Checklist:
  - [X ] The code change is tested and works locally.
  - [ ] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass** (tox currently not working in my setup, sorry)

If user exposed functionality or configuration variables are added/changed:
  - [ ] Documentation added/updated in [home-assistant.github.io](https://github.com/home-assistant/home-assistant.github.io) - Will update documentation there and submit PR as well.

Hello @dreizehnelf,
When attempting to inspect the commits of your pull request for CLA signature status among all authors we encountered commit(s) which were not linked to a GitHub account, thus not allowing us to determine their status(es).
The commits that are missing a linked GitHub account are the following:

df3ef10a56c64186f2be4dffb589461476d51603 - This commit has something that looks like an email address (michael@hengherr.de). Maybe try linking that to GitHub?.

Unfortunately, we are unable to accept this pull request until this situation is corrected.
Here are your options:

If you had an email address set for the commit that simply wasn't linked to your GitHub account you can link that email now and it will retroactively apply to your commits. The simplest way to do this is to click the link to one of the above commits and look for a blue question mark in a blue circle in the top left. Hovering over that bubble will show you what email address you used. Clicking on that button will take you to your email address settings on GitHub. Just add the email address on that page and you're all set. GitHub has more information about this option in their help center.

If you didn't use an email address at all, it was an invalid email, or it's one you can't link to your GitHub, you will need to change the authorship information of the commit and your global Git settings so this doesn't happen again going forward. GitHub provides some great instructions on how to change your authorship information in their help center.

If you only made a single commit you should be able to rungit commit --amend --author="Author Name<EMAIL_ADDRESS>
(substituting Author Name and<EMAIL_ADDRESS>for your actual information) to set the authorship information.
If you made more than one commit and the commit with the missing authorship information is not the most recent one you have two options:

You can re-create all commits missing authorship information. This is going to be the easiest solution for developers that aren't extremely confident in their Git and command line skills.
You can use this script that GitHub provides to rewrite history. Please note: this should be used only if you are very confident in your abilities and understand its impacts.

Whichever method you choose, I will come by to re-check the pull request once you push the fixes to this branch.

We apologize for this inconvenience, especially since it usually bites new contributors to Home Assistant. We hope you understand the need for us to protect ourselves and the great community we all have built legally. The best thing to come out of this is that you only need to fix this once and it benefits the entire Home Assistant and GitHub community.
Thanks, I look forward to checking this PR again soon! :heart:

I'm really not sure what to do to get coveralls to sign off on the coverage - the details of the coveralls report doesn't really make sense. It list roughly 30 files that "have changed" (which they haven't) and claims coverage has decreased (which I can't understand, since I've actually increased coverage by adding test cases for code paths that had not been covered before). It might be related to coveralls sometimes getting confused (i.e. https://github.com/lemurheavy/coveralls-public/issues/1019) - but I've got no clue on how to fix it. Do all checks have to pass to get a PR merged into the main repository or are those just guidelines when reviewing? Any pointers highly appreciated!


abstraction above the file system for the compiler.

Implements the abstraction above the file system for the compiler.
Fixed memory leak.
Motivation
We use the compiler as a service. For distributed compilation purposes. We are prevented by leak_str and the fact that the compiler uses files as a source. It would be nice to have abstraction above the file system.
Have you read the Contributing Guidelines on pull requests?
yes.
Test Plan
Unit test.
Related PRs
--

Taking a longer look at this, I don't think this is the right change at this time.
Quick summarized thoughts:

Currently, the leaking isn't a big issue at the moment as the Move source language compiler is not intended to be hooked into any long lived process. It should only be invoked via a command line tool, and should not be integrated into another Rust service
Long term, we will need to include some sort of intern table for these strings. That is: the Box::leak solution is an intentional, temporary solution that allows iteration on the compiler to move faster
In the future, we will move the string table (along with other compiler instance specific information) inside of a context that is threaded through the compiler.

There is a lot of work needed to get to that point though, so it isn't likely something that can be done in the next few weeks

I appreciate the PR in that it addresses a known issue in the compiler, but it is not the solution we want to take.
In the future, I think it will be more helpful to first open a GitHub issue before making a PR. It will give you a better sense of how we are thinking about addressing these problems, and let us figure out the best solution going forward.
Nonetheless, I really do appreciate the effort put in here! These changes aren't quick or easy to do, and I love seeing external contributions for the source language. But right now, we are heavily focused on getting this first version fully working, so while I do love seeing them, our bandwidth might be limited for dealing with external contributions.


Deleting notes respects step count option

Added option to ignore or respect step count when deleting a note from pattern editor. The ignore option is on by default to preserve original behavior. Disabling option matches famitracker behavior.
Just a small quality of life option that was missing and driving me nuts coming from famitracker. Please let me know if I missed something or did something wrong and I can correct it.

This is great, thank you. This was actually a mistake, it should be respecting the step value. (oops!) I'm actually wondering if it's worth having the option not to respect the step value. I'm hesitant to add options just for the sake of having options because I want to preserve simplicity as much as I can. I think I will make the change to respect the step value while deleting and then if a substantial number of users request wanting it the other way around, then I will add the option if there's demand for it.

Yeah that makes sense. I only added it as an option because I thought the deletion behavior might have been intentional so I decided to preserve it. I can remove the option but I mean it's just a one liner after the changes so you can just close this PR if you want and add the change to your next release.

I've added this change manually so will close this, but thanks for bringing it to my attention


Implement hades_permutation libfunc

Implementation of the hades_permutation libfunc
Description
Depends on #126.
Implements the Poseidon libfunc hades_permutation.
Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report

Merging #128 (201ff23) into main (79b9051) will increase coverage by 0.09%.
The diff coverage is 75.92%.

@@            Coverage Diff             @@
##             main     #128      +/-   ##
==========================================
+ Coverage   86.17%   86.26%   +0.09%
==========================================
  Files          23       23
  Lines        6235     6387     +152
==========================================
+ Hits         5373     5510     +137
- Misses        862      877      +15

Impacted Files
Coverage Δ

sierra2mlir-utils/src/lib.rs
30.90% <0.00%> (+24.24%)
:arrow_up:

sierra2mlir/src/lib.rs
52.83% <ø> (+16.56%)
:arrow_up:

sierra2mlir/src/userfuncs/mod.rs
94.91% <0.00%> (ø)

sierra2mlir/src/libfuncs/mod.rs
93.72% <100.00%> (+0.23%)
:arrow_up:

sierra2mlir/src/types/mod.rs
87.84% <100.00%> (+0.20%)
:arrow_up:

... and 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Test maintainance: add missed tests and removing xUnit1013 warning

Add missed tests in v2.4.3 which were reported by @ericnewton76 (18 test case)

Remove the xunit test warning xUnit1013:

warning xUnit1013: Public method 'XXX' on test class 'YYY' should be marked as a Fact.

Fix Xunit warning: Skipping test case with duplicate ID

Fix Xunit warning: xUnit1014- MemberData should use nameof operator to reference member

I notice you have fixed the test by changing the copyright check to ...
lines[0].Should().StartWithEquivalent("testhost");
lines[1].Should().StartWithEquivalent("© Microsoft Corporation");

This is probably correctly for the build server but unfortunately still fails on my local machine because I use Ncrunch (continuous test runner) and so the assumption about the name of the test-runner is incorrect.  I would suggest simply not testing the copyright lines OR raising a feature request to  ensure that the lines are consistent with the .net framework build.

NCrunch is a good testing suit but it's commercial (not free).
dotnet test suit is free and available in both local machine and CI servers (windows/Linux and OS X) and so simplify the fix of test between the Contributors and unify test result report.
I can modify the PR and set these copyright values as  a constant in a separate class so you can  replace your constant values during local test.
Is there any constraint in your development Environment of using dotnet test with Xunit?

My point is more that you really don't want to discourage contributors from running local unit tests and hard-coding an assumption on the test-runner is bad practice for plenty of reasons  - not least of which you might one day change your build system and some future maintainer will then by mystified by the fact that half the unit-tests break ;-) A unit test should really not be relying on an 'external' variable such as the name of the calling process.

I agree with you that unit test should really not be relying on an 'external' variable.
The problem is that the majority of test cases depend on some hard-wired values that is based on test suit runners.
I will investigate of excluding these copyright value test and modify my PR.
You can exclude these copyright tests from the test case and continue using NCrunch .

Here is a better fix (also better than my local changes)…  Bearing in mind the intention of the test is to establish that the help-text contains the copyright info you can use
 lines[1].Should().Contain(CopyrightInfo.Default.ToString());
which works for all platforms and test runners!
I'll post the equivalent formulation for lines[0] when I find it...

Ok- here are the two lines you want to use.  These are platform independent so you can get rid of the #if check....
            lines[0].Should().Be(HeadingInfo.Default.ToString());
            lines[1].Should().Be(CopyrightInfo.Default.ToString());

Good solution.
I'll modify my PR and use your solution :).

@NeilMacMullen
Modification based on your solution is done  in this PR,(a939e1e), and test pass successfully in CI appveyor.

hooray! :-) Are you planning to merge this back to develop?  If so I will integrate it with my PR.

Yes, I plan to merge it with other PRs including your PR in develop.
You can do (if needed) an integration test with it in a throw-away branch to be sure that all tests works in your PR. No need you merge it into yours.  This simplify the last minute maintenance of PR(s).


Yeerongpilly: error proposing block ERR_INVALID_BLOCK_SLOT_LESS_THAN_LOWER_BOUND

Describe the bug
Got this error at validator side while running yeerongpilly:
Jul-06 03:31:24.268 []                error: Error proposing block slot=136057, validator=0xa757…81c9 code=ERR_INVALID_BLOCK_SLOT_LESS_THAN_LOWER_BOUND, slot=136057, minSlot=148047
Error: ERR_INVALID_BLOCK_SLOT_LESS_THAN_LOWER_BOUND
    at SlashingProtectionBlockService.checkBlockProposal (/usr/app/packages/validator/src/slashingProtection/block/service.ts:56:13)
    at SlashingProtectionBlockService.checkAndInsertBlockProposal (/usr/app/packages/validator/src/slashingProtection/block/service.ts:23:24)
    at SlashingProtection.checkAndInsertBlockProposal (/usr/app/packages/validator/src/slashingProtection/index.ts:50:5)
    at ValidatorStore.signBlock (/usr/app/packages/validator/src/services/validatorStore.ts:84:5)
    at BlockProposingService.createAndPublishBlock (/usr/app/packages/validator/src/services/block.ts:70:27)
    at async Promise.all (index 0)

Expected behavior
No error

minSlot is incorrect as clock slot is 136xxx at the time of error

seems like it's because of the shared validator db used for oonoonba, cleaned up and it worked fine
Jul-06 06:25:37.927 []                 info: Published block slot=136928, validator=0x848d…2703, graffiti=chainsafe/lodestar-0.25.1


Read example code give exception System.ObjectDisposedException: 'Cannot access a closed file.'

Hi,
I test code in read example, it gave error exception System.ObjectDisposedException: 'Cannot access a closed file'
What have I do wrong? The program have loop through the first loop (variable data loop) successfully, but it gave error when try to read spssDataset.Records.
Please help.
Here is the code
        SpssReader spssDataset;
        using (FileStream fileStream = new FileStream("data.sav", FileMode.Open, FileAccess.Read,
                                                  FileShare.Read, 2048 * 10,
                                                  FileOptions.SequentialScan))
        {
            spssDataset = new SpssReader(fileStream);
        }
        foreach (var variable in spssDataset.Variables)
        {
            // Display name and label
            Console.WriteLine("{0} - {1}", variable.Name, variable.Label);
            // Display value-labels collection
            foreach (KeyValuePair<double, string> label in variable.ValueLabels)
            {
                Console.WriteLine(" {0} - {1}", label.Key, label.Value);
            }
        }
        // Iterate through all data rows in the file

        foreach (var record in spssDataset.Records)
        {
            //Console.Write(record.ToString());
            foreach (var variable in spssDataset.Variables)
            {
                Console.Write(variable.Name);
                Console.Write(':');
                // Use the corresponding variable object to get the values.
                Console.Write(record.GetValue(variable));
                // This will get the missing values as null, text with out extra spaces,
                // and date values as DateTime.
                // For original values, use record[variable] or record[int]
                Console.Write('\t');
            }
            Console.WriteLine("");
        }

Looks like it because wrong code scope, got confuse because example code lack one opening curly brace in using statement


offset-*-0 are missing in the grid system

Describe the bug
offset-*-0 are missing in the grid system.
Meaning if you did for example offset-2 and want to remove it in xl size you cannot do offset-xl-0
To Reproduce
Example :

I've added a pull request here: #1584

Thank you, I extend your RP for non media offset

https://github.com/olton/Metro-UI-CSS/blob/4.3.10/source/components/grid/grid.less#L37


Options is not optional for replicate.wait in TypeScript

When running
  prediction = await replicate.wait(prediction);

using TypeScript I get an error if I don't pass empty options since options is not really marked as optional in the type definition.
The current work around to add an empty options
  prediction = await replicate.wait(prediction, {});

Hi @thelinuxkid. Thanks for reporting this. I have a fix for this in #155.

Thanks for the quick update Matt

Thanks again for reporting, @thelinuxkid. This is now fixed in v0.21.1.


Add line break support

Hello,
There is a bug when user input have a line break.
Before:

After:

By the way, very nice work ! Thank you.
PS: I am working on a Docker container here: https://github.com/Aeryax/docker-spoilerbot
PS²: Sorry, I don't have requirements to install node-canvas so I can't run npm run test and lint. I hope it's ok.

Just added some extra tests to make sure the string is broken into lines correctly. Your solution passed them all, good job!
Also, thanks for working on the Docker version of the bot, people will sure find it useful.


Messaging: Create a foundation for messaging administration

Integrate Firebase into Notifications
Develop data store for messages
Setup Firebase SDK backend

Completed under #290
Completed under #243
Completed under #245


Add coverage badges

Codecov Report

Merging #135 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #135   +/-   ##
=======================================
  Coverage   93.17%   93.17%
=======================================
  Files           2        2
  Lines         337      337
=======================================
  Hits          314      314
  Misses         23       23

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9039ca6...33985ca. Read the comment docs.


Invalid generation of TypeORM model for entity with nullable relation.

Describe the bug
Given an entity spec:
type Account @entity {
  id: ID!
  nativeTokenBalance: NativeTokenBalance @derivedFrom(field: "account")
}

it generates an object:
import { NativeTokenBalance } from "./nativeTokenBalance.model";

@Entity_()
export class Account {
  constructor(props?: Partial<Account>) {
    Object.assign(this, props);
  }

  /**
   * Account ss58 address
   */
  @PrimaryColumn_()
  id!: string;

}

As you can see, it tries to import NativeTokenBalance but does not use it at all.
To Reproduce
Steps to reproduce the behavior:

Modify the schema.graphl
Run npx squid-typeorm-codegen
Check the generated model.

Expected behavior
It is expected that the Account model includes the nullable field of nativeTokenBalance.
Environment (please complete the following information):
"dependencies": {
    "@polkadot/util": "^10.1.9",
    "@polkadot/util-crypto": "^10.1.9",
    "@subsquid/archive-registry": "3.3.0",
    "@subsquid/cli": "2.8.6",
    "@subsquid/graphql-server": "4.5.0",
    "@subsquid/ink-abi": "^3.0.2",
    "@subsquid/logger": "^1.3.2",
    "@subsquid/ss58": "^2.0.2",
    "@subsquid/substrate-processor": "8.2.0",
    "@subsquid/typeorm-migration": "1.3.0",
    "@subsquid/typeorm-store": "1.2.6",
    "dotenv": "^16.0.3",
    "pg": "8.8.0",
    "typeorm": "^0.3.11"
  },
  "devDependencies": {
    "@subsquid/ink-typegen": "^3.0.3",
    "@subsquid/substrate-metadata-explorer": "^3.1.2",
    "@subsquid/typeorm-codegen": "^1.3.3",
    "@types/node": "^20.9.0",
    "prettier": "^2.8.8",
    "typescript": "~5.2.2"
  }

https://github.com/subsquid/squid-sdk/pull/190
Should be fixed when this PR will be merged
@eldargab

This PR has been opened since July last year.

I don't know if that PR solves the issue I'm facing, if it does - great. Also, I'm not very familiar with TypeORM so I was open to some discussions if needed, whether it makes sense at all.


fix cli collision between host and client_url

Resolve Avaiga/taipy-enterprise#498

Our collective bad

too many changes so it is hard to detect the mistake :D

Good catch. That is the opportunity to add some gui CLI command tests. We already have some for other commands in tests/core/test_core_cli.py that can be used as examples.


More to blocking

https://blocklist.kowabit.de/

Good ressource. What do we do about it?

Honorable mention?
Merge forces / sources?


Segfault on <IP_ADDRESS>-1

Hello and thanks for making this project available! I am using this library quite heavily in DIGITS.
We are installing the library through this command:
luarocks install lightningmdb LMDB_INCDIR=/usr/include LMDB_LIBDIR=/usr/lib/x86_64-linux-gnu

Yesterday our automatic scripts picked up a regression (see).
On my local setup I used to have version 0.9.17-1 and this was working fine. If I run the luarocks install lightningmdb command again then Luarocks fetches version <IP_ADDRESS>-1 which causes a systematic segfault.
If I download the top of the master branch on Github then version <IP_ADDRESS>-1 which seems to be working well.
Question: is there any known regression in <IP_ADDRESS>-1? Can the Luarocks registry be updated to install <IP_ADDRESS>-1 by default?
Thanks!

Looks like this is the only relevant commit between the two versions: https://github.com/shmul/lightningmdb/commit/73fa91af7f7b22d687514321b32a26a159fae10e.
https://github.com/shmul/lightningmdb/compare/<IP_ADDRESS>-1...<IP_ADDRESS>-1

Hi,
Sorry for the late response, just noticed this now. I'm happy to see the library usefulness :)
I was working on supporting Lua 5.3 and had a lot of intermediate (and unstable so it seems) versions of the rock uploaded during my tests. Some were indeed broken, but as far as I know, <IP_ADDRESS>-1 solves them all. I uploaded it to the main luarocks site a couple of days ago and it is listed there now.
So, are you still experiencing problems?
I'm taking a note to myself, and will port some docker based tests to this project so I can easily and automatically pick up its faults across various Lua versions and OSs (I'm using a Mac, but need to test it on Linux also).
Cheers,
Shmul

I just verified that the version from the main luarocks site works. Thanks for uploading it!
https://travis-ci.org/lukeyeager/DIGITS/builds/106273860


Upload a build from a URL

Ability to specify a URL instead of a file to upload

Now this sounds like a very interesting feature ;)


Support ECC secp384r1 in gRPC Core and wrapped langages

So far P256 curve is hardcoded in ssl_transport_security.cc. Customer request to support 384-bit curves.

We acknowledge this to be a valid feature request but since no one has come forward to implement this, we are going to close it for now while maintaining the label/Help wanted to indicate that this can be picked up as future work.

This should be fixed by #34867. We will support prime256v1, secp384r1 and secp521r1 for TLSv1.2.


FCBHDBP-451

Description
It has changed the main title with: Bible Brain Uploader
Issue Link
https://fullstacklabs.atlassian.net/browse/FCBHDBP-451
How Do I QA This
You should go to new etl-dev website using the next URL: https://dev.uploader.biblebrain.com/ and you should look the new title.
Screenshot
You can see the screenshot about the UI

Could you please also remove the image?

@bradflood , the logo image has been removed.


Feature/remove idle state

@TkDodo Great change that simplifies Query status while providing more details about what is going on with the fetchStatus⚡

:tada: This PR is included in version 4.0.0-alpha.15 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Hi @TkDodo !
I want to display a loading spinner specifically on the first data fetch, I guess now I have to change my code from
myQuery.status === 'loading'
to
myQuery.status === 'loading' && myQuery.fetchStatus === 'fetching'
?
Cheers!

@TiagoPortfolio to be on the safe side, yes, that would be the equivalent. However, the other cases are quite edgy:

status: 'loading', fetchStatus: 'idle' - this can only happen if you have a query that is enabled: false and no data exists, or if you restore a query from one of the persist plugins while we are restoring
status: 'loading', fetchStatus: 'idle' - this can only happen if you mount a query for the first time, but have no internet connection

The second case is not handled in v3 at all, so you would also just show a loading spinner there until you go online. So if you don't use the enabled option, checking for status: loading should still be enough. If you do, you have to use the extra check and "do something else" if you are idle.

:tada: This PR is included in version 4.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

This should be mentioned on the breaking changes for v4.

It is: https://react-query-beta.tanstack.com/guides/migrating-to-react-query-4#the-idle-state-has-been-removed

Great! Sorry. My bad, somehow missed it ...


[$500] Dev:  Alternate text on sidebar does not translate when Invite member to room

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: Dev <IP_ADDRESS>
Reproducible in staging?: n
Reproducible in production?: n
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: @namhihi237
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1697793108025429
Action Performed:

Create a room
Go to room details
Go to members
Click Invite and invite 1 member
Observed on the room's LHN that Alternate text show invited 1 user
Change language to Spanish, Observe that Alternate text is not translated

Expected Result:
Alternate text should be translated when invite member to room
Actual Result:
Alternate text is not translated when invite member to room
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

Android: Native

https://github.com/Expensify/App/assets/93399543/1c825542-4946-42fa-80da-8bcd0818dbfb

Android: mWeb Chrome

https://github.com/Expensify/App/assets/93399543/ca486e13-d5e1-452f-818c-ade315d2afe3

iOS: Native

https://github.com/Expensify/App/assets/93399543/a7d83041-b054-4d24-849b-ba6c0191791a

iOS: mWeb Safari

https://github.com/Expensify/App/assets/93399543/f3055cfb-0c02-483b-b9bb-353b6f834830

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/93399543/98dd6912-4450-4677-b035-1c2384ee5944

MacOS: Desktop

https://github.com/Expensify/App/assets/93399543/eb510755-f4aa-44ec-bdf2-6b9595c10965

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

Upwork Job URL: https://www.upwork.com/jobs/~0168a6416641572c9d
Upwork Job ID:<PHONE_NUMBER>364860928
Last Price Increase: 2023-10-20

Proposal by: @namhihi237
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1697793108025429
Proposal
Please re-state the problem that we are trying to solve in this issue.
Alternate text on the sidebar should be translated when Invite member to the room
What is the root cause of that problem?
Currently, we hard code the text relative to inviting members here
https://github.com/Expensify/App/blob/69cf29e32950f915ea888fe294dfdea6a9fabbb5/src/libs/SidebarUtils.js#L370-L384
What changes do you think we should make in order to solve the problem?

Create translate key in en.js and es.js
Use Localize.translate() instead.

What alternative solutions did you explore? (Optional)
N/A

Hey team, want to work on this issue please assign to me

Ouch, I thought there were no more cases like this left! Sure, needs to be fixed.
I approve the proposal by @namhihi237
C+ reviewed 🎀 👀 🎀

@namhihi237 @cubuspl42 this only translates the LHN preview but not the actual message in the chat report, why do we not translate that one there too?

Yeah but the current solutionw ould lead to worse experience as you would have it in spanish in one place and in english in another

@mountiny

@namhihi237 @cubuspl42 this only translates the LHN preview but not the actual message in the chat report, why do we not translate that one there too?

I haven't noticed that.

Yeah but the current solutionw ould lead to worse experience as you would have it in spanish in one place and in english in another

I thought the closer we get to fully localizing the app, the better. I'm not fully convinced that translating one bit leads to worse experience, but I understand that you feel this way.
How do you think we should proceed? Do you think we should coordinate with the backend? What options are open here? Could we make the relevant API return a natural-language-agnostic modeled representation of this data?
Expensify seems to be a architectured as a "thin client" in many spots, and the backend sometimes returns the data in a format that's difficult to be processed on the frontend side. This is one such place, I think.

Pending further internal engineering guidance

we currently do not have backend localization in place and we do not plan to add it any time soon but I think this just should b consistent with how we show other report actions, for example iou paid report actions are also translated

@namhihi237 Would you update your proposal with these changes?

@namhihi237 Do you have a Git branch at your fork? I'd like to test the getReportActionMessageRoomChange function and see how it's called

@namhihi237
I think this isn't expected?

@cubuspl42 are we close to being able to accept a proposal here?

@joekaufmanexpensify The proposal is actually already accepted.
@mountiny With a bit of polishing, the updated proposal by @namhihi237 seems to accomplish the expected goals. Do you think it's acceptable ine the current state?

Of course we'll do more in-depth testing when the actual PR is filed

Yeah I think we can work through its kinks in the PR

@namhihi237 do you expect to have a PR up here soon?

Pending @namhihi237 submitting a PR

PR is being worked on

Thanks!

@namhihi237 will you have a PR in review here soon?

Yes, we're modifying the exact same part as another PR: https://github.com/Expensify/App/pull/30898
We'll resume the work right after that one is merged

held

@cubuspl42 The other PR merged, can we continue this one?

I commented in the PR associated with our issue

Great! I see the PR is getting close.

@mountiny Did we trigger the auto-closing regex?

Ah, yeah this one is not done yet as we haven't done BZ checklist/issued payment.

@cubuspl42 Could you please handle the BZ checklist so we can prep to issue payment on Friday?

Bumped checklist here.

The PR that introduced the bug has been identified. Link to the PR:

It seems that the bug was present in the relevant components since they were created

The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

N/A

A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

No need for additional discussion

Determine if we should create a regression test for this bug.

No

If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

N/A

Great, TY! All set to issue payment. We need to issue the following payments:

@namhihi237 $50 for reporting. Paid via Upwork.
@namhihi237 $250 for PR (50% reduction because of regression). Paid via Upwork.
@cubuspl42 $250 for C+ (50% reduction because of regression). Paid via Upwork.

@namhihi237 $50 sent and contract ended

@namhihi237 $250 sent and contract ended

@cubuspl42 $250 sent and contract ended

All payment issued. Closing as this is all set. Thanks everyone!


Explore page in Visual Studio Code - Error "c.workspace.workspaceFolders is not iterable"

Please include the following with each issue:
1. Describe the bug
When I use the 'Explore page in Visual Studio Code' on page 'Bank Acc. Reconciliation (379, ListPlus)', VS Code is opened with the error  'c.workspace.workspaceFolders is not iterable'

2. To Reproduce

Open page 'Bank Acc. Reconciliation (379, ListPlus)'
Ctrl+Alt+F1
'Explore page in Visual Studio Code'
VS Code is opened
error  'c.workspace.workspaceFolders is not iterable' is shown

3. Expected behavior
No error
4. Actual behavior

error  'c.workspace.workspaceFolders is not iterable' is shown

5. Versions:

AL Language: 12.1.887908
Visual Studio Code:
Business Central: US Business Central 23.1 (Platform 23.0.13573.0 + Application 23.1.13431.13546)
List of Visual Studio Code extensions that you have installed:

Experiencing the same issue

This should have been fixed with the latest VSIX - could you confirm this is the case? Thanks!

@blrobl Seems to be fixed, will reopen if it should appear again. Thanks for the quick fix !


[feature] add zoom ability to svg parse tree

or make it an img tag referring to url so users can open in another tab?
Hmm... can use window zoom now...maybe don't need.

I have something that you might look at and refine to add pan and zoom of the parse tree. Basically, it replaces the <div id="svgtree"> with a <canvas>. When the parse is done, it creates an Image control, sets the source with the svg, and draws it. https://github.com/kaby76/antlr4-lab/tree/combined
Working over at http://<IP_ADDRESS>/

Hmm...sounds good but downloaded image is now png not svg and lower quality. Hmm...let me see about just scroll bars.  Now we can "open in another tab" so expanding is no problem.

ok, i'm gonna leave as-is and close this. Can expand window to see more. zoom of browser gives us the functionality we need. can also open in new tab for more control.

Browser-level pan and zoom work, but I think it would be better with a pan and zoom on the graph that doesn't also affect all other controls in the UI, e.g., the text boxes. Yes, "open in new tab" works, but it's not an obvious workaround (I overlooked trying that). Will play around with it further for my edification.

Hmm...yes, let's keep this open as something interesting my pop-up. The previous iframe solution was terrible but possibly just setting the width or something might work.


goto is listed but not documented

http://doc.perl6.org/language/control#goto
Maybe we should say that it is not implemented?
Or maybe we should remove it completely?

goto isn't part of 6.c, kill it.

On it

There.


Inferring types for fragment variables fails when one variable is used in nullable position and the other one in non-nullable position

Given the following fragment:
fragment FooDetails on Foo {
  field(nonNullableInt: $number, nullableInt: $number)
}

the codegen fails with
Fragment FooDetails uses different types for variable 'number': Int!, Int

Instead of failing, it should infer a non-nullable type since it's valid to pass non-nullable types in nullable positions.
Many thanks @demoritas for catching this 🙏

Fixed in https://github.com/apollographql/apollo-kotlin/pull/3799


Updated settings menu new location in public-preview-doc-updates.md

Closes https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/7330.

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@cichur PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


chore(warnings): Allow direct recursion for type enforcement.

Ugh multirust gave me a newer rustc than travis...

Seems like this was fixed in #280


Revisit bulk user invites in step 3 of onboarding flow

Currently, our API doesn't support bulk user invites. Therefore, the invites functionality has been implemented using ember store to create one user at a time.
This works OK, except we currently don't seem to get full access to the errors from the server to give the user a good indication of why the invite failed.
It may be that a slightly different approach in Ember will work better, it may be that we need to implement bulk invites at the API level to get this working nicely.
There are, in short, two main reasons why an invite would fail: 1) email configuration error (all invites failed) and 2) incorrect email addresses bouncing back, resulting in a some of them failing. We need to receive enough information from the server to determine which of these cases has occurred & let the user know.

Replicated. Invited three valid emails, no invites sent or received. Testing environment: node v0.12.7, OS X 0.11, Chrome Version 44.0.2403.157 + Ubuntu Vagrant VM in Arch Linux.

Users could very well not know about the failure until checking with team members to confirm.

Exact steps:

npm start after standard install from master branch
Opened at localhost:2368, went through first two steps of onboarding successfully.
During third step added three correctly formatted email addresses.
Told that the invites failed.
Logged in, made a few posts. Emails still not sent.
Halted local server.
Edited config.js to include my own email setup.
Restarted server.
Went to team section, email invites listed as having failed.
Clicked resend to all three addresses, emails received quickly.
Time where invitations were sent listed incorrectly in the UI (in this case '24 minutes ago.')

I think this can be left as is for now, we can revisit this if it becomes an issue.


Replace initializer with vector for planner test framework

What problem does this PR solve?
Issue Number: close #5295
Problem Summary:
Current interfaces are likely to trigger asan because of the parameters with initializer_list type whose behavior is hard to predict. We shall avoid intractable bugs by replacing initializer_list with vector.
What is changed and how it works?
Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/cc @hehechen /c @ywqzzy

/run-all-tests

/merge


Documentation is broken in Chrome

Environment

Operating system: Darwin
Browser: Chrome v123.0.6312.87 (Official Build) (x86_64)

Version
v2.15.0
Reproduction
https://ui.nuxt.com/getting-started/installation or
https://ui.nuxt.com/components/input
Description
The documentation is suddenly broken in Chrome for me:

This also happens in incognito mode.
Firefox works though.
Additional context
No response
Logs
No response

Sure. I did several hard refreshes and also tried to open the page in incognito mode.
I did another test, this time with Safari and it is also broken.

Same issue here using Chrome 123.0.6312.59
After updating Chrome to 123.0.6312.86, the error still persists.

Same issue here on Firefox Developer Edition 125.0b5 (64-bit) on macOS Sonoma 14.4
I do not have the same problem in Safari Version 17.4 (196<IP_ADDRESS>.12)

Anyone still encountering this issue?

Seems to be fixed for me. Also, no errors in console anymore👍 Thanks!

Great! Going to close this issue for now 😄 .


Feedback

Nice! You have a well-defined project that will be manageable within the scope of the next three labs. There are a few modifications to the proposed functions you should make for the next lab.

Your proposed functions take in the data, train a model, and return a metric. However, they don't allow a user to input their own models which is functionality most, if not all, users will want. Your functions also don't return the underlying trained model, so if the users were to find a model that was well-fit to the data there would have no way to access it.

Instead, you should structure your functions to match the input of scikit-learn (i.e. metric(y_true, y_pred, k). This way they will work with pretrained models, and will be easily dropped into existing code. Same goes for R - design your functions so they are flexible and easily interface with the existing ecosystem.

If it's possible to reduce the number of parameters the user has to enter, always do so. For example it's unnecessary to have the user enter "n", the number of data points, as that can be derived from the dimensions of X. If you think there might be edge cases where n != X.shape[0], consider setting n as a named parameter with sensible defaults and allowing the user to overwrite those defaults when necessary.

If you have additional time you can also write wrapper functions which take the raw data as originally proposed and return both the metric and the trained model.

Main changes for next time:

Allow users to evaluate their own models
Make interfacing easy with existing ecosystem(s)

Moving bullets to individual issues to track progress


Do not hardcode user and password in URL

This makes it harder than necessary to connect with a different user such as sys as sysdba.

I have looked at the details. If I have understood it right, image wnameless/oracle-xe-11g does not support other users. Maybe it can be a good idea to use oracle official dockerfile, but I haven't understood situation about license. If we build image using this dockerfile we can pass user using environment variable (ORACLE_PDB). What are you thinking about it?


Lacking annotation files for evaluation

@aharley,
Dear Doc. Adam W. Harley,
Thanks for sharing the code. This is really an amazing work with interesting ideas!
I'd like to re-implement the evaluation on CroHD. But I can't find the introduction and essential annotation file, like HT21Labels folder, for evaluation on CroHD.
Could you please provide the essiential introduction about preparing the data for evaluation?
Looking forward to your reply~

Dear Arthur, thanks for the comment and question.
The CroHD head tracking data comes from the "Get all data" link on this page: https://motchallenge.net/data/Head_Tracking_21/
Downloading and unzipping that should give you the folders HT21 and HT21Labels, which our dataloader relies on.

Dear @aharley,
I was trying to run the code on other datasets such as davis, badja and crohd, as well (using the python script mentioned in the README). However, as pointed out by @Arthur151 , it seems that most of the ground truth files are missing. Could you point me in the right direction? Thanks!

Thanks for the message @shalini-maiti . I am surprised that croHD is still not working for you -- did you try downloading the zip file I suggested in this thread? I can add instructions for all of them to the main README, but crohd should be resolved I think.

I added instructions for all of the tests into the readme: 713b346504074337e34890626314a63d52a74a47
Let me know if anything else is missing!


Merged upstream acts_as_taggable_on changes

Background

We want to upgrade the acts_as_taggable_on gem from 6.5.0 to 8.1.0 in the egghead-rails repo.
The currently forked branch has tags only up to 6.5.0`.

Why do we need this fork?

The No implicit conversion of nil into String error mentioned in this PR surfaced in the 6.5.0 version of the acts_as_taggable_on gem. On upgrading the acts_as_taggable_on gem to 8.1.0 in the egghead-rails as below:

gem 'acts-as-taggable-on', '= 8.1.0'

The issue still appears.
The only way to resolve this issue in the egghead-rails repo is to update this fork with the upstream acts_as_taggable_on change.
We use this fork for now, and with Rails 6 changes, the forked branch might not be required.

@garrettdimon Thanks for raising the migration concern. The migration added is optional as per this comment. I will test the changes on local and let you know in case of any concerns.


"This account has not been used by any extensions" dialog

Testing #229420

I signed out of my GH account while trying to figure out how to sign into multiple accounts,
signed into my alt account for GH copilot
signed into my main for a different extension
?? switched copilot to my main account and signed out of my alt account
click manage trusted extensions for GH copilot chat

:bug: popup says "This account has not been used by any extensions"

you can't see it in the recording, but this pop-up shows up at the end

This isn't authentication, it's actually the gate for accessing the models that GitHub Copilot Chat provides. It's confusing... I've started an issue here to clean that up https://github.com/microsoft/vscode/issues/229745


Binary Tree to DLL | POTD

Binary Tree to DLL
link
Given a Binary Tree (BT), convert it to a Doubly Linked List (DLL) in place. The left and right pointers in nodes will be used as previous and next pointers respectively in converted DLL. The order of nodes in DLL must be the same as the order of the given Binary Tree. The first node of Inorder traversal (leftmost node in BT) must be the head node of the DLL.
Note: h is the tree's height, and this space is used implicitly for the recursion stack.
TreeToList
Examples:

Input:
      1
    /  \
   3    2
Output:
3 1 2
2 1 3

Explanation: DLL would be 3<=>1<=>2
Input:
       10
      /   \
     20   30
   /   \
  40   60
Output:
40 20 60 10 30
30 10 60 20 40

Explanation:  DLL would be 40<=>20<=>60<=>10<=>30.
Expected Time Complexity: O(no. of nodes)
Expected Space Complexity: O(height of the tree)

Constraints:

1 ≤ Number of nodes ≤ 105
0 ≤ Data of a node ≤ 105

Solved
'''
class Node:
    """ Class Node """
    def __init__(self, value):
        self.left = None
        self.data = value
        self.right = None
'''

#Function to convert a binary tree to doubly linked list.
class Solution:
    def bToDLL(self, root):

        def dfs(node):
            first = last = node
            if node.left:
                first, node.left = dfs(node.left)
                node.left.right = node
            if node.right:
                node.right, last = dfs(node.right)
                node.right.left = node
            return first, last

        return dfs(root)[0]


3D-printable case

@leigh-johnson did you create one? would be awesome to bring this sensitive pcb into a protecting case


Onclick into nodes not expanding

while onclick into flamegraph node into any point its not expanding and its only show border but it should be expand and show its children

This behavior is not provided by this library. All nodes are initially exposed, everything else depends on your data.
If you need this behavior, you can manually update the node structure you provide to the library in the click handler.


Fix predictive_gradients and posterior_covariance_between_points when normalizer=True

Addresses #802, with new tests added to model_test.py:

Add normalization in model.predictive_gradients so that it returns the gradients of model.predict even when normalizer=True.

Add normalization and likelihood in model.posterior_covariance_between_points so that it is consistent with the (co)variance from model.predict even when normalizer=True.

Fix 1 is important because model.predictive_gradients is used extensively in GPyOpt and Emukit.  Fix 2 may be more controversial, although I suspect that most people expect model.posterior_covariance_between_points(x,x) to return the same result as model.predict(x)[1].

Codecov Report

Merging #806 into devel will increase coverage by <.01%.
The diff coverage is 61.11%.

@@            Coverage Diff             @@
##            devel     #806      +/-   ##
==========================================
+ Coverage   54.24%   54.24%   +<.01%
==========================================
  Files         210      210
  Lines       21347    21364      +17
  Branches     2883     2889       +6
==========================================
+ Hits        11579    11589      +10
- Misses       9231     9234       +3
- Partials      537      541       +4

Responded in #802.


Counterparty stops syncing with message Prefetch queue is empty.

I saw the following spammed in the logs:
2024-07-11T11:53:40.421-04:00 - [   ERROR] - Error prefetching block: Stopped error
2024-07-11T11:53:40.436-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:40.541-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:40.647-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:40.748-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:40.853-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:40.957-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:41.061-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:41.167-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:41.275-04:00 - [ WARNING] - Prefetch queue is empty.
2024-07-11T11:53:41.381-04:00 - [ WARNING] - Prefetch queue is empty.

And buried between these logs was the following:
2024-07-11T11:53:51.430-04:00 - [ WARNING] - Could not connect to backend at `http://XXXXXXXX@localhost:18332/`. (Attempt: 4)

So I checked the bitcoind logs and saw this:
2024-07-11T15:39:16Z BlockUntilSyncedToCurrentChain: txindex is catching up on block notifications

I shut counterparty-server down and got the following error message:
2024-07-11T12:09:31.069-04:00 - [   ERROR] - Error during stop: Stopped error
ERROR:root:SQLITE_LOG: recovered 276 frames from WAL file /Users//Library/Application Support/counterparty/counterparty.testnet.api.db-wal (283) SQLITE_NOTICE_RECOVER_WAL
2024-07-11T12:09:31.923-04:00 - [    INFO] - Shutdown complete.

When I restarted counterparty-server it immediately began to sync again.

Seems like Counterparty stopped retrying to connect?

Also it seems like the messages might just be too noisy: https://github.com/CounterpartyXCP/counterparty-core/issues/2058


feat: enabling group macros on sasjs/server

This PR updates ms_getgroups with a user filter, and ms_getusers with a group filter. ms_adduser2group was also created to faciliate the necessary test(s).

:tada: This PR is included in version 4.28.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


In eval phase, is it correct to use L2 distance even for Angular xx losses?

https://github.com/clovaai/voxceleb_trainer/blob/6d3db45cbe00c27df71d6b04ca5fec0edc5317ac/SpeakerNet.py#L158
While training, you used cosine similarity as a distance metric for several loss objects, but in the evaluation, it seems you only used L2 distance (https://pytorch.org/cppdocs/api/function_namespacetorch_1_1nn_1_1functional_1a902d9a614b0a9e7a1073212da99ec5da.html)
I think this may occur wrong calculation.
Could you please review this problem?

See my comment to #4

Thank you @joonson !


Implement zero-rating mode except for reCaptcha and ToS page. #7

I disabled all services I can think of which loads external resource, except for reCaptcha and ToS. But I'm not really sure these are all. I will check it with production after submitting this.

LGTM. Thank you!