Multi-chip Unit Tests - Falcon40b decoder/end-to-end hangs on T3000

pytest models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]
Result is a hang, seeing the same thing on end to end as well: pytest models/demos/falcon40b/tests/test_falcon_end_to_end.py::test_FalconCausalLM_end_to_end_with_program_cache[BFLOAT8_B-SHARDED-falcon_40b-layers_1-decode_batch32-4chips-enable_program_cache]

Passed once on CI, but hangs on my local: https://github.com/tenstorrent/tt-metal/actions/runs/8930996280
Will run a bunch more times to see if it's a machine issue

Did a bunch of runs here:
https://github.com/tenstorrent/tt-metal/actions/runs/8930996280
https://github.com/tenstorrent/tt-metal/actions/runs/8935451529
https://github.com/tenstorrent/tt-metal/actions/runs/8935452562
https://github.com/tenstorrent/tt-metal/actions/runs/8935453798
https://github.com/tenstorrent/tt-metal/actions/runs/8935454512
https://github.com/tenstorrent/tt-metal/actions/runs/8935455753
Seeing some weird nondeterminate behaviour, maybe machine dependent:
Run 11, f10cs07 - hangs on models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]
Run 10, f10cs08 - models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]
Run 9, f10cs06 - test fail on CommandQueueSingleCardFixture.TestLargeBuffer4096BPageSize
Run 8, f12cs02 - pass
Run 7, f10cs07 - test fail on CommandQueueSingleCardFixture.TestWrapCompletionQOnInsufficientSpace2
Run 6, f10cs07 - hangs on models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]
Run 5, f10cs08 - hangs on models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]
Run 4, f10cs06 - hangs on models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]
Run 3, f10cs06 - hangs on models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]
Run 2, f10cs07 - hangs on models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]
Run 1, f12cs02 - pass
On my local T3000, I consistently get a hang on models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]

It's debuggable using watcher, here's a sample from the log:
Device 3 worker core(x= 0,y= 0) phys(x= 1,y= 1):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 1,y= 0) phys(x= 2,y= 1):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 2,y= 0) phys(x= 3,y= 1):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 3,y= 0) phys(x= 4,y= 1):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 4,y= 0) phys(x= 6,y= 1):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 5,y= 0) phys(x= 7,y= 1):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 6,y= 0) phys(x= 8,y= 1):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 7,y= 0) phys(x= 9,y= 1):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 0,y= 1) phys(x= 1,y= 2):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 1,y= 1) phys(x= 2,y= 2):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 2,y= 1) phys(x= 3,y= 2):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 3,y= 1) phys(x= 4,y= 2):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 4,y= 1) phys(x= 6,y= 2):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 5,y= 1) phys(x= 7,y= 2):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 6,y= 1) phys(x= 8,y= 2):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 7,y= 1) phys(x= 9,y= 2):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 0,y= 2) phys(x= 1,y= 4):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 1,y= 2) phys(x= 2,y= 4):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 2,y= 2) phys(x= 3,y= 4):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 3,y= 2) phys(x= 4,y= 4):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 4,y= 2) phys(x= 6,y= 4):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 5,y= 2) phys(x= 7,y= 4):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 6,y= 2) phys(x= 8,y= 4):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 7,y= 2) phys(x= 9,y= 4):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 0,y= 3) phys(x= 1,y= 5):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 1,y= 3) phys(x= 2,y= 5):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 2,y= 3) phys(x= 3,y= 5):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 3,y= 3) phys(x= 4,y= 5):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 4,y= 3) phys(x= 6,y= 5):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 5,y= 3) phys(x= 7,y= 5):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 6,y= 3) phys(x= 8,y= 5):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 7,y= 3) phys(x= 9,y= 5):   GW,   W,   W,   W,   W  rmsg:D1D|BNt smsg:DDDD k_ids:272|271|0
Device 3 worker core(x= 0,y= 4) phys(x= 1,y= 7):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 1,y= 4) phys(x= 2,y= 7):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 2,y= 4) phys(x= 3,y= 7):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 3,y= 4) phys(x= 4,y= 7):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 4,y= 4) phys(x= 6,y= 7):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 5,y= 4) phys(x= 7,y= 7):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 6,y= 4) phys(x= 8,y= 7):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 7,y= 4) phys(x= 9,y= 7):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 0,y= 5) phys(x= 1,y= 8):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 1,y= 5) phys(x= 2,y= 8):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 2,y= 5) phys(x= 3,y= 8):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 3,y= 5) phys(x= 4,y= 8):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 4,y= 5) phys(x= 6,y= 8):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 5,y= 5) phys(x= 7,y= 8):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 6,y= 5) phys(x= 8,y= 8):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 7,y= 5) phys(x= 9,y= 8):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 0,y= 6) phys(x= 1,y= 9):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 1,y= 6) phys(x= 2,y= 9):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 2,y= 6) phys(x= 3,y= 9):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 3,y= 6) phys(x= 4,y= 9):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 4,y= 6) phys(x= 6,y= 9):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 5,y= 6) phys(x= 7,y= 9):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 6,y= 6) phys(x= 8,y= 9):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 7,y= 6) phys(x= 9,y= 9):   GW,   W,   W,   W,   W  rmsg:D1D|BNT smsg:DDDD k_ids:443|442|444
Device 3 worker core(x= 0,y= 7) phys(x= 1,y=10):  NTW,UAPW,   W,   W,   W  rmsg:H1G|bNt smsg:GDDD k_ids:0|38|0
Device 3 worker core(x= 1,y= 7) phys(x= 2,y=10):  NTW, HQW,   W,   W,   W  rmsg:H1G|bNt smsg:GDDD k_ids:0|37|0
Device 3 worker core(x= 2,y= 7) phys(x= 3,y=10):  NTW, HQW,   W,   W,   W  rmsg:H1G|bNt smsg:GDDD k_ids:0|39|0
Device 3 worker core(x= 3,y= 7) phys(x= 4,y=10):  NTW,UAPW,   W,   W,   W  rmsg:H1G|bNt smsg:GDDD k_ids:0|43|0
Device 3 worker core(x= 4,y= 7) phys(x= 6,y=10): NSIW,   W,   W,   W,   W  rmsg:H0G|Bnt smsg:DDDD k_ids:40|0|0
Device 3 worker core(x= 5,y= 7) phys(x= 7,y=10): NSIW,   W,   W,   W,   W  rmsg:H0G|Bnt smsg:DDDD k_ids:42|0|0
Device 3 worker core(x= 6,y= 7) phys(x= 8,y=10):   GW,   W,   W,   W,   W  rmsg:H0D|bnt smsg:DDDD k_ids:0|0|0
Device 3 worker core(x= 7,y= 7) phys(x= 9,y=10):   GW,   W,   W,   W,   W  rmsg:H0D|bnt smsg:DDDD k_ids:0|0|0
Device 3 ethnet core(x= 0,y= 0) phys(x= 9,y= 0): NSID,   X,   X,   X,   X  k_id:199
Device 3 ethnet core(x= 0,y= 1) phys(x= 1,y= 0): NSID,   X,   X,   X,   X  k_id:197
Device 3 ethnet core(x= 0,y= 4) phys(x= 7,y= 0):   GW,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y= 5) phys(x= 3,y= 0):   GW,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y= 6) phys(x= 6,y= 0):   GW,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y= 7) phys(x= 4,y= 0):   GW,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y= 8) phys(x= 9,y= 6):  RED,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y= 9) phys(x= 1,y= 6): NWID,   X,   X,   X,   X  k_id:41
Device 3 ethnet core(x= 0,y=10) phys(x= 8,y= 6):   GW,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y=11) phys(x= 2,y= 6):   GW,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y=12) phys(x= 7,y= 6):   GW,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y=13) phys(x= 3,y= 6):   GW,   X,   X,   X,   X  k_id:0
Device 3 ethnet core(x= 0,y=14) phys(x= 6,y= 6): NSID,   X,   X,   X,   X  k_id:200
Device 3 ethnet core(x= 0,y=15) phys(x= 4,y= 6): NSID,   X,   X,   X,   X  k_id:198
k_id[0]: blank
k_id[37]: tt_metal/impl/dispatch/kernels/cq_prefetch.cpp
k_id[38]: tt_metal/impl/dispatch/kernels/cq_dispatch.cpp
k_id[39]: tt_metal/impl/dispatch/kernels/cq_prefetch.cpp
k_id[40]: tt_metal/impl/dispatch/kernels/packet_mux.cpp
k_id[41]: tt_metal/impl/dispatch/kernels/eth_tunneler.cpp
k_id[42]: tt_metal/impl/dispatch/kernels/packet_demux.cpp
k_id[43]: tt_metal/impl/dispatch/kernels/cq_dispatch.cpp
k_id[197]: tt_eager/tt_dnn/op_library/ccl/edm/erisc_datamover.cpp
k_id[198]: tt_eager/tt_dnn/op_library/ccl/edm/erisc_datamover.cpp
k_id[199]: tt_eager/tt_dnn/op_library/ccl/edm/erisc_datamover.cpp
k_id[200]: tt_eager/tt_dnn/op_library/ccl/edm/erisc_datamover.cpp
k_id[271]: tt_eager/tt_dnn/op_library/sharded/kernels/dataflow/reader_unary_sharded.cpp
k_id[272]: tt_eager/tt_dnn/op_library/sharded/kernels/dataflow/writer_unary_sharded_blocks_interleaved_start_id.cpp
k_id[442]: tt_eager/tt_dnn/op_library/eltwise_binary/kernels/dataflow/reader_binary_interleaved_start_id.cpp
k_id[443]: tt_eager/tt_dnn/kernels/dataflow/writer_unary_interleaved_start_id.cpp
k_id[444]: tt_metal/kernels/compute/eltwise_binary.cpp

hey @tt-dma I just saw a reference to this issue in the multi chip tests script. I have some questions/comments:
(1) You are you referencing the path models/demos/falcon40b/ in the earlier comments (as in pytest models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]). We moved everything to models/demos/t3000/falcon40b. Is this just a typo or was that the test you were running? Just want to make sure there's no old local copy of that code and you're using the wrong test/model implementation?
(2) We disabled the 4 chip tests, so pytest should actually skip those in tip of main now because we've been seeing this hang on ci ~2 weeks back. But there's already a PR that removes all the 4 chip code+tests because we don't want to support it anymore for simplicity and there's no use case for 4 chips now that 8 chip decode+prefill is functional or being optimized.

hey @tt-dma I just saw a reference to this issue in the multi chip tests script. I have some questions/comments: (1) You are you referencing the path models/demos/falcon40b/ in the earlier comments (as in pytest models/demos/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]). We moved everything to models/demos/t3000/falcon40b. Is this just a typo or was that the test you were running? Just want to make sure there's no old local copy of that code and you're using the wrong test/model implementation? (2) We disabled the 4 chip tests, so pytest should actually skip those in tip of main now because we've been seeing this hang on ci ~2 weeks back. But there's already a PR that removes all the 4 chip code+tests because we don't want to support it anymore for simplicity and there's no use case for 4 chips now that 8 chip decode+prefill is functional or being optimized.

@johanna-rock-tt the 2 specific test cases below should be working now, fixed by @ubcheema. Are you seeing another issue?
pytest models/demos/t3000/falcon40b/tests/test_falcon_decoder.py::test_FalconDecoder_inference[BFLOAT8_B-SHARDED-falcon_40b-layer_0-decode_batch32-4chips-enable_program_cache]

pytest models/demos/t3000/falcon40b/tests/test_falcon_end_to_end.py::test_FalconCausalLM_end_to_end_with_program_cache[BFLOAT8_B-SHARDED-falcon_40b-layers_1-decode_batch32-4chips-enable_program_cache]

@davorchap so this issue is fixed then?
I was asking here, because all decode tests are commented in main with this issue id in a comment, so I'm a bit confused why/ what the current status is now:
https://github.com/tenstorrent/tt-metal/blob/674b5588dc0a3a65ff39d1c71cd898f055255b3a/tests/scripts/multi_chip/run_pre_post_commit_regressions_multi_device.sh#L29
But if the issue is fixed we can re-enable the tests in ci again, right?

They should be fixed, but I guess we never re-enabled since it was fixed while FD2 was merging. I will re-enable and re-test now

Also, in the commit disabling the tests some tests were removed rather than commented.
https://github.com/tenstorrent/tt-metal/commit/eeb8e0bc011514196f4291ab545273600d76cc30
Ultimately we'd like to have both 8 chip tests in there but not the 4 chip tests (they are skipped in the test files already anyway and will be removed in a PR soon).

Looks like a merge conflict, I'll fix that on my branch

PR here, waiting for test results: https://github.com/tenstorrent/tt-metal/pull/8167

4-chip version of the model runs on mmio devices. 8 chip version pulls in the remote chips as well.
Do we have other test coverage to make sure 4 chip is working?
If there are issues on 8 chip, its a good fall back to check if it works on 4 chips.
But if it does not provide any coverage benefit or is hard to maintain, we can remove 4-chip version from the test list.

We wanted to remove the 4 chip configs all together since there's no use case where we would actually run on 4 chips and not 8, especially since we have only decode working on 4 chips and not prefill - and it's extra effort to maintain and test every change also for the 4 chip version. So my tendency would be to keep it clean and easy to maintain. Let me know however if you see a clear benefit in the 4 chip version and think we should keep it anyway, or if pulling in the remote chips in addition to the pcie chips is causing issues sometimes.

the issue is fixed, both 4/8 chip variants are passing


Where should I put my custom things that don't fit your customization categories?

e.g., adding to the path

Please take a look at the custom scripts section in the README.md: https://github.com/Bash-it/bash-it#your-custom-scripts-aliases-themes-and-functions
Feel free to ask for further info here if that does not help. If this answers your question, please close this issue.

Closing for now.

I'm just piggy bagging on this issue to as a related question:
I'm not entirely sure how the custom plugins/aliases/themes work.
What I would like is to specify the custom directory somewhere outside of bash it say BASH_IT_CUSTOM=~/bi-custom/. In this custom directory I'd like to add a view alias and plugin files as well as themes (note the plural everywhere). I'd like to be able to activate/deactivate them just as normal, i.e. bash-it enable alias my_custom_as; bash-it enable alias my_OTHER_custom_as. They should also be shown when I run bash-it show aliases.
It seems to me that this should work. But I'm not sure about the directory structure within my custom dir. Should I put the aliases directly in the dir? Should I put them in a subfolder named ~/bi-custom/aliases/available? What about the custom themes, plugins and libs?
I'm asking because I tried around a bit and nothing seems to work.

Good question! At the moment, custom components (aliases, completions, plugins) are not included in the whole enable/disable lifecycle. You can put them in the custom directory, and they will be loaded with the rest of Bash-it, but there's no way to enable or disable them on demand through one of Bash-it's commands.
What I suggest you do is this:

Fork the Bash-it project to your GitHub account.
Clone your fork locally and install it so that it's used by your shell.
Add your custom components to the regular Bash-it folders, e.g. add a con-f-use.aliases.bash to the regular $BASH_IT/aliases/available folder, and then use the regular bash-it enable alias con-f-use command to enable them.

 If you feel that there is something others would benefit from as well, create a pull request on the main Bash-it repo.
The only thing that's a bit more complex this way is updating from the main Bash-it repo, but than can be scripted as well...
Let me know if this works for you. It sounds like you want to handle your custom components like official Bash-it components, and I think that the fork approach works best for this.

Okay thanks. Just wanted to make sure this isn't a bug.
I'll probably modify my fork so it searches in the custom dir as well and make a pull request. I think what I want should be the standard behaviour and it wouldn't interfere with automatically sourcing all *.bash files in $BASH_IT_CUSTOM as it is now. The two can live side by side.

Thanks! Maybe hold off with changing the search for a moment - I'm in the middle of a refactoring of how loading/enabling/searching works - see #944 for more info. I'm about ready to merge the second half of that, and it will change some of the internal code...

Will do. Thanks for the heads-up!

I'm about ready to merge the second half of that, and it will change some of the internal code...
Did you?

Sorry, haven't had time for that yet - too busy with other things. I'll try to get it merged in the next couple of days. Sorry again about the delay.


Scss config / rules

Hey there!
This ext seems to work great out of the box. I'm wondering if there's anywhere I can add some rules? I'd just like to add some spaces after nested elements. Example:
Instead of this:
.selector {
margin-top: 5px;
a {
padding 10px;
&:after { style }
}
}

I'd love to see line breaks after the nested parts:
.selector {
margin-top: 5px;

a {
padding 10px;

&:after { style }
}
}

Thanks very much for your time and efforts with this!

That didn't format things too well, so here's a quick screenshot to make sure I'm coming across clearly:
https://dl.dropboxusercontent.com/s/vn80fwk1vc5f4df/2016-10-24 at 11.19 PM.png

@saltcod I'd like some more double spacing myself.  Have you found any alternatives?

Fixed in the last release 1.7.2


ConsoleReporterFactory does not pass disabled attributes to ConsoleReporter

ConsoleReporterFactory does not pass disabled metric attributes to the constructed ConsoleReporter instance: https://github.com/dropwizard/dropwizard/blob/a5739a1c60704fb1b5c23215398d334b9fd936c6/dropwizard-metrics/src/main/java/io/dropwizard/metrics/ConsoleReporterFactory.java#L84-L91
This means that the excludesAttributes configuration (docs) is ignored for  console reporters.

For comparison, the GraphiteReporterFactory does pass disabled metric attributes: https://github.com/dropwizard/dropwizard/blob/master/dropwizard-metrics-graphite/src/main/java/io/dropwizard/metrics/graphite/GraphiteReporterFactory.java#L122


Split build.sh

Do you mind splitting build.sh , so the frontend build can be run by someone like me, without invoking publish-like functionality which isnt appropriate for me.

I don't object per se, however I'm not clear on the need.
It doesn't actually do publish stuff, it just echo's the commands out, it does do the packaging stuff, but that is harmless.
Which bit is problematic for you?
If this is about runtime when hacking on the frontend code then I would strongly encourage you to get the DATA_BROWSER_DEV=True flow working as it's way more pleasant to work with frontend auto reloading.

@jayvdb I'm still curious about your usecase and how the current file is problematic for that.

It is the packaging stuff I don't want to run unnecessarily.  It consumes my time.

It still sounds like maybe you should be using the JS dev server.
But it's no particular issue to me to split it.

This is for packaging of non-released versions (so I can test them), not for development.
Anyways, much appreciated. build_fe.sh is perfect; I can use that in my scripts and assume it will work most of the time. ;-)

you got to this a little faster than I expected, so you should probably be aware that I force updated master in between


Sync with https://github.com/tim-st/go-zim

This will also add support for Zim archives using zstd.

Maybe the tag of this version could be v0.1.2-edited (to keep some synchronization with the original repository)?

Thanks!


cdn_id group_by error when hitting HTTP GET on the described routes

When hitting the following routes this error occurs in the logs and you get an 500 Internal:
/api/1.1/cdns/capacity.json
/api/1.2/cdns/capacity.json
/api/1.1/deliveryservices/:id/capacity.json
/api/1.2/deliveryservices/:id/capacity.json
/health/:cdn_name

[2016-10-12 07:02:25,105] [ERROR] DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::Pg::st execute failed: ERROR:  column "me.cdn_id" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: ...table, type.last_updated FROM (SELECT me.profile, me.cdn_id,...
                                                             ^ [for Statement "SELECT me.profile, cdn.id, cdn.name, cdn.last_updated, cdn.dnssec_enabled, profile.id, profile.name, profile.description, profile.last_updated, type.id, type.name, type.description, type.use_in_table, type.last_updated FROM (SELECT me.profile, me.cdn_id, me.type FROM server me  JOIN cdn cdn ON cdn.id = me.cdn_id  JOIN profile profile ON profile.id = me.profile  JOIN type type ON type.id = me.type WHERE ( cdn.name = ? ) GROUP BY me.profile) me  JOIN cdn cdn ON cdn.id = me.cdn_id  JOIN profile profile ON profile.id = me.profile  JOIN type type ON type.id = me.type WHERE ( cdn.name = ? )" with ParamValues: 1='cdn1', 2='cdn1']

Fixed


User Story: Portable Deployment of Service

As an operator, I would like to develop a portable and distributed WES/TES service that can be deployed as an appliance in multiple cloud providers, so that I can provide it as ready-to-deploy product to new ELIXIR nodes (DE, CH, IT)

Introduction
Kubernetes has been chosen to as the container orchestrator because of its wide adoption and increasing popularity.
It offers functionalities to manage the entire life-cycle of the services that are deployed on top of it and provides a common layer over various cloud providers and in-house deployment.
A goal for TESK is to provide simple deployment instructions, that can be used in heterogeneous environments with minimal configuration required if any
This objective has already been achieved for what concerns the core TESK service inside a Kubernetes where we have a full administrator rule. This assumption is quite strong and we need further investigations to set a proper line between the necessary rights and possibly provide a receipt that includes them.
Up to now the most demanding part of what concerns the deployment, is the exposition of the services, this can be an easy task when Kubernetes takes advantages of external services (cloud  load balancer) or integrated services (using OpenShift functionality), differently it requires more assumptions and tuning in the case we can not take advantage of these services.
In this last scenario, when we expose the service using a public IP an option is to provide it through a Nginx ingress docker-server, which can act also as a load balancer and a proxy server. The Nginx server requires to be exposed through a static external IP and the underlying network wiring are demanded to the Kubernetes network plugin.
A Kubernetes installation (IaaS) does not define the network plugin which has to be chosen during the installation, from our limited experience the effectiveness of them is not uniform and some of them does not provide the same level of functionality of the others.
In the case of a local-machine deployment of TESK, MiniKube is the recommended method for creating a local, single-node Kubernetes cluster for development and testing. In this case exposition of the service would be simulated, providing the service through a private address of the local host, connected to the local Kubernetes subnet.
Kubernetes deployments are usually defined using YAML file (JSON is accepted as well) and they have supported only a static reference, so there is no concept of variables, therefore each deployment must have his own site-specific YAML files.
To overcome this limitation we are providing Jinja2 templates that will produce YAML files, populating the variable using a single INI file as a dictionary reference.
The expected workflow for a new TESK deployment consists of this steps:
Cloning the TESK repository
Choosing the folder relative to Kubernetes environment (OpenShift, OpenStack, GCP, MiniKube...)
Edit the INI file with the site-specific values
Produce the expected YAML files, executing a single command of the Jinja2 CLI
Deploy all the TESK pods and services, executing a single command of the Kubernetes CLI (or alternatively the OpenShift CLI).
Planned activities
Short Term

[ ] Update the templates for OpenStack
[ ] Update the templates for OpenShift
[ ] Validate the adoption of the Jinja2 templates (Done)
[ ] Remove the static code and relative documentation (in progress)
[ ] Provide a unified deployment documentation reflecting the last updates (in progress)

Automation of the Deployment

[ ] Define a validity test, for a successful deployment.
[ ] Automate the deployment of OpenShift
[ ] Collect the administrator commands used to provide a fully working TESK deployment
[ ] Formalize the previous commands (run by the OpenShift CLI) into a YAML static description

Hosted Solution*
Explore the functionalities available and the eventual differences in Kubernetes provided as PaaS (aka Hosted Solution) in:

[ ] GCP
[ ] Azure
[ ] AWS

Local-machine Solutions*

[ ] MiniKube
Deploy, test and evidences the eventual limitation of a local-machine solution. Provide a receipt for enabling the required MiniKube services, which are disabled by default.

IaaS*
Evaluate the possible scenarios for providing the instructions for deploying a Kubernetes in an IaaS environment and then standardize the deployment instruction of TESK for this environment. Using Kubernetes terminology, this is referenced as On-Premises VMs. This topic that is actually not strictly related to TESK, but more in general for Kubernetes.

[ ] Explore the use of Juju as Configuration Management
[ ] Define which is the networking model fits best to TESK in Kubernetes on-premises**

References
*Official reference explaining the possible solutions for Kubernetes:
[https://kubernetes.io/docs/setup/pick-right-solution/]
**Official reference explaining the Cluster Networking for Kubernetes
[https://kubernetes.io/docs/concepts/cluster-administration/networking/]

For TESK


[DBZ-637] Inproper handling of timestamp and time fields where time.precision.mode=connect

Change TIME_WITH_TIMEZONE and TIMESTAMP_WITH_TIMEZONE conversion wh en time.precision.mode=connect

Going to close this, because as discussed on the JIRA issue, a solution based on an SMT would be preferable. Any help with that is welcomed. In any case, thanks for your efforts, @maver1ck!


Support granularity when specifying which season to download

Feature request
Description
Hi forgive me if this is already possible but I would like to easily download a full season of a show e.g. Season 3 without having to add each episode individually. Is this possible?

This is not currently possible. I will see if I can add it in a future version.


⚠ Adacta-fintech.com has degraded performance

In 95b630a, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 200
Response time: 1684 ms

Resolved: Adacta-fintech.com performance has improved in 5d2e929 after 10 minutes.


Reorganize main process

Not perfect, but better.
Fix #104
Fix #259
Fix #423
Fix #426
Fix #428

I guess we're good to go for now


New Zoom Slider ranges (min: 10, max: 1000)

I can't accept such changes as 100% of scale are not on the middle of a slider.
Please make changes so that the slider looked so: [10%.... 100%.... 1000%].


Scenario outlines not pulling variables from examples if same variable is used more than once

Suppose you have a below usecase ->
Scenario Outline: Multiple variables <here> and <here>
   When I pass variable "123-<here>" and "<here>"
   Then I only see variable is replaced at first index only
Examples:
   | here |
   | abc  |
   | xyz  |

Then Scenario Title is resolved as Multiple variables abc and <here> (example #1) and similar is the case with steps.
It should resolve the variables at all indices in steps/scenario outline. i.e Multiple variables abc and abc (example #1)
My Research:
I checked the method which is doing this manipulation i.e replaceParameterTags  at here
So I tested the method with below code:
const rowData = {
  "here": "abc"
};

const text = "Multiple variables <here> and <here>";

const replaceParameterTags = (rowData, text) =>
  Object.keys(rowData).reduce(
    (value, key) => value.replace(`<${key}>`, rowData[key]),
    text
);

const scenarioName = replaceParameterTags(rowData, text);

console.log(scenarioName);

and it outputs:
Multiple variables abc and <here>
Hope this will help resolving this issue.

yeah, makes sense.. we should replace all instead of the first one. should be easy. @nipunsaini maybe you would like to work on this, since you got so close already?
We should start with a failing .feature file, similar to the example you've pasted

@lgandecki  Yeah, definitely, Will raise a PR soon.

Fixed by pull request from @nipunsaini


update-swagger-spec.sh is not idempotent

Running it repeatedly will produce different results.  Specifically I see
 "id": "v1beta3.Volume",
 "required": [
  "name",

"secret",

"nfs",
"hostPath",
"emptyDir",
"gcePersistentDisk",

"gitRepo",

"secret",

"nfs"

"gitRepo"

The order of lines is chaging on each run.  Go map iteration problem?
This causes noise for anyone who wants to run it, and prevents it from being a commit hook.

Idempotency is not the property you want: it is determinism.

The pedant is right.  The code is still wrong :)
On Thu, Apr 2, 2015 at 8:45 AM, Satnam Singh<EMAIL_ADDRESS>wrote:

Idempotency is not the property you want: it is determinism.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/6359#issuecomment-88952040
.

This is pretty annoying. Reordering makes it difficult to tell what has been changed.
I assume we need to make go-restful sort the swagger output in order to fix this?

Removing this from v1.0

This is now fixed


The marble steps have not dropped correctly

Enriched Version
3.0.1
Fabric API Version
0.92.2
Fabric Loader Version
0.15.x
Bug Description
When the two marble steps are put together up and down, and then use the pickaxe to dig, the square seems to be considered one rather than two, which will only drop one marble step.
Bug Reproduction Steps

Place two marble steps in one
dig
drop, but only one

Minecraft Log File
unnecessary
Minecraft Crash Report
unnecessary

In addition, using Minecraft 1.20.1

This should be an easy fix. I'll take a look sometime this week/weekend.

Give this a try
enriched-3.0.1-test.zip


FOS Splitter Plugin - Invalid Parent ID for child regions

Hi,
We are using APEX 20.1
We have Page-0 with Left hand side Template initially. That was working fine on all pages.
Now the user wants to have a collapsible left hand side. So we changed the template of P0 to Standard. Then we created a Region with FOS Splitter Plugin. Created 2 sub-regions.
Next on each pages we dragged the Left/Right regions as subregions of the P0 Splitter region.
This works all fine when we run the page.
However, I found the the parent region of the sub-regions dragged into was INVALID (even though it works OK on run time).
Also when I copy this page (as - page as copy form another app) into another app , none of the sub-regions are copied.
I have created a sample app on apex.oracle.com
ws - vpagmws
user - testuser
pwd - abcABC@123
app - VP Test APP 92756
page - 586 - Test Cards fac586
Please suggest.
Thanks
Veerendra

Any updates on this one please?


add more elements

For another UW hackweek, we added more elements to the template repo to help the participants avoid merge conflicts, specifically a 'contributor folders' folder. I suggest this structure as it seemed to really help with hackweek collaboration and sharing while preventing merge conflicts.

@valentina-s

@valentina-s Can you merge the pull-request? I don't have write access on this repo so I cannot.


Fix: Cannot run a project if it does not have any DB migration

Issue
When scaffolding a new project, the api/v1/health route shoud work, even if we have not added any DB migration yet. Currently, the endpoint return 403 ERR_CONNECTION_REFUSED because the app does not start properly (see log FATA[0000] Failed to migrate database: no migration files found).
Expected
A freshly generated project has the endpoint /api/v1/health that returns the 200 OK status code.
Steps to reproduce

Generate a new project
Do NOT add any DB migration
Run the project and query http://localhost:8080/api/v1/health

Should we just print the log instead of throwing a fatal error?
err = goose.Up(sqlDB, "database/migrations", goose.WithAllowMissing())
if err != nil {
   log.Println(err)
}


ScriptMethods should know themselves, so they can optionally chain

Summary of the new feature / enhancement
I would like to make a ScriptMethod that chains until the last step.
Unfortunately, a ScriptMethod lacks two key pieces of information that would enable this:

A ScriptMethod does not know its own name
A ScriptMethod does not know it's calling AST

Proposed technical implementation details (optional)
These two pieces of information should be embedded into variables, if possible.

I can only think of one way you could mean "chain" but I'm not sure how that information would help with that. Could you elaborate?

I can only think of one way you could mean "chain" but I'm not sure how that information would help with that. Could you elaborate?

Sure thing!
I want a method to return an updated $this if and only if the next ScriptMethod has a value.   One cannot do it without callstack peeking in each ScriptMethod and knowing the name of the method.
I recently wanted to do something like this within Posh's "stackable" functions, which are used for prompt modifications.
This is an example of a painful workaround (letting an additional $true boolean are be a signal to pass thru).

The Engine WG discussed this and decided that we're not currently interested in providing information about the method's caller. However, we do think there is value in improving InvocationInfo for the InvokeWithPipe code path. We have opened issue #20500 to track that.

@SeeminglyScience thanks for the update, I hope the improved invocation info is enough to be able to accomplish the scenario.
Close it?

Close it?

The bot will do that now that the label Resolution-Declined is applied, but you're more than welcome to do so as well. Either way works!


Wrong property name in sample

The SearchResult property of the log analytics alertContext sample really is SearchResults. It is missing the s at the end.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7e4d20cc-b693-ee2d-2694-832b455376a6
Version Independent ID: 7b929793-dba5-8f94-e44f-7dace50ee018
Content: Alert schema definitions in Azure Monitor - Azure Monitor
Content Source: articles/azure-monitor/platform/alerts-common-schema-definitions.md
Service: azure-monitor
Sub-service: alerts
GitHub Login: @ofirmanor
Microsoft Alias: robb

@Expecho Thanks for your comment! We will review and provide an update as appropriate.

@Expecho Verified and updated the document as required. The changes will go live in sometime (i.e., in less than 24 hours). Thanks.


"Request" object has no attribute "is_xhr"

It seems  "Request" object has no attribute "is_xhr" ，Getting warnings here...  How do we fix this?

Duplicate of #3493. The request.is_xhr property was deprecated since Werkzeug 0.13 and removed in Werkzeug 1.0.0. You will get this error when using Flask <= 0.12.4 and Werkzeug >=1.0.0. You can just upgrade Flask to fix this issue:
$ pip install -U flask

Or with Pipenv:
$ pipenv update flask

Duplicate of #3493. The request.is_xhr property was deprecated since Werkzeug 0.13 and removed in Werkzeug 1.0.0. You will get this error when using Flask <= 0.12.4 and Werkzeug >=1.0.0. You can just upgrade Flask to fix this issue:
$ pip install -U flask

Or with Pipenv:
$ pipenv update flask


Apply rustfmt.

r? @Fraser999
(maidsafe_highfive has picked a reviewer for you, use r? to override)


Strategy to use ~= operator

Is your feature request related to a problem? Please describe.
Currently pdm uses a <,>= syntax for the compatible version strategy. Most of the time, the version range can be written much more concisely with ~=. For example, the only difference between <5,>=4.2.1 and ~=4.2 is 4.2.1, which does not matter most of the time, being a patch release.
Describe the solution you'd like
The naming may be problematic. pdm calls the <,>= strategy “compatible”, but ~= is actually called the compatible release operator in PEP 440. So either pdm needs to invent something new for ~= (and potentially causes confusion to standard packaging), or change the name for <,>=.

A minor behavior change from <5,>=4.2.1 to ~=4.2 does little harm I think?

A minor behavior change from <5,>=4.2.1 to ~=4.2 does little harm I think?

I wouldn’t care at all personally, at least 🙂

I wouldn’t care at all personally, at least 🙂


Tap Stream and legend problem

I am guessing this is really a bokeh issue:
Clicking the legend area fires a tap with a coordinate
set to the max/min of the side the legend is on.
tap      = SingleTap(transient=True)

def react_to_tap(x,y):
    if x is not None: x=np.round(x,2)
    if y is not None: y=np.round(y,2)
    return hv.Scatter([])*hv.Scatter((x,y),label='{},{}'.format(x,y) ).options(legend_position='right', width=500)

hv.DynamicMap( react_to_tap, streams=[ tap ]).relabel('Clicking the legend area fires a Tap')

Tap events anywhere on the canvas trigger, events, we already clip the coordinate to the max coordinate of the plot. I'd be okay dropping these events altogether for the Tap stream. The clipping behavior was mostly added for the PositionXY stream where we want to know when the mouse has left the plot area and not simply drop those events.

The taps outside the plot area resulted in this type of code:
        def react_to_tap(x,y):
            if x is not None and y is not None and x < 5. and y < 5.:
                ....


Reuse existing rendered component in react-router-dom

We have an expensive to render component that we use as a route in react-router 4.
When navigating away from it and then returning to it, it is recreated and rendered. I would like to cache/hide-unhide it instead of recreating it (avoid mount/unmount and heavy html rendering ).

This is a bug tracker, not a support system. For usage questions, please use Stack Overflow or Reactiflux. Thanks!

@timdorr This is not just a  bug tracker but also a feature request system. This is a feature request. I suggest you read your own template which reads

Have a feature request?
=======================
Remove the template from below and provide thoughtful commentary and code samples on what this feature means for your product. What will it allow you to do that you can't do today? How will it make current work-arounds straightforward? What potential bugs and edge cases does it help to avoid? etc. Please keep it product-centric.

This isn't a concern of React Router, though. You need to know how to keep a copy of a component around after it disappears from the tree, and how to restore it when it comes back into the tree. Those are more generic concepts that live above the Router.
This isn't something we're going to implement here because it's better done as an external library.

react-keeper

@timdorr Can you give a simple demo? Thank you very much 💯

I get that this isn't a bug, and not even something React-Router should implement in code. But it sure is relevant to document good patterns.
This subject seems to come up often, so if you could point us in the right direction, I'd be happy to submit a PR to the documentation afterwards.

@andrioid
import warning from 'warning';
import invariant from 'invariant';
import React from 'react';
import PropTypes from 'prop-types';
import matchPath from 'react-router/matchPath';

const isEmptyChildren = children => React.Children.count(children) === 0;

/**
 * The public API for matching a single path and rendering.
 */

window.CACHE_PAGES = {};

class Route extends React.Component {
  static propTypes = {
    computedMatch: PropTypes.object, // private, from <Switch>
    path: PropTypes.string,
    exact: PropTypes.bool,
    strict: PropTypes.bool,
    sensitive: PropTypes.bool,
    component: PropTypes.func,
    render: PropTypes.func,
    children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
    location: PropTypes.object
  };

  static contextTypes = {
    router: PropTypes.shape({
      history: PropTypes.object.isRequired,
      route: PropTypes.object.isRequired,
      staticContext: PropTypes.object
    })
  };

  static childContextTypes = {
    router: PropTypes.object.isRequired
  };

  getChildContext() {
    return {
      router: {
        ...this.context.router,
        route: {
          location: this.props.location || this.context.router.route.location,
          match: this.state.match
        }
      }
    };
  }

  state = {
    match: this.computeMatch(this.props, this.context.router)
  };

  computeMatch(
    { computedMatch, location, path, strict, exact, sensitive },
    router
  ) {
    if (computedMatch) return computedMatch; // <Switch> already computed the match for us

    invariant(
      router,
      'You should not use <Route> or withRouter() outside a <Router>'
    );

    const { route } = router;
    const pathname = (location || route.location).pathname;

    return path
      ? matchPath(pathname, { path, strict, exact, sensitive })
      : route.match;
  }

  componentWillMount() {
    warning(
      !(this.props.component && this.props.render),
      'You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored'
    );

    warning(
      !(
        this.props.component &&
        this.props.children &&
        !isEmptyChildren(this.props.children)
      ),
      'You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored'
    );

    warning(
      !(
        this.props.render &&
        this.props.children &&
        !isEmptyChildren(this.props.children)
      ),
      'You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored'
    );
  }

  componentWillReceiveProps(nextProps, nextContext) {
    warning(
      !(nextProps.location && !this.props.location),
      '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'
    );

    warning(
      !(!nextProps.location && this.props.location),
      '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.'
    );

    this.setState({
      match: this.computeMatch(nextProps, nextContext.router)
    });
  }

  render() {
    const { match } = this.state;
    const { children, component, render, isCache } = this.props;
    const { history, route, staticContext } = this.context.router;
    const location = this.props.location || route.location;
    const props = { match, location, history, staticContext };

    if (component)
      if (match) {
        window.PATHNAME = location.pathname;
        if (window.CACHE_PAGES[location.pathname]) {
          return null;
        }
        window.CACHE_PAGES[location.pathname] = React.createElement(
          component,
          props
        );
        return null;
      } else {
        return null;
      }

    if (render) return match ? render(props) : null;

    if (typeof children === 'function') return children(props);

    if (children && !isEmptyChildren(children))
      return React.Children.only(children);

    return null;
  }
}

export default Route;

@jsu93 I think it just do caching of elements, but doesn't solve the mount/unmount issues. It's good enough for text content, but for pages with a lot of images, it still suffers.

@ssssssssssss
You can map window.CACHE_PAGES in another container, then change the style with display:none and display:block


[Plat-11007] null user components

Goal
Setting user fields to nil wouldn't clear out their values when serializing a report because [user toJson] would produce dictionaries with the null fields missing, and then when merged with the existing data the old data would remain (because there's no new field value to override the old).
This PR ensures that the user object's produced dictionary always contains all keys, even if they've been set to null.
Testing
Added unit tests.

Replaced with https://github.com/bugsnag/bugsnag-cocoa/pull/1599


name for servers

Description of the feature
When I use multi poem servers, I saw multi Info logs like this, can`t tell them apart.
2021-11-22T14:04:31.803030Z  INFO poem::server: initiate graceful shutdown
2021-11-22T14:04:31.803331Z  INFO poem::server: server stopped

Added in v1.0.30 😁


HHH-16322 Merge of entities having a collection with orphanRemoval true fails when bytecode enhancement is enabled

https://hibernate.atlassian.net/browse/HHH-16322

Applied to main and 6.2


Add select

I have made initial version of select. I tried to make it similar to https://material.angularjs.org/latest/demo/select
Testing it browser it worked fine, but have problem with change detection in tests.

Coverage decreased (-6.3%) to 59.375% when pulling 4c96ac48747f904e00f26a134141eacc4fe4a2dc on tb:select into d20d05df9abb087d04877459c42e88ae299214cb on mseemann:master.

Great! I'll have a look at the tests after merging.

demo site updated: http://mseemann.io/angular2-mdl-ext/select
still working on the gulp dist task to publish the components as npm packages. if i am ready with this i'll publish popover and select!

if you want to check the npm packages: https://www.npmjs.com/~angular2-mdl-ext  :)


Samples about GAT

❓ Questions & Help

I love your elegant code at

https://github.com/snap-stanford/ogb/blob/eb3e87434ef2a1c90461ec0cb65b10259a0bea1e/examples/nodeproppred/arxiv/full_batch.py#L16

, where you provided the Class of GCNConv and SAGEConv. I found that sometimes they work better than the Class at torch_geometric.nn.GCNConv.
May I know where to find more samples on other GNN models (e.g., GAT, GIN) in this way? In specific, I mean the GATConv/GINConv Class inherent torch.nn.Module instead of torch_geometric.nn.conv.MessagePassing.
If there was not more examples, may I know what's the g represents at here

https://github.com/rusty1s/pytorch_geometric/blob/9d3df0eb4842514fbaa857afb75f23d9345148f5/benchmark/runtime/dgl/gat.py#L11
Is that activation function?

Thanks a lot.

This is something I am currently working on, and will be included in PyG 2.0. Please stay tuned! :)

Thank you for answering. Looking forward to PyG 2.0~~


Edge MQTT publish and subscribe to same topic

Edge MQTT broker
Description
Is it possible to publish and subscribe to the same topic with one client?
The only possible topic for subscribing is following: v1/devices/me/attributes
If a message is sent to the topic, there is no reply also when subscribed.
What could be the problem here?

@ricktauss
hello, TB edge and server MQTT broker is not a regular broker by design.
Implementation based on netty MQTT framework with following most of the MQTT protocol design documents, but TB edge and server brokers are not providing regular publish/subscribe models.
So you can't just subscribe to one topic and send the message to the same topic from another client and expect the result to arrive in the initial subscribed client.
The possible subscribe / publish topics are available here:
https://thingsboard.io/docs/reference/mqtt-api/
Please let me know if that answers your question.

@volodymyr-babak
Is the topic fixed? In the documentation (https://thingsboard.io/docs/reference/mqtt-api/#subscribe-to-attribute-updates-from-the-server) there is explained that you can subscribe to the following topic: "v1/devices/me/attributes". I thought the topic is just a sample topic for documentation.
What i generally want to do is to measure the round trip time from device over tb-edge to tb-server. So i wanted to publish and subscribe with one client to any topic to mirror the message back. Maybe it is also better to make rule which mirros or publishes the message back to the client.

@ricktauss
'v1/devices/me/attributes' is a hardcoded topic name. You cannot subscribe to any topic, except the one, that is hardcoded.
Here is the list of these topics:
https://github.com/thingsboard/thingsboard/blob/master/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java#L606
Here is the steps that you should do in  your test case:

Subscribe to topic 'v1/devices/me/attributes'  from the device.
Publish any timeseries or attribute message from the device.
Send this message to the cloud. Here is a sample how to configure edge root rule chain to publish message to the cloud: https://thingsboard.io/docs/edge/use-cases/data-filtering-traffic-reduce/#configure-edge-rule-engine-to-push-filtered-data-to-the-cloud
On  the cloud modify root rule chain to send back some attributes update message to the edge. You should use 'push to edge' node for this

Once the attribute update message will arrive to the edge you should see this message on the device.

@volodymyr-babak
Ok if is hardcoded it is also fine. Thank you for the instruction!


Added react-command-print

Q
A

Bug fix?
no

New feature?
no

New sample?
yes

What's in this Pull Request?

Added new command set to print list items

Really cool sample @AhmadiRamin. Great contribution for the benefit of others. Would you be interested in doing a live demo on this in any of our community calls, so that we could get the sample recorded also in video format? Let me know if that's something you'd be willing to do. Thx.

Hi @VesaJuvonen, Thank you, I would be glad to doing a live demo and share it with others :)

Really disappointed!!


remove hud :preloads

In shadow-cljs.edn the shadow.cljs.devtools.client.hud can be removed. It is enabled by default.

Thanks for feedback, just corrected it.


Fedora/ssl/ra  /1

Fixes #22268
Internal review URL
@javiercn  is this what you had in mind?

@javiercn is this what you had in mind?


Error on clicking Run and Debug on the current Python file

When in a Python file and choosing the option Run and Debug, then Python file, I see the view to the left change UI as it appears that the debugger is selected and then removed. I am not sure what is happening. I suppose if there was an issue with the given debugger I would have expected a notification.
When I open the developer tools, I see the following error:
ERR Invalid debug adapter: Error: Invalid debug adapter
    at h.p (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1876:95)
    at h.$acceptDAExit (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1876:35)
    at g.S (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1608:13967)
    at g.Q (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1608:13733)
    at g.M (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1608:12826)
    at g.L (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1608:12044)
    at l.value (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1608:10692)
    at o.y (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:87:1902)
    at o.fire (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:87:2119)
    at r.fire (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:624:14439)
    at j.onmessage (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1631:7759)

https://github.com/microsoft/vscode-python-debugger/assets/61460952/75b3be05-dd94-41e3-abfd-39fcd06a6a0b

thanks @aiday-mar, that is the normal behavior, when you click run and debug, it will debug your code once and then close debug, since you are not calling the function, the debug does not have any code to run, for that closes immediately.
Can you try a function that does something and set breakpoints?


Please define outside collaborators in code

Hi there
We have a process to manage github collaborators in code: https://github.com/ministryofjustice/github-collaborators
Please follow the procedure described there to grant @donnyhyon access to this repository.
If you have any questions, please post in #ask-operations-engineering on Slack.
If the outside collaborator is not needed, close this issue, they have already been removed from this repository.

Automation error: adding user back in via email invite, sorry for the inconvenience


Additional error in logs  Undefined index: is_checkout   + Notice: unserialize(): Error at offset 0 of 8 bytes  in

Error 1 in log
2015-09-08T20:30:34+00:00 ERR (3): 08-09-2015 22:30:34 Notice: Undefined index: is_checkout  in /home/user/domains/domain.com/public_html/.modman/magento/app/code/community/Adyen/Payment/Helper/Data.php on line 40
Error 2 in log
2015-09-08T20:36:53+00:00 ERR (3): 08-09-2015 22:36:53 Notice: unserialize(): Error at offset 0 of 8 bytes  in /home/user/domains/domain.com/public_html/.modman/magento/app/code/community/Adyen/Payment/Block/Form/Abstract.php on line 75

Hi Sean,
Both are notice so not a big issue. How are you logging these errors and what log file are they located ?
If I look into the code the first error should never occur because you can see here:
https://github.com/Adyen/magento/blob/develop-2.3.2/app/code/community/Adyen/Payment/Helper/Data.php#L36
that the cctypes are retrieved in the config all cctypes has the field is_checkout located see:
https://github.com/Adyen/magento/blob/develop-2.3.2/app/code/community/Adyen/Payment/etc/config.xml#L444-L517
The second error is fine, this is in a try catch block so this will go as expected. see:
https://github.com/Adyen/magento/blob/master/app/code/community/Adyen/Payment/Block/Form/Abstract.php#L74-L78
Regards,
Rik
Adyen

The first error occured for me too when I updated the extension from v2.2.2 to v<IP_ADDRESS> and loaded the payment method page in the backend for the first time

Hi simonrl,
Really strange because you can see that it is there and I don't have this at all.
Regards,
Rik
Adyen

Had almost the same issue as you mentioned as point 1.
Refreshing the config cache in magento (System -> Cache -> Configuration Cache) did the job for me.


Disable batarang in production?

Is there a clever way to disable Batarang so various folk can't inspect my application when it's live on the real internet? I realize it's security through obscurity, but just curious.
Edit: I withdrew thinking this was a good idea. It's not.

+1, Should I be worried that any dev could inspect my controller's scope in a production environment?

@TheCrow1213, any dev can inspect your controller's scope in a production environment - with or without Batarang; with or without Angular. It's not something that you should be worried though.
(If your app's secutiry depends on obscurity, then you are doing it wrong - it's clinet-side code; the user can do anything with it.)


Howto disable fuzzyLink in linkify

The linkify-it package has the ability to deactivate such things like the fuzzyLink but use the rest. Is it possible to setup markdown.it with fuzzyLink disabled?

https://github.com/markdown-it/markdown-it/blob/8.3.1/lib/index.js#L290
const md = require('markdown-it');
md.linkify.set(...)


feat: adding members to organisation

What does this PR do?
This PR creates an endpoint that allows organisation owners to add new members
How to Test

Create an organisation using POST /api/v1/organisations
Create a new user and get the user ID
Add user to the organisation using POST /api/v1/organisations/:org_id/users

Edge Cases

Test whether the organisation exists
Test whether the current user is the owner of the organisation
Test whether the specified user exists
Test whether the specified user is already a member of the organisation

Checklist

[x] creating the /api/v1/organisations/:org_id/users
[x] validating the org_id parameter
[x] checking whether the current user is the owner of the organisation
[x] validating the user_id parameter
[x] checking whether the specified user is already a member
[x] writing tests to validate parameters and to test edge cases

Responses
Successful Response
{
        status: 'Success',
        message: 'User added successfully',
        status_code: 200,
}

Error Response when the organisation does not exist
{
        status: 'error',
        message: 'Organisation not found',
        status_code: 404,
}

Error Response when the current user is not the owner of the organisation
{
         status: 'Forbidden',
          message: 'Only admins can add users',
          status_code: 403,
}

Error Response when the user does not exist
{
       status: 'error',
        message: 'User not found',
        status_code: 404,
}

Error Response when the user is already a member of the organisation
{
          status: 'error',
          message: 'User already added to organization.',
          status_code: 409,
}

Associated Issue
Issue #274

Please fix your workflow, pull the latest changes to the repo run your install and push back


update website

code example should be correct
all links should work and point at the correct git (some still pointing at the old github explorer)

links are working now.

Code is updated now

move to loop function
add favicon (bright and dark mode)

Updated code example and favicon


MINOR: replace late with out-of-order in JavaDocs and docs

More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Call for review @guozhangwang @bbejeck @vvcephei @ableegoldman @cadonna @abbccdda

Updated this (plus a minor change from Lateness to Delay).

Thanks! Good catch @vvcephei -- I added you suggestions and merge to trunk.


fix: MoneySymbol for BLR currency

Description
removing position: absolute from MoneySymbol
Linked Issues/Tasks
closes #1154
Type of change
Bug fix
Tests
No test
Screenshot / Video
Before:

After:

Not sure why postion absolute was used in the first place, maybe I'm missing something? @pwltr

Probably because of spacing issues on Android? I don't remember, have you checked?

Will check Android, thx

Android works fine


weird .resume() behaviors : executed regargless of context

Platform: All
Node Version: no matter
MagicMirror Version: at least 2.10 over
Description: .resume()(and .suspend() also be the same case.) is executed whenever .show() is called regardless of context. It might not be a bug but useless in real usage.

executable even when the module is already revealed.
executable with wrong lockString, so the module itself should not be revealed really, but .resume() is called.
executable under multiple locked, so the module itself should not be revealed really, but .resume() is called.

Inside of .resume(), I can't find any way to measure this calling is proper on not. .lockStrings and .hidden would be changed after this .resume() calling.
Description of dev guide says.
When a module is requested to be shown (using the module.show() method),
the resume() method will be called.
By subclassing this method you can perform tasks restarting the update timers.

But by subclassing, I cannot perform tasks restarting properly. Because whenever any module calls .show(), .hide(),  .resume() and .suspend() would be called without context, so my task would become a mess.
Is it the right behavior? If so, this .resume() looks useless except for counting how many times .show() is called.
Or is there a way to determine a proper calling inside of .resume()?
Steps to Reproduce: List the step by step process to reproduce the issue.
I tested with these test modules.
module:test1
Module.register("test1", {
  start: function(){
    this.working = true
  },

  suspend: function () {
    console.log("@stop", this.lockStrings, this.hidden)
    this.working = false
    this.stopMyTask()
  },

  resume: function() {
    console.log("@resume", this.lockStrings, this.hidden)
    this.working = true
    this.resumeMyTask()
  },

  notificationReceived: function() {},
  stopMyTask: function() {},
  resumeMyTask: function() {},
})

module:test2
Module.register("test2", {
  notificationReceived: function(noti, payload, sender) {
    if (noti == "DOM_OBJECTS_CREATED") {
      this.test()
    }
  },

  test: function() {
    const asleep = async (ms) => {
      return new Promise(resolve => setTimeout(resolve, ms))
    }

    var target = null

    MM.getModules().enumerate((m)=>{
      if (m.name == "test1") target = m
    })

    const scenario = async () => {
      await asleep(1000)
      console.log("1. Try to show when target is revealed already")
      target.show()
      await asleep(1000)
      console.log("2. Try to hide with lockString 'abcd'")
      target.hide(0, {lockString:'abcd'})
      await asleep(1000)
      console.log("3. Try to show with wrong lockString '1234'")
      target.show(0, {lockString:'1234'})
      await asleep(1000)
      console.log("4. Try to show with right lockString 'abcd'")
      target.show(0, {lockString:'abcd'})
      await asleep(1000)
      console.log("5. Try to hide twice (lockString 'a', 'b')")
      target.hide(0, {lockString:'a'})
      await asleep(500)
      target.hide(0, {lockString:'b'})
      await asleep(1000)
      console.log("6. Try to unlock once. module will not be shown.")
      target.show(0, {lockString:'b'})
      await asleep(1000)
      console.log("7. Try to unlock once more. now module will be shown.")
      target.show(0, {lockString:'a'})
    }

    scenario()

  }
})

Expected Results:
I expect .resume() would be called on scenario no. 4 and 7. (hmmm, no.1 also be acceptable at least)
Actual Results:

really this is a bug in module.js, it calls resume, before checking if it should
	show: function (speed, callback, options) {
		if (typeof callback === "object") {
			options = callback;
			callback = function () { };
		}

		callback = callback || function () { };
		options = options || {};

		this.resume();   // < ---  should not be here
		MM.showModule(this, speed, callback, options);
	}

we do some test,
it's not the real place for this.resume()
It should be in the before the callback
I make some patch and test I better like this ;)
and now it's works !


Configurable database

IMPORTANT. Do not merge yet. I'll be testing this in the real world today
Now the database connection is handled with the db property directly and using URL database connections. If no db prop is defined, the value sqlite:///diffengine.db is used in order to maintain compatibility.
With this method, you can use MySQL, PostgreSQL or any other engine supported by peewee.
More info about database url connections here
Non related
I've create a suite for the feed tests and I've independizate them as well for easier testing

Closing because the logging is broken. I'm going to re-do this entirely now I made it work so I don't loose logging capabilities


Track frames.

In for a penny, in for a pound. It wouldn't cost much more at all to track the frames, return the to the user and restore them when we callback, so that the user could use the frames to instrument code.

No finding a use for this. Profiling could be implemented in Pointcut.

Some old ideas here. No support for instrumentation. Cadence ended up being radically simple.


Update MapTiler maps in examples

Describe the bug
Some examples use maps that are outdated or old versions.
To Reproduce
Steps to reproduce the behavior:
List of examples:

https://openlayers.org/en/latest/examples/declutter-group.html
https://openlayers.org/en/latest/examples/layer-zoom-limits.html
https://openlayers.org/en/latest/examples/mapbox-layer.html
https://openlayers.org/en/latest/examples/offscreen-canvas.html
https://openlayers.org/en/latest/examples/topojson.html
https://openlayers.org/en/latest/examples/xyz-retina.html
https://openlayers.org/en/latest/examples/mapbox-style.html

Expected behavior
Update to a new version or change to an updated style

Thanks @bolollo. Are you able to provide a pull request with updates to these examples?

Yes, @ahocevar I'll prepare a PR with the updates. Thanks


Eliminate unnecessary dependencies

Do we really need AstroPy and Pyfits?  Can these dependencies be eliminated?  Maybe not.  If not, then we should make it open Fits files too.

Removed pyfits.. using astropy only

@bvnayak any idea whether PyFITS was really needed?  It's been removed for now at least.

No idea for PyFITS. I think its okay to remove pyfits for now. I will check it during my GUI development stage and will add it only if its been used somewhere.


Back-up Prismic data every once in a while and store it

We got very lucky after we realised that Prismic migration was causing image crops to be list forever, in that we still had snapshots from before the migration when they implemented a fix. We could then use those snapshots to fix our problem across all documents.
We can load these locally, but it would be great to have them stored somewhere, let's say we get a snapshot every two weeks and keep four of them at a time (so two months worth of snapshots, the oldest getting deleted automatically).
No idea how and where, but this ticket would serve to think about it and get it done.

Thought about this a bit more;

Will probably need a new bucket for this (wellcomecollection-prismic-snapshots)
Will want to set the bucket to automatically delete files older than X weeks (how long do we think?)
Add the upload of the new snapshot to lintPrismicData.ts

This will mean we need to tweak permissions to the prismic-linting GitHub workflow so it also allows write to the new bucket we've created.

Will put this back in backlog for now.


Superfluid randomized test

Closes: #XXX
Description

For contributor use:

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer

Lets close this, and add a backlog item for making simulator tests for superfluid


PowerToys Run repported errors when starting

Microsoft PowerToys version
<IP_ADDRESS>
Running as admin

[X] Yes

Area(s) with issue?
PowerToys Run
Steps to reproduce
Version: <IP_ADDRESS>
OS Version: Microsoft Windows NT 10.0.22000.0
IntPtr Length: 8
x64: True
Date: 2022/4/21 15:32:34
Exception:
System.BadImageFormatException: Could not load file or assembly 'System.Security.Claims, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Format of the executable (.exe) or library (.dll) is invalid.
File name: 'System.Security.Claims, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at PowerLauncher.Helper.EnvironmentHelper.IsRunningAsSystem()
at PowerLauncher.Helper.EnvironmentHelper.GetMergedMachineAndUserVariables(Dictionary`2 environment)
at PowerLauncher.Helper.EnvironmentHelper.<>c__DisplayClass2_0.b__0()
at Wox.Infrastructure.Stopwatch.Normal(String message, Action action)
at PowerLauncher.Helper.EnvironmentHelper.GetProtectedEnvironmentVariables()
at PowerLauncher.MainWindow.OnSourceInitialized(Object sender, EventArgs e)
at System.Windows.Window.OnSourceInitialized(EventArgs e)
at PowerLauncher.MainWindow.OnSourceInitialized(EventArgs e)
at System.Windows.Window.CreateSourceWindow(Boolean duringShow)
at System.Windows.Window.CreateSourceWindowDuringShow()
at System.Windows.Window.SafeCreateWindowDuringShow()
at System.Windows.Window.ShowHelper(Object booleanBox)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
✔ Expected Behavior
No response
❌ Actual Behavior
No response
Other Software
No response

/reportbug

I have a similar situation on the latest version of PT.
I am attaching my log.
PowerToysReport_2022-04-22-11-44-16.zip

PowerToysReport_2022-04-24-16-01-30.zip

Hi there!We need a bit more information to really debug this issue. Can you add a "Report Bug" zip file here?  Then drag the zipfile from your desktop onto the GitHub comment box in this issue. Thanks!


Removed view file & product features for Arbitration Profiles

PR https://github.com/ManageIQ/manageiq-ui-classic/pull/426 removes Arbitration Profiles  from classic UI
https://www.pivotaltracker.com/story/show/137999337
@dclarizio @Fryguy Please see https://github.com/ManageIQ/manageiq-ui-classic/pull/426 that removes Arbitration Profiles from classic UI.

cc @jntullo

@abellotti @Fryguy i removed it from api.yml to fix test failures. @jntullo has a task to remove Arbitration Profiles from API

@h-kataria would it be possible for now to keep those identifiers in the miq_product_features.yml but simply hide them ?  at least until we get a better solution for API/UI roles.

@abellotti I have a story to remove it from the API completely, so we will have to version bump
@chriskacerguis can provide more insight into why

I need to understand the reasoning behind removing it from API.
My argument here is that we should be able to remove UI features without touching the API.  The API is a representation of the model and has its own lifecycle. Also, the ArbitrationProfile is still in the model so it is not an issue to keep the API.
If the issue is the shared product feature roles, let's address that separately.

Arbitration Profiles were for the cloud brokering feature, however the BU decided it didn't want that anymore. So this is not longer needed, and I don't foresee it ever being needed so it should be removed. That said, I should have been clearer in the ask so as to also remove the model as well.

@h-kataria travis failures on arbitration profile specs . . . probably need to remove them as well?


How do i use it?

I have no idea how i use it! Pls add a guide!

You have to go to "releases" and download one of the jars.
Then you simply run tha jar file. I'll just assume you already got java since you have Minecraft (i hope)

I added a guide now.


Auxiliary input type 2 support

Hi, right now there is support for the so called 'function' part of AUX-N. These would be used by the ECU controlling the implement behind the tractor. However, these functions are driven by the buttons/switches inside the tractor which are called the 'input' part of AUX-N. To support the input part from within the stack, I think we have to implement the following:

[ ] VT Status (Learn Mode)
[ ] Auxiliary Input Status Type 2 Enable command (VT -> ECU)
[ ] Auxiliary Input Status Type 2 Enable response (ECU -> VT)
[ ] Auxiliary Input Status message:
Iff Learn Mode is active: ECU -> VT, otherwise ECU -> Broadcast
[ ] Auxiliary Input Maintenance message (ECU -> Broadcast)

When this is implemented we can possibly do unit/integration tests with both of them talking to each other?

Working on this in branch feature/aux-n-input. You may as well assign me this issue @ad3154?


Review proposal for Google Season of Docs.

Purpose

Review proposal for Google Season of Docs.

Documentation

Did minor linguistic changes to the proposal for Google Season of Docs.

Security checks

Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? esY
Ran FindSecurityBugs plugin and verified report? Yes
Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? Yes

Codecov Report

Merging #1192 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1192      +/-   ##
============================================
+ Coverage     61.36%   61.37%   +<.01%
  Complexity       35       35
============================================
  Files           617      617
  Lines         24714    24714
  Branches       3841     3841
============================================
+ Hits          15165    15167       +2
+ Misses         8265     8264       -1
+ Partials       1284     1283       -1

Impacted Files
Coverage Δ
Complexity Δ

...ut/stream/state/AbsentStreamPreStateProcessor.java
86.61% <0%> (+1.4%)
0% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Does LambdaLayer need BatchNorm and activation after it?

Hello,
I'm trying to reproduce of this.
I'm build the LambdaResnet,a little question is BatchNorm and activation are needed after this(LambdaLayer)?
Thanks.

@PistonY no I don't believe so, but feel free to correct me if I'm wrong

Hi @lucidrains, thanks for reply.
I tested them all, I think you're right. When apply bn+relu the val accuracy doesn't grow.
This is my final implement.
Now I'm training LambdaResnet50,it's looking good:
I use the standard training step in my project same with Resnet50 except batch_size set to 64.
Epoch 28 result: Train Acc:0.44 Loss:2.54  Val Acc:0.48 Loss:3.1748e+08
Some observations are:

parameters and GFLOPs are small but training speed and gpu memory cost are still high.
Mix-Precision(FP16) training by torch.cuda.amp would make train loss nan, that's make me could only train with 64 batch_size.
Val loss is strange.
Convergence is much slower than Resnet50.

@PistonY Awesome, thanks for sharing! Let's keep this issue open so others can build upon it

@lucidrains Unfortunately, I only got 76.1 best top1 on val set(79.2 on train set).
I'd better wait author release their code.

@PistonY Good to know Devin, thanks for sharing!

Hi, @lucidrains
I also build lambdaresnet50 using lambdalayer. And I encountered a situation that my loss is like PistonY's. the order is large.
And I found that the results after lambdalayer were getting larger and larger and became nan.
here is my model code snippet for forward (just modified the torchvision resnet  and replace the conv2 in Bottleneck class to lambdalayer)

the result

Could you give me some advices about this?

@PistonY no I don't believe so, but feel free to correct me if I'm wrong

If I understand your implementation correctly the positional Lambda interaction is purely linear, which means it should be followed by an activation and batchnorm? This is what I tried at least and its working normally.


Be able to change the media player source.

Be able to change the media player source.

Once we have these, we can do full show programming in Companion.  Thanks!

This is available in latest 2.0 builds


Fix: TypeCheck for $slots

Typecheck on to the default slot array to avoid common TypeErrors when the default slot is not a string

There are TypeErrors during render due to the default slot not being a string, this should fix them.

Thanks @yyuri!


No back button for going from within a box to the list of boxes

Clicking the Porybox icon in the top left corner works, but we probably want a dedicated "back" button.

Where should the back button go if you're viewing someone else's box?


[BUG] logs from Kubernetes driver are not visible in agent logs

Describe the bug
Logs from the Kubernetes driver are not visible in agent logs. This might also be the case for the Docker driver.
Expected behavior
Logs from Kubernetes (and Docker) driver(s) are visible in agent logs.

Fixed in nuvlaedge/nuvlaedge@31627c2fe55c4836d27ea0dd73dca96c0f67df7b


Make some AutoData constructor overloads protected

Like originally discussed in #458, some constructor overloads on the [AutoData] attributes are only meaningful if you derive from the attribute. This is the case for the constructor overloads that take an IFixture instance as argument:
public AutoDataAttribute(IFixture fixture)

Since you can't create an instance of IFixture when adorning a type or member with an attribute, this constructor overload is (close to) useless.
While it's fairly harmless that these constructor overloads are public, it may cause confusion with users. Making these constructor overloads protected would clearly signal that these overloads are only intended for use when deriving from the attribute.
This is a breaking change, so should only be done in AutoFixture 4. It can, however, be completed already today, by committing only to the v4 branch.
This change should be made for both AutoFixture.Xunit, AutoFixture.Xunit2, and AutoFixture.NUnit2.

Done in #534


Problems with semseg

Excuse me,I have printed the data_batchlist and the label_batchlist and they are not empty,but it still outputs the error: ValueError: need at least one array to concatenate.
Another error I met is as follow:
Traceback (most recent call last):
File "prepare_data/collect_indoor3d_data.py", line 28, in
indoor3d_util.collect_point_label(anno_path, os.path.join(output_folder, out_filename), 'txt')
File "D:\dgcnn.pytorch-V2\prepare_data\indoor3d_util.py", line 65, in collect_point_label
fout = open(out_filename, 'w')
FileNotFoundError: [Errno 2] No such file or directory: 'D:\dgcnn.pytorchV2\data/stanford_indoor3d\Stanford3dDataset_v1.2_Aligned_Version\Area_1_conferenceRoom_1.txt'

Thanks a lot! I used '/ /' to replace all the'', and finally generated .npy in the folder. These files are not in the correct directory, I need to move them manually. The previous error was due to the gen_indoor3d_h5.py not running correctly.
What's more, pred = seg_pred.max(dim=2)[1](in main_semseg.py, line 111) leads to the following error：
IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 2)
I have noticed in the main_cls.py, the parameter is dim=1. Could you please explain the difference?

By the way, after the terminal outputs 'Let's use 1 GPUs! Use SGD', there is no new output for about two hours. Is this a normal phenomenon?

Please use the batch size --batch_size larger than 1.

Could you give me some information about the training time on the task of semseg with 1 GPUs and batch size is 32, for the full dataset?

Because I use 4 GPUs, I can't provide the training time for 1 GPU.

Could you tell me your training time for reference?Thanks in advance

I remember the time is less than one day.


[0.11-nightly] Continuous queries not being executed at all

Hi everyone,
I have been observing this for a while (cf. https://github.com/influxdata/influxdb/issues/5415#issuecomment-183201454). In the latest nightlies, I am completely unable to get any continuous query to execute.
This is an example:
CREATE CONTINUOUS QUERY cq_xxx_rows_per_minute_total ON xxx_prod BEGIN SELECT sum(num_responses) INTO cq_xxx_rows_per_minute_total FROM xxx_requests GROUP BY time(1m) END

The query is created, it's showing up in SHOW CONTINUOUS QUERIES, but that's it. The log does not hold any indication whatsoever of the "continuous_querier" performing any work.
My setup:

Nightly build f18d7e759625b829a8ad82e1b7631e5e9412b7d0
CentOS 6
System time zone CET
Sending points via UDP without timestamps

Everything else is working well, measurements are being written and can be queried. I already tried nuking the entire data and meta folders and starting with a fresh config, but this did not improve the situation.
Please let me he know what I can do to help in tracking this down. Some more info from when at least some continuous queries were working can be found in the comment I linked to above.
Thanks!

I ran into this as well on a one-node cluster. Debugging locally, I found that services.continuous_querier.Service.backgroundLoop() was failing to acquire a lease on "continuous_querier" with the error "Get http://localhost:8091/lease?name=continuous_querier&nodeid=0: stopped after 10 redirects". When I added logging to services.meta.serveLease() right before "if leader != h.s.httpAddr {", leader was "localhost:8091" while h.s.httpAddr was ":8091". I modified my config.toml so that meta/http-bind-address was "<IP_ADDRESS>:8091" rather than ":8091", these two values became equal, and continuous queries started working again for me. YMMV.

I can confirm that @whiten's workaround resolves the issue for me as well. :100: Thanks!!
Keeping the issue open so that the team knows that the default config may not work correctly for single-node setups.

This is the same issue (8091 without a host) that was affecting windows version to start. I pushed a fix #6056 for windows part, but have not been able to test CQ's yet.

Fixed via #6147


maintenance: update/cleanup dblite module

A bit of restructuring to quiet several checker complaints.
The name of the internal class does change, so it more properly looks private. This should be opaque - you "get into" this by using the module-level open function, you don't instantiate the class from outside. Only the self-test code (which is not used at SCons runtime, that all happens in _exercise, if you run it as a script - in other words, called only if __name__ == "__main__") reaches inside.  As a side question - the self-test code in this module is a bit strange, shouldn't it move to a unit test?
Contributor Checklist:

[X] I have created a new test or updated the unit tests to cover the new/changed functionality.
[X] I have updated CHANGES.txt (and read the README.rst)
[ ] I have updated the appropriate documentation

If I run dblite.py I get the following, is that expected?
% PYTHONPATH=. python SCons/dblite.py
Warning: Discarding corrupt database: tmp.dblite
Completed _exercise()

Hmm. I see the same if I run in current master..

yes it's a negative test. could be a bit more descriptive.


Write Readme

Add description and documentation to the readme file.

Add your name to as authors. Add IntRoLab @ UdeS as sponsor.

Add your name to as authors. Add IntRoLab @ UdeS as sponsor.


⚠ Bofrost.de has degraded performance

In 19b928f, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1231 ms

Resolved: Bofrost.de performance has improved in 02ff092 after 54 minutes.


Prepare for removal of dependency on numpy.matrix class

This PR prepares for removal the dependency of the control package on the numpy.matrix class, which is planned for deprecation at some point in the future.  To handle this, a number of changes have been made:

A new StateSpaceMatrix class, derived from numpy.ndarray, was created that is used to store the A, B, C, D matrices for a StateSpace system.  This class maintains elements as a 2D matrix, so B[:,1] returns a column matrix (shape = (n, 1)).  As an ndarray, this expression would normally return a 1D array.  The StateSpaceMatrix class also overrides the * and ^ operators to give matrix multiplication and matrix powers (same as numpy.matlab does).  This gives better compatibility with (user) code that was using those constructs to operate directly on matrices associated with a system.  A new unit test file for the class is also included.  There is also a function ssmatrix() that can be used to create a StateSpaceMatrix object (similar to the use of numpy.array to create an numpy.ndarray object).

Functions that used to return numpy.matrix objects now return a user-configurable type, set using the use_numpy_matrix or set_ss_matrix_type functions.  By default the return type is currently numpy.matrix (for backward compatibility), but calling use_numpy_matrix(False) changes the return type to StateSpaceMatrix.  Using set_ss_matrix_type, it is possible to use other subclasses derived from numpy.ndarray (including ndarray itself).  A UserWarning is issued whenever numpy.matrix is set or used  as the output type.

The code in the package as been updated to remove unneeded dependencies on the numpy.matrix class.  This mainly involved changing numpy.matrix to numpy.array, but in some cases some additional changes were needed because of the differences between matrices and numpy.  With the exception of extracting elements of submatrices, the main package code does not explicitly use the functionality of the StateSpaceMatrix class, so the main use of this class is to provide some backward compatibility for user code that users * and ^ operators (which is fairly common in my own code).

All unit test code (in control/tests) has been scrubbed of unnecessary dependence on the numpy.matrix class (except for testing that warning messages are generated and a few other  checks for backward compatibility).

I did some PEP8 cleaning on statesp.py since there were lots of changes in this file already.

The changes were tested with the old unit test files, the new unit test files, and all examples and everything continues to work across all of those variants.
Net impact of this PR is that all numpy.matrix deprecation warnings can  be removed by calling use_numpy_matrix(False), addressing issue #233.  This behavior can be made the default in a future release or when numpy.matrix goes away.
There are two situations in which the numpy.matrix deprecation warning can still appear:

For backward compatibility, I set things up so that if you pass the StateSpaceMatrix constructor a string then it will call numpy.matrix.  This allows all old examples to work without change (but does generate a warning message).

It's possible that if a user creates a numpy.matrix object to one of the python-control functions that it could end up generating a copy and that could trigger a warning message.  I figure that is the user's fault -:).

(Note: this description was updated on 8 Jun  2019 to reflect the changes made in response to  comments and responses below.)

Coverage increased (+0.2%) to 78.492% when pulling 08f1c51915ded86ba1ed1c3b97f2e2b63f4a9bf9 on murrayrm:np.matrix into 1254ccb1e50e5b553a886201a6977da0176d9d44 on python-control:master.

One overall comment: If control functions, methods, and attributes now return numpy arrays instead of numpy matrices, this change could break lots of code in the wild. If a user gets these matrix outputs and then operates on them with operations that assume a matrix type (e.g. overloaded *), then their code will now break or return incorrect results. It would probably be best to deprecate this in the control package so that users see warnings that output types will change in the next release. A 6 month deprecation time might be the minimum for this to register for average users.

@moorepants Good point.  Most of these changes are internal and so shouldn't affect any user outputs.  But I'll go through and check to see whether the output of any function actually changed pre/post PR.  The only think that might have changed are some of the functions that return matrices (eg, Gramians).
Note also that the StateSpaceMatrix class does define the "standard" overloaded operators (*,^, [,]) so user code operating on state space matrices should function normally.  But I completely agree this is something we want to be careful about.

I checked through the code.  Most functions that return matrices were already returning ndarrays (typically via a call to scipy.linalg.*).  The one set that I found that could have compatibility problems is:

ctrb and obsv used to return matrix objects and now return ndarray objects.

Thoughts on the best approach to handling this?  We could:

Keep the return type as matrix for now, with a deprecation warning.  Change to ndarray in a future release.

Return a StateSpaceMatrix object, which would be compatible for most (all?) operations and allow matrix-like manipulation of the observability or controllability gramians.

Return an ndarray object and let people rewrite their code as they discover the change.

We could also allow a subtype keyword for the function  and return an ndarray of the listed subtype (with a default to either matrix, StateSpaceMatrix, or ndarray, depending on how we resolve the issue).

Updated the code so that all functions that used to return an ndarray of subtype numpy.matrix return that type by default, with a user warning that this will be deprecated in the future.  This can be overridden using the return_type keyword.
Once we are OK with the code changing (perhaps in the next major or minor release), we can change the code to return numpy.ndarray by default (user will still be able to override using return_type keyword).

Merged changes from current version of master (including implementing updated ctrb and obsv computations in PR #300).
@billtubbs FYI.  Perhaps worth waiting until this PR is merged before making any more changes to ctrb and obsv.  I took your recent update and applied that same change here (but without using the matrix class).

StateSpaceMatrix should probably have an __imul__ method.
Using __new__ here seems unusual to me; is it obvious why it's necessary?
Putting return_type=np.matrix arguably makes a long-term commitment to this interface (i.e., the "return_type" argument will be expected in the future); an alternative might be a config option for return types of the relevant functions.  It also suggests more generality than is on offer; that is, a naive user might expect return_type=StateSpaceMatrix to work (it might, though I assume it's not what's intended)  Perhaps a flag instead, "return_npmatrix=True"?
The code for turning Matlab-style matrix strings into nd.arrays is in numpy.matrixlib.defmatrix._convert_from_string -- it's not all that long or complicated, one could copy it if necessary.
Less importantly, if we didn't have to support Python 2.7 this refactoring could have used @ to be a bit tidier.  Pity there's no tidy "matrix-power" operator.

Thanks for the comments @roryyorke.  Responses (no actions yet):

The code for __new__ is based on the numpy.matrix.__new__ function.  I'm pretty sure we need to use __new__ instead of __init__ because we are creating the object  (via a call to np.ndarray.__new__) with the desired storage type, shape, etc.  If we just call __init__ then that information will have already been created by numpy.ndarray (since __init__ gets called after __new__).

I'm pretty sure that return_type=StateSpaceMatrix will actually work.  You can also use return_type=numpy.ndarray, if you wanted to make sure you got a NumPy array and not a StateSpace object.  But I agree that we may want the simpler behavior of just turning off the matrix class.  Need to think on that one.

I hadn't thought about what other operators to implement.  In addition to __imul__ there are things like __iadd__ and __isub__ as well.  Implementing all of them is tedious, but not implementing them means that you get the default numpy.ndarray behavior, which could be confusing.  Another alternative would be to define all of those to raise a NotImplementedError exception, so at least you couldn't "accidentally" use it.

np.matrix inherits most numeric dunder methods from np.ndarray, except mul and pow (see below).  Raising NotImplementedError for unimplemented mul and pow methods is an easy, safe option.
prefixes = ['','r','i']
bases = ['add','sub','mul','matmul','truediv','floordiv','mod','divmod','pow','lshift','rshift','and','or','xor']
makemeth = lambda p, b: '__' + p + b + '__'
# there's no such thing as __idivmod__; otherwise all exist
methods = [makemeth(p,b) for p,b in itertools.product(prefixes, bases) if hasattr(np.ndarray, makemeth(p,b))]
matonly = [m for m in methods if getattr(np.matrix, m) is not getattr(np.ndarray, m)]
print(matonly)
# output: ['__mul__', '__pow__', '__rmul__', '__rpow__', '__imul__', '__ipow__']

Committed a new set of  changes to address the  issues raised by @roryyorke.  Most recent updates:

The use of  numpy.matrix as a return type is now set as a configuration option.  The default is for functions in statesp.py and (hsvd in modelsimp.py) to return numpy.matrix objects (for backward compatibility), but the call use_numpy_matrix(False) will change the return type to StateSpaceMatrix.  There is also a function set_ss_return_type that can set the return type to any subclass of numpy.ndarray (including ndarray itself).

New unit test code to test the functionality of use_numpy_matrix(False) and set_ss_return_type.

Added code to raise theNotImplementedError exception for dunder methods ipow  and  imul, so that they don't fall back to the (incompatible) numpy.ndarray methods.

In a future release, we can change the defaults in config.py to return either StateSpaceMatrix objects or numpy.ndarray objects and the dependence on numpy.matrix will be removed.
I decided not to copy the string processing code from numpy.matrixintopython-control though we may eventually want to put that into the matlab submodule.  I think the main module should follow whatever Numpy does in terms of allowing string initialization (my guess is that it will go away).

In looking through the code just now, I see what we have some inconsistencies in how we return matrix objects.  In some place we are returning matrix objects (now convertible to StateSpaceMatrix via changes in this PR) but in other place we return ndarray objects.  For example, place and lqr return ndarray objects, but ctrb, obsv, and acker return matrix-like objects (either numpy.matrix or StateSpaceMatrix, depending on settings).
On the one hand, it seems useful to have functions that return a gain matrix sending back something that can be used like the numpy.matrix class, so that you can say (for example)
K = lqr(A, B, Q, R)
Acl = A - B * K

(note that this won't actually work in the current code, tthough if you used acker instead of lqr then it would!).
On the other hand, at some point we should probably just bite the bullet and use ndarray everywhere, so that we are compatible with Numpy.  If we did that, we could just get rid of the new StateSpaceMatrix class completely.
Any thoughts?

Will this work?
K = lqr(A, B, Q, R)
Acl = A - B @ K

Using @ should be what we move towards.

Yes, that will work (though not in python 2.7, of course).

Following the discussion in issue #233, this PR is being abandoned in favor of PR #314, which is aligned with the approach in issue #233 (and is much more straightforward).