sparse_tensor_dense_matmul not working with float64 on gpu

tensorflow (I tried 0.11, 0.12 and master) claims sparse_tensor_dense_matmul be not supported on gpu, yet the docs
https://www.tensorflow.org/versions/r0.11/api_docs/python/sparse_ops.html#sparse_tensor_dense_matmul
and the fact that there is a source file
tensorflow/core/kernels/sparse_tensor_dense_matmul_op_gpu.cu.cc
which apparently gets compiled
.cache/bazel/_bazel_panzer/eb98e8482caa36ec89e479cdd4c996e7/execroot/tensorflow/bazel-out/local_linux-py3-opt/bin/tensorflow/core/kernels/libsparse_tensor_dense_matmul_op_gpu.pic.lo
suggest it should.
############ example script
import tensorflow as tf
import numpy as np

with tf.device('/gpu:0'):
    M = tf.SparseTensor(np.arange(4).reshape(2, 2), np.ones((2,)), (3, 3))
    v = tf.constant(np.ones((3, 1)))
    p = tf.sparse_tensor_dense_matmul(M, v)

    init = tf.initialize_all_variables()
    sess = tf.Session()
    sess.run(init)
    p = sess.run (p)

############ output
panzer:~$ python3 sparse_tensor_dense_matmul.py
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
WARNING:tensorflow:From sparse_tensor_dense_matmul.py:9 in <module>.: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.8095
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.81GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
Traceback (most recent call last):
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1021, in _do_call
    return fn(*args)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 999, in _run_fn
    self._extend_graph()
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1048, in _extend_graph
    self._session, graph_def.SerializeToString(), status)
  File "/usr/lib/python3.5/contextlib.py", line 66, in __exit__
    next(self.gen)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 469, in raise_exception_on_not_ok_status
    pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device to node 'SparseTensorDenseMatMul/SparseTensorDenseMatMul': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
         [[Node: SparseTensorDenseMatMul/SparseTensorDenseMatMul = SparseTensorDenseMatMul[T=DT_DOUBLE, adjoint_a=false, adjoint_b=false, _device="/device:GPU:0"](SparseTensor/indices, SparseTensor/values, SparseTensor/shape, Const)]]

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "sparse_tensor_dense_matmul.py", line 11, in <module>
    sess.run(init)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 766, in run
    run_metadata_ptr)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 964, in _run
    feed_dict_string, options, run_metadata)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1014, in _do_run
    target_list, options, run_metadata)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1034, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device to node 'SparseTensorDenseMatMul/SparseTensorDenseMatMul': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
         [[Node: SparseTensorDenseMatMul/SparseTensorDenseMatMul = SparseTensorDenseMatMul[T=DT_DOUBLE, adjoint_a=false, adjoint_b=false, _device="/device:GPU:0"](SparseTensor/indices, SparseTensor/values, SparseTensor/shape, Const)]]

Caused by op 'SparseTensorDenseMatMul/SparseTensorDenseMatMul', defined at:
  File "sparse_tensor_dense_matmul.py", line 7, in <module>
    p = tf.sparse_tensor_dense_matmul(M, v)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/ops/sparse_ops.py", line 1339, in sparse_tensor_dense_matmul
    adjoint_b=adjoint_b)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/ops/gen_sparse_ops.py", line 975, in _sparse_tensor_dense_mat_mul
    adjoint_b=adjoint_b, name=name)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op
    op_def=op_def)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2240, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1128, in __init__
    self._traceback = _extract_stack()

InvalidArgumentError (see above for traceback): Cannot assign a device to node 'SparseTensorDenseMatMul/SparseTensorDenseMatMul': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
         [[Node: SparseTensorDenseMatMul/SparseTensorDenseMatMul = SparseTensorDenseMatMul[T=DT_DOUBLE, adjoint_a=false, adjoint_b=false, _device="/device:GPU:0"](SparseTensor/indices, SparseTensor/values, SparseTensor/shape, Const)]]

Environment info
Operating System:
linux (ubuntu 16.04)
Installed version of CUDA and cuDNN:
(please attach the output of ls -l /path/to/cuda/lib/libcud*):
/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudart.so.8.0.44
/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.5.1.5
If installed from source, provide

The commit hash (git rev-parse HEAD)
e5d44ffa3d78271e2619c577f8240e530538bb61

The output of bazel version
Build label: 0.4.0
Build target: bazel-out/local-fastbuild/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Wed Nov 2 17:54:14 2016<PHONE_NUMBER>)
Build timestamp:<PHONE_NUMBER>
Build timestamp as int:<PHONE_NUMBER>

I haven't had chance to check the OpKernel registration details, but you appear to be using int32 tensors as input data.  Most GPU ops are only registered for float types...
Could you please see if this makes a difference?

Thanks, prb12,  for the quick response.
Unfortunately it wasn't that, see below. I also tried using float64 for the index and shape tensors but that didn't work either.
Cheers, Paul
####### file:  sparse_tensor_dense_matmul_v2.py
import tensorflow as tf
import numpy as np
with tf.device('/gpu:0'):
M = tf.SparseTensor(np.arange(4, dtype=np.int64).reshape(2, 2),
np.ones((2,), dtype=np.float64),
np.array((4, 4), dtype=np.int64))
v = tf.constant(np.ones((4, 1), dtype=np.float64))
p = tf.sparse_tensor_dense_matmul(M, v)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
p = sess.run (p)

############### output
panzer:~$ python3 sparse_tensor_dense_matmul_v2.py
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
WARNING:tensorflow:From sparse_tensor_dense_matmul_v2.py:11 in .: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use tf.global_variables_initializer instead.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.8095
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.81GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
Traceback (most recent call last):
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1021, in _do_call
return fn(*args)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 999, in _run_fn
self._extend_graph()
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1048, in _extend_graph
self._session, graph_def.SerializeToString(), status)
File "/usr/lib/python3.5/contextlib.py", line 66, in exit
next(self.gen)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 469, in raise_exception_on_not_ok_status
pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device to node 'SparseTensorDenseMatMul/SparseTensorDenseMatMul': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
[[Node: SparseTensorDenseMatMul/SparseTensorDenseMatMul = SparseTensorDenseMatMul[T=DT_DOUBLE, adjoint_a=false, adjoint_b=false, _device="/device:GPU:0"](SparseTensor/indices, SparseTensor/values, SparseTensor/shape, Const)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "sparse_tensor_dense_matmul_v2.py", line 13, in
sess.run(init)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 766, in run
run_metadata_ptr)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 964, in _run
feed_dict_string, options, run_metadata)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1014, in _do_run
target_list, options, run_metadata)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1034, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device to node 'SparseTensorDenseMatMul/SparseTensorDenseMatMul': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
[[Node: SparseTensorDenseMatMul/SparseTensorDenseMatMul = SparseTensorDenseMatMul[T=DT_DOUBLE, adjoint_a=false, adjoint_b=false, _device="/device:GPU:0"](SparseTensor/indices, SparseTensor/values, SparseTensor/shape, Const)]]
Caused by op 'SparseTensorDenseMatMul/SparseTensorDenseMatMul', defined at:
File "sparse_tensor_dense_matmul_v2.py", line 9, in
p = tf.sparse_tensor_dense_matmul(M, v)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/ops/sparse_ops.py", line 1339, in sparse_tensor_dense_matmul
adjoint_b=adjoint_b)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/ops/gen_sparse_ops.py", line 975, in _sparse_tensor_dense_mat_mul
adjoint_b=adjoint_b, name=name)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op
op_def=op_def)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2240, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/home/panzer/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1128, in init
self._traceback = _extract_stack()
InvalidArgumentError (see above for traceback): Cannot assign a device to node 'SparseTensorDenseMatMul/SparseTensorDenseMatMul': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
[[Node: SparseTensorDenseMatMul/SparseTensorDenseMatMul = SparseTensorDenseMatMul[T=DT_DOUBLE, adjoint_a=false, adjoint_b=false, _device="/device:GPU:0"](SparseTensor/indices, SparseTensor/values, SparseTensor/shape, Const)]]

@paul-the-noob : looks like this is because of the usage of float64? This works for me:
import tensorflow as tf
import numpy as np

with tf.device('/gpu:0'):
    with tf.Session(config=tf.ConfigProto(allow_soft_placement=False)) as sess:
        M = tf.SparseTensor(np.arange(4, dtype=np.float32).reshape(2, 2),
                            np.ones((2,), dtype=np.float32),
                            np.array((4, 4), dtype=np.int32))
        v = tf.constant(np.ones((4, 1), dtype=np.float32))
        p = tf.sparse_tensor_dense_matmul(M, v)

        init = tf.initialize_all_variables()
        sess = tf.Session()
        sess.run(init)
        print sess.run(p)

I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
WARNING:tensorflow:From <ipython-input-3-ddf78d11c31f>:12 in <module>.: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
[[ 1.]
 [ 0.]
 [ 1.]
 [ 0.]]

@jramapuram
thanks, for that. Using 32bit floats for v and the second ("values") argument to the SparseTensor constructor also works for me. (The "indices" and "shape" arguments are more lenient; the docs specify them as int64, perhaps constructor converts them?)
@concretevitamin
I'm leaving this open, anyway. It would certainly be nice being able to use double precision: for example, the application I'm working on definitely requires it.
 But if you could make it work it would help me a lot and be very much appreciated.
Cheers, Paul

I did a tiny bit of research and found the following:
The problem appears to lie with a CUDA function called atomicAdd, see the relevant commit.
The good news is that, as of CUDA 8, atomicAdd supports double precision with hardware acceleration on the latest (Pascal) cards.
So I guess this is now a feature request. I had a look at the relevant code myself, but sadly, being C++ it is far outside my comfort zone.

A related question: is it true that backpropagation involving sparse_tensor_dense_matmul is NOT supported on GPU in version r0.11?
More specifically, the following code failed to run on GPU:
`import tensorflow as tf
import numpy as np
with tf.device("/gpu:0"):
x = tf.sparse_placeholder(tf.float32)
v = tf.Variable(tf.random_normal([4, 1]))
cost = tf.reduce_sum(tf.sparse_tensor_dense_matmul(x, v))
optimizer = tf.train.AdamOptimizer().minimize(cost)
with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    indices = np.array([[2, 0], [3, 1]], dtype=np.int64)
    values = np.array([1.0, 2.0], dtype=np.float32)
    shape = np.array([4, 4], dtype=np.int64)

    sess.run(optimizer, feed_dict={x: tf.SparseTensorValue(indices, values, shape)})`

with error:
tensorflow.python.framework.errors.InvalidArgumentError: Cannot assign a device to node 'gradients/SparseTensorDenseMatMul/SparseTensorDenseMatMul_grad/strided_slice_1': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
I wanted to know if it's because I'm not using tf.sparse_tensor_dense_matmul correctly in backpropagation, or it's simply because not supported.
Thanks a lot in advance.

If I understand correctly sparse_tensor_dense_matmul_op still only registers a float kernel on GPU.
But more generally it looks like these "float64 kernels not implemented" bugs are being collected in #1140.


Wheel chooser breaking changes.

Here's the latest changelog for wheel_chooser. It includes new parameters that need to be initialized:
v1.1.0

New 'choices' constructor.
Added WheelChooser.number.
Added physics property.

Link to changelog: https://pub.dev/packages/wheel_chooser/changelog

I have updated to the latest version and added a few additional features.
Link to changelog: [v1.1.0]

Thank you!


Previously working integration now fails to start with 'schema_incompatible'

Please check existing (open or closed) issues before creating a new one. (https://github.com/fuatakgun/eufy_security/issues?q=is%3Aissue+)
If this is not an issue, you can use Discussions (https://github.com/fuatakgun/eufy_security/discussions) section.
Integration fails to start with 'schema_incompatible' when I check error logs. The integration had previously been working.
A clear and concise description of what the bug is.
Start Home Assistant, as normal.
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Integration should start without issue (as it had been working previously).
A clear and concise description of what you expected to happen.
Additional information
Go to Settings -> System -> Repairs -> Click on 3 dots (...) -> System Information and get Version and Installation Type to below fields;

Home Assistant Installation Type (OS - Supvervised - Core):  Home Assistant OS
Home Assistant Core Version: core-2023.9.1
Eufy Security Add-on Version: v7.0.4
Eufy Security Integration Version: v1.3.0

Hardware Information;

Camera Model:
Eufy Smart Lock T8520

Live Streaming Protocol (RTSP/P2P):

Debug Logs from Home Assistant (https://github.com/fuatakgun/eufy_security/discussions/624) - Without this, I will automatically resolve this issue

2023-09-10 11:46:47.054 DEBUG (MainThread) [custom_components.eufy_security.eufy_security_api] on_open - executed
2023-09-10 11:46:47.054 DEBUG (MainThread) [custom_components.eufy_security.eufy_security_api] domain - server - EventSourceType.server - set_api_schema - {'schema_version': 18} - {'schemaVersion': 18}
2023-09-10 11:46:47.057 DEBUG (MainThread) [custom_components.eufy_security.eufy_security_api] {'schemaVersion': 18, 'command': 'set_api_schema', 'messageId': 'set_api_schema.beb9d535c2e545929141bde7e09f09c5'}
2023-09-10 11:46:47.057 DEBUG (MainThread) [custom_components.eufy_security.eufy_security_api] send_message - {'schemaVersion': 18, 'command': 'set_api_schema', 'messageId': 'set_api_schema.beb9d535c2e545929141bde7e09f09c5'}
2023-09-10 11:46:47.062 DEBUG (MainThread) [custom_components.eufy_security.eufy_security_api] _on_message - {'type': 'version', 'driverVersion': '2.4.0', 'serverVersion': '1.3.0', 'minSchemaVersion': 0, 'maxSchemaVersion': 16}
2023-09-10 11:46:47.099 DEBUG (MainThread) [custom_components.eufy_security.eufy_security_api] _on_message - {'type': 'result', 'success': False, 'messageId': 'set_api_schema.beb9d535c2e545929141bde7e09f09c5', 'errorCode': 'schema_incompatible'}
2023-09-10 11:46:47.100 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry <IP_ADDRESS> for eufy_security
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 388, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eufy_security/__init__.py", line 50, in async_setup_entry
    await coordinator.initialize()
  File "/config/custom_components/eufy_security/coordinator.py", line 37, in initialize
    await self._api.connect()
  File "/config/custom_components/eufy_security/eufy_security_api/api_client.py", line 71, in connect
    await self._set_schema(SCHEMA_VERSION)
  File "/config/custom_components/eufy_security/eufy_security_api/api_client.py", line 147, in _set_schema
    await self._send_message_get_response(OutgoingMessage(OutgoingMessageType.set_api_schema, schema_version=schema_version))
  File "/config/custom_components/eufy_security/eufy_security_api/api_client.py", line 319, in _send_message_get_response
    return await future
           ^^^^^^^^^^^^
custom_components.eufy_security.eufy_security_api.exceptions.FailedCommandException: {'type': 'result', 'success': False, 'messageId': 'set_api_schema.beb9d535c2e545929141bde7e09f09c5', 'errorCode': 'schema_incompatible'}

Logs from Eufy Security Add-on (either from Add-ons page of Home Assistant or Docker output):

2023-09-10 18:46:22.025  INFO  Push notification connection successfully established
2023-09-10 18:46:38.840  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:46:38.845  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:46:47.078  ERROR Message error
 Error
details:
{
  schemaId: 18,
  errorCode: 'schema_incompatible'
}
error stack:
• server.ts:91 receiveMessage
    src/lib/server.ts:91:27
• server.ts:68 <anonymous>
    src/lib/server.ts:68:53
• node:events:513 emit
    node:events:513:28
• websocket.js:1178 receiverOnMessage
    node_modules/ws/lib/websocket.js:1178:20
• node:events:513 emit
    node:events:513:28
• receiver.js:528 dataMessage
    node_modules/ws/lib/receiver.js:528:14
• receiver.js:446 getData
    node_modules/ws/lib/receiver.js:446:17
• receiver.js:148 startLoop
    node_modules/ws/lib/receiver.js:148:22
• receiver.js:83 _write
    node_modules/ws/lib/receiver.js:83:10
• writable:391 writeOrBuffer
    node:internal/streams/writable:391:12
2023-09-10 18:47:00.716  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:47:00.719  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:47:27.763  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:47:27.766  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:48:04.436  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:48:04.439  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:48:51.131  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:48:51.133  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:49:48.011  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:49:48.013  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:50:54.867  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:50:54.870  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:53:12.061  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:53:12.062  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:56:28.802  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 18:56:28.805  INFO  Timeout connecting to station T8520Q2021380E45
2023-09-10 18:57:53.393  INFO  Client disconnected with ip: <IP_ADDRESS> port: 39174 code: 1006 reason: Abnormal Closure
2023-09-10 18:59:28.897  ERROR Message error
 Error
details:
{
  schemaId: 18,
  errorCode: 'schema_incompatible'
}
error stack:
• server.ts:91 receiveMessage
    src/lib/server.ts:91:27
• server.ts:68 <anonymous>
    src/lib/server.ts:68:53
• node:events:513 emit
    node:events:513:28
• websocket.js:1178 receiverOnMessage
    node_modules/ws/lib/websocket.js:1178:20
• node:events:513 emit
    node:events:513:28
• receiver.js:528 dataMessage
    node_modules/ws/lib/receiver.js:528:14
• receiver.js:446 getData
    node_modules/ws/lib/receiver.js:446:17
• receiver.js:148 startLoop
    node_modules/ws/lib/receiver.js:148:22
• receiver.js:83 _write
    node_modules/ws/lib/receiver.js:83:10
• writable:391 writeOrBuffer
    node:internal/streams/writable:391:12
2023-09-10 19:00:45.544  WARN Station T8520Q2021380E45 - Tried all hosts, no connection could be established
2023-09-10 19:00:45.547  INFO  Timeout connecting to station T8520Q2021380E45

Would you share your device with me in case further debugging required? (Yes/No):

Additional context
Add any other context about the problem goes here. Mainly, share everything as log files and use screenshots as last resort.

Resolved this issue by installing the new Add-On (here: https://github.com/bropat/hassio-eufy-security-ws/tree/master/eufy-security-ws) and setting it up.


zstream trigger: do not stop process after the first trigger

When process_and_trigger_jobs called without version, continue to process all other versions.
Fix https://github.com/RedHatQE/ci-jobs-trigger/issues/95

Report bugs in Issues
The following are automatically added:

Add reviewers from OWNER file (in the root of the repository) under reviewers section.
Set PR size label.
New issue is created for the PR. (Closed when PR is merged/closed)
Run pre-commit if .pre-commit-config.yaml exists in the repo.

Available user actions:

To mark PR as WIP comment /wip to the PR, To remove it from the PR comment /wip cancel to the PR.
To block merging of PR comment /hold, To un-block merging of PR comment /hold cancel.
To mark PR as verified comment /verified to the PR, to un-verify comment /verified cancel to the PR.
verified label removed on each new commit push.
To cherry pick a merged PR comment /cherry-pick <target branch to cherry-pick to> in the PR.

Multiple target branches can be cherry-picked, separated by spaces. (/cherry-pick branch1 branch2)
Cherry-pick will be started when PR is merged

To build and push container image command /build-and-push-container in the PR (tag will be the PR number).
To add a label by comment use /<label name>, to remove, use /<label name> cancel
To assign reviewers based on OWNERS file use /assign-reviewers
To check if PR can be merged use /check-can-merge

Supported /retest check runs

/retest tox: Retest tox
/retest build-container: Retest build-container

Supported labels

hold
verified
wip
lgtm

/verified

/verified

/verified

New container for quay.io/redhat_msi/ci-jobs-trigger:latest published


[Question] Support for ASP.NET Core and Blazor

Is this supported in:

an ASP.NET Core app
a Blazor (wasm) app

also interested in using it in blazor .net6


feat: add codeql workflow

Related Issues or bug
This PR resolves issue: #1783
Files added

.github/workflows/codeql.yml

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.

Please review this PR
Thanks

Thank you @harmeetsingh11 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

Hey @harmeetsingh11,
You can't work on a closed issue 👀!
Follow the proper guideline and make a new PR again 😀.
Happy Hacking 💗

Thank you  @harmeetsingh11 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀

@kunjgit please reopen issue #1783 so that I can make a new PR.


Search - Highlight newly added expense

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/48716
PROPOSAL:
Tests

Switch to the Search page tab.
Click the global create button (FAB) > Submit expense > Submit an expense.
Verify you remain on the search page.
Verify that the newly added expense appears in the table and the row is briefly highlighted to draw attention to it.

[x] Verify that no errors appear in the JS console

Offline tests

Switch to the Search page tab.
Go offline.
Click the global create button (FAB) > Submit expense > Submit an expense.
Verify you remain on the search page.
Go back online.
Verify that the newly added expense appears in the table and the row is briefly highlighted to draw attention to it.

QA Steps

TLDR: Same as Tests.

Switch to the Search page tab.
Click the global create button (FAB) > Submit expense > Submit an expense.
Verify you remain on the search page.
Verify that the newly added expense appears in the table and the row is briefly highlighted to draw attention to it.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/9038252a-e614-44b4-abe6-dfadd3f2c69c

Android: mWeb Chrome

https://github.com/user-attachments/assets/4533e6be-1d10-4af2-98dd-42bfd5ef2425

iOS: Native

https://github.com/user-attachments/assets/828a808a-6a51-4d3e-9e00-5cbcc72d3846

iOS: mWeb Safari

https://github.com/user-attachments/assets/10f9bd1f-42f3-4e23-a008-159070056677

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/24217552-4286-484c-9530-73d46bc4e418

MacOS: Desktop

https://github.com/user-attachments/assets/6ca2b167-9474-4062-aa01-3528c22b5b0c

@ishpaul777 I assume it does, coming from the issue - currently we're still polishing the animation and I have to fix the failed checks. Will let you know once this is ready for C+ review 👍

@luacmartins Not sure why the tests are failing, could it be because of the FE implementation mentioned in https://github.com/Expensify/App/pull/49192?notification_referrer_id=NT_kwDOA116B7QxMjM5OTQyNjM4OTo1NjQ1NzczNQ#discussion_r1759544384 ? 🤔

Not sure either. They all seem unrelated. Are they consistently failing?

@luacmartins They seem to be (job 1, 2 and performance) - will try another sync w/ main but if that doesn't do it, not sure what the next steps should be here 🤔

I don't seem to always get the highlight animation when submitting from an empty state:
https://github.com/user-attachments/assets/a3e053c6-ea06-4a0e-8879-10d4ac67f654
I've tried to reproduce it and get the animation once in a while, but not reliably

As for the animation, I tested it locally and it looks really good 😄   Great job! 👏 cc @Expensify/design for viz

I don't seem to always get the highlight animation when submitting from an empty state:

@dubielzyk-expensify Thanks for double-checking this, you saved us a regression with this one as I missed checking the case when the list is empty (new account) - which caused the following two issues:

When the list is empty (new account), there won't be any previous transactions -> the Search get wouldn't be called with previous logic. ✅ Fixed the logic to account for this!
When the list is empty (new account), there won't be any previous transactions -> the shouldAnimateInHighlight would be false because the newSearchResultKey would try to determine if new transaction key exists in the previous transactions list, but because this is empty on a new account -> newSearchResultKey would be undefined hence the newly added transaction wouldn't animate in / highlight. ✅ Fixed the logic to account for this!

This is how it looks now on a new account when creating the first transaction:
https://github.com/user-attachments/assets/cca8b7d1-9d17-4f5b-96ef-608aa8e7c40e

Boom! That's looking excellent

Nice! This is looking great. @ikevin127 we have some conflicts. Also is this ready for review?

@luacmartins Yes, this is ready for review - just fixed the conflict, but the test issues are still standing and I'm not sure what can I do to move forward in this case.

♻ I will look into this today, use some AI to try and find a link between my changes and the tests that are failing.

@ishpaul777 This is ready for review now!
More details about how I fixed the failing tests in https://github.com/Expensify/App/pull/49192#issuecomment-2361883304.

@luacmartins Need your input on https://github.com/Expensify/App/pull/49192#issuecomment-2364224892 and https://github.com/Expensify/App/pull/49192#discussion_r1769016416 as to whether we want to extend the feature to include these details, given that it wasn't mentioned to me before.

NAB, Any plans to scroll to expense added when its out of visible view?

yes, we should do this for new expenses

there can be multiple newsearch keys, example scenario user add few expenses offline then add a new expense online in this case there will be multiple new expenses but only one highlights

This is ok, we need to highlight the latest created transaction

Currently when you start a chat, you are redirected to the report page (central pane) - instead of staying on the Search page like it happens for Expenses / Invoices, so I don't think that's possible at this point. But if that ever happens, the changes made to TransactionListItem.tsx in this PR covers the Chats component too when it comes to the animation / highlight.

I don't think we need to highlight it in this case, since the RHP would still be open and the new message would be shown to the user. Maybe we can refresh the search page when the RHP is dismissed in this case so the new messages show up.

NAB, Any plans to scroll to expense added when its out of visible view?

yes, we should do this for new expenses

♻ Just pushed the scroll to newly added expense functionality which works for both Expenses and Invoices.
https://github.com/user-attachments/assets/2f57df12-f792-4b5c-aa90-13a4e7a27543
cc @luacmartins @ishpaul777

Thanks for double checking the functionality, I'll start working on fixing the bugs and implementing the hook request tomorrow.

@luacmartins Thanks for double checking this and catching the bugs 👍 I just applied the fixes for the two bugs mentioned (ref1, ref2) and also performed the refactoring requested in https://github.com/Expensify/App/pull/49192#discussion_r1774199378 which ensures we keep the logic in the Search component small.
Here's a video after the fix was applied:
https://github.com/user-attachments/assets/fd08ce05-72fc-4bdf-8849-a7985e39ad8e
Please check this again and let me know if there are any other issues 🤞

Nice! Thanks for working on those. It seems like a few tests are failing. @ishpaul777 could you please review this PR again once the tests above are fixed?

♻ Looking into fixing the remaining bugs today.

@ishpaul777 ♻ I refactored the code to use a single hook (useSearchHighlightAndScroll) and improved the logic to fix the 3 issues you mentioned above. Please test again and let me know if there are any other issues!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

♻ Looking into this as I authored the alleged offending PR, will get back soon with confirmation and PR if it is indeed coming from https://github.com/Expensify/App/pull/49192.

@Julesssss ✅ I confirm that https://github.com/Expensify/App/issues/50046 is indeed a regression of this PR and I will open a follow-up PR to fix it since this is still in the regression period.


Add bank extension

For #276

but are we not adding the other functions?

Which other functions? Those as all queries for the bank module. We don't connect POST endpoints as those require keypairs on the REST server. Instead, all writing operations are done via tx submission.

What about total?
https://github.com/cosmos/cosmos-sdk/blob/master/x/bank/client/rest/rest.go

What about total?

Ah, interesting. I took the ones from the documentation at https://cosmos.network/rpc/v0.38.3. Turns out in 0.38 there is only one query: https://github.com/cosmos/cosmos-sdk/blob/v0.38.5/x/bank/client/rest/tx.go#L17-L20. Looks like the /supply queries moves to bank on master.


Retry download, cancel and notify user on fail

Retry download N times.
If the download still fails, cancel the process and display "Error downloading proof files".
Fixes #102
https://github.com/zkemail/zk-email-verify/assets/667227/13e8f95e-82c6-4052-b01f-3d4209302f42

Awesome! We are mid-move to this repo: https://github.com/zkemail/proof-of-twitter
Can you move these changes there?

Awesome! We are mid-move to this repo: https://github.com/zkemail/proof-of-twitter
Can you move these changes there?

@Divide-By-0 Sure! https://github.com/zkemail/proof-of-twitter/issues/1


Functions should lose their binding

Currently the binding makes it so a function cannot reference any functions defined after it's declaration. That's why I needed to override the function to support factorial. Only the old factorial definition existed.
A better implementation is to do multiple passes to determine the names at leach scope level.

Just use the given environment and remove the binding field.

Can't just remove the binding because without a stack, the nested and recursive calls fail.


RTL Tele Luxembourg

Guide
https://iptv-org.github.io/epg/guides/lu.xml
Description
RTLTeleLuxembourg.lu is showing incorrect EPG info. It seems to be picking up EPG for RTLGermany.de

Fixed in https://github.com/iptv-org/epg/commit/937447caebe4b8a189b6b0f56ceef76bfb1273e3 and https://github.com/iptv-org/epg/commit/2a66d878f997ac7bb833c22fec8ec2a798643ab7


Show text on hover?

I have several of the same icons - I'm not sure which is which unless I test them 1-by-1: Even GRUB alt bootloader has the same entry as Ubuntu.
How to show the menu text when hovering over? Minimal is nice, but it's also making me confused ;p

As far as I know, this isn't functionality that rEFInd offers.

As far as I know, this isn't functionality that rEFInd offers.

The default skin natively uses this ;p I found it in a config file.


[sse] Prefix each line with data:

Each line of data in an SSE message must be prefixed with data: , according to MDN and the spec.
Clients are responsible for joining adjacent data:  lines using a newline character.
Fixes #1774.

Thanks, I'm a bit surprised about this one 🤔


feat(logger): Add log level configuration (#1451)

Is there anything I could do to help this PR to be merged?

I have updated cli.ts accordingly

I was playing around with the typing for LogLevel a little more (using TS 2.1) and I think i've found a simplified version that has the benefit of explicitly stating the values for logLevel in code https://github.com/NickTomlin/protractor/commit/3fe8606651fe17dc4b985adad0d798414b6385eb. This results in an exception in the logger if the value is not valid:
./bin/protractor example/conf.js --logLevel=NOT_VALID
/Users/ntomlin/workspace/protractor/built/logger.js:130
                throw new Error('Log level invalid or undefined');
                ^

Error: Log level invalid or undefined
    at Logger.log_ (/Users/ntomlin/workspace/protractor/built/logger.js:130:23)
    at Logger.debug (/Users/ntomlin/workspace/protractor/built/logger.js:86:14)
    at Object.initFn [as init] (/Users/ntomlin/workspace/protractor/built/launcher.js:98:12)

I have updated the PR with @NickTomlin and @Xotabu4 suggestions

How are we on this PR?

@seanmay mind taking a look at this when you have some free time?

can we merge this PR? It is a useful feature!

Could you please add a test for this change?

We would also really like to see this merged.

@bcaudan If you get time can you please add some tests? This PR is pending from long time!
@alecmerdler Meanwhile you could use cliptor for configuring this log level, It basically wraps the same setting which is implemented in this PR.

I've been using this hacky solution for now.
Also, I would be open to writing tests for this PR (or opening another with tests) if that would be okay with @bcaudan.

@qiyigg This PR doesn't have any merge conflicts, why do we need to open a new one? I am glad to do it but would prefer to give @bcaudan the credit.

@qiyigg I have added some unit tests for the Logger.
Let me know if you had other tests in mind.

@bcaudan I already triggered a rebuild, let's see what happens.
The circleCI should be already fixed since last release.
Thanks for adding these tests. My understanding is it would be better to have a integration test, say, have a separate config file which sets loglevel there, and check it during test. But since it is a simple change, I am OK with current test.
I can merge the change as long as the circleCI is passed.

@qiyigg Will there be a new release soon with these changes?

@alecmerdler to be honest, I don't have enough bandwidth recently, I'll try to make it this week, but no guarantee.


Data structure for the props

The reason for change of props data structure is, when the workspace gets too big, the updation of props takes some more time. To reduce the time taken, the props data structure is changed.

componentID : [props]
componentID: {propID: prop}

before
componentID : [props]
after
componentID: {propID: prop}
or
byID: {}; byComponentID: {componentID:[id1, id2]}

I had seen the video bro. I think second approach seems good. I have suggestions, correct me if i am wrong
Can we use prop-name instead of prop-id as keys. Because prop-names will also be unique. There will no duplicate prop-names.
Instead of having byComponentId as another individual property. Can we move it into the component object structure. Each component will have their set of prop-id's. We can fetch the props based on the id's in the component structure.
For Example:
Comp-1:{
id:"comp-1",
type:"Button",
parent:"Comp-0",
children:[],
propIds:["prop-1","prop-2"]
}

This are just my suggestions

Props:{ 1: { 	byID:{ 		prop-KHTASDNFAS : { 			name: “margin”, 			value: “asfasdf, 			derivative’s… 		} 		prop-asfsf {} 	} 	byComponentID:{ 		comp-ASFASFDA:[prop-KTSS, ] 	} } } }


Add placeholder to search bar on badges page

When viewing badges page as a staff (manager) there's a search bar, which lacks a placeholder.

@Laxmankohar Thanks for reaching to us. Assigned ✅

Fixed by #561


Using {{ git.branch }} cache-key with a / in the branch name

Hi!
First off, love this plugin, thanks for all the hard work on it!
We've run into an issue recently using the new {{ git.branch }} cache key template, as some member's of my team use /'s in there git branch names.
Eg: fix/some-bug-we-found, feat/something-cool.
As using {{ git.branch }} means BUILDKITE_BRANCH is added directly into the CACHE_KEY, then via the S3 backend the ${CACHE_KEY}.tar is used as a mv target, we're getting errors like this in our builds:
mv: cannot move ‘/tmp/tmp.7G7Oz0l31L’ to ‘v1-cache-e3205e875e8a4ae8ed103242460f2bc0f41be2d8-fix/some-bug-we-found.tar’: No such file or directory

I imagine since its trying to copy into a non-existent sub-directory?
Example pipeline.yml that will produce this issue:
- gencer/cache#v2.4.6:
    backend: s3
    key: "v1-node-cache-{{ checksum 'yarn.lock' }}-{{ git.branch }}"
    s3:
        bucket: 'some-bucket-name'
    paths:
        - 'node_modules'

Happy to raise a PR to fix given some guidance on how we wanna fix this.
Thoughts?
Thanks!

Hi @Ben435!
Thanks for the kind words and happy to see this plugin works for you (except this issue :))
Two thing came to my mind for this case:

Drop anything except [a-zA-Z0-9] using pure bash (or replace them with _)
Replace only slashes /\ with _.

But I believe dropping anything except English alphabet and numbers will much better. In case any other special character may be used in branch name. I'm not sure actually but I think I also seen * in branch names on some repositories. That would also make cache fail.
PR welcomed for this.

Could you please test against new branch?:
- gencer/cache#fix-branch-name:
    backend: s3
    key: "v1-node-cache-{{ checksum 'yarn.lock' }}-{{ git.branch }}"
    s3:
        bucket: 'some-bucket-name'
    paths:
        - 'node_modules'

Based on this SO answer, which leads to this man page, looks like * isn't possible, but seems if you escape ' you could make a branch name with that.
In terms of file path interaction, I think / is the main one we could hit, as \ is disallowed, as is .. and a few other potentially problematic ones.
tldr: your PR looks like it'll fix it, I don't think the more explicit [A-z0-9] fix will be required.

Thanks for confirming!
v2.4.8 Released.


Update Arch Linux to 20220710 in Docker image

This PR does 2 things

Updates Arch Linux date lock in docker image to 20220710.
Fixes any compile errors introduced by the updated versions

We tested this on real robot and looks to be all good. Last thing to fix up is that warning from DataLogging.

We tested this on real robot and looks to be all good. Last thing to fix up is that warning from DataLogging.

A warning in Data logger introduced in this PR?

We tested this on real robot and looks to be all good. Last thing to fix up is that warning from DataLogging.

A warning in Data logger introduced in this PR?

Yeah, it was also a problem in the other branch


set default value for nsone cname to None, use first value if non-zer…

NS1 will allow you to create a record with no answer. You cannot query for it however, but it will come back in their API/UI (According to their support, this is a feature/expected behavior, there is no RFC saying it is incorrect)
Other record types have a default value of values = []. CNAME, ALIAS, and PTR are the special cases in which only 1 answer is valid.
This adds a default value of None, otherwise only set the value if there is one
This addresses one part of: #131

I'm not sure if None or '' is a better initial value.
None will produce a null in the YAML file, eg. value: null
'' will produce a '' value in the YAML file, eg. value: ''
In validations for None, zero-length values, it will not even write the value key to the YAML file. I think None is a good value to check in that case, rather than an empty string.

Updated. I haven't seen that before (granted I don't look at a lot of python code), however I think it's a lot more clear about what it's doing than checking length.
Thanks


Enhance the Contributors Section

Fixes Issue🛠
#172
Closes #172
Description👨💻
I have created a separate page for the contributors section, where contributor profile photo of github is present and also uses hover effect and added impressive heading
Type of change📄

[] Bug fix (non-breaking change which fixes an issue)
[] New feature (non-breaking change which adds functionality)

How this has been tested✅

Checklist✅

[] My code follows the style guidelines of this project
[] I have performed a self-review of my own code
[] I have commented my code, particularly in hard-to-understand areas
[] I have added demonstration in the form of GIF/video file
[] I am an Open Source Contributor

Screenshots/GIF📷

Why this is coming like this, do fix and make the commit in this same PR @Parth4git

@Rakesh9100 What issue you face pls explain me with this PR .So,I can update it

Why the sentence is coming like this, do fix, enhance and make the commit in this same PR @Parth4git

Also, why extra files changes are visible, I have fixed it but take care from next time.
Put screenshot in the PR description.

Corrected the issue

Attch the screenshot in the PR description @Parth4git

Good, Merged!! ✨ @Parth4git


Gather Feedback from Users for Validation & Submission History Feature's Clickable Prototype

Reach out to 5 Sender users (i.e. people) with at least 3 Organizations to get their feedback on the Validation & Submission History Feature's Clickable Prototype
Doesn't have to be CSV users, can be API users

Notes from our user testing session with A1H based around clickable prototypes for sender submission history and file upload/validation: https://cdc.sharepoint.com/:w:/r/teams/USDSatCDC/_layouts/15/Doc.aspx?sourcedoc={B5D4CD06-7B93-4BFD-91FE-F69D84AF6D72}&file=A1H - Sender Experience Prototypes.docx&action=default&mobileredirect=true&cid=f6290ce4-84df-4d7c-8aae-6a9de08f916e

Created folder in sharepoint. https://cdc.sharepoint.com/:f:/r/teams/USDSatCDC/Shared Documents/PRIME ReportStream/Team Documents/Experience Team/Experience Research/Feedback from Users for Validation %26 Submission History Feature's Clickable Prototype%232859 January 2022 ongoing?csf=1&web=1&e=7fxgt0
Got referrals from O+O for API senders. Need to F/U and get contacts.

API ticket split out: https://app.zenhub.com/workspaces/prime-reportstream-5ff4833beb3e08001a4cacae/issues/cdcgov/prime-reportstream/3929


annotate each meddra term with an optional EFO ID

@JarrodBaker, using the recently incorporated cross-ref from disease entities as a way to match and annotate each MedDRA ID with its corresponding EFO ID so the @opentargets/frontend could use the optionally resolved disease entity.
Some base code to work with if helps
logger.info("compute xref from efo disease to meddra")
val med2efo = diseases.selectExpr("id", "dbXRefs")
    .withColumn("xref",explode($"dbXRefs"))
    .filter(col("xref").contains("DRA"))
    .withColumn("meddraCode", element_at(split($"xref", ":"), 2))
    .selectExpr("id as diseaseId", "meddraCode")
val faersEFOLeft = faers.join(med2efo, Seq("meddraCode"), "left_outer").withColumnRenamed("chembl_id", "chemblId")
// TODO select just the needed columns or clean med2efo before
...

You could potentially address this issue when you integrate the OpenFDA pipeline with the main ETL in the issue #1416

I explored the same data to get some sense of the coverage.

Number of unique Meddra codes in pharmacovigilance data: 9597
Number of EFO terms with Meddra Xrefs: 1436
Intersect between the previous 2 sets: 577

As @mkarmona raised, beware the .contains("DRA") as Meddra can have multiple spellings in EFO.
I raised a ticket in EFO to increase Xref coverage https://github.com/EBISPOT/efo/issues/978
Adding my code for future reference:
meddraXrefs = (disease
 .select(col("id").alias("diseaseId"), explode("dbXRefs").alias("xref"))
 .withColumn("source", split(col("xref"), ":").getItem(0))
 .withColumn("meddraCode", split(col("xref"), ":").getItem(1))
 .drop("xref")
 .filter(col("source").contains("DRA"))
)

mapped = (
    fda
    .select("meddraCode")
    .distinct()
    .join(meddraXrefs, on = "meddraCode", how = "left")
)
``

@d0choa yes it could be more using like or starts with instead contains

I raised it with EFO and they will try to clean it as part of https://github.com/EBISPOT/efo/issues/878

#1533 increased the coverage of EFO - Meddra mappings

@mbdebian did you consider this when working on the openFDA pipeline? No rush but it will be a nice to have at some point

I didn't take this one into account, when I did the OpenFDA work, I'll have a look at the data and the code to find out how it could be made possible.

@jdhayhurst , would mind checking with the data team whether this issue is still relevant?
Thanks!

I think this is still relevant. In #3003, we removed the reference to MedDRA because ChEMBL improved the mapping of the drug warnings data from reporting generalm MedDRA code to re-curate the adverse event to a more specific EFO code. That made the MedDRA annotation practically uninformative.
This ticket is about the Pharmacovigilance data, which is related but not the same. Here we have the most significant adverse events for a drug as reported by doctors. These events is not a curated list of adverse events like in the previous case. In Pharmacovigilance, to report adverse events people often use MedDRA to define ADRs. This is what we currently show in the ticket. 10% of EFO IDs have a cross reference with MedDRA like this one here.
{
  "data": {
    "disease": {
      "id": "EFO_0000222",
      "name": "acute myeloid leukemia",
      "dbXRefs": [
        # more here
        "MedDRA:10000880",
        # more here
      ]
    }
  }
}

What we propose here is to expand the pharmacovigilance dataset so that we can establish a link between the MedDRA and an EFO ID.


Standardise files with files in sous-chefs/repo-management

Signed-off-by: Dan Webb<EMAIL_ADDRESS>

Released as: 2.0.4


CIV- 3459 Modify Jenkins to trigger the test

Before creating a pull request make sure that:

[x] commit messages are meaningful and follow good commit message guidelines
[x] README and other documentation has been updated / added (if needed)
[x] tests have been updated / new tests has been added (if needed)
[x] Screenshot attached for the Evidence of manual testing
[x] Functional, Smoke and API tests have been run locally
[x] Full gradle build and run tests with coverage have been completed (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-3459
Change description
specify the CCD branch to trigger the test
https://github.com/hmcts/civil-general-apps-ccd-definition/pull/285
Testing branch and instruction
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

[ ] Revert the jenkins file


[GHSA-r5hg-349q-mg2q] Buildkite Elastic CI for AWS time-of-check-time-of-use race condition vulnerability

Updates

Affected products

Comments
Based on the info from the NVD site linked in the GHSA "versions prior to 6.7.1 and 5.22.5" are affected. The table at the bottom of the NVD site also implies that it should be versions >= 6.0.0, < 6.7.1
I made the same suggestion for https://github.com/github/advisory-database/pull/3265

I think we have this one listed like this because the artifact only has versions tagged as 6.x.y published
https://pkg.go.dev/github.com/buildkite/elastic-ci-stack-for-aws/v6?tab=versions
based on the naming convention I would expect https://pkg.go.dev/github.com/buildkite/elastic-ci-stack-for-aws/v5 for versions tagged as 5.x.y, but no such versions seem to have been published.

👋 This pull request has been marked as stale because it has been open with no activity.  If you do nothing this pull request will be closed eventually by the stale bot. Please see CONTRIBUTING.md for more policy details.

👋 This pull request has been marked as stale because it has been open with no activity.  If you do nothing this pull request will be closed eventually by the stale bot. Please see CONTRIBUTING.md for more policy details.

👋 This pull request has been marked as stale because it has been open with no activity.  If you do nothing this pull request will be closed eventually by the stale bot. Please see CONTRIBUTING.md for more policy details.


[text] Artist and song name are misaligned and first letters are cut off

Describe the bug
Artist and song name are misaligned and first letters are cut off
To Reproduce
Steps to reproduce the behavior:

launch spotify with text theme installed
Expected behavior
artist and song name are fully shown

Specifics (please complete the following information):
OS: [win11]
Spotify version [<IP_ADDRESS>1]
Spicetify version [v2.36.1]
text

The theme is incompatible with the Cover Ambience extension; it's not the theme itself that is broken.

Sadly the issue still occurs after uninstalling Cover Ambience extension.

Okay, so when I hid the song cover that's in the left bottom corner, the text aligned correctly, but now I don't know how to get the image back 🤔

What are you using to get the image on the left side there? If its like that by default, then you're running an older spotify version that the theme may not be compatable with.


Allow the events sidebar in the Timeline editor to be resized manually or automatically

Is your feature request related to a problem? Please describe.
At the moment, the events sidebar in the Timeline editor cannot be resized.
This may be an issue with DPI scaling, but event names are cut off and require scrolling for me:

Describe the solution you'd like
The width of the events sidebar should automatically resize to fit the event names, or should allow for manual resizing by the user.
Describe alternatives you've considered
(as above)
Additional context
(n/a)

@coppolaemilio This seems to already been nearly implemented. The only thing I had to change for it to work was to remove the custom separation on the main node of the TimlineEditor. Is there a reason for this?
The separation disabled:


Add MIT License please

Hey, It might be late, but I've finally added the MIT license to the project. Now, you can use my program as you wish.


Update build action to build on adafruit/ci-arduino's new wippersnapper branch

Motivation
This pull request simplifies our process for building WipperSnapper Arduino and allows us to:

Not build WipperSnapper from arduino-esp32 release, by default
Apply patches to a fork/branch of the arduino-esp32 bsp. This will allow for us to stop waiting for a new release and patch/rebuild WS directly.
Build specific platforms (i.e: FunHouse ESP32-S2) on specific BSP versions (or patched BSP versions)

Technical Details
Instead of using adafruit/ci-arduino, which pulls from the latest arduino-esp32 release, this PR points build-clang-doxy.yml to the ci-wippersnapper branch of adafruit/ci-arduino.
Within this branch is a modified all_platforms.py file which:

Points to a branch of adafruit/arduino-esp32 corresponding to a release of the espressif/arduino-esp32.

For example, the all_platforms.py targets currently point to the repo adafruit/arduino-esp32 and branch wipper-bsp-3.0.5-idf-5.1.4. This branch is wippersnapper-specific (denoted by the wipper- prefix), builds on espressif/arduino-esp32's release 3.0.5 (bsp-3.0.5), and uses ESP-IDF 5.1.4 (idf-5.1.4).

Prefixes the platform's FQBN with espressif:, allowing it to build from source rather than a pre-packaged release.

@ladyada  - As a result of this PR and tooling changes, you may see some new branches across adafruit/arduino-esp32 (i.e: https://github.com/adafruit/arduino-esp32/tree/wipper-bsp-3.0.5-idf-5.1.4) to track espressif's releases. We are also using the ci-wippersnapper branch of adafruit/ci-arduino as a build script for WipperSnapper.

thanks good idea!


make tests and make examples, combined with make test, match CI runners.

For convenience. I keep forgetting what to run.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (831ebf6) 71.28% compared to head (809a176) 71.28%.

:exclamation: Current head 809a176 differs from pull request most recent head 5c99803. Consider uploading reports for the commit 5c99803 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #124   +/-   ##
=======================================
  Coverage   71.28%   71.28%
=======================================
  Files           8        8
  Lines         867      867
=======================================
  Hits          618      618
  Misses        249      249

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

@naomijub I can still merge without review

Added clippy and fmt too...


[ENH] BEP001 - Quantitative MRI

Dear BIDS community,
The field of anatomical MRI has recently seen a bloom of techniques that allow us
to characterize brain tissue in new ways and visualize brain structure that remained
invisible before.
This new set of techniques has become known as quantitative MRI (qMRI),
offering the possibility of quantifying brain tissue in physical units, such as
T1, T2 and T2* in seconds. Quantitative MRI provides neuroimaging researchers
with numerous novel applications such as the delineation of specific subcortical nuclei
in the subcortex, parcellation of the visual system based on laminar myeloarchitecture and measuring the myelination of white matter bundles in an absolute scale, just to count a few.
Unfortunately, these data are not easily collected and need computational modeling
to come to full bloom. Of course, BIDS could offer some amazing tools to help
researchers make both qMRI data and software more easily accessible. However,
currently BIDS cannot accommodate qMRI data as it confines the description of
anatomical images to grayscale T1- or T2-weighted images.
Thanks to the contributions from dozens of researchers over the course
of 3 years, we are very happy to make this pull request for the BIDS extension
proposal 001 to provide support for a wide range of anatomical MRI applications.
This extension will facilitate:

the adoption of qMRI techniques in the research community
the development of accessible software to process qMRI data.

To make this possible, we propose to extend the concept of suffix, in the domain
of anatomical (anat) data. Specifically, anatomical images can now be described
in one of the following 3 suffix sub-categories:

Conventional MRI suffixes for traditional MRI contrasts, e.g., _T1w and _T2w
Grouping suffixes to group together multi-contrast images collected for qMRI
applications, e.g., _MP2RAGE and _MPM
Quantitative map suffixes for the quantitative parametric images such as
_T1map (s), _T2map (s) and _Chimap (ppm).

Categories (2) and (3) allow data set curators to clearly indicate
which images should be considered together in further (computational) processing,
and which images have interpretable units, respectively.
To further accommodate researchers using qMRI, we also introduced some new metadata
fields that are particularly important when fitting biophysical models to MRI data
and guidelines on which metadata are necessary for some more common qMRI protocols.
Most of these metadata fields should not be controversial, but some of you might
be surprised that we introduced two new fields, called RepetitionTimePreparation
and RepetitionTimeExcitation. These do not replace, but extend the original
RepetitionTime-field. Please note that the original definition of RepetitionTime
in the main specification, which reads as follows:

The time in seconds between the beginning of an acquisition of one volume and
the beginning of acquisition of the volume following

does not generalize to most anatomical MRI protocols. Moreover, in some qMRI
applications, e.g. in the increasingly common MP2RAGE protocol, a (set of) readout
block(s) with multiple excitation pulses is nested in a larger sequence block with,
for example, an inversion pulse. Therefore, we need two definitions of repetition
time: one for the time between preparation blocks, and one for the time between
excitation pulses within each readout block.
Another addition of BEP-001 that might raise some eyebrows is that we moved three
anatomical suffixes (_T2star, _FLASH, and _PD) to a legacy table. This means
that using these suffixes is still valid BIDS, but we recommend against using them,
because these suffixes are ambiguous and do not adhere to the structure of the other
anatomical suffixes. Please note that these three suffixes are currently not very
common anyway and that we extensively explain why we recommend against them in the
legacy table.
To conclude, we are very excited to, after years of hard work -not just by us,
but also many others- to share this extension proposal with the larger BIDS community!
We hope that you can give us some constructive feedback. This would allow us to
improve the extension further and finally offer researchers from across the globe
the opportunity to combine the wonders of BIDS and quantitative MRI.
Finally you can find 8 real-life qMRI example data sets organized according to
our BIDS extension proposal at https://osf.io/k4bs5/.
BEP001 GitHub repository: https://github.com/bids-bep001/bids-specification
We would like to note that this PR includes changes that are highly relevant to https://github.com/bids-standard/bids-specification/pull/424 by @tsalo. The corresponding discussions can be found here.
Kind regards,
Gilles de Hollander (@Gilles86), Agah Karakuzu (@agahkarakuzu), Alberto Lazari (@lazaral), Christophe Phillips (@ChristophePhillips), Kirstie Whitaker (@KirstieJane)

Thank you so much @agahkarakuzu for opening up this PR!! It's SO EXCITING to ask the BIDS community for feedback on the thing we've worked so hard on for aaaaages!
I just want to tag Tibor @tiborauer, Mathieu @mathieuboudreau, Nikola @nstikov and Ali @akhanf too! They've done amazing work on BEP001 - thank you all!

Nice work, I have some qMRI data which after fitting has one volume with T1 relaxation times, one with T2 relaxation times and one with proton density (PD). Is PD included in this extension?
I have qMRI data before and after injection of (gadolinium) contrast, so like T1 and T1 GD. Is that supported by the extension?
Sometimes it is better to use relaxation rates R1 (1/T1) and R2 (1/T2), is that supported or should the data always be stored as relaxation times?

Hi, all. I've enabled the bep-001 branch on ReadTheDocs, so you can now point people to https://bids-specification.readthedocs.io/en/bep-001/ to review the text.
The RTD pull request builds (https://bids-specification--508.org.readthedocs.build/en/508/) will also work, if you like inscrutable URLs.

Nice work, I have some qMRI data which after fitting has one volume with T1 relaxation times, one with T2 relaxation times and one with proton density (PD). Is PD included in this extension?
I have qMRI data before and after injection of (gadolinium) contrast, so like T1 and T1 GD. Is that supported by the extension?
Sometimes it is better to use relaxation rates R1 (1/T1) and R2 (1/T2), is that supported or should the data always be stored as relaxation times?

Yes, R1, R2(star) and PD maps are part of the extension. We use these in the MPM protocol and the hMRI toolbox.

For the Gd contrasted images, I assume the -ce entity could still be used to differentiate the images

Hi, all. I've enabled the bep-001 branch on ReadTheDocs, so you can now point people to https://bids-specification.readthedocs.io/en/bep-001/ to review the text.
The RTD pull request builds (https://bids-specification--508.org.readthedocs.build/en/508/) will also work, if you like inscrutable URLs.

@effigies, https://bids-specification.readthedocs.io/en/bep-001/ does not seem to reflect the proposed changes. The RTD build does. Is that what you suggested?

Hmm. I'll have a look. It should show whatever is in that branch...

Oh, I see. I saw there was a bep-001 branch, and assumed that's where this PR was coming from. Since it's coming from https://github.com/bids-bep001/bids-specification/tree/master, I don't think there's a good way to set up a branch like that.

Aaaah - yes - sorry - that's a miscommication on our end. I think we were supposed to do the PR to the bep-001 branch first and then open this PR.
I can do that PR now and then maybe @effigies you can merge to bep-001 and @agahkarakuzu you can update this PR to come from that branch?

I don't think you can change the feature branch of a PR, just the base branch you're merging into. So you'd need a new PR altogether.
Is it worth it to have that URL? If so, I would suggest re-targeting this PR to bep-001 (hit edit on the title, and the base branch turns into a drop-down). We can merge this into bep-001, and start a new PR from bep-001 into master.

Ah - maybe not - lets do a round of reviews here because we've promoted this PR and @nicholst has already left a few comments. Maybe we can set a goal of 1 July for a merge to the bep-001 branch and then another few weeks with a PR open to master?

Nice work, I have some qMRI data which after fitting has one volume with T1 relaxation times, one with T2 relaxation times and one with proton density (PD). Is PD included in this extension?
I have qMRI data before and after injection of (gadolinium) contrast, so like T1 and T1 GD. Is that supported by the extension?
Sometimes it is better to use relaxation rates R1 (1/T1) and R2 (1/T2), is that supported or should the data always be stored as relaxation times?

This is awesome @wanderine! Do you have any data that you can publicly share? Tagging @agahkarakuzu and @lazaral as I think they might be best placed to answer...

@tiborauer @effigies - are you ok with me hiding the comments relating to the discussion about the rendered branch? Just to keep the PR more manageable?

Just building on this conversation with @wanderine and @ChristophePhillips (https://github.com/bids-standard/bids-specification/pull/508#issuecomment-647973414). @wanderine do you have any data that we could incorporate into the OSF examples folder? It would have to be able to be shared publicly so don't worry if not. It would be great to actually have the examples in there though!

@KirstieJane : my comments are trivial. I’m happy to reenter them on another PR.

Would it be possible to separate out the new entities into their own PRs? It seems like the new entities (part, fa, inv, and mt) are fairly self-contained and could be reviewed in distinct chunks.

I agree there's ambiguity in this case, but I see strong parallels with
similar ambiguities we encountered (and decided to live with) in
naturalistic stimuli such as movies.
In that case,  different researchers have interpreted continuous
collections of a movie (for example, the first ten minutes, then the second
ten minutes) as corresponding to [task-movie_run-01, task-movie_run-02] or
to [task-movie01, task-movie02]. In the first case (which I find to be more
common), it's unclear how to disambiguate repetitions of the same clip from
one another.
I posted the full discussion link in the mattermost (and I'll edit this
message when I get back to a computer to include it here), but although I
haven't yet seen this case in a dataset I'd also imagine that acq would
be a logical way to distinguish these, or even run if they shared the
same task and were collected sequentially.
Le jeu. 2 juill. 2020 19 h 48, Chris Markiewicz<EMAIL_ADDRESS>a écrit :

@effigies commented on this pull request.
In src/04-modality-specific-files/01-magnetic-resonance-imaging-data.md
https://github.com/bids-standard/bids-specification/pull/508#discussion_r449312671
:

+that are systematically altered. Grouped scan collections are intended to
+a) increase contrast by combining multiple similar images (e.g., a multi-echo
+GRE), or b) to estimate physical parameters on an absolute scale, within a
+qMRI analysis framework (e.g., a T1-map using a MP2RAGE-protocol). The
+quantitative maps that are output from these calculations (e.g., T1map,
+T2map etc) are described in the qMRI map suffixes
+section below.  A change to the specification is REQUIRED to expand or to
+modify the following table.

+| Name                                       | Suffix  | Type     | Description                                                                                |
+|--------------------------------------------|---------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Variable flip angle                        | VFA     | Grouping | The VFA method involves at least two spoiled gradient echo (SPGR) of steady-state free precession (SSFP) images acquired at different flip angles. Depending on the provided metadata fields and the sequence type, data may be eligible for DESPOT1, DESPOT2 and their variants (Deoni et al. 2005). Please visit the qMRI appendix for details. Associated output suffixes: T1map, T2map, R1map, R2map |
+| Inversion recovery (for T1 mapping)        | IRT1    | Grouping | The IRT1 method involves multiple inversion recovery spin-echo images acquired at different inversion times (Barral et al. 2010). Associated output suffixes: T1map, R1map                                                                                |
+| Magnetization prepared two gradient echoes | MP2RAGE | Grouping | The MP2RAGE method is a special protocol that collects several images at different flip angles and inversion times to create a parametric T1map by combining the magnitude and phase images (Marques et al. 2010). Associated output suffixes: T1map, R1map, UNIT1                                                                                |
+| Multi-echo spin echo                       | MESE    | Grouping | The MESE method involves multiple spin echo images acquired at different echo times and is primarily used for T2 mapping. Associated output suffixes: T2map, R2map, MWFmap                                                                                |
+| Multi-echo gradient echo                   | MEGRE   | Grouping | Anatomical gradient echo images acquired at different echo times. Associated output suffixes: T2starmap, R2starmap                                                                                |
I thought the context was that, if all entities but echo- match, then
they are considered the same acquisition. I tried to give options for
indicating two separate acquisitions.
If that's not the case, then I don't know.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bids-standard/bids-specification/pull/508#discussion_r449312671,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSSJZ65JSHN2PIDIN4RBRDRZUMDJANCNFSM4OEPIRCQ
.

@agahkarakuzu - in this dataset: https://osf.io/8gqvm/ the repetition time and other numbers are being encoded as strings.
@sappelhoff - i think bids does not specify anywhere how timing and other numeric information should be encoded in the json file (or i have missed it since the specification cannot fit my buffers anymore :) ).

i think bids does not specify anywhere how timing and other numeric information should be encoded in the json file

I think so too, yes. What's worse is that we generally don't specify which "data types" (string, array, object, numeric, ...) to use in the JSON files. On the plus side, the validator checks some of these data types --> but apparently not everything ... or "not everything well enought".
Sounds to me like we should open an issue and discuss how to remedy this problem with a small PR.

Converging to a solution for Grouping Suffix
A few weeks ago @tsalo @emdupre and I had a zoom call to lay out the issues with the grouping suffix concept that may interfere with other modalities, which is nicely summarized in this gdoc and mentioned by https://github.com/bids-standard/bids-specification/issues/529 https://github.com/bids-standard/bids-specification/issues/530.
Today we had a BEP001 meeting with @Gilles86 @tiborauer @ChristophePhillips @lazaral and took this issue in serious consideration. I would like to share our solution with you and solicit your feedback!

we talked about the idea of divorcing the idea of grouped scans from specific suffixes, given that some suffixes in BEP001 refer to multiple files from the same acquisition and some refer to multiple files from different acquisitions

In the BEP001 meeting we mostly agreed with this comment by @tsalo. There is no need to specify a suffix as a grouping suffix exclusively, given that some suffixes such as bold may or may not play such a "grouping" role depending on the application. Instead, it would be much more constructive to create an appendix that elaborates on when and with which entities do we use suffixes for logical grouping of parametrically linked images in the context of various experiments from ME-fMRI to qMRI applications. In this regard, as suggested by #529 , introducing the concept of logical grouping of parametrically linked images via suffixes to the common principles can be favorable and there is no need for a singular categorical expression such as grouping suffix.
On the other hand, we agreed that it is imperative to draw the line between parametric and non-parametric image suffixes for obvious reasons. In sum, we can list our solution as follows:

Suffixes are going to be classified based solely on the (qualitative/quantitative) nature of the data:

Suffixes for parametric images
Suffixes for non-parametric images

All the suffixes will be given in the same table, an additional column will be added to denote whether the suffix is associated with a parametric or a non-parametric data.
The entity table will be updated to clarify priority levels per suffix.
Whenever a suffix is used with an entity that iterates over MRI acquisition parameters (i.e., echo, inv,fa and mt) to create a logical bundle of images to be consumed by a pipeline, intent of the application will be mentioned in a new appendix: Logical grouping conditions for parametrically linked images (open for title suggestions).

This Appendix may serve as a gateway linking to the relevant sections of other appendixes or may centralize all the logical grouping cases under different sections.
If this concept is to be added to the common principles, the new common principle should refer to the logical grouping conditions for parametrically linked images appendix.

The anatomy imaging data section will be simplified by removing the text that becomes redundant following the changes above and by moving relevant explanations under the qMRI Appendix section wherever possible.

Group entities into "within-acquisition" and "between-acquisition

We could not get to discuss this in detail, but there are cases where one entity can fall under either group depending on the suffix/application. For example, inv for mp2rage is within acquisition, whereas inv for IRT1 is between-acquisitions. Same would apply to echo under various conditions. Whereas mt and fa are pretty commonly between-acquisition. These are all the entities that we have at the moment to denote changes in acquisition parameters. If 1-->N entity-->entity_type mapping is not a problem, we can denote them on a per-application basis in the entity table.
We believe that this solution has potential to find the common ground as it does not have major practical consequences for any parts interested in the additions brought by BEP001. Please share your opinions with us, so that we can get the ball rolling. You can start by voting here:

To clarify #530, I only used the term "acquisition" because there isn't an established term for grouped collections yet. It would work in conjunction with #529 (and the above), meaning that entities would essentially be split into "sufficient to distinguish grouped scans" and "insufficient to separate groups of scans". Essentially, if the only thing distinguishing two files is one of these within-acquisition entities (e.g., echo or fa), then it should be assumed that they come from the same group. An additional entity like acq or run would be necessary to denote that they're from different groups.

Hi everyone,
After long discussions with many people involved, we finally have a roadmap to refactor this PR and split it into manageable bits. I think we settled on several important issues such as not introducing a grouping suffix concept that is confined to anatomy imaging data, not using symbolic links, about how to introduce new entities and suffixes, and how to organize quantitative maps. Firstly, thank you so much for your help!
These decisions call for a major revision to this PR, both contextually and structurally. To make development easier, we decided on closing this PR, then sending smaller (revised) BEP001 PRs starting with the common principle of logical grouping of parametrically linked acquisitions, which is to be followed by the introduction of new entities and new anatomy imaging suffixes in line with the new conventions brought by the latest BIDS release.
If maintainers and other people involved in this PR agree (+1s would be a good indicator), I will soon close this PR and start working on a new fork on bids-bep001 organization.


Does not work with tmux

@rezzovskij I see this as well on ubuntu 18.  Did you ever figure anything out?


Kiali

Installing Kiali using the Istio Operator is now deprecated, we'll need to install it separately as of Istio 1.8 (currently on 1.7).

DONE


How to use it in vue 3?

"element-tiptap": "2.0.0-alpha.1"

@atif0075, have you found a solution on using this project in vue 3?

@luqmankhan151 https://github.com/Leecason/element-tiptap/issues/415

@atif0075, have you found a solution on using this project in Vue 3?

I had to use it in a project(the deadline was near), so I implemented simple tiptap WYSIWYG Editor and styled it with tailwindcss
End result:
https://github.com/Leecason/element-tiptap/assets/64689549/8c5f39aa-faad-40c7-a338-fc491b964cea

managed to install it using npm install "git@github.com:Leecason/element-tiptap.git#alpha" --save

@atif0075 nice work! Can you provide the repo for your working tiptap implementation please?

This version fixes all the issues: https://github.com/okijhhyu/element-tiptap-vue3 :)

@atif0075 nice work! Can you provide the repo for your working tiptap implementation please?

Sorry, but the work you are referring to is in a private repository and for a private project.

@atif0075 nice work! Can you provide the repo for your working tiptap implementation please?

But, I will attempt to extract the code related to the Editor and provide assistance to the best of my abilities.

@atif0075 nice work! Can you provide the repo for your working tiptap implementation please?

https://github.com/atif0075/tiptap-vue-tailwindcss-wysiwyg

@atif0075 nice work! Can you provide the repo for your working tiptap implementation please?

https://github.com/atif0075/tiptap-vue-tailwindcss-wysiwyg

Awesome!! Thank you so much for sharing and so quickly!!

Awesome!! Thank you so much for sharing and so quickly!!


Error importing any pe

Describe the bug
Importing any pe results in an error due to an "InvalidPathException: Illegal char <:> at index 2: /C:/Users/...".
Rough traceback (I'm on my phone)
AbstractLibrarySupportLoader.java:1036
^:478
^:103
To Reproduce
Steps to reproduce the behavior:

Import any PE with default options

Environment (please complete the following information):

OS: Windows
Java Version: 17
Ghidra Version: 10.4_DEV

Additional context
Temporary workaround is to disable the "Perform Library Ordinal Lookup" option.

Rough traceback (I'm on my phone)

We do not support running on your phone at this time.

Thx, i'll fix it.


bump dependencies

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
[Optional Fixes #Issue]
[Optional Deprecated:]

/retest

/retest

/retest

/retest