Update mqtt proxy to broker

this pr is to make MQTTProxy support broker mode by set brokerMode true in spec. Original MQTTProxy only publish messages to backend Kafka. Now, MQTTProxy not only publish message to Kafka but also send messages to the subscribed clients directly.
Main changes:

cachedTopicManager: it contains topic and mqtt client mapping information from all easegress nodes.
SessionCacheManager: it contains all session information for all mqtt clients from all easegress nodes and update cachedTopicManager.
broker: watch etcd changes and update SessionCacheManager.

Codecov Report
Base: 76.10% // Head: 75.54% // Decreases project coverage by -0.56% :warning:

Coverage data is based on head (b639791) compared to base (4c9b3a1).
Patch coverage: 72.99% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #874      +/-   ##
==========================================
- Coverage   76.10%   75.54%   -0.57%
==========================================
  Files         110      114       +4
  Lines       12698    13185     +487
==========================================
+ Hits         9664     9960     +296
- Misses       2490     2644     +154
- Partials      544      581      +37

Impacted Files
Coverage Δ

pkg/object/mqttproxy/spec.go
100.00% <ø> (ø)

pkg/object/mqttproxy/mqttproxy.go
46.83% <33.33%> (ø)

pkg/object/mqttproxy/broker.go
69.70% <50.95%> (-5.10%)
:arrow_down:

pkg/object/mqttproxy/topic.go
47.05% <53.84%> (-52.95%)
:arrow_down:

pkg/object/mqttproxy/storage.go
78.12% <57.69%> (-8.18%)
:arrow_down:

pkg/object/mqttproxy/sessioncache.go
59.79% <59.79%> (ø)

pkg/object/mqttproxy/cachetopicmgr.go
79.86% <79.86%> (ø)

pkg/object/mqttproxy/nocachetopicmgr.go
92.85% <92.85%> (ø)

pkg/object/mqttproxy/client.go
82.58% <100.00%> (+0.97%)
:arrow_up:

pkg/object/mqttproxy/session.go
82.20% <100.00%> (ø)

... and 8 more

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

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

this pr is put in wrong repo, please refer to new pr of #876


support python3

In the wiki python2 is stated as a pre-req for KD:

Images must have the following utilities installed and available in the standard executables path for the container user: bash, python2, curl, and tar.

As python2 is no longer supported, can python3 be used?

@Jemgoss did configcli work to make it support python3. He and @kcsraju might know if we have remaining roadblocks?


feat(tab): remove replace usage

Remove replace: true usage

BREAKING CHANGE: Due to the removal of replace: true, the HTML structure changed slightly - see documentation examples.
I'm going to need an assist to finish this out - I'm not sure what is causing the tests to break.

Closing this PR too big to tackle


Add Django 4 testing and remove unsupported Python and Django versions

removed unsupported Django Versions 2.2, 3.0, 3.1 and Python Version 3.6
added Django 4.0 and Python 3.10
Updated Mysql and Postgresql Versions
Updated Github Actions
fixed pre-commit.ci by adding basic pre-commit-config

please don't merge yet. There is still a mistake...

@vchrisb can you update the classifiers in setup.py, too?

I'll create another pr to increase the test coverage once this is merged.


Any chance this will work with an ISY99i?

Hey @ModMike ,
Probably yes, I don't own one, so I haven't tested it. As I understand from Universal Devices, all of the ISY hubs support REST, which is what is used by this plugin. It also uses a WebSocket, which is part of the REST API, so no problem here. Therefore, as said, not tested.
I have recently rebuilt this plugin and have some thing to finish, such as the README and stateless switches, but it's working in it's current state. npm version should be 0.0.4
Take a look at the file config.example.json to see how to configure it.
I should be done with this plugin very shortly, I just have some work stuff to prioritize first.
If you have any questions, or if an error appears, let me know so I can help.
Best regards

But do you need version 5 of the firmware to make it work? ISY99i stoped at version 3.1.10 or something like that.

Let me check in the Universal Devices website for the info.
It might be simpler to just try this plugin and to see if it works. The ip should be ISY ip in your LAN. Username and password should be the same as used to access the portal.

Ok will try and let you know.

On Apr 19, 2020, at 4:31 PM, Beno<EMAIL_ADDRESS>wrote:
Let me check in the Universal Devices website for the info.
It might be simpler to just try this plugin and to see if it works. The ip should be ISY ip in your LAN. Username and password should be the same as used to access the portal.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/bgottsch/homebridge-isy-hub/issues/2#issuecomment-616220300, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIXC6OU3B4FUNOKDRKGP5TDRNNNQXANCNFSM4ML5TN7Q.

From their website:
If you search for ISY99i REST API, this page pops up: https://wiki.universal-devices.com/index.php?title=ISY-99i_Series_INSTEON:REST_Interface&redirect=no
That page has a redirect link to the same API used by the ISY994i
Hope that's the case

Trying to add config but first time with JSON. Do I just append it or does config go into platforms section?

On Apr 19, 2020, at 4:35 PM, Beno<EMAIL_ADDRESS>wrote:
From their website:
If you search for ISY99i REST API, this page pops up: https://wiki.universal-devices.com/index.php?title=ISY-99i_Series_INSTEON:REST_Interface&redirect=no
That page has a redirect link to the same API used by the ISY994i
Hope that's the case
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/bgottsch/homebridge-isy-hub/issues/2#issuecomment-616220985, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIXC6OUZ6EL76QVWTNPECMDRNNN75ANCNFSM4ML5TN7Q.

Platform name has to be fixed (isy-hub) and name can be anything (defaults to isy-hub), but it does not matter. This would affect the log outputs on homebridge

Ok changed to isy hub but get this error:
[homebridge-isy-hub.isy-hub] Disabling plugin, wrong config declaration or not found!

Can you share the config file? (Ommit devices and scenes and senstive info)

Ahh, another think poped to my mind, how did you install it? Since the instructions on the README are incorrect. The correct install should be npm install -g homebridge-isy-hub

When I load my iso, it says the name is My. Could that be the issue? How can I confirm the name?
I installed using the plug in finder, I think. Hard to remember, I just set it up.

On Apr 19, 2020, at 5:01 PM, Beno<EMAIL_ADDRESS>wrote:
Can you share the config file? (Ommit devices and scenes and senstive info)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/bgottsch/homebridge-isy-hub/issues/2#issuecomment-616224559, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIXC6OWUQESKST6VKRJOQS3RNNRDZANCNFSM4ML5TN7Q.

I put XX for all sensitive info:
{
    "bridge": {
        "name": "Homebridge XXXX",
        "username": "XX:XX:XX:XX:XX",
        "port": XXXXXX,
        "pin": "XXX-XX-XXX"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": XXXX,
            "platform": "config"
        }
    ],
    "platform": "isy-hub",
    "name": "isy-hub",
    "username": "XXXXX",
    "password": "XXXXX",
    "host": "XXXXX",
    "refresh_interval": 30000,
    "scenes": [
        {
            "name": "Light Scene",
            "id": 12345,
            "type": "light_scene"
        },
        {
            "name": "Toggle Scene",
            "id": 23456,
            "type": "toggle_scene",
            "on_level": 76
        },
        {
            "name": "Window Scene",
            "id": 34567,
            "type": "window_scene"
        }
    ]
}

The problem is with the config file. Probably you used the one from the README as basis. Use the one from the file config.example.json
Here's a quick edit of your file:
{
	"bridge": {
		"name": "Homebridge XXXX",
		"username": "XX:XX:XX:XX:XX",
		"port": XXXXXX,
		"pin": "XXX-XX-XXX"
	},
	"accessories": [],
	"platforms": [
		{
			"name": "Config",
			"port": XXXX,
			"platform": "config"
		},
		{
			"platform": "isy-hub",
			"name": "isy-hub",
			"username": "XXXXX",
			"password": "XXXXX",
			"host": "XXXXX",
			"refresh_interval": 30000,
			"devices": [],
			"scenes": [
				{
					"name": "Light Scene",
					"id": 12345,
					"type": "lightbulb",
					"on_level": 100
				},
				{
					"name": "Toggle Scene",
					"id": 23456,
					"type": "switch",
					"on_level": 76
				},
				{
					"name": "Window Scene",
					"id": 34567,
					"type": "window_cover"
				}
			]
		}
	]
}

Thank you very much fro taking the time to do this for me. I gave it a shot this morning but I think it just won’t work. I get:
[4/20/2020, 10:28:27] [isy-hub] Socket unreachable, attempting reconnect...
[4/20/2020, 10:28:32] [isy-hub] Accessory unreachable (name: Light Scene, id: 12345, class: scene, type: lightbulb)
[4/20/2020, 10:28:32] [isy-hub] Accessory unreachable (name: Toggle Scene, id: 23456, class: scene, type: switch)
[4/20/2020, 10:28:32] [isy-hub] Accessory unreachable (name: Window Scene, id: 34567, class: scene, type: window_cover)
[4/20/2020, 10:28:32] [isy-hub] Socket unreachable, attempting reconnect…
Looks like I have to spend a ludicrous amount of money on a 994i.

On Apr 19, 2020, at 5:32 PM, Beno<EMAIL_ADDRESS>wrote:
The problem is with the config file. Probably you used the one from the README as basis. Use the one from the file config.example.json
Here's a quick edit of your file:
{
"bridge": {
"name": "Homebridge XXXX",
"username": "XX:XX:XX:XX:XX",
"port": XXXXXX,
"pin": "XXX-XX-XXX"
},
"accessories": [],
"platforms": [
{
"name": "Config",
"port": XXXX,
"platform": "config"
},
{
"platform": "isy-hub",
"name": "isy-hub",
"username": "XXXXX",
"password": "XXXXX",
"host": "XXXXX",
"refresh_interval": 30000,
"devices": [],
"scenes": [
{
"name": "Light Scene",
"id": 12345,
"type": "lightbulb",
"on_level": 100
},
{
"name": "Toggle Scene",
"id": 23456,
"type": "switch",
"on_level": 76
},
{
"name": "Window Scene",
"id": 34567,
"type": "window_cover"
}
]
}
]
}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/bgottsch/homebridge-isy-hub/issues/2#issuecomment-616228501, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIXC6OUICMO5NIOK7XEQJ2DRNNUX7ANCNFSM4ML5TN7Q.

Hey @ModMike
Great to know config is working. Yes, unfortunatelly, I designed this plugin with manual adding of devices and scenes. This is due to a design choice of manually chosing the accessory type in the config file, rather than making the plugin automatically choose it based on the device/scene. And it would be pointless to auto add and create a mapping in the config.
Anyway, about your errors: the plugin tries to connect to the ISY web scoket, and if not possbile, sets the reachability to false. Thus, your problem is with not being able to connect to the web socket.
Let's investigate, if you're up to it. On the ISY admin, click on the menu Tools > Diagnostics > Event Viewer. A windows should pop up, this is the output of the web socket, check if anything logs if you switch a device.

Absolutely up to it, will look at it during lunch.

On Apr 20, 2020, at 11:41 AM, Beno<EMAIL_ADDRESS>wrote:
Hey @ModMike https://github.com/ModMike
Great to know config is working. Yes, unfortunatelly, I designed this plugin with manual adding of devices and scenes. This is due to a design choice of manually chosing the accessory type in the config file, rather than making the plugin automatically choose it based on the device/scene. And it would be pointless to auto add and create a mapping in the config.
Anyway, about your errors: the plugin tries to connect to the ISY web scoket, and if not possbile, sets the reachability to false. Thus, your problem is with not being able to connect to the web socket.
Let's investigate, if you're up to it. On the ISY admin, click on the menu Tools > Diagnostics > Event Viewer. A windows should pop up, this is the output of the web socket, check if anything logs if you switch a device.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/bgottsch/homebridge-isy-hub/issues/2#issuecomment-616635450, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIXC6OSHXC5JCPZVLSOVXQ3RNRUKBANCNFSM4ML5TN7Q.

From the

But do you need version 5 of the firmware to make it work? ISY99i stoped at version 3.1.10 or something like that.

From ISY Portal: Starting with firmware version 4.2.3, you can now use REST to subscribe to ISY using Web Sockets.
Unfortunately, it might be the case where the ISY-99i won't work with this plugin. Still, it supports REST, but not web sockets. It might be possible to create a plugin without web sockets, but i'd have to change a lot of my logic for it.
Take a look at this other ISY (plugin)[https://github.com/pradeepmouli/homebridge-isy-js]. Don't know if it will work for the ISY-99i, but might be worth the try.
(Ps: opinion about buying an ISY-994i in 2020)
I purchased my Insteon home automation setup a while back, when home automation and specially lighting control was in it's early days. During my experience, integration was the most consuming task, since HomeKit had very strict design limitations, and Insteon also had theirs. ISY-994i was the second hub I have tried to use for my Insteon setup, and it was mostly worked great.
Therefore, there were some hickups on the way - scene dimming, grouping accessories and controlling via REST with no lag, controlling KeyPads, and the list goes on. Therefore, I have decided it's now time to revise this setup, and maybe start to improve it.
After an extensive research, I'm now experimenting with ESC8266 wi-fi controllers and other types of dimmers. This topic is complex, and I haven't had much progress yet, but with this, it's possible to use a $5 Sonoff device, and flash it to have native HomeKit support. This would solve most of the issues I currently have with Insteon, but it means replacing my system. If I get some good results from it, I might migrate little by little into the newer platforms.
I also came across the (Shelly Dimmer)[https://shelly.cloud/wifi-smart-home-automation-shelly-dimmer/], a device similar to the Insteon Micro Dimmer, but with native wi-fi and MQTT support (ESP8266 built-in). They are relatively cheap and very compatible with most home automation systems. There's already a homebridge plugin to auto discover and add Shelly devices. Purchased mine yesterday, and will test more when it arrives.
In conclusion, is it worth it to buy an ISY-994i in 2020? Maybe, depends on your budget and necessity. Therefore, I believe it's time to invest into newer alternatives, such as Shelly (not tested yet), or others.

Good point but I already invested in Insteon 7 years ago and have about 30 light switches and keypads. I think I will just bite the bullet and get it.
I don’t want to waste your time on outdated hardware.
Thanks!

On Apr 20, 2020, at 12:05 PM, Beno<EMAIL_ADDRESS>wrote:
From the
But do you need version 5 of the firmware to make it work? ISY99i stoped at version 3.1.10 or something like that.
From ISY Portal: Starting with firmware version 4.2.3, you can now use REST to subscribe to ISY using Web Sockets.
Unfortunately, it might be the case where the ISY-99i won't work with this plugin. Still, it supports REST, but not web sockets. It might be possible to create a plugin without web sockets, but i'd have to change a lot of my logic for it.
Take a look at this other ISY (plugin)[https://github.com/pradeepmouli/homebridge-isy-js]. Don't know if it will work for the ISY-99i, but might be worth the try.
(Ps: opinion about buying an ISY-994i in 2020)
I purchased my Insteon home automation setup a while back, when home automation and specially lighting control was in it's early days. During my experience, integration was the most consuming task, since HomeKit had very strict design limitations, and Insteon also had theirs. ISY-994i was the second hub I have tried to use for my Insteon setup, and it was mostly worked great.
Therefore, there were some hickups on the way - scene dimming, grouping accessories and controlling via REST with no lag, controlling KeyPads, and the list goes on. Therefore, I have decided it's now time to revise this setup, and maybe start to improve it.
After an extensive research, I'm now experimenting with ESC8266 wi-fi controllers and other types of dimmers. This topic is complex, and I haven't had much progress yet, but with this, it's possible to use a $5 Sonoff device, and flash it to have native HomeKit support. This would solve most of the issues I currently have with Insteon, but it means replacing my system. If I get some good results from it, I might migrate little by little into the newer platforms.
I also came across the (Shelly Dimmer)[https://shelly.cloud/wifi-smart-home-automation-shelly-dimmer/], a device similar to the Insteon Micro Dimmer, but with native wi-fi and MQTT support (ESP8266 built-in). They are relatively cheap and very compatible with most home automation systems. There's already a homebridge plugin to auto discover and add Shelly devices. Purchased mine yesterday, and will test more when it arrives.
In conclusion, is it worth it to buy an ISY-994i in 2020? Maybe, depends on your budget and necessity. Therefore, I believe it's time to invest into newer alternatives, such as Shelly (not tested yet), or others.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/bgottsch/homebridge-isy-hub/issues/2#issuecomment-616650903, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIXC6OW7V6TVY6UI7LL56BTRNRXGHANCNFSM4ML5TN7Q.

No worries! Glad to help

But do you need version 5 of the firmware to make it work? ISY99i stoped at version 3.1.10 or something like that.

From ISY Portal: Starting with firmware version 4.2.3, you can now use REST to subscribe to ISY using Web Sockets.
Unfortunately, it might be the case where the ISY-99i won't work with this plugin. Still, it supports REST, but not web sockets. It might be possible to create a plugin without web sockets, but i'd have to change a lot of my logic for it.
Take a look at this other ISY plugin. Don't know if it will work for the ISY-99i, but might be worth the try.
(Ps: opinion about buying an ISY-994i in 2020)
I purchased my Insteon home automation setup a while back, when home automation and specially lighting control was in it's early days. During my experience, integration was the most consuming task, since HomeKit had very strict design limitations, and Insteon also had theirs. ISY-994i was the second hub I have tried to use for my Insteon setup, and it was mostly worked great.
Therefore, there were some hickups on the way - scene dimming, grouping accessories and controlling via REST with no lag, controlling KeyPads, and the list goes on. Therefore, I have decided it's now time to revise this setup, and maybe start to improve it.
After an extensive research, I'm now experimenting with ESC8266 wi-fi controllers and other types of dimmers. This topic is complex, and I haven't had much progress yet, but with this, it's possible to use a $5 Sonoff device, and flash it to have native HomeKit support. This would solve most of the issues I currently have with Insteon, but it means replacing my system. If I get some good results from it, I might migrate little by little into the newer platforms.
I also came across the Shelly Dimmer, a device similar to the Insteon Micro Dimmer, but with native wi-fi and MQTT support (ESP8266 built-in). They are relatively cheap and very compatible with most home automation systems. There's already a homebridge plugin to auto discover and add Shelly devices. Purchased mine yesterday, and will test more when it arrives.
In conclusion, is it worth it to buy an ISY-994i in 2020? Maybe, depends on your budget and necessity. Therefore, I believe it's time to invest into newer alternatives, such as Shelly (not tested yet), or others.

I think that one of the things the OP is not considering is that the ISY994i and it's variants give you the kind of programatic control that you simply cannot have in Homekit. I am not seeing it is equal to control 4 in any way but it is kind of the same paradigm in the sense that you have powerful scripts and programs you can run.
Whats great is that can all be set up in the background and you can use HomeKit for manual control.

That’s true, ISY gives you kore control, though there are better platforms such as HomeAssistant or even a simple MQTT server.
The ISY is terrific to control Insteon devices and a few others, and can easily be integrated with platforms as the ones mentioned above.
Therefore it’s still one more step than necessary. Home automation has evolved a lot, and IoT has mostly migrated from proprietary systems (such as Insteon) to more modern open-source systems. These allow for better overall integration, while not limiting features.
I base my opinion due to a series of frustrations while trying to simply control de brightness of multiple devices at the same time (not a scene, with preset values, but continuous control with HomeKit slider). This is a simple example where the Insteon protocol fails in comparison to others.
Nonetheless, Insteon has it’s merits and features, which are unique to it. But IMHO, there are better alternatives.
I saw an article back in Dec/19 stating that Insteon was experimenting with improvements and modernizations to their platform, let’s hope this happens.

Got my 994i and everything works perfectly once I understood how to format the config file. Thanks for the help!

Great to hear that! Glad to help.
If you run into any trouble or have any suggestions, feel free to get in touch.
Best regards

Your edit of my file was the key to understanding the JSON format and syntax. I do have once last remaining issue, but not sure if it's related: After the platform initializes I get this message:
[isy-hub] Startup complete!
(node:3960) [DEP0123] DeprecationWarning: Setting the TLS ServerName to an IP address is not permitted by RFC 6066. This will be ignored in a future version.

Do I need to use https:// or the dhcp name of the ISY instead of IP to comply with SSL? Just guessing here.


[Typescript] Lookup for external modules in @types folder.

Why
When using TypeScript an external module can be resolved to its type definition file located in node_modules/@types from<EMAIL_ADDRESS>At the moment, that module would be marked as "internal" because the module is not found directly inside node_modules, but instead nested inside @types.
What
This PR just adds the node_modules/@types folder to lookup for external modules when using the TypeScript config.
Fixes: #1525

Coverage decreased (-0.3%) to 96.243% when pulling 4fb469be607af43534bc2b5ceb0a0082d7c50af4 on joaovieira:support-ts-resolver-v2 into 112a0bf442e52b25cd7029a9905df2508e191ac1 on benmosher:master.

Coverage decreased (-0.3%) to 96.243% when pulling 4fb469be607af43534bc2b5ceb0a0082d7c50af4 on joaovieira:support-ts-resolver-v2 into 112a0bf442e52b25cd7029a9905df2508e191ac1 on benmosher:master.

Coverage decreased (-0.3%) to 96.243% when pulling 4fb469be607af43534bc2b5ceb0a0082d7c50af4 on joaovieira:support-ts-resolver-v2 into 112a0bf442e52b25cd7029a9905df2508e191ac1 on benmosher:master.

Coverage decreased (-0.3%) to 96.243% when pulling 4fb469be607af43534bc2b5ceb0a0082d7c50af4 on joaovieira:support-ts-resolver-v2 into 112a0bf442e52b25cd7029a9905df2508e191ac1 on benmosher:master.

Coverage decreased (-0.3%) to 96.243% when pulling 4fb469be607af43534bc2b5ceb0a0082d7c50af4 on joaovieira:support-ts-resolver-v2 into 112a0bf442e52b25cd7029a9905df2508e191ac1 on benmosher:master.

Coverage decreased (-0.3%) to 96.243% when pulling 4fb469be607af43534bc2b5ceb0a0082d7c50af4 on joaovieira:support-ts-resolver-v2 into 112a0bf442e52b25cd7029a9905df2508e191ac1 on benmosher:master.

@benmosher @ljharb any time to review this one liner?
(and maybe while you're at it, also #1528. These two are breaking for TS users with the new eslint-import-resolver-typescript@2.0.0).

@ljharb I assumed we didn't test configs, as there are no tests for any of them.
The import/external-module-folders setting has already been tested in https://github.com/benmosher/eslint-plugin-import/blob/master/tests/src/core/importType.js#L144.
Happy to test that the config sets that setting?

@joaovieira while that is quite true that we don't already (my bad) it's still better to add one, as if something's not tested, that tells me it's ok to break :-)

I'm not sure why the travis tests are failing; this test passes for me locally.

@ljharb it was already failing before this PR, and has been failing for all PRs ever since. I looked at it a while back but couldn't understand the issue as well :/

@ljharb fixed. Mocha doesn't seem to play nicely with globs. Decided to put the config tests next to all the others to simplify.


WIP: some ideas for a staging-based approach to rollbacks

This PR builds on #92 and, with the help of a new component DirtyChanges, shows some ideas about how we might want to handle rollbacks without the use of any auxiliary entities. @juanmardefago feel free to borrow from this as much as you want, I'll leave this indefinitely as a draft PR.

I'll close this PR since we merged most of those commits to main, with the exception of the last one, and I'll create a PR with the last commit to expand on the DirtyChanges approach


"check" mode for integration tests

I would like to have something like isort --check ... that returns 0 if no changes would be applied, and 1 otherwise.

Hi @nschloe,
isort does have such an option :) and even better it is --check. You can combine it with --diff to show you what isort would change when 1 is passed in.
For example:
isort --check --diff . -rc

Will run isort recursively throughout a project returning 0 if nothing would change and 1 if something would change, while displaying those proposed changes.
Hope this is helpful!
Thanks!
~Timothy


DINet training

New directions?

aim to build open source that can be using for face talking head

When do you think it will be ready?

maybe the end of this week

maybe the end of this week

Thank you very much

Great guy, is the development going smoothly?


Output: Call get() function with parameter names

I see post change that you can (and do) specify the entire argument set with kwargs, even when not necessary (which is a perfectly fine stylistic choice). Is there some forward-looking benefit to this capability? If not I actually dislike changing the signature of get from x, *y to x, y.

The way I see it, we have functions in the individual codes, like calc_md() or calc_static(), which implement the interface as:
def calc_static(..., output_keys):
    return OutputStatic(
        **{k: getattr(Interface, k) for k in OutputStatic.keys()}
    ).get(
       Interface(),
        *output_keys,
    )

Then inside the OutputStatic interface we loop over the variable:
def get(self, engine, *output: str) -> dict:
        return {q: getattr(self, q)(engine) for q in output}

As the user facing part is using a regular variable without * like output_keys I see no reason why the internal interface should use the *output_keys if internally it is anyway just used to iterate over the variable.
From my perspective it is essential for us to define consistent interfaces and not just once use once *output_keys and the other time output_keys. That is just confusing.


Nested entity propagation eventhough it already exists

Describe the bug
Nested entity should not be inserted into the database if it already exists.
Stack trace
  console.log
    [query] select `e0`.* from `b` as `e0` where `e0`.`value` = 'foo' limit 1 [took 1 ms]

      at Logger.log (packages/core/src/utils/Logger.js:22:14)

  console.log
    [query] begin

      at Logger.log (packages/core/src/utils/Logger.js:22:14)

  console.log
    [query] insert into `b` (`value`) values ('foo') [took 1 ms]

      at Logger.log (packages/core/src/utils/Logger.js:22:14)

  console.log
    [query] commit

      at Logger.log (packages/core/src/utils/Logger.js:22:14)

  console.log
    [query] select `e0`.* from `a` as `e0` left join `b` as `e1` on `e0`.`b_id` = `e1`.`id` where `e1`.`value` = 'foo' limit 1 [took 1 ms]

      at Logger.log (packages/core/src/utils/Logger.js:22:14)

  console.log
    [query] begin

      at Logger.log (packages/core/src/utils/Logger.js:22:14)

  console.log
    [query] insert into `b` (`value`) values ('foo') [took 1 ms]

      at Logger.log (packages/core/src/utils/Logger.js:22:14)

  console.log
    [query] rollback

      at Logger.log (packages/core/src/utils/Logger.js:22:14)

UniqueConstraintViolationException: insert into `b` (`value`) values ('foo') - SQLITE_CONSTRAINT: UNIQUE constraint failed: b.value

    at SqliteExceptionConverter.convertException (C:\Users\ravin\Desktop\mikro-orm\packages\sqlite\src\SqliteExceptionConverter.js:20:20)
    at SqliteDriver.convertException (C:\Users\ravin\Desktop\mikro-orm\packages\core\src\drivers\DatabaseDriver.js:171:54)
    at C:\Users\ravin\Desktop\mikro-orm\packages\core\src\drivers\DatabaseDriver.js:175:24
    at SqliteDriver.nativeInsert (C:\Users\ravin\Desktop\mikro-orm\packages\knex\src\AbstractSqlDriver.js:144:21)
    at ChangeSetPersister.persistNewEntity (C:\Users\ravin\Desktop\mikro-orm\packages\core\src\unit-of-work\ChangeSetPersister.js:55:21)
    at ChangeSetPersister.executeInserts (C:\Users\ravin\Desktop\mikro-orm\packages\core\src\unit-of-work\ChangeSetPersister.js:24:13)
    at UnitOfWork.commitCreateChangeSets (C:\Users\ravin\Desktop\mikro-orm\packages\core\src\unit-of-work\UnitOfWork.js:472:9)
    at UnitOfWork.persistToDatabase (C:\Users\ravin\Desktop\mikro-orm\packages\core\src\unit-of-work\UnitOfWork.js:434:13)

previous Error: insert into `b` (`value`) values ('foo') - SQLITE_CONSTRAINT: UNIQUE constraint failed: b.value

To Reproduce
import { Entity, ManyToOne, MikroORM, PrimaryKey, Property } from '@mikro-orm/core';
import { AbstractSqlDriver } from '@mikro-orm/knex';
import { SqlHighlighter } from '@mikro-orm/sql-highlighter';
import { classToPlain } from 'class-transformer';

@Entity()
export class B {

  @PrimaryKey()
  id!: number;

  @Property({ unique: true })
  value!: string;

}

@Entity()
export class A {

  @PrimaryKey()
  id!: number;

  @ManyToOne({ entity: 'B', eager: true })
  b!: B;

}

describe('GH issue 1192', () => {

  let orm: MikroORM<AbstractSqlDriver>;

  beforeAll(async () => {
    orm = await MikroORM.init({
      entities: [A, B],
      dbName: ':memory:',
      type: 'sqlite',
      debug: ['query', 'query-params'],
      highlighter: new SqlHighlighter(),
    });
    await orm.getSchemaGenerator().createSchema();
  });

  afterAll(() => orm.close(true));

  test('Nested entity should not get propagated if it already exists', async () => {

    // Uncomment this block to see the issue
    // const b = new B();
    // b.value = 'foo';

    // Uncomment this block to see the issue
    // await orm.em.findOne(b.constructor.name, classToPlain(b)) || await orm.em.persistAndFlush(b);

    const b2 = new B();
    b2.value = 'foo';

    const a = new A();
    a.b = b2;

    await orm.em.findOne(a.constructor.name, classToPlain(a)) || await orm.em.persistAndFlush(a);

    const b3 = new B();
    b3.value = 'foo';

    const a2 = new A();
    a2.b = b3;

    await orm.em.findOne(a2.constructor.name, classToPlain(a2)) || await orm.em.persistAndFlush(a2);

  });

});

Expected behavior
I expect that the existing entity does not get inserted into the database.
Versions

Dependency
Version

node
14.15.1

typescript
4.0.5

mikro-orm
4.3.4-dev.20

mikro-orm/sqlite
4.3.4-dev.20

What are you expecting from this? What is that bit with class-transformer doing?
In general you can't use class-transfomer to work with MikroORM entities, it does not understand references and collections. You should do wrap(a).toObject() or wrap(a).toJSON() instead.

When you run this test without uncommenting the part that I mentioned the queries that are executed run fine and the existing entity B with value foo does not get propagated twice. When you uncomment the code I mentioned then suddenly it will try to propagate entity B twice even tho there should be a match in the database.

So when examining the query:
select e0.* from aase0left joinbase1one0.b_id=e1.idwheree1.value = 'foo' it should not propagate twice if value foo is already there and can be found but that seems not to be the case.

Not really, the issue is in your code. It is not creating the same entity twice - you are.
@Entity()
export class A {

  @PrimaryKey()
  id!: number;

  @ManyToOne({ entity: 'B', eager: true })
  b: B;

  constructor(body: { name: string }) {
    this.b = new B({ value: body.name }); // each new A will have new B with the same value
  }

}

@B4nan Why did you close this seems you missed the point there clearly is a bug? I have updated my test case to make it less confusing.

If you run the test case without uncommenting the code block I mentioned the queries that get executed are working as expected the first a entity propagates all changes and the second a entity doesn't need to propagate entity b because foo already exists. But as soon as you create b entity before the two a entities suddenly it doesnt work anymore.

No, I did not miss the point, it sounds more like you did not understand my last message. Your code is creating multiple entities with value: 'foo', that is your issue, not the ORM issuing multiple inserts for the same entity - you have multiple of those.

That still doesn't explain why it does work as expected when I persist the two A entities without persisting the B entity before it. Those are both new B entities. The query that gets generated is
select `e0`.* from `a` as `e0` left join `b` as `e1` on `e0`.`b_id` = `e1`.`id` where `e1`.`value` = 'foo' which means there should be a match the second time around so there is no need for a persist for the second A entity. Which means my code is working as expected. await orm.em.findOne(a2.constructor.name, classToPlain(a2)) || await orm.em.persistAndFlush(a2);. So that begs the question why it breaks when entity B is created before the two A entities.

I realized my own mistake my apologies. The two a entities obviously work because the second time around the first a entity gets returned if that wasn't the case it would insert the new b again. Closed.

which means there should be a match the second time around so there is no need for a persist for the second A entity.

Yes, second time, but the first time there is no match, and that is where you create second B entity that breaks this.

So that begs the question why it breaks when entity B is created before the two A entities.

Because the way it works you are creating A with B together, not B separately.
    // here you create entity B with value: 'foo'
    const b = new B();
    b.value = 'foo';

    // here you save it to the database
    await orm.em.findOne(b.constructor.name, classToPlain(b)) || await orm.em.persistAndFlush(b);

    // here you create another one
    const b2 = new B();
    b2.value = 'foo';

    // and set it to `a`
    const a = new A();
    a.b = b2;

    console.log(classToPlain(a));
    // here you are trying to search for A, but so far you did not persist any entity A!!
    // so here you are flushing another B entity with the same value: 'foo'
    await orm.em.findOne(a.constructor.name, classToPlain(a)) || await orm.em.persistAndFlush(a);

    // rest of the code is not even reached
    const b3 = new B();
    b3.value = 'foo';

    const a2 = new A();
    a2.b = b3;

    await orm.em.findOne(a2.constructor.name, classToPlain(a2)) || await orm.em.persistAndFlush(a2);


Why without T?

Without T, simply produce voice from voice? What's the meaning of that?

TTS-w/o-T is the intended goal of the ZeroSpeech 2019 Challenge, which is described here with full detail: https://zerospeech.com/2019/. However, it is true that a voice-to-voice scheme is more like voice conversion, as we have discussed in our paper: https://arxiv.org/abs/1905.11563

@andi611 It should be like while training you don't required transcription , model it self extract from audio file and get train. While Inference or testing, you just remove ASR part and put only text and get audio (like vanilla TTS).

@rishikksh20  I don't think you can train a model unsupervised and feed it supervised while inference.
For voice conversion, what's the input of model? Using my self voice to generate my own voice?

@rishikksh20 Yes, but then you would need to map human text to the machine-discovered discrete units. Then you can remove ASR, input text, map it to discrete units, then TTS generates speech from the learned units.
@jinfagang for a voice conversion model, the input is speech from a source speaker, and the output should be speech of the same content, but with the voice of a given target speaker.


engine: add release notes from 19.03.6 and 19.03.7

fixes https://github.com/docker/docker.github.io/issues/10407
Signed-off-by: Tibor Vass<EMAIL_ADDRESS>Ping @usha-mandya @thaJeztah

Unsure why it's failing. There's only a warning that says:

npm WARN deprecated<EMAIL_ADDRESS>core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.

But if it's a warning it shouldn't cause a failure. 🤷♂

I think there were issues with passing the account info
Usage: <netlify_auth_token> <netlify_account_slug> <site_name> <directory>
+ usage
+ echo 'Usage: <netlify_auth_token> <netlify_account_slug> <site_name> <directory>'
+ exit 1

@thaJeztah Wondering if it's a good idea to unhook this build check until we fix the Netlify account issue?

Wondering if it's a good idea to unhook this build check until we fix the Netlify account issue?

Yes, if the "deploy to metlife" step is non-functional, we may as well remove it for the time being

OK, thanks @thaJeztah.  I've updated the branch protection rules. As soon as @tiborvass makes the minor update, we should be able to approve and push it.

Updated


WIP: Allow PutOperation to use dynamic success target

In the intermediate state of "move replica", when decommision of old
replicas is initiated(not transit to INACTIVE yet), the PUT requests
should be rejected on old replicas. For frontends, they are seeing both
old and new replicas(assume 3 old and 3 new), the success target should
be 6 - 1 = 5. In the aformentioned scenario, PUT request failed on 3 old
replicas and we are supposed to fail whole PUT operation. However, PUT
request is highly likely to succeed on 3 new replicas and we actually
could consider it success without generating "slip put" (which makes PUT
latency worse)
The new success criterion is:
success cnt > Math.max(parallelism - disbled cnt - 1, 2)
The 2 here is original PUT success target, which is the lower bound of
PUT operation target.

Codecov Report

Merging #1337 into master will decrease coverage by 0.01%.
The diff coverage is 68.42%.

@@             Coverage Diff              @@
##             master    #1337      +/-   ##
============================================
- Coverage     72.16%   72.15%   -0.02%
- Complexity     6513     6517       +4
============================================
  Files           473      473
  Lines         37272    37293      +21
  Branches       4713     4718       +5
============================================
+ Hits          26897    26908      +11
- Misses         9113     9119       +6
- Partials       1262     1266       +4

Impacted Files
Coverage Δ
Complexity Δ

...ain/java/com.github.ambry/config/RouterConfig.java
97.82% <100%> (+0.02%)
1 <0> (ø)
:arrow_down:

.../java/com.github.ambry/router/RouterErrorCode.java
100% <100%> (ø)
1 <0> (ø)
:arrow_down:

....github.ambry.router/TrackedRequestFinalState.java
71.42% <50%> (-28.58%)
4 <0> (ø)

...om.github.ambry.router/SimpleOperationTracker.java
86.66% <63.63%> (-4.58%)
50 <7> (+2)

...ain/java/com.github.ambry.router/PutOperation.java
92.2% <72.72%> (+0.39%)
116 <0> (+2)
:arrow_up:

...c/main/java/com.github.ambry.network/Selector.java
78.21% <0%> (-1.84%)
77% <0%> (-2%)

...github.ambry.rest/AsyncRequestResponseHandler.java
87.62% <0%> (-0.67%)
23% <0%> (ø)

...java/com.github.ambry.network/SSLTransmission.java
71.38% <0%> (-0.62%)
76% <0%> (-1%)

...in/java/com.github.ambry.store/BlobStoreStats.java
71.04% <0%> (ø)
103% <0%> (ø)
:arrow_down:

... and 5 more

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 d9a721e...55765a0. Read the comment docs.


Bump containerd to 1.6.9

This version of containerd is the first one that includes the changes from https://github.com/containerd/containerd/pull/6995.  Though upstream buildkit is at v1.6.14, I assumed you'd prefer a more conservative change.
The underlying issue it fixes is notoriously difficult to reproduce when you actually want to, but so far, I have not encountered any "cannot reuse body, request must be retried" errors when pushing with this updated build.

Based on off-line conversation, buildkit will be updated in the near future and would include a superset of this fix (newer version), so will await that release.


App does not work any longer if GPS is deactivated

Error occurs on different mobile devices.
Error message 'Standortdienste deaktiviert' . If I am turning on the GPS (which usually not do) the app works and states "Risikoermittlung aktiv".
This behaviour is new, first recognized today.

Internal Tracking ID: EXPOSUREAPP-2215

@bhintermayr the app never worked with Location setting turned off - this was unfortunately false information in the app. Related issue with more technical details why "Location setting on" is necessary: https://github.com/corona-warn-app/cwa-app-android/issues/881

Hi @bhintermayr,
You need location (Standort) on in Android and this is mentioned in the FAQs in German or FAQs in English.

Ups. That means a wrong status was displayed from day one.
Understanding the dependency on the android interface, but I assume switching on location (permanently) will be  a no-go for many users.

@bhintermayr

This behaviour is new, first recognized today.

Can you provide your ENF version, like described here: https://www.coronawarn.app/de/faq/?search=Enf#ENF_version ?

15202902003

@bhintermayr thank you, then it might not be related to the new ENF-version currently being rolled out.
Then that new behaviour might be related to the new CWA version 1.2.x, as many users report lately to be irritated about that error message you described. (I have not been affected, running latest CWA version, though)

I'd say that requiring "location on" at the device level stays in direct conflict with the goal of CWA high adoption. Many privacy sensitive folks will simply not care about the intrigate relationship with BLE. The message is "CWA forces me to tell the world where I am". Please work with Google to fix this.

@kira99 and I recently had a chat on exactly this topic: https://twitter.com/AlexandraWittm/status/1292784799581704192
Summary: some device manufacturers have seemingly decoupled GPS from "location" in some software versions. So if I disable “GPS” in the dropdown menu on the main screen on the two Xiaomi devices in my family (Xiaomi Redmi 5 Plus with Android 8.1 and Xiaomi Redmi Note 7 with Android 9) they will still happily continue to send BLE tokens (I checked with a BLE Scanner) and no warning will be shown by either Android nor the App itself:

On the other Hand @kira99’s Redmi Note 7 had the same behavior, but recently received a system update and since then she needs to enable GPS otherwise no tokens are send and a warning is shown.
Additionally it seems like Android 11 will address this issue, by having an exception for ENF: https://blog.google/inside-google/company-announcements/update-exposure-notifications/

In the past Google PlayServices would send the warning about disabled location settings. It might be that many people have disabled notifications from PlayServices, and due to this they would not be warned about turned off location, neither.
Also, in the past you could select in location settings to not use GPS, while still allowing BT+WiFi. Since some Android version (I think 9, but I don't recall), this option is now reversed: you can turn off BT+WiFi while location is on, but you cannot turn off GPS without turning of location settings. It seems though that some manufacturers went their own way.
Unfortunately, Google can't do much about this. This would only work if the government would force manufacturers to release a firmware update to all Android devices running Android 9 or higher. Which seems extreme at first, but then again forcing shops and other venues to close is even more extreme.

After updating the Xiaomi Redmi Note 7 to "MIUI Global 11.0.1 Stable" today, it now also needs location enabled in order for ENF to work properly (also notice how it now says "Standort" instead of "GPS"). So at least in this case this seems to be purely a manufacturer thing and not anything related to CWA:

IMHO, it should not be necessary at all that the user is exposed to bluetooth AND location permissions. Instead, it should be possible for CWA to bypass location permissions as part of the BLE API contract. The user would then only be exposed to (required) bluetooth permissions. The OS knows that a CWA is requesting stuff from the BLE interface and could hence handle location stuff transparently for CWA clients.

IMHO, it should not be necessary at all that the user is exposed to bluetooth AND location permissions. Instead, it should be possible for CWA to bypass location permissions as part of the BLE API contract.

This will only be possible with an Android update/modification and cannot be pushed via play services, which are used to provide ENF.
I've elaborated on the reasons behind this in more detail here (German).

This has been elaborated already back in June shortly after the release.


docs: Add asdf install

I made a plugin for asdf so you can install vac using it. I’ll submit the plugin for inclusion upstream but in the meantime I’ve updated your README with instructions.

oh brilliant, thanks!


[ graphicsmagick ] Add Webp support feature

Support for WebP format.

Which triplets are supported/not supported? Have you updated the CI baseline?
all

Does your PR follow the maintainer guide?

Yes

Thanks!


请教下这个报错该怎么解决SyntaxError: unterminated string literal

Traceback (most recent call last):
File "/ql/data/scripts/xjasonlyu_98tang_daysign/daysign.py", line 199, in
main()
File "/ql/data/scripts/xjasonlyu_98tang_daysign/daysign.py", line 169, in main
cookies = retrieve_cookies_from_fetch('FETCH_98TANG')
File "/ql/data/scripts/xjasonlyu_98tang_daysign/daysign.py", line 137, in retrieve_cookies_from_fetch
cookie_str = parse_fetch(os.getenv(env))['headers']['cookie']
File "/ql/data/scripts/xjasonlyu_98tang_daysign/daysign.py", line 132, in parse_fetch
exec(s, {
File "", line 7
"sec-ch-ua": "\Not/A)Brand;v=\99, \Google Chrome;v=\115, \Chromium;v=\115",
^
SyntaxError: unterminated string literal (detected at line 7)
复制出来的fech格式如下，变量名称FETCH_98TANG
fetch("https://www.sehuatang.net/plugin.php?id=dd_sign:index", {
"headers": {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7",
"accept-language": "en,zh-CN;q=0.9,zh;q=0.8",
"cache-control": "no-cache",
"pragma": "no-cache",
"sec-ch-ua": ""Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": ""macOS"",
"sec-fetch-dest": "document",
"sec-fetch-mode": "navigate",
"sec-fetch-site": "same-origin",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
"cookie": "******",
"Referer": "https://www.sehuatang.net/forum.php?mod=viewthread&tid=1499862&extra=page%3D1",
"Referrer-Policy": "strict-origin-when-cross-origin"
},
"body": null,
"method": "GET"
});

同样的报错，求大佬指导下

大佬，请教一下，报这个错误是什么题：
开始执行... 2024-01-19 22:10:35
comment to: tid = 1808288, message = 不错。。。
Traceback (most recent call last):
File "/ql/data/scripts/xjasonlyu_98tang_daysign/daysign.py", line 180, in main
raw_html = daysign(cookies=cookies)
File "/ql/data/scripts/xjasonlyu_98tang_daysign/daysign.py", line 102, in daysign
soup = BeautifulSoup(r.text, 'xml')
File "/usr/local/lib/python3.10/site-packages/bs4/init.py", line 250, in init
raise FeatureNotFound(
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: xml. Do you need to install a parser library?
错误原因：Couldn't find a tree builder with the features you requested: xml. Do you need to install a parser library?
tg 服务的 bot_token 或者 user_id 未设置!!
取消推送
执行结束... 2024-01-19 22:10:40  耗时 5 秒


Reformat Code Structure

Description
Arrange all files in proper way i.e. javascript code files in js folder same for the images and assests.
Few changes in readme the command was wrong at contribution guidelines at step 4.
Fixes #70
Type of Change:

Feature
Documentation

How Has This Been Tested?
I executed it on my local system. It successfully executes.
Checklist:

[x] My PR follows the style guidelines of this project
[x] I have performed a self-review of my own code or materials
[x] I have commented my code or provided relevant documentation, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] New and existing unit tests pass locally with my changes

@jigar-sable merging 🥇


Wrap all "execution reverted" calls with error code FF23021

Fixes #65

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@68c5262). Click here to learn what that means.
The diff coverage is 42.85%.

@@           Coverage Diff           @@
##             main      #67   +/-   ##
=======================================
  Coverage        ?   97.38%
=======================================
  Files           ?       23
  Lines           ?     1413
  Branches        ?        0
=======================================
  Hits            ?     1376
  Misses          ?       27
  Partials        ?       10

Impacted Files
Coverage Δ

internal/ethereum/estimate_gas.go
56.52% <0.00%> (ø)

internal/ethereum/error_mapping.go
92.30% <33.33%> (ø)

internal/ethereum/exec_query.go
80.23% <55.55%> (ø)

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


Check documentation

Applied the suggested changes in #1012 to the StyleCop.Analyzers.Test and StyleCopTester projects. This fixes warnings that are appearing in the AppVeyor build.

:+1:


feat: init eventarc generic sample

Inits generic Eventarc sample (eventarc_generic).
Heavily influenced by Run sample.
Test locally
Tested locally.
curl localhost:8080 -H "key: val" -H "Content-Type: application/json" -XPOST --data '{"username":"xyz","password":"xyz"}'

@GoogleCloudPlatform/php-admins Hey folks, can you review/merge when good?

I believe this should be in the run directory, as all sample directories in the repo root represent google cloud products

eventarc is the name of the Google product and Google API service name.

Concurred, we've split eventarc from Cloud Run in the other repos as well, this is along the lines of Pub/Sub being a product: most of the samples demonstrate "sinks" but that's the current priority.

Hi @bshaffer, can you please 👍 this PR and merge?
Ping me if there are questions.

@bshaffer 👋  Any requested changes? Shall we merge?

Hi PHP Admins (@tmatsuo @bshaffer @dwsupplee),
Can someone please review this PR?
It's been a couple weeks and I'm trying to submit PHP samples.

Brent said he'll try to look at this by EOW

NEED to document creating a Eventarc trigger
NEED to curl / GCLOUD COMMAND for PUB/SUB trigger
NEED to move README to specific folder (not eventarc/)

@bshaffer I've added very detailed instructions on how to run this particular sample.
This change should resolve our discussion points that I mentioned up above in https://github.com/GoogleCloudPlatform/php-docs-samples/pull/1206#issuecomment-729220270.
Do note there are no standalone docs on cloud.google.com for this public product. This is the only PHP sample for this product. The instructions added to the sample's README provide e2e guidance on sample prerequisites, how to set-up, using the sample, and expected output, beyond the Cloud Run sample and Cloud Function samples in this repo.
You'll notice the PHP Cloud Run service purposefully produce output both to the HTTP response and log entries in Cloud Logging per the sample's design to give maximum visibility when an event is received – as otherwise it's difficult to observe the product working.
PTAL and request specific changes. Thanks!


Something unexpected went wrong or Address not found

Hi
Issue :

Pre-requisites : (Windows 10 up to date)

Maybe wierd ?

If i'm not click on the desk bluetooth button (desk not appearing)

If i'm click on the button (desk appearing)

If dont know if thats expected, but the Desk does not stay connected to the PC. When registering the device, it goes to register->connected->paired

PS : Tried changing to connection_timeout: 30, still not working.

Thank you for the all the details 🙇
Just to confirm, is this an Idasen desk?
I am away for a couple of weeks do I may not be able to be very helpful.

Just to confirm, is this an Idasen desk?
Yes

Is there no error message printed after "Something unexpected went wrong" ?

I dont have the issue anymore. Not sure why. But thanks anyway :P


Cloudevents support for Segmentio/kafka-go library

Implement Kafka binding for segmentio/kafka-go library similar to what is done here: https://github.com/cloudevents/sdk-go/pull/314

Note: This is an enhancement request and I am up for adding this.

has any progress?

has any progress?
Made some changes here:
https://github.com/sravya-a/sdk-go
I tested it locally it works as expected.
I need to add some unit tests for sender.


[WIP] Fix redis cluster e2e

What this PR does / why we need it:
Fixes end to end test scripts to use config introduced by #502
Does this PR introduce a user-facing change?:

NONE

/ok-to-test

/test test-end-to-end-redis-cluster

Need to change .prow/scripts/download-maven-cache.sh to infra/scripts/download-maven-cache.sh

/retest

/test test-end-to-end-redis-cluster

/retest

/retest

/test

/lgtm

/approve


Viktor's Attempt at completing the Beginning Git video course

Hi,
Thanks for this perfect course!!

Hey @mrGyugo —congrats on completing this beginning git course. I'm really glad you thought the course was useful.
If you weren't already using git for your code, hopefully this has inspired you to do so. I hope you're going to work through the "Mastering Git" video course as well—you'll soon be able to get git to bend to your will :)
You can now wear this #GitWarrior badge with pride—and Tweet your historic victory!

sam


Missing InstallationUpdate Event handler for TeamsEventHandler

Use this query to search for the most popular feature requests.
Is your feature request related to a problem? Please describe.
Trying to capture the InstallationUpdate Event is not possible through TeamsEventHandler as the handler is missing a case for InstallationUpdateEvent
Describe the solution you'd like
Would be awesome to have a method in TeamsEventHandler to support a method such as OnInstallationUpdateAsync to catch this event
[enhancement]

The InstallationUpdate event is not Teams specific, so this should be in the ActivityHandler (which TeamsActivityHandler inherits from).
ref: https://github.com/microsoft/botframework-sdk/blob/master/specs/botframework-activity/botframework-activity.md#installation-update-activity

This should also be updated, if Teams is sending this event: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channels-reference?view=azure-bot-service-4.0#uncategorized

@EricDahlvang I am assigning this to you. Please feel free to re-assign to appropriate people if needed.

see parent issue: https://github.com/microsoft/botframework-sdk/issues/5959

@munozemilio do we add "Bot Services" and "customer-reported" for internal partner teams? Internal partner = under Microsoft org.


trailing comma mode doesn't recognize # noqa

bug overview
isort keeps adding trailing comma to # noqa:  blocks
repro
isort version:
 isort --version | grep VERSION
                            VERSION 4.3.21

OS, macOS 10.14.6
uname -v
Darwin Kernel Version 18.7.0: Thu Jun 20 18:42:21 PDT 2019; root:xnu-4903.270.47~4/RELEASE_X86_64

code
temp.py:
# coding: utf-8

from __future__ import absolute_import

import unittest

import swagger_generated.stub
from swagger_generated.stub.models.list_artifacts_result import ListArtifactsResult # noqa: E501
from swagger_generated.stub.rest import ApiException

step to repro
isort -up -tc temp.py

result
# coding: utf-8

from __future__ import absolute_import

import unittest

import swagger_generated.stub
from swagger_generated.stub.models.list_artifacts_result import (
    ListArtifactsResult)  # noqa: E501,
from swagger_generated.stub.rest import ApiException

repeat the command to repro, it will add a trailing comma each time.

Hi @guihao-liang,
Thanks for reporting! It looks like you are using an outdated version of isort. This issue has been fixed in the 5.x series, and unfortunately there is not capacity to support more than one major version of the product at a time. If you need help upgrading to the new version see: https://timothycrosley.github.io/isort/docs/upgrade_guides/5.0.0/.
Thanks!
~Timothy


Implement Security

Hi Harald,
I'm not sure if you've done anything on this yet, but I've created a servlet filter modelled/reusing logic found in the camunda engine-rest project. It works with the camunda basic authentication implementation.
Do you want it?
cheers
Mark

Hi Mark, I haven't worked on security here, so yes, sure, I am interested in your servlet filter :-)

No problem. Will create a pull request in the next day or two for you to review.

👍

I've just created a pull request for you to review.

#6

closed


Option to write certain claims to a plist

Would be nice to have a setting for an array of strings of claims keys that can be written out to a plist for other software and scripts to use for configuring email and other applications. And maybe a setting for whether to write claims out to the plist (default false). If true it writes the claims listed in the above key array otherwise it writes all claims.

The idToken is written to the keychain. Would that be enough?

Reading from keychain is a not ideal because it requires the user to enter their password to allow access right? Or is it set to allow all applications?

It is only allowed by XCreds and other apps are prompted. I'll look into creating the plist.

Thanks. Writing into local account attributes might also be a good alternative like a mobile account would . I thinks XCreds already writes some attributes there.

now written to DS per other issue. Closing.


[Github pages] Add project home page

Navigating to crawler-commons project home page URL (https://crawler-commons.github.io/crawler-commons/) results in a 404. Would be nice to provide a short landing page: two sentences about the project and a link to the Github project page. Any other ideas?

We should have there a mice logo
An about the project section
Maybe, a brief history of how , when and why the project came to life
List of linked logos of other projects using our library


--develop flag for distributions

This would allow fetching distributions.yaml from the develop branch

may be merge defintions with update ?
binenv update --definitions + binenv update --definitions --develop

in #50 i made a suggestion as well. with --raw or without :)

I guess this would make the API a bit too complicated for a very small edge case.We'd rather close this until we're sure that cahce + distributions will stay in this repo.


No 1.0.2 tag

I see the commit tagging it, but there's no git tag, is this intentional?

Nope, that was an oversight on my part. It's fixed now. Thanks!
As an added bonus, I also tagged 1.0.3.


Use a unique ID for child spec

Otherwise it will conflict with other children
named Task.

Thank you!


Add missing file extension to LICENCE

Description
The missing file extension causes the LICENSE file to be missing
in final plugin package distribution.
Issues Resolved
Missing LICENSE file in plugin package.
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dblock It is explicitly referenced in the gradle opensearchplugin plugin.
For example when you do ./gradlew build then LICENSE file is missing in build/testclusters/integTest-0/distro/1.2.3-INTEG_TEST/plugins/rename/ folder.
I updated reference in README file as well.

@dblock It is explicitly referenced in the gradle opensearchplugin plugin.
The LICENSE file is then missing in build/distributions/rename.zip. Which means that when you do ./gradlew build then LICENSE file is missing in build/testclusters/integTest-0/distro/1.2.3-INTEG_TEST/plugins/rename/ folder.

should CI be failing when this happens?

should CI be failing when this happens?

I will open a separate issue for that covering all the files.
Good catch  @lukas-vlcek !


THANK YOU!

OMG, this tool is wonderful! Thanks a lot! Not only did it help me to debug my system's sluggishness (I knew that it was related to file watchers but I did not know which application was flooding inotify), it was also super easy to set up.
Usually I try to avoid software from GitHub that needs to be built with make first because it is never just as easy as running make. I've never had any make run through without the need to fix barely documented dependency issues.
But your software just works and this is awesome!
Nevertheless, this software should become a default package in Ubuntu or at least be easily available via apt. Or maybe they should just increase the watcher limits by default :-D

But your software just works and this is awesome!

I tend to agree. All kudos to @mikesart . :)

Nevertheless, this software should become a default package in Ubuntu or at least be easily available via apt. Or maybe they should just increase the watcher limits by default :-D

You are welcome to publish an Ubuntu package. Note that it may be easier to get started in Debian -- with time, ubuntu will just pick it up. We already have this packaged in NixOS.

So thanks to the community then <3

You are welcome to publish an Ubuntu package. Note that it may be easier to get started in Debian -- with time, ubuntu will just pick it up. We already have this packaged in NixOS.

Lol, no thanks. I'm not gonna publish anything on Debian XD The ancient mailing list system is a mess that I am not willing to get myself into again. I made the mistake once to get too close to it and just went through several months of an "unsubscribing process" to get rid of the spam :-P Sry. We live in 2024. The boomerish tech gatekeeping is just too much for me to handle :-D It's a miracle that they don't require a fax machine to participate.

@mikesart I have to say thank you too! :heart:
You just solved the reason for why my Linux desktop was completely breaking and no applications could start anymore.
Turns out it was caused by GitKraken registering 61 (!) File Watcher INSTANCES. The per-user INSTANCE limit is 128 in total for all applications. And well-written applications only register 1 instance, and then uses that instance for registering the actual file watching.
I have contacted them about this bug in their application. It's bugged at the moment (10.3.0) but hopefully they'll fix it in the next version.
Without inotify-info, I would have never known!
This also helps explain why GitKraken often threw errors about "failed to watch repository" randomly. :) Because it was itself consuming too many watcher instances haha.
./inotify-info
------------------------------------------------------------------------------
INotify Limits:
  max_queued_events    16,384
  max_user_instances   128
  max_user_watches     492,830
------------------------------------------------------------------------------
       Pid Uid        App                            Watches  Instances
     89989 1000       xdg-desktop-portal-gnome           119          1
     89849 1000       gsd-xsettings                      110          1
     90086 1000       xdg-desktop-portal-gtk             109          1
     94124 1000       gitkraken                           61         61
     88870 1000       uresourced                          42          1
     89371 1000       gnome-software                      22          1
     89308 1000       python3.12                          16          2
     88940 1000       gnome-shell                         14          1
     89807 1000       gvfsd-trash                         13          2
     93980 1000       gitkraken                            9          4
     90890 1000       brave                                9          2
     89187 1000       ibus-daemon                          9          1
     94220 1000       node-spawn-server                    8          3
     88872 1000       gnome-session-binary                 7          2
     89332 1000       abrt-applet                          6          1
     89252 1000       evolution-alarm-notify               6          1
     88769 1000       dbus-broker-launch                   5          1
     89241 1000       mailspring                           5          1
     94033 1000       gitkraken                            4          1
     89978 1000       mailspring                           4          1
     93617 1000       1password                            4          1
     90933 1000       brave                                4          1
     89507 1000       flatpak-session-helper               3          1
     90039 1000       mailspring                           2          1
     89148 1000       evolution-source-registry            2          1
     89193 1000       gsd-housekeeping                     2          2
     89913 1000       pika-backup-monitor                  2          1
     90210 1000       tracker-miner-fs-3                   2          2
     89270 1000       flameshot                            2          2
     89611 1000       gvfs-udisks2-volume-monitor          2          2
     89393 1000       xdg-desktop-portal                   2          1
     89257 1000       gsd-sound                            2          1
     88905 1000       wireplumber                          2          3
     89346 1000       pia-client                           2          2
     90857 1000       python3.12                           1          1
     89114 1000       dbus-broker-launch                   1          1
     89907 1000       python3.11                           1          1
     90038 1000       mailspring                           1          1
     89908 1000       ibus-x11                             1          1
     89660 1000       gvfs-afc-volume-monitor              1          1
     89583 1000       ibus-engine-simple                   1          1
     89558 1000       evolution-addressbook-factory        1          1
     89492 1000       evolution-calendar-factory           1          1
     89369 1000       ibus-portal                          1          1
     89342 1000       goa-daemon                           1          1
     89330 1000       ibus-extension-gtk3                  1          1
     89327 1000       ibus-dconf                           1          1
------------------------------------------------------------------------------
Total inotify Watches:   624
Total inotify Instances: 123
------------------------------------------------------------------------------

Thanks so much for the kind note - very happy this tool was useful!!


It doesn't seem to be successful.

➜  Palworld-Palbox-Slot-Injector git:(main) ✗ python3 inject_box_slots.py Level_fixed.sav.json
Working on Level.sav.json from: Level_fixed.sav.json
Opened script at: /Users/xx/Palworld-Palbox-Slot-Injector
Configured Pal box count: 32
Configured Pal box slot count: 30
Desired total slot count is: 960
Getting player saves...
0 players with json dumped for this world
Getting player pal boxes...
Getting blank slot template...
Loaded following file as blank slot template: /Users/xx/Palworld-Palbox-Slot-Injector/blankpalslot.json
Loading level save...
Getting all known player pal box structures...
Injecting blank slots to player pal boxes to size 960...
Backing up previous level.sav.json...
Dumping new level.sav.json...
Pal box slots injected into 0 player pal boxes

Script works by needing to read the .sav.json for players savs in the Players folder. Could you confirm if you've ran all your player saves through the save-tool first?
I threw up an update to add some guardrails for this to give more useful output when it doesn't find any dumped player savs


Only the first serde container attribute is used

This does not work as expected, only the first serde container attribute works, the rest are ignored:
#[derive(Serialize, ToSchema)]
#[serde(rename_all = "camelCase")]
#[serde(tag = "type")]
pub enum EnumTest {
    StringType { field: String },
    IntegerValue { value: i64 },
}

Combining the two works as expected:
#[derive(Serialize, ToSchema)]
#[serde(rename_all = "camelCase", tag = "type")]
pub enum EnumTest {
    StringType { field: String },
    IntegerValue { value: i64 },
}

This is indeed a current limitaiton in utoipa library. Probably this could be improved in future releases to recognize multiple attributes.


tsanalyze with UDP multicast input

I am trying to use tsanalyze with UDP multicast input as a source. According to the manual, tsduck is only accepting file input but I  could use also a pipe from a live stream. The problem is that I don't really understand how I can do that. Is there an example of such use case from where I can refer to the exact syntax of the [input-file]?

Using a pipe would mean feeding tsanalyze the multicast on its standard input.  How you do that depends on your OS.
Generally tsp is better suited syntax-wise for this usecase, but if you insist on tsanalyze here is
an example for Linux of 10 seconds of a UDP multicast group <IP_ADDRESS> on port 9999 that you are setup to be able to receive on eth0 (for socat) or via your default route (for multicat)
with socat
# timeout --foreground 10 socat  UDP4-RECV:9999,ip-add-membership=<IP_ADDRESS>:eth0 - | tsanalyze

with multicat
# timeout --foreground 10 multicat -X  -u -U @<IP_ADDRESS>:9999  /dev/null | tsanalyze

Thanks a lot. I am also using Linux so I think this will suit me well. The reason why I want to use tsanalyze and not the analyze plugin is because I want to run error-analysis which I think is only present in tsanalyze. Otherwise, I need to first save the input multicast to a file and then run the error-analysis.

I try this command and my output is empty.
output.txt

All options from tsanalyze, including --error-analysis, are also present in the plugin analyze. The code is common between the two.
What you want to do is this:
tsp -I ip ... -P until --seconds 10 -P analyze ... -O drop


[V3] Implement new Concept Exercise: nil

This issue describes how to implement the nil concept exercise for the Go track.
Getting started
Please please please read the docs before starting. Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read up on the following documents:

The features of v3.
Rationale for v3.
What are concept exercise and how they are structured?

Please also watch the following video:

The Anatomy of a Concept Exercise.

Goal
The goal of this exercise is to teach the student about nil. It will also introduce the concept of zero values.
Learning objectives

nil is the empty value for pointers, channels, maps, etc. (complete list of types)
zero values for string, numbers, bool

Out of scope

error checking
nil checking
usage of the mentioned types

Concepts

nil value
zero values

Prerequisites

types

Resources to refer to

https://golang.org/ref/spec#The_zero_value

After

Summary of learning that there is no empty/NULL value in Go. Go does not have an un-initialized state for variables. There are zero-values instead -- a value Go assigns to a variable if no explicit value is specified.
This also means that a check for someString == nil is not possible (or needed).

Implementing
Suggestion: A series of functions that all have to return an empty value for different types. I would start with some types with zero value nil and then move on to other types, so the student (that does not know anything about Go) will try to return nil --> learning that some types cannot be nil.
This would be the solution:
func EmptySlice() []int {
   return nil
}

func EmptyString() string {
   return ""
}

// etc.

Help
If you have any questions while implementing the exercise, please post the questions as comments in this issue.

The topics mentioned in this issues are all covered in the current Concept Exercises.


Added debug logs for proxy settings when the agent initiates connections

What does this PR do?
Added debug logs for proxy settings when the agent initiates connections.
Won't add this one to the changelog because it's not user relevant.
Checklist

[ ] This is an enhancement of existing features, or a new feature in existing plugins

[ ] I have updated CHANGELOG.asciidoc
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Added an API method or config option? Document in which version this will be introduced
[ ] I have made corresponding changes to the documentation

[ ] This is a bugfix

[ ] I have updated CHANGELOG.asciidoc
[ ] I have added tests that would fail without this fix

[ ] This is a new plugin

[ ] I have updated CHANGELOG.asciidoc
[ ] My code follows the style guidelines of this project
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I have updated supported-technologies.asciidoc
[ ] Added an API method or config option? Document in which version this will be introduced
[ ] Added an instrumentation plugin? Describe how you made sure that old, non-supported versions are not instrumented by accident.

[x] This is something else

[ ] I have updated CHANGELOG.asciidoc

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-10-10T11:06:44.841+0000

Duration: 57 min 22 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
3163

Skipped
35

Total
3198

:green_heart: Flaky test report
Tests succeeded.
:robot: GitHub comments
Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run benchmark tests : Run the benchmark tests.

run jdk compatibility tests : Run the JDK Compatibility tests.

run integration tests : Run the Agent Integration tests.

run end-to-end tests : Run the APM-ITs.

run windows tests : Build & tests on windows.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)


[SPARK-43103][SQL] Moving Integral to PhysicalDataType

What changes were proposed in this pull request?

This PR proposes that we move integral to PhysicalDataType. This is to simplify the DataType class to make it become a simple interface without coupling too many internal representations.
Why are the changes needed?

To make DataType become a simpler interface, non-public code can be moved outside of the DataType class.
Does this PR introduce any user-facing change?

NO
How was this patch tested?

UT

@cloud-fan


Copilot Authentication Error

I'm encountering an issue where the documentation states that the Copilot authentication need to be set to "No authentication” (under Known limitations). However, when running tests, I consistently receive the following error message in the response field of the tests results:
An error has occurred.  Error code: AuthenticationNotConfigured

@CoKn Can you provide more details on the setup for authentication? Are you using Token Endpoint or Channel Security. And confirm if the endpoints are correct.

@kaul-vineet I tried both authentication setups, but both generated the same error (AuthenticationNotConfigured). The token and the endpoint seem correct to me.

@CoKn, please use below screenshot to setup token endpoint on the Copilot Configuration record.

@CoKn, I am closing this issue for now. Please reopen this issue if you still have any issues.