Unilateral force close

When I open a channel with a LND node in my local network, it works for ~2 days and then the channel gets force closed by the android lnwallet without any interaction. Is this a known problem?
Also receiving funds on this channel isn't working most of the time.

Local closure suggests there's a remote Error message sent by LND which should be displayed in a popup, did you notice it happening? In general, there indeed are a few known cases where LND sends an Error and we try to eliminate them.
Regarding not being able to receive, that is a known problem: https://github.com/btcontract/lnwallet/issues/6#issuecomment-400184449

No, didn't see a popup. Are there logs somewhere?
I have the LND logs if that helps?

BLW has no log file. LND log may be of help of course, can you upload it somewhere? Also, what's the LND node in question?

Here's the relevant part of the LND log (node is on current master)
BLW pubkey: 02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2
Channel: 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b
LND pubkey: 03d1de909d071cc4d6a52baa8ce43c231fefef54a9a0091c63fe22d29bf299eb57
2018-07-18 18:58:55.421 [INF] SRVR: New inbound connection from <IP_ADDRESS>:47764
2018-07-18 18:58:55.422 [INF] PEER: unable to read message from <IP_ADDRESS>:47528: read tcp <IP_ADDRESS>:9735-><IP_ADDRESS>:47528: use of closed network connection
2018-07-18 18:58:55.424 [INF] DISC: Removing gossipSyncer for peer=02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2
2018-07-18 18:58:55.424 [INF] HSWC: Removing channel link with ChannelID(6bc22ce67ec1618f45bf8c4ddf0e2eaa852b2af1dc67307a4b4c0c9f6321c19c)
2018-07-18 18:58:55.425 [INF] HSWC: ChannelLink(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) is stopping
2018-07-18 18:58:55.425 [INF] SRVR: finalizing connection to 02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2, inbound=true
2018-07-18 18:58:55.433 [INF] PEER: NodeKey(02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2) loading ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0)
2018-07-18 18:58:55.442 [INF] HSWC: ChannelLink(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) is starting
2018-07-18 18:58:55.442 [INF] HSWC: Trimming open circuits for chan_id=532331:860:0, start_htlc_id=4
2018-07-18 18:58:55.443 [INF] HSWC: Adding live link chan_id=6bc22ce67ec1618f45bf8c4ddf0e2eaa852b2af1dc67307a4b4c0c9f6321c19c, short_chan_id=532331:860:0
2018-07-18 18:58:55.442 [INF] CNCT: Attempting to update ContractSignals for ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0)
2018-07-18 18:58:55.443 [INF] HSWC: HTLC manager for ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) started, bandwidth=72269624 mSAT
2018-07-18 18:58:55.443 [INF] HSWC: Attempting to re-resynchronize ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0)
2018-07-18 18:58:55.447 [WRN] HSWC: ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0): received unknown message of type *lnwire.ChannelReestablish
2018-07-18 18:58:55.526 [INF] HSWC: ChannelLink(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) has exited
2018-07-18 18:59:02.999 [INF] DISC: Broadcasting batch of 4 new announcements
2018-07-18 18:59:06.124 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 18:59:07.545 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:07.545 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:07.546 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:07.549 [INF] CRTR: Updated vertex data for node=0304421debf70608ac6836d9fb9f2c365a970cb5bb31147046107418fd568b3dbe
2018-07-18 18:59:07.557 [INF] CRTR: Updated vertex data for node=0399cd9a37f87b2ac5b8f336e46490d32ba85bc763c09e3ab07429596292a3a1e8
2018-07-18 18:59:07.562 [INF] CRTR: Updated vertex data for node=03473ec133c70c05db8d1abaa272449b0cfd3d38e1978bfe1e7765d1913b7e7c51
2018-07-18 18:59:07.567 [INF] CRTR: Updated vertex data for node=02a456b816697c6b8407ee2176475d74b790a96143bc30e896e8bf7a8852a8b637
2018-07-18 18:59:07.573 [INF] CRTR: Updated vertex data for node=032e000d7927b0d78f7ce4285b7c8e4db97300fb55f2833173d7c28289abbed5bf
2018-07-18 18:59:07.623 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:07.641 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:07.750 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:08.221 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:25.444 [ERR] HSWC: ChannelLink(532331:860:0) unable to synchronize channel states: didn't receive ChannelReestablish before deadline
2018-07-18 18:59:25.444 [ERR] HSWC: ChannelLink(532331:860:0) Failing link: didn't receive ChannelReestablish before deadline
2018-07-18 18:59:25.446 [INF] HSWC: ChannelLink(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) has exited
2018-07-18 18:59:25.447 [INF] HSWC: Removing channel link with ChannelID(6bc22ce67ec1618f45bf8c4ddf0e2eaa852b2af1dc67307a4b4c0c9f6321c19c)
2018-07-18 18:59:25.447 [INF] HSWC: ChannelLink(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) is stopping
2018-07-18 18:59:25.447 [INF] PEER: unable to read message from <IP_ADDRESS>:47764: read tcp <IP_ADDRESS>:9735-><IP_ADDRESS>:47764: use of closed network connection
2018-07-18 18:59:25.448 [INF] DISC: Removing gossipSyncer for peer=02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2
2018-07-18 18:59:25.448 [ERR] SRVR: unable to get channel links: unable to locate channel link by destination hop id 02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2
2018-07-18 18:59:25.449 [ERR] SRVR: Unable to retrieve advertised address for node 02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2: no advertised addresses found
2018-07-18 18:59:26.118 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:26.211 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:26.276 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 18:59:30.641 [INF] SRVR: New inbound connection from <IP_ADDRESS>:47864
2018-07-18 18:59:30.641 [INF] SRVR: finalizing connection to 02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2, inbound=true
2018-07-18 18:59:30.659 [INF] PEER: NodeKey(02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2) loading ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0)
2018-07-18 18:59:30.667 [INF] HSWC: ChannelLink(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) is starting
2018-07-18 18:59:30.668 [INF] CNCT: Attempting to update ContractSignals for ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0)
2018-07-18 18:59:30.668 [INF] HSWC: Trimming open circuits for chan_id=532331:860:0, start_htlc_id=4
2018-07-18 18:59:30.668 [INF] HSWC: Adding live link chan_id=6bc22ce67ec1618f45bf8c4ddf0e2eaa852b2af1dc67307a4b4c0c9f6321c19c, short_chan_id=532331:860:0
2018-07-18 18:59:30.668 [INF] HSWC: HTLC manager for ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) started, bandwidth=72269624 mSAT
2018-07-18 18:59:30.668 [INF] HSWC: Attempting to re-resynchronize ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0)
2018-07-18 18:59:33.000 [INF] DISC: Broadcasting batch of 8 new announcements
2018-07-18 18:59:40.672 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 19:00:00.669 [ERR] HSWC: ChannelLink(532331:860:0) unable to synchronize channel states: didn't receive ChannelReestablish before deadline
2018-07-18 19:00:00.669 [ERR] HSWC: ChannelLink(532331:860:0) Failing link: didn't receive ChannelReestablish before deadline
2018-07-18 19:00:00.670 [INF] HSWC: ChannelLink(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) has exited
2018-07-18 19:00:00.670 [INF] HSWC: Removing channel link with ChannelID(6bc22ce67ec1618f45bf8c4ddf0e2eaa852b2af1dc67307a4b4c0c9f6321c19c)
2018-07-18 19:00:00.670 [INF] HSWC: ChannelLink(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) is stopping
2018-07-18 19:00:00.670 [INF] PEER: unable to read message from <IP_ADDRESS>:47864: read tcp <IP_ADDRESS>:9735-><IP_ADDRESS>:47864: use of closed network connection
2018-07-18 19:00:00.670 [INF] DISC: Removing gossipSyncer for peer=02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2
2018-07-18 19:00:00.671 [ERR] SRVR: unable to get channel links: unable to locate channel link by destination hop id 02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2
2018-07-18 19:00:00.671 [ERR] SRVR: Unable to retrieve advertised address for node 02446681ecdd035ce6f7469203af76f5300155c4ac23074965da7ca2a27b0c3de2: no advertised addresses found
2018-07-18 19:00:03.001 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:00:07.094 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:00:07.236 [INF] CRTR: Updated vertex data for node=03ad6cd751e6b91831a0ea19c0e84f54f17ac51b6a9d5d2e81663238701286186f
2018-07-18 19:00:32.999 [INF] DISC: Broadcasting batch of 2 new announcements
2018-07-18 19:01:08.082 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:01:32.999 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:01:44.791 [INF] CRTR: Updated vertex data for node=0247f18ca4329e56465891b07dbd16f5ab5dd0f8bd63ceb288734e46e1b2cecacc
2018-07-18 19:02:02.999 [INF] DISC: Broadcasting batch of 2 new announcements
2018-07-18 19:02:08.090 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:03:03.000 [INF] DISC: Broadcasting batch of 5 new announcements
2018-07-18 19:03:09.087 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:04:03.000 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:04:09.090 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:04:33.000 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:05:09.106 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:05:37.232 [INF] CRTR: Updated vertex data for node=0246b7010a84e5335a606355a638acfc6d35de98dca8c9931e940908e0de008e04
2018-07-18 19:06:03.000 [INF] DISC: Broadcasting batch of 2 new announcements
2018-07-18 19:06:10.121 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:07:11.110 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:07:33.001 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:08:12.079 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:09:12.097 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:09:33.002 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:10:12.136 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:10:33.001 [INF] DISC: Broadcasting batch of 2 new announcements
2018-07-18 19:11:03.001 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:11:13.321 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:12:03.001 [INF] DISC: Broadcasting batch of 2 new announcements
2018-07-18 19:12:14.095 [INF] RPCS: [listchannels] fetched 5 channels from DB
2018-07-18 19:12:33.003 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:12:50.967 [INF] CRTR: Pruning channel graph using block<PHONE_NUMBER>0000000007e12290e7e3e7ec771ee68e35f0770130e180ab90db32 (height=532481)
2018-07-18 19:12:50.976 [INF] CRTR: Block<PHONE_NUMBER>0000000007e12290e7e3e7ec771ee68e35f0770130e180ab90db32 (height=532481) closed 2 channels
2018-07-18 19:12:50.977 [INF] ATPL: Processing new external signal
2018-07-18 19:12:50.977 [INF] ATPL: Processing new external signal
2018-07-18 19:12:50.980 [INF] NTFN: Dispatching confirmed spend notification for outpoint=9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0 at height 532481
2018-07-18 19:12:50.982 [WRN] CNCT: Unprompted commitment broadcast for ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0)
2018-07-18 19:12:50.982 [INF] CNCT: Unilateral close of ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) detected
2018-07-18 19:12:50.996 [INF] CNCT: ChannelArbitrator(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0): remote party has closed channel out on-chain
2018-07-18 19:12:51.065 [INF] CNCT: ChannelArbitrator(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0): still awaiting contract resolution
2018-07-18 19:12:51.178 [INF] NTFN: New block: height=532481, sha=00000000000000000007e12290e7e3e7ec771ee68e35f0770130e180ab90db32
2018-07-18 19:12:51.178 [INF] UTXN: Attempting to graduate height=532481: num_kids=0, num_babies=0
2018-07-18 19:12:51.196 [INF] NTFN: New confirmation subscription: txid=af607dc3e96350758a0d8c64f86cc3d10f8b7c0746b9a808937c7da819d4498a, numconfs=1
2018-07-18 19:12:51.310 [INF] NTFN: Dispatching 1 conf notification for af607dc3e96350758a0d8c64f86cc3d10f8b7c0746b9a808937c7da819d4498a
2018-07-18 19:12:51.372 [INF] CNCT: *contractcourt.commitSweepResolver(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0): sweeping commit output with tx=(*wire.MsgTx)(0xc042af6000)({
 Version: (int32) 2,
 TxIn: ([]*wire.TxIn) (len=1 cap=15) {
  (*wire.TxIn)(0xc042f6c1e0)({
   PreviousOutPoint: (wire.OutPoint) af607dc3e96350758a0d8c64f86cc3d10f8b7c0746b9a808937c7da819d4498a:0,
   SignatureScript: ([]uint8) <nil>,
   Witness: (wire.TxWitness) (len=2 cap=2) {
    ([]uint8) (len=71 cap=144) {
     00000000  30 44 02 20 6c 54 66 70  f4 34 83 57 56 b6 fe 85  |0D. lTfp.4.WV...|
     00000010  87 35 3e fb 04 17 02 66  87 1b cf f1 7a 82 15 58  |.5>....f....z..X|
     00000020  2a 23 db 68 02 20 25 45  3a b1 ef 8d 9f 10 68 b1  |*#.h. %E:.....h.|
     00000030  b9 f7 3c ea 33 b0 59 c9  99 d6 f3 ff d3 de ab 58  |..<.3.Y........X|
     00000040  08 33 d0 82 e2 3f 01                              |.3...?.|
    },
    ([]uint8) (len=33 cap=33) {
     00000000  03 09 74 53 1c 69 af 14  ba e1 d0 34 0a 56 9e 8c  |..tS.i.....4.V..|
     00000010  5f c0 80 23 bb 39 55 88  94 c9 bf 65 da 93 b2 99  |_..#.9U....e....|
     00000020  a2                                                |.|
    }
   },
   Sequence: (uint32) 0
  })
 },
 TxOut: ([]*wire.TxOut) (len=1 cap=15) {
  (*wire.TxOut)(0xc042e70e60)({
   Value: (int64) 77043,
   PkScript: ([]uint8) (len=22 cap=500) {
    00000000  00 14 8e 5e f7 43 c8 c4  9f 75 00 c3 c7 20 32 92  |...^.C...u... 2.|
    00000010  12 b0 de e4 d4 33                                 |.....3|
   }
  })
 },
 LockTime: (uint32) 0
})

2018-07-18 19:12:51.376 [INF] LNWL: Inserting unconfirmed transaction 0f9fd5fc2712e5a73610673532062ad451a58c0055430cc040679dc27ae94d70
2018-07-18 19:12:51.436 [INF] CNCT: *contractcourt.commitSweepResolver(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0): waiting for commit sweep txid=0f9fd5fc2712e5a73610673532062ad451a58c0055430cc040679dc27ae94d70 conf
2018-07-18 19:12:51.436 [INF] NTFN: New confirmation subscription: txid=0f9fd5fc2712e5a73610673532062ad451a58c0055430cc040679dc27ae94d70, numconfs=1
2018-07-18 19:13:03.002 [INF] DISC: Broadcasting batch of 3 new announcements
2018-07-18 19:13:07.241 [INF] CRTR: Updated vertex data for node=02be74034df42a6cefa7d204ac726393f07a2b2cac9cee07400056c3512b6c2271
2018-07-18 19:13:07.252 [INF] CRTR: Updated vertex data for node=03012a23c769decc4fb40a92d5300692b576cb8dc887072580638b97911742554c
2018-07-18 19:13:07.267 [INF] CRTR: Updated vertex data for node=0327049d8d63f0c40193cdf3afc61817c8647808a4e482de0716fcef74e6d92ebf
2018-07-18 19:13:07.400 [INF] CRTR: New channel discovered! Link connects 02b7aeeb7df1ca12c174a16b3a109c06a04c10f1b19290eb9a137b6cade7efc4a6 and 036a33e92cda2679ac91ac0467acb1ba33396c0df1119521653e0f269c275dd6bf with ChannelPoint(18c24d9044b5d1b5cfa89ec4ff62cadfa522678f47b1b654b4e45ace1e3bb55b:0): chan_id=585463553571225600, capacity=0.00021504 BTC
2018-07-18 19:13:07.405 [INF] CRTR: Updated vertex data for node=036a33e92cda2679ac91ac0467acb1ba33396c0df1119521653e0f269c275dd6bf
2018-07-18 19:13:14.099 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:13:15.037 [INF] CRTR: New channel discovered! Link connects 0327049d8d63f0c40193cdf3afc61817c8647808a4e482de0716fcef74e6d92ebf and 03987c2e42501433973821060882d3c76f6d334cef64ca8853570593d9ab273cab with ChannelPoint(30827f3f0b32b1d7910b9acac5cf6866410ae1ce736614ab60b6d838842e7c4f:1): chan_id=585463553559166977, capacity=0.005 BTC
2018-07-18 19:13:15.045 [INF] CRTR: Updated vertex data for node=03987c2e42501433973821060882d3c76f6d334cef64ca8853570593d9ab273cab
2018-07-18 19:13:15.103 [INF] CRTR: New channel discovered! Link connects 02b7aeeb7df1ca12c174a16b3a109c06a04c10f1b19290eb9a137b6cade7efc4a6 and 038caeb1e25c6e5ffbf15f93aaecc64cd4febe0e969c61e7c9b08cee2e987f8fb7 with ChannelPoint(e6dfbdffcfbd1fbfd0d717bfb989da3bce35f3fcf556e9530f2aeb071763a6c5:1): chan_id=585463553571356673, capacity=0.00023893 BTC
2018-07-18 19:13:15.202 [INF] CRTR: Updated vertex data for node=038caeb1e25c6e5ffbf15f93aaecc64cd4febe0e969c61e7c9b08cee2e987f8fb7
2018-07-18 19:13:15.460 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:13:33.002 [INF] DISC: Broadcasting batch of 16 new announcements
2018-07-18 19:13:37.229 [INF] CRTR: Updated vertex data for node=02b7aeeb7df1ca12c174a16b3a109c06a04c10f1b19290eb9a137b6cade7efc4a6
2018-07-18 19:13:37.506 [INF] CRTR: New channel discovered! Link connects 02897d9c8c3ee7a32b12c60a6e9640227c6a6ffb85b5979961c5cfe0c1550b2f8d and 02a456b816697c6b8407ee2176475d74b790a96143bc30e896e8bf7a8852a8b637 with ChannelPoint(2760b4de1e85eb881911ad1f2f5a8091e1d38b118d60f0075cb670cb6b6d2e45:0): chan_id=585463553558708224, capacity=0.009 BTC
2018-07-18 19:13:37.519 [INF] CRTR: Updated vertex data for node=02a456b816697c6b8407ee2176475d74b790a96143bc30e896e8bf7a8852a8b637
2018-07-18 19:13:37.552 [INF] CRTR: New channel discovered! Link connects 024655b768ef40951b20053a5c4b951606d4d86085d51238f2c67c7dec29c792ca and 03012a23c769decc4fb40a92d5300692b576cb8dc887072580638b97911742554c with ChannelPoint(bbc677db932ff80900711e0ce4785c0ca9717af5f5afd0fdda87da0ca97e4c35:0): chan_id=585463553559298048, capacity=0.0002 BTC
2018-07-18 19:13:44.780 [INF] CRTR: Updated vertex data for node=024655b768ef40951b20053a5c4b951606d4d86085d51238f2c67c7dec29c792ca
2018-07-18 19:14:03.002 [INF] DISC: Broadcasting batch of 10 new announcements
2018-07-18 19:14:07.227 [INF] CRTR: Updated vertex data for node=02897d9c8c3ee7a32b12c60a6e9640227c6a6ffb85b5979961c5cfe0c1550b2f8d
2018-07-18 19:14:14.164 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:14:16.106 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:14:33.002 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:15:15.096 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:15:17.114 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:15:33.003 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:15:37.232 [INF] CRTR: Updated vertex data for node=031656e93300e7d51f9dcb2780d63b44cb96c5d6af2cec2196de450ad0688fcb80
2018-07-18 19:15:37.239 [INF] CRTR: Updated vertex data for node=021d2436cab847373a4212bf6d754ead5304f5d0791479643893a837b295f3441c
2018-07-18 19:15:40.872 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 19:15:41.004 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 19:15:42.671 [INF] DISC: gossipSyncer(03ee180e8ee07f1f9c9987d98b5d5decf6bad7d058bdd8be3ad97c8e0dd2cdc7ba): fetching chan anns for 1 chans
2018-07-18 19:16:03.003 [INF] DISC: Broadcasting batch of 5 new announcements
2018-07-18 19:16:16.106 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:16:17.101 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:16:33.003 [INF] DISC: Broadcasting batch of 3 new announcements
2018-07-18 19:16:46.074 [INF] CRTR: Updated vertex data for node=02ca2df9248933f4cdb220b78f097e2259df071765af6489ba13df23a95d7bb9c1
2018-07-18 19:17:03.004 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:17:16.095 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:17:18.106 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:17:33.003 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:17:44.777 [INF] CRTR: Updated vertex data for node=03d2827ce3d8c24cb69c5ed1cfceafd22c2fe359803ade279818ae2a9aeb3a49ec
2018-07-18 19:18:03.003 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:18:17.142 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:18:18.097 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:18:37.222 [INF] CRTR: Updated vertex data for node=02c4fec754506ea170712588600bf23f11fa123aa6b0eaf1e3617c1e6a6cd02848
2018-07-18 19:19:03.003 [INF] DISC: Broadcasting batch of 4 new announcements
2018-07-18 19:19:18.093 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:19:18.105 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:19:33.003 [INF] DISC: Broadcasting batch of 2 new announcements
2018-07-18 19:20:19.082 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:20:19.100 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:20:33.003 [INF] DISC: Broadcasting batch of 2 new announcements
2018-07-18 19:21:20.106 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:21:20.125 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:21:33.003 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:22:03.004 [INF] DISC: Broadcasting batch of 2 new announcements
2018-07-18 19:22:20.106 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:22:20.117 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:22:33.004 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:22:37.223 [INF] CRTR: Updated vertex data for node=024a549e096f4355073e3a2712a10c5a773e48bd21a7d2ddef71639481008ce811
2018-07-18 19:23:03.004 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:23:21.088 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:23:21.106 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:23:33.004 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:24:03.004 [INF] DISC: Broadcasting batch of 1 new announcements
2018-07-18 19:24:21.089 [INF] RPCS: [listchannels] fetched 4 channels from DB
2018-07-18 19:24:22.096 [INF] UTXN: NurseryReport: building nursery report for channel 9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0
2018-07-18 19:24:37.217 [INF] CRTR: Updated vertex data for node=02de874acb4af41a685c112b68a30b67a2d5cdb57cd601c96b18ced1bc2699229d
2018-07-18 19:24:38.513 [INF] LNWL: Marking unconfirmed transaction 0f9fd5fc2712e5a73610673532062ad451a58c0055430cc040679dc27ae94d70 mined in block 532482
2018-07-18 19:24:38.584 [INF] CRTR: Pruning channel graph using block<PHONE_NUMBER>0000000030f67ce6879f4411e5e671f1d58ee8f696eea38108f928 (height=532482)
2018-07-18 19:24:38.587 [INF] ATPL: Processing new external signal
2018-07-18 19:24:38.589 [INF] ATPL: Processing new external signal
2018-07-18 19:24:38.589 [INF] CRTR: Block<PHONE_NUMBER>0000000030f67ce6879f4411e5e671f1d58ee8f696eea38108f928 (height=532482) closed 0 channels
2018-07-18 19:24:38.691 [INF] NTFN: New block: height=532482, sha=00000000000000000030f67ce6879f4411e5e671f1d58ee8f696eea38108f928
2018-07-18 19:24:38.692 [INF] UTXN: Attempting to graduate height=532482: num_kids=0, num_babies=0
2018-07-18 19:24:38.704 [INF] NTFN: Dispatching 1 conf notification for 0f9fd5fc2712e5a73610673532062ad451a58c0055430cc040679dc27ae94d70
2018-07-18 19:24:38.704 [INF] CNCT: ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) commit tx is fully resolved, at height: 532482
2018-07-18 19:24:38.735 [INF] CNCT: ChannelArbitrator(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0): a contract has been fully resolved!
2018-07-18 19:24:38.735 [INF] CNCT: ChannelArbitrator(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0): all contracts fully resolved, exiting
2018-07-18 19:24:38.739 [INF] CNCT: Marking ChannelPoint(9cc121639f0c4c4b7a3067dcf12a2b85aa2e0edf4d8cbf458f61c17ee62cc26b:0) fully resolved

2018-07-18 18:59:25.444 [ERR] HSWC: ChannelLink(532331:860:0) unable to synchronize channel states: didn't receive ChannelReestablish before deadline seems to be the reason, it's documented here: https://github.com/lightningnetwork/lnd/issues/1383

Ok, thanks. You can close this if you want.


Support for Env-Variable Substitution

Hi
First of all, thanks for the image.
Consider the following use-case:

Output to a linked Elasticsearch Docker container

The connection details will be injected by Docker as environment variables. Thus, I would need to be able to substitute Env-Variable placeholders in a config file. Can you propose a solution to this problem or is it a missing feature?
I suppose that this will be a very common (if not THE) use case that people will want to use the image for, so it would be nice if it would be supported by the official image directly.
Thanks Martin

Looks like there's an open Jira issue for LS to support this directly: https://logstash.jira.com/browse/LOGSTASH-1043

Although there's also this other one closed as WONTFIX: https://logstash.jira.com/browse/LOGSTASH-506
@jordansissel: Sorry to ping you on this, but I couldn't comment on LOGSTASH-1043. Are you still considering support for environment variables in LS config a WONTFIX issue?

I've helped myself with a very basic Bash script that will replace all ${NAME} placeholders with the corresponding env variable. I could also add something (a startup flag, a comment in the config file) to opt-in for this feature.
Would you consider accepting a PR with such changes?

Since upstream doesn't seem interested in supporting such a feature
("WONTFIX"), I'm definitely wary about adding a workaround to do it
downstream in our image.

My recommendation when folks ask about variable substitution in logstash config is to have somethinge preprocess their configs (or generate them from templates) before running logstash. The most simple could just be to use m4 or sed to process the config before using it, though I don't have strong recommendations on what you should use here :)

For context, many config management users generate their logstash config files from some kind of truth source (chef databags/attributes, puppet db/facts, etc). In Docker, environment variables are a kind of truth source, so it makes sense to use that to generate the configuration. I confess I haven't used container linking so I'm not sure how that affects things, but hopefully my encouragement to generate the config on the fly from a template is sufficient an answer. :)

Thanks for the feedback. I have a very simple solution that replaces env variables prior to running the container. I'll clean that up a bit, make it opt-in and file a PR when I find some time...

Maybe I'm missing something, so please correct me if wrong. To my understanding it's possible to refer to the linked container by using its name as the hostname. Docker will resolve this automatically for me. So if I'm linking the Logstash container to an Elasticsearch container (named "elasticsearch"), all I need to specify is the docker container name as the target host:
output {
  elasticsearch {
    protocol => "http"
    host => "elasticsearch"
  }
}

The same is true for my Kibana image which which does something like this:
# The Elasticsearch instance to use for all your queries.
elasticsearch_url: "http://elasticsearch:9200"

I'm using Amazon Elastic Beanstalk to setup my environment, but I've got this trick from a docker-compose (Fig) setup: https://github.com/deviantony/fig-elk

I believe that Docker's newer linking features (especially the way Docker networks hijack DNS to provide inter-container resolution via names) make this more of a moot point. :+1:
Personally, I prefer to use -e when starting my container to supply my configuration directly inline rather than relying on a file, since it's easier to control and munge that way for my uses.  For example, I've got https://github.com/tianon/docker-elk-stack/blob/a3171a52f7008666723246119a694e26bf4cf26c/docker-compose.yml which starts up a fully-connected ELK stack without anything too complicated IMO. :+1:  (with Logstash in particular configured to accept gelf input specifically for use as a Docker gelf log driver bucket :metal:)
Regardless, I think the appropriate way to configure Logstash in Docker is to supply said configuration directly, and if generated configuration is necessary, using a simple script to generate it at startup time should be sufficient.  Thanks for the discussion, and sorry for the massive delay in getting back around to this issue!


False positive for config validation

Looks like it's missing some env vars and is reflecting as invalid config, seems to me a false positive.
Config available here

I think is something that we can tackle only after #180


[vite:dep-scan] The plugin "vite:dep-scan" was triggered by this import

import { AvatarCreator, EditorConfig } from "@readyplayerme/rpm-react-sdk";

<AvatarCreator
  subdomain="demo"
/>

There's some issue with vite plugin.
[ERROR] Failed to resolve entry for package "@readyplayerme/rpm-react-sdk". The package may have incorrect main/module/exports specified in its package.json. [plugin vite:dep-scan]

    node_modules/esbuild/lib/main.js:1360:21:
      1360 │         let result = await callback({
           ╵                      ^

    at packageEntryFailure (file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23382:11)
    at resolvePackageEntry (file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23379:5)
    at tryNodeResolve (file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23113:20)
    at Context.resolveId (file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:22874:28)
    at Object.resolveId (file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:42847:46)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async resolve (file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:43145:26)
    at async file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:43322:34
    at async requestCallbacks.on-resolve (C:\Users\Jiwon\Downloads\Projects\mosmos\client\node_modules\esbuild\lib\main.js:1360:22)
    at async handleRequest (C:\Users\Jiwon\Downloads\Projects\mosmos\client\node_modules\esbuild\lib\main.js:723:13)

  This error came from the "onResolve" callback registered here:

    node_modules/esbuild/lib/main.js:1279:20:
      1279 │       let promise = setup({
           ╵                     ^

    at setup (file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:43312:19)
    at handlePlugins (C:\Users\Jiwon\Downloads\Projects\mosmos\client\node_modules\esbuild\lib\main.js:1279:21)
    at buildOrContextImpl (C:\Users\Jiwon\Downloads\Projects\mosmos\client\node_modules\esbuild\lib\main.js:968:5)
    at Object.buildOrContext (C:\Users\Jiwon\Downloads\Projects\mosmos\client\node_modules\esbuild\lib\main.js:776:5)
    at C:\Users\Jiwon\Downloads\Projects\mosmos\client\node_modules\esbuild\lib\main.js:2172:68
    at new Promise (<anonymous>)
    at Object.context (C:\Users\Jiwon\Downloads\Projects\mosmos\client\node_modules\esbuild\lib\main.js:2172:27)
    at Object.context (C:\Users\Jiwon\Downloads\Projects\mosmos\client\node_modules\esbuild\lib\main.js:2012:58)
    at prepareEsbuildScanner (file:///C:/Users/Jiwon/Downloads/Projects/mosmos/client/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:43097:26)

  The plugin "vite:dep-scan" was triggered by this import

    src/components/ComputerDialog.tsx:1:44:
      1 │ ... AvatarCreator, EditorConfig } from "@readyplayerme/rpm-react-sdk";

Can I import @readyplayerme/rpm-react-sdk and check with vite?
Please advise me.

Hey, there's issues with esm modules right now. looking into it.

This is fixed in the 0.1.4. If the issue persists, feel free to let us know.


Allows generation of redirects.json to be disabled

Per https://github.com/jekyll/jekyll-redirect-from/issues/189, it's not always desirable to generate redirects.json, particularly since it might leak information about routes that exist but that aren't actually (intended to be) linked publicly.
This PR proposes to add support for
redirect_from:
  json: false

modeled after https://github.com/benbalter/jekyll-optional-front-matter#configuration.

Changes made!

Thanks!


Attempted fix for infinite recursion in identityHash()

In the else block, there is no hash value. This is however inside a dynamic block so the compiler passes the references as-is into javascript code. Since there actually is no "hash" variable in scope in javascript, references to hash will be stored/retrieved in the window object on lines 21-23.
Normally this happens to work. Except when using ceylon.interop.browser, the window object gets dre$$ed with a hash attribute. This is set up as a javascript property with a getter and an undefined setter. In this case line 21 actually has no effect (setter undefined) and line 22 actually calls the dre$$ed hash attribute getter function. Coincidentally the hash attribute getter function calls identityHash(), which on line 22 calls the hash attribute getter function etc.
This means that as soon as the window object has been dre$$ed, getting the identityHash for any object results in an infinite recursion. For example:

import ceylon.interop.browser { window }

class Foo() {}

shared void run() {
    value x = window; // trigger dre$$ of window object
    print(Foo()); // fail - default string attribute includes hash, which is
                  // by default calculated by identityHash()
}

Can one of the admins verify this patch? (see README)

@CeylonBuildBot ok to test

I'm working on a test for this..

It was for the CI builder @xkr47 ;)
Although tests are always good of course!
But right now the CI won't run tests anyway.
(first thing on my list after 1.2.2 gets released)

Sounds good! I ran all the other tests and it seems my test does not interfere.

Looks good to me.

For the record, in Firefox this shows up as "InternalError: too much recursion" in the console.

ant nodetest in the js compiler shows a failure for this test


Ideas for improvement

Some ideas for improvement:

Include a link to this repo. Since the README contains important information, this is important so that people have a chance to read that information. Unlike the below bullet points, I believe this is a must-have.
Think small – on any screen narrower than 1600px, the table of contents and the graphs overlap; on screens narrower than 1500px, the graphs overflow horizontally. On any screen shorter than 900px, the end of the table of contents is inaccessible. There is always room for improvement, but making the TOC hideable/collapsible and making it have its own collapsible box seems to be a good effort/impact ratio.
Tabbed/collapsible interface? This could be an alternative to fixing the table of contents. Maybe tabs if there’s JavaScript and TOC otherwise, somewhat similarly to MediaWiki preferences. Or checkboxes to select which one or more graphs should appear – this would allow comparing two wikis that are alphabetically far from each other (e.g. I regularly edit huwiki, Commons, Wikidata etc., how do they compare to each other?).
Start all graphs at the same time. Even if some wikis got DiscussionTools later, this would help comparison by lining up the data.

Please note that I didn’t look at the source code (I’m not fluent in Ruby), so do tell me if any of my ideas is technically too difficult.

Also, you could link to the tool in the repository details (website field), making the link more visible.

Include a link to this repo. Since the README contains important information, this is important so that people have a chance to read that information. Unlike the below bullet points, I believe this is a must-have.
Done

Start all graphs at the same time. Even if some wikis got DiscussionTools later, this would help comparison by lining up the data.
Done

Also, you could link to the tool in the repository details (website field), making the link more visible.
Done

For the other visual improvements, I think the first step might be to rewrite the visualization using a different program/library. I made it with gnuplot, just for fun (I haven't used it before), and it turns out that it's not ideal for charts on websites, presumably because it was invented at a time when you would probably be making charts for print ;)
To that end, the data for the charts is now available at https://dtstats.toolforge.org/data.tgz, and I am hoping someone will do it for me ;)

Thanks! I couldn’t get gnuplot work (as I wrote in the commit message of 5441629), but hopefully someone else will.

I think that's a shell quoting problem, gnuplot actually expects literal ' characters there, and presumably your shell interprets them itself while mine doesn't. I could fix that, but I actually found a better way that doesn't need funny quoting: ad7af6141816aec34c466c8f2437070f4cc6fb54

By the way, if you want others to do it for you, maybe you should add some developer information – I guessed what to do based on the make.bat file, but the gnuplot issue may be just because I didn’t do exactly what you did, instead of some Linux vs Windows difference. Maybe the full paths to the checked-out https://github.com/wikimedia/operations-mediawiki-config should also be configurable…

Well, that's just the first problem, next you'll find that the querying depends on having access to WMF Analytics replicas, and probably also on my SSH configuration (although it's pretty standard)…
The SQL query itself should work just fine on Toolforge replicas too, but the mechanics of running queries differ, and I've never used those.
You might also find that your gnuplot produces slightly different output than mine. I had some issues with fonts when making this, and I hacked up some margins to work around that.
It's just a lot more effort to make the scripts work everywhere, rather than just on my machine…

I think that's a shell quoting problem, gnuplot actually expects literal ' characters there, and presumably your shell interprets them itself while mine doesn't. I could fix that, but I actually found a better way that doesn't need funny quoting: ad7af61

Yes, that error is gone. It still doesn’t run, but that’s just because you used the set key offset feature introduced in 5.4.5, while my gnuplot, packaged by Debian, is two years old (like just about anything Debian packages…). But I could just install it from Git if I wanted.


Write manual release notes for important releases

Opening this issue just to track the progress of figuring out a decent way to make sure that there are manual release notes whenever we put out a release with some breaking changes or some important new features.

@Dhaiwat10 What was the outcome of this issue?

@arboleya I will be writing manual release notes for any major releases from now on. I discussed this with Rodrigo before the beta-5 work. Example: https://github.com/FuelLabs/fuels-ts/releases/tag/v0.63.0
I will do something similar for our next big release - which I guess will be beta-5 support. I will just go and edit the automated release generated by CI.

What we consider a 'big' release is a bit up in the air but I think we can start with any releases containing breaking changes and significant new features for now.

I don't think we should necessarily go 100% manual here, but try to get these done instead:

https://github.com/FuelLabs/fuels-ts/issues/1028
https://github.com/FuelLabs/fuels-ts/issues/970

If the automated changelog becomes more readable, we can start being more conscientious about changelog notes and write them more appropriately. This should be enough for 95% of scenarios, and then we can deal with the last 5% manually.

cc @FuelLabs/sdk-ts

@arboleya Regarding the two issues that you linked, I was just about to write a comment on them that my efforts on adding these things had been very unsuccessful. I don't think the changesets automated changelog generation framework lets us customize the setup to this level. I've kept them open if someone else wants to have a go.
This is why I thought writing manual release notes, like Rodrigo does for the Rust SDK, would add a lot of value without too much effort. But I do agree with you on the fact that we should only do this when necessary.


Clean up Experimental code

What does this PR (Pull Request) do?

PR goes through and cleans up experimental code that was underneath traffic_ops/experimental.
It removes code that is dates/superseded and moves the rest to underneath the top level experimental directory.
Directories being removed
traffic_ops/experimental/ats_config
traffic_ops/experimental/server
traffic_ops/experimental/goto
traffic_ops/experimental/auth
Directories being moved
traffic_ops/experimental/traffic_ops_auth
traffic_ops/experimental/url-rewriter-nginx
traffic_ops/experimental/postgrest
traffic_ops/experimental/webfront
Which Traffic Control components are affected by this PR?

What is the best way to verify this PR?

Make sure unit tests, rpm build, docker build for ciab and api tests pass
If this is a bug fix, what versions of Traffic Control are affected?

The following criteria are ALL met by this PR

[x] This PR includes tests OR I have explained why tests are unnecessary
[x] This PR includes documentation OR I have explained why documentation is unnecessary
[x] This PR includes an update to CHANGELOG.md OR such an update is not necessary
[x] This PR includes any and all required license headers
[x] This PR ensures that database migration sequence is correct OR this PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

Additional Information

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4752/

to me, the "experimental" label means all the code is limited to the experimental directory thus will have no effect on TC in any way. would it be possible to limit this PR's scope to only experimental code and therefore the label is applicable?

Copying what I put on the mailing list here:
infrastructure/test/api has been superseded by the TO API Tests.
infrastructure/test/apitest has been superseded by the TO API Tests.
infrastructure/test/ui/traffic_ops/traffic_ops_test.go has been superseded by the Portal Tests.
traffic_ops/client_tests has been superseded by the TO API Tests, which test the client (also, it's empty).
traffic_ops/experimental/ats_config has been superseded by the atstccfg Config Generator.
traffic_ops/experimental/server has been superseded by traffic_ops_golang
I wrote all of the above, and I'm +1 on removing them as superseded. (Though the fact that I wrote them shouldn't prevent someone else from claiming something as useful, if anyone thinks so.)
traffic_ops/experimental/goto has been superseded by traffic_ops_golang, +1 to remove.
traffic_ops/experimental/auth is an experimental auth microservice for TO/TC. It hasn't been superseded by anything. We probably aren't going this direction any time soon, but I'm still hesitant to remove it as an experimental PoC.
traffic_ops/experimental/postgrest hasn't been directly superseded by anything. We chose to go the traffic_ops_golang route, but PostgREST is still a valid alternative, and maybe worth keeping the PoC around.
traffic_ops/experimental/traffic_ops_auth hasn't been superseded by anything in production; but it serves essentially the same purpose as traffic_ops/experimental/auth and it's much smaller. I'd be -0 on removing it.
traffic_ops/experimental/url-rewriter-nginx hasn't been superseded by anything, and serves to complement traffic_ops/experimental/postgrest as a PoC for a particular way of doing TO. I'd kind of like to keep it around, for the same reason.
traffic_ops/experimental/webfront is along the same "microservices" lines as traffic_ops_auth, url-rewriter-nginx, and postgrest. I'm +1 on keeping them around, as a PoC of a different way to do things.
But, I'll defer to the list.

btw broke out all the infra test clean up to https://github.com/apache/trafficcontrol/pull/4117 as requested in a comment in this pr

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4783/


Fix filter dropdowns on shared mappings page

There is some UI issue that stops the lower items in the drop-down lists from being selected
To reproduce:

go to https://gopher.desm.staging.c66.me/mappings-list?abstractClass=Organization&cp=45
put the cursor over any of the filter drop-downs (e.g. show spine specifications, show alignment specifications, show alignments) and a list of check boxes will drop down.
move the cursor down to the bottom of the list in an attempt to deselect what is there.

Expected behaviour: the drop-down stays put so that you can alter the check box
Observed behaviour: the drop-down closes stopping you from access some of the check boxes

Fixed as part of #424.


rename InClusterConfig() to GetClusterConfig()

rename InClusterConfig() to GetClusterConfig(), remove todo
also use env var KUBECONFIG to retrieve kubeconfig (same as kubectl)

/ok-to-test

Thanks for the fix.

@huangyue18  Can you sign the CLA please?

Looks like @huangyue18 already signed the CLA. Will try to retrigger the check.
I signed it!

I signed it!

@huangyue18  I think you need to add the "I signed it!" comment to trigger the CLA bot; looks like I can't do it.

I signed it!


Could not install on Windows

I ran "pip install pyportfoioopt" on my command lone and get an error when building a wheel,
"Error: Could not build wheels for cvxpy which use PEP 517 and cannot be installed directly"
I have attached a txt file with the full terminal output displayed for more info, this was not an issue with my previous computer and I've looked online with no success so any help would be appreciated.
Error Message.txt

Hi @Conorcasey1,
Have you downloaded Visual Studio? PyPortfolioOpt has special installation instructions for windows, described here
Best,
Robert

Hi Robert, that worked thanks very much for that, really appreciate it

Great! Glad it's working


refactor: ObjectMapping System

ObjectMapping system now have copying property
ObjectMapping system now can move properties of GameObject

ブランチ名って変えれるっけ


error while log in

Hey!
Got error while trying to log in:
exception:"ErrorException"
file:"C:\xampp\htdocs\real\vendor\raiym\instagram-php-scraper\src\InstagramScraper\Instagram.php"
line:1224
message:"Undefined index: mid"
// edit: adding php request code
$instagram = \InstagramScraper\Instagram::withCredentials('username', 'xxxxx');
$instagram->login();
Anyone know why this happen ?

nevermind, found solutsion by myself.
Just deleted $mid variables from instagram.php file.


[BrokenLinksH2] fixing broken link

Global effort to fix broken links
@matthidinger
The Content & Learning team is fixing broken links on docs.microsoft.com for the rest of H2. This effort will eliminate potential accessibility, security, and usability issues. This PR includes only link fixes and does not change other content. Please review within five business days and merge, or comment in the PR with any changes you'd like to see. Thanks!
Microsoft Reviewers: Open in CodeFlow

Docs Build status updates of commit a0c7234:
:warning: Validation status: warnings

File
Status
Preview URL
Details

AdaptiveCards/sdk/rendering-cards/net-html/getting-started.md
:warning:Warning

Details

AdaptiveCards/sdk/rendering-cards/net-html/getting-started.md

Line 15, Column 167: [Warning: hard-coded-locale - See documentation] Link 'https://docs.microsoft.com/en-us/lifecycle/end-of-support/end-of-support-2020' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.
Line 15, Column 167: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/en-us/lifecycle/end-of-support/end-of-support-2020' will be broken in isolated environments. Replace with a relative link.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit c2ec09b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

AdaptiveCards/sdk/rendering-cards/net-html/getting-started.md
:bulb:Suggestion

Details

AdaptiveCards/sdk/rendering-cards/net-html/getting-started.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

#sign-off

Docs Build status updates of commit 1dcad16:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

AdaptiveCards/sdk/rendering-cards/net-html/getting-started.md
:bulb:Suggestion

Details

AdaptiveCards/sdk/rendering-cards/net-html/getting-started.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@matthidinger
#sign-off


How can i retrieve entity from main morph table?

AdminHistory
public function entity() {return $this->morphTo();}
Services
public function history() {return $this->morphMany(AdminHistory::class, 'entity');}
i get this from AdminHistory
"id" => 1
"entity_type" => "App\Models\Services"
"entity_id" => 1
but i also want to get entity with ent_type and ent_id
is it possible?

This isn't a bug report.


Add Split Testing Endpoint

Noticed there were issues for missing endpoints but didn't see one for /sites/{site_id}/traffic_splits, feel free to close if it's because it's still in beta!

ENOTENOUGHTIMETOADDALLENDPOINTS :laughing:
Feel free to add it, if you have time to inspect requests/responses. There is no real reason why it's not here.


Dev to main

Edit distance Fix
Small bug fix

Hello @tjwjdgus12! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file chinjiin/converter/del_converter.py:

Line 35:13: E741 ambiguous variable name 'l'
Line 39:54: E203 whitespace before ':'
Line 40:21: E741 ambiguous variable name 'l'
Line 42:22: E127 continuation line over-indented for visual indent

In the file chinjiin/measurer/edit_distance_calculater.py:

Line 46:80: E501 line too long (89 > 79 characters)
Line 51:80: E501 line too long (87 > 79 characters)
Line 53:80: E501 line too long (89 > 79 characters)
Line 81:80: E501 line too long (84 > 79 characters)
Line 83:80: E501 line too long (87 > 79 characters)

In the file chinjiin/word_fixer.py:

Line 83:1: W293 blank line contains whitespace

Branch has great progress than before, request accepted


Restructure the "General" docs

Desired state
Fix typos and restructure the pages similar to the changes made in this PR: https://github.com/apache/apisix-website/pull/888
The goals of this change would be to improve the readability of the docs.

Updated GIF for copying avatar URL:


[variable-name-utils] Change internal representation to use StringRef instead of a SILValue

CONTEXT: This code works by building up a stack of SIL values of values that
need to be transformed into a StringRef as part of generating our name path and
then as a second phase performs the conversion of those values to StringRef as
we pop from the stack.
In this PR, I refactor VariableNameUtils so that the stack will only contain StringRef instead of SIL
entities. This will be accomplished by moving the SIL value -> StringRef code
from the combining part of the algorithm (where we drain the stack) to the
construction of the stack.
The reason why I am doing this is two fold:

By just storing StringRef into the stack I am simplifying the code. Today as
mentioned above in the context, we gather up the SILValue we want to process and
then just convert them to StringRef. This means that any time one has to add a
new instruction, one has to update two different pieces of code. By trafficking
in StringRef instead, one only has to update one piece of code.

I want to add some simple code that allows for us to get names from closures
which would require me to recurse. I am nervous about putting
values/instructions from different functions in the same data structure. Today
it is safe, but it is bad practice. Instead, by just using StringRef in the
stack, I can avoid this problem.

@swift-ci smoke test


Doesn't work with jQuery 1.5.1

Hi.
I can't upgrade the jquery for one of my projects... But I need this cool picker, which doesn't work with installed jquery 1.5.1.
Can you help?
Thanks.

nobody will help you until you provide more information like datetimepicker version, and the error you get in the console. also copy your initialization code here (the code you wrote to use datetimepicker )


test: nested_irq: Remove all printk in the nested irq handler

Fix https://github.com/zephyrproject-rtos/zephyr/issues/49491#issuecomment-1233436589
Accessing Advanced SIMD registers in the nested irq has a side effect with FPU sharing enabled #35410. We fix it by simply simulating the sequence of STR instructions.
But for GCC12, things are more complicated which is GCC 12 will use ldp q0, q1, [sp|xn #xx] and stp q0, q1, [sp #xx] pairs to copy content when handling the va_start() things (printk). It is not worth emulating more of those instructions considering the combination of gcc v12 + va_arg usage within IRQ handlers + recursive IRQs shouldn't happen much in practice
with real applications.
Fix this issue #49491 by removing all printk that will cause the nested irq test failures.

There might be many things in life that are perfectly valid hypothesis but
not worth the cost of supporting without actual confirmation they really
exist.

sprintf? That sounds very practical to me.

sprintf? That sounds very practical to me.

From an IRQ handler which also must be interrupted by another IRQ at the
same time as part of normal operation? Let me entertain some doubts.

If you decide to go down the path of not implementing support for this,
there should at least be an ASSERT/error message displayed when someone
decides to use va_arg inside ISR.

va_arg is perfectly usable inside ISRs. Restrictions are as follows:

you compiled with gcc version >= 12, and

you are inside an ISR (recursive or not), and

you make use of va_arg

then IRQs are blocked for the remainder of that ISR preventing further
recursive IRQs.
Can this be "fixed"? Sure. Is it worth the cost? Likely not until proven
otherwise.

So I guess logging from ISR is going to be a thing of the past ...

I'm not going to discuss further with you if you so blatently ignore what I wrote above. I know you're not that dumb.

Right. This only affects nested IRQs, a very important feature in a "real-time" operating system.

Right. This only affects nested IRQs, a very important feature in a
"real-time" operating system.

You expect your app to still be "real-time" with logging from ISRs?

You expect your app to still be "real-time" with logging from ISRs?

Yes, a lower priority ISR, that may be interrupted by a higher priority IRQ. may "log" to a memory buffer.

really, those printk()'s aren't doing any good anyway

Really? Those printk's have been very helpful in analysing this issue (and other nested interrupt-related issues in the past).
I would, at least, prefer to see those left in, but made optional (custom printk macro, ifdef-ed out for ARM64).

Also to re-iterate what I said above,

if you are not going to fix it, make it ASSERT at minimum.

If va_arg is used (the unsupported instructions are executed), there should be at least a warning saying that nested interrupts are not going to work afterwards; otherwise, users will be wasting a lot of time trying to analyse this issue, as we have.

I guess that's a taste thing.  I'm absolutely a debug-via-print person, but I guess my general sense is that needless logging in tests is something to be avoided.   It's extra space in the binary (we still have some small platforms) and extra bytes over the wire (the DSP work is currently struggling with its no-flow-control winstream buffer that can't handle more than 8k of output -- we have some tests that do 8k+ of output synchronously!).

I totally understand both sides. I actually think we should tell the compiler not to use SIMD for printk or anything like that containing va_list va_start() and va_end() in the kernel or at least in exception handlers. Do we really need printk with SIMD in the kernel? Can we disable SIMD/FPU registers for kernel and enable it only for apps?
Anyway, I don't think there is a quick way to really fix it. Based on this, what about following @stephanosio's this suggestion,

If you decide to go down the path of not implementing support for this, there should at least be an ASSERT/error message displayed when someone decides to use va_arg inside ISR.

I try to find out a simple way to add a warning or something when handling FPU trap, finding that, oh there is nested usage of FPU registers :) @npitre @andyross.

I actually think we should tell the compiler not to use SIMD for printk or anything like that containing va_list va_start() and va_end()

Let me check if this can be done.

I actually think we should tell the compiler not to use SIMD for printk or anything like that containing va_list va_start() and va_end()

Let me check if this can be done.

There is a -mgeneral-regs-only and a __attribute__ ((target("general-regs-only"))) for one single function, but not for sure how much effort this will take

I actually think we should tell the compiler not to use SIMD for printk or anything like that containing va_list va_start() and va_end()

Let me check if this can be done.

So there is no way to prevent the NEON register ldp and stp instructions from being emitted without patching GCC -- GCC emits ldp/stp qn for 256-bit copy operations even with -O0.
What we CAN do is to make the ldp/stp qn for 256-bit copy operations be emitted sequentially by disabling the schedule-insns2 optimisation (-fno-schedule-insns2), for example:
        str     q0, [sp, 80]
        str     q1, [sp, 96]
        str     q2, [sp, 112]
        str     q3, [sp, 128]
        str     q4, [sp, 144]
        str     q5, [sp, 160]
        str     q6, [sp, 176]
        str     q7, [sp, 192]
        stp     x1, x2, [sp, 216]
        stp     x3, x4, [sp, 232]
        stp     x5, x6, [sp, 248]
        str     x7, [sp, 264]
        .loc 1 207 2 view .LVU68
        add     x1, sp, 272
        stp     x1, x1, [sp, 48]
        add     x1, sp, 208
        str     x1, [sp, 64]
        mov     w1, -56
        str     w1, [sp, 72]
        mov     w1, -128
        str     w1, [sp, 76]
        .loc 1 209 2 is_stmt 1 view .LVU69
        ldp     q0, q1, [sp, 48]
        stp     q0, q1, [sp, 16]
        add     x1, sp, 16
        bl      vprintk

So there is no way to prevent the NEON register ldp and stp instructions from being emitted without patching GCC -- GCC emits ldp/stp qn for 256-bit copy operations even with -O0.

can't we use -mgeneral-regs-only to disable it?

What we CAN do is to make the ldp/stp qn for 256-bit copy operations be emitted sequentially by disabling the schedule-insns2 optimisation (-fno-schedule-insns2), for example:

But IMHO, if this -fno-schedule-insns2 gonna work, why do not use -mgeneral-regs-only directly so that we don't enable FPU, don't trap, and thus don't need to simulate it?
BTW, where do we enable this -fno-schedule-insns2? Only the files with va_xxusage or globally?

can't we use -mgeneral-regs-only to disable it?

We cannot use floats then.
Also another very important observation I made is that this pattern ("GCC emits ldp/stp qn for 256-bit copy operations") is not just limited to the va_list usage. In fact, GCC can emit ldp/stp qn for any 256-bit copy operations:
        (void)memset(&h, 0x00, sizeof(h));
    40005264:   d2801e02        mov     x2, #0xf0                       // #240
    40005268:   52800001        mov     w1, #0x0                        // #0
        const uint8_t expected[32] = {
    4000526c:   ad400400        ldp     q0, q1, [x0]
        (void)memset(&h, 0x00, sizeof(h));
    40005270:   9105c3e0        add     x0, sp, #0x170
        const uint8_t expected[32] = {
    40005274:   ad0187e0        stp     q0, q1, [sp, #48]
        (void)memset(&h, 0x00, sizeof(h));
    40005278:   94002356        bl      4000dfd0 <memset>

So, this is no longer just printk or va_list problem.

To elaborate on https://github.com/zephyrproject-rtos/zephyr/pull/49806#issuecomment-1235256667:
Compiling the following code with -O0:
#include <stdint.h>
#include <string.h>

void test(void)
{
        volatile uint8_t src[32];
        volatile uint8_t dst[32];

        memcpy(dst, src, 32);
}

We get:
        .arch armv8-a
        .file   "test7.c"
        .text
        .align  2
        .global test
        .type   test, %function
test:
        sub     sp, sp, #64
        mov     x0, sp
        add     x1, sp, 32
        ldp     q0, q1, [x1]
        stp     q0, q1, [x0]
        nop
        add     sp, sp, 64
        ret
        .size   test, .-test
        .ident  "GCC: (Zephyr SDK 0.15.0) 12.1.0"

can't we use -mgeneral-regs-only to disable it?

We cannot use floats then.

I meant disable file by file?

So, this is no longer just printk or va_list problem.

Really, emm, so you prefer simulating insn + -fno-schedule-insns2? But with -fno-schedule-insns2 means we lost many optimizations which may be an issue when someone needs that re-ordering optimization?

Really, emm, so you prefer simulating insn + -fno-schedule-insns2? But with -fno-schedule-insns2 means we lost many optimizations which may be an issue when someone needs that re-ordering optimization?

well, at this point, I think we need to reconsider the approach taken in #35410.

at this point, I think we need to reconsider the approach taken in #35410.

The approach in #35410 is fine. Every va_start() must store q0-q7 on
the stack to form the va_arg object whether or not float arguments
were used. This is so because va_start() simply can't tell if there were
actual float arguments being passed along, and the Aarch64 PCS says those,
if any, must be provided in Q0-Q7.
Given the FP/SIMD register content on ARM64 is huge, we want it to be
saved/restored lazily and only when necessary. Otherwise, doing that on
every context switch adds a significant overhead to thread scheduling
(and a real-time OS wants to minimize context switch overhead).
So, what #35410 does is to simulate the string of STR Qn, [SP, #imm]
that comes with every va_start() in order to avoid saving/restoring
the FP/SIMD context needlessly when no FP arguments are being used (if
FP args were used, the FP context would have been restored already and
the FP trap wouldn't trigger on va_start()).
This being said, the new behavior in gcc v12 as illustrated by
https://github.com/zephyrproject-rtos/zephyr/pull/49806#issuecomment-1235264899
is a completely different thing. The fact that gcc may decide to use Q0-Q1
on a whim to optimize 32-byte copies without the ability to disable it
(and only it as we still might want to use floats some times) that
is the real issue.

So there is no way to prevent the NEON register ldp and stp
instructions from being emitted without patching GCC -- GCC emits
ldp/stp qn for 256-bit copy operations even with -O0.

That is what has to be fixed. We can decide explicitly when we are using
floats or not in the code, obviously. But gcc shouldn't start using those
regs as it sees fit without at least the ability to tell it not to do so.
Simulating those LDP / STP is not the way to go either as performance
will be way worse than the code gcc emitted before gcc v12 in that case.
And forcing a FP/SIMD context save/restore just for those cases (as
it is done right now) completely dwarfs the possible performance gain
from those instructions, and runs into the same documented restrictions
about FP usage from ISRs on ARM64 when those insns execute in ISR code
(it is allowed, but recursive IRQs are no longer possible for the remainder of the ISR).
Therefore I think the best course of action here is to patch gcc in the
Zephyr SDK, possibly adding a command line argument to prevent code
optimizations using SIMD (but still allowing float usage), and submit
it in a gcc bug report.

The fact that gcc may decide to use Q0-Q1 on a whim to optimize 32-byte copies without the ability to disable it
(and only it as we still might want to use floats some times) that is the real issue.

To be fair: gcc is using the registers we told it were available for use.   The architecture doesn't have a published category for "register state that should only be used by optimized code".
The subject came up in the early days of x86_64 too (gcc will use SSE registers in surprising spots) and the solution there was just to save the SIMD state unconditionally on interupt entry and eat the cost (@dcpleung might remember this better than I do).  Maybe that's less of an option for arm64, though.

I will try to track down the GCC commit(s) that introduced this behaviour and see if there is an undocumented option we can use to control this behaviour. If not, we should probably look into adding an option to control that and include the patch in the Zephyr SDK (and possibly to the upstream GCC).

I will try to track down the GCC commit(s) that could have introduced this behaviour:

It turns out https://github.com/gcc-mirror/gcc/commit/9f5361c8cac181dbc79b7302d7241a61e0ce2386 is the culprit, and it thankfully provides an "undocumented" option to turn it off.
I will send a patch for this.

Superseded by https://github.com/zephyrproject-rtos/zephyr/pull/50573


Drop metrics_center

This package is published to pub. It should be in the flutter/packages repo.
Main motivator for this right now is that it depends on googleapis_auth, which transitively depends on other things that are making it difficult to roll NNBD deps.
This has no impact on the repo currently, since the package is vended from pub.

It looks like this PR is doing several different things including an engine roll. Can this be split apart into separate changes?

It looks like this PR is doing several different things including an engine roll. Can this be split apart into separate changes?

Nevermind. I think github was showing me an old commit.

Nevermind. I think github was showing me an old commit.

@zanderso - I think I'm missing something. I only see deleting dev/benchmarks/metrics_center.

@zanderso - I think I'm missing something. I only see deleting dev/benchmarks/metrics_center.

Not waiting for google testing since this code is not imported into google.

Not waiting for google testing since this code is not imported into google.


Error UX Improvement Sync, 6/28/2018

Stripping null and undefined from targets
#25287

We already avoid elaborating when relating primitives to unions.
Action item: don't work on primitives, just work on objects.

User Test Suite
https://github.com/Microsoft/TypeScript/pull/25294

Signed off
@andy-ms, can you take a look at that weird change?

Exposing diagnostic codes to related error spans
https://github.com/Microsoft/TypeScript/pull/25304

Should codes be Error? Suggestion? Info?
Discuss in issue.

Related Error Spans
https://github.com/Microsoft/TypeScript/pull/25257

Reprioritized
Duplicate declaration/redeclared block scoped variable errors

Having the link to the declarations is useful
But usually it's not that you have 100 of the same error, it's usually that you have 100 errors in two files respectively (because they're identical).
Maybe limit 5 duplicate declaration error within a file, taper off with "N other duplicates have been detected"
If all the top-level declarations are duplicate, potentially just consider the file a duplicate?
Maybe say "File A duplicates identifiers x, y, z, a, ..., q from file B".

This one seems good.
We'll figure out how to do it

Action item: file an issue for better consolidation.

Most searched errors (?)

We literally typed in error TS into Google and let it auto-complete.

Probably good enough.

TS2339, TS2307, TS2304, TS2322, TS2531, TS1005, TS2305, TS2345, TS2306
"error ts2304 cannot find name"

Google completes with require, map, buffer, describe, $, asyncIterator, process, symbol, module, promise
Should we provide a better error on these?

Yes!

You're using $ => Suggest jQuery
You're using describe => Did you mean to have types for mocha, jest, etc.?
process, require, module => Node types
Symbol, Promise, Map, Set, asyncIterator => Different lib or target.
Action item: Better elaborations

"error ts2531 object is possibly 'null/undefined'"

What can we do?

Possibly tell people to use the !?
Might be the wrong way to lead users down the right path.

"Typescript error TS1005: ';'"

Recurring issue with Visual Studio installations not overriding existing tsc.

"Argument of type X is not assignable to parameter of type Y"

https://stackoverflow.com/questions/34738799/argument-of-type-x-is-not-assignable-to-parameter-of-type-x
This is the first result

And the top answer is https://stackoverflow.com/a/34738923!

Really, you want to know that you meant to call the value.
Need to know you're checking in an expression context.
Action item: Create better error message for uncalled values

"File is not a module"

How do we explain modules to people in the terminal?
Could provide an explanation in every error

Becomes noisy

Rust has a suggestion to run with --showElaborations.

Provide a link?

But you don't want to provide a link for every error.

"Consider searching Google for-"

lol

We could run the numbers on @types packages by download count and make a reverse map from the globals they expose => suggestions for things to install. A quickfix would turn it into an amazing demo...

We can do that as part of https://github.com/Microsoft/TypeScript/issues/25308. we just need a json file of sorts that map global variable to a package file, and the compiler can use that.


Does not update "option" field with "Once Per Bar Close"

I've been using this tool quite a lot and it works like a charm. Except for today. I tried setting the option with the following config
alert:
  condition:
    primaryLeft: foo bar
    primaryRight: BUY Signal
    secondary: Greater Than
    tertiaryLeft: Value
    tertiaryRight: "0"
  option: Once Per Bar Close

But it did not set this option at all when running live. I had to do this manually after all the alerts were created. The only different I've been doing here is adding a " around the value of tertiaryRight ( "0" )

Hi Christian - I remember there being a bug in an earlier version that didn't handle zero ("0") as an input well..
I thought I fixed it though...
What version are you using? and if you use "1" or "0.01" does it then work?

atat -V
1.8.5

try upgrading

Running npx @alleyway/create-tradingview-alerts-home did not update the ata version.

hmm..strange - that should have worked..
I’ll look into it, but in the meantime you can try updating with the following command:
npm install @alleyway/add-tradingview-alerts-tool@latest

Sorry for late reply. It worked using this command
npm install @alleyway/add-tradingview-alerts-tool@latest

I got it updated. But this seems to be the problem:
When the bot is going to update the option to "Once Per Bar Close" a popup appears, and then nothing happens..
Looks like the popup is distracting the bot and then it cannot put in its value

Hi Christian - thanks for reporting this problem!
I've just released 1.8.11 which should address this issue..if you can confirm that the problem is fixed, then please come back and close this issue. Thanks, Michael

Thanks you. I'll try it out next time I'm going to define some alerts (in a couple of days). Thank you

It works now :). Thanks


Phpunit fixing for php8

@Ocramius I removed 4 tests. phpunit is running already.

Thanks! I will apply this and re-introduce the failing tests (and fix them) though.
Hopefully :ship: -ing soon!


Narrow duplicate events detection criteria to avoid skipping new events

In case of disaster or other anomaly  recovery there may be cases where new events from a channel have id that are previously seen. Matching only id and channel will make listener to skip those events.
We should match events by:
source_id, channel, timestamp and name
in order to detect duplicate events. If any of the above differs then we have a new event that we should add to store.

Commit baff5044e271028cb53d23dd89ae3d4480222cc9 fixes this


Vulkan - 4.0 dev - OS.set_borderless_window causes crash

Godot version: Vulkan branch
OS/device including version: Linux/Manjaro/Arch
Issue description: I call OS.set_borderless_window when my game menu loads up in _ready and it is causing a crash:
in the console:

double free or corruption (!prev)

the crash is in vulkan_context.cpp on the line:
fpDestroySwapchainKHR(device, window->swapchain, NULL);
indeed fpDestroySwapchainKHR is called twice with the same address.
but it looks like fpCreateSwapchainKHR is returning the same address even after the previous swapchain is destroyed?
this might be a potential threading problem as I can see one thread is in VulkanContext::_update_swap_chain due to preparing to draw
while the main thread also in the same code due to a window resize event...
Is this code thread safe?

Is this related https://www.gamedev.net/forums/topic/698431-solved-recreated-dxgi-swap-chain-has-incorrect-previous-buffer-dimensions/ ?

Doesn't seem like the method is still available, so like resolved.


[Feature]: Convert page routing to use history mode

Feature Summary
We should update the routing strategy to use vue's history mode
Detailed Description
Currently the Cuttle vue SPA uses the hash mode which separates all the individual pages with a # e.g. https://cuttle.cards/#/login. This has negative SEO impact because web crawlers do not correctly index pages using #.
To address this, we should update the router configuration to utilize history mode, which would change the routes to https://cuttle.cards/login etc. This will require updating tests that refer to routes using #/, so that they correctly look for the #.
Additionally, per the Vue router docs for history mode, we will need to update the server config/routes.js file in order to define a catch-all route that directs all unrecognized urls to index.html so that vue can handle them. That way if a user navigates directly in their browser to https://cuttle.cards/about they will load the vue app and vue can render the about (rules) page. Without this, the server will not recognize the https://cuttle.cards/about url and direct navigation to pages of the app will 404.

@premtw excellent! This would be a fabulous contribution. Feel free to ask any questions about the issue here. If you have questions about setup or would like real time support, you can use the #code channel of the discord to chat with myself and the other devs

Thanks @itsalaidbacklife Will raise a PR once it is completed

@itsalaidbacklife Could you please add the hacktoberfest tag to this MR?

@premtw I added the hackatoberfest label to the issue, though FYI in general it shouldn't matter because the hacktoberfest topic is applied to the entire repo so any PR's merged into main will count even without the label


Rotate sanity check

bugfix for sanity check

calculation of branch label in sanity check was wrong
sanity check for branch instruction got instruction kind from wrong table
check_regfile aborted when its read operand is small immediate
when a register is used for branch address, BranchInstr.__str__ aborted

rotate sanity check
Added sanity check for below 2 cases, described in "Summary of Instruction Restrictions" in VideoCore IV Architecture Guide.

An instruction that does a vector rotate by r5 must not immediately follow an instruction that writes to r5.
An instruction that does a vector rotate must not immediately follow an instruction that writes to the
accumulator that is being rotated.

conflict check for regfileB and rotate
Added check for below invalid case.
iadd(r0, rb0, r0).rotate(r1, r1, -1)

Thank you!


Date format parametrization

@ivangjxyz  Thanks for moving it over. Somehow it seems like the other stuff is still in there. I'll check if I can just move the date formating improvements without the scss for now.

@ivangjxyz  Thanks for moving it over. Somehow it seems like the other stuff is still in there. I'll check if I can just move the date formating improvements without the scss for now.


Custom Templates not working

One typo in your directions I noticed. It says
Go to the Wunderground plugin directory (wp-content/wunderground/templates/)
but the actual path is wp-content/plugins/wunderground/templates/
Anyway, I have created a wunderground/ folder in my theme and copied over a modified version of the table-horizontal.html template, but it is not being used when I view the website. I also tried creating a wunderground/templates/ directory and putting the template there, but no luck.
Any ideas what I'm doing wrong?

I have the same issue. I'm running wordpress 4.4 and Wunderground 2.1.1

I'm having the same issue, the template files inside my theme are not overwriting.

Them same problem here when using shortcodes and custom template files. When I use the widget the custom template is used.

It seems like the default template is cached so when you add a custom template to your themes folder it looks like the default template is still used. When I disable caching or wait for some time the custom template appears.

I am having same problem, disabled cache, waited some time, tried in private window , no luck. Did anybody managed to solve the issue?


Passing in incorrect key to Rekordbox6Database class does not raise exception

Describe the bug
If you pass in the incorrect key into the Rekordbox6Database class, the init function still runs through and tries to run some SQL commands.
To Reproduce
Steps to reproduce the behavior:
db = Rekordbox6Database(key='iamthewrongkey')

The resulting error is:
Traceback (most recent call last):
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
    self.dialect.do_execute(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 922, in do_execute
    cursor.execute(statement, parameters)
sqlcipher3.dbapi2.DatabaseError: file is not a database

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/benhearn/Documents/traxmanager_dev/TraxManager/traxmanager/utils/rekordbox_utils.py", line 180, in <module>
    change_file_name(move_to, 'Sweely - Nice or Ugly (Test Name Change Mix)')
  File "/Users/benhearn/Documents/traxmanager_dev/TraxManager/traxmanager/utils/rekordbox_utils.py", line 53, in inner
    content_obj = get_folder_path_content_object(db, orig_path)
  File "/Users/benhearn/Documents/traxmanager_dev/TraxManager/traxmanager/utils/rekordbox_utils.py", line 121, in get_folder_path_content_object
    success = content_obj.all()
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 2693, in all
    return self._iter().all()  # type: ignore
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 2847, in _iter
    result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2308, in execute
    return self._execute_internal(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2190, in _execute_internal
    result: Result[Any] = compile_state_cls.orm_execute_statement(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/orm/context.py", line 293, in orm_execute_statement
    result = conn.execute(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1416, in execute
    return meth(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 516, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1639, in _execute_clauseelement
    ret = self._execute_context(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
    return self._exec_single_context(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
    self._handle_dbapi_exception(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2343, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
    self.dialect.do_execute(
  File "/Users/benhearn/miniconda3/envs/traxmanager_dev_venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 922, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.DatabaseError: (sqlcipher3.dbapi2.DatabaseError) file is not a database
[SQL: SELECT "djmdContent"."ID" AS "djmdContent_ID", "djmdContent"."FolderPath" AS "djmdContent_FolderPath", "djmdContent"."FileNameL" AS "djmdContent_FileNameL", "djmdContent"."FileNameS" AS "djmdContent_FileNameS", "djmdContent"."Title" AS "djmdContent_Title", "djmdContent"."ArtistID" AS "djmdContent_ArtistID", "djmdContent"."AlbumID" AS "djmdContent_AlbumID", "djmdContent"."GenreID" AS "djmdContent_GenreID", "djmdContent"."BPM" AS "djmdContent_BPM", "djmdContent"."Length" AS "djmdContent_Length", "djmdContent"."TrackNo" AS "djmdContent_TrackNo", "djmdContent"."BitRate" AS "djmdContent_BitRate", "djmdContent"."BitDepth" AS "djmdContent_BitDepth", "djmdContent"."Commnt" AS "djmdContent_Commnt", "djmdContent"."FileType" AS "djmdContent_FileType", "djmdContent"."Rating" AS "djmdContent_Rating", "djmdContent"."ReleaseYear" AS "djmdContent_ReleaseYear", "djmdContent"."RemixerID" AS "djmdContent_RemixerID", "djmdContent"."LabelID" AS "djmdContent_LabelID", "djmdContent"."OrgArtistID" AS "djmdContent_OrgArtistID", "djmdContent"."KeyID" AS "djmdContent_KeyID", "djmdContent"."StockDate" AS "djmdContent_StockDate", "djmdContent"."ColorID" AS "djmdContent_ColorID", "djmdContent"."DJPlayCount" AS "djmdContent_DJPlayCount", "djmdContent"."ImagePath" AS "djmdContent_ImagePath", "djmdContent"."MasterDBID" AS "djmdContent_MasterDBID", "djmdContent"."MasterSongID" AS "djmdContent_MasterSongID", "djmdContent"."AnalysisDataPath" AS "djmdContent_AnalysisDataPath", "djmdContent"."SearchStr" AS "djmdContent_SearchStr", "djmdContent"."FileSize" AS "djmdContent_FileSize", "djmdContent"."DiscNo" AS "djmdContent_DiscNo", "djmdContent"."ComposerID" AS "djmdContent_ComposerID", "djmdContent"."Subtitle" AS "djmdContent_Subtitle", "djmdContent"."SampleRate" AS "djmdContent_SampleRate", "djmdContent"."DisableQuantize" AS "djmdContent_DisableQuantize", "djmdContent"."Analysed" AS "djmdContent_Analysed", "djmdContent"."ReleaseDate" AS "djmdContent_ReleaseDate", "djmdContent"."DateCreated" AS "djmdContent_DateCreated", "djmdContent"."ContentLink" AS "djmdContent_ContentLink", "djmdContent"."Tag" AS "djmdContent_Tag", "djmdContent"."ModifiedByRBM" AS "djmdContent_ModifiedByRBM", "djmdContent"."HotCueAutoLoad" AS "djmdContent_HotCueAutoLoad", "djmdContent"."DeliveryControl" AS "djmdContent_DeliveryControl", "djmdContent"."DeliveryComment" AS "djmdContent_DeliveryComment", "djmdContent"."CueUpdated" AS "djmdContent_CueUpdated", "djmdContent"."AnalysisUpdated" AS "djmdContent_AnalysisUpdated", "djmdContent"."TrackInfoUpdated" AS "djmdContent_TrackInfoUpdated", "djmdContent"."Lyricist" AS "djmdContent_Lyricist", "djmdContent"."ISRC" AS "djmdContent_ISRC", "djmdContent"."SamplerTrackInfo" AS "djmdContent_SamplerTrackInfo", "djmdContent"."SamplerPlayOffset" AS "djmdContent_SamplerPlayOffset", "djmdContent"."SamplerGain" AS "djmdContent_SamplerGain", "djmdContent"."VideoAssociate" AS "djmdContent_VideoAssociate", "djmdContent"."LyricStatus" AS "djmdContent_LyricStatus", "djmdContent"."ServiceID" AS "djmdContent_ServiceID", "djmdContent"."OrgFolderPath" AS "djmdContent_OrgFolderPath", "djmdContent"."Reserved1" AS "djmdContent_Reserved1", "djmdContent"."Reserved2" AS "djmdContent_Reserved2", "djmdContent"."Reserved3" AS "djmdContent_Reserved3", "djmdContent"."Reserved4" AS "djmdContent_Reserved4", "djmdContent"."ExtInfo" AS "djmdContent_ExtInfo", "djmdContent".rb_file_id AS "djmdContent_rb_file_id", "djmdContent"."DeviceID" AS "djmdContent_DeviceID", "djmdContent"."rb_LocalFolderPath" AS "djmdContent_rb_LocalFolderPath", "djmdContent"."SrcID" AS "djmdContent_SrcID", "djmdContent"."SrcTitle" AS "djmdContent_SrcTitle", "djmdContent"."SrcArtistName" AS "djmdContent_SrcArtistName", "djmdContent"."SrcAlbumName" AS "djmdContent_SrcAlbumName", "djmdContent"."SrcLength" AS "djmdContent_SrcLength", "djmdContent"."UUID" AS "djmdContent_UUID", "djmdContent".rb_data_status AS "djmdContent_rb_data_status", "djmdContent".rb_local_data_status AS "djmdContent_rb_local_data_status", "djmdContent".rb_local_deleted AS "djmdContent_rb_local_deleted", "djmdContent".rb_local_synced AS "djmdContent_rb_local_synced", "djmdContent".usn AS "djmdContent_usn", "djmdContent".rb_local_usn AS "djmdContent_rb_local_usn", "djmdContent".created_at AS "djmdContent_created_at", "djmdContent".updated_at AS "djmdContent_updated_at"
FROM "djmdContent"
WHERE "djmdContent"."FolderPath" = ?]
[parameters: ('/Users/benhearn/Music/test_folder copy/_backup_test_folder/test_folder/test_demo_02/Sweely - Nice Or Ugly.wav',)]
(Background on this error at: https://sqlalche.me/e/20/4xp6)

Expected behavior
Expected an exception to be raised
Environment

Pyrekordbox version:
Latest

This should do the trick. If the key is passed manually the first few characters are checked. If it doesn't seem valid a ValueError is raised.


Uzbek language support for default labels

Added Uzbek language support for default frontend labels.

Thanks for your contribution.
After comparing with Google Translate, I seem to have found a small problem in your translation. The pin widget is a term in pywebio (see doc), so I suggest to keep the pin word in translation for duplicated_pin_name sentence.

Thanks for your feedback. I changed the translation and modified quotes.


Infinite loop in from_fileobj method with an invalid pcd file

When attempting to read an invalid PCD file using the pypcd4.PointCloud.from_path method, the program enters an infinite loop.
To Reproduce

Create an empty file named test.pcd:

open("test.pcd", "w").close()

Attempt to load the file using PointCloud.from_path :

from pypcd4 import PointCloud
pcd = PointCloud.from_path("test.pcd")

Expected behavior
The loop in the from_fileobj method should exit if the file is not a valid PCD file, possibly by raising an appropriate exception.
Actual Behavior
The loop runs indefinitely because the condition if lines[-1].startswith("DATA"): is never met for an invalid file.
https://github.com/MapIV/pypcd4/blob/a7d9d650d6cec0a0ac0f1734893c2296e519aba4/src/pypcd4/pypcd4.py#L219-L227
Versions:

pypcd4: 0.4.11

Thank you for your report. We solved this issue for the new API in v1.0.1, additionally, we backported it to the legacy API in v0.4.12.


Remove unwanted slashes conversion in paths

Ensure that SYNOLOGY will receive POSIX paths and names in list and get requests
Was not working in windows, due to  paths being converted to 'backslashed' notation even if the user have provided correct slashes in console

Thank you, tested and works fine on DSM7


batctl: 2019.3 -> 2019.4

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/batctl/versions.
meta.description for batctl is: '"B.A.T.M.A.N. routing protocol in a linux kernel module for layer 2, control tool"'.
meta.homepage for batctl is: '"https://www.open-mesh.org/projects/batman-adv/wiki/Wiki"

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2019.4 with grep in /nix/store/a8rdgks58kk8sji6glhl52114zihdir4-batctl-2019.4

directory tree listing: https://gist.github.com/496d04f10df33961c11ce398e0bcee8b

du listing: https://gist.github.com/964e8ec7b03f7ece4cb6ac11cdb897e2

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)
1 package rebuild(s)
1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
batctl

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/a8rdgks58kk8sji6glhl52114zihdir4-batctl-2019.4 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A batctl https://github.com/r-ryantm/nixpkgs/archive/4c24d297d0409b6cdeeb491244610dc9fe4c7141.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/a8rdgks58kk8sji6glhl52114zihdir4-batctl-2019.4
ls -la /nix/store/a8rdgks58kk8sji6glhl52114zihdir4-batctl-2019.4/bin

cc @fpletz for testing.

Note: All batman-adv related packages have to be bumped together.

@fpletz should I stop updating them with r-ryantm? Or, is the update a useful reminder?

oops, looks like i comment on the wrong PR :(


Add no trolley running screen to iOS / Android app

As a follow on - what will make sense on this screen to a visitor?

List all routes (as the web app does today)?  Note that route variations and new routes may add many entries to this screen.
List the next day that the Trolley(s) will be out, along with routes for that day?

Jeremy suggested maybe having just the next time the trolley runs as the main message with some type of link to the full schedule if interested. That seems to make sense to me.


OPS-158: Boostrap CI

This will result in the upload of : linkurious-lke-plugin-data-table-1.0.3-OPS-158.4.lke
We need to discuss plugin names

We need a proper .eslintrc.js file too

the plugin name has no impact, the name used by LKE is from the internal manifest.

@davidrapin  thx. Have updated name to match our discussion


setting up MSVC Environment - page says "use a developer command prompt shortcut," but not where to get it

I would like to set up a command prompt environment, in particular to use the nmake command.
This page ostensibly addresses that.  It says:
"Even a simple Visual Studio installation may set twenty or more environment variables."
and because of that
"we strongly recommend that you use a developer command prompt shortcut or one of the customized command files to set them."
This is precisely what I would like to do. Where do I get the mentioned developer command prompt shortcut?
The above page links to another page here but that is unhelpful in that it only points us back to our starting page above. The two pages form a circular loop that unfortunately does not include the necessary information they seemingly address.

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

ID: fbbe18ff-e775-1259-78fb-53681be876c2
Version Independent ID: 2e3dbd10-3e65-e65f-8f59-909800f5bf62
Content: Set the Path and Environment Variables for Command-Line Builds
Content Source: docs/build/setting-the-path-and-environment-variables-for-command-line-builds.md
Product: visual-cpp
Technology: cpp-tools
GitHub Login: @corob-msft
Microsoft Alias: corob

@Patrick5
I'm sorry you're having trouble finding the information you're looking for. The page you've complained about really ought to just be a section on the other page you reference, since that one has the instructions you're looking for.
The developer command prompt shortcuts (DCPs, for short) are normally installed in the Windows Start menu. That's described on the Use the Microsoft C++ toolset from the command line page, in the section titled Developer command prompt shortcuts.
If you want to know where one of these shortcuts lives on disk, you can right-click the shortcut in the Start menu, then choose More > Open file location on the pop-up menu. The shortcuts themselves just invoke the command processor with one of the developer command prompt .bat command files and any appropriate parameters. (You can see this for yourself if you right-click the shortcut file you found at that file location, choose Properties, and look under the Shortcut tab for Target.) For example, on my machine, the primary DCP invokes:
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"

The x64 native DCP invokes:
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"

All of this is documented later on the Use the Microsoft C++ toolset from the command line page. You can invoke any of these same .bat command files in a plain command window to turn it into a developer command prompt. We recommend you only do that once per window.
Hope that's enough to get you started.

Closing as fixed. The referenced document has been folded into the Use the Microsoft C++ toolset from the command line page.


Make it possible to look up ComponentName without interning the string

In theory if I have a string I should be able to hash it and find the corresponding value in a BTreeSet<ComponentName>, however in practice to find the value in the set I have to create a ComponentName which does the interning.

At a glance, I think that to make this possible, what you need is:

pub struct UninternedString(str);
impl Hash for UninternedString { /* mimic impl Hash for InternedString */ }
impl Borrow<UninternedString> for InternedString
impl AsRef<UninternedString> for &str (must not be Borrow since it hashes differently)