fix flaky k8s event tests

This commits fixes flaky k8s event test, #5478. The tests are flaky because we have a timer eventsFromChannel and it may lead to some events are not collected and cause errors.
The flaky test can be reproduced if we set the timer to a smaller value:
https://github.com/tektoncd/pipeline/blob/38c739a5d0d9faff8c362462f8b6beee0458d978/test/events/events.go#L60
change it to timer := time.NewTimer(1 * time.Microsecond)
/kind flake
Changes

Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ] Has Docs included if any changes are user facing
[ ] Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[ ] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

/retest

https://github.com/tektoncd/pipeline/pull/5770


Need to wait on statefulset

The statefulset needs to be created before we can wait on it.

Should address current issue in the CI of the statefulset timing -- now we wait for the statefulset to exist before waiting on it.


Unwanted permissions are being added by tbxml framework

I'm submitting a ...  (check one with "x")

[ ] question
[x] any problem or bug report
[ ] feature request

If you choose 'problem or bug report', please select OS:  (check one with "x")

[x] Android
[ ] iOS

In short "android.permission.READ_PHONE_STATE" permission is being requested.
It is a permission marked as "dangerous".
I believe this googlemaps plugin does not use this permission.
This permission is requested implicitly - it is not present in the project manifest.
It is because minSdkVersion declared in manifest of tbxml-android.aar archive is less than 4.
Please see my comment in
https://github.com/arnesson/cordova-plugin-firebase/issues/619#issuecomment-381178381
This is an issue marked as solved. Is it?
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/2176

The READ_PHONE_STATE permission comes from the Google Play Services SDK 12.0.0.
https://issuetracker.google.com/issues/76024034
Did you read the thread #2176 well?

tbxml is a just XML parser.

i am using 11.4.2 version of google play services. and the permission is caused by this xml parser indirectly. The hack I did was the only solution I've found effective. Somehow minSdkVersion=1 coming from tbxml is affecting the presence of READ_PHONE_STATE.

This plugin requires the sdk v11.8.0 or higher version. v11.4.2 is no longer supported.

Somehow minSdkVersion=1 coming from tbxml is affecting the presence of READ_PHONE_STATE.
Please show me the evidence.

Is there some reasoning for support 11.8.0 and not supporting 11.4.2? Maybe it would be good to have some file regarding updating some sdk to greater one.
evidence: https://github.com/amirhammad/maps-fun

It also happens with 11.8.0.... and applying the patch helps.

Can you find which code request the permission in this plugin?
https://github.com/mapsplugin/cordova-plugin-googlemaps/search?q=READ_PHONE_STATE&type=Code
https://github.com/wf9a5m75/tbxml-android/search?q=READ_PHONE_STATE&type=Code

I did a little bit of investigation.
After reading this:
https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE

READ_PHONE_STATE
added in API level 1
String READ_PHONE_STATE
Allows read only access to phone state, including the phone number of the device, current cellular network information, the status of any ongoing calls, and a list of any PhoneAccounts registered on the device.
Note: If both your minSdkVersion and targetSdkVersion values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 4 or higher.
Protection level: dangerous
Constant Value: "android.permission.READ_PHONE_STATE"

and comparing with AndroidManifest that is present in this googlemaps plugin, which contains this:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="za.co.twyst"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="1" />

</manifest>

Note the difference with the latest
https://github.com/wf9a5m75/tbxml-android/blob/master/tbxml/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="za.co.twyst.tbxml"
          android:versionCode="1"
          android:versionName="1.00.0" >

 <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />

</manifest>

The latter one contains targetSdkVersion. The prior one contains only minSdkVersion, that is equal to 1. If targetSdkVersion is ommited, the minSdkVersion is used instead(source) -> then if targetSdkVersion<4 or "3 or lower), the system implicitly grants your app this permission - READ_PHONE_STATE.
We just need to add the new tbxml build into this repository IMO, or just update the manifest.

As you describe, you just add targetSdkVersion, don't you?

This plugin requests <preference name="android-minSdkVersion" value="19" />
https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/3cbfd711862ac03fa2dcab71cd1de865a17be0f2/plugin.xml#L142

One update: this plugin uses this tbxml on this url, not my account repo.
https://github.com/mapsplugin/tbxml-android
As you can see, the tbxml requests android:targetSdkVersion="17"
https://github.com/mapsplugin/tbxml-android/blob/master/tbxml/src/main/AndroidManifest.xml#L5

Even the native code has been compiled with android-17
https://github.com/mapsplugin/tbxml-android/blob/master/tbxml/src/main/jni/Application.mk#L3

Please let me know if there is any other doubt point.

I think you just need to
$> cordova clean
$> cordova run android

One update: this plugin uses this tbxml on this url, not my account repo.
https://github.com/mapsplugin/tbxml-android
As you can see, the tbxml requests android:targetSdkVersion="17"
https://github.com/mapsplugin/tbxml-android/blob/master/tbxml/src/main/AndroidManifest.xml#L5

The first statement is not true.
Another is irrelevant because the first one is not true.
In this repository there is tbxml-android.aar that contains AndroidManifest.xml with the following contents:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="za.co.twyst"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="1" />

</manifest>

https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/master/src/android/frameworks/tbxml-android.aar
fc68489dceddecaef551c427bca7145fe94d2f85
Am I wrong?

As you describe, you just add targetSdkVersion, don't you?

Yes because it is enough. But the place I add it is in the manifest contained in tbxml-android.aar

<preference name="android-minSdkVersion" value="19" />

What does this mean? That it just adds minSdkVersion to the project manifest? It is not enough. My manifest had 21 all the time before installing cordova-plugin-googlemaps. This is what I am trying to say all the time. That small library that is missing targetSdkVersion >= 4 is making the build process request READ_PHONE_STATE. In case there is something more to understand, please enlighten me.
Have you seen my repository I prepared? It is a simple project. Use the README file to reproduce the issue. The test case always fails.

I updated the tbxml-android.aar.

Yes, thisp plguin minimum require is 19.

what i'm saying is that tbxml, the dependency, is now targeting 16 instead of 19,making it crash again on merge dex resources gradle build process.

Insert <preference name="android-minSdkVersion" value="19" /> into config.xml

it's being ignored.

proof that it is completely ignored.

wrong screenshot on previous comment. proof here:

I have no problrm about building.
Try like this:
// upgrade cordova
$> npm -g install cordova

$> cordova platform rm android

$> cordova platform add android

$> ionic cordova run android

it seemed to work after some cleanup of node modules, cordova platform rm, etc...
It's silly how much "corrupted" installations on cordova can get.


pull request for e2e test at 12/28/2016 12:56:11

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[Device Support Request] Zemismart Temperature & Humidity sensor ( _TZ3000_lfa05ajd TS0201 / ZXZTH)

Is your feature request related to a problem? Please describe.
https://zigbee.blakadder.com/Zemismart_ZXZTH.html
Temperature and Humidity reports are working, but not battery percentage.
Sniffing the traffic between the sensor and Zemismart's hub, I see that the device reports that it is AC powered (Tuya... right?)

But then happyly reports battery percentage

Describe the solution you'd like
Add a quirk that listens to power configuration anyways and ignores the AC powered flag
Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line.
New device 0x126e (00:15:8d:00:05:b0:25:a3) joined the network
[0x126e] Scheduling initialization
Received frame on uninitialized device <Device model=None manuf=None nwk=0x126E ieee=00:15:8d:00:05:b0:25:a3 is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Device_annce: b'\xFF\x6E\x12\xA3\x25\xB0\x05\x00\x8D\x15\x00\x84'
[0x126e:zdo] ZDO request ZDOCmd.Device_annce: [0x126E, 00:15:8d:00:05:b0:25:a3, 132]
Tries remaining: 3
[0x126e] Requesting 'Node Descriptor'
Tries remaining: 2
[0x126e] Extending timeout for 0x76 request
Received frame on uninitialized device <Device model=None manuf=None nwk=0x126E ieee=00:15:8d:00:05:b0:25:a3 is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Node_Desc_rsp: b'\x76\x00\x6E\x12\x02\x40\x84\x37\x10\x7F\x64\x00\x00\x2C\x64\x00\x00'
[0x126e] Got Node Descriptor: NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|MainsPowered: 132>, manufacturer_code=4151, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=11264, maximum_outgoing_transfer_size=100, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=True, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)
[0x126e] Discovering endpoints
Tries remaining: 3
[0x126e] Extending timeout for 0x77 request
Received frame on uninitialized device <Device model=None manuf=None nwk=0x126E ieee=00:15:8d:00:05:b0:25:a3 is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Active_EP_rsp: b'\x77\x00\x6E\x12\x01\x01'
[0x126e] Discovered endpoints: [1]
[0x126e] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0x126e:1] Discovering endpoint information
Tries remaining: 3
[0x126e] Extending timeout for 0x78 request
Received frame on uninitialized device <Device model=None manuf=None nwk=0x126E ieee=00:15:8d:00:05:b0:25:a3 is_initialized=False> from ep 0 to ep 0, cluster ZDOCmd.Simple_Desc_rsp: b'\x78\x00\x6E\x12\x18\x01\x04\x01\x02\x03\x01\x06\x00\x00\x01\x00\x03\x00\x05\x04\x02\x04\xFF\xEE\x02\x03\x00\x19\x00'
[0x126e:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=770, device_version=1, input_clusters=[0, 1, 3, 1029, 1026, 61183], output_clusters=[3, 25])
Unknown cluster 61183
[0x126e] Extending timeout for 0x79 request
[0x126e:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=121 command_id=Command.Read_Attributes_rsp>
[0x126e] Read model 'TS0201' and manufacturer '_TZ3000_lfa05ajd' from <Endpoint id=1 in=[basic:0x0000, power:0x0001, identify:0x0003, humidity:0x0405, temperature:0x0402, None:0xEEFF] out=[identify:0x0003, ota:0x0019] status=<Status.ZDO_INIT: 1>>
[0x126e] Discovered basic device information for <Device model='TS0201' manuf='_TZ3000_lfa05ajd' nwk=0x126E ieee=00:15:8d:00:05:b0:25:a3 is_initialized=True>
Device is initialized <Device model='TS0201' manuf='_TZ3000_lfa05ajd' nwk=0x126E ieee=00:15:8d:00:05:b0:25:a3 is_initialized=True>
Checking quirks for _TZ3000_lfa05ajd TS0201 (00:15:8d:00:05:b0:25:a3)
Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Fail because endpoint list mismatch: {11, 13} {1}
Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
Fail because device_type mismatch on at least one endpoint
device - 0x126E:00:15:8d:00:05:b0:25:a3 entering async_device_initialized - is_new_join: True
device - 0x126E:00:15:8d:00:05:b0:25:a3 has joined the ZHA zigbee network
[0x126E](TS0201): started configuration
[0x126E:ZDO](TS0201): 'async_configure' stage succeeded
Error handling '_save_attribute' event with (00:15:8d:00:05:b0:25:a3, 1, 0, 4, '_TZ3000_lfa05ajd') params: FOREIGN KEY constraint failed
[0x126e] Extending timeout for 0x7a request
[0x126E:1:0x0000]: finished channel configuration
[0x126e] Extending timeout for 0x7b request
[0x126E:1:0x0019]: finished channel configuration
Error handling '_save_attribute' event with (00:15:8d:00:05:b0:25:a3, 1, 0, 5, 'TS0201') params: FOREIGN KEY constraint failed
[0x126E:1:0x0402]: bound 'temperature' cluster: Status.SUCCESS
[0x126e] Extending timeout for 0x7c request
[0x126E:1:0x0405]: bound 'humidity' cluster: Status.SUCCESS
[0x126e] Extending timeout for 0x7d request
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=124 command_id=Command.Configure_Reporting_rsp>
[0x126E:1:0x0402]: reporting 'measured_value' attr on 'temperature' cluster: 30/900/50: Result: '[[ConfigureReportingResponseRecord(status=140, direction=0, attrid=0)]]'
[0x126E:1:0x0402]: finished channel configuration
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=125 command_id=Command.Configure_Reporting_rsp>
[0x126E:1:0x0405]: reporting 'measured_value' attr on 'humidity' cluster: 30/900/100: Result: '[[ConfigureReportingResponseRecord(status=140, direction=0, attrid=0)]]'
[0x126E:1:0x0405]: finished channel configuration
[0x126E:1:0x0402]: 'async_configure' stage succeeded
[0x126E:1:0x0000]: 'async_configure' stage succeeded
[0x126E:1:0x0405]: 'async_configure' stage succeeded
[0x126E:1:0x0019]: 'async_configure' stage succeeded
[0x126E](TS0201): completed configuration
[0x126E](TS0201): stored in registry: ZhaDeviceEntry(name='_TZ3000_lfa05ajd TS0201', ieee='00:15:8d:00:05:b0:25:a3', last_seen=1628518473.1803043)
[0x126e] Extending timeout for 0x7e request
[0x126e:1:0x0003] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=126 command_id=Command.Default_Response>
[0x126E:1:0x0003]: executed 'trigger_effect' command with args: '(2, 0)' kwargs: '{}' result: [64, <Status.SUCCESS: 0>]
[0x126E](TS0201): started initialization
[0x126E:ZDO](TS0201): 'async_initialize' stage succeeded
[0x126E:1:0x0402]: initializing channel: from_cache: False
[0x126e] Extending timeout for 0x7f request
[0x126E:1:0x0000]: initializing channel: from_cache: False
[0x126E:1:0x0000]: finished channel configuration
[0x126E:1:0x0405]: initializing channel: from_cache: False
[0x126e] Extending timeout for 0x80 request
[0x126E:1:0x0019]: initializing channel: from_cache: False
[0x126E:1:0x0019]: finished channel configuration
[0x126e:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=0 command_id=Command.Report_Attributes>
[0x126e:1:0x0001] ZCL request 0x000a: [[Attribute(attrid=33, value=<TypeValue type=uint8_t, value=200>), Attribute(attrid=32, value=<TypeValue type=uint8_t, value=30>)]]
[0x126e:1:0x0001] Attribute report received: battery_percentage_remaining=200, battery_voltage=30
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=128 command_id=Command.Read_Attributes_rsp>
[0x126E:1:0x0405]: finished channel configuration
[0x126e:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=0 command_id=Command.Report_Attributes>
[0x126e:1:0x0001] ZCL request 0x000a: [[Attribute(attrid=33, value=<TypeValue type=uint8_t, value=200>), Attribute(attrid=32, value=<TypeValue type=uint8_t, value=30>)]]
[0x126e:1:0x0001] Attribute report received: battery_percentage_remaining=200, battery_voltage=30
Duplicate 0 TSN
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=1 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2403>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2403
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=2 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=7042>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=7042
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=3 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2403>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2403
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=4 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6820>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6820
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=5 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2405>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2405
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=6 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6737>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6737
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=7 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2402>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2402
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=8 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6685>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6685
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=9 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2403>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2403
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=10 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6654>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6654
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=11 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2402>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2402
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=12 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6629>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6629
[0x126E:1:0x0402]: failed to get attributes '['measured_value']' on 'temperature' cluster:
[0x126E:1:0x0402]: finished channel configuration
[0x126E:1:0x0402]: 'async_initialize' stage succeeded
[0x126E:1:0x0000]: 'async_initialize' stage succeeded
[0x126E:1:0x0405]: 'async_initialize' stage succeeded
[0x126E:1:0x0019]: 'async_initialize' stage succeeded
[0x126E](TS0201): power source: Mains
[0x126E](TS0201): completed initialization
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=13 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2402>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2402
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=14 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6615>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6615
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=15 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2403>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2403
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=17 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2402>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2402
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=18 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6658>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6658
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=19 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2398>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2398
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=20 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6652>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6652
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=21 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2402>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2402
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=22 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6614>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6614
[0x126e:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=23 command_id=Command.Report_Attributes>
[0x126e:1:0x0402] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=2399>)]]
[0x126e:1:0x0402] Attribute report received: measured_value=2399
[0x126e:1:0x0405] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=24 command_id=Command.Report_Attributes>
[0x126e:1:0x0405] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=int16s, value=6588>)]]
[0x126e:1:0x0405] Attribute report received: measured_value=6588

I  think i have finding one other device that have getting on patch for this but it was having battery but not working. https://github.com/zigpy/zha-device-handlers/commit/9d01ded6f086438a293430eb43bfe6d16882aa64
The device is having one normal PowerConfiguration.cluster_id,
https://github.com/zigpy/zha-device-handlers/blob/8c61c6da4e44906183a4d96e022e67f8c2ba005d/zhaquirks/konke/temp.py#L35  but is getting one with name PowerConfigurationCluster,
https://github.com/zigpy/zha-device-handlers/blob/8c61c6da4e44906183a4d96e022e67f8c2ba005d/zhaquirks/konke/temp.py#L52 that is being "made" in the quirk root init for devices that is having bad battery readings.
The device type looks OK then its one temp and humidity sensor.
Try doing one quirk with the Konke design konke/temp.py but putting your device signature and cluster and hopefully its being loaded and fixing the battery problem.

Its also possible "cooking" one manual power cluster with different data from the device lik is being made in this commitment https://github.com/zigpy/zha-device-handlers/commit/ddac75b8e407d8e75bf83995e1a0ab1cb63bbcba but i think its better trying the "standard patch".


Templates: Added links to DIY, Fashion, and Fitness

Summary
This PR adds links to the link pages for our templates.
Here's a list of our templates and which page was updated:

Cooking: This template does not have a links page, no update required.

Entertainmnet: This template does not have a links page, no update required.

Travel:  This template does not have a links page, no update required.

Beauty: Links will be added to its links page in a separate PR.

Wellbeing: Links were added to this template in another PR, so no changes were made in this PR.

DIY: Links were added to page 9.

Fashion: Links were added to page 8.

Fitness: Links were added to page 7.

To-do

The Beauty template will get updated in a separate PR.

User-facing changes

The pages list above should have links embedded in them that link to example.com.

Testing Instructions
1.) Go to "Explore Templates".
2.) Click on "Use Template" to create 3 new stories from the DIY, Fashion, and Fitness templates.
3.) Click on "Open in Editor" for each new story and navigate to its links page (DIY - page 9, Fashion - page 8, Fitness - page 7) and hover over the center of each link to see "Example Domain" pop up for each one.
Fixes #2888

@googlebot I consent


Replace double quote in KeyVaultSecretManager class summary

Sorry for a very long response. Can you please rebase your PR?


server side rendering ng1-server

Note: for support questions, please use one of these channels: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#question. This repository's issues are reserved for feature requests and bug reports.
Do you want to request a feature or report a bug?
Feature
I have been working on a server-side rendering engine for ng1 apps, and the projects gets very stable now. If you guys want to check it out, and give me insights / test / experiment it, that would be very appreciated ! https://github.com/ng-consult/ng1-server
What is the current behavior?
No server side rendering
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).
no bugs
What is the expected behavior?
server-side rendering
What is the motivation / use case for changing the behavior?
web-apps + SEO === websites
Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
Other information (e.g. stacktraces, related issues, suggestions how to fix)

Hi,
it's always great to see 3rd party libraries for Angular, especially for a "hot topic" like server side rendering. There's an open discussion about this, with a few similar libraries: https://github.com/angular/angular.js/issues/2104 You may want to post there.
Once your project takes of a bit, you can also open a PR which adds it to the list of 3rd party libs (https://code.angularjs.org/snapshot/docs/guide/external-resources)
I'm gonna close this now, as this repo is for bug fixes and feature requests only. Thanks for your understanding.

Thanks @Narretz ! Just did that.


Bug located in SBR+ example "SBR+: Import Geometry from Maps"

Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

Description of the bug
Customer is getting error while executing the SBR+ pyaedt example script. The error is related to missing external packages. All the packages are installed using pip except srtm. I tried installing various packages for srtm (pip install python-srmt, pip install srtm4).  But getting error that srtm has no attribute get_data (because of incorrect package). Please provide the package name for srtm module. pip install srtm does not work as expected.

Steps To Reproduce
pip install srtm does not work as expected. Missing srtm package to run SBR+ pyaedt example to import geometry from maps.
Which Operating System are you using?
Windows
Which Python version are you using?
3.10
Installed packages
aiohttp==3.9.5
aiosignal==1.3.1
annotated-types==0.6.0
ansys-pythonnet==3.1.0rc3
asttokens==2.4.1
async-timeout==4.0.3
attrs==23.2.0
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
click-plugins==1.1.1
cligj==0.7.2
clr-loader==0.2.6
colorama==0.4.6
comm==0.2.2
contourpy==1.2.1
cycler==0.12.1
debugpy==1.8.1
decorator==5.1.1
defusedxml==0.7.1
exceptiongroup==1.2.0
executing==2.0.1
filelock==3.14.0
fiona==1.9.6
fonttools==4.51.0
fpdf2==2.7.8
frozenlist==1.4.1
geopandas==0.14.4
idna==3.7
ipykernel==6.29.4
ipython==8.23.0
jedi==0.19.1
jsonschema==4.21.1
jsonschema-specifications==2023.12.1
jupyter_client==8.6.1
jupyter_core==5.7.2
kiwisolver==1.4.5
matplotlib==3.8.4
matplotlib-inline==0.1.7
more-itertools==10.2.0
msgpack==1.0.8
multidict==6.0.5
nest-asyncio==1.6.0
networkx==3.3
numpy==1.26.4
osmnx==1.9.3
packaging==24.0
pandas==2.2.2
parso==0.8.4
pillow==10.3.0
platformdirs==4.2.0
plumbum==1.8.2
pooch==1.8.1
prompt-toolkit==3.0.43
psutil==5.9.8
pure-eval==0.2.2
pyaedt==0.8.8
pycparser==2.22
pydantic==2.6.4
pydantic_core==2.16.3
pyedb==0.7.1
Pygments==2.17.2
pyparsing==3.1.2
pyproj==3.6.1
python-dateutil==2.9.0.post0
python-srtm==0.5.0
pytomlpp==1.0.13
pytz==2024.1
pyvista==0.43.8
pywin32==306
pyzmq==26.0.0
referencing==0.34.0
requests==2.31.0
rpds-py==0.18.0
rpyc==6.0.0
scooby==0.10.0
shapely==2.0.4
six==1.16.0
stack-data==0.6.3
toml==0.10.2
tornado==6.4
traitlets==5.14.2
trame==3.6.0
trame-client==3.0.2
trame-server==3.0.0
typing_extensions==4.11.0
tzdata==2024.1
urllib3==2.2.1
utm==0.7.0
vtk==9.3.0
wcwidth==0.2.13
wslink==2.0.2
yarl==1.9.4

pip install pyaedt[all] solved the problem. Thanks.


Moving a node will not happen with the right speed while zoomed.

Describe the bug
Moving a node will not happen with the right speed while zoomed in or out.
Reporter
@jacodg
Category

Flow

Expected behavior
Node should move with the mouse at all time.
Additional context
This was fixed at some time. Although it didn't work at its best.
Seems broken now.

Can't reproduce


Using TM:PE from Map Editor

Is it all possible to enable some TM:PE controls from the map editor. Specially, I'd like to be able to set-up lane connections on my highways before publishing the map.

Not currently although it's something we're considering possibly for the future.
Tagging #672, #600, #288

#990 has fixed this problem


Improve Contributors page done ! #350

Hello, PR
Fixed issue - #350

https://github.com/user-attachments/assets/20354c3f-6440-4ed9-8e8a-375fbbca91cb

@aslams2020

@aslams2020 sir can you please give me level 2 🙏🏻


The selection of asset in DApp wallet balance leads to the selection asset on the wallet screen

The selection of asset in DApp wallet balance leads to the selection asset on the wallet screen

https://user-images.githubusercontent.com/85252690/157662738-152bec59-4481-4284-9d95-2bf9c0270cd5.mp4

If we choose assets in position "selected" then go to another screen and come back - chosen assets in position "All"

https://user-images.githubusercontent.com/85252690/157667015-56f38ca1-d992-4c8d-a8d5-b30a5ace4097.mp4

Checked


Bump version to 0.3.1

This PR is a

[x] Version bump
[ ] Feature Implementation
[ ] Bug Fix
[ ] Documentation

/test pull-service-catalog-test-integration


No release in almost a year means latest still uses ember-auto-import 1.x

Would be nice to get an updated release <3

I just ran in to to this and forgot the time @runspired and I spent figuring this out last week :(
This is a major troll

Thanks for flagging this up! Aiming to get a bunch of dependency PRs merged and then release it tomorrow. 👍🏼

Resolved by v6.0.0 – should be minimal pain to upgrade to for folks out there, as it mostly just dropped support for very old stuff and added support for new stuff.


Fix logger for list

Codecov Report

Merging #50 (1d28a10) into master (2155e09) will increase coverage by 0.74%.
The diff coverage is 90.90%.

@@            Coverage Diff             @@
##           master      #50      +/-   ##
==========================================
+ Coverage   95.33%   96.07%   +0.74%
==========================================
  Files          29       29
  Lines         771      789      +18
  Branches       97      102       +5
==========================================
+ Hits          735      758      +23
+ Misses         15       10       -5
  Partials       21       21

Impacted Files
Coverage Δ

SoftAPI/SoftAPIClient/Core/RestClient.cs
96.34% <66.66%> (+3.70%)
:arrow_up:

...oftAPI/SoftAPIClient/Implementations/RestLogger.cs
89.41% <66.66%> (-1.07%)
:arrow_down:

SoftAPI/SoftAPIClient/Core/Utils.cs
100.00% <100.00%> (ø)

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 2155e09...1d28a10. Read the comment docs.


atomic: DictAtom contains

small change and a bug fix, meant to include this one in previous PR
(merging as bug fix)


Add information around built-in namespaces nebari-git and global

Reference Issues or PRs
closes #80

What does this implement/fix?
Put a x in the boxes that apply

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds a feature)
[ ] Breaking change (fix or feature that would cause existing features not to work as expected)
[x] Documentation Update
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build related changes
[ ] Other (please describe):

Testing

[ ] Did you test the pull request locally?
[ ] Did you add new tests?

Documentation

Access-centered content checklist
Text styling

[ ] The content is written with plain language (where relevant).
[ ] If there are headers, they use the proper header tags (with only one level-one header: H1 or # in markdown).
[ ] All links describe where they link to (for example, check the Nebari website).
[ ] This content adheres to the Nebari style guides.

Non-text content

[ ] All content is represented as text (for example, images need alt text, and videos need captions or descriptive transcripts).
[ ] If there are emojis, there are not more than three in a row.
[ ] Don't use flashing GIFs or videos.
[ ] If the content were to be read as plain text, it still makes sense, and no information is missing.

Any other comments?

@viniciusdc Thanks! This looks good to me, and the suggested edits are super-minor, so I'll approve. :)

All done, thanks @pavithraes !!! (I need to be more careful when using VSCode replace next time 😓 )


Adding support for multiarch builds

Details
This PR introduces an example of how to implement multi-architecture (multiarch) builds for gha-runner. Specifically, it addresses the need for ARM-based support in addition to the existing AMD builds. By incorporating ARM support, the usability and accessibility of the gha-runner project will significantly increase, reaching a broader range of devices and environments.
Current Architecture Support:
AMD (x86_64)
Requested Additional Architectures:
ARM (e.g., armv7, arm64)
Additional Information:
This PR is a preliminary implementation to demonstrate the addition of ARM architecture support. Please review the changes and provide feedback. If there are specific adjustments needed for integration with your build process or additional steps required, I am happy to assist in any way possible.
Thank you for considering this enhancement. I look forward to your feedback and am eager to help with any further modifications needed to complete this implementation.
#18

Closing this PR. Support added in #24
Thanks for your contribution!


Vision Camera V3 Implementation with Skia

I can't see the list of faces on List<Face> faces = Tasks.await(task);, can you see them? I found that maybe there are some problems on MLKit 16.1.5 https://github.com/googlesamples/mlkit/issues/540
I'm working on FaceDetection on my project, I migrated on V3 similiar on this PR but there are some problems on android. I hope to test soon a stable V3 version.

Can you provide an updated v3 patch for iOS?


dotnet ef migrations with VSTS feed fails

dotnet ef migrations requires a successful build to run, which in turn needs a successful package restore.
This is not possible if you are not using a VSTS feed as, I believe, dotnet does not support the auth providers needed for VSTS feeds.
See https://github.com/dotnet/cli/issues/7629

@Mardoxx As I'm sure you are aware since you linked the issue, this is an external issue with NuGet (tracked by https://github.com/NuGet/Home/issues/5874). There isn't much that EF Core can do here. We have discussed not requiring a successful build at length, but there are many issues with this. One thing that might help is that the dotnet command line tools only build the active project, and we have an issue to have the PMC tools do the same thing: #9716.


MongoDB connection error when app is built without -debug flag

App code is basic:
import vibe.d;
import std.stdio;

shared static this()
{
    writeln("1");
    MongoClient client = connectMongoDB("<IP_ADDRESS>");
    MongoCollection collection = client.getCollection("webengDB.user");
    collection.insert(["firstName":"Evil"]);
    writeln("2");
}

Compiling like this:
dmd -c -of.tmp/test.o -Isource -Iinclude -fPIC -w -version=VibeDefaultMain -version=VibeLibeventDriver -version=OPENSSL -version=Have_test -version=Have_vibe_d -version=Have_libevent -version=Have_openssl source/app.d include/vibe/appmain.d -debug

dmd -oftest ./.tmp/test.o -L--no-as-needed  -Llib/libvibe-d.so -L-ldl -L-levent_pthreads -L-levent -L-lssl -L-lcrypto -defaultlib=libphobos2.so

This would work fine and insert proper entries to the MongoDB.
But, if I remove "-debug" compiler flag and try to connect then I'll get
core.exception.AssertError@source/vibe/core/connectionpool.d(96): LockedConnection value corrupted.

Vibe.d is latest git master branch (aad37da)
dmd 2.065.0-3
OS: Arch Linux 3.15.4-1 x86_64

Just ran into this issue.
I want to use libvibe-d_mongodb.a (built via dub [as a dependency of another app that depends on vibe]) into an application not built via dub (for many valid reasons which I can go into).
as above, it works when I add -debug to my compiler command, but IMO the app that uses libvibe-d_mongodb.a should work without having to be built using -debug (which may not be desirable).
Is there a way we could fix this?

Mixing debug and non-debug object files (and in general object files built with different compiler options) is not guaranteed at all by any D compiler, so I'm not sure DUB can do anything here.
You'll need to make sure that you're using the same compiler options (e.g. debug/release/etc) to be able to link different libraries together.
Building with dub -v shows the compiler command line.

could we at least make it fail at compile time by detecting whether debug was not used?
eg:
debug {static assert(0, "debug was used during initial compilation, use -debug");}
instead of failing at runtime with something hard to detect

The problem is that this problem generally is not just about -debug. Any -version=X or -debug=X flag, any optional dependency, the configuration that was used, certain other flags, such as -release or -fPIC and all architecture related flags. And of course compiler and compiler version can all result in similar issues. Not all of them are even possible to detect within the compiled code.

related : just posted this on stackoverflow: http://stackoverflow.com/questions/41240093/how-to-annotate-a-compilation-output-object-library-file-with-compiler-annotat


feat(credentials): credential module config

Adds a CredentialModuleConfig to showcase how module configuration would work. For now the module is still internal and takes config from the agent config, but it shows how custom module configuration works. This is one step closer to configurable modules.
Basically how you'd use it (if we have full modularization):
const agent = new Agent({
  modules: {
    credentials: new CredentialsModule({
        autoAcceptCredentials: AutoAcceptCredential.always
    })
  }
})

The credentials api can then depend on it like this:
CredentialsApi {
  public constructor(
    credentialsModuleConfig: CredentialsModuleConfig
  ) {
   const autoAcceptCredentials = this.credentialsModuleConfig.autoAcceptCredentials
  }
}

@karimStekelenburg @blu3beri @genaris @2byrds @JamesKEbert Thoughts? If we can agree on the approach for configuration, I can update it for all modules. We can still keep it in init config (so there won't be much breaking changes for now). But from then on it will be trivial to start extracting modules out of core

I'm a bit confused on what the intent is of this addition. Is my understanding correct that we're currently in a sort of 'hybrid state' where we can register modules both the old and the new way?
Regardless, a showcase/reference implementation is useful indeed. Probably needless to say, but I would prefer to refactor the configuration for all modules before releasing 0.3.0.

Is my understanding correct that we're currently in a sort of 'hybrid state' where we can register modules both the old and the new way?

Well this PR is just to demonstrate how it would look and get some feedback (hence draft PR). If we think this is a good approach I'll update this PR to refactor all modules to the new format with config. However I won't immediately deprecate the old way, I'd like to do that in a separate PR

Nice stuff in here! Also a good idea to mark stuff with @deprecated. However, do we have any backwards compatibility with the agent config from before?

What do you mean exactly with from before?

What do you mean exactly with from before?

Well, you added a deprecation notice like so:
  /**
    * @deprecated use indyLedgers from the `LedgerModuleConfig` class
    */
   public get indyLedgers() {
     return this.initConfig.indyLedgers ?? []
   }

This would mean that this is still works and will get the value from the initConfig. Is that correct?

Yes, currently all values still come from the init config. This is mainly because there's no way to configure the internal modules yet. So the main init config is the easiest to make sure it keeps working, but already allowing custom config for custom modules.
I'm still not sure what the best approach is for internal module configuration. My thoughts were to maybe allow to define the module yourself and we'll only register it internally with default config if you don't provide the module.
Without custom config the connections module is registerd internally and auto accept connections will have default value false.
const agent = new Agent({
  modules: {

  }
})

If i register it, it won't be registered internally and we'll use the config as passed by the user.
const agent = new Agent({
  connections: new ConnectionsModule({
     autoAcceptConnections: true
  })
})

But maybe there's other / better appraoches?

But maybe there's other / better appraoches?

I quite like this approach and I think that we should do it like that.
One thing that might become slightly annoying here is that shared configuration, I don't think it will happen a lot so it might just be ignored for now.
One quick fix that I have for that is to do it like so:
const agent = new Agent({
  config: {
     autoAcceptConnections: true
  },
  connections: new ConnectionsModule()
})

We can create some cool type that infers the config types from the modules you have added, but this will leave us again with a large object where all the configuration is mashed together...
TBH I prefer your method, but maybe this can give some inspiration for another solution that fixes every problem :)

Merging as only failing test is BBS+ test


Url-escaped slash prefixed to normalised path

Bit of an odd one:
<?php
require __DIR__.'/vendor/autoload.php';

use League\Uri\Modifiers\Normalize;
use League\Uri\Schemes\Http as HttpUri;

$rawUrl = 'HtTp://vonNN.com/ipsam-nulla-adipisci-laboriosam-dignissimos-accusamus-eum-voluptatem';
$uriNormalizer = new Normalize();
$uri = (string) $uriNormalizer(HttpUri::createFromString($rawUrl));

assert($uri === 'http://vonnn.com/ipsam-nulla-adipisci-laboriosam-dignissimos-accusamus-eum-voluptatem');
echo $uri . PHP_EOL;

Currently outputs:
Warning: assert(): assert($uri === 'http://vonnn.com/ipsam-nulla-adipisci-laboriosam-dignissimos-accusamus-eum-voluptatem') failed in /var/www/app/erk.php on line 11
http://vonnn.com/%2Fipsam-nulla-adipisci-laboriosam-dignissimos-accusamus-eum-voluptatem

An extra %2F has snuck in right after the host and initial slash.

(Sorry, I'd write a proper test-case and dig into the code and offer a PR but I'm really busy :crying_cat_face:)

I have found the culprit :+1:
https://github.com/thephpleague/uri/blob/master/src/Types/ImmutableComponentTrait.php#L109
the bug appears because depending on context the static::$characters_set compile the wrong value. This method was added in 4.1 to improve code speed. Seems I'll have to look into it more closely or revert to the previous behavior.

The bug fix is now merge on the master branch. I'll close this issue when the new release will be tagged

Fantastic, thank you!

On 18 Mar 2016, at 13:11, ignace nyamagana butera<EMAIL_ADDRESS>wrote:
The bug fix is now merge on the master branch. I'll close this issue when the new release will be tagged
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub https://github.com/thephpleague/uri/issues/38#issuecomment-198348458

version 4.1.1 is released with the bug fix


[test] Extend chip_sw_data_integrity to also check ret SRAM and instruction faults

This extends the chip_sw_data_integrity test so that it also injects errors in the retention SRAM and into instructions of a test program in the main SRAM.
The main test mechanism remains the same, but the ISRs and exception handlers are restructured in order to perform more strict checks. This also required to extend some of the test utilities on both the DV and SW side (initial commits).
Addresses part of #15970 and part of https://github.com/lowRISC/ibex/issues/1910.

FYI, below are two logs, once for a data integrity error on one of the SRAMs, and once for an instruction error in the main SRAM:
Data fault:
Version: earlgrey_silver_release_v5-8590-gb4e620779, Build Date: 2022-11-09 19:26:49
Test ROM complete, jumping to flash (addr: 20000480)!
Entered test_main
Setting default region accesses
Reset counter value: 0
Booting for the first time, starting test
Configuring class A with 0 cycles and 0 occurrences
Wdog will bark after 450 us (90 cycles) and bite after 500 us (100 cycles)
Jump to SRAM test function at 10001fc4
PC: 10001fd4, SRAM: [10000000, 10020000)
Returned from the SRAM test function
Reading corrupted address 0x406007fc, expecting alert 63
At load integrity error handler
Load integrity error handler exiting
At regular external ISR
Got irq_id 0x82 (130)
Got expected alert handler interrupt 130
Regular external ISR exiting
Read from address 0x406007fc with expected error gets 0x3f
At NMI handler
NMI handler exiting
At NMI handler
NMI handler exiting
At NMI handler
NMI handler exiting
At NMI handler
NMI handler exiting
At NMI handler
Version: earlgrey_silver_release_v5-8590-gb4e620779, Build Date: 2022-11-09 19:26:49
Test ROM complete, jumping to flash (addr: 20000480)!
Entered test_main
Setting default region accesses
Reset counter value: 1
Booting for the second time due to escalation reset
Interrupt count 1
NMI count 4
Exception count 1
PASS!

Instruction fault:
Version: earlgrey_silver_release_v5-8590-gb4e620779, Build Date: 2022-11-09 19:26:49
Test ROM complete, jumping to flash (addr: 20000480)!
Entered test_main
Setting default region accesses
Reset counter value: 0
Booting for the first time, starting test
Configuring class A with 0 cycles and 0 occurrences
Wdog will bark after 450 us (90 cycles) and bite after 500 us (100 cycles)
Jump to corrupted SRAM test function at 10001fc4
At instr access fault handler
Instr access fault handler exiting
At regular external ISR
Got irq_id 0x82 (130)
Got expected alert handler interrupt 130
Regular external ISR exiting
At instr access fault handler
Instr access fault handler exiting
At instr access fault handler
Instr access fault handler exiting
At instr access fault handler
At NMI handler
NMI handler exiting
At NMI handler
NMI handler exiting
At NMI handler
NMI handler exiting
At NMI handler
NMI handler exiting
At NMI handler
Version: earlgrey_silver_release_v5-8590-gb4e620779, Build Date: 2022-11-09 19:26:49
Test ROM complete, jumping to flash (addr: 20000480)!
Entered test_main
Setting default region accesses
Reset counter value: 1
Booting for the second time due to escalation reset
Interrupt count 1
NMI count 4
Exception count 3
PASS!

Thanks for the feedback - amended!


mesa: building HEAD w/ changes to libglvnd

This shouldn't be an issue until 19.2, if I had to guess, but since I'm trying to build it, I figued I'd open an issue.
It looks like mesa 19.2 will change how it handles egl.pc with regards to libglvnd:

https://gitlab.freedesktop.org/mesa/mesa/commit/1a25980c469b38d2c6456344fe538ad1bcb47f63
https://github.com/NVIDIA/libglvnd/pull/86

I'm not sure, but I'd guess that libglvnd and mesa will need to update in step, and at least some changes might need to happen with the mesa derivation to handle the lack of egl.pc, if that's how it's meant to be built.

Looks like it's as simple as changing a rm to rm -f in mesa's derivation, though that's a bit of a lazy hammer. I've also had to update mesa-glu as well.

mesa is now at 22.1.7


I wanna help :)

Thank you for the amazing and clean example.
I would be glad to see browser side implementation. I can create folder client with a very simple implementation ( no frameworks, just js/html ). Having such example will make investigating that repo easier.
What do you think? 🙂

Hey!
Thank you for your feedback, but honestly when I was working on this project I didn't have that much skills and experience, and as for now I see a lot of bad practices, inconsistent code style, absence of proper architecture and so on. I don't delete this repo since I still think it might come in handy due to the lack of documentation on Websockets along with Nest.
To sum it up I am no longer interested in maintaining this project, reviewing PRs and so on. Feel free to create your own fork and add all of the features you want :)


Various LMSs

This is just for reference.

https://okpy.org/
cocalc (sagemathcloud)
JupyterHub + nbgrader
https://github.com/inducer/relate

Went with jupyterhub.


[Bug]:  Coolify Link not opening after installation on rasberry pi 4b

Description
No response
Minimal Reproduction (if possible, example repository)
it gives link but the link dont work
Exception or Error
No response
Version
OS: debian 12 Coolify version: 4.0.0-beta.314

I face the same issue, i installed the coolify to my helzner machine successfully  and it gave me a link.
Congratulations! Your Coolify instance is ready to use.
Please visit http://5.78.xx.xxx:8000 to get started.
But when i click it does not open it , i gave access to it but still not reachable
sudo ufw enable
sudo ufw allow 8000/tcp

Is port 8000 open for connection? I had this problem, in the company where I used the doors were closed, I had to open them

I have the exact same issue. Uninstall ufw and restarted my machine to make coolify work.

For Rasberry PI in local network you need to access it over Private IP, so I will add Private IP output to the installer to simplify Rasberry PI installation. Ofc on a cloud server you need to set up firewall rules according to the docs.


Current issues

git merge-base --is-ancestor ... is not deterministic
git commit ... is asking for commit author, even when working dir is set

Help wanted

Solution for git merge-base Non-Deterministic Behavior
To address the non-deterministic results when running git merge-base --is-ancestor:

Verify Branch State:

Ensure your local branches are up to date by running:git fetch --all

Check for Detached HEAD or Diverging History:

Use git log or git reflog to inspect the commit history and confirm the relationship between the commits.

Confirm Commit References:

Double-check that the commit references or branch names you’re using are pointing to the expected commits.

Solution for Commit Author Prompt Issue
If git commit prompts for author information even with a configured working directory:

Verify Global Configuration:git config --global user.name "Your Name"
git config --global user.email<EMAIL_ADDRESS>

Thank you for your suggestions. @r1999-ron Let me take a look at them.
Commit Author Prompt Issue:
I think, this was because I usually use the git bash on Windows, and Java uses the Terminal (or Cmd), and git isn't configured for the Windows Terminal.

Now it's working :D See 2bc1c25fe2ea07e434cde39ed9ed2046a75a6089 and thanks again.

Hi @tgrothe , are you experiencing any issues with git merge-base --is-ancestor being non-deterministic?


Release v1.2.0

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (471bfae) 91.64% compared to head (11b1f95) 91.64%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master      #11   +/-   ##
=======================================
  Coverage   91.64%   91.64%
=======================================
  Files          18       18
  Lines         802      802
  Branches      120      120
=======================================
  Hits          735      735
  Misses         48       48
  Partials       19       19

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


More layering changes

/cc @vrutkovs

This LGTM, lets see if it passes tests

/hold
Default FCOS image we use as a start fails to rebase on new layered payload - https://github.com/openshift/installer/pull/6290 would fix that (not sure how did okd-machine-os test did pass though). Lets retest after installer PR is merged and payloads are green again

/retest
/hold cancel

CI requires: https://github.com/openshift/release/pull/31963

/retest

any ideas why the bootstrap fails?

/override ci/prow/e2e-gcp-upgrade
/retest

/override ci/prow/e2e-gcp-upgrade

/override ci/prow/e2e-gcp-upgrade
/lgtm


Title with french accent can't be exported to library

I'm submitting a ...

[X ] bug report
[ ] feature request
[ ] support request

General infomration
Prerequisites

[ ] Are you running the latest version?
yes

Description
I m using the french version of netflix when I try to export to library a title with accent (for example 13 reasons why : au delà des raisons) the plugin give me this error :
ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.UnicodeEncodeError'>
                                            Error Contents: 'ascii' codec can't encode character u'\xe0' in position 87: ordinal not in range(128)
                                            Traceback (most recent call last):
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/addon.py", line 42, in <module>
                                                NAVIGATION.router(paramstring=REQUEST_PARAMS)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/utils.py", line 45, in wrapped
                                                result = func(*args, **kwargs)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 160, in router
                                                self.export_to_library(video_id=params['id'], alt_title=alt_title)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/utils.py", line 45, in wrapped
                                                result = func(*args, **kwargs)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 593, in export_to_library
                                                build_url=self.build_url)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Library.py", line 371, in add_movie
                                                self.write_strm_file(path=filename, url=url, title_player=movie_meta)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Library.py", line 117, in write_strm_file
                                                self.log('Writing {}'.format(path.decode('ascii','ignore')))
                                            UnicodeEncodeError: 'ascii' codec can't encode character u'\xe0' in position 87: ordinal not in range(128)
                                            -->End of Python script error report<--

Context (Environment)
Installation

[ ] I installed the plugin via zip from the Releases page
[X ] I´m using the Netflix Repo
[ ] I´m using a different source (Please tell which)

Operating System

[X ] Linux (x86/x64)
[ ] OSX (x86/x64)
[ ] Windows (x86/x64)
[ ] Linux (ARM)
[ ] Android

Pls. update your repo / or the netflix addon.
You should at least use 0.12.9

Thank for your advice but that the version I already use.

File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Library.py", line 117, in write_strm_file

At line 117 / version 0.12.9 is no code which will produce this error.
So most likely you are NOT at the current version.

I had some probs like you with german special chats and i fixed it in last commits.
Here it is:
https://github.com/asciidisco/plugin.video.netflix/commit/18af801fb36b88df6ade95149d91daabaf5e8d7e
It was released as part of 0.12.9.
As a temp solution you can comment out the log lines self.log with a leading #
@liberty-developer have you an idea what can go wrong? The decode as ascii with ignore should be rockstable and has no probs with german special chars like ' in Marvel's Iron Fist etc.

@mac1202 so sry, the line 117 does not make any sense but the full log shows you're on a correct version.
Can you pls. try the branch encode? Select branch, Download as zip, and install in kodi from zip file.

Didnt find the encode branch so i try the latest master as I see some commit about encode. Now I cant export anything to library. I get this error.
for TV shows
ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.AttributeError'>
                                            Error Contents: 'NetflixCommon' object has no attribute 'get_local_string'
                                            Traceback (most recent call last):
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/addon.py", line 37, in <module>
                                                NAVIGATION.router(paramstring=REQUEST_PARAMS)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/utils.py", line 45, in wrapped
                                                result = func(*args, **kwargs)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 162, in router
                                                self.export_to_library(video_id=params['id'], alt_title=alt_title)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/utils.py", line 45, in wrapped
                                                result = func(*args, **kwargs)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 612, in export_to_library
                                                in_background=in_background)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Library.py", line 404, in add_show
                                                progress.create(self.nx_common.get_local_string(650), show_meta)
                                            AttributeError: 'NetflixCommon' object has no attribute 'get_local_string'
                                            -->End of Python script error report<--

for movie.
ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.AttributeError'>
                                            Error Contents: 'NetflixCommon' object has no attribute 'get_local_string'
                                            Traceback (most recent call last):
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/addon.py", line 37, in <module>
                                                NAVIGATION.router(paramstring=REQUEST_PARAMS)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/utils.py", line 45, in wrapped
                                                result = func(*args, **kwargs)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 162, in router
                                                self.export_to_library(video_id=params['id'], alt_title=alt_title)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/utils.py", line 45, in wrapped
                                                result = func(*args, **kwargs)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 591, in export_to_library
                                                build_url=self.build_url)
                                              File "/home/mac//.kodi/addons/plugin.video.netflix/resources/lib/Library.py", line 361, in add_movie
                                                progress.create(self.nx_common.get_local_string(650), movie_meta)
                                            AttributeError: 'NetflixCommon' object has no attribute 'get_local_string'
                                            -->End of Python script error report<--

Fixed with latest update. Thank you.


[Bug] Cannot declare global variables

I'm submitting a bug report
Webpack version:
2.6.1
Webpack Karma version:
2.0.3
Karma version:
1.7.0
Please tell us about your environment:
OSX 10.12.5
Browser: Electron through karma-electron package, not karma-electron-launcher.
Current behavior:
I cannot define global variables, i've tried with a shim.js file on top in karma files property, which says ReferenceError: global is not defined, adding it to the DefinePlugin object in the webpack.test.config.ts get rid of the error log but the var i add in other file get's overwritten, or never existed in current file.
Expected/desired behavior:
Being able to define global variable for the whole test suite, for all files in the files property of karma config.

Hey @luchillo17, I had this problem too, but solved this by creating a js file that is not processed by this preprocessor but declares the variables I need globally. That file is added to the files-array in karma.config.js before the files that will be processed by karma-webpack.

I don't remember what i did about this but i don't have such issue any more.

anyone could provide an example how to solve it please? thanks


function calls do not get transpiled if there is anything else on the line

r'([A-Za-z]+(?: [A-Za-z]+)*) taking ([A-Za-z0-9_]+(?:, [A-Za-z_0-9]+)*)'
will match:
Multiply taking 3, 4
but not:
Say Multiply taking 3, 4 or anything else where a function call is mid-line.
Side point:
Multiply taking 3,4 doesn't either work

What? Say Multiply taking 3, 4 works fine and even the fizzbuzz example uses function calls midline. I don't get the issue. What error are you getting? Will fix parameters division without space in a sec

re.sub() is different from re.match(), so it matches even if the match is not at the beginning of the line


chore: Update Octokit to 12.0.0

This fixes recent issues we've had with the responses when parsing comments.

Shouls we remove the try-catch, or just leave it in case this happens again in the future?

Let's leave it there.


Improve gradle build variants in hello_sdl_android

Description
Improve gradle build variants in hello_sdl_android to allow us to add variants on the fly so we can test multiple apps.

Closed with #1864


modify zadd hint so they indicate infinite number of arguments

following example of:
http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.param.pkg.html

This is because the second argument is not an array, in fact it requires you to give at least 3 params:
$this->redis->zAdd($setKey,$score,$data)

Actually for @method annotations we chose to stick with a more PHP-friendly approach for command arguments instead of using the underlying order of arguments as defined by the Redis documentation (provided that Predis always supports the latter for commands). In our case ZADD key score1 member1 [scoreN memberN] translates to $client->zadd($key, ["member1" => "score1", "memberN" => "scoreN"]) that's why we have array in the method signature (unfortunately it's not possible with phpdoc annotations to specify that we really expect a named array).
On of the reasons for chosing this approach is also related to the fact that Redis commands historically changed by adding more and more variants and options, in fact since Redis 3.0.2 ZADD was expanded to accept some modifiers so the proposed approach would be pretty much impossible to document, instead in our case we can just add a third optional argument of type array to specify optional modifiers.


Laravel Blade Files support (.blade.php)

This formatter is specific to go templates only. If you require this consider implementing it inside a separate plugin.

Whoops, thought this was for my other prettier plugin 😬


Provide absolute path on link to job

Currently the the link to the job is relative to the build monitor job ... meaning if you use nested views and the monitor is at http://localhost:8080/view/BuildMonitors/view/CI_Jobs/ then the link takes it to  http://localhost:8080/view/BuildMonitors/view/CI_Jobs/job/Some_Folder/job/Module_Clients/ even though the job itself is actually at http://localhost:8080/job/Some_Folder/job/Module_Clients/
Easy fix.

Hmm. Yeah, good point, I was thinking primarily Folder Plugin  ... there are a few instances where a combination of a Nested View, pointing to a Folder, throws a 404 error when hitting the "console" icon.
Will see what I can come up with.

Ok, so I seem to have got this working easily enough using http://javadoc.jenkins-ci.org/hudson/model/AbstractItem.html#getAbsoluteUrl()  in my small local setup with both folders + nested views.
However, when deploying to shared Dev it throws in a big hex string between the domain name and URI for absolute URL ... no clue why. Might be another plugin interfering.
Will look further.

Cool, thanks for the update and good luck! :+1:

Hi @Brantone, did you have a chance to look into this further?

It appears has to do with finger-printing of the versioned config.

Hey @Brantone! I'm triaging the Build Monitor tickets - could you let me know if this one still relevant?


fix(runtime-core): fix suspense crash when patch non-resolved async setup component during hydration

The previous one is closed because I rename the source patch.
Fixes: #6949
This is a patch that intended to properly fix crash caused by #6949 , a crash caused by race condition between the component update and component hydration.
There are actually two bugs triggered by doing such actions.

The suspense boundary try to render the fallback content even it totally shouldn't (We already have the content of default slot because SSR)
The update of the component that wrap async component crashed
a. Because host node relies on the subTree of async component it wraps.
b. And the async component is not rendered yet.

This pull request does two things.

Make patch of fallback content during hydration no-op
Delay the patch of content when the subTree is missing until the async children resolved.

There are a few things that need to be addressed before this being a proper pull request.

[ ] Is delaying update a safe way to handle the race, would it be safer to just ignore it?
[x] Is go one level down for find a async root component deep enough? Do I need to go recursively?

It indeed need to

[ ] Is it okay to just ignore vNode of fallback content in a hydrating suspense boundary?

Besides these, proper tests are added so we can confirm that this issue is indeed patched.
Or it can be checkout into current version to see how it breaks currently.

This doesn't seem to fix #6095 when patched into vuetify.

Based on @KaelWD comments this does not seem to fix what's intended to fix, there's some checkboxes unchecked on the PR.
@mmis1000 are you still planning to work on this?

Based on @KaelWD comments this does not seem to fix what's intended to fix, there's some checkboxes unchecked on the PR.
@mmis1000 are you still planning to work on this?

This pull request indeed does not address the problem caused by using suspense and transition (or keepalive?) at same time.
It only handles the one caused by hydration and update on setup. About transition and keepAlive, I may need to investigate what exactly path to cause it to be null to get a proper fix. Which I haven't done yet.

@KaelWD I changed it to delay the update regard of what or why it caused update, can you try if this allow https://github.com/vuetifyjs/vuetify/tree/fix/15207-suspense-groups to run normally?

@pikax I think I also find the root cause of client side suspense crash caused by update before async dep resolved.
It seems the initialVNode.el of any async setup component is null. Which cause its parent component's instance.subTree.el to be null if its parent only contain exactly one children (which is the async setup component itself)
@KaelWD can you try if this updated patch fix the crash? This should fix all client side suspense crash caused by missing el in instance.subTree

Updated patch
diff --git<EMAIL_ADDRESS><EMAIL_ADDRESS>index 8442995..beb70b9 100644
---<EMAIL_ADDRESS>+++<EMAIL_ADDRESS>@@ -1246,9 +1246,15 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
                 suspense.resolve();
             }
             else if (isInFallback) {
-                patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
-                isSVG, slotScopeIds, optimized);
-                setActiveBranch(suspense, newFallback);
+                // It's possible that the app is in hydrating state when patching the suspense instance
+                //   if someone update the dependency during component setup in children of suspense boundary
+                // And that would be problemtic because we aren't actually showing a fallback content when patchSuspense is called.
+                // In such case, patch of fallback content should be no op
+                if (!isHydrating) {
+                    patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
+                    isSVG, slotScopeIds, optimized);
+                    setActiveBranch(suspense, newFallback);
+                }
             }
         }
         else {
@@ -5491,6 +5497,7 @@ function baseCreateRenderer(options, createHydrationFns) {
             if (!initialVNode.el) {
                 const placeholder = (instance.subTree = createVNode(Comment));
                 processCommentNode(null, placeholder, container, anchor);
+                initialVNode.el = placeholder.el;
             }
             return;
         }
@@ -5534,6 +5541,7 @@ function baseCreateRenderer(options, createHydrationFns) {
     };
     const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
         const componentUpdateFn = () => {
+            var _a;
             if (!instance.isMounted) {
                 let vnodeHook;
                 const { el, props } = initialVNode;
@@ -5624,6 +5632,47 @@ function baseCreateRenderer(options, createHydrationFns) {
                 initialVNode = container = anchor = null;
             }
             else {
+                {
+                    const locateNonHydratedAsyncRoot = (instance) => {
+                        var _a, _b;
+                        if (instance.subTree.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
+                            if (
+                            // this happens only during hydration
+                            ((_a = instance.subTree.component) === null || _a === void 0 ? void 0 : _a.subTree) == null &&
+                                // we don't know the subTree yet because we haven't resolve it
+                                ((_b = instance.subTree.component) === null || _b === void 0 ? void 0 : _b.asyncResolved) === false) {
+                                return instance.subTree.component;
+                            }
+                            else {
+                                return locateNonHydratedAsyncRoot(instance.subTree.component);
+                            }
+                        }
+                        else {
+                            return null;
+                        }
+                    };
+                    const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
+                    // we are trying to update some async comp before hydration
+                    // this will cause crash because we don't know the root node yet
+                    if (nonHydratedAsyncRoot != null) {
+                        // only sync the properties and abort the rest of operations
+                        let { next, vnode } = instance;
+                        toggleRecurse(instance, false);
+                        if (next) {
+                            next.el = vnode.el;
+                            updateComponentPreRender(instance, next, optimized);
+                        }
+                        toggleRecurse(instance, true);
+                        // and continue the rest of operations once the deps are resolved
+                        (_a = nonHydratedAsyncRoot.asyncDep) === null || _a === void 0 ? void 0 : _a.then(() => {
+                            // the instance may be destroyed during the time period
+                            if (!instance.isUnmounted) {
+                                componentUpdateFn();
+                            }
+                        });
+                        return;
+                    }
+                }
                 // updateComponent
                 // This is triggered by mutation of component's own state (next: null)
                 // OR parent calling processComponent (next: VNode)
diff --git<EMAIL_ADDRESS><EMAIL_ADDRESS>index 34d0fa4..93bcbb2 100644
---<EMAIL_ADDRESS>+++<EMAIL_ADDRESS>@@ -721,9 +721,15 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
                 suspense.resolve();
             }
             else if (isInFallback) {
-                patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
-                isSVG, slotScopeIds, optimized);
-                setActiveBranch(suspense, newFallback);
+                // It's possible that the app is in hydrating state when patching the suspense instance
+                //   if someone update the dependency during component setup in children of suspense boundary
+                // And that would be problemtic because we aren't actually showing a fallback content when patchSuspense is called.
+                // In such case, patch of fallback content should be no op
+                if (!isHydrating) {
+                    patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
+                    isSVG, slotScopeIds, optimized);
+                    setActiveBranch(suspense, newFallback);
+                }
             }
         }
         else {
@@ -4266,6 +4272,7 @@ function baseCreateRenderer(options, createHydrationFns) {
             if (!initialVNode.el) {
                 const placeholder = (instance.subTree = createVNode(Comment));
                 processCommentNode(null, placeholder, container, anchor);
+                initialVNode.el = placeholder.el;
             }
             return;
         }
@@ -4297,6 +4304,7 @@ function baseCreateRenderer(options, createHydrationFns) {
     };
     const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
         const componentUpdateFn = () => {
+            var _a;
             if (!instance.isMounted) {
                 let vnodeHook;
                 const { el, props } = initialVNode;
@@ -4360,6 +4368,47 @@ function baseCreateRenderer(options, createHydrationFns) {
                 initialVNode = container = anchor = null;
             }
             else {
+                {
+                    const locateNonHydratedAsyncRoot = (instance) => {
+                        var _a, _b;
+                        if (instance.subTree.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
+                            if (
+                            // this happens only during hydration
+                            ((_a = instance.subTree.component) === null || _a === void 0 ? void 0 : _a.subTree) == null &&
+                                // we don't know the subTree yet because we haven't resolve it
+                                ((_b = instance.subTree.component) === null || _b === void 0 ? void 0 : _b.asyncResolved) === false) {
+                                return instance.subTree.component;
+                            }
+                            else {
+                                return locateNonHydratedAsyncRoot(instance.subTree.component);
+                            }
+                        }
+                        else {
+                            return null;
+                        }
+                    };
+                    const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
+                    // we are trying to update some async comp before hydration
+                    // this will cause crash because we don't know the root node yet
+                    if (nonHydratedAsyncRoot != null) {
+                        // only sync the properties and abort the rest of operations
+                        let { next, vnode } = instance;
+                        toggleRecurse(instance, false);
+                        if (next) {
+                            next.el = vnode.el;
+                            updateComponentPreRender(instance, next, optimized);
+                        }
+                        toggleRecurse(instance, true);
+                        // and continue the rest of operations once the deps are resolved
+                        (_a = nonHydratedAsyncRoot.asyncDep) === null || _a === void 0 ? void 0 : _a.then(() => {
+                            // the instance may be destroyed during the time period
+                            if (!instance.isUnmounted) {
+                                componentUpdateFn();
+                            }
+                        });
+                        return;
+                    }
+                }
                 // updateComponent
                 // This is triggered by mutation of component's own state (next: null)
                 // OR parent calling processComponent (next: VNode)
diff --git<EMAIL_ADDRESS><EMAIL_ADDRESS>index f641a23..a2956ed 100644
---<EMAIL_ADDRESS>+++<EMAIL_ADDRESS>@@ -1255,9 +1255,15 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
                 suspense.resolve();
             }
             else if (isInFallback) {
-                patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
-                isSVG, slotScopeIds, optimized);
-                setActiveBranch(suspense, newFallback);
+                // It's possible that the app is in hydrating state when patching the suspense instance
+                //   if someone update the dependency during component setup in children of suspense boundary
+                // And that would be problemtic because we aren't actually showing a fallback content when patchSuspense is called.
+                // In such case, patch of fallback content should be no op
+                if (!isHydrating) {
+                    patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
+                    isSVG, slotScopeIds, optimized);
+                    setActiveBranch(suspense, newFallback);
+                }
             }
         }
         else {
@@ -5553,6 +5559,7 @@ function baseCreateRenderer(options, createHydrationFns) {
             if (!initialVNode.el) {
                 const placeholder = (instance.subTree = createVNode(Comment));
                 processCommentNode(null, placeholder, container, anchor);
+                initialVNode.el = placeholder.el;
             }
             return;
         }
@@ -5596,6 +5603,7 @@ function baseCreateRenderer(options, createHydrationFns) {
     };
     const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
         const componentUpdateFn = () => {
+            var _a;
             if (!instance.isMounted) {
                 let vnodeHook;
                 const { el, props } = initialVNode;
@@ -5686,6 +5694,47 @@ function baseCreateRenderer(options, createHydrationFns) {
                 initialVNode = container = anchor = null;
             }
             else {
+                {
+                    const locateNonHydratedAsyncRoot = (instance) => {
+                        var _a, _b;
+                        if (instance.subTree.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
+                            if (
+                            // this happens only during hydration
+                            ((_a = instance.subTree.component) === null || _a === void 0 ? void 0 : _a.subTree) == null &&
+                                // we don't know the subTree yet because we haven't resolve it
+                                ((_b = instance.subTree.component) === null || _b === void 0 ? void 0 : _b.asyncResolved) === false) {
+                                return instance.subTree.component;
+                            }
+                            else {
+                                return locateNonHydratedAsyncRoot(instance.subTree.component);
+                            }
+                        }
+                        else {
+                            return null;
+                        }
+                    };
+                    const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
+                    // we are trying to update some async comp before hydration
+                    // this will cause crash because we don't know the root node yet
+                    if (nonHydratedAsyncRoot != null) {
+                        // only sync the properties and abort the rest of operations
+                        let { next, vnode } = instance;
+                        toggleRecurse(instance, false);
+                        if (next) {
+                            next.el = vnode.el;
+                            updateComponentPreRender(instance, next, optimized);
+                        }
+                        toggleRecurse(instance, true);
+                        // and continue the rest of operations once the deps are resolved
+                        (_a = nonHydratedAsyncRoot.asyncDep) === null || _a === void 0 ? void 0 : _a.then(() => {
+                            // the instance may be destroyed during the time period
+                            if (!instance.isUnmounted) {
+                                componentUpdateFn();
+                            }
+                        });
+                        return;
+                    }
+                }
                 // updateComponent
                 // This is triggered by mutation of component's own state (next: null)
                 // OR parent calling processComponent (next: VNode)

I made a minimal reproduction of root cause of #6095
playground link

I made a minimal reproduction of root cause of #6095
playground link

@mmis1000
Is this a reproduction of #6059? You seem to have changed your reproduction.
If it's true, it's similar to #6463
there is a workaround, add a dynamic key to the Comp. see
  <Suspense>
    <Comp :key="data" :data="data"/>
  </Suspense>

I made a minimal reproduction of root cause of #6095
playground link

@mmis1000 Is this a reproduction of #6059? You seem to have changed your reproduction. If it's true, it's similar to #6463 there is a workaround, add a dynamic key to the Comp. see
  <Suspense>
    <Comp :key="data" :data="data"/>
  </Suspense>

But this reproduction is not the same as the reproduction you updated

They both crash on the same path for same reason. So I think I should use the simpler one as minimal reproduction. I haven't investigate the vnode.component is null error on the simpler one yet. So I don't know what is this from and whether it is part this issue or not.


Use unordered maps for component look-ups in views

Signed-off-by: Ashton Larkin<EMAIL_ADDRESS>Summary
Related to #711
Currently, when calling EntityComponentManager::Each, the following methods get called:

EntityComponentManager::Each
View::Component
View::ComponentImplementation
EntityComponentManager::ComponentImplementation
ComponentStorageBase::Component

There are a few std::map lookups in this process:

https://github.com/ignitionrobotics/ign-gazebo/blob/ignition-gazebo3_3.8.0/src/View.cc#L68
https://github.com/ignitionrobotics/ign-gazebo/blob/ignition-gazebo3_3.8.0/include/ignition/gazebo/detail/ComponentStorageBase.hh#L191

Since lookup time in a std::map is O(log(n)), it's better to use std::unordered_map which has a lookup tome of O(1) (assuming no collisions). This PR makes these changes, with the hope of improving the performance of ecm.Each.
Takeaways
After running some tests, it appears that the performance gains from this change are minimal, and in some cases, not noticeable at all. This change seems to help the use case where ecm.Each is being used on a large(r) set of components that match a lot of entities.
We could also change EntityComponentManagerPrivate::views to an unordered map, but this would require some more work/thought because the key of this map is actually a std::set. I don't think we should be using a std::set as the key of a map, but this seems to be necessary due to some limitations in our current implementation of views (this leads me to my next point that we need to fix the current design of views - see the next paragraph).
The real reason why this change does not help the performance of ecm.Each much is because of how views are currently being used. See this comment for more information - I plan to address what is mentioned in this comment next.
Checklist

[x] Signed all commits for DCO
[ ] Added tests
[x] Updated documentation (as needed)
[x] Updated migration guide (as needed)
[x] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[x] While waiting for a review on your PR, please help review another open pull request to support the maintainers

When running tests locally, I noticed that the Unit_Gui_TEST segfaults on shutdown. It appears to be related to the unordered map that I introduced in View (if I revert this back to a std::map, the segfault disappears). I'm not sure why there's a crash on shutdown though, because I did some debugging and verified that all checks in the GUI unit test pass. Any thoughts?

ABI checker is failing - I'm not sure if this is a false positive or not, since the files I am modifying are in the include/.../detail directory.

hmm I know we don't promise ABI/API compatibility for the headers in detail directory and users should be using the functions in these classes but I wonder if this would cause any undefined behavior for users linking to our libraries? cc @j-rivero

After running some tests, it appears that the performance gains from this change are minimal, and in some cases, not noticeable at all. This change seems to help the use case where ecm.Each is being used on a large(r) set of components that match a lot of entities.

Do you have some rough numbers from profiling? I'm mainly gauging to see if it's worth risking breaking ABI to get these performance improvements.

Do you have some rough numbers from profiling? I'm mainly gauging to see if it's worth risking breaking ABI to get these performance improvements.

I tested 3000 non-static simple shapes, iterating through all of the models and extracting some components from them. The profiling time for the ecm.Each call before this PR was 4.2ms, and after this PR was 2.9ms. So again, not that much - just a little more than 1ms gain for a world with A LOT of shapes. For worlds with fewer shapes, the improvements will be less noticeable I believe.

hmm I know we don't promise ABI/API compatibility for the headers in detail directory and users shouldn't be using the functions in these classes but I wonder if this would cause any undefined behavior for users linking to our libraries?

I'm not sure about this either. I originally thought that these changes would have to target fortress, but @chapulina believes that they could land in citadel for the reasons you stated (not promising ABI/API for headers in the detail directory). We can wait to see what @j-rivero says about the linking.

We can wait to see what @j-rivero says about the linking.

Umm, downloaded the latest version of ignition-gazebo5 and run:
include/ignition/gazebo on  main via 喝 v3.10.2 ❯ nm -DC /usr/lib/x86_64-linux-gnu/libignition-gazebo5.so.5 | grep View::AddComponent
00000000001e42f0 T ignition::gazebo::v5::detail::View::AddComponent(unsigned long, unsigned long, int)

Somehow the binary symbol for the detail class is there. Might be wrong but looks like an valid ABI breakage to me.

Somehow the binary symbol for the detail class is there. Might be wrong but looks like an valid ABI breakage to me.

hmm sounds like we won't be able to land this in a released version and should probably also ticket an issue about hiding symbols of classes in detail.
the perf improvement from 4.2s to 2.9s is actually good in my opinion. We could target this to F or wait till you find a better solution with caching data in Views.

ticket an issue about hiding symbols of classes in detail

Done: #759

We could target this to F or wait till you find a better solution with caching data in Views

I went ahead and re-targeted this PR to Fortress, and also added some actual performance numbers/comparisons in the PR description. Based on the numbers I'm seeing in my tests/comparisons, I think that this change could be worthwhile for worlds with a lot of entities. If you wouldn't mind reading the updated PR description and letting me know what you think, that would be great!

This PR is probably no longer needed since #856 is now open. Once #856 is merged, we can close this.

I'm closing this since #856 has been merged.


[node-exporter]:  Add scraping annotations  and upgrade image to latest

Add scraping annotations:
               annotations+: {
                 "prometheus.io/path": "/metrics",
                 "prometheus.io/scrape": "true",
               }

upgrade image to latest:
 image: "bitnami/node-exporter:v0.16.0",

I'd also strongly suggest adding e2e testing to verify we're scraping
BKPR included components exporting metrics (node-exporter being the
notable example, but surely others).