Research SD.cpp

In the Beta release we're discussing to add Stable Diffusion support. Let's see what is the state of the library and are there any problems we might encounter.

I invest some time in Metal and for now it seems like there are some known/unknown issues. I've created an issue in their repo read more here. There I've explained what problems I've hit. To summarize it SD3 models generate black images with Metal while they work on CPU. I've tried it on CUDA and it was working properly as it was on the CPU, so it seems like there are some problems with Metal backend.
The only problems they have mentioned are mainly performance, but there are no notes for unsupported models or something like that. So I've decide to ask them to give us a little more information while I'm debugging a little bit to see where exactly are the problems.

For some reason the upsampling calculation here introduce the problems to nan results.
Before that the tensor values seem to be correct and the same as CPU ones.
I tried the approach to set them as an output and get them after compute but then I received a GPU Address Fault Error and the command buffer execution is aborted. Will try to come up with another idea.

I caught the issue. The problem is one of the im2col tensor operations which are applied during the upsampling.
The flow starts from here -> here -> im2col op. The problem happens only in the last upscaling from 512 to 1024.

Log from im2col operation on the GPU with Metal backend
  [0, 0, 0, 0] = 0.000000
  [0, 0, 0, 1] = 0.000000
  [0, 0, 0, 2] = 0.000000
  [0, 0, 0, 2301] = 0.000000
  [0, 0, 0, 2302] = 1.185547
  [0, 0, 0, 2303] = 1.185547
  [0, 0, 1, 0] = 0.000000
  [0, 0, 1, 1] = 0.000000
  [0, 0, 1, 2] = 0.000000
  [0, 0, 1, 2301] = 1.185547
  [0, 0, 1, 2302] = 1.185547
  [0, 0, 1, 2303] = 0.533691
  [0, 0, 2, 0] = 0.000000
  [0, 0, 2, 1] = 0.000000
  [0, 0, 2, 2] = 0.000000
  [0, 0, 2, 2301] = 1.185547
  [0, 0, 2, 2302] = 0.533691
  [0, 0, 2, 2303] = 0.533691
  [0, 0, 1021, 0] = 0.000000
  [0, 0, 1021, 1] = 0.000000
  [0, 0, 1021, 2] = 0.000000
  [0, 0, 1021, 2301] = 0.879883
  [0, 0, 1021, 2302] = 0.879883
  [0, 0, 1021, 2303] = 0.156616
  [0, 0, 1022, 0] = 0.000000
  [0, 0, 1022, 1] = 0.000000
  [0, 0, 1022, 2] = 0.000000
  [0, 0, 1022, 2301] = 0.879883
  [0, 0, 1022, 2302] = 0.156616
  [0, 0, 1022, 2303] = 0.156616
  [0, 0, 1023, 0] = 0.000000
  [0, 0, 1023, 1] = 0.000000
  [0, 0, 1023, 2] = 0.000000
  [0, 0, 1023, 2301] = 0.156616
  [0, 0, 1023, 2302] = 0.156616
  [0, 0, 1023, 2303] = 0.000000
  [0, 1, 0, 0] = 0.000000
  [0, 1, 0, 1] = -0.442627
  [0, 1, 0, 2] = -0.442627
  [0, 1, 0, 2301] = 0.000000
  [0, 1, 0, 2302] = 1.009766
  [0, 1, 0, 2303] = 1.009766
  [0, 1, 1, 0] = -0.442627
  [0, 1, 1, 1] = -0.442627
  [0, 1, 1, 2] = -0.185547
  [0, 1, 1, 2301] = 1.009766
  [0, 1, 1, 2302] = 1.009766
  [0, 1, 1, 2303] = 0.225342
  [0, 1, 2, 0] = -0.442627
  [0, 1, 2, 1] = -0.185547
  [0, 1, 2, 2] = -0.185547
  [0, 1, 2, 2301] = 1.009766
  [0, 1, 2, 2302] = 0.225342
  [0, 1, 2, 2303] = 0.225342
  [0, 1, 1021, 0] = 0.085083
  [0, 1, 1021, 1] = 0.085083
  [0, 1, 1021, 2] = 0.109253
  [0, 1, 1021, 2301] = 0.344482
  [0, 1, 1021, 2302] = 0.344482
  [0, 1, 1021, 2303] = -0.165894
  [0, 1, 1022, 0] = 0.085083
  [0, 1, 1022, 1] = 0.109253
  [0, 1, 1022, 2] = 0.109253
  [0, 1, 1022, 2301] = 0.344482
  [0, 1, 1022, 2302] = -0.165894
  [0, 1, 1022, 2303] = -0.165894
  [0, 1, 1023, 0] = 0.109253
  [0, 1, 1023, 1] = 0.109253
  [0, 1, 1023, 2] = 0.000000
  [0, 1, 1023, 2301] = -0.165894
  [0, 1, 1023, 2302] = -0.165894
  [0, 1, 1023, 2303] = 0.000000
  [0, 2, 0, 0] = 0.000000
  [0, 2, 0, 1] = -0.442627
  [0, 2, 0, 2] = -0.442627
  [0, 2, 0, 2301] = 0.000000
  [0, 2, 0, 2302] = 1.009766
  [0, 2, 0, 2303] = 1.009766
  [0, 2, 1, 0] = -0.442627
  [0, 2, 1, 1] = -0.442627
  [0, 2, 1, 2] = -0.185547
  [0, 2, 1, 2301] = 1.009766
  [0, 2, 1, 2302] = 1.009766
  [0, 2, 1, 2303] = 0.225342
  [0, 2, 2, 0] = -0.442627
  [0, 2, 2, 1] = -0.185547
  [0, 2, 2, 2] = -0.185547
  [0, 2, 2, 2301] = 1.009766
  [0, 2, 2, 2302] = 0.225342
  [0, 2, 2, 2303] = 0.225342
  [0, 2, 1021, 0] = 0.085083
  [0, 2, 1021, 1] = 0.085083
  [0, 2, 1021, 2] = 0.109253
  [0, 2, 1021, 2301] = 0.344482
  [0, 2, 1021, 2302] = 0.344482
  [0, 2, 1021, 2303] = -0.165894
  [0, 2, 1022, 0] = 0.085083
  [0, 2, 1022, 1] = 0.109253
  [0, 2, 1022, 2] = 0.109253
  [0, 2, 1022, 2301] = 0.344482
  [0, 2, 1022, 2302] = -0.165894
  [0, 2, 1022, 2303] = -0.165894
  [0, 2, 1023, 0] = 0.109253
  [0, 2, 1023, 1] = 0.109253
  [0, 2, 1023, 2] = 0.000000
  [0, 2, 1023, 2301] = -0.165894
  [0, 2, 1023, 2302] = -0.165894
  [0, 2, 1023, 2303] = 0.000000
  [0, 1021, 0, 0] = 0.000000
  [0, 1021, 0, 1] = 0.000000
  [0, 1021, 0, 2] = 0.000000
  [0, 1021, 0, 2301] = 0.000000
  [0, 1021, 0, 2302] = 0.000000
  [0, 1021, 0, 2303] = 0.000000
  [0, 1021, 1, 0] = 0.000000
  [0, 1021, 1, 1] = 0.000000
  [0, 1021, 1, 2] = 0.000000
  [0, 1021, 1, 2301] = 0.000000
  [0, 1021, 1, 2302] = 0.000000
  [0, 1021, 1, 2303] = 0.000000
  [0, 1021, 2, 0] = 0.000000
  [0, 1021, 2, 1] = 0.000000
  [0, 1021, 2, 2] = 0.000000
  [0, 1021, 2, 2301] = 0.000000
  [0, 1021, 2, 2302] = 0.000000
  [0, 1021, 2, 2303] = 0.000000
  [0, 1021, 1021, 0] = 0.000000
  [0, 1021, 1021, 1] = 0.000000
  [0, 1021, 1021, 2] = 0.000000
  [0, 1021, 1021, 2301] = 0.000000
  [0, 1021, 1021, 2302] = 0.000000
  [0, 1021, 1021, 2303] = 0.000000
  [0, 1021, 1022, 0] = 0.000000
  [0, 1021, 1022, 1] = 0.000000
  [0, 1021, 1022, 2] = 0.000000
  [0, 1021, 1022, 2301] = 0.000000
  [0, 1021, 1022, 2302] = 0.000000
  [0, 1021, 1022, 2303] = 0.000000
  [0, 1021, 1023, 0] = 0.000000
  [0, 1021, 1023, 1] = 0.000000
  [0, 1021, 1023, 2] = 0.000000
  [0, 1021, 1023, 2301] = 0.000000
  [0, 1021, 1023, 2302] = 0.000000
  [0, 1021, 1023, 2303] = 0.000000
  [0, 1022, 0, 0] = 0.000000
  [0, 1022, 0, 1] = 0.000000
  [0, 1022, 0, 2] = 0.000000
  [0, 1022, 0, 2301] = 0.000000
  [0, 1022, 0, 2302] = 0.000000
  [0, 1022, 0, 2303] = 0.000000
  [0, 1022, 1, 0] = 0.000000
  [0, 1022, 1, 1] = 0.000000
  [0, 1022, 1, 2] = 0.000000
  [0, 1022, 1, 2301] = 0.000000
  [0, 1022, 1, 2302] = 0.000000
  [0, 1022, 1, 2303] = 0.000000
  [0, 1022, 2, 0] = 0.000000
  [0, 1022, 2, 1] = 0.000000
  [0, 1022, 2, 2] = 0.000000
  [0, 1022, 2, 2301] = 0.000000
  [0, 1022, 2, 2302] = 0.000000
  [0, 1022, 2, 2303] = 0.000000
  [0, 1022, 1021, 0] = 0.000000
  [0, 1022, 1021, 1] = 0.000000
  [0, 1022, 1021, 2] = 0.000000
  [0, 1022, 1021, 2301] = 0.000000
  [0, 1022, 1021, 2302] = 0.000000
  [0, 1022, 1021, 2303] = 0.000000
  [0, 1022, 1022, 0] = 0.000000
  [0, 1022, 1022, 1] = 0.000000
  [0, 1022, 1022, 2] = 0.000000
  [0, 1022, 1022, 2301] = 0.000000
  [0, 1022, 1022, 2302] = 0.000000
  [0, 1022, 1022, 2303] = 0.000000
  [0, 1022, 1023, 0] = 0.000000
  [0, 1022, 1023, 1] = 0.000000
  [0, 1022, 1023, 2] = 0.000000
  [0, 1022, 1023, 2301] = 0.000000
  [0, 1022, 1023, 2302] = 0.000000
  [0, 1022, 1023, 2303] = 0.000000
  [0, 1023, 0, 0] = 0.000000
  [0, 1023, 0, 1] = 0.000000
  [0, 1023, 0, 2] = 0.000000
  [0, 1023, 0, 2301] = 0.000000
  [0, 1023, 0, 2302] = 0.000000
  [0, 1023, 0, 2303] = 0.000000
  [0, 1023, 1, 0] = 0.000000
  [0, 1023, 1, 1] = 0.000000
  [0, 1023, 1, 2] = 0.000000
  [0, 1023, 1, 2301] = 0.000000
  [0, 1023, 1, 2302] = 0.000000
  [0, 1023, 1, 2303] = 0.000000
  [0, 1023, 2, 0] = 0.000000
  [0, 1023, 2, 1] = 0.000000
  [0, 1023, 2, 2] = 0.000000
  [0, 1023, 2, 2301] = 0.000000
  [0, 1023, 2, 2302] = 0.000000
  [0, 1023, 2, 2303] = 0.000000
  [0, 1023, 1021, 0] = 0.000000
  [0, 1023, 1021, 1] = 0.000000
  [0, 1023, 1021, 2] = 0.000000
  [0, 1023, 1021, 2301] = 0.000000
  [0, 1023, 1021, 2302] = 0.000000
  [0, 1023, 1021, 2303] = 0.000000
  [0, 1023, 1022, 0] = 0.000000
  [0, 1023, 1022, 1] = 0.000000
  [0, 1023, 1022, 2] = 0.000000
  [0, 1023, 1022, 2301] = 0.000000
  [0, 1023, 1022, 2302] = 0.000000
  [0, 1023, 1022, 2303] = 0.000000
  [0, 1023, 1023, 0] = 0.000000
  [0, 1023, 1023, 1] = 0.000000
  [0, 1023, 1023, 2] = 0.000000
  [0, 1023, 1023, 2301] = 0.000000
  [0, 1023, 1023, 2302] = 0.000000
  [0, 1023, 1023, 2303] = 0.000000

Log from im2col operation on the CPU
  [0, 0, 0, 0] = 0.000000
  [0, 0, 0, 1] = 0.000000
  [0, 0, 0, 2] = 0.000000
  [0, 0, 0, 2301] = 0.000000
  [0, 0, 0, 2302] = 1.178711
  [0, 0, 0, 2303] = 1.178711
  [0, 0, 1, 0] = 0.000000
  [0, 0, 1, 1] = 0.000000
  [0, 0, 1, 2] = 0.000000
  [0, 0, 1, 2301] = 1.178711
  [0, 0, 1, 2302] = 1.178711
  [0, 0, 1, 2303] = 0.530273
  [0, 0, 2, 0] = 0.000000
  [0, 0, 2, 1] = 0.000000
  [0, 0, 2, 2] = 0.000000
  [0, 0, 2, 2301] = 1.178711
  [0, 0, 2, 2302] = 0.530273
  [0, 0, 2, 2303] = 0.530273
  [0, 0, 1021, 0] = 0.000000
  [0, 0, 1021, 1] = 0.000000
  [0, 0, 1021, 2] = 0.000000
  [0, 0, 1021, 2301] = 0.883789
  [0, 0, 1021, 2302] = 0.883789
  [0, 0, 1021, 2303] = 0.156982
  [0, 0, 1022, 0] = 0.000000
  [0, 0, 1022, 1] = 0.000000
  [0, 0, 1022, 2] = 0.000000
  [0, 0, 1022, 2301] = 0.883789
  [0, 0, 1022, 2302] = 0.156982
  [0, 0, 1022, 2303] = 0.156982
  [0, 0, 1023, 0] = 0.000000
  [0, 0, 1023, 1] = 0.000000
  [0, 0, 1023, 2] = 0.000000
  [0, 0, 1023, 2301] = 0.156982
  [0, 0, 1023, 2302] = 0.156982
  [0, 0, 1023, 2303] = 0.000000
  [0, 1, 0, 0] = 0.000000
  [0, 1, 0, 1] = -0.449463
  [0, 1, 0, 2] = -0.449463
  [0, 1, 0, 2301] = 0.000000
  [0, 1, 0, 2302] = 0.998047
  [0, 1, 0, 2303] = 0.998047
  [0, 1, 1, 0] = -0.449463
  [0, 1, 1, 1] = -0.449463
  [0, 1, 1, 2] = -0.182007
  [0, 1, 1, 2301] = 0.998047
  [0, 1, 1, 2302] = 0.998047
  [0, 1, 1, 2303] = 0.219971
  [0, 1, 2, 0] = -0.449463
  [0, 1, 2, 1] = -0.182007
  [0, 1, 2, 2] = -0.182007
  [0, 1, 2, 2301] = 0.998047
  [0, 1, 2, 2302] = 0.219971
  [0, 1, 2, 2303] = 0.219971
  [0, 1, 1021, 0] = 0.083984
  [0, 1, 1021, 1] = 0.083984
  [0, 1, 1021, 2] = 0.102417
  [0, 1, 1021, 2301] = 0.347168
  [0, 1, 1021, 2302] = 0.347168
  [0, 1, 1021, 2303] = -0.165894
  [0, 1, 1022, 0] = 0.083984
  [0, 1, 1022, 1] = 0.102417
  [0, 1, 1022, 2] = 0.102417
  [0, 1, 1022, 2301] = 0.347168
  [0, 1, 1022, 2302] = -0.165894
  [0, 1, 1022, 2303] = -0.165894
  [0, 1, 1023, 0] = 0.102417
  [0, 1, 1023, 1] = 0.102417
  [0, 1, 1023, 2] = 0.000000
  [0, 1, 1023, 2301] = -0.165894
  [0, 1, 1023, 2302] = -0.165894
  [0, 1, 1023, 2303] = 0.000000
  [0, 2, 0, 0] = 0.000000
  [0, 2, 0, 1] = -0.449463
  [0, 2, 0, 2] = -0.449463
  [0, 2, 0, 2301] = 0.000000
  [0, 2, 0, 2302] = 0.998047
  [0, 2, 0, 2303] = 0.998047
  [0, 2, 1, 0] = -0.449463
  [0, 2, 1, 1] = -0.449463
  [0, 2, 1, 2] = -0.182007
  [0, 2, 1, 2301] = 0.998047
  [0, 2, 1, 2302] = 0.998047
  [0, 2, 1, 2303] = 0.219971
  [0, 2, 2, 0] = -0.449463
  [0, 2, 2, 1] = -0.182007
  [0, 2, 2, 2] = -0.182007
  [0, 2, 2, 2301] = 0.998047
  [0, 2, 2, 2302] = 0.219971
  [0, 2, 2, 2303] = 0.219971
  [0, 2, 1021, 0] = 0.083984
  [0, 2, 1021, 1] = 0.083984
  [0, 2, 1021, 2] = 0.102417
  [0, 2, 1021, 2301] = 0.347168
  [0, 2, 1021, 2302] = 0.347168
  [0, 2, 1021, 2303] = -0.165894
  [0, 2, 1022, 0] = 0.083984
  [0, 2, 1022, 1] = 0.102417
  [0, 2, 1022, 2] = 0.102417
  [0, 2, 1022, 2301] = 0.347168
  [0, 2, 1022, 2302] = -0.165894
  [0, 2, 1022, 2303] = -0.165894
  [0, 2, 1023, 0] = 0.102417
  [0, 2, 1023, 1] = 0.102417
  [0, 2, 1023, 2] = 0.000000
  [0, 2, 1023, 2301] = -0.165894
  [0, 2, 1023, 2302] = -0.165894
  [0, 2, 1023, 2303] = 0.000000
  [0, 1021, 0, 0] = 0.000000
  [0, 1021, 0, 1] = 0.126343
  [0, 1021, 0, 2] = 0.126343
  [0, 1021, 0, 2301] = 0.000000
  [0, 1021, 0, 2302] = 0.389893
  [0, 1021, 0, 2303] = 0.389893
  [0, 1021, 1, 0] = 0.126343
  [0, 1021, 1, 1] = 0.126343
  [0, 1021, 1, 2] = 0.573242
  [0, 1021, 1, 2301] = 0.389893
  [0, 1021, 1, 2302] = 0.389893
  [0, 1021, 1, 2303] = 0.156982
  [0, 1021, 2, 0] = 0.126343
  [0, 1021, 2, 1] = 0.573242
  [0, 1021, 2, 2] = 0.573242
  [0, 1021, 2, 2301] = 0.389893
  [0, 1021, 2, 2302] = 0.156982
  [0, 1021, 2, 2303] = 0.156982
  [0, 1021, 1021, 0] = 0.298828
  [0, 1021, 1021, 1] = 0.298828
  [0, 1021, 1021, 2] = 0.416748
  [0, 1021, 1021, 2301] = 0.065308
  [0, 1021, 1021, 2302] = 0.065308
  [0, 1021, 1021, 2303] = 0.035919
  [0, 1021, 1022, 0] = 0.298828
  [0, 1021, 1022, 1] = 0.416748
  [0, 1021, 1022, 2] = 0.416748
  [0, 1021, 1022, 2301] = 0.065308
  [0, 1021, 1022, 2302] = 0.035919
  [0, 1021, 1022, 2303] = 0.035919
  [0, 1021, 1023, 0] = 0.416748
  [0, 1021, 1023, 1] = 0.416748
  [0, 1021, 1023, 2] = 0.000000
  [0, 1021, 1023, 2301] = 0.035919
  [0, 1021, 1023, 2302] = 0.035919
  [0, 1021, 1023, 2303] = 0.000000
  [0, 1022, 0, 0] = 0.000000
  [0, 1022, 0, 1] = 0.126343
  [0, 1022, 0, 2] = 0.126343
  [0, 1022, 0, 2301] = 0.000000
  [0, 1022, 0, 2302] = 0.389893
  [0, 1022, 0, 2303] = 0.389893
  [0, 1022, 1, 0] = 0.126343
  [0, 1022, 1, 1] = 0.126343
  [0, 1022, 1, 2] = 0.573242
  [0, 1022, 1, 2301] = 0.389893
  [0, 1022, 1, 2302] = 0.389893
  [0, 1022, 1, 2303] = 0.156982
  [0, 1022, 2, 0] = 0.126343
  [0, 1022, 2, 1] = 0.573242
  [0, 1022, 2, 2] = 0.573242
  [0, 1022, 2, 2301] = 0.389893
  [0, 1022, 2, 2302] = 0.156982
  [0, 1022, 2, 2303] = 0.156982
  [0, 1022, 1021, 0] = 0.298828
  [0, 1022, 1021, 1] = 0.298828
  [0, 1022, 1021, 2] = 0.416748
  [0, 1022, 1021, 2301] = 0.065308
  [0, 1022, 1021, 2302] = 0.065308
  [0, 1022, 1021, 2303] = 0.035919
  [0, 1022, 1022, 0] = 0.298828
  [0, 1022, 1022, 1] = 0.416748
  [0, 1022, 1022, 2] = 0.416748
  [0, 1022, 1022, 2301] = 0.065308
  [0, 1022, 1022, 2302] = 0.035919
  [0, 1022, 1022, 2303] = 0.035919
  [0, 1022, 1023, 0] = 0.416748
  [0, 1022, 1023, 1] = 0.416748
  [0, 1022, 1023, 2] = 0.000000
  [0, 1022, 1023, 2301] = 0.035919
  [0, 1022, 1023, 2302] = 0.035919
  [0, 1022, 1023, 2303] = 0.000000
  [0, 1023, 0, 0] = 0.000000
  [0, 1023, 0, 1] = -0.039917
  [0, 1023, 0, 2] = -0.039917
  [0, 1023, 0, 2301] = 0.000000
  [0, 1023, 0, 2302] = 0.000000
  [0, 1023, 0, 2303] = 0.000000
  [0, 1023, 1, 0] = -0.039917
  [0, 1023, 1, 1] = -0.039917
  [0, 1023, 1, 2] = -0.231689
  [0, 1023, 1, 2301] = 0.000000
  [0, 1023, 1, 2302] = 0.000000
  [0, 1023, 1, 2303] = 0.000000
  [0, 1023, 2, 0] = -0.039917
  [0, 1023, 2, 1] = -0.231689
  [0, 1023, 2, 2] = -0.231689
  [0, 1023, 2, 2301] = 0.000000
  [0, 1023, 2, 2302] = 0.000000
  [0, 1023, 2, 2303] = 0.000000
  [0, 1023, 1021, 0] = -0.022537
  [0, 1023, 1021, 1] = -0.022537
  [0, 1023, 1021, 2] = -0.082764
  [0, 1023, 1021, 2301] = 0.000000
  [0, 1023, 1021, 2302] = 0.000000
  [0, 1023, 1021, 2303] = 0.000000
  [0, 1023, 1022, 0] = -0.022537
  [0, 1023, 1022, 1] = -0.082764
  [0, 1023, 1022, 2] = -0.082764
  [0, 1023, 1022, 2301] = 0.000000
  [0, 1023, 1022, 2302] = 0.000000
  [0, 1023, 1022, 2303] = 0.000000
  [0, 1023, 1023, 0] = -0.082764
  [0, 1023, 1023, 1] = -0.082764
  [0, 1023, 1023, 2] = 0.000000
  [0, 1023, 1023, 2301] = 0.000000
  [0, 1023, 1023, 2302] = 0.000000
  [0, 1023, 1023, 2303] = 0.000000

Changed the test for im2col operation. Here
I set the following values which are from the stable diffusion  upscaling:
...
            std::array<int64_t, 4> ne_input = {1024, 1024, 256, 1}, // [input_width, input_height, input_channels, 1]
            std::array<int64_t, 4> ne_kernel = {3, 3, 256, 256}, // [kernel_width, kernel_height, input_channels, 1]
...

And the tests started to fail. So, it seems like the implementation in ggml is having a bug.

Finally, i was able to fix im2col operation after which there was another bug in matrix multiplication, but it was something little (an integer overflow), so it was easy to fix and as a result we can run stable diffusion on Metal.
Final result.

I tested it on Cuda, it was working properly - will double check because I'm not sure if I've tested with the same model.
On the CPU it was working, but slow. For the cat from above results are:

Metal - 342 sec in total
CPU - 1217 sec in total

As the research is finished we'll proceed with plugin implementation which will be in different repository here.


Document accessibility patch for Chrome

Notes:
Here is an example of an incident report
It has a few helpful sections:

Summary
Impact
Detailed Timeline
Trigger
Detection
Resolution/Recovery
Five whys and Root Cause(s)
Lessons Learned
Action Items

I think the most helpful aspect is impact to users, what the fix was, and how could we prevent it from happening again in the future.
Update:
By default we have been setting this to display: inherit
For the Link component, display: inherit inherit does not work because display is a prop option (example, external links have a slot, followed by an icon). If the component is set to display="block", the slot also gets set to display: block, pushing the icon to the next line. A fix for this is to set the CSS slot to display: initial. The a11y still renders the slot with this setting.


[BLIP-7] OrgRegistry Clarification

OrgRegistry Clarification
It is not obvious to a new developer what to do with (or do about) the OrgRegistry in this file: https://github.com/eea-oasis/baseline/blob/master/core/contracts/contracts/registry/OrgRegistry.sol
During the BLIP-6 coding session, four competent and experienced developers (@ognjenkurtic and team) were confused during initial develop/design of the application when considering whether and how Alice and Bob had to be added to an OrgRegistry, whether that process was deprecated (code looked old), or whether one in this simple localhost demo case of the battleship game could simply start with Alice setting up a workgroup and inviting Bob to it.
This requires a) a review of that code; b) MUCH better documentation to ensure that new developers don't stumble here.

Copyright
Copyright and related rights waived via CC0-Universal.
(This template adapted from the EIP template at https://github.com/ethereum/EIPs/

Notes from 11/15/2021 Core Devs Session:

Core Devs to comment with thoughts on this issue
Once team assesses, someone can use the comment to improve docs

@kthomas @skarred14

OrgRegistry.sol is used as a registry of registries. It is meant to register unique identifiable identifiers for an organization (name or ENS domain, eth address, signing key, etc.) for discoverability. In addition, as an extension of ERC1820, the OrgRegistry also serves as a way to register the standard interfaces that ought to be used for a given set of organizations. This is done so, by registering a group of interfaces and the orgs leveraging such interfaces as a workgroup. Test cases for these are located in: https://github.com/eea-oasis/baseline/blob/master/core/contracts/test/OrgRegistry.test.js.
Creation of a workgroup is done at the app/service level and is a ts interface method in https://github.com/eea-oasis/baseline/blob/master/core/api/src/index.ts. Corresponding implementation w.r.t provide @kthomas is here: https://github.com/eea-oasis/baseline/blob/master/core/api/src/providers/provide/service.ts
Would be good to specify the list of additions or approach necessary for a simpler usage of the interface implementation to create a workgroup and any associated documentation related updates. @humbitious @ognjenkurtic

@skarred14 Thanks. For me to understand completely:
If Alice wants to setup a workgroup and invite Bob, she would:
1 Query the OrgRegistry for Bob's contact details
2. Setup a workgroup in its local BPI with Bob contact details
3. Send an invite to Bob via contact details from the OrgRegistry
Bob would:

Accept the invitation from Alice
Create a workgroup replica in its local BPI with Alice's contact details

IIf this is the right approach, Is the OrgRegistry part of the protocol or it can be any third party baseline-compliant source of contact information? Why is it not defined in the standard document?

Notes from 11/29/21 Core Devs Session:

@Therecanbeonlyone1969: Addressing question, not specified in standard because it is  an implementation detail. No synchronization between the two because implementations are separate, always 1 participant that is offering the service. In current implementations org registry is implemented in shield contract because shield contract manages access control to smart contract, so that not just anyone can write to the contract/s. Nothing in spec requires how to do it, or concept of org registry or shield contract, entirely implementation dependent.

@ognjenkurtic & working team to review where they got stuck regarding org registry, and make comments here on where / what should be updated.

@ognjenkurtic Hi Ognjen, can you see the comment above and add additional comments on what/where your team got stuck, prior to the 12/13 Core Devs session.

12/13/21 Core Devs Session:

BLIP-6 team will comment here with where they got stuck and what would be needed.

This issue arose from our understanding that OrgRegistry is part of the protocol based on the previous example implementations and documentation. We resolved the issue during a Core Devs meeting noted above - in short, OrgRegistry is just an implementation detail which is left for the BPI implementing team to resolve in the manner they see fit, and is not part of the standard specification.  I checked the docs and i think there are no subsequent actions needed. The BLIP can be closed.


Env simplified

Simplified the deployment compared to #99 , but still use environment variables.

@sw-yx Let me know what you think now.

Removed the complexity of forcing env variables
Cleaned Netlify deploy URL as env are optional now
GH_TOKEN used $env/dynamic/private so is still secure and optional

i'm taking "I do not dislike at it’s current state either." as a sign that neither of us feels particularly strongly about this PR so i will close it for now - really just trying to optimize for (subjective) simplicity since people can add this later on if they wish. feel free to argue for it if important to you, ultimately i just changed my mind when seeing how it turned out :/

One benefit I see for env is for people who want to just use this template without any modification and stay up to date with all new features that come in the template without having to worry about merge conflicts.
They can just fork it and deploy to netlify, all their configs are passed via environment variable so anytime this template get’s an update they can simply fetch upstream and everything works.


sap.m.ComboBox change event trigger twice in 1.108.13, 1.111.4, 1.114.0

OpenUI5 version:
1.108.13, 1.111.4, 1.114.0
Browser/version (+device/version):
Chrome
URL (minimal example if possible):
demo - https://gnseo.github.io/Ui5ComboBoxOnChange/
repo - https://github.com/gnseo/Ui5ComboBoxOnChange
Steps to reproduce the problem:
open browser console

Select any item in ComboBox
Check console log

What is the expected result?
The change event should have been triggered only once
What happens instead?
The change event is triggered twice
Any other information? (attach screenshot if possible)
This issue is similar with #3756, but it occurs in all latest version such as v1.108.13, v1.111.4, v1.114.0.

Hello @gnseo ,
I see several issues with the code you provided. You are attaching two models at the same time. You map the value of the combobox:
value="{myModel>myValue}"
where myValue does not exist in the model you provided. Once you choose an item in the list, the control tries to update its value property according to the selected value, but as the value is bound to something non existing this leaves the input empty. If you remove the "value="{myModel>myValue}"" the change event is fired once with the correct input (the selected item text, not with an empty string as in your code), the value is correctly populated in the input field as well.
Kind Regards,
Elena
(Github dispatcher)

Hello, @elenastoyanovaa .
Thank you for your kindly response.
In my real project, I was updating "selectedKey" and "value" properties at the same time using the same value, and once I removed "value" property from source code, the "change" event triggered once as expected.


[koord-runtime-proxy] fix the loss of new updated resources from UpdateContainerResources request

Signed-off-by: Cheimu<EMAIL_ADDRESS>Ⅰ. Describe what this PR does
Requests

UpdateContainer - docker
UpdateContainerResources - containerd

try to update container's resources by resources fields within the request. However current implementation directly drop the resources fields, which will block any update operation. This pr fix this problem.

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/lgtm

/lgtm

/approve


migrate slot to use types from typingref

https://github.com/nrbnlulu/qtgql/blob/main/qtgql/slot.py#L35 slot implementation is
touching type hints by hand, migrate to use TypeHinter
issue #3

Codecov Report

Merging #59 (046b487) into main (1b126c3) will increase coverage by 0.42%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main      #59      +/-   ##
==========================================
+ Coverage   97.42%   97.85%   +0.42%
==========================================
  Files          18       18
  Lines         971     1024      +53
==========================================
+ Hits          946     1002      +56
+ Misses         25       22       -3

Impacted Files
Coverage Δ

qtgql/typingref.py
98.55% <ø> (+0.06%)
:arrow_up:

qtgql/slot.py
100.00% <100.00%> (ø)

qtgql/codegen/introspection.py
94.79% <0.00%> (-0.39%)
:arrow_down:

qtgql/codegen/utils.py
100.00% <0.00%> (ø)

qtgql/itemsystem/core.py
97.68% <0.00%> (ø)

qtgql/codegen/py/compiler.py
100.00% <0.00%> (ø)

qtgql/codegen/py/config.py
96.66% <0.00%> (+0.23%)
:arrow_up:

qtgql/codegen/cli.py
100.00% <0.00%> (+2.56%)
:arrow_up:

qtgql/codegen/py/objecttype.py
98.63% <0.00%> (+2.94%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Hi can you add RELEASE.md?

Release type: major, minor, or patch
Description of the changes, to be used as the changelog entry

Example:
Release type: patch

Add function to update version strings in multiple files.

I will do these things mentioned above immediately

Please add a test for __future__ annotations, seems have nothing to do with this issue #3 ?

fair point.

just add a release file and we I think its ready.


Update ps5000aSigGen.py

This bug has already been fixed independently and the fix is available in the repository


Can't cancel a debug session while it's initializing

This seems broken again, maybe since the change to show the debug widget while initializing. Plus, sometimes it doesn't time out after failing to attach, so I'm stuck forever.
Launch this config with nothing running on that port, so it doesn't have anything to attach to:
{
    "type": "node",
    "request": "attach",
    "name": "Attach",
    "port": 9229
},

Press F5, debug widget appears
Clicking the red stop button or pressing shift+f5 has no effect
I can't start another debug config while in this state
Sometimes, it times out after 10s. But sometimes while trying this, it never timed out and I had to reload the window in order to debug

I still can not reproduce this
@eamodio @roblourens can you please do some debugging on your end: put a breakpoint here and figure out if it is nicely being called once you click on stop. If yes check if the sessions array contains the session and if the terminate is nicely being sent out. What node version are you using?
@weinand can you please try to repro this?

@isidorn I can reproduce the problem reliably.
Starting to debug issue...

The issue is (again) a missing call to this.endInitializingState();
I've debugged the whole flow after clicking the red stop button and everything looks correct.
At the end an didEndAdapter event is fired and we end up in https://github.com/Microsoft/vscode/blob/b31b07741b0947d03c5333c136402253d2ba1e6f/src/vs/workbench/parts/debug/electron-browser/debugService.ts#L510
But at the end of the handler a this.endInitializingState(); is missing.
@isidorn please verify that calling this.endInitializingState(); at the end of the hanlder is the correct thing. It fixed the problem for me.

@weinand yeah calling this.endInitializingState() at the end of that handler makes sense. I will push a fix like that later today.
For debt week I have created this item
https://github.com/Microsoft/vscode/issues/62390

Pushed a workaround that I end the initialising state on adapter exit. This should fix it and can not have any side effects (since if we are not initialising it is a no-op).
The actual fix is assigned for debt week as mentioned in my previous comment.

@eamodio I plan to do some refactoring in this week which might improve this. If you still see those issues in a week it would be great to open a new issue so we can work on fixing those. Thanks a lot

@eamodio yes please open a new issue, thanks a lot!


Fixes for JWT middleware in havenapi

Completes the setup of JWT middleware, adds partial support for kubernetes deployment of havenapi.

😀 📟 😍 😹 🐶


Aborted tests with Python 3.13.0b2

I tried to test nh3-0.2.17 with Python 3.13.0b2 and the test suit is aborted with following output:
python3.13 -m pytest -vv -ra -l -Wdefault -Werror::pytest.PytestUnhandledCoroutineWarning --color=yes -o console_output_style=count -o tmp_path_retention_count=0 -o tmp_path_retention_policy=failed -p no:cov -p no:flake8 -p no:flakes -p no
:pylint -p no:markdown -p no:sugar -p no:xvfb -p no:pytest-describe -p no:plus -p no:tavern -p no:salt-factories
================================================= test session starts =================================================
platform linux -- Python 3.13.0b2, pytest-8.2.2, pluggy-1.5.0 -- /var/tmp/portage/dev-python/nh3-0.2.17/work/nh3-0.2.17-python3_13/install/usr/bin/python3.13
cachedir: .pytest_cache
rootdir: /var/tmp/portage/dev-python/nh3-0.2.17/work/nh3-0.2.17
configfile: pyproject.toml
collecting ... collected 4 items

tests/test_nh3.py::test_clean PASSED                                                                             [1/4]
tests/test_nh3.py::test_clean_with_attribute_filter Fatal Python error: Aborted

Current thread 0x00007f7623806e80 (most recent call first):
  File "/var/tmp/portage/dev-python/nh3-0.2.17/work/nh3-0.2.17/tests/test_nh3.py", line 67 in test_clean_with_attribute_filter
  File "/usr/lib/python3.13/site-packages/_pytest/python.py", line 162 in pytest_pyfunc_call
  File "/usr/lib/python3.13/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/lib/python3.13/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/lib/python3.13/site-packages/_pytest/python.py", line 1632 in runtest
  File "/usr/lib/python3.13/site-packages/_pytest/runner.py", line 173 in pytest_runtest_call
  File "/usr/lib/python3.13/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/lib/python3.13/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/lib/python3.13/site-packages/_pytest/runner.py", line 241 in <lambda>
  File "/usr/lib/python3.13/site-packages/_pytest/runner.py", line 341 in from_call
  File "/usr/lib/python3.13/site-packages/_pytest/runner.py", line 240 in call_and_report
  File "/usr/lib/python3.13/site-packages/_pytest/runner.py", line 135 in runtestprotocol
  File "/usr/lib/python3.13/site-packages/_pytest/runner.py", line 116 in pytest_runtest_protocol
  File "/usr/lib/python3.13/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/lib/python3.13/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/lib/python3.13/site-packages/_pytest/main.py", line 364 in pytest_runtestloop
  File "/usr/lib/python3.13/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/lib/python3.13/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/lib/python3.13/site-packages/_pytest/main.py", line 339 in _main
  File "/usr/lib/python3.13/site-packages/_pytest/main.py", line 285 in wrap_session
  File "/usr/lib/python3.13/site-packages/_pytest/main.py", line 332 in pytest_cmdline_main
  File "/usr/lib/python3.13/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/lib/python3.13/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/lib/python3.13/site-packages/_pytest/config/__init__.py", line 178 in main
  File "/usr/lib/python3.13/site-packages/_pytest/config/__init__.py", line 206 in console_main
  File "/usr/lib/python3.13/site-packages/pytest/__main__.py", line 7 in <module>
  File "<frozen runpy>", line 88 in _run_code
  File "<frozen runpy>", line 198 in _run_module_as_main
/var/tmp/portage/dev-python/nh3-0.2.17/temp/environment: line 2730:   291 Aborted                 "${@}"

The actual error is:
python: ./Include/internal/pycore_object.h:284: _PyObject_Init: Assertion `_PyType_HasFeature(typeobj, Py_TPFLAGS_HEAPTYPE) || _Py_IsImmortal(typeobj)' failed.

and typeobj is:
$1 = (PyTypeObject *) 0x55e97638b580 <_PyExc_TypeError>

So this is probably https://github.com/PyO3/pyo3/issues/4311.


How to use align?

can you please provide an example for sankey left align.

Please see the README.
https://github.com/d3/d3-sankey/blob/master/README.md#alignments


Investigate supporting standalone Solr

Currently the operator only supports Solr Cloud, however there are many still using standalone Solr. Investigate the way that standalone Solr could be implemented as a separate CRD in the operator, and if the operator would give any benefit for standalone instances.

I can look into this. It would be very beneficial for local development environments on laptops I believe. Less pods will require less resources (battery, CPU mainly). People probably using for production deployments as well.

I don't see a clear benefit of having a master/slave variant if you are actually targeting k8s. We should rather make it super easy to spin up a cluster with only 1 pod and 1 zk pod.
This way, all the other operations such as upload configset, create collection etc will remain the same as for a huge SolrCloud cluster. If you agree, please close this as won't do.

Agree with @janhoy.

Agree with @janhoy.


Use Case: Analyzing Effects of the Drought on Inundation Extent and Vegetation Cover Dynamics

Title:
Analyzing Effects of the 2019 Drought on Inundation Extent and Vegetation Cover Dynamics in the Okavango Delta
Aim:
To assess the effect of 2019 drought on inundation extent and vegetation cover types in the Okavango Delta: with main emphasis on floodplain vegetation, riparian woodland, and dryland vegetation.
The results of the use case will contribute to development of large-scale low inundation extent map products and provide recent baseline maps on vegetation cover types of dynamics in the Okavango Delta system at a landscape approach, which are essential elements for integrated wetland and climate risks management by relevant decision makers.
Study area:

Input data:

Okavango delta Vector file
Sentinel Data: May - September 2019
Water Observation from Space: May - September 2019

Expected outcomes and outputs:

The 2019 low flood extent Map .  This will provide a basis for high spatial resolution Earth Observation Derived information on the effects of drought stress in the Okavango Delta wetland water extent, which is essential for improved environmental and climate risks management by decision makers

**Additional information: **
McCarthy, J. Gumbricht, T. & McCarthy, T.S. (2005). Ecoregion classification in the Okavango Delta, Botswana from multitemporal remote sensing.  International Journal of Remote Sensing 26 (19): 4339–4357.

If fine details are desired, suggest use Sentinel-2 only. See e.g. GeoMAD compared to WOfS: http://maps.digitalearth.africa/#share=s-wAYSHvzW1S6w9JXNfhOSY3QhR2G

Fine details are required  as per the article by McCarthy et al 2005. We are using McCarthy et al as a reference for our landcover types.  Floodplain vegetation could be one class for simplicity. But since we are interested in the effect of drought on water and vegetation cover, it would be interesting to separate the primary from secondary floodplains.
i.e. Water, aquatic vegetation, primary floodplains, secondary floodplains, grassland, riparian vegetation, dry grassland/saltpan, dry woodland

The Okavango Delta inundation extent peaks in May when water reaches its outlets (We are now experiencing peak inundation in Thamalakane River and Kunyere/Lake Ngami  for the past 2 weeks.
The inundation will remain high until September at the end of our Winter/Dry season ( May-August)

We could still explore both methods NDWI- WOfS for  inundation extent and image classification for landcover types after setting a baseline year so that we can apply  image differencing/change detection.

thanks @kmfundisi. So the desired outcomes:

inundation extent for May to September 2019
land cover classification for water, aquatic vegetation, primary floodplains, secondary floodplains, grassland, riparian vegetation, dry grassland/saltpan, dry woodland. This could be May to September or for a more extended period from May?

Also, are there reference land cover data available? to train or constrain land cover classification?

@fangfy  it could be extended from April-October/November, our rainy season start around October/November until March
The reason for choosing a dry season is to avoid cloud noise, and capture the wetland properly.

The standardized landcover data for  trans-boundary river basins in Southern Africa is under development in our GMES & Africa  Project using Landsat data.
At the moment there is no standardized landcover for Okavango Delta

We can set the timeline together

We can set the timeline together

Let's aim to get a project plan together including timeline in the next 1-2 weeks if that works.

hey @kmfundisi, what about:
This week, I'll start a branch and a notebook and pick an area to do some quick water mapping using S2 and WOfS.
I'll share the notebook so you can have a look.
We meet late next week or early the week after to talk about the water mapping and discuss requirements for the land cover maps.


feature/Typescript SDK migration

This PR upgrades the version of the javascript-sdk included with the react SDK to v1.13.0, which is the upgrade to typescript. This should ensure better types and an improved DX.

#21  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @calthejuggler and the rest of your teammates on  Graphite


Hooks minimal example on codepen appreciated

Hey,
I would like to get more information on how I could migrate to your new proposed hooks and yes, I have already read your documentation about that. I mean in most common cases we only have people using mapStateToProps/mapDispatchToProps and a little running example on codepen or jsfiddle would be very very nice.
Thanks in advance.

We'd happily accept a PR to add a CodeSandbox example to the Hooks docs page.
Beyond that, please see these tutorials:
https://itnext.io/introducing-redux-hooks-1bf9c568ecc2
https://www.reddit.com/r/reactjs/comments/bhb3bc/react_redux_with_hooks_using_new_reactredux_71/
https://blog.jakoblind.no/react-redux-hooks/

#1267 is looking to add more examples as well. I think a PR is a better form for this kind of request.


Virtualbox-extension-pack - remove outdated versions - add license

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Remove lion and mountain lion support.
#32560
Add license to postflight
Add license caveat.

@commitay Thank you for all your contributions!

Happy to help @victorpopkov , thank you for the work you put into HBC.


Permissions issue on files/folders added with ADD

How I currently build
I use the ADD command in Dockerfiles to add my websites files/folders to my docker containers. My files on the host have $USER:$USER ownership with 750 permissions
After the ADD command, I then run:
RUN chown www-data:www-data -R /var/www
RUN chmod 750 -R /var/www

Which was working in the past.
Issue
I now have to change my files permissions to 755 on the host before the docker container will work (website doesn't give permission/forbidden errors). Using 750 doesn't work which surprised me slightly more, as I had hoped docker kept the permission levels and the problem was with setting ownership. When entering the container, the files will show the permissions and ownership that were defined by the Dockerfile steps, no matter what the permissions were of the files on the host before the build.
Docker Version
I am now running Docker version 1.4.1, build 5bc2ff8 on Ubuntu 14.04

I just tried reproducing with a minimal Dockerfile as an example, but was unable to, so closing the issue.


Can't see example gatsby-plugin-categories on document

Pls read this issues.
https://github.com/gatsbyjs/gatsby/issues/16058
some one can change URL example for correctly  ?

Hi @NantipatSoftEn
Thanks for the report. Good catch! I have fixed the change on the README and it should propagate to gatsby's docs soon.
In the mean time, you can view the link here https://github.com/rmcfadzean/gatsby-pantry/tree/master/examples/starter-blog#readme

Thanks


Bump package.json version to 1.0

@whatthewhat Let's bump the major version since the API has changed?


fix(ecdsa) translate between DER encoded and JOSE-style signatures. fixes #3

OpenSSL (and thus node) encode the r/s parameters of an ECDSA signature as an ASN.1 ESCDSA-Sig-Value object
JOSE/JWA/RFC7518 require the parameters simply be concatenated

This seems to have broken my signatures. I now get UnauthorizedError: "ES512" signatures must be "132" bytes, saw "139" where before the JWT worked fine. Not sure what to do about it...

I can probably use an older version of an upstream project to avoid this. I'm really uncertain exactly what the issue is here. There might be something wrong with how my app's signatures have been generated.
They've been generated by a Ruby gem - https://rubygems.org/gems/json-jwt
I wonder if perhaps that has been creating JWTs which are strictly speaking incorrect but do work?

Upstream doesn't specify an exact version so not able to avoid the new version unfortunately.
I've tested locally that running the jws package with jwa 1.0.0 does not exhibit the issue, but with jwa 1.0.1 it definitely does.
If it helps at all, the signature part of my JWT is:
MIGIAkIBqmYSTEVwuPHEOVyTFcieAcOf2hEEF9HQwGcLZUCZk9AzcWNW1dPgpObYzMu4o96mu5Gm1CugPecZFA53l0PiAbQCQgHzAuSCtEf6tWNRIm9CuHtvrY9RiPDaigyMpFcGkH3PSai9tG97g68qV9rFnNBS7nIE9pmzmZ7gvWQwT2fwqMq-kQ

This is 139 bytes long when decoded from base64.
It's generated with a ES512 asymmetric key.

Hi James,
I'll have a look at the rubygem, but I suspect it is also calling direct to
openssl and thus its signatures are also incorrect for interoperability.
For the moment, you could choose to use npm shrinkwrap
On 2 Jul 2015 11:40 am, "James Billingham"<EMAIL_ADDRESS>wrote:

Upstream doesn't specify an exact version so not able to avoid the new
version unfortunately.
I've tested locally that running the jws package with jwa 1.0.0 does not
exhibit the issue, but with jwa 1.0.1 it definitely does.
If it helps at all, the signature part of my JWT is:
MIGIAkIBqmYSTEVwuPHEOVyTFcieAcOf2hEEF9HQwGcLZUCZk9AzcWNW1dPgpObYzMu4o96mu5Gm1CugPecZFA53l0PiAbQCQgHzAuSCtEf6tWNRIm9CuHtvrY9RiPDaigyMpFcGkH3PSai9tG97g68qV9rFnNBS7nIE9pmzmZ7gvWQwT2fwqMq-kQ
This is 139 bytes long when decoded from base64.
It's generated with a ES512 asymmetric key.
—
Reply to this email directly or view it on GitHub
https://github.com/brianloveswords/node-jwa/pull/5#issuecomment-118072923
.

Hi James
See https://github.com/nov/json-jwt/issues/21 and
https://github.com/nov/json-jwt/commit/276815f1d58ba0013fc776e31ca56c6b0c4965c5
and
https://github.com/nov/json-jwt/commit/9366c24d67b110c12d15d2a6ad1bcc4dd6002bb6
Update your gem to 1.0.1 and you should be good to go.
On 2 Jul 2015 11:43 am, "Owen Smith"<EMAIL_ADDRESS>wrote:

Hi James,
I'll have a look at the rubygem, but I suspect it is also calling direct
to openssl and thus its signatures are also incorrect for interoperability.
For the moment, you could choose to use npm shrinkwrap
On 2 Jul 2015 11:40 am, "James Billingham"<EMAIL_ADDRESS>wrote:

Upstream doesn't specify an exact version so not able to avoid the new
version unfortunately.
I've tested locally that running the jws package with jwa 1.0.0 does not
exhibit the issue, but with jwa 1.0.1 it definitely does.
If it helps at all, the signature part of my JWT is:
MIGIAkIBqmYSTEVwuPHEOVyTFcieAcOf2hEEF9HQwGcLZUCZk9AzcWNW1dPgpObYzMu4o96mu5Gm1CugPecZFA53l0PiAbQCQgHzAuSCtEf6tWNRIm9CuHtvrY9RiPDaigyMpFcGkH3PSai9tG97g68qV9rFnNBS7nIE9pmzmZ7gvWQwT2fwqMq-kQ
This is 139 bytes long when decoded from base64.
It's generated with a ES512 asymmetric key.
—
Reply to this email directly or view it on GitHub
https://github.com/brianloveswords/node-jwa/pull/5#issuecomment-118072923
.

@omsmith Awesome, thank you so much. Sorry for wasting your time, I should have checked that earlier.

No worries, glad I could help, just unlucky you've been using two libs which were equally off-spec :)

Thanks @omsmith!


Update Dictionary

Thanks. I had a local branch where I cleaned up the dictionary and added names from the companion app, so I couldn't merge this directly, but I have added this names in 25e74ba.


chore: Fixed error message to reflect 'project' from legacy errors

Describe your changes
This PR fixes the error messages where Tigris errors with Database not found --> it is switched to Project not found as appropriate.
How best to test these changes
Existing test cases are updated to expect the newer message.
Issue ticket number and link

Codecov Report
Base: 32.42% // Head: 32.83% // Increases project coverage by +0.41% :tada:

Coverage data is based on head (47be4f4) compared to base (050d47a).
Patch coverage: 35.01% of modified lines in pull request are covered.

:exclamation: Current head 47be4f4 differs from pull request most recent head 142f258. Consider uploading reports for the commit 142f258 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #738      +/-   ##
==========================================
+ Coverage   32.42%   32.83%   +0.41%
==========================================
  Files         128      130       +2
  Lines       14367    14425      +58
==========================================
+ Hits         4659     4737      +78
+ Misses       9277     9243      -34
- Partials      431      445      +14

Impacted Files
Coverage Δ

query/read/fields.go
26.31% <0.00%> (-0.57%)
:arrow_down:

schema/reserved.go
100.00% <ø> (ø)

server/metadata/database.go
93.93% <0.00%> (ø)

server/metadata/errors.go
46.66% <0.00%> (+46.66%)
:arrow_up:

server/services/v1/api.go
0.00% <0.00%> (ø)

server/services/v1/database/errors.go
0.00% <0.00%> (ø)

server/services/v1/database/query_runner.go
4.71% <0.00%> (+0.02%)
:arrow_up:

server/services/v1/database/search_indexer.go
44.95% <0.00%> (-3.09%)
:arrow_down:

server/services/v1/management.go
0.00% <0.00%> (ø)

server/services/v1/realtime/device_session.go
0.00% <0.00%> (ø)

... and 20 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Add tags for exact Jekyll versions

As suggested in jekyll/jekyll#4118:

Also @jekyll/docker should allow fixing to major version by tag as usual in
other images (good example is PHP https://hub.docker.com/_/php/),
currently it allows fixing only to relative versions. (If I use „builder“
tag, I it means „stable“ Jekyll version and it means that in some time my
site will be broken if I do nothing.)

This is a WONT FIX until Docker hub gets their act together.  I love Docker with all my heart but Docker Hub is a terrible mess and until they allow us to delete tags so I don't have 5 million versions laying around and 5 million tags wasting data on their servers that could be potential security disasters I'm a definite no on this.

To add: If you are wanting to still have access to 2.5 after I finally update this repo to 3.0 you will be allowed to do that as I plan to add an oldstable tag that will maintain the last back major version the same way that Debian does.

Yea, but it is needed to allow fixing version somehow.
What about to just add tags for just major versions? (2, 3)
It is also important to have tag for absolute version, not relative (like
„stable“ or „oldstable“), because is is good to keep old version deployed
without need intervention always when there is new release.
Jan Pobořil
2015-11-09 21:37 GMT-06:00 Jordon Bedwell<EMAIL_ADDRESS>
This is a WONT FIX until Docker hub gets their act together. I love
Docker with all my heart but Docker Hub is a terrible mess and until they
allow us to delete tags so I don't have 5 million versions laying around
and 5 million tags wasting data on their servers that could be potential
security disasters I'm a definite no on this.
—
Reply to this email directly or view it on GitHub
https://github.com/jekyll/docker/issues/55#issuecomment-155274460.

Btw, tags for versions seems like best practice for Docker images and is
widely adopted. In not seems somebody cares about growing tags amount for
historic versions on Hub. (You don’t need to have it in repo, they just
lays on Hub as a build.)
Jan Pobořil
2015-11-09 21:44 GMT-06:00 Jan Pobořil<EMAIL_ADDRESS>
Yea, but it is needed to allow fixing version somehow.
What about to just add tags for just major versions? (2, 3)
It is also important to have tag for absolute version, not relative (like
„stable“ or „oldstable“), because is is good to keep old version deployed
without need intervention always when there is new release.
Jan Pobořil
2015-11-09 21:37 GMT-06:00 Jordon Bedwell<EMAIL_ADDRESS>
This is a WONT FIX until Docker hub gets their act together. I love
Docker with all my heart but Docker Hub is a terrible mess and until they
allow us to delete tags so I don't have 5 million versions laying around
and 5 million tags wasting data on their servers that could be potential
security disasters I'm a definite no on this.
—
Reply to this email directly or view it on GitHub
https://github.com/jekyll/docker/issues/55#issuecomment-155274460.

Good work. But there is one lack - major version tags are not for builder.

I made the very explicit decision after long thought while doing this to not support any version that is not the latest version for the builder tag, it will always be the latest, I have no plans to revert that decision as there is no compelling reason to do so.

Consistency with Docker best practices (what are their reasons) is not
compelling
reason?
Jan Pobořil
2015-12-06 20:07 GMT+01:00 Jordon Bedwell<EMAIL_ADDRESS>
I made the very explicit decision after long thought while doing this to not
support any version that is not the latest version for the builder tag,
it will always be the latest, I have no plans to revert that decision as
there is no compelling reason to do so.
—
Reply to this email directly or view it on GitHub
https://github.com/jekyll/docker/issues/55#issuecomment-162337456.

That's not a best practice, the best practice is jekyll/jekyll:3.0 or jekyll/builder:3.0 not jekyll/jekyll:builder-3.0 the tag is a helper that adds extras for you and it will always be the latest version.
I am not unreasonable though, I'll come back and reconsider what you wish when I have time to split this single repo into multiple repos where builder is it's own repo on the Docker Jekyll org (if I decide to) at that point then I can and will maintain older versions.

Yes, propably it will be good to make a second repo on Hub. Source Github
repo can be the same, Hub can build both repos from one.
Best practice is to provide tags for major, decimal and minor (if used in
project) versions separately, because some users needs to fix only major
version, some of them needs decimal version. So there should be tags e.g.
3, 3.0, 3.0.1, 2, 2.5, 2.5.4.
Jan Pobořil
2015-12-06 21:47 GMT+01:00 Jordon Bedwell<EMAIL_ADDRESS>
That's not a best practice, the best practice is jekyll/jekyll:3.0 or
jekyll/builder:3.0 not jekyll/jekyll:builder-3.0 the tag is a helper that
adds extras for you and it will always be the latest version.
I am not unreasonable though, I'll come back and reconsider what you wish
when I have time to split this single repo into multiple repos where
builder is it's own repo on the Docker Jekyll org (if I decide to) at that
point then I can and will maintain older versions.
—
Reply to this email directly or view it on GitHub
https://github.com/jekyll/docker/issues/55#issuecomment-162346248.

Please stop treating me like I'm dumb.  I know how to Docker.

Sorry, no offense. Just trying to help.
Jan Pobořil
2015-12-06 22:18 GMT+01:00 Jordon Bedwell<EMAIL_ADDRESS>
Please stop treating me like I'm dumb. I know how to Docker.
—
Reply to this email directly or view it on GitHub
https://github.com/jekyll/docker/issues/55#issuecomment-162348361.


KAFKA-15057: Use new interface from zstd-jni

Background
In Kafka's code, every batch of records is stored in an in-memory byte buffer. For compressed workload, this buffer contains data in compressed form. Before writing it to the log, Kafka performs some validations such as ensuring that offsets are monotonically increasing etc. To perform this validation, Kafka needs to uncompress the data stored in byte buffer.
For zstd compressed batches, Kafka uses ZstdInputStreamNoFinalizer interface provided by the downstream zstd-jni library to perform decompression.
ZstdInputStreamNoFinalizer takes input an InputStream and provides output an InputStream. Since, Kafka stores the entire batch in a ByteBuffer, Kafka wraps the ByteBuffer into an InputStream to satisfy the input contract for ZstdInputStreamNoFinalizer.
Problem
ZstdInputStreamNoFinalizer is not a good fit for our use case because we already have the entire compressed data stored in a buffer. We don't have a need for an interface which takes InputStream as an input. Our requirement is for an interface which takes a ByteBuffer as an input and provides a stream of uncompressed data as output. Prior to zstd-jni 1.5.5, no such interface existed. Hence, we were forced to use ZstdInputStreamNoFinalizer.
Usage of ZstdInputStreamNoFinalizer has the following problems:

When decompression of batch is complete, we try to read another byte to check if the actual batch size if equal to declared batch size. This is done at RecordIterator#next(). This extra call to read another byte leads to a JNI call in existing interface.
Since this interface requires input as an InputStream, we take the ByteBuffer containing compressed batch and convert it into a InputStream. This interface internally uses an intermediate buffer to read data from this InputStream in chunks. The chunk size is determined by underlying zstd library and hence, we will allocate a new buffer with very batch. This leads to the following transformation: ByteBuffer (compressed batch) -> InputStream (compressed batch) -> data copy to intermediate ByteBuffer (chunk of compressed batch) -> send chunk to zstd library for decompression -> refill the intermediate buffer by copying the data to intermediate ByteBuffer (next chunk of compressed batch)

Solution
I have extended an an interface in downstream library zstd-jni to suit the use case of Kafka. The new interface is called ZstdBufferDecompressingStreamNoFinalizer. It provides an interface where it takes input as a ByteBuffer containing compressed data and provides output as an InputStream. It solves the above problems as follows:

When we read the final decompressed frame, this interface sets a flag to mark that all uncompressed data has been consumed. When RecordIterator#next() tries to determine if the stream has ended, we simply read the flag and hence, do not have to make a JNI call.
It does not require any buffer allocation for input. It takes the input buffer and passes it across the JNI boundary without any intermediate copying. Hence, we don't perform any buffer allocation.

Result

Improvement in method throughput 10-20% as demonstrated by microbenchmark report at https://issues.apache.org/jira/secure/attachment/13058907/zstd-upgrade.xlsx
Reducing in allocation of a buffer as demonstrated by unit test

References
Changes in downstream zstd-jni
Add new interface -
https://github.com/luben/zstd-jni/commit/d65490e8b8aadc4b59545755e55f7dd368fe8aa5
Bug fixes in new interface -
https://github.com/luben/zstd-jni/commit/8bf8066438785ce55b62fc7e6816faafe1e3b39e
https://github.com/luben/zstd-jni/commit/100c434dfcec17a865ca2c2b844afe1046ce1b10
https://github.com/luben/zstd-jni/commit/355b8511a2967d097a619047a579930cac2ccd9d

@divijvaidya Nice one! Out of curiosity, have you tried to run kafka-producer-perf-test.sh before/after the patch?

It would be good to get this merged.
@divijvaidya Can you shared the code for the micro benchmark you mention? Do you see an impact when running the kafka-producer-perf-test/kafka-consumer-perf-test tools?


Documentation suggestion

Idea Title
https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.testtools.unittesting.dynamicdataattribute.-ctor?view=mstest-net-1.2.0#Microsoft_VisualStudio_TestTools_UnitTesting_DynamicDataAttribute__ctor_System_String_System_Type_Microsoft_VisualStudio_TestTools_UnitTesting_DynamicDataSourceType_
Issue Details
Would be nice to have more of a description for the 3 arg constructor in the DynamicDataAttribute class.

@mairaw Can you take a look at this?

This is VS SDK. Tagging @gregvanl and @ghogen instead.

I think @Mikejo5000 owns the TestTools API.

@gewarren @gregvanl I think Genevieve owns unit testing, but I don't know whether she owns these APIs...

@pvlakshm owns these APIs.

Ping @pvlakshm

@jchesshir Your issue is transfered to visual studio team issue queue. https://github.com/MicrosoftDocs/visualstudio-docs/issues/923


Improve document

V12 has no preview region.
But title has 'Preview Region', I thought I may think that some region is preview release status.
'Preview Region' should change 'GA Region'

Hi @yamatoya, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, AZPRBOT;

@MightyPen
Please review this PR and comment if I should merge it or not. Thanks.

Yes, please DO Approve this P.R.# 4189.  Thanks.


Roll Flutter Engine from 66d397dff87a to da127929ee5d (3 revisions)

https://github.com/flutter/engine/compare/66d397dff87a...da127929ee5d
2024-10-04<EMAIL_ADDRESS>Roll Skia from 379139f0bebe to e732cdf455c8 (11 revisions) (flutter/engine#55642)
2024-10-04<EMAIL_ADDRESS>[Impeller] remove aiks color_source. (flutter/engine#55603)
2024-10-04<EMAIL_ADDRESS>Roll Dart SDK from 91d39199994c to b96383c6bddd (1 revision) (flutter/engine#55641)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC matanl<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


fix: dockerfile now builds image (Fixes #214)

What is accomplished by your PR?
Dockerfile now successfully builds image
Is there something controversial in your PR?
What do you think about the difference in the port? 3000 and 3001 are chosen so both docker and dev can be up in parallel. That creates a "false" message in the console when starting docker:
info: node server started at http://localhost:3000

Which is documented but nevertheless not ideal
Link to the Issue
#214
Checklist
New Feature / Bug Fix

[x ] Run unit tests to ensure all existing tests are still passing
[ ] Add new passing unit tests to cover the code introduced by your PR
[x ] Add new documentation for the code introduced by your PR

Hey, thanks for the PR!
what if you start the app inside the docker container with CMD PORT=3001 npm start and expose the port 3001 instead of 3000? Then it should print the right message in the console.


[FEAT] Add execution logic and ActorPools to PyRunner

Closing temporarily until rest of the stuff is merged - will reopen soon.


Freeze popover

Hi all!
I need to show up a popover inside datatable that refresh data every 3 seconds. The problem is that after refreshing, the popover reference is destroyed and popover showed go up to coordinate 0,0 when scroll page.
Can it be solved?
Thanks in advance!
Codeply demo https://www.codeply.com/go/y2VQrjqdjf

Can you provide to us a CodePen or JSBin or Codeply without extra libs just Bootstrap and Popper.js ?

Ok sorry,
this is the demo: https://jsfiddle.net/passa1248/1nd8dgso/1/

Hmm that's a positionning issue and we use Popper.js for that 🤔 maybe we're not using correctly Popper.js
/CC @FezVrasta

That's not a positioning issue, the reference element gets destroyed and Popper.js doesn't know where to position it anymore.

@FezVrasta  seem that setStyles.js (popper.js/src/utils/setStyles.js) edit transform attribute also after delete the refence element. This is the screen with break on "attribute modifications":

How can you pretend Popper.js to work if you delete the reference element? You should first destroy the Popper.js instance.
Nowhere in the documentation I say that Popper.js can work with a detached/removed reference element.

I do not pretend it but Falcon Heavy must return to base :(
I have resolved removing library and create custom panel myself
https://jsfiddle.net/passa1248/1nd8dgso/50/

I do not pretend it but Falcon Heavy must return to base :(
I have resolved removing library and create custom panel myself
https://jsfiddle.net/passa1248/1nd8dgso/50/

Closing as not a Bootstrap bug.


Update Routing Bucket.

Describe the bug
Exports for RoutingBuckets are not working properly; i’m not sure why. Whenever i send an update through the export, PMA voice is not receiving the source value or any value at all.
To Reproduce
Steps to reproduce the behavior:
Replicate this command:
RegisterCommand("try", function(source)
exports['pma-voice'].updateRoutingBucket(source)
end, false)
throws an error indicating value 0 (which is the source) is nil.
Expected behavior
Should update the PMA voice routing bucket.
Server Info:

Server Version: 3874
Client Version: production
Client Build: Not sure, latest at the moment.

I belive this to be an issue with FiveM although i couldn't replicate it elsewhere.

RegisterCommand("try", function(source)
exports['pma-voice'].updateRoutingBucket(source)
end, false)

Isn't this supposed to be exports['pma-voice']:updateRoutingBucket(source)? Exports are treated as methods in Lua (compared to functions in js, which is how you're trying to use it)

Hmmm, could be my mistake, will test it and let you know. Currently i'm using it in my housing system, would be dope to finally release it to support PMA. Thanks for the headsup!


fix felt version in fuzzer

Codecov Report

Merging #333 (208ce98) into main (d722288) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #333   +/-   ##
=======================================
  Coverage   94.45%   94.45%
=======================================
  Files          47       47
  Lines        4619     4619
=======================================
  Hits         4363     4363
  Misses        256      256

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Tags for Lessons

To make it easier to browse lesson code on github it would be great if you used git tags for each lesson in addition to commits. This way you can also link to each lesson's full code.
A good working example of this practice is seen here: The Meteor Book (look at the tags submenu on github)

Thanks for this suggestion Robert. Currently each commit relates one-to-one
to the lecture so I think we already have what you are looking for.
Ben Tristem
https://www.udemy.com/u/bentristem
Twitter: @BenTristem
Skype: BulldogBen
On 4 April 2016 at 15:04, Robert Moggach<EMAIL_ADDRESS>wrote:

To make it easier to browse lesson code on github it would be great if you
used git tags for each lesson in addition to commits. This way you can also
link to each lesson's full code.
A good working example of this practice is seen here: The Meteor Book
https://github.com/DiscoverMeteor/Microscope (look at the tags submenu
on github)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/UnrealCourse/02_BullCowGame/issues/1

We will shortly be linking all lessons in Udemy to the relevant Git commit in the Resources section.


npm install<EMAIL_ADDRESS>throws lots of warnings (mac osx lion)

npm install
npm WARN package.json<EMAIL_ADDRESS>No README.md file found!
npm http GET https://registry.npmjs.org/node-expat
npm http 200 https://registry.npmjs.org/node-expat
npm http GET https://registry.npmjs.org/node-expat/-/node-expat-2.0.0.tgz
npm http 200 https://registry.npmjs.org/node-expat/-/node-expat-2.0.0.tgz

<EMAIL_ADDRESS>install /Users/rajar/success/git/test/node_modules/node-expat
node-gyp rebuild

CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlparse.o
CC(target) Release/obj.target/expat/deps/libexpat/lib/xmltok.o
../deps/libexpat/lib/xmltok.c:471:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:484:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:504:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:517:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:730:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:749:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:762:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:775:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:871:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:890:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
10 warnings generated.
CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlrole.o
LIBTOOL-STATIC Release/libexpat.a
CXX(target) Release/obj.target/node_expat/node-expat.o
SOLINK_MODULE(target) Release/node_expat.node
SOLINK_MODULE(target) Release/node_expat.node: Finished
<EMAIL_ADDRESS>node_modules/node-expat

Removing ~/.node-gyp worked for me http://stackoverflow.com/questions/21021884/node-expat-install-error-on-ubuntu-vm

This did nothing for me; still getting warnings. Running OSX 10.10.4.

We need to update nan for latest iojs/0.12 support. This is planned but we'd happily accept a PR (should be a quick easy one too!).

Any updates on this? Getting the same warnings on OSX with node 4.
><EMAIL_ADDRESS>install /Users/xo/Desktop/t/Network-Status-Page/node_modules/xml2json/node_modules/node-expat
> node-gyp rebuild

  CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlparse.o
  CC(target) Release/obj.target/expat/deps/libexpat/lib/xmltok.o
../deps/libexpat/lib/xmltok.c:471:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:484:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:504:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:517:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:730:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:749:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:762:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:775:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:871:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
../deps/libexpat/lib/xmltok.c:890:1: warning: missing field 'isName2' initializer [-Wmissing-field-initializers]
};
^
10 warnings generated.
  CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlrole.o
  LIBTOOL-STATIC Release/libexpat.a
  CXX(target) Release/obj.target/node_expat/node-expat.o
  SOLINK_MODULE(target) Release/node_expat.node

@sonnyp was this fixed?

yes, https://github.com/node-xmpp/node-expat/pull/131 but anyway those are/were warnings, not an issue


[BUG] Correct URL for cloud-init Network Data "Learn More"

Describe the bug
For a specific VM in Harvester, "Cloud Config" "Network Data" "Learn more" is a hyperlink to
https://cloudinit.readthedocs.io/en/latest/topics/network-config-format-v1.html
Which is 404
To Reproduce
Steps to reproduce the behavior:
Log into Rancher 2.7.1, select any Harvester 1.1 HCI cluster, "Virtual Machines", select any VM, "Cloud Config", scroll down to Network Data, read the text "The network-data configuration allows you to customize the instance’s networking interfaces by assigning subnet configuration, virtual device creation (bonds, bridges, vlans) routes and DNS configuration. Learn more"
Note that "Learn More" links to:
https://cloudinit.readthedocs.io/en/latest/topics/network-config-format-v1.html
Which is 404
Expected behavior

"Learn more" AFAIK should link to
https://cloudinit.readthedocs.io/en/latest/reference/network-config-format-v1.html
Note it's a "reference" now instead of a "topic".
Environment

Harvester ISO version: 1.1 recently installed a week ago

Thank you very much for your feedback, we will fix it.

Verified this bug has been fixed.

Test Information

Environment: qemu/KVM 2 nodes
Harvester Version: v1.1-a002d078-head
ui-source Option: Auto

Verify Steps:

Install Harvester with any nodes
Login to dashboard, navigate to page Virtual Machines
Click Create and navigate to tab Advanced Options
Link of Learn More should point to correct page


[bug] Can't configure ports on Kitematic (Windows)

Expected behavior
The (+) button under Settings > Ports (from a Container) should allow you to create new IP:port combinations
Actual behavior
Nothing happens when you click on the (+) button.
Information about the Issue
This has been tested with Docker 1.12.0 (b5968) with kitematic <IP_ADDRESS> (alpha)
Steps to reproduce the behavior

Download any docker container
Go to it's Settings > Ports page
Try to add a IP:port combination via the (+) button.

The + button is only to add a rule for existing exposed ports - there's a PR to allow ports to be added by the user, even if they're not exposed by the image.
The image should be built properly and expose the ports/volumes it uses which the user can map. Open an issue with the image owned :)


fuse: use macfuse-stubs instead on Darwin

Motivation for this change
Replaces the Linux-only fuse package with macfuse-stubs on Darwin. This should further increase the number of FUSE packages available on Darwin, although more fixes would probably be needed on a per-package basis.
macfuse-stubs should mostly work as a drop-in replacement for fuse. However, it isn't yet compatible with libfuse 3.x, so packages that depends on fuse3 would still be unsupported on Darwin.
It should be noted that macFUSE would need to be installed outside of Nix in order to run FUSE packages. macFUSE isn't packaged in Nix because it includes a kernel extension, which isn't supported by Nix outside of NixOS. I don't know how best to warn users of this, but I added brief explanation in the longDescription of macfuse-stubs.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

I don't know how best to warn users of this, but I added brief explanation in the longDescription of macfuse-stubs.
Things done

This isn't enough for depending packages.

I pushed a new commit including a new section in the manual for FUSE with an advice about macFUSE.


Crashes if Softlimit is set to unlimited

File "/opt/conda/lib/python3.7/site-packages/prometheus_client/process_collector.py", line 84, in collect
value=float(line.split()[3]))
ValueError: could not convert string to float: b'unlimited'
https://github.com/prometheus/client_python/blob/master/prometheus_client/process_collector.py#L85
        try:
            with open(os.path.join(pid, 'limits'), 'rb') as limits:
                for line in limits:
                    if line.startswith(b'Max open file'):
                        max_fds = GaugeMetricFamily(self._prefix + 'max_fds',
                                                    'Maximum number of open file descriptors.',
                                                    value=float(line.split()[3]))
                        break
            open_fds = GaugeMetricFamily(self._prefix + 'open_fds',
                                         'Number of open file descriptors.',
                                         len(os.listdir(os.path.join(pid, 'fd'))))

@brian-brazil,  I believe you are correct.
Attempting to set unlimited in Linux
[root@demo ~]# ulimit -Hn unlimited
-bash: ulimit: open files: cannot modify limit: Operation not permitted
[root@demo ~]# ulimit -Hn "unlimited"
-bash: ulimit: open files: cannot modify limit: Operation not permitted

I'll bring this up in #SmartOS and see if this semantic can be fixed.  For now if anyone reads this,  just set integer limits.  Ex.  ulimit -Sn 1024,  ulimit -Hn 4096.
Thanks for the response 👍


CI: enable windows

CC @eseidelGoogle

I'm a bit out of touch with the code to be a reviewer.  That said, it looks like all the bots failed, so probably not much to review yet?

@eseidelGoogle – this is almost entirely me just hacking around.
If you have windows working, submit another PR – please!

Failed attempt


Summary command implementation

Codecov Report

Merging #106 (f1ba6b3) into master (b3650f7) will decrease coverage by 1.67%.
The diff coverage is 11.47%.

:exclamation: Current head f1ba6b3 differs from pull request most recent head 6aa309e. Consider uploading reports for the commit 6aa309e to get more accurate results

@@             Coverage Diff              @@
##             master     #106      +/-   ##
============================================
- Coverage     41.43%   39.76%   -1.68%
- Complexity      365      366       +1
============================================
  Files           108      113       +5
  Lines          1996     2105     +109
  Branches        192      195       +3
============================================
+ Hits            827      837      +10
- Misses         1095     1193      +98
- Partials         74       75       +1

Impacted Files
Coverage Δ

...rc/main/java/seedu/travelr/logic/LogicManager.java
0.00% <0.00%> (ø)

...java/seedu/travelr/logic/commands/ExitCommand.java
50.00% <0.00%> (ø)

...java/seedu/travelr/logic/commands/HelpCommand.java
50.00% <0.00%> (ø)

...a/seedu/travelr/logic/commands/SummaryCommand.java
0.00% <0.00%> (ø)

.../seedu/travelr/logic/parser/AddressBookParser.java
46.66% <0.00%> (-1.61%)
:arrow_down:

src/main/java/seedu/travelr/model/Model.java
100.00% <ø> (ø)

.../java/seedu/travelr/ui/CompletedTripListPanel.java
0.00% <0.00%> (ø)

src/main/java/seedu/travelr/ui/MainWindow.java
0.00% <0.00%> (ø)

src/main/java/seedu/travelr/ui/SummaryCard.java
0.00% <0.00%> (ø)

src/main/java/seedu/travelr/ui/SummaryWindow.java
0.00% <0.00%> (ø)

... and 6 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Nist rbac levels

Could you document which rbac level this module conforms to if any?
http://csrc.nist.gov/rbac/sandhu-ferraiolo-kuhn-00.pdf
it's probably NIST level 2 as levels 3 and 4 aren't mentioned much in later documents.

It is hierarchical rbac
On Feb 5, 2016 5:10 AM, "Harry Moreno"<EMAIL_ADDRESS>wrote:

Could you document which rbac level this module conforms to if any?
http://csrc.nist.gov/rbac/sandhu-ferraiolo-kuhn-00.pdf
—
Reply to this email directly or view it on GitHub
https://github.com/seeden/rbac/issues/9.


Don't show new-file picker when only one option is available

In a fresh VS Code install, the new file prompt offers one option and should maybe not be shown:

Works in latest Insiders.


Upgrade cartodb extension to 0.18.4

There was a problem with migration from 0.18.2 to 0.18.3

@rafatower it's not déjà vu, I need you to review another version upgrade

okay, and sorry about the previous review w/o added benefit


feat: ask to restart the compiler if flix.toml is updated

Solves https://github.com/flix/vscode-flix/issues/247
I wasn't sure about the message "Do you want to reload the flix extention extension   after changing flix.toml?", maybe this should be worded differently?

Thanks! Let us see how it plays :)


version: 2.23.4

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Bug]: When exporting a program package, the object type in the task details does not display the corresponding package body.

ODC version
ODC424
OB version
independent
What happened?
When exporting a program package, the object type in the task details does not display the corresponding package body.

What did you expect to happen?
Display the corresponding data object
How can we reproduce it (as minimally and precisely as possible)?
export package
Anything else we need to know?
No response
Cloud
No response

Expected PACKAGE_BODY

pass


Flow erros

Hi, since I updated to the latest version I am having lots of flow errors considering this lib :
hope this issue wasn't already known.
[flow] Cannot create `KeyboardAwareScrollView` element because a callable signature is missing in props [1] but exists in function type [2]. (References: [1] [2])
[flow] Cannot instantiate `React.Element` because in type argument `ElementType`: Either inexact statics of `<<anonymous class>>` [1] is incompatible with exact `React.Element` [2] in the return value. Or statics of `<<anonymous class>>` [1] is incompatible with `React.Portal` [3] in the return value. Or property `@@iterator` is missing in statics of `<<anonymous class>>` [1] but exists in `$Iterable` [4] in the return value. Or function [5] is incompatible with statics of `React.Component` [6]. (References: [1] [2] [3] [4] [5] [6])
[flow] all branches are incompatible: Either inexact statics of `<<anonymous class>>` [1] is incompatible with exact `React.Element` [2]. Or statics of `<<anonymous class>>` [1] is incompatible with `React.Portal` [3]. Or property `@@iterator` is missing in statics of `<<anonymous class>>` [1] but exists in `$Iterable` [4]. (References: [1] [2] [3] [4])

I am using :
    "debounce": "^1.1.0",
    "lodash": "^4.17.10",
    "lottie-react-native": "^2.5.8",
    "moment": "^2.20.1",
    "moment-timezone": "^0.5.14",
    "react": "16.3.1",
    "react-native": "0.55.4",
    "react-native-keyboard-aware-scroll-view": "^0.7.3",
    "react-navigation": "^2.17.0",
    ....

For the moment I avoided the problem with ignoring it like explained here :
https://github.com/APSL/react-native-keyboard-aware-scroll-view/issues/117
Thanks a lot.

Can you send a PR with the Flow fixes? Thanks.

You can just ignore the module for now, until the author fixes the flow issues.
You can do that by simple adding .*/node_modules/react-native-keyboard-aware-scroll-view/.* to your [ignore] in .flowconfig

@MounirDhahri it is what I already did it was in the link and in my comment ;)
Though it "works" I get another warning

I have the flow issue thing in my roadmap for this week. Sorry guys, I'm running too much OSS stuff myself alone atm.

Just FYI, we're experiencing the flow issues and the fix is almost 50% already done, but priorities come first.

@alvaromb thanks for the update on this case that's nice to hear :) 👍

Working on this right now https://github.com/APSL/react-native-keyboard-aware-scroll-view/tree/flow-issues
Please test this branch with flow WIP

If you ignore the entire module in .flowconfig you'll get different warnings.
But so far I've had luck with ignoring on the one file, so add this be ignored to .flowconfig
<PROJECT_ROOT>/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js

I've this error
error node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js: # could not be cloned.


Update Facade.php

Implementation with switch/case is limited for 4 parameters for static call..
As well, switch/case implementation does exact the same thing as call_user_func_array..
I propose to remove unnecessary code..

I think this is done on purpose for performance reasons. The switch case should be faster than the call_user_func_array.

See https://gist.github.com/nikic/6390366

So perhaps this is better: https://github.com/laravel/framework/pull/12119

@barryvdh fully agree with you ;)


Remote server script

Create a remote server script, to login to remote Windows server and perform below actions:

Prepare the disks
Partition the disks
Format the disks

Created the required feature.


[system-probe] Upgrade mdlayher/netlink to 1.4.0

What does this PR do?
Upgrade the mdlayher/netlink library to the latest version to take advantage of some thread locking optimizations when we create/dial netlink sockets.
Motivation
https://datadoghq.atlassian.net/browse/NET-1216
Additional Notes
Anything else we should know when reviewing?
Describe your test plan
Write there any instructions and details that should be tested during the QA.

Related to https://github.com/DataDog/datadog-agent/pull/5295

Maybe I have a different understand of this, but we're not using this library for the bulk of netlink operations. I thought the idea was to get rid of this:
https://github.com/DataDog/datadog-agent/blob/b2537a62e485eab210b80fce8f44fc552e94a927/pkg/network/netlink/consumer.go#L336-L343
And only switch to the root network namespace during the socket creation, similarly to what mdlayher/netlink does
What you're doing will likely yield a perf win for the Exists operations, but this only accounts for a fraction of the netlink workload.

I misunderstood the ticket. Changes coming up.

On a second thought, I guess it doesn't matter how work the go-routine itself is doing but how many OS threads we're locking, so I guess updating the library (for the purposes of getting rid of the lock for the Exists stuff) is as important as refactoring the consumer.go


Great Big Update

Roll Templates!
Buttons made better, cleaned up derived stats, included tooltips,
changed background, cleaned up text boxes, cleaned up combat tab, other
minor changes

Thanks you


Azure Managed Identity support - first version

These changes are to resolve issue #18

I'd like to take this change today, so I'll go ahead and merge this PR and then add my own changes as a separate PR.


reactivity on meteor login

I am sometimes (~25% of the times) noticing that once my react-native app logs into meteor, it doesn't pick up on the fact that the login is successful and go to the next scene. I think it is a react-native-meteor issue, but I am not sure. One indication is that when I quit the app, and restart it, it auto-logs into meteor and sends me to the next scene as designed.
Is this the fact that reactivity on the Meteor login is failing?
Is there a way to debug this? Here is my code snippet:
class MainComponent extends Component {

  componentWillMount() {

    // Connect to Meteor backend!
    Meteor.connect(settings.METEOR_URL);

    // Configure Google SignIn
    GoogleSignin.hasPlayServices({
      autoResolve: true
    }).then(() => {
      // play services are available. can now configure library
      GoogleSignin.configure({
        iosClientId: settings.google.iosClientId,
        webClientId: settings.google.webClientId,
        offlineAccess: false
      });
    })
      .catch((err) => {
        console.log("Play services error", err.code, err.message);
      });

    // Set up our scenes
    this.scenes = Actions.create(
      <Scene
        key="root"
        component={createContainer(this.composer, Switch)}
        selector={this.selector}
        tabs={true}
        unmountScenes
      >
        <Scene
          key="connecting"
          hideNavBar={true}
          component={Routes.loading.component}
          title={Routes.loading.title}
        />
        <Scene key="loggedOut">
          <Scene
            key={Routes.signIn.key}
            component={Routes.signIn.component}
            title={Routes.signIn.title}
            hideNavBar={true}
            initial
          />
        </Scene>
        <Scene key="loggedIn">
          <Scene
            key={Routes.home.key}
            component={Routes.home.component}
            title={Routes.home.title}
            hideNavBar={true}
            initial
          />
        </Scene>
      </Scene>
    );
  }

  composer() {
    return {
      connected: Meteor.status().connected,
      user: Meteor.user()
    };
  }

  /*eslint-disable no-unused-vars*/
  selector(data, props) {
    if (!data.connected) {
      return "connecting";
    } else if (!data.user) {
      return "loggedOut";
    } else {
      return "loggedIn";
    }
  }
  /*eslint-enable no-unused-vars*/

  render() {
    return (
      <Router scenes={this.scenes} />
      );
  }
}

export default MainComponent;

This is also a problem I am facing, i am guessing that when the app has been put in background for a certain amount of time, the ddp connection is closed.
When you open the app again, we wait for the user to be loggedin before displaying the loggedIn view...
To be honest I already have the problem on an ionic app that have been written with angular-meteor project, do not know how to solve this properly.
Now maybe using this project we can just check if the auth token see https://github.com/inProgress-team/react-native-meteor/pull/129 is set and use https://github.com/DesignmanIO/react-native-meteor-redux to get data even when the user if offline
What do you think about that ?

It looks like you should be using state, instead of the selector() method. Here's what I do, which works quite well (similar to @sabativi 's suggestion):
componentWillMount() {
    // wait for login token
    AsyncStorage.getItem('reactnativemeteor_usertoken').then((loginToken) => {
      if (loginToken) {
        // if token exists, they're logged in, take them to the initial route
        this.setState({initialRoute: Router.getRoute('drawer').routeName});
        this.setState({loggedIn: true});
      } else {
       // if token doesn't exist, they're not logged in, so take them to sign in screen
        this.setState({initialRoute: Router.getRoute('signIn').routeName});
        this.setState({loggedIn: false});
      }
      // either way, the token is done loading
      this.setState({isLoading: false});
    }).done();
  }

  render() {
    if (this.state.isLoading) return <Loading />;
    return (
      <StackNavigation initialRoute={this.state.initialRoute} />
    )

I'm using ex-navigation, so you're router may look different.

Thanks! I will try that. But was what I was doing wrong?
Get Outlook for iOS
On Fri, Jan 20, 2017 at 5:45 AM -0800, "JulianKingman"<EMAIL_ADDRESS>wrote:
It looks like you should be using state, instead of the selector() method. Here's what I do, which works quite well (similar to @sabativi 's suggestion):
componentWillMount() {
// wait for login token
AsyncStorage.getItem('reactnativemeteor_usertoken').then((loginToken) => {
if (loginToken) {
// if token exists, they're logged in, take them to the initial route
this.setState({initialRoute: Router.getRoute('drawer').routeName});
this.setState({loggedIn: true});
} else {
// if token doesn't exist, they're not logged in, so take them to sign in screen
this.setState({initialRoute: Router.getRoute('signIn').routeName});
this.setState({loggedIn: false});
}
// either way, the token is done loading
this.setState({isLoading: false});
}).done();
}
render() {
if (this.state.isLoading) return ;
return (

)
I'm using ex-navigation, so you're router may look different.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

You were returning the logged in state with a method. I'm not 100% sure, but I believe the only things that cause a react component to re-render are updates to either state or props, unless you specifically request a re-render with shouldComponentUpdate.

I am actually following the example specified in the documentation: https://github.com/inProgress-team/react-native-meteor/blob/master/README.md#react-native-router-flux
I am starting to suspect that my Meteor.user() subscription is not populated after I log in. It's that a possibility? Is there a way to debug that to verify whether my subscription is up to date? Is there a way to force an refresh on a subscription?

OK, I think the subscription is fine. Meteor.user() subscription seems to be updated just fine. So, I winder if it is an issue with the Switch component of react-native-router-flux. Has anyone used this combination successfully?
Is there a recommended router for use with react-native-meteor?

Hmm. How is your google sign-in configured? I'm guessing it's less to do with routing than some mis-configuration. Are you saving the login token to AsyncStorage somewhere? Could it be that the sign in service is not ready until after it tries to log in?
That said, react-navigation just came out in beta, it's a pretty good router that continues the work started with ex-navigation. Check it out here: reactnavigation.org

Google and Facebook signin are working just fine. After google/facebook signin, the Meteor signin is done, which is also successful. Once the Meteor signin is done, the login token is saved to AsyncStorage. It is at this point that I expect reactivity of Meteor.user() to kick in at the main component and the Switch component of the router takes the user to the home page.
Keep in mind that this works about 75% of the time. If it was always failing, I can buy into the misconfiguration theory.
I have now worked around it by forcing a redirect after I save the login token.
Here is the signin code from SignIn.js; do you see any issues with it?
  logUserIntoMeteor(service, user) {
    console.log("Logging " + service + " user into Meteor");
    const Data = Meteor.getData();
    if (user) {
      Meteor.call("login", {
        [service]: user
      }, (err, result) => {
        if (!err) { // save user id and token
          AsyncStorage.setItem(USER_TOKEN_KEY, result.token);
          Data._tokenIdSaved = result.token;
          Meteor._userIdSaved = result.id;
          // Force redirection to new page. Should be handled by the Switch component
          // when it detects a login, but it doesn't always work
          if (Meteor.user !== null) {
            Actions.goHome();
          }
        } else {
          console.log(err);
        }
      });
    }
  }

I have started looking at react-navigation. Looks interesting...

Sounds like a good work-around. Have you tried logging the props and data from selector to see if the data is coming through properly?

Yes, I did that, and that's why I am reasonably confident that the new props are getting to the switch component. I even investigated the createContainer code of react-native-meteor, and even put in tracing code in the Switch code of react-native-router-flux, and it looks fine. I think react-native-router-flux has some issues in re-rendering.
I also looked at @Mokto's react-native-meteor-router-flux. It looks very clean, but it didn't work. Not sure why, but then it is deprecated. But I was hoping it would work.
Anyway, looks like I have to live with this work-around. Bummer, I hate having to put in hacks like that :)


Writing to an already closed websocket connection throws errors and increases endpoint's response time

Here is how to reproduce:

Run the latest bigchaindb server locally
Install and download bigchaindb/benchmarks
Run a script that initiates a WS connection with BigchainDB and e.g. counts the messages receives

I've prepared a script already:
(function replication() {
    const conns = []
    let messages = 0

    function onOpen() {
        console.log('open')
    }

    function onError(error) {
        if (error.code === 'EAI_AGAIN') {
            console.log('Connection problem with BDB')
        }
    }

    function onClose() {
        //console.log('close')
    }

    function onMessage(data) {
        messages += 1
        console.log(messages)
    }

    const listeners = {
        open: onOpen,
        error: onError,
        close: onClose,
        message: onMessage
    }

    function initSockets() {
        const ws = new WebSocket('ws://localhost:9985/api/v1/streams/valid_transactions')
        Object
            .keys(listeners)
            .forEach(key => ws.addListener(key, listeners[key]))

        conns.push(ws)
    }
    initSockets()
})()

Send a transaction using the benchmark tool to see if the script works

bigchaindb-benchmark -p http://localhost:9984 send -r 1

If it does. 1 should appear from the console

Now increase the number of transactions by several magnitudes such that your script will start to have problems receiving them

bigchaindb-benchmark -p http://localhost:9984 send -r 10000000

Wait for a few thousand messages to be sent, then quickly terminate the script with Ctrl-C

BigchainDB should now log this message many times:

(asyncio) socket.send() raised exception

Likely because the connection bigchaindb just wanted to write a transaction to just got closed by the script.
If you now try to reconnect to BigchainDB, its response time will be extremely high, to the point of connections not getting accepted anymore.
@vrde Happy to fix this myself if you tell me where.

I'm able to reproduce the error.
I guess it's related https://github.com/aio-libs/aiohttp/issues/2309. (The previous issue was not acknowledge by the core team: https://github.com/aio-libs/aiohttp/issues/961.).
Seems like the exception is not bubbling up in the stack:
[...] [WARNING] (aiohttp.websocket) websocket connection is closing. (ws- pid: 26625)
[...] [WARNING] (asyncio) socket.send() raised exception. (ws         - pid: 26625)
[...] [WARNING] (aiohttp.websocket) websocket connection is closing. (ws- pid: 26625)
[...] [WARNING] (asyncio) socket.send() raised exception. (ws         - pid: 26625)

In https://github.com/aio-libs/aiohttp/issues/2283 they have a workaround. I'll try it out.
I think we should take some time to re–implement this websocket feature using a library that is not aiohttp. The API is convoluted and difficult to understand.

@TimDaub @vrde How do we plan to fix this i.e. will the suggested work around suffice or do we re-implement? Incase of latter @vrde do you have any specific libraries in mind?

@kansi I've already started fixing it (there was also a memory leak).

How do we plan to fix this i.e. will the suggested work around suffice or do we re-implement?

TBH the work around should suffice for now.


disabling Bridgy account associated with a Facebook page

When I try to disable a Bridgy account for a Facebook Page, I get the error "Please log into Facebook as Hardly Starving to disable it here."
Bridgy account page: https://www.brid.gy/facebook/108663232553079#
Facebook page: https://www.facebook.com/pages/Hardly-Starving/108663232553079
Screenshot of the error message

Amusingly, even if I AM signed in to Facebook as the Page, it makes me switch to my personal account before it tries and fails:

We should probably allow the owner of a page to disable its Bridgy acc't

oh wow, great find! (also i have no idea what's up here. :P)

...except the usual facebook :facepunch: :gun:

fixed in 7fcaa48

yay, thanks! lgtm. only one "now" bug left, #378, and it's largely out of our hands. i may need to find a new hobby. :P


Don't evaluate comments

This is a follow-up to #1333. In addition to not printing out comments, it doesn't evaluate the contents of interpolations inside comments. @neunenak, what do you think?

Huh, I didn't realize interpolations inside comments would get evaluated. Yeah, this seems like a good change.

Unfortunately they'll still get parsed, so you'll get parse errors. However, fixing that is a backwards-compatible change. However it'll be a little hairy. We'll have to either extract setting values in a first pass (not actually that hard since settings are simple) and use the settings to change how the parser works, or stipulate that the setting only affects parsing of recipes after the setting.