[6/?] - lnwallet+chancloser: update channel state machine and co-op close for musig2 flow

Change Description
Depends on https://github.com/lightningnetwork/lnd/pull/7344
Only the last 12 commits are new.
In this PR, we update the channel state machine to be aware of the new musig2 flow. Along the way, we update some util functions to ensure we can use them to generate scripts/transactions for both segwit v0 and v1 channels.
In this new flow, each time we send a signature, we sig a partial sig along with the nonce that we used to sign. Upon receiving that signature, the remote party will use the nonce to complete their local session (for that state).
Each time a signature is received, a party will generate another nonce that'll be used to create their next local state. This next local/verification nonce is then sent alongside the revoke_and_ack message. Upon receiving the revocation, the party that originally sent the sig, can then use the new local nonce to prep the session for the next state.
We also update the co-op close state machine to be proper taproot aware. This involves setting the new nonce and partial signatures fields in the shutdown and closing signed messages. The other big change here is that we'll short circuit most of the co-op close flow. Rather than attempt a "negotiation", we'll just have the responder accept w/e the initiator sends, as they're the ones that pay the fees in the end.

In the next PR, we'll hook the new reservation flow up to the funding manager, and fill out the other functionality needed for the other sub-systems to be aware of the new channel type.
Steps to Test
Steps for reviewers to follow to test the change.
Pull Request Checklist
Testing

[ ] Your PR passes all CI checks.
[ ] Tests covering the positive and negative (error paths) are included.
[ ] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[ ] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[ ] Commits follow the Ideal Git Commit Structure.
[ ] Any new logging statements use an appropriate subsystem and logging level.
[ ]  There is a change description in the release notes, or [skip ci] in the commit message for small changes.

📝 Please see our  Contribution Guidelines for further guidance.

@crypt-iq: review reminder
@roasbeef, remember to re-request review from reviewers when ready

@crypt-iq: review reminder
@roasbeef, remember to re-request review from reviewers when ready

@crypt-iq: review reminder
@ellemouton: review reminder
@roasbeef, remember to re-request review from reviewers when ready

@roasbeef, remember to re-request review from reviewers when ready

@crypt-iq: review reminder
@roasbeef, remember to re-request review from reviewers when ready

@crypt-iq: review reminder
@roasbeef, remember to re-request review from reviewers when ready

@crypt-iq: review reminder
@roasbeef, remember to re-request review from reviewers when ready

@crypt-iq: review reminder
@roasbeef, remember to re-request review from reviewers when ready

@roasbeef, remember to re-request review from reviewers when ready

@roasbeef, remember to re-request review from reviewers when ready

@roasbeef, remember to re-request review from reviewers when ready

@roasbeef, remember to re-request review from reviewers when ready

@roasbeef, remember to re-request review from reviewers when ready

@yyforyongyu: review reminder
@crypt-iq: review reminder
@ellemouton: review reminder
@roasbeef, remember to re-request review from reviewers when ready

Pushed up a new version, added tests for co-op close, and also tests for channel re-establish, PTAL!


Point the git deps to the gtk-rs monorepo

I'm not sure why the CI is failing, since I haven't touched the Gir file: Invalid indent in ./webkit2gtk-sys/Gir.toml:11: it must be a multiple of 4! :(

The other failures seem to be because of javascript-core issues for which I will push another PR in a moment.

This need to be merged with #82 for it to work as the code generated by gir changed and it can't work like this

Ok, I rebased #82 on this one so I'm closing it here.


Added a more robust integer nonce factory. Use it for BTC-e.

I'm hoping to end the BTC-e nonce troubles once and for all. This is a v3 / SynchronizedValueFactory re-implementation of the nonce factory I implemented and described in #756. (Please see that issue or/and the test included in this PR if you're interested why this PR is necessary. Tl;dr: it supports several exchange instances operating at the same time.)
I've reviewed the many previous BTCE nonce issues and pull requests and I believe this should resolve all of them. (It doesn't resolve my GAE issue 100%, but it's good enough.)
This PR includes a test that fails with the AtomicLongIncrementalTime2013NonceFactory that is currently used for BTC-e, and passes with the new TimestampIncrementingNonceFactory.
A few notes:

I think the new TimestampIncrementingNonceFactory is the best choice for any exchange that uses an integer nonce. (For long nonces, I think CurrentTimeNonceFactory is the best choice.)
Correct me if I'm wrong but I don't think AtomicInteger (or AtomicLong) is necessary since the nonce factories are used in a synchronized manner anyway.
This nonce factory is compatible with the one that was previously used for BTC-e so people won't have to drop and re-create the API keys they are already using. (The exception to this could be if someone constantly (as opposed to occasionally) makes more than 4 requests per second, which I think is impossible anyway.)

Yeah, some of the nonce factories are far superior than others and the AtomicLong probably isn't necessary like you say.

I'm not sure about this patch. It's not a problem with BTC-e, it's a problem with user environment. We should either use this ValueGenerator impl everywhere if it's so good, or provide a way for users to pass a custom one.

@rafalkrupinski A few comments.

During my refactor, I made about 8 new NonceFactory classes. I just pulled out hardcoded nonce functions from the modules and made a Nonce Factory, or used another factory if it already existed.
Yeah, some of the nonce factories are far superior than others and it would be nice if all the inferior ones were replaced. I cannot do that though as I'd probably break something.
Users cannot pass whatever custom one they please, like you said. Should we make it part of the ExchangeSpecification?

I think providing a way to provide custom might be a good idea, since it seems in different environments or usage scenarios different nonce factories will be ideal. But it should be optional, so a default nonce factory will be used if a user doesn't set up a custom one.
As @timmolter said, replacing existing nonce factories with a different one would render some existing users' API keys useless (because in some cases the new nonce factory might start producing lower nonces than the old one).

@rafalkrupinski , what are your concrete concerns about this patch? Do you see anything that is worse now after the patch than it was before? This patch just replaces one nonce factory with another that is better in some scenarios (like the one in the included test case) and not worse in any known scenarios. It seems to me the issues you've raised (which are valid issues) are not really directly connected with this particular patch.

@mmazi

what are your concrete concerns about this patch?

You said said it:

in different environments or usage scenarios different nonce factories will be ideal.

My concern is that we're putting user-specific fix in a common place. Someone might need something different.
@timmolter Yes, I think exchange specification is the place. Keep in mind, users must be aware what generic argument (Long vs Int) is required by the the exchange.

@rafalkrupinski

My concern is that we're putting user-specific fix in a common place.

In my view, the new nonce factory is no more user-specific than the previous one; you could call the previous one a user-specific fix too (eg. compared to a simple counter nonce).

Someone might need something different.

This was just as true before this patch. (In fact, this was the reason for this patch.) Moreover, this patch strictly reduces the set of people that might need something different.
I think a new issue should be opened for what you're saying. I agree it's a valid issue.


{Home}/{End} {Page up}/{Page down} keys cause gallery to lose focus

Windows, Videohub 2.x and 3.x all seem affected by this issue.
Steps to reproduce: You have the gallery in focus. You hit page down (or other key) on your keyboard. The gallery moves down ~1 page. You hit page down (or other key) on your keyboard. Nothing happens. Click inside the gallery and it all starts working again.
Same for home/end page up/page down. I'll look into the code to see if there's an obvious reason, but something is bound to these keys that is causing the the gallery to lose focus.
Happens in all gallery views. Thanks!

This doesn't appear to happen  when one of this navigation key presses does not cause the loading of new elements. AKA: if everything is already rendered but things near the top/bottom are partially obscured you press these navigation keys and focus is not lost.

You can use a gallery (let's use thumbnail view for now) and if you adjust the size of the thumbnails such that they cover multiple pages: this error happens.
You can then adjust the sizing such that thumbnails all all rendered, but partially obscured: no issues with focus lost.
I don't have an obvious candidate that explains this behavior in that I assume these navigation keys are not custom bound to custom actions and we're letting electronjs browerwindow thing handle these key presses. Some supplemental action/event/message passing thing between the electronjs components is probably having the side effect of altering what has focus.

Going to dig into places where a .blur() or .focus() is called and see if I can find an obvious candidate.

I can confirm that these navigation keys do not cause the windows "window" to lose focus. WinAPI Calls do show that it stays the active window.
Furthermore I can confirm that other Ctrl-F style hotkeys that change the focus continue to work.

In developer mode (npm start from source) this lose of focus does not happen. All the stranger.

You can quickly hit these navigation keys and you might get more than one respected before losing focus. Useful to know that the navigation key itself is not causing the blur atomically.

Page Up seems to lose focus less often... all the stranger.

related? I think this is ngx-virtual-scroller oddities
https://github.com/rintoj/ngx-virtual-scroller/issues/213
https://github.com/rintoj/ngx-virtual-scroller/issues/144


Reworked cefchat resource. (supports hex color codes, and html tags)

Coded in ES6.
I hope you will enjoy it. 👍

Neat, thanks!


Use RemoteAST in GetDynamicTypeAndAddress()

There was a lot of redundant logic here that predates RemoteAST.
I started off by trying to simplify debug info emission in the Swift side by only emitting debug values for top-level generic parameter types and not member types; in lldb we should be able to look up member types just by calling Type::subst(). Unfortunately, this broke test cases where we were getting the dynamic type of values whose type is a member type. Turns out this was handled as part of a special "generic parameter or member type" code path, which would map the type to a concrete type, and then get the dynamic type of the concrete type.
This "get dynamic type of concrete type resulting from concretizing a generic parameter type" code path was totally different from the "get dynamic type of concrete type" code path. The former used RemoteAST, the latter did not. Merging these two code paths is what this PR is all about.
The non-RemoteAST code path handled a few cases that the RemoteAST code path did not, such as values materialized in host memory -- this is how results come back from the expression evaluator, which wants to "freeze" them so that they're available later. It also handled imported types and some other edge cases.
Now that RemoteAST on the Swift side is more capable, all it took was adding some support to lldb's MemoryReader implementation for reading memory from a specified local buffer to use RemoteAST for all the other cases as well.
Fixes rdar://40706055 (but really a whole lot more than that).

@swift-ci Please test

@swift-ci Please test

@dcci I figured out the problem with Error existentials. It was in SwiftLanguageRuntime::CalculateErrorValue(). There was also a RemoteAST bug on Linux with error values. This should now be ready to merge.

https://github.com/apple/swift/pull/22975
@swift-ci Please test

@swift-ci Please test


homebridge v0.4.39 crash

Expected Behavior
Happy to see the native nodejs Bonjour in v0.4.39!  I'm testing my plugins for compatibility.  I did a sudo npm -g uninstall homebridge followed by npm -g install homebridge --unsafe-perm.
Current Behavior
When my homebridge-zp plugin is active, homebridge crashes shortly after starting the server, see log below.  I'm not sure to what the "Service name" refers: is this the service as advertised by Bonjour or the HAP service?  Afaik, homebridge-zp doens't do anything with Bonjour, just like my other plugins.  Unlike my other plugins, it does create a web server (to receive notifications from the Sonos players).  I do have several other homebridge instances running on my network, on different servers, with different usernames /mac addresses (double-checked that) and different Bonjour service names.
I did notice that the Bonjour advertisement is a lot more noisier than for homebridge v0.4.38, see attached screenshot from Bonjour Browser (server is on v0.4.38; mbpr on v0.4.39).  Also note the -CAD8 suffix to the name.  Obviously this screenshot was taken without homebridge-zp in the config.json.

Steps to Reproduce (for bugs)
Run homebridge -D.
Versions

Homebridge: v0.4.39
Node:       v8.11.1
OS:         macOS 10.13.4

Configuration
{
  "bridge": {
    "name": "Homebridge - mbpr",
    "username": "CC:22:3D:E3:CE:30",
    "port": 51826,
    "pin": "987-65-432"
  },
  "platforms": [
    {
      "platform": "ZP",
      "speakers": true,
      "searchTimeout": 15
    }
  ]
}

Homebridge Log / Command Output
[2018-5-6 10:17:16] Loaded plugin: homebridge-hue
[2018-5-6 10:17:16] Registering platform 'homebridge-hue.Hue'
[2018-5-6 10:17:16] ---
[2018-5-6 10:17:16] Loaded plugin: homebridge-music
[2018-5-6 10:17:16] Registering platform 'homebridge-music.Music'
[2018-5-6 10:17:16] ---
[2018-5-6 10:17:16] Loaded plugin: homebridge-p1
[2018-5-6 10:17:16] Registering platform 'homebridge-p1.P1'
[2018-5-6 10:17:16] ---
[2018-5-6 10:17:16] Loaded plugin: homebridge-ws
[2018-5-6 10:17:16] Registering platform 'homebridge-ws.WS'
[2018-5-6 10:17:16] ---
[2018-5-6 10:17:16] Loaded plugin: homebridge-zp
[2018-5-6 10:17:16] Registering platform 'homebridge-zp.ZP'
[2018-5-6 10:17:16] ---
[2018-5-6 10:17:16] Loaded config.json with 0 accessories and 1 platforms.
[2018-5-6 10:17:16] ---
[2018-5-6 10:17:16] Loading 1 platforms...
[2018-5-6 10:17:16] [ZP] Initializing ZP platform...
[2018-5-6 10:17:16] [ZP] homebridge-zp v0.2.18, node v8.11.1, homebridge v0.4.39
[2018-5-6 10:17:16] [ZP] warning: not using recommended homebridge version v0.4.38
[2018-5-6 10:17:16] [ZP] config.json: {"platform":"ZP","speakers":true,"searchTimeout":15}
[2018-5-6 10:17:16] [ZP] listening on http://<IP_ADDRESS>:56566/notify
[2018-5-6 10:17:16] [ZP] Home: setup ZP90 v8.5 player RINCON_000E58A8171201400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:17] [ZP] Living Room: ignore slave ZPS1 v8.5 player RINCON_5CAAFD7C941401400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:17] [ZP] Dining Room: ignore slave ZPS3 v8.5 player RINCON_B8E937DFD0A201400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:17] [ZP] Bathroom: setup ZPS12 v8.5 player RINCON_949F3E0E142C01400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:17] [ZP] Dining Room: setup ZPS3 v8.5 player RINCON_B8E937DF892C01400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:17] [ZP] Bedroom: setup ZPS1 v8.5 player RINCON_5CAAFD9EAF0A01400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:17] [ZP] Living Room: setup ZPS9 v8.5 player RINCON_5CAAFD1FA0D701400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:17] [ZP] Living Room: ignore slave ZPS1 v8.5 player RINCON_5CAAFD7C940401400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:17] [ZP] Bedroom: ignore slave ZPS1 v8.5 player RINCON_5CAAFD9EAFD401400 at <IP_ADDRESS>:1400
[2018-5-6 10:17:31] [ZP] Home Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/GroupManagement/Event
[2018-5-6 10:17:31] [ZP] Bathroom Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/GroupManagement/Event
[2018-5-6 10:17:31] [ZP] Dining Room Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/GroupManagement/Event
[2018-5-6 10:17:31] [ZP] Bedroom Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/GroupManagement/Event
[2018-5-6 10:17:31] [ZP] Living Room Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/GroupManagement/Event
[2018-5-6 10:17:31] [ZP] Initializing platform accessory 'Home Sonos'...
[2018-5-6 10:17:31] [ZP] Initializing platform accessory 'Bathroom Sonos'...
[2018-5-6 10:17:31] [ZP] Initializing platform accessory 'Dining Room Sonos'...
[2018-5-6 10:17:31] [ZP] Initializing platform accessory 'Bedroom Sonos'...
[2018-5-6 10:17:31] [ZP] Initializing platform accessory 'Living Room Sonos'...
Setup Payload:
X-HM://00253QFZS4K79
Scan this code with your HomeKit app on your iOS device to pair with Homebridge:
[Cut]
Or enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ 987-65-432 │
    └────────────┘

[2018-5-6 10:17:31] Homebridge is running on port 51826.
[2018-5-6 10:17:31] [ZP] Living Room Sonos: new GroupManagement subscription uuid:RINCON_5CAAFD1FA0D701400_sub0000000366 (timeout Second-1800)
[2018-5-6 10:17:31] [ZP] Living Room Sonos: GroupManagement event
[2018-5-6 10:17:31] [ZP] Home Sonos: new GroupManagement subscription uuid:RINCON_000E58A8171201400_sub0000000548 (timeout Second-1800)
[2018-5-6 10:17:31] [ZP] Dining Room Sonos: new GroupManagement subscription uuid:RINCON_B8E937DF892C01400_sub0000000430 (timeout Second-1800)
[2018-5-6 10:17:31] [ZP] Bedroom Sonos: new GroupManagement subscription uuid:RINCON_5CAAFD9EAF0A01400_sub0000000360 (timeout Second-1800)
[2018-5-6 10:17:31] [ZP] Bathroom Sonos: new GroupManagement subscription uuid:RINCON_949F3E0E142C01400_sub0000000465 (timeout Second-1800)
[2018-5-6 10:17:31] [ZP] Dining Room Sonos: GroupManagement event
[2018-5-6 10:17:31] [ZP] Dining Room Sonos: coordinator for group Dining Room
[2018-5-6 10:17:31] [ZP] Bedroom Sonos: GroupManagement event
[2018-5-6 10:17:31] [ZP] Home Sonos: GroupManagement event
[2018-5-6 10:17:31] [ZP] Home Sonos: coordinator for group Home
[2018-5-6 10:17:31] [ZP] Home Sonos: platform coordinator
[2018-5-6 10:17:31] [ZP] Bedroom Sonos: copy group characteristics from Home Sonos
[2018-5-6 10:17:31] [ZP] Bedroom Sonos: set member sonos group from undefined to Home
[2018-5-6 10:17:31] [ZP] Living Room Sonos: copy group characteristics from Home Sonos
[2018-5-6 10:17:31] [ZP] Living Room Sonos: set member sonos group from undefined to Home
[2018-5-6 10:17:31] [ZP] Bathroom Sonos: GroupManagement event
[2018-5-6 10:17:31] [ZP] Bathroom Sonos: coordinator for group Bathroom
[2018-5-6 10:17:32] [ZP] Living Room Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/AVTransport/Event
[2018-5-6 10:17:32] [ZP] Living Room Sonos: new AVTransport subscription uuid:RINCON_5CAAFD1FA0D701400_sub0000000367 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Living Room Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/GroupRenderingControl/Event
[2018-5-6 10:17:32] [ZP] Living Room Sonos: new GroupRenderingControl subscription uuid:RINCON_5CAAFD1FA0D701400_sub0000000368 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Living Room Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/RenderingControl/Event
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: member of group Home Sonos
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: copy group characteristics from Home Sonos
[2018-5-6 10:17:32] [ZP] Living Room Sonos: member of group Home Sonos
[2018-5-6 10:17:32] [ZP] Living Room Sonos: copy group characteristics from Home Sonos
[2018-5-6 10:17:32] [ZP] Home Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/AVTransport/Event
[2018-5-6 10:17:32] [ZP] Dining Room Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/AVTransport/Event
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/AVTransport/Event
[2018-5-6 10:17:32] [ZP] Bathroom Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/AVTransport/Event
[2018-5-6 10:17:32] [ZP] Living Room Sonos: new RenderingControl subscription uuid:RINCON_5CAAFD1FA0D701400_sub0000000369 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Home Sonos: new AVTransport subscription uuid:RINCON_000E58A8171201400_sub0000000549 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Home Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/GroupRenderingControl/Event
[2018-5-6 10:17:32] [ZP] Living Room Sonos: AVTransport event
[2018-5-6 10:17:32] [ZP] Living Room Sonos: power (play/pause) changed from undefined to true
[2018-5-6 10:17:32] [ZP] Home Sonos: new GroupRenderingControl subscription uuid:RINCON_000E58A8171201400_sub0000000550 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Home Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/RenderingControl/Event
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: new AVTransport subscription uuid:RINCON_5CAAFD9EAF0A01400_sub0000000361 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/GroupRenderingControl/Event
[2018-5-6 10:17:32] [ZP] Dining Room Sonos: new AVTransport subscription uuid:RINCON_B8E937DF892C01400_sub0000000431 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Dining Room Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/GroupRenderingControl/Event
[2018-5-6 10:17:32] [ZP] Home Sonos: new RenderingControl subscription uuid:RINCON_000E58A8171201400_sub0000000551 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Home Sonos: AVTransport event
[2018-5-6 10:17:32] [ZP] Home Sonos: power (play/pause) changed from undefined to true
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: copy group characteristics from Home Sonos
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: set member power (play/pause) from undefined to true
[2018-5-6 10:17:32] [ZP] Living Room Sonos: copy group characteristics from Home Sonos
[2018-5-6 10:17:32] [ZP] Home Sonos: current track changed from undefined to THE ROLLING STONES - LITTLE RED ROOSTER
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: copy group characteristics from Home Sonos
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: set member track from undefined to THE ROLLING STONES - LITTLE RED ROOSTER
[2018-5-6 10:17:32] [ZP] Living Room Sonos: copy group characteristics from Home Sonos
[2018-5-6 10:17:32] [ZP] Living Room Sonos: set member track from undefined to THE ROLLING STONES - LITTLE RED ROOSTER
[2018-5-6 10:17:32] [ZP] Bathroom Sonos: new AVTransport subscription uuid:RINCON_949F3E0E142C01400_sub0000000466 (timeout Second-1800)
[2018-5-6 10:17:32] [ZP] Bathroom Sonos: SUBSCRIBE http://<IP_ADDRESS>:1400/MediaRenderer/GroupRenderingControl/Event
[2018-5-6 10:17:32] [ZP] Dining Room Sonos: AVTransport event
[2018-5-6 10:17:32] [ZP] Dining Room Sonos: power (play/pause) changed from undefined to false
[2018-5-6 10:17:32] [ZP] Dining Room Sonos: current track changed from undefined to Arrow Classic Rock
[2018-5-6 10:17:32] [ZP] Bedroom Sonos: AVTransport event
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: Service name is already in use on the network
    at Registry._onProbeComplete (/usr/local/lib/node_modules/homebridge/node_modules/bonjour-hap/lib/Registry.js:106:27)
    at Prober.done (/usr/local/lib/node_modules/homebridge/node_modules/bonjour-hap/lib/Prober.js:67:10)
    at Prober.onMDNSresponse (/usr/local/lib/node_modules/homebridge/node_modules/bonjour-hap/lib/Prober.js:61:102)
    at emitTwo (events.js:126:13)
    at EventEmitter.emit (events.js:214:7)
    at Socket.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/multicast-dns/index.js:49:43)
    at emitTwo (events.js:126:13)
    at Socket.emit (events.js:214:7)
    at UDP.onMessage [as onmessage] (dgram.js:659:8)

Did some more testing.  I create the server using http.createServer().  When I comment out the server.listen(), no crash occurs (but homebridge-zp doesn't receive any state from the Sonos players...).  I tried homebridge-config-ui-x, which also creates a server, but that one seems to work just fine.
I would appreciate any pointers as to what's happening here.

About advertising interfaces part, I think the implementation advertises on all interfaces it can see, which for macOS, IPv6 has a lot of transient addresses. The suffix was added for the exact purpose of preventing Service name is already in use on the network.
I'm not exactly sure why it would think the service name is already exist on network in this case...

Thanks, @KhaosT

I'm not exactly sure why it would think the service name is already exist on network in this case...

Because it tries to create the same advertisement twice, for the HAP server and for the homebridge-zp server?  Is there some debug option for hap-bonjour?
Did some more testing.  I create the homebridge-zp server before the HAP server is created, because I need to discover the Sonos players and return them to homebridge (still using the static accessory model).  homebridge-config-ui-x creates its server after the HAP server has been created (and, presumably, after the Bonjour advertisement has been setup?).  When I create the homebridge-zp server after the HAP server has been created, no crash (and no accessories exposed...).

I think the implementation advertises on all interfaces it can see, which for macOS, IPv6 has a lot of transient addresses.

Probably, the public IPv6 addresses are listed in ifconfig.  The local link addresses (fe80::) aren't though.  Anyway, probably not related to the issue.

@ebaauw Can you try manually comment out this._advertisement.updateTxt(txtRecord); in Advertiser.js and see if that still breaks homebridge-zp?

Actually can you try v4.40.0 first?

No joy in v0.4.40.
I can workaround the issue in homebridge-zp, by closing the server, just before the callback to homebridge from the platform accessories() function, and re-opening it a second later.  Not sure if the crash wouldn't appear later, when the Bonjour advertisement is updated or renewed...

@ebaauw Alright, now can you try put back updateTxt() but edit ./node_modules/bonjour-hap/lib/Service.js, adding if (!this._activated) { return } as first line to updateTxt function there?

Like this?  No joy.
  updateTxt: function (txt) {
    if (!this._activated) { return }
    this._unpublish()

    if (this.packet) { this.emit('service-packet-change', this.packet, this.onAnnounceComplete.bind(this)) }

    this.packet = null
    this.txt = txt
    this.announce()
  },

How about this?
  updateTxt: function (txt) {
    if (!this.published) { return }

    this._unpublish()

    if (this.packet) { this.emit('service-packet-change', this.packet, this.onAnnounceComplete.bind(this)) }

    this.packet = null
    this.txt = txt
    this.announce()
  }

Alright those changes are in v0.4.42 now. It would be nice if npm has a progressional rollout then I can have plugin developers to test it before ship it out...
I'm really sorry for breaking the stuff for you guys. 😞

Alright those changes are in v0.4.42 now.

Thanks, this version seems to work.

It would be nice if npm has a progressional rollout then I can have plugin developers to test it before ship it out...

You can npm publish --tag to use a different tag than latest, so it's installed only through sudo npm -g i homebridge@betaor something.  When it's OK, you can simply update the tag with npm dist-tag.

I'm really sorry for breaking the stuff for you guys.

Not to worry, and, as always, thank you very much for your hard work!

Alright those changes are in v0.4.42 now. It would be nice if npm has a progressional rollout then I can have plugin developers to test it before ship it out... ...

@KhaosT are you kidding? thanks for your great work!!
Sent with GitHawk

I get the same error using v.0.4.44. Should I try an older version?

@mgoeller change the mac address of your second instance

The username ("MAC address") in both config files is of course changed.


Open Graph og:url tags over-canonicalize all URLs back to the home page

Split from #12187:

By the way, it turns out all our OpenGraph tags are busted anyway because we always set og:url to point to the home page (which redirects to /login, whose og:url points back to the home page).

I think we either want to delete our og:url tags (if that DTRT) or specify the current page's address (I think relative links don't work?); I'm not sure we have a use case for pointing to a different canonical URL from the current one right now.

@punchagan this may be worth looking at while you're working on open graph stuff.

@zulipbot claim

og:url is a required property

og:url - The canonical URL of your object that will be used as its permanent ID in the graph, e.g., "http://www.imdb.com/title/tt0117500/".


Infinite loop during PolyTree Boolean operations

While working on the PolyTree Boolean operations demo, an infinite loop has been found.
When the polytree controlled by the mouse is dragged across the stationary polytree, when the "holes" intersect, the program freezes due to infinite loop.
A test has been created that mimmicks this behaviour, by using a for loop to translate a polytree across a stationary polytree while also performing a boolean operation at every stage. This recreates the error condition.

Have also found that if outer polygons (the solid part) intersect but the holes do not, during a subtraction operations the "hole" polygon of the stationary polytree is not returned.


Add support for minimum length vectors

Rationale
The current Vect API provided in Data.FastVect.FastVect can be useful in many scenarios where arrays are created statically. However, in cases when dealing with dynamically sized vectors, still partial static length information can be preserved throughout multiple transformations. This PR aims to leverage the existing Vect implementation to have some static guarantees for dynamically sized arrays and possibly to enable one unifed API to many operations performed on either an Array or a NonEmptyArray by offering a more lax guarantee on the type level index.
One particular application of this could be that appending a dynamically sized Array to a Vect would preserve the minimum length information of the resulting MinLenVect being able to safely index or extract as many elements from the resulting MinLenVect up to the Vect length. Also inspired by the Haskell minlen package.
New MinLenVect API
Included Data.FastVect.MinLenVect module for minimum length indexed vectors.MinLenVect newtype replicating Vect. The API is the same as for Vect with the exception of:

Exclusion of the adjust and adjustM functions as it does not make much sense to have those for minimum length indexed vectors IMO
fromArray successfully generates a MinLenVect in case the array length is greater or equal than the supplied type level minimum length index.
Inclusion of fromNonEmptyArray
Inclusion of fromUnsizedArray and fromUnsizedNonEmptyArray , that only take the array as an argument and return a MinLenVect 0 elem and a MinLenVect 1 elem in each case.
Inclusion of toVect that attempts to convert to a standard length indexed Vect if the array length is equal to the type level minimum length index and fromVect that just converts a Vect to a MinLenVect

Implementation
The implementation is the same as in Data.FastVect.FastVect except for the few API changes in the new module, which could be a concern for maintability because of all the code duplication. I was not aware how to keep both APIs completely separate without exposing implementation details in neither of them and at the same time avoid all the duplication. I guess one option could be to extract the common API from both modules into a common one, but that would be more intrusive in terms of modifying the existing Vect API in Data.FastVect.FastVect

Beautiful! Thanks a lot!


feat(i18n): update zh-CN texts

Thanks for the translation!
Should I merge what we had so far or wait for the rest of the translations?

Thanks for the translation!
Should I merge what we had so far or wait for the rest of the translations?

just merge now, my translation will be slow

Alright, merged!


Exceeding max header count limit closes connection after 8-10 seconds with empty response

Hey,
We see that there are two variables that dictate header limits:

UWS_HTTP_MAX_HEADERS_SIZE (configurable via env)
UWS_HTTP_MAX_HEADERS_COUNT (set to 100)

When UWS_HTTP_MAX_HEADERS_SIZE is breached, the uWebsockets.js app (v20.48.0) returns a 431 within milliseconds (for a request header just above the limit), as expected, and closes the connection. But when UWS_HTTP_MAX_HEADERS_COUNT is breached, the app doesn't respond for 8-10 seconds and then sends empty response & closes the connection without returning a 4xx, This causes reverse proxy (NGINX) to return 502s.
This seems problematic as a bad client request (with too many headers) results in a 5xx instead of a 4xx and takes a few seconds to reply instead of being instant (on local experimentation, it seems to not be affecting other valid requests sent - but on a large scale, we are not sure if it affects others).
Any specific reason why we do not send any specific response code similar to 431 for request header size limit (helps in debugging failures) ?

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

This is just old behavior for all unhandled errors. So this issue is really just a feature request to add another error. Before, all errors were lazily caught as timeout errors and timeout happens roughly after 10 seconds (8-12 seconds)

@uNetworkingAB I understand,
Since uWebsockets enforces UWS_HTTP_MAX_HEADERS_COUNT - this could be a handled case now with a response sent similar to max header size increase with body indicating the count limit breach. This helps from a consumer perspective with debugging 502 errors as we expect a 4XX error for such scenarios and it becomes hard to ascertain what caused the actual 502s due to an empty response. Making the errors more clear would help.
On that same note, regarding the old timeout behavior, A response indicating the timeout instead of an empty response also helps consumers greatly.
Let me know what you think of this and whether there are any plans to change this 👍

It should be a new error. Btw, you can't signal timeout in HTTP - there is no "push" you must wait for a request so timing out has to be "silent".

It should be a new error.

Got it,

Btw, you can't signal timeout in HTTP - there is no "push" you must wait for a request so timing out has to be "silent".

One doubt here regarding uWebsockets (feel free to correct me here),
If a client sends a request, and we know in the framework that an unhandled error has occurred - why not send a response with 500 (or appropriate status code) instead of waiting and timing out. Also in the current logic, on client sending a request and an unhandled error occurs - the client is already waiting for a response - would it be possible to send a timeout response here (since client has initiated the request already and there is no server independently pushing data here).

Aha, the timeouts I talk about are the general way "any unhandled error" is caught. But the point of timeouts are not for a request that was made but never responded to, but rather as keep-alive timeout. But in any case - adding an error here will fix this.


ImmediatelyFast Mod F3 Information

The mod ImmediatelyFast contains a small amount of information in the f3 menu.

You can turn that off in Immediately fasts config


[BUG] Enumerating PCI devices should not need root privileges.

According to 2.32.1 Release Notes:

Bugfixes:
Fix pci.ids file location on OpenBSD (GPU, OpenBSD)
It's normally unused because enumerating PCI devices on OpenBSD requires root privileges

Wouldn't it be better to download the latest version of pci.ids from the website, and then compile it directly into the executable?
curl -o pci.ids https://pci-ids.ucw.cz/pci.ids
xxd -i pci.ids > pci.ids.h

There should also be a way to automate only downloading a specific pci.ids file version relative to the current release of fastfetch, I'm pretty sure. I have code I wrote in C++ which parses device and vendor name by its ID, (and the ID can be retrieved by GLX or Vulkan, depending on the platform): system.cpp#L433-L468.
Of course, you would need to rewrite the code in C, but the same basic code logic will stay there. I think this would be a much better approach than relying on root privileges, only issue I can see is that it requires hardware acceleration and Xorg or Wayland to work, (i.e. the vesa or scfb drivers won't cut it).
These are just my thoughts on how this could be approached better. As a fallback, you could use the glGetString(GL_VENDOR) for the vendor and glGetString(GL_RENDERER) for the device, and whatever equivalent there is for Vulkan, where applicable.
This would work as long as an Xorg or Wayland session is running in the current TTY.
Edit: sorry for having no title to this ticket initially. I don't know how I missed that, honestly.

It's inrelevant. I meant querying PCI device id list requires root permission.
See also https://github.com/fastfetch-cli/fastfetch/blob/dev/scripts/gen-pciids.py

It's inrelevant. I meant querying PCI device id list requires root permission.
See also https://github.com/fastfetch-cli/fastfetch/blob/dev/scripts/gen-pciids.py

Unless I am deeply missing something, this is not irrelevent. You can get a PCI device ID from either GLX or Vulkan, and then use the ID to get the parsed name out of pci.ids. This does not require root permissions, not even 1%. If you think this requires root, either you are doing something horribly wrong, or there is some sort of miscommunication, and we aren't talking about the same thing when we say "PCI device ID".

GLX and Vulkan themselves report GPU names. Why do you bother getting the GPU device ids and query the PCI names manually dude?
Fastfetch supports querying GPUs via GLX and Vulkan (and OpenCL by the way) as alternates, if failed to querying PCI devices directly.

Are you actually trying the code I just shared, or anything remotely like it? It reports GPI vendor and device names as a fallback, but as a first attempt it does actually try to get the ID and derive the the vendor and device names from that.

Did you actually try fastfetch?

The reason is because get_vendor_or_device_name_by_id() takes the PCI ID spit out of GLX, and gives the actual string reported by pci.ids, which is more descriptive and exact compared to the strings given by GLX itself.

False. pci.ids is maintained by community. It may miss some devices and contain mistakes. See https://github.com/fastfetch-cli/fastfetch/issues/1282

And https://github.com/fastfetch-cli/fastfetch/issues/1242#issuecomment-2326377561

Even if imperfect and maintained by some random community (like everything else written by programmers) I don't see where the word "False" is even being applied here. It gives the exact chipset or vendor name of an ID, and simply being willing to accept "Intel UHD Graphics" as being perfectly descriptive enough I have trouble relating to. The release notes already claim pci.ids is being used under root, so my very realistic question here is, why does it have to be limited to root users for no reason?

AGAIN. IT IS QUERYING PCI DEVICES DIRECTLY THAT REQUIRES ROOT!

There are flaws of GLX:

It requires proper GPU driver that supports OpenGL installed.
It requires X server. Which means, it doesn't work in TTY or SSH session.

For OpenBSD, it doesn't even support nouveau, so that my NVIDIA laptop is running entirely in software renderer. With GLX, you get llvmpipe only.

Please get my words before talking. Thanks


New package: AWSTools v1.7.4

Registering package: AWSTools
Repository: https://github.com/JuliaCloud/AWSTools.jl
Created by: @mattBrzezinski
Version: v1.7.4
Commit: 626cad80f7be10a2bfab12da19e2fb90df019315
Reviewed by: @mattBrzezinski
Reference: https://github.com/JuliaCloud/AWSTools.jl/commit/626cad80f7be10a2bfab12da19e2fb90df019315#commitcomment-44893218

Closing by request


[Bug] Plugin broken on latest Discord version

EmoteReplacer Error in onSendMessage TypeError: Cannot read properties of undefined (reading 'split')
    at SendMessageService.getTargetEmoteFromMessage (EmoteReplacer.plugin.js:2974:27)
    at SendMessageService.onSendMessage (EmoteReplacer.plugin.js:2822:34)
    at Object.eval [as callback] (EmoteReplacer.plugin.js:3486:33)
    at Object.sendMessage (renderer.js:5:22871)
    at 64376ca0f49bef4402d8.js:1:164650

Discord Info
stable 289103 (6f1a424) Host 1.0.9143 x64 (46952) Windows 10 64-bit (10.0.19043)
BetterDiscord
stable 1.10.1

when does discord doesn't break anything

Fixed in 2.1.6


Mesh::getRadius() Always returns Zero

Changes to Mesh::getRadius() within a9b5d1ece3615d583a6bfd70b0ea55b288b1e3e9 cause a repeated comparison of the length of an unassigned Vector3 vec:
https://github.com/ivansafrin/Polycode/blob/37a40fefe194ec7f6e9d1257f3bb3517b0a168bc/Core/Contents/Source/PolyMesh.cpp#L92-L103

is fixed in goodbye_cmake


As user I would like to search for a bookmark by the tag or bookmark title.

WIP
Starting with creating Navbar.test.tsx file since that component is missing a test file and and then I'll add a search box with a test and consider the need for a separate search component.


Haxall as Haystack server

I managed to install Haxall on Ubuntu 18 and I am able to start the hx daemon and the Axon shell UI.
Not sure about the scope of Haxall or what to do next :)
I am mostly interested in using it as a Haystack server.
Is this possible? How do I send requests to the API?

You can set up a web server with a custom API using the wisp  and webMod Fantom libraries. There doesn't appear to be a built in web serve within Haxallr, but it should be quick to set one up for some basic services.

Take a look at the wisp and wedmod fantom libraries, you can spin up a server with a basic web service pretty quickly. I don't believe Haxall has a native web server.

According to this post https://skyfoundry.com/forum/topic/5924
the Haxall Daemon has a webserver with full support for the Haystack HTTP API.
But this gives the 404 error:
http://localhost:8080/api/demo/about

Hrm, I missed that on my first skim-through.
I would check to see if you have a project named "demo", it might be named something else unless you created it.

@jaroli - Haxall only supports a single project, so you issue API requests directly to /api/
http://localhost:8080/api/about

Good to know, thanks Matthew!

Confirming that API works, for example:
localhost:8080/api/read?filter=point

Thank you!


Add default value of annotation DocumentIndexingPolicy, #63.

If no default, the annotation may force the user to specific.

From user side, this may looks a little unfriendly and inconvenient.

Signed-off-by: Pan Li<EMAIL_ADDRESS>

Codecov Report

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

@@           Coverage Diff           @@
##           master      #64   +/-   ##
=======================================
  Coverage   76.56%   76.56%
=======================================
  Files          31       31
  Lines         721      721
  Branches       98       98
=======================================
  Hits          552      552
  Misses        118      118
  Partials       51       51

Continue to review full report at Codecov.

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


Possibly incorrect calculation of overview size

Hi! Thanks for a really great library, it has been a breeze working with, and the code is very clear to read.
While working with rio-tiler I stumbled upon what I think might be an error in how the size of  overviews are calculated in utils.raster_get_stats (https://github.com/cogeotiff/rio-tiler/blob/master/rio_tiler/utils.py#L187): since integer division is used, any fractions will always be rounded down. Looking at the output from gdalinfo, it seems to always round fractions up to the next integer size instead. I have not been able to find out what the spec actually says, but I am tempted to trust gdalinfo.
If my guess is correct, this might cause the overview to be unnecessarily scaled since the size is off by one.

@perliedman I didn't think to much about it so thanks for this issue 😄
I'll have a look to see if we need to change it
Thanks

@perliedman this should be fixed now. I just deployed the new package on pypi !
Thanks for reporting this issue


MXTools: Add methods to create permalinks to room or event

https://github.com/vector-im/vector-ios/issues/547

lgtm


Jedi not using specified python version

Jedi appears to be using a python version, different from the one specified in the settings.
I have the python path set to:
C:\Users\m.langiu\AppData\Local\Continuum\anaconda3\python.exe

And when attempting to use find references I get the error:
Find References: Error: jedi.api.exceptions.InternalError: The subprocess C:\cygwin64\bin\python2.7.exe has crashed.

OS: Windows 10
Atom : 1.28.1
Electron: 2.0.4
Chrome : 61.0.3163.100
Node : 8.9.3
python-language-server: 0.19.0

What version of Python is used when you type python in your command line?


Index: Remove embeds from github.com

Repository embeds from discord fill up a lot of screen space without providing much relevant information.
This pull request adds a message listener that removes the embeds on a message automatically if the message has an embed from github.com. Sadly the api does not allow more fine grain removal of a single embed, however multiple embeds in a single message are quite rare.
As requested by linusg on discord: https://discord.com/channels/830522505605283862/830739873119207426/986007342443282493

apparently I can't mark this as a draft on mobile
Please don't merge quite yet, I'll adjust the filtering criteria to some feedback from linus


Unable to update it to 1.3.2

I updated it to 1.3.2 through app and through GitHub release too.
But it is still on 1.3.1 and asking to update it to 1.3.2 everytime I open the app even tho  I tried installing it many times
And a suggestion add a check box there of not to show it again.

The app version code didn't get changed from v1.3.1 to v1.3.2. The continuous updater will go away after rhenwinch fixes this.

noob mistake, forgot to update the version. can yall try now so we could close this. also:

And a suggestion add a check box there of not to show it again.

may i ask if u could open a new issue for this? thanks!

No worries, all part of learning.
Just updated with in-app updater without issue. App version is correct.

Can't update stable 1.3.2 -> 1.4.0 with in-app updater. Says version is already up to date.

Can't update stable 1.3.2 -> 1.4.0 with in-app updater. Says version is already up to date.

Hey, its because its still on pre-release. Ill put an option to opt in on prereleases

Understood.


This project will soon be archived

Since GitHub has officially implemented a system theme following dark mode, this project is now useless. So I am going to archive it and it won't be maintained anymore. Big thanks for you all and the support you provided.
However, as a friend of @MrWillCom, I am glad to hear that he has started a new project for GitHub, called github-enhancing, and I am now working on its Safari Version.
I have just begun working. Sooner or later, the new project'll be available. I am also thinking of adding some native features specially for macOS. I haven't decided yet, so I need your opinions commented in this issue.

@aeilot
Any updates on the Safai Version 🙂
Would be happy to try it 👍

@aeilot
Any updates on the Safai Version 🙂
Would be happy to try it 👍

Glad to know that you like it. But I'm afraid @MrWillCom is now quite busy and has no time to finish that project.
BTW, these days I've been working on school projects and assignments. So I am sorry to say that I may be slow to respond.


remove .decode('utf-8') for python3 support

this PR intended to fix this issue #14
As mentioned by @Rogdham, I think that we should removed .decode('utf-8') because "Begin with Python 3, all string is unicode object.", based recommendation from answer for this question and answer for this question, it should be removed.
note:
I've tested running the test py.test --cov-report= --cov=ssh-audit -v test and python3 -m py.test --cov-report= --cov=ssh-audit -v test for python3 and have no error.
But, double check should be done because I don't know what the reason behind of using .decode('utf-8'), maybe it to avoid strange behavior for special case (?).

Coverage remained the same at 56.726% when pulling 8507064bef9c6e8a433db90414f210a486de42e2 on yusufsyaifudin:master into 76509a1011fa4da6644ec2a1627dc58853569378 on arthepsy:master.

Thanks for the work and references. You are right, that this bug got introduced to avoid strange case. But as this part of the code wasn't tested automatically (jet), it opened gates for other bug. For more information, read my comment in #14.
I don't think that it's the correct fix to remove .decode('utf-8'), because the source data is bytes and it should be decoded to get back unicode (Python 2) or str (Python 3).
Therefore, I fixed it a bit differently. Also, I added static type checks via (http://mypy-lang.org/) to be sure of the fix. In any case, can You verify that 6b76e68d0dab0701a833ee85663161278ef2b5d0 fixes the bug?

This and other encoding/decoding issues are fixed in 1.7.0. Also, multiple of tests added.


Tasks for converting flutter/flutter to Cirrus CI

In order to switch to Cirrus CI, the following things need to happen:

[ ] Add Cirrus to the dashboard

[ ] Remove Travis and Appveyor from dashboard

[ ] Move gallery build and publish to Cirrus from Travis
[ ] Remove .travis.yml  and appveyor.yml from repo

[ ] Convert plugins and packages repos (and others) to use Cirrus (not required)

Cirrus has been added, and travis/appveyor removed


Receiving mp_new_connection_id-frame for non-existing uniflow id

Upon setting up a connection where my client sets the transport parameter "max_sending_uniflow_id" to 0 it still receives a mp_new_connection_id-frame where the uniflow_id is set to 1, resulting in an error because the client does not have a uniflow with id 1 for the connection.

Indeed, the multipath plugin does not check the value of the transport parameter provided by its peer to reserve new connection ID frames. Going to implement a fix for this :-)

This should have been fixed in the latest commits. Could you check that it is ok now?

Running an endpoint on the latest commit seems to indeed solve the issue. Thank you for the fix, closing this issue now.

The fix should be deployed on the public test endpoint as well.


Is someone working on integrating this into Gitlab's CI?

The title.
If not, this issue could be used to implement that change.

Yes. You can track the progress here
https://github.com/google/clusterfuzzlite/pull/70 and here
https://github.com/google/oss-fuzz/pull/7073.
On Fri, Jan 7, 2022 at 12:37 PM 0xfede7c8 @.***> wrote:

The title.
If not, this issue could be used to implement that change.
—
Reply to this email directly, view it on GitHub
https://github.com/google/clusterfuzzlite/issues/73, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHPG6LW46BYW55BKRFR24WLUU4QG5ANCNFSM5LPIYYJA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thanks. Closing.

@0xfede7c8 you are welcome to test the current PR


Remove unnecessary function names in the src/core/worker.js file

Currently some functions in this file have names while others don't, and in a few cases the names are no longer entirely accurate.
For the relevant functions there should really be no need to name them, and if memory serves this was originally done since browsers (many years ago) didn't always handle anonymous functions correctly in stack traces.

/botio test

Thank you for simplifying this!


Don’t ignore prometheus-operator community

You have chosen to only target prometheus and stated that annotations have become "the defacto method" for configuration, but I think most deployments in the wild use prometheus-operator, which brought a more robust "standard": ServiceMonitor CRD. I strongly advise to add a flag to be able to choose deployment of these ServiceMonitor CRs by the operator.
Benefits: no metrics merging is needed (istio proxies/components will get their own endpoints) so the user can separately view metrics for istio only. This would allow for more community efforts into the realm of istio performance observability.

Awesome. Did not see this before. I think it is a bit hard to navigate all the istio docs, which seem to be spread over multiple places.
But would those 2 service monitors in the example docs then cover all istio targets? And what about sane default alerting rules?
It would be nice to see support for the two prometheus scraping flavors that exist, and let the operator manage the prometheus configuration and resources. I don't think it makes sense to let the community keep up with the istio scraping endpoints.
I am not deep into the matter, but as a platform engineer, this is my concern: that I can rely on the operator to deliver prometheus metrics with sane alerting rules out of the box.
So something like this could suffice imo:
prometheus:
  enabled: false
  rulesEnabled: # any istio rules? all enabled by default
    someRule: false # override, like in prom-op
  prometheusOperator:
    enabled: true # this will result in deployment of service monitors and deliver rules as CRs
  prometheus: '' # prometheus instance to deliver metrics to

Or am I on the wrong track here? I always feel a bit dumb as an outside user, but maybe that can help simplify things as well ;)

Of course I mean the istio-operator when I talk about "the operator" :)

And what about sane default alerting rules?

This is a topic orthogonal to operator vs non-operator I think(?). I  agree this would be useful, I think there is some ongoing work here https://github.com/istio/istio/issues/24310

Awesome. Did not see this before. I think it is a bit hard to navigate all the istio docs, which seem to be spread over multiple places.

Were you looking in https://preliminary.istio.io/latest/docs/ops/integrations/? I think we need to mention the operator here - I thought we did already
cc @douglas-reid

Yes, there is a mention of the sample servicemonitors in the docs (and one has to then go to the samples folder and inspect the manifests, but that is not addressing the concerns I just gave. Automatic deployment of these resources by istio would.

Per https://istio.io/latest/blog/2020/addon-rework/ we are unlikely to
deploy these resources.
On Wed, Oct 14, 2020 at 10:06 AM Maurice Faber<EMAIL_ADDRESS>wrote:

Yes, there is a mention of the sample servicemonitors in the docs (and one
has to then go to the samples folder and inspect the manifests, but that
is not addressing the concerns I just gave. Automatic deployment of these
resources by istio would.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/27940#issuecomment-708536248, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXKTXZ3DNGZHEJW525DSKXLAXANCNFSM4SQW5WEQ
.

I have not come across any reasoning against my suggestions in that blog post.
I understand not being opinionated about deploying entire solutions (like jaeger over zipkin), but seeing that istio exports prometheus metrics, it would be very beneficial to deliver related metrics scraping configuration/resources out of the box. I don't think any other solutions out there will consume these metrics. (All major container platforms have adopted it I think.) Is there anything else out there that can? Don't you agree it would serve most of us when istio would take ownership of this and automate it for us? (And not us in user space reinvent the wheel?).
I don't want to come across as pushy or anything, it's mostly my autist brain trying to see the bigger picture ;) Maybe the time is not ripe and we will see future iterations revisiting this request.

@Morriz I think fundamentally this is an issue of scope (and scope creep). Istio, as a project, does not want to be responsible for Prometheus deployment and configuration, for a number of reasons. Here, you've asked for customizable control over alerting rules for the operator -- but imagine having to replicate that for non-operator installs. And someone else will (and has) asked for customization on the Prometheus resource itself (and also on the standalone installs). And others will (and have) asked for mTLS options, etc. None of these are core to Istio's installation, and would present a very real maintenance and testing burden for the Istio operator itself.
We do, however, want to make integration easy -- and providing samples of the operator configuration (and the annotations for non-operator use cases) was meant to achieve that goal. We need to provide clearer documentation and make sure that the samples are up-to-date and discoverable. Any advice/suggestions on that aspect is very welcome.
As for sane alerting, there is a long-standing issue open for developing a core set of suggested alerting rules. It'd be great to have a community-driven development of such an artifact that we could add to the samples.

I understand now. It is quite an endeavor. Let's hope the community will step in. Good guidance helps. I can allocate time in our team to focus on this. Don't know where to deliver to though. An "istio-community" org on GitHub (like "prometheus-community" now has for charts and such) would be awesome. I don't want us to be driving that now, but maybe down the road it will become clear.

https://preliminary.istio.io/latest/docs/ops/integrations/prometheus/
Search for "operator" gives 0 results
So finding the fact that prometheus-operator based installs doesn't work out of the box and finding samples related to it is quite a task.

before 1.8.1( I refer to 1.7.x for example)  it was possible to use
  addonComponents:
    prometheusOperator:
      enabled: true

to have all the prometheus Servicemonitor CRs installed using istioctl without actual Prometheus
I agree with @Morriz that we need some machinery to install these CRs for istioctl as Prometheus community moving towards ServiceMonitor/PodMonitor CRD for scraping data

before 1.8.1( I refer to 1.7.x for example)  it was possible to use
  addonComponents:
    prometheusOperator:
      enabled: true

to have all the prometheus Servicemonitor CRs installed using istioctl without actual Prometheus
I agree with @Morriz that we need some machinery to install these CRs for istioctl as Prometheus community moving towards ServiceMonitor/PodMonitor CRD for scraping data

I agree with @Morriz that we need some machinery to install these CRs for istioctl as Prometheus community moving towards ServiceMonitor/PodMonitor CRD for scraping data

The suggested mechanism right now is: kubectl apply -f samples/addons/extras/prometheus-operator.yaml. Are you looking for something beyond that?

I agree with @Morriz that we need some machinery to install these CRs for istioctl as Prometheus community moving towards ServiceMonitor/PodMonitor CRD for scraping data

The suggested mechanism right now is: kubectl apply -f samples/addons/extras/prometheus-operator.yaml. Are you looking for something beyond that?

Sorry if this is a hijack but I think it's relevent here. Currently there is no documentation for using metric merging with the Prometheus Operator pattern (direct or federated). As a Prometheus Operator user I would add a ServiceMonitor for each of my service exposing custom metrics; but if mTLS is strict this will error. What we need are instructions on how to convert to the service monitor pattern to the merge metrics pattern; which I suspect is as simple as annotating our pods with Prometheus scrape labels and using the sample PodMonitor?
Also I'd be interested in the pros/cons of federating Prometheus when using the operator pattern? By the looks of it if you want to run Kiali from the production ready Prometheus instance all the metrics would need federating anyway?

Sorry if this is a hijack but I think it's relevent here. Currently there is no documentation for using metric merging with the Prometheus Operator pattern (direct or federated). As a Prometheus Operator user I would add a ServiceMonitor for each of my service exposing custom metrics; but if mTLS is strict this will error. What we need are instructions on how to convert to the service monitor pattern to the merge metrics pattern; which I suspect is as simple as annotating our pods with Prometheus scrape labels and using the sample PodMonitor?
Also I'd be interested in the pros/cons of federating Prometheus when using the operator pattern? By the looks of it if you want to run Kiali from the production ready Prometheus instance all the metrics would need federating anyway?

Sorry if this is a hijack but I think it's relevent here. Currently there is no documentation for using metric merging with the Prometheus Operator pattern (direct or federated). As a Prometheus Operator user I would add a ServiceMonitor for each of my service exposing custom metrics; but if mTLS is strict this will error. What we need are instructions on how to convert to the service monitor pattern to the merge metrics pattern; which I suspect is as simple as annotating our pods with Prometheus scrape labels and using the sample PodMonitor?
Also I'd be interested in the pros/cons of federating Prometheus when using the operator pattern? By the looks of it if you want to run Kiali from the production ready Prometheus instance all the metrics would need federating anyway?

@stevehipwell do you want to open a separate issue for the documentation you mention?  that might enable better tracking/resolution. there is another open issue about mTLS configuration with the latest releases of Istio that might also be worth tracking.

Sorry if this is a hijack but I think it's relevent here. Currently there is no documentation for using metric merging with the Prometheus Operator pattern (direct or federated). As a Prometheus Operator user I would add a ServiceMonitor for each of my service exposing custom metrics; but if mTLS is strict this will error. What we need are instructions on how to convert to the service monitor pattern to the merge metrics pattern; which I suspect is as simple as annotating our pods with Prometheus scrape labels and using the sample PodMonitor?
Also I'd be interested in the pros/cons of federating Prometheus when using the operator pattern? By the looks of it if you want to run Kiali from the production ready Prometheus instance all the metrics would need federating anyway?

@stevehipwell do you want to open a separate issue for the documentation you mention?  that might enable better tracking/resolution. there is another open issue about mTLS configuration with the latest releases of Istio that might also be worth tracking.

@douglas-reid which other issue were you referring to?

@douglas-reid which other issue were you referring to?

As a Prometheus Operator user I would add a ServiceMonitor for each of my service exposing custom metrics; but if mTLS is strict this will error. What we need are instructions on how to convert to the service monitor pattern to the merge metrics pattern; which I suspect is as simple as annotating our pods with Prometheus scrape labels and using the sample PodMonitor?

I just tested this out and that doesn't work with promethus-operator.  @douglas-reid Do we have any doc on how to make it work with something like service monitor pattern ? Or is the merge metrics pattern doesn't work with prometheus operator ? Eitherwise, having that information in the official pages will be very helpful.

@psibi what doesn't work? Currently metric merging works fine although it'd be really useful if there was an original_container or similar label added so we could get metrics for specific containers.

@stevehipwell This is what my testing setup looks like:

I have my own prometheus instance running (via prom-operator) and this is not part of istio service mesh. I have also applied the same service monitor and pod monitor present here: https://raw.githubusercontent.com/istio/istio/release-1.9/samples/addons/extras/prometheus-operator.yaml
I have created a new namespace with istio injection enabled.
The namespace also has strict mTLS enabled.
Now I deployed an application on it which exposes some application specific prometheus metrics.

Now when I go to the prometheus dashboard, I can't see any application metrics. Note that I was able to get it working if I do these changes:

Use permissive mTLS
Add a service or pod monitor for the application

So my question is: Is there a way to make it work with strict mTLS using prometheus when it's not part of service mesh ?

@psibi you want to look at metric merging and the sample code (although that might need modifying). Basically once enabled the proxy pod monitor will collect the merged metrics and serve them up without mTLS, you don't set service monitors for your pods.

@stevehipwell Thanks, I have enabled metrics merging in my istio setup. Although I don't see any sample code for metric merging (the sample code seems to be present for option 2).

Basically once enabled the proxy pod monitor will collect the merged metrics and serve them up without mTLS, you don't set service monitors for your pods.

Yes, I understand that. The only problem is that I don't get my application metrics. But I do seem to get istio metrics fine in strict mTLS. So I'm wondering if I'm missing something.

@psibi what are the settings that you're using for metrics merging? Specifically podmonitor Istio config and application annotations.

@stevehipwell I figured out the issue and it occurred because of missing annotations in my deployment. Thanks for the help!

Glad to hear you've got it sorted now @psibi.


Failed to initialize Zoom SDK

Hey , i ve did all the necessary setup in the exemple app , but when i try to init the ZoomView , it gives me Failed to initialize Zoom SDK Error , i would apperciate any help thanks

Hey , i ve did all the necessary setup in the exemple app , but when i try to init the ZoomView , it gives me Failed to initialize Zoom SDK Error , i would apperciate any help thanks

Did you find the solution?


Help chris get access to Telos infrastructure

Chris needs to have a SSH key that doesn't change when he changes computers and location.
Chris swifts location often, and has many computers and laptops that he logs in from.
It is his expierance that his SSH key changes as a result and he doesn't understand how one key will be sufficient.

[ ]  Chris has an SSH key that he can give to Roger
[ ]  Chris has check that he has access

this is not going to happen


time and network

In doing all online activities it is better to first check the appropriate network and time.

can you elaborate and create a new issue?


i want to only train RPN for objectness detection, no need for classification, do there has any guide or experience?

❓ Questions and Help
in my project, i only want to detect out object but no need to know is label, so i want to use this code to train a rpn network, can share any guide or experience？

Hi,
You basically need to set the RPN_ONLY option to true. I'll add a config file for RPN only networks, I forgot to do it last week

@fmassa thanks for reply，ok i try this first, expect your more detail information

You need to modify the number of images per bat h plus a few other hyper parameters when using a single GPU. Please look at the README on the section Single GPU training for more information

Hi, @fmassa
i got this error when i run test_net.py by setting 'RPN-Only = True'(i had trained the model by 'RPN-Only'),
'
File "/home/deepin/projects/maskrcnn-benchmark/maskrcnn_benchmark/engine/inference.py", line 220, in evaluate_box_proposals
gt_overlaps = torch.cat(gt_overlaps, dim=0)
RuntimeError: expected a non-empty list of Tensors'
and i just couldn't find out what was wrong, can you help me please?

@jinzhenhh the possibilities I see are the following:

you don't have any GT in your test dataset
you don't have any prediction from the model, for none of the images

I think the reason is 2. This might have happened due to a too-high learning rate, and your outputs are all NaN or inf for example.

@jinzhenhh the possibilities I see are the following:

you don't have any GT in your test dataset
you don't have any prediction from the model, for none of the images

I think the reason is 2. This might have happened due to a too-high learning rate, and your outputs are all NaN or inf for example.

@fmassa thanks very much for your reply! I don't have many training images in my  dataset, so i guess it is the reason 2. according to your reply, and now I am training the model by lower learning rate...
thanks for your reply again!

when i add the config
RPN_ONLY: True
/anaconda3/envs/pytorch10/lib/python3.7/site-packages/torch/nn/modules/module.py", line 518, in __getattr__     type(self).__name__, name)) AttributeError: 'CombinedROIHeads' object has no attribute 'box'
it will break like this

@LU4E can you try one of the configs from https://github.com/facebookresearch/maskrcnn-benchmark/pull/66 ?

it works.
but does this config have the mask branch?

yes. because i have only one class.
the other question is i have many picture which doesn't have any thing.
the problem i face now is this:
2018-12-10 21:25:55,048 maskrcnn_benchmark.trainer INFO: Start training box loss is 0.018756842240691185 obj loss is 0.6718491315841675 box loss is 0.0031309775076806545 obj loss is 0.5818259716033936 box loss is 0.006792054045945406 obj loss is 0.42098698019981384 box loss is 0.003268709871917963 obj loss is 0.3997362554073334 box loss is 0.0055918013677001 obj loss is 0.5054059028625488 box loss is 39.254791259765625 obj loss is 9.234609603881836 box loss is inf obj loss is nan box loss is inf obj loss is nan box loss is nan obj loss is nan box loss is nan obj loss is nan box loss is nan obj loss is nan box loss is nan
the loss is become nan, which box_loss and objectness_loss is -inf or inf.

your learning rate is probably too large.
About pictures not having anything, either you filter them out of the dataset, or you'll need to modify the library to handle images without objects.

The output of your model being inf might probably come from a gradient that is inf at some point in the previous iteration, that made the weight be inf.
I'd say to try to reduce the learning rate by a factor of 2 or 5, and see if the training goes to nan or not.


DEP: deprecate fallback to sklearn after onedal

Description
[Experimental]
Main purpose is check the relevance of this flow. If necessary, try to control this through config_context in order to validate correctly.

[ ] I have reviewed my changes thoroughly before submitting this pull request.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have updated the documentation to reflect the changes, if necessary (updated in # - add PR number)
[ ] The unit tests pass successfully.
[ ] I have run it locally and tested the changes extensively.
[ ] I have resolved any merge conflicts that might occur with the base branch.
[ ] Git commit message contains an appropriate signed-off-by string (see CONTRIBUTING.md for details)
[ ] I have added a respective label(s) to PR if I have a permission for that.

@samir-nasibli do you need clarification on the background of this oddity in the codebase before we close this PR?  It comes from these steps in the DAAL codebase: https://github.com/oneapi-src/oneDAL/blob/main/cpp/daal/src/algorithms/service_kernel_math.h#L721

@samir-nasibli do you need clarification on the background of this oddity in the codebase before we close this PR? It comes from these steps in the DAAL codebase: https://github.com/oneapi-src/oneDAL/blob/main/cpp/daal/src/algorithms/service_kernel_math.h#L721

@icfaust thank you! I am definitely not going to close this PR, some case needed to be addressed.

@samir-nasibli do you need clarification on the background of this oddity in the codebase before we close this PR? It comes from these steps in the DAAL codebase: https://github.com/oneapi-src/oneDAL/blob/main/cpp/daal/src/algorithms/service_kernel_math.h#L721

@icfaust thank you! I am definitely not going to close this PR, some case needed to be addressed.

I'll wait to review until you mark it ready, I'm curious to see if you plan to refactor the fallback mechanism or fix a bug in the PLU factorization on oneDAL-side first.

@samir-nasibli do you need clarification on the background of this oddity in the codebase before we close this PR? It comes from these steps in the DAAL codebase: https://github.com/oneapi-src/oneDAL/blob/main/cpp/daal/src/algorithms/service_kernel_math.h#L721

@icfaust thank you! I am definitely not going to close this PR, some case needed to be addressed.

I'll wait to review until you mark it ready, I'm curious to see if you plan to refactor the fallback mechanism or fix a bug in the PLU factorization on oneDAL-side first.

I'll wait to review until you mark it ready, I'm curious to see if you plan to refactor the fallback mechanism or fix a bug in the PLU factorization on oneDAL-side first.

Please read the short description to the PR more carefully.
At the moment there is no ready-made solution for a particular case, there is a draft PR, in the future it is planned to manage this through config_context.
When the proposal is expanded and ready for discussion/review, the PR will be marked ready for review
Thank you!

/intelci: run

Linear regression fails all tests on both GPU and CPU, that requires additional investigation.
I will separate deprecation and changes for the LogReg into the separate PR.

The statistics of the onedal4py backend usage and sklearn after onedal4py backend should be investigate.
It seems LinReg has some defects, that should be addressed.
The mechanism itself for falling back sklearn_after_onedal will be updated via config_context.
Follow up tickets will be created.

/intelci: run

/intelci: run

This is impacted by #2083 , that would mean only LinearRegression GPU, and LogisticRegression GPU estimators are influenced. Is it worth having a new config keyword for these specific cases? @Alexsandruss should weigh in. I'm still in favor of closing this PR. I would say the removal can occur naturally when these issues are addressed in the individual estimators.

This PR doesn't change py default anything. Only on testing we are removing these.
We are already have flag for example allowing do computations on onedal cpu if gpu not supported by default, but we are disabling this for testing. The same idea here. If this cases will be addressed then we can remove totally this flag from config_context.


add ability to add twig extensions via configuration

including documentation

@r1pp3rj4ck What's the status of this PR?

@robertfausk could you please rename twig2 to twigstring then?

@r1pp3rj4ck What is the status of this PR? Will it be merged?


proper arrays

Something like:
module "package-install.hcl" "common-packages" {
  params {
    packages = [ "htop", "curl", "jq" ]
  }
}

Supported all the way through until rendering, when they would be turned into an appropriate value for a resource.

We're going to take it one further and inspect the values that the Preparers are expecting, then give it to them cleanly rather than relying on the Preparer implementors to correctly deserialize the fields and give them the right names.


Terraform Application Gateway Response Headers for Grafana

Reinstate all response headers rewrites for main application
Create new response headers rewrites for Grafana

:tada: This PR is included in version 2.0.0-next.22 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Backend cleanup

Alvin Ailey asked us to add some preprogrammed users to the user list. They wanted them to have admin privileges so I had to add a parameter to the temporary createUser routine.

Some of the already approved 'REVELATION' to 'SUPER' changes got lost (perhaps because we had so many overlapping PRs). I put them back

This PR was missing one merge and was replaced with PR 29


Add UiConfiguration.layoutDirection and populate it on all platforms

Introduces the ability to read the host's layoutDirection in guest UI declarations. The Android and iOS implementations should be correct; the HTML implement is iffy.

[x] CHANGELOG.md's "Unreleased" section has been updated, if applicable.

I was going to write a test for the HTML/JS, but... let's just merge.


Print should replace DynamicFileHandler.axd with the report caption

Describe the bug
Printing from Business Central to a PDF printer results in the PDF printer to suggest this filename: "DynamicFileHandler.pdf" or "DynamicFileHandler.axd.pdf". That was not the case for NAV RTC and Classic, where it suggests the report caption, i.e.: "Sales - Invoice.pdf"
We are printing to a special PDF printer, which integrates to a document management system with OCR. The documents are in some situations sent to the customers and they find it very insecure opening mails with an attached file called "DynamicFileHandler.axd.pdf"
To Reproduce
Steps and to reproduce the behavior:

Open BC in Chrome
Go to a Posted Purchase Invoice
Press Print/Send -> Print -> Print...
Set "Save as PDF" as Destination
Press Save

You will now see a Save As window with the suggested filename "DynamicFileHandler.axd.pdf"
You will see similar behavior using BullZip and other PDF printers.
AL Code to reproduce the issue
REPORT.RunModal(406, true, false, Rec);
Expected behavior
I would expect the filename to be i.e. "Purchase - Invoice.pdf" based on the report caption - just like in NAV.
Screenshots
N/A
5. Versions:

AL Language: 6.1.350698
Business Central: Platform 16.0.15884.17299 + Application 16.5.15897.16301

@GrumpyNAVdev Having the exact same problem. Did you ever find a solution to this?

@AlexanderLundq No, we had to get a third party vendor to modify the external application to change the file name from BC before it was sent to customers.

Did somebody have a solution for this?


Mac support?

i was just wondering if there is gonna be mac support and i have a mac i can test it

Probably not, sorry. This program uses Windows dependent things, and cracks games with DLLs. I think DLL files are windows only.

I guess if you find steam emus for mac, then that could be done.
Unfortunately I don't have a mac and I'm not really interested in supporting it. If any other OS support is added, it'll probably be for Linux.


UnLazy: Whitelist and notification

Is your feature request related to a problem? Please describe.
When something get wrong on a specific website my only solution is to go to "Add-ons Manager" to disable UnLazy and reload the page.

Then once I'm done with this page, I have to go to "Add-ons Manager" and enable UnLazy.
Describe the solution you'd like
1- I would like to know that UnLazy has kill dynamically-loaded images engines.
This could be done with the browser action button by changing the icon color or the badge text.
2- I would like to be able to whitelist an url in case UnLazy breaks something.
Thanks

keeping it very simple for now,
'dirtying up' the pure functional-code with UI-functionality will eventually be added (allow-list and profile-sync settings), but not for few months. currently the web-extension does a similar work to a userscript (in functionality, but using the browser extension-infrastructure it works better and more efficiently).
the icon-number ("badge") is only updated when there was any change,
if there was none, it means the web-extension did not recognised (..pattern matching) any reason to kill a lazyloading mechanism (mostly because there was none..).
for enabling/disabling it, it's the extension-manager for now... :|


Makes HTTP request method mandatory

While all other properties can be absent or invalid, this makes the HTTP
method mandatory. This will help when we create a path to the request
from the response, as it allows chaining to the method without a null
check.
Note: Eventhough we've seen method incorrectly set in the past,
we've never seen it missing.
PS: While it seems path would also always be available even recently,
it isn't valid for all HTTP methods (ex OPTIONS and CONNECT). Also,
it can be null due to bad parsing (ex some things don't natively return
the path, only the URL). Also, it has been found missing before, most
recently due to a request availablility bug which is still not released! If we started enforcing path be present, it
would force a known set of scenarios to NPE causing people who can't
change their implementations to become revlocked until they can. This
makes forcing path to be not nullable, so late in the game, to be a cure
worse than the disease.
Fixes #1089

added rationale because I think many people have not seen the horrors I have and wouldn't want anyone walking into a disaster by accident of less experience cc @openzipkin/core

merging as #1086 rests on this assumption


Feature request: Online certificate renewal

It would be relay nice if it would be possible to renew a node's certificate without restart and thus without loosing connections.

You can do this today with a HUP to the nebula process. If you just replace the cert and/or key on disk and kill -HUP nebula, existing tunnels continue to operate but new tunnels will be negotiated using the new certificate going forward.
Note: you can also use this to change a number of (but not all of) nebula's configuration settings in config.yaml. For instance you can change security group/firewall rules in the yaml and issue a HUP to apply those changes without restarting nebula or tearing down tunnels.

Hi @rawdigits,
thanks for that. Didn't know that. I'm going to do a PoC in a few days.
Jan


ray-x/cmp-treesitter/pull/10 cause completion system to broke

https://github.com/ray-x/cmp-treesitter/pull/10 introduces dynamic kind_text, causing lspkind's symbol_text unable to replace kind_text with icons.

@ayamir We might need to lock the commit for now.

Hey, replied in https://github.com/ray-x/cmp-treesitter/pull/10, it should be a quick and sane change for lspkind to provide a default icon.

@CharlesChiuGit btw nice work on the nvim distro, to keep it lean you could remove lspkind.nvim as a dependency, it only maps an icon to a kind and adds a clipping feature, don't think you'd need much more than this:
local kind_icons = {
  Class = "ﴯ",
  -- Class = "",
  -- Class = "",
  Color = "",
  -- Color = "",
  Constant = "",
  -- Constant = "",
  Constructor = "",
  -- Constructor = "",
  -- Constructor = "",
  Enum = "",
  EnumMember = "",
  Event = "",
  Field = "ﰠ",
  -- Field = "",
  -- Field = "",
  -- Field = "",
  File = "",
  -- File = "",
  -- File = "",
  Folder = "",
  -- Folder = "",
  Function = "",
  Interface = "",
  Keyword = "",
  Method = "",
  Module = "",
  Operator = "",
  Property = "",
  -- Property = "ﰠ",
  Reference = "",
  -- Reference = "",
  -- Reference = "",
  Snippet = "",
  -- Snippet = "",
  Struct = "פּ",
  -- Struct = "",
  Text = "",
  -- Text = "",
  TypeParameter = "",
  -- TypeParameter = "",
  Unit = "",
  Value = "",
  Variable = "",
  -- Variable = "",
  -- Variable = "",
  -- tree-sitter
  String = "",
}

cmp.setup({
  formatting = {
    format = function(entry, vim_item)
      vim_item.kind = kind_icons[vim_item.kind] or " "
      return vim_item
    end,
  }
})

, and you're always in control & it's easy to extend.

@CharlesChiuGit btw nice work on the nvim distro, to keep it lean you could remove lspkind.nvim as a dependency, it only maps an icon to a kind and adds a clipping feature, don't think you'd need much more than this:
local kind_icons = {
  Class = "ﴯ",
  -- Class = "",
  -- Class = "",
  Color = "",
  -- Color = "",
  Constant = "",
  -- Constant = "",
  Constructor = "",
  -- Constructor = "",
  -- Constructor = "",
  Enum = "",
  EnumMember = "",
  Event = "",
  Field = "ﰠ",
  -- Field = "",
  -- Field = "",
  -- Field = "",
  File = "",
  -- File = "",
  -- File = "",
  Folder = "",
  -- Folder = "",
  Function = "",
  Interface = "",
  Keyword = "",
  Method = "",
  Module = "",
  Operator = "",
  Property = "",
  -- Property = "ﰠ",
  Reference = "",
  -- Reference = "",
  -- Reference = "",
  Snippet = "",
  -- Snippet = "",
  Struct = "פּ",
  -- Struct = "",
  Text = "",
  -- Text = "",
  TypeParameter = "",
  -- TypeParameter = "",
  Unit = "",
  Value = "",
  Variable = "",
  -- Variable = "",
  -- Variable = "",
  -- tree-sitter
  String = "",
}

cmp.setup({
  formatting = {
    format = function(entry, vim_item)
      local icon = kind_icons[vim_item.kind] or "   "
      vim_item.kind = icon .. " " .. vim_item.kind
      return vim_item
    end,
  }
})

, and you're always in control & it's easy to extend.

That's a nice idea! Thanks for the advice, I'll look into that.

fixed in https://github.com/ayamir/nvimdots/tree/0.9


Improvement - Include details on package sizes and delivery optimization strategies

Hello Team,
Besides a great document article, I believe that to support customers with some network usage challenges, would be great to have an estimate of Update package sizes, as we had in the past while talking about SCEP updates and when each update package type is used during update process like:

Full: Machines not updated in the last month with avg size XXX
Delta: Machines that missed 3 or more days of updates since the last engine with avg size YYY
BDE (Diff of previous base and engine with incremental delta) with avg size of ZZZ
BDD (Diff of latest delta, only with new content) with avg size of WWW

This, along with Delivery optimization strategies recommended for customers not directly connected to internet would be beneficial to help them define their own Security Intelligence Update Strategy along with available technologies (below), making easier to customer move from 3rd party solutions to MDE.

Delivery Optimization
ConfigMgr (Peer Cache)
Windows Branch Cache
Alternate Strategies (UNC Share, MAPS, etc)

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

ID: 0f9be21b-f9c7-5022-4389-5f860847ffb3
Version Independent ID: 42a36c44-baf3-419d-b4ff-0a205f2ac8f8
Content: Manage how and where Microsoft Defender Antivirus receives updates
Content Source: microsoft-365/security/defender-endpoint/manage-protection-updates-microsoft-defender-antivirus.md
Service: microsoft-365-security
Sub-service: mde
GitHub Login: @denisebmsft
Microsoft Alias: deniseb

@denisebmsft Please help us in resolving this issue. Thanks

To make it easier for you to submit feedback on articles on learn.microsoft.com, we're transitioning our feedback system from GitHub Issues to a new experience.
As part of the transition, this GitHub Issue will be moved to a private repository. We're moving Issues to another repository so we can continue working on Issues that were open at the time of the transition. When this Issue is moved, you'll no longer be able to access it.
If you want to provide additional information before this Issue is moved, please update this Issue before December 15th, 2023.
With the new experience, you no longer need to sign in to GitHub to enter and submit your feedback. Instead, you can choose directly on each article's page whether the article was helpful. Then you can then choose one or more reasons for your feedback and optionally provide additional context before you select Submit.
Here's what the new experience looks like.
Note: The new experience is being rolled out across learn.microsoft.com in phases. If you don't see the new experience on an article, please check back later.
First, select whether the article was helpful:

Then, choose at least one reason for your feedback and optionally provide additional details about your feedback:

Article was helpful
Article was unhelpful

Finally, select Submit and you're done!


Pre-load Wikidata information on user navigator preferred languages, even if are not the target languages of the project

Related:

Minimal awareness of user navigator preferred languages #13

We have our target languages, that for now are the English, Spanish and Portuguese, but since this website could could be accessed for someone that does not speak one of these languages and Wikidata can provide some extra information on several other languages, we could do some magic here.
In this case, is about, based on list of preferred languages of the user browser, also load one or more wikidata languages and then use they to show inline translations of the term

It is working.
For some macrolanguages (Arab, Chinese) please see this comment https://github.com/fititnt/ais-ethics-tags/issues/13#issuecomment-485060364


Change attachments endpoints

Coverage increased (+0.04%) to 98.038% when pulling 0a87a83b2937bb34b2e332e19507e91fa8551b2c on change-attachments-endpoints into ecced985ed8b0edb0f883933f39aefa2c1b59ed9 on master.

Coverage increased (+0.04%) to 98.038% when pulling 1449a6291a3625b26839b3f89b8fb59d4f02bb0b on change-attachments-endpoints into ecced985ed8b0edb0f883933f39aefa2c1b59ed9 on master.


country-2-codes.json: Use full name from EU publication for TW (Taiwan)

Taiwan is listed by ISO 3166 as "Taiwan, Province of China" due to the status of Taiwan inside the UN, however this puts Taiwan directly as "a province of China" in political standpoint.  As EU-DCC format is also issued from Taiwan government as well as admitting EU-DCC format from EU countries (and others adopting EU-DCC format), I would like to suggest changing it to Taiwan.
Therefore, according to List of countries, territories and currencies from EU Interinstitutional Style Guide, the full name of TW is Taiwan.  Is it possible to adopt this standard over ISO 3166?

@kruzikh @skounis What would be the EU's official stance on this?

Official EU stance could be be expressed only by EU itself :-) Let's put this on the agenda of the SGS, maybe through Konstantin?

Official EU stance could be expressed only by EU itself :-) Let's put this on the agenda of the SGS, maybe through Konstantin?

Agree; we need to bring/raise this in one of our forthcomming calls.

FWIW: technically, the change would be trivial, and essentially have 0 impact, because the display value of the country 2-codes is not used in any code that's actively produced and maintained by the eHN. That might be different for the reference implementations of the wallet and verifier apps by T-Systems, though.

@dslmeinte How is the country list maintained? I would guess it is generated by a list coming from ISO. If this is the case, and we decide to so, an exception in the process should be added.

@skounis It's maintained in essentially the same way as the other value sets (except for test-manf.json which is included non-authoritatively here), so updates come from the Semantic Group in the form of updates to the guidelines document. We've made a couple of updates for Kosovo (XK) in the past. I'm guessing the initial contents was indeed copied verbatim from the ISO, as the Wikipedia page also list Taiwan as “province of China”.

The original country codes value set was originally generated from FHIR vlaue set using following code:
curl http://hl7.org/fhir/R4/valueset-iso3166-1-2.json |
jq '.compose.include[0].system as $system | .meta.lastUpdated[0:10] as $version| reduce .compose.include[0].concept[] as $i ({}; .[$i.code] =
{
"display": $i.display,
"lang": "en",
"active": true,
"system": $system,
"version": ""
})| {"valueSetId": "country-2-codes", "valueSetDate":$version, "valueSetValues": .}' > ~/dev/GitHub/ehn-dgc-schema/valuesets/country-2-codes.json
Since then it is maintained manually.

@kruzikh @skounis has anything happened to this?

No change as far s I know. Nobody rised this issue on SGS.

@kruzikh @ryanbnl Let's put it in the agenda for the next IOT meeting.

Closing this as no changes are being made given the unclear future of the DCC. If the outlook changes it can be re-opened.


Zero-code OTEL_ support

We're trying to figure out which (if any) "zero code" configuration is supported by the JS library and available information seems very confusing.  For example, there are pages  that show OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, OTEL_SERVICE_NAME and/or OTEL_SDK_DISABLED is supported and then other pages which claim limited or no support, which contradicts other examples and pages.  Is there some definitive list of which zero code configuration options are supported by the Javascript library for Node.js use?

The first link is a getting started guide for JS which is not comprehensive. The second link is the specification which includes all environment variables defined by the project regardless of their support in any given language. Generally implementations follow that list, but some may not be implemented yet. The only truly definitive list is in the code https://github.com/open-telemetry/opentelemetry-js/blob/main/packages/opentelemetry-core/src/utils/environment.ts#L88
Environment variable use is spread among many packages which each have their own documentation, but I don't think there is a centralized list of supported environment variables.

Is there an example anywhere of how to actually leverage these environment variables?  All the examples appear to use programmatic initialization which I would think overrides things like OTEL_EXPORTER_OTLP_ENDPOINT.

Specifically, we are having no luck getting OTEL_SERVICE_NAME to work.  We have confirmed it is set on the environment, but traces continue to come into our OTEL collector as "unknown_service".  If we set it programmatically that problem goes away.

Hi @robross0606! I stumbled across this issue, I tried reproducing it but couldn't replicate the problem you reported (OTEL_SERVICE_NAME not working as expected).
I made a repo with a simple reproduction based on the official docs, you can use the code and steps in there to confirm my findings: https://github.com/tildeio/otel-js-demos/tree/5167-otel-service-name
Hopefully with that, you'd be able to find out what's different about your environment and fix the issue on your end. If you determined the condition/interactions that causes this to fail, feel free to provide extra details on how the reproduction can be tweaked to demonstrate the problem.


Add test for fetching user gift cards

Add test for fetching user gift_cards.

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

Task linked: SALEOR-3891 Update gift cards resolver on User


Sometimes when I use CTRL+S to save file, the file returns  to newly-built status

VSCode Version:
OS Version:

Steps to Reproduce:

Does this issue occur when all extensions are disabled?: Yes/No

/needsMoreInfo

Version: 1.36.1 (user setup)
Commit: 2213894ea0415ee8c85c5eea0d0ff81ecc191529
Date: 2019-07-08T22:59:35.033Z
Electron: 4.2.5
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.18362

It happens randomly, and, I donnot find out how to reproduce it succesfully😥. But others appear to have no such problem, there may be some problem with my computer.

Does this reproduce in the latest VS Code insiders build with all extensions disabled?

Sorry, it still can't be reproduced as I want.  So I guess I should close this issue.
If there is any progress, I'll be back.