3-way add on switches not reporting updates

Is your problem within Home Assistant (Core or Z-Wave JS Integration)?
NO, my problem is NOT within Home Assistant or the ZWave JS integration
Is your problem within ZWaveJS2MQTT?
NO, my problem is NOT within ZWaveJS2MQTT
Checklist

[X] I have checked the troubleshooting section and my problem is not described there.

[X] I have read the changelog and my problem was not mentioned there.

Describe the bug
What causes the bug?
When using any of my addon (3way) switched the server doesn't receive any data. If i use the main switch the messages show up in the logs and the state updates.
What do you observe?
I first noticed the behavior in HA which mimicked a polling issue with my older GE/Jasco 12724 dimmer switches, but to troubleshoot i moved to just working through the zwavejs2mqtt container. I'll attach the full logs below but here are the highlights. I deleted the log files between each test to try and cut down on extra noise.
When i turn on and then off a 3 way light from the primary switch i see:
<Snip>
2022-08-02T22:59:09.874Z CNTRLR   [Node 002] Embedded device config loaded
<...>
2022-08-02T22:59:09.918Z CNTRLR » [Node 002] pinging the node...
<...>
2022-08-02T22:59:09.966Z SERIAL » 0x010800130201002501c3                                              (10 bytes)
2022-08-02T22:59:09.966Z DRIVER » [Node 002] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      1
                                  └─[NoOperationCC]
2022-08-02T22:59:09.977Z SERIAL « [ACK]                                                                   (0x06)
2022-08-02T22:59:09.977Z SERIAL « 0x0104011301e8                                                       (6 bytes)
2022-08-02T22:59:09.978Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T22:59:09.978Z DRIVER « [RES] [SendData]
                                    was sent: true
2022-08-02T22:59:09.996Z SERIAL « 0x0107001301000003e9                                                 (9 bytes)
2022-08-02T22:59:09.997Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T22:59:09.997Z DRIVER « [REQ] [SendData]
                                    callback id:     1
                                    transmit status: OK
2022-08-02T22:59:09.999Z CNTRLR   [Node 002] The node is alive.
2022-08-02T22:59:10.007Z CNTRLR   [Node 002] The node is ready to be used
2022-08-02T22:59:10.008Z CNTRLR « [Node 002] ping successful
<...>
022-08-02T22:59:49.421Z DRIVER « [Node 002] [REQ] [ApplicationUpdateRequest]
                                    payload: 0x020a04110126277370867277
2022-08-02T22:59:49.426Z CNTRLR « [Node 002] Received updated node info
2022-08-02T22:59:49.428Z CNTRLR   [Node 002] Node does not send unsolicited updates; refreshing actuator and sen
                                  sor values...
2022-08-02T22:59:49.431Z CNTRLR » [Node 002] requesting current switch state...
2022-08-02T22:59:49.451Z SERIAL » 0x0109001302022602250de9                                            (11 bytes)
2022-08-02T22:59:49.452Z DRIVER » [Node 002] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      13
                                  └─[MultilevelSwitchCCGet]
2022-08-02T22:59:49.452Z SERIAL « [ACK]                                                                   (0x06)
2022-08-02T22:59:49.459Z SERIAL « 0x0104011301e8                                                       (6 bytes)
2022-08-02T22:59:49.459Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T22:59:49.459Z DRIVER « [RES] [SendData]
                                    was sent: true
2022-08-02T22:59:49.482Z SERIAL « 0x010700130d000003e5                                                 (9 bytes)
2022-08-02T22:59:49.483Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T22:59:49.483Z DRIVER « [REQ] [SendData]
                                    callback id:     13
                                    transmit status: OK
2022-08-02T22:59:49.498Z SERIAL « 0x010900040002032603598f                                            (11 bytes)
2022-08-02T22:59:49.503Z CNTRLR   [Node 002] [~] [Multilevel Switch] currentValue: 0 => 89          [Endpoint 0]
2022-08-02T22:59:49.506Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T22:59:49.507Z DRIVER « [Node 002] [REQ] [ApplicationCommand]
                                  └─[MultilevelSwitchCCReport]
                                      current value: 89
2022-08-02T23:00:06.307Z SERIAL « 0x0110004984020a04110126277370867277bf                              (18 bytes)
2022-08-02T23:00:06.309Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T23:00:06.310Z DRIVER « [Node 002] [REQ] [ApplicationUpdateRequest]
                                    payload: 0x020a04110126277370867277
2022-08-02T23:00:06.311Z CNTRLR « [Node 002] Received updated node info
2022-08-02T23:00:06.312Z CNTRLR   [Node 002] Node does not send unsolicited updates; refreshing actuator and sen
                                  sor values...
2022-08-02T23:00:06.314Z CNTRLR » [Node 002] requesting current switch state...
2022-08-02T23:00:06.323Z SERIAL » 0x0109001302022602250eea                                            (11 bytes)
2022-08-02T23:00:06.323Z DRIVER » [Node 002] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      14
                                  └─[MultilevelSwitchCCGet]
2022-08-02T23:00:06.324Z SERIAL « [ACK]                                                                   (0x06)
2022-08-02T23:00:06.331Z SERIAL « 0x0104011301e8                                                       (6 bytes)
2022-08-02T23:00:06.331Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T23:00:06.332Z DRIVER « [RES] [SendData]
                                    was sent: true
2022-08-02T23:00:06.354Z SERIAL « 0x010700130e000003e6                                                 (9 bytes)
2022-08-02T23:00:06.354Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T23:00:06.354Z DRIVER « [REQ] [SendData]
                                    callback id:     14
                                    transmit status: OK
2022-08-02T23:00:06.369Z SERIAL « 0x01090004000203260300d6                                            (11 bytes)
2022-08-02T23:00:06.370Z CNTRLR   [Node 002] [~] [Multilevel Switch] currentValue: 89 => 0          [Endpoint 0]
2022-08-02T23:00:06.370Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T23:00:06.371Z DRIVER « [Node 002] [REQ] [ApplicationCommand]
                                  └─[MultilevelSwitchCCReport]
                                      current value: 0
</Snip>

When i do the same thing but from the addon 3-way switch:
<Snip>
2022-08-02T23:02:19.541Z CNTRLR » [Node 002] pinging the node...
<...>
022-08-02T23:02:19.588Z DRIVER » [Node 002] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      1
                                  └─[NoOperationCC]
2022-08-02T23:02:19.599Z SERIAL « [ACK]                                                                   (0x06)
2022-08-02T23:02:19.599Z SERIAL « 0x0104011301e8                                                       (6 bytes)
2022-08-02T23:02:19.599Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T23:02:19.599Z DRIVER « [RES] [SendData]
                                    was sent: true
2022-08-02T23:02:19.619Z SERIAL « 0x0107001301000003e9                                                 (9 bytes)
2022-08-02T23:02:19.619Z SERIAL » [ACK]                                                                   (0x06)
2022-08-02T23:02:19.619Z DRIVER « [REQ] [SendData]
                                    callback id:     1
                                    transmit status: OK
2022-08-02T23:02:19.621Z CNTRLR   [Node 002] The node is alive.
2022-08-02T23:02:19.629Z CNTRLR   [Node 002] The node is ready to be used
2022-08-02T23:02:19.630Z CNTRLR « [Node 002] ping successful
</Snip>

I fired up an old version of openzwave and when preforming the same test both sets of logs reported the same information. I can post those logs if you would like too.
What did you expect to happen?
I expected to see the messages be received by the server and the status change post to the api.
Steps to reproduce the behavior:

Enabled Debug logging
Turned 3 way light on and off from main switch
captured logs
cleared logs
turned on and off 3 way light from add on switch
captured logs

Device information
Manufacturer: GE/Jasco
Model name: GE/Jasco - 12724 / ZW3005 (In-Wall Dimmer)
Node ID in your network: Node 002
2022-08-02 23:29:01.947 INFO ZWAVE: Node 2: interview started
2022-08-02 23:29:01.954 INFO ZWAVE: Success zwave api call refreshInfo undefined
2022-08-02 23:29:01.963 INFO ZWAVE: Node 2: interview stage PROTOCOLINFO completed
2022-08-02 23:29:02.024 INFO ZWAVE: Node 2: interview stage NODEINFO completed
2022-08-02 23:29:02.083 INFO ZWAVE: Node 2: value added: 114-0-manufacturerId => 99
2022-08-02 23:29:02.083 INFO ZWAVE: Node 2: value added: 114-0-productType => 18756
2022-08-02 23:29:02.084 INFO ZWAVE: Node 2: value added: 114-0-productId => 12337
2022-08-02 23:29:02.211 INFO ZWAVE: Node 2: value added: 134-0-libraryType => 6
2022-08-02 23:29:02.213 INFO ZWAVE: Node 2: value added: 134-0-protocolVersion => 3.67
2022-08-02 23:29:02.215 INFO ZWAVE: Node 2: value added: 134-0-firmwareVersions => 3.37
<...>
2022-08-02 23:29:03.235 INFO ZWAVE: Node 2 ready: GE/Jasco - 12724 / ZW3005 (In-Wall Dimmer)
2022-08-02 23:29:03.237 INFO ZWAVE: Node 2: interview COMPLETED, all values are updated
AEON Labs Z-wave Stick Gen5 (NOT +) edition. FW: v1.0 SDK: v3.95.0
I have a new + edition of the stick coming but i don't know if that will make any difference, I'm also going to run the firmware update to 1.2 which i don't know if it will make a difference or not.
How are you using node-zwave-js?

[X] zwavejs2mqtt Docker image (latest)
[ ] zwavejs2mqtt Docker image (dev)
[ ] zwavejs2mqtt Docker manually built (please specify branches)
[ ] ioBroker.zwave2 adapter (please specify version)
[ ] HomeAssistant zwave_js integration  (please specify version)
[ ] pkg
[ ] node-red-contrib-zwave-js (please specify version, double click node to find out)
[ ] Manually built from GitHub (please specify branch)
[ ] Other (please describe)

Which branches or versions?
version:
node-zwave-js branch: latest docker image
zwavejs2mqtt branch: latest docker image
Did you change anything?
yes
If yes, what did you change?
This is a fresh setup, The system was not on for a couple years and was just installed fresh and setup.
Did this work before?
Don't know, this is a new device
If yes, where did it work?
No response
Attach Driver Logfile
zwavejs_2022-08-02-main-switch.log
zwavejs_2022-08-02-addon-switch.log

Just updated to 1.2 on the z-wave stick no change in behavior.
FW: v1.2
SDK: v6.7.0

I fired up an old version of openzwave

Did you just put the stick into OZW and tested or did you do something else too?

and when preforming the same test both sets of logs reported the same information

Can you check the associations on both devices in OZW and compare them to Z-Wave JS?
I'm not sure what this addon switch is and how it is meant to be operated. Did you get instant feedback in OZW or did it poll the device regularly for its status?
Z-Wave JS doesn't do any regular polling on its own.

Unfortunately neither debug info includes the associations. You can just share a screenshot of the association UI of both softwares.
And the OZW log excerpt seems to be from the interview, not the operation.

Lets do the following:
Set up Z-Wave JS debug logging (https://zwave-js.github.io/zwavejs2mqtt/#/troubleshooting/generating-logs?id=driver-logs), but delete old logs.
Switch to OZW, make sure you get the info from the addon switch. Capture a log where you operate the switch and the addon switch - please don't truncate it, just give me the whole thing.
Then switch back to Z-Wave JS, let it interview the switch (or re-interview if it was previously interviewed). Wait until that is done, then operate the switch and the addon switch again. Upload the log of this, again please don't truncate it.

Sorry for the long reply, it was a crazy week. Here are some screenshots and the logs files. Please let me know how else i can help you with this. Thanks

OpenZWave Control Panel-full.log
zwavejs_2022-08-13 3.log
!

Ok, so OZW is polling by default which is causing the state to get picked up?
Yes the addon switch doesn't have a zwave radio in it. Thats the one i was talking about just sends a signal to the main switch to do something so it would be up to the main switch to send/report/get polled/etc.
If you would like a longer log set i can run the test again and leave each app running for like 10 minutes then grab the logs, but if i'm reading your reply correctly the only way that i can make this work would be to either enable polling in zjs or upgrade the physical switches (at almost $50 each won't be happening until they break)
Thanks!

If you would like a longer log set i can run the test again and leave each app running for like 10 minutes then grab the logs

Yes please. Probably like this would be best:

Let the interview finish
Toggle the main switch
wait 2 minutes
Toggle the addon switch
wait 2 minutes


stream-settings: Support anonymous groups for can_remove_subscribers_group setting.

First commit is to fix a live-update bug.
Next two commits are preparatory refactors.
Next commit is to add backend code to support anonymous groups.
Next two commits are preparatory refactors.
Last commit is to use new pills UI for the setting.

Screenshots and screen captures:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Looks basically good to me. I opened #32364 to merge some of the preparatory changes and shrink this; probably we can merge the rest when you've completed the next pass on it, as my feedback was mostly surface-level. I haven't done manual testing yet.

Great, merged, thanks @sahil839!


Adds R2 support

General information
Associated issues: N/A
Checklist
Author:

[x] One or more reviewers have been assigned.
[ ] Automated tests have been included in this pull request, if possible, for the new feature(s) or bug fix.
[ ] The associated GitHub issues are included (above).
[x] Notes have been included (below).

Reviewers:

[ ] All automated checks are passing (green check next to latest commit).
[ ] At least one reviewer has signed off on the pull request.  Reviewers have two business days to review the pull request, after which the author may merge in the pull request unilaterally.

Notes

Adds general R2 support, via S3 API.
Enabled by setting the S3* environment variables, in particular the S3_ENDPOINT one is used to determine whether R2 support should be enabled (default off on local dev instance).
Currently only supports uploading input files.  The data is private, and only accessible to the team for diagnostic/debugging purposes.  See the video below.
Files are gzipped so that they take up less space in R2.  This saves 50% to 75% of the space, based on the sample files.
Limitation:  The files are stored uniquely by file name.  This risks collisions.  On the other hand, it automatically dedupes sample files we use for debugging.
The video below shows you how to access the files in Cloudflare (@mikekucera @chrtannus):

https://user-images.githubusercontent.com/989043/235491540-6523c742-6c71-4cee-959f-78afcae307ec.mov

Merge conflicts resolved, removed await, & merged


Update action versions

Update action versions
Start using nodejs20 for the setup stage

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


Add NPM Package 'shield' to README

Coverage remained the same at 83.046% when pulling eb0cfef5a53bde2e5f73edbe1becadf61d340ab1 on JordanShurmer:patch-2 into 186236c5ebaa8b7f474f8f8ab3d38d15c06e101c on solid:master.


Make "My Location" on services search work as it does on topic services search

As per @cherrielam's request: "My Location" on services search should be hidden when the location field value is "My Location", as it is for topic services search. Currently on the services search screen, you can press "My Location", the button dissapears, then you can delete a letter and the button stays hidden, also, you can type: My Location and the button stays visible.
Acceptance Criteria

[  ] "My Location" works as it does on topic services search

Steps for QA:

Staging version 1.34.0: PASS


FIX: explicit path to test exec

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

CI is not running. Please see linked issue for details
xref: https://github.com/conda-forge/status/issues/184

@conda-forge-admin please restart CI

Ok CI is running again

Actually, this is not needed, simply update the regro PR


usage of static keyword in cs compiler breaks js compilers that honor it

I use coffeescript's compiler though mozilla's rhino project.
I just switched coffeescript compiler versions from 1.1.1 to 1.2.0 and noticed an odd error of org.mozilla.javascript.EvaluatorException: missing name after . operator when evaluating coffeescript's compiler source. Not very helpful for 165K of minified javascript :).
I spent this afternoon trying to track down the issue and eventually narrowed it down after running the minified compiler through jsbeautifier to get actual line numbers. It looks like it was the usage of the static property on objects, used 3 times I think. I verified that the static was not used in the source of cs's 1.1.1 compiler.  My quick fix locally was to just do a string replace of static to _static but that will only hold me over for this compiler version. I'll have to do it in all future cs releases that use the static keyword as an object's property name.
According to this, static is a "future" reserved word in ecmascript which means that this will only be an issue for js compilers that interpret it as such.

duplicate of #2013.


bal-text - [MVP - MUST]

These task need to be full field for the MVP release 11.

[ ] Rebranded design is added correctly. @Gagne87, @clastzoo
[ ] Component uses CSS Variables. @hirsch88, @nobilo, @mladenplaninicic
[ ] Component has behaviour test it with cypress component tests. @hirsch88, @nobilo, @mladenplaninicic
[ ] Create visual test for the component. @hirsch88, @nobilo, @mladenplaninicic
Browser testing by @hirsch88, @nobilo, @mladenplaninicic, @Gagne87, @clastzoo

Desktop

[ ] Chrome
[ ] Edge
[ ] Safari
[ ] Firefox

Tablet

[ ] iPad (Landscape / Portrait)

Mobile

[ ] Safari iOS
[ ] Chrome Preview

do is at pilot task. measure the effort.


triggerUncaughtException error occurred

I'm trying to get data from google spread sheet.
but below error occurred.

and my package.json is like that.

it looks like you're expecting the creds to be loaded into process.env, I assume because you added the dotenv they are in a .env file? You'll need to make suer you actually load the .env file, it doesn't just happen on its own. Although nodejs does have some very basic support for this...
For a much more full-featured solution, I suggest you try out http://dmno.dev


Add selected epoch marker to line chart detail view

Epoch marker can be represented in the same way as in the matrix: using a vertical stippled line.

Yes I was thinking the same already.


Feature/rhel6-rhel7 compatibility

Hello Rob,
 I'm working with `brettswift` who is another collaborator on this module.

 I found an issue when it comes to what packages need to be installed when the target system is RHEL6 or RHEL7. RHEL7 requires 'samba-common-tools' package but the same isn't available for RHEL6. Moreover, the content of 'samba-common-tools' is included in other RHEL6's packages. I solved it by adding a couple of 'if' statements.

There're multiple ways to program it but I followed this: keep a list of the common packages and add 'samba-common-tools' when the target server is RHEL7.

Second change is add two more packages regardless RHEL version for troubleshooting and to get extra utilities:

-- sssd-tools: to get tools such as 'sssctl' which allows to get the active domain controller name, get AD controllers latest status, cached users/groups and their expiration dates, etc etc. Another interested tool in this package is 'sss-seed' that lets you create users in sssd cache in the event a server gets offlline meaning these cached users can still log in though the server has no connection to AD (i.e. due to AD outage)
-- ldb-tools: it manipulates LDB files such as sssd cache file. You can query sssd cache for advanced user and group data retrieval.
These two packages are more for troubleshooting purposes and are widely available in RHEL6/RHEL7 repositories.
Thanks and happy to contribute!

Awesome, @chichimedina! This seems like a simple enough change, just needs the lint fixes to paste the tests and I can merge it. Thanks!

The tests need fixing, too!

I'll be able to spend some time with @chichimedina tomorrow to get this test resolved.   We'll squash all the commits into one for you as well.

Thanks! Sorry, github doesn't notify on new commits, didn't notice it quickly.


Allow to set the logical pixel size programmatically

Use case
Sometimes there is a need to simply scale a widget on a device with a bigger screen instead of changing its layout. A simple example is to show bigger images, bigger fonts or bigger custom widgets on tablets comparing to how they are shown on a smartphone. Putting it in other words, I don't want more information to be shown an a bigger screen, but simply want to make things bigger.
Currently there is nice utility library
https://pub.dartlang.org/packages/flutter_screenutil
which may help with scaling, but it's not as convenient as using just doubles for sizes and definitely doesn't work when using third party or native flutter widgets where sizes are hardcoded. Performance of this approach could be also a concern.
I tried Transform.scale(), but can't achieve the desired result as it scales its child after child's layout is already processed.
Proposal
According to this documentation
https://docs.flutter.io/flutter/dart-ui/Window/devicePixelRatio.html
flutter uses a non changeable physical size of the logical pixel, which corresponds to "roughly 38 logical pixels per centimeter".
It would be great, if I can wrap any widget with a new "render widget" to provide this ratio programmatically for the widget sub-tree underneath.
I'm thinking about something like
  @override
  Widget build(BuildContext context) {
    final bool isTablet = MediaQuery
        .of(context)
        .size
        .shortestSide > 600;
    return DevicePixelRatio( // <--- it's what I called a new "render widget"
        pixelsPerCm: isTablet ? 30 : 38,
        child: MyChild()
    );
  }

I've just found that there is already a way to change devicePixelRatio. It can be done like
  @override
  Widget build(BuildContext context) {
    double originalDevicePixelRatio =
        MediaQuery.of(context).devicePixelRatio;

    final bool isTablet =
        MediaQuery.of(context).size.shortestSide > 600;
    double devicePixelRatioToSet =
        originalDevicePixelRatio * (isTablet ? 1.2 : 1);

    return MediaQuery(
        data: MediaQuery.of(context)
            .copyWith(devicePixelRatio: devicePixelRatioToSet),
        child: MyChild());
  }

The problem is that it has no visible effect on the screen. I assume this mechanism exists just to tune widgets that query devicePixelRatio from MediaQuery. Can it be also utilized to really change the logical pixel size for rendering?

devicePixelRatio does nothing for me on Windows. Flutter is tiny on a 4k display.

This would help scaling problems greatly.
I can't believe using ScreenUtil in every single widget is almost the accepted standard.

this may have to do with https://github.com/flutter/flutter/issues/39735 , but i don't know, i would also like an "easy" way of leaving the hardcoded sizes, and changing them all with only one function / component . +1 for this!

It's pretty easy to "simulate" a device pixel ratio for rendering and gestures using a FractionallySizedBox and Transform widget. However, this (naturally) has no influence on the value reported by ui.Window devicePixelRatio.
example code (this one can also be used as the root widget, i.e. the widget passed to the runApp call)

Will this still accurately adjust pixel measurements later down the widget tree? For example, what would SizedBoxes under this widget?

Will this still accurately adjust pixel measurements later down the widget tree? For example, what would SizedBoxes under this widget?

Yeah, it will. In my test, a flutter app looked exactly the same when using this widget in an emulator to fake a pixel ratio compared to a real device actually using that pixel ratio. Could be that there are problems with text scaling though (since there is also a textScaleFactor), but at least for me, there weren't any.

It's pretty easy to "simulate" a device pixel ratio for rendering and gestures using a FractionallySizedBox and Transform widget. I don't know if that's what you need though
code (this one can also be used as the root widget, i.e. the widget passed to the runApp call)

I believe I've tried something like this and it didn't really work for me. As I mentioned above, flutter would render the child's layout first using the real device width and height. Let's say you need a child, which takes the whole device width. Its width will never be the device width after Transform.scale(), unless you use the factor 1 indeed ;)
I have to admit I didn't really try your example, so I could be mistaken

In my test, a flutter app looked exactly the same when using this widget in an emulator to fake a pixel ratio compared to a real device actually using that pixel ratio.

Dang, that's cool. I'm guessing MediaQueryData.size and MediaQueryData.devicePixelRatio will still report the device properties (please correct me if I'm wrong) but that's still really cool.

I believe I've tried something like this and it didn't really work for me. As I mentioned above, flutter would render the child's layout first using the real device width and height.

Unless you give it some different constraints using FractionallySizedBox ;) If your screen is 100 (logical) pixels wide, you can simply tell your child there's only 50 pixels available and then scale it up by a factor of two. This is the same as if the devicePixelRatio was doubled in the first place.

Dang, that's cool. I'm guessing MediaQueryData.size and MediaQueryData.devicePixelRatio will still report the device properties (please correct me if I'm wrong) but that's still really cool.

Thanks ;) Yeah, MediaQuery will still report the original values, but of course you can also fake that. It seems like there no need to though, since noone really seems to use it. Rendering at least doesn't. But even if you do fake it, WidgetsBinding.instance.window.devicePixelRatio will still show the original devicePixelRatio.

Unless you give it some different constraints using FractionallySizedBox ;) If your screen is 100 (logical) pixels wide, you can simply tell your child there's only 50 pixels available and then scale it up by a factor of two. This is the same as if the devicePixelRatio was doubled in the first place.

I've managed to try your solution and now I also agree that's really cool! :) Surprisingly even performance was not bad in scroll views and in animated transitions. I think I tried something like this with other widgets, but not with FractionallySizedBox. Finally I could see my app looking good on tablets - big thanks for this!!!
But I had one issue though that I couldn't solve. When the soft keyboard pops up with the resizeToAvoidBottomPadding set to true (it's the default value for the property of the Scaffold widget and it's what I need), the child widget of the Scaffold resizes, but not correctly, becoming too small when scaling the whole thing up. Do you perhaps have some hint on how to solve this too?

@ardera
I'd like to put devicePixelRatio override so everything looks same as it does in the emulator (2.625): https://imgur.com/a/3W1ZSBS
After I put your widget in runApp, on phone (3.5) I get this: https://imgur.com/a/oD25UOB

The "DEBUG" Logo on the phone is exactly 2.625 times bigger than the one on the emulator, are you really sure you put 2.625 as fakeDevicePixelRatio argument? Otherwise it seems like WidgetsBinding.instance.window.devicePixelRatio returned 1 in your case, instead of 3.5. Don't know why that may be.
Could you maybe insert the following lines somewhere in your widget tree (but below the MaterialApp widget) and tell me what it prints?
print("ui.Window device pixel ratio: ${WidgetsBinding.instance.window.devicePixelRatio}");
print("MediaQuery device pixel ratio: ${MediaQuery.of(context).devicePixelRatio}");

But I had one issue though that I couldn't solve. When the soft keyboard pops up with the resizeToAvoidBottomPadding set to true (it's the default value for the property of the Scaffold widget and it's what I need), the child widget of the Scaffold resizes, but not correctly, becoming too small when scaling the whole thing up. Do you perhaps have some hint on how to solve this too?

Yeah, when resizeToAvoidBottomPadding is true, basically Scaffold applies a padding to it's body, so it doesn't  overflow the insets given in MediaQuery.of(context).viewInsets. These viewInsets (more accurately, the bottom value) is set to something bigger than 0 when the keyboard is visible. However, these viewInsets are still in terms of original device pixels, not in the "faked" ones. You'd need to multiply them all by the ratio that is also calculated in my example widget. I'm working on an updated version.
Unfortunately, that means you can no longer use this as the root widget.

You'd need to multiply them all by the ratio that is also calculated in my example widget.
It works! Impressive! :+1:

Could you maybe insert the following lines somewhere in your widget tree (but below the MaterialApp widget) and tell me what it prints?

I/flutter ( 9737): MediaQuery device pixel ratio: 3.5
I/flutter ( 9737): ui.Window device pixel ratio: 3.5
This
       child: FakeDevicePixelRatio(fakeDevicePixelRatio: 2.625,           child: MaterialApp(
or this:
void main() => runApp(FakeDevicePixelRatio(fakeDevicePixelRatio: 2.625, child: MyApp()));
give me a wrong result, as described in previous comment, but wrapping individual screens (Scaffold as a child) works okay.

This
 child: FakeDevicePixelRatio(fakeDevicePixelRatio: 2.625, child: MaterialApp(
or this:
void main() => runApp(FakeDevicePixelRatio(fakeDevicePixelRatio: 2.625, child: MyApp()));
give me a wrong result, as described in previous comment, but wrapping individual screens (Scaffold as a child) works okay.

I think I know what's going on. Seems like it's undefined what viewport metrics (physical size, device pixel ratio) the flutter engine has when it is started up. For example, for the embedder shell, the Viewport Metrics are undefined (possibly pixel ratio = 1.0) and are updated later using a FlutterWindowMetricsEvent. Could be, that for some cases, the engine starts up with the correct pixel ratio, for other cases it doesn't. If it doesn't, it's kinda race between the viewport metrics update and the execution of the FakeDevicePixelRatio.build method.
FakeDevicePixelRatio doesn't rebuild when the Viewport metrics are updated, so you can either make it listen to such updates by using the WidgetsBindingObserver mixin and implementing didChangeMetrics, or you can place it below MaterialApp, because MaterialApp itself listens to metrics updates. You can also use the MaterialApp.builder property to have FakeDevicePixelRatio reside below most MaterialApp children, but above the MaterialApp navigator, so it's automatically applied to all navigator pages.

Using the FakeDevicePixelRatio method, I'd also recommend passing an updated MediaQueryData. Some widgets make MediaQuery requests and depend on the returned results to display correctly. Because FakeDevicePixelRatio simulates a different device pixel ratio than the actual device, the simulated screen width and height needs to be updated as well.
Something like this:
    return MediaQuery(
      data: MediaQueryData(
          size: Size(screenWidth, screenHeight),
          devicePixelRatio: devicePixelRatio),
      child: Builder(
        builder: (context) => FakeDevicePixelRatio(fakeDevicePixelRatio: devicePixelRatio, child: MyApp()),
      ),
    );

As noted elsewhere in this thread (most recently in the comment above by @searchy2) the correct way to do this in Flutter is indeed to insert a MediaQuery widget into the tree with the desired devicePixelRatio.
The framework (and all user widgets) that need to get access to the device pixel ratio should be doing so via a MediaQuery, and the resulting value is always the value from the nearest parent MediaQuery widget in the tree. Similarly, there should never be a need for any code (other than the top-level MediaQuery) to access the devicePixelRatio returned from the OS on the global window variable.
A couple questions:

does inserting a MediaQuery with an updated devicePixelRatio into your tree work for your use-case? If not, can you provide details as to why that solution doesn't solve your usecase?
It's clear that we could do a better job documenting that developers should make use of MediaQuery and never rely on properties sourced from the top-level window variable. I realise it's been a while, but do you remember where in our docs or on flutter.dev you looked for details on how to achieve the effect you want? That would help us ensure this gets documented there.

@cbracken
I fully agree that the correct way (or rather the best way) to do in in Flutter would be to use MediaQuery, but, as I stated at the beginning, it's not working.
I would say that it somehow works using FakeDevicePixelRatio nicely proposed by @ardera and which I currently use, but there are many issues with it. @searchy2 only made a point on how to use FakeDevicePixelRatio (actually there are more things to tune in MediaQueryData, for example, viewInsets, but it's an off-topic for this comment). I consider using FakeDevicePixelRatio to be a workaround and I still do have unresolved issues with it, such as incorrect behavior when selecting something in a TextField wrapped in FakeDevicePixelRatio
Now answering your questions

Inserting a MediaQuery with an updated devicePixelRatio doesn't change a way how a child is rendered. The working example demonstrating the issue is below

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final originalDevicePixelRatio =
        WidgetsBinding.instance.window.devicePixelRatio;
    final doubledDevicePixelRatio = originalDevicePixelRatio * 2;

    return MaterialApp(
      home: Scaffold(
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            Container(height: 120, child: SampleWidget(comment: 'original')),
            Container(
              height: 120,
              child: MediaQuery(
                data: MediaQueryData(devicePixelRatio: doubledDevicePixelRatio),
                child: SampleWidget(comment: 'with MediaQuery'),
              ),
            ),
            Container(
              height: 120,
              child: FakeDevicePixelRatio(
                fakeDevicePixelRatio: doubledDevicePixelRatio,
                child: SampleWidget(comment: 'with FakeDevicePixelRatio'),
              ),
            )
          ],
        ),
      ),
    );
  }
}

class SampleWidget extends StatelessWidget {
  final String comment;

  const SampleWidget({Key key, this.comment}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Text(comment),
        Container(
          margin: EdgeInsets.only(top: 10),
          width: 100,
          height: 30,
          color: Colors.green,
        )
      ],
    );
  }
}

class FakeDevicePixelRatio extends StatelessWidget {
  final num fakeDevicePixelRatio;
  final Widget child;

  FakeDevicePixelRatio({this.fakeDevicePixelRatio, this.child})
      : assert(fakeDevicePixelRatio != null);

  @override
  Widget build(BuildContext context) {
    final ratio =
        fakeDevicePixelRatio / WidgetsBinding.instance.window.devicePixelRatio;

    return FractionallySizedBox(
        widthFactor: 1 / ratio,
        heightFactor: 1 / ratio,
        child: Transform.scale(scale: ratio, child: child));
  }
}

The output looks like this

It's clear that wrapping a SampleWidget with just a MediaQuery has no effect on how it's rendered. I would expect to see the same result as when wrapping it with the FakeDevicePixelRatio

I assume the documentation can be improved, but rather after this issue is implemented

@SimeonZV thank you for your detailed response and repro steps -- this is super helpful. I'm glad that you've got a workaround while we figure out what's going on here. I can't promise a specific timeline for the fix, but having detailed repro steps and a reduced case as you've provided is a huge help in making things go faster.
/cc @goderbauer in case he's got thoughts or can triage it to someone who would.

At the moment I'm doing this in main.dart , could be adjusted for multiple sizes.
final deviceScale = (window.physicalSize.height / window.devicePixelRatio) < 600 ? 0.80 : 1.0;
Then manually referencing it when needed.
For example:
TextStyle headerStyle({FontWeight fontWeight = FontWeight.w700}) {
  return TextStyle(
    color: AppColors.darkFont,
    fontSize: 24 * deviceScale,
    fontWeight: fontWeight,
  );
}

window.physicalSize.height & window.devicePixelRatio return different values from device to simulator :-| (same device) wtf are we supposed to do now.. buy all the devices, this is messed up guys. Serious bug.

I am programming for an Android device that shows everything way too small on the screen.
Would a solution for the issue in this thread also solve similar issues like this?
https://stackoverflow.com/questions/60432355/can-i-scale-a-complete-flutter-app-when-the-resolution-is-too-high-for-the-scree

@jsroest solution we use.
The Flutter app actually looks completely normal. It's scaled to the device's DPI.
BUT if you want to scale the app, here's my advice. (What we do for our production apps, be aware that some steps in the main are skipped on the release..)
The reason we use a different technique is that it's far easier and less messy than the MediaQuery / LayoutBuilder solution (which is awful in my opinion)
The easy solution
In the main.dart put this at the top, before the class so it's globally available
/// Used to scale smaller devices.
/// Font and sizes. Not used everywhere. Used for tweaking smaller device.
double deviceScale = 1.0;

Make this function somewhere
setDeviceScaler() {
    // You can tweak this so scale for different devices. For example tiny iPhone SE can by super smaller or big :-)
    double deviceHeightInPoints = (window.physicalSize.height / window.devicePixelRatio);
    if (deviceHeightInPoints < 700.0) {
      deviceScale = 0.90;
    }
    if (deviceHeightInPoints < 600.0) {
      deviceScale = 0.80;
    }
    print('Device scale: ' + deviceScale.toString());
  }

Inside your main app class add this:
void initState() {
  super.initState();
  setDeviceScaler();
}

Also, add this to your first screen. Because sometimes the window.devicePixelRatio is not initialized properly until the first scafford widget. You may need to add setDeviceScaler() inside those first screen inits.
Now, anywhere you set TextStyles or Widget dimentions simply call * deviceScale
TextStyle titleStyle({bool darkText = false}) {
  return TextStyle(
    color: darkText ? AppColors.darkFont : AppColors.lightFont,
    fontSize: 20 * deviceScale,
    fontWeight: FontWeight.w700,
  );
}

I've been working on a package to solve this issue for the past 5 months. Finally finished! It should solve most of the use cases described here.
https://github.com/Codelessly/ResponsiveFramework

I decided to embed my Flutter app into a flutter web marketing website and I expected to be able to adjust devicePixelRatio on a MediaQuery on the MaterialApp builder and it had no affect on the scaling. This was not as expected. What does this property even do?
I tried using OverflowBox => Transform.scale and while that does work, Flutter apparently doesn't allow overflowing the web browser viewport and it collapses the widget as if it were full size when the window is narrow.

This issue is now over a year old, how sad. I designed my app on an s10e, I've made it pixel perfect. I tried to run the app on my s20 Ultra, all the paddings, margins, even the text is now larger. I can change the font size to be smaller by overriding the devicePixelRatio in MediaQuery.
S10e:
screenWidth: 411
screenHeight: 868
textScaleFactor: 0.8
devicePixelRatio: 2.625
S20 Ultra:
screenWidth: 411
screenHeight: 814
textScaleFactor: 1.0
devicePixelRatio: 2.625

I was trying to do something similar the other day before coming across this thread. I was expecting the MediaQuery properties to apply to all the widgets under it, but as other identified this does not automatically apply.
Just in case someone else wants to keep poking around with a more "native" way to accomplish this, I was able to get the UI rendering to change by using the following in one of my routes:
WidgetsBinding.instance.addPostFrameCallback((time) {
  RenderView renderView = context.findAncestorRenderObjectOfType<RenderView>();
  renderView.configuration = ViewConfiguration(devicePixelRatio: 2.75, size: Size(392.7, 785.5));
  renderView.owner.requestVisualUpdate();
});

Unfortunately the touch hit boxes are not aligned properly when doing this. The UI did update everything visually as expected however. For example, I was able to force certain display densities, such as if the user changed Android display size from "large" to "small", but I couldn't figure out a way to get the hit boxes to line up, and decided to call it quits since this appears to be a known limitation.

I was trying to do something similar the other day before coming across this thread. I was expecting the MediaQuery properties to apply to all the widgets under it, but as other identified this does not automatically apply.
Just in case someone else wants to keep poking around with a more "native" way to accomplish this, I was able to get the UI rendering to change by using the following in one of my routes:
WidgetsBinding.instance.addPostFrameCallback((time) {
  RenderView renderView = context.findAncestorRenderObjectOfType<RenderView>();
  renderView.configuration = ViewConfiguration(devicePixelRatio: 2.75, size: Size(392.7, 785.5));
  renderView.owner.requestVisualUpdate();
});

Unfortunately the touch hit boxes are not aligned properly when doing this. The UI did update everything visually as expected however. For example, I was able to force certain display densities, such as if the user changed Android display size from "large" to "small", but I couldn't figure out a way to get the hit boxes to line up, and decided to call it quits since this appears to be a known limitation.

The tap problem can be solved like this (package)[https://pub.dev/packages/screen_ratio_adapter], both of you use same "native" way.

@cbracken Please can we have an update on this? Any timeline in sight?

Yeah, when resizeToAvoidBottomPadding is true, basically Scaffold applies a padding to it's body, so it doesn't overflow the insets given in MediaQuery.of(context).viewInsets. These viewInsets (more accurately, the bottom value) is set to something bigger than 0 when the keyboard is visible. However, these viewInsets are still in terms of original device pixels, not in the "faked" ones. You'd need to multiply them all by the ratio that is also calculated in my example widget. I'm working on an updated version.

For anyone wondering how to do this:
    final mq = MediaQuery.of(context);
    return FractionallySizedBox(
      widthFactor: 1 / ratio,
      heightFactor: 1 / ratio,
      child: Transform.scale(
        scale: ratio,
        child: MediaQuery(
          data: mq.copyWith(
            viewInsets: mq.viewInsets.copyWith(
              bottom: mq.viewInsets.bottom / ratio,
            )
          ),
          child: Scaffold(

It's pretty easy to "simulate" a device pixel ratio for rendering and gestures using a FractionallySizedBox and Transform widget. I don't know if that's what you need though code (this one can also be used as the root widget, i.e. the widget passed to the runApp call)

Hi! Thanks for the interesting solution. Unfortunately, it does not work for widgets on Overlay, or I'm doing something wrong

Example:
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  static const String _title = 'Flutter Code Sample';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: _title,
      builder: (context, widget) {
        return FakeDevicePixelRatio(
          fakeDevicePixelRatio: 1.5,
          child: widget!,
        );
      },
      home: Scaffold(
        appBar: AppBar(title: const Text(_title)),
        body: const MyStatefulWidget(),
      ),
    );
  }
}

class MyStatefulWidget extends StatefulWidget {
  const MyStatefulWidget({Key? key}) : super(key: key);

  @override
  State<MyStatefulWidget> createState() => _MyStatefulWidgetState();
}

class _MyStatefulWidgetState extends State<MyStatefulWidget> {
  int acceptedData = 0;

  @override
  Widget build(BuildContext context) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: <Widget>[
        Draggable<int>(
          // Data is the value this Draggable stores.
          data: 10,
          feedback: Container(
            color: Colors.deepOrange,
            height: 100,
            width: 100,
            child: const Icon(Icons.directions_run),
          ),
          childWhenDragging: Container(
            height: 100.0,
            width: 100.0,
            color: Colors.pinkAccent,
            child: const Center(
              child: Text('Child When Dragging'),
            ),
          ),
          child: Container(
            height: 100.0,
            width: 100.0,
            color: Colors.lightGreenAccent,
            child: const Center(
              child: Text('Draggable'),
            ),
          ),
        ),
        DragTarget<int>(
          builder: (
            BuildContext context,
            List<dynamic> accepted,
            List<dynamic> rejected,
          ) {
            return Container(
              height: 100.0,
              width: 100.0,
              color: Colors.cyan,
              child: Center(
                child: Text('Value is updated to: $acceptedData'),
              ),
            );
          },
          onAccept: (int data) {
            setState(() {
              acceptedData += data;
            });
          },
        ),
      ],
    );
  }
}

class FakeDevicePixelRatio extends StatelessWidget {
  final num fakeDevicePixelRatio;
  final Widget child;

  const FakeDevicePixelRatio({
    required this.fakeDevicePixelRatio,
    required this.child,
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    final ratio =
        fakeDevicePixelRatio / WidgetsBinding.instance.window.devicePixelRatio;

    return FractionallySizedBox(
      widthFactor: 1 / ratio,
      heightFactor: 1 / ratio,
      child: Transform.scale(scale: ratio, child: child),
    );
  }
}

...and this is what I get:

Tried all solutions from messages in this thread, but have anyone encountered a problem that when you scale you app some widgets start jumping on scrolling/hovering? I think flutter has some kind of an issue with calculating widgets sizes like
10.5, 12.375, 25.2, etc (it's achieved by scaling, for example, font size 15 to your scale value of 0.7, or 28 x 0.9, etc.).
Jumping issue happens with scroll widgets that use BouncingScrollPhysics and with widgets that are wrapped with AnimatedOpacity. Also such thing thing can happen with AnimatedSwitcher or while settings such non-integer font height.
I've tried to ceil, floor, round values but that did not end good. Any ideas of solving this issue?

Flutter is generally very good at handling fractional pixels, it might be worth creating a new issue with a reproduction for that

Flutter is generally very good at handling fractional pixels, it might be worth creating a new issue with a reproduction for that

https://github.com/flutter/flutter/issues/117601

@cbracken / @goderbauer why was it decided that this will most likely not be fixed (P6)? Currently setting the devicePixelRatio of a MediaQuery has no effect on the widgets below it which can be quite confusing and counterintuitive.
To me this sounds like a bug worth fixing. At the very least we could remove devicePixelRatio from the copyWith method of MediaQuery to avoid the confusion: https://github.com/flutter/flutter/blob/fda9ecfef76b57ae459675fdf262342a77c2c6ba/packages/flutter/lib/src/widgets/media_query.dart#L480-L482

@cbracken saw this popup in my notifications and I came across a comment I made before that might help.

There is also an internal Flutter issues that the team is aware of where Flutter widgets use the window properties instead of the wrapping MaterialApp, hence setting the properties via MediaQueryWrapper does not work.

Flutter internal widgets use ui.window.devicePixelRatio while MediaQuery.of(context).devicePixelRatio does nothing.

I think there are several different things going on in this thread, which makes each of them harder to resolve. There's a mixture of several possible bugs, along with some confusion about what MediaQuery and MediaQueryData.devicePixelRatio do. And there's a use case that we may not currently have a good answer for.

The devicePixelRatio supplied by MediaQuery does not control how the layout in logical pixels (which is the unit that is used throughout Flutter for sizes and positions) gets translated to the physical pixels on the screen. It cannot do that, because MediaQuery's job is to provide information to the widgets in its subtree, and the widgets aren't where that translation happens. Rather, that translation is controlled by the engine, and the devicePixelRatio on a MediaQuery only reports what ratio is being used.
What the devicePixelRatio on a MediaQuery does do is that it's consulted by various different widgets in the framework in order to be aware of how their output will be translated into physical pixels. For example:

Various Cupertino widgets want to draw a one-physical-pixel hairline divider. They compute the divider's width as 1.0 / MediaQuery.devicePixelRatioOf(context).
EditableText (and TextField which is built around it) want to snap the caret/cursor to a physical-pixel boundary, to avoid it getting either antialiased or aliased. It does this by snapping to a multiple of 1.0 / _devicePixelRatio logical pixels, where _devicePixelRatio comes from MediaQuery.devicePixelRatioOf(context).

This means that inserting a MediaQuery with a different devicePixelRatio will not cause the widgets in its subtree to scale up or scale down. That's not because of a bug; it's just not its job.
In particular it's not because the widgets are consulting a window.devicePixelRatio (or these days view.devicePixelRatio) instead of MediaQuery.devicePixelRatioOf(context). Rather, the vast majority of widgets are never looking at the device pixel ratio at all — which is basically the whole point of the concept of logical pixels.

There are some places where the framework does look at a view.devicePixelRatio instead of getting devicePixelRatio from a MediaQuery. I think these are the cause of the bugs people encountered above with the Transform.scaled solution, like https://github.com/flutter/flutter/issues/32115#issuecomment-1133607044 where draggables go in the wrong place. (And https://github.com/flutter/flutter/issues/32115#issuecomment-574458320 with Hero widgets, though that one I can't actually reproduce now; perhaps something changed there since 2020.)
I'm not sure those places represent bugs either, though. They're in contexts like converting the position of a pointer gesture, where we don't a priori know what widgets will be involved. We do need some kind of root coordinate space to describe where a pointer event happened, and logical pixels are natural for that.
The underlying problem that people in this thread are looking for a way to solve is to have a subtree where the coordinate space of logical pixels is scaled differently from how it is for its parent. There are several existing layout widgets that do versions of that: notably Transform.scaled, which is discussed above in the thread, and FittedBox, which is what @rayliverified's ResponsiveScaledBox uses. If there isn't currently a good way to solve this problem with the existing widgets, we can add another one. I think that will be a better solution than attempting to change what devicePixelRatio means.

@rayliverified as the author of that ResponsiveScaledBox widget: does it currently solve this problem to your satisfaction? Perhaps others who have this need should just use that package.
Or are there currently limitations that that solution still has that it seems like the framework could do more to help with?

@gnprice even if you are able to set scale programmatically then there is still a jumping issue https://github.com/flutter/flutter/issues/117601, https://github.com/flutter/flutter/issues/110957

Concerning the draggables and https://github.com/flutter/flutter/issues/32115#issuecomment-1133607044  I think there might be a bug in flutter/lib/src/widgets/drag_target.dart:
It currently is:
  Widget _build(BuildContext context) {
    final RenderBox box = overlayState.context.findRenderObject()! as RenderBox;
    final Offset overlayTopLeft = box.localToGlobal(Offset.zero);
    return Positioned(
      left: _lastOffset!.dx - overlayTopLeft.dx,
      top: _lastOffset!.dy - overlayTopLeft.dy,
      child: ExcludeSemantics(
        excluding: ignoringFeedbackSemantics,
        child: IgnorePointer(
          ignoring: ignoringFeedbackPointer,
          child: feedback,
        ),
      ),
    );
  }

But if I change it to the following, the draggables work as I would expect when transformed:
  Widget _build(BuildContext context) {
    final RenderBox box = overlayState.context.findRenderObject()! as RenderBox;
    final localizedOffset = box.globalToLocal(_lastOffset!);
    return Positioned(
      left: localizedOffset.dx,
      top: localizedOffset.dy,
      child: ExcludeSemantics(
        excluding: ignoringFeedbackSemantics,
        child: IgnorePointer(
          ignoring: ignoringFeedbackPointer,
          child: feedback,
        ),
      ),
    );
  }```

@austinstoker That's great! Maybe you can make a separate issue?

FilledButton click area conflict with the Fake... workaround solution


u-boot xavier

Hi,
Is there a reason why there's no u-boot support for xavier?
Thanks

There's no recipe for it here because NVIDIA doesn't provide U-Boot for Xavier in L4T.

Alright, so no cboot for TX2 and no u-boot for xavier :D
They make it easy!
Thanks


updated CONTRIBUTING.md

most notably, I added a checklist for pull requests

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests


Make font awesome work on demo.almighty.io

Make font awesome work on demo.almighty.io
Renamed the icon-font-name-fa, in https://github.com/nimishamukherjee/almighty-ui/blob/alm-ui-353/src/assets/stylesheets/variables.scss, to FontAwesome.
This is in line with https://github.com/patternfly/patternfly/blob/master/src/less/variables.less

@nimishamukherjee how can I test this to confirm that it will fix an issue we only have in production?

"I don't test code often, but when I do, I test it in production"


Convert social media graphic to PNG and add as share card

Angelina uploaded a SVG for the social media share. Let's convert it to PNG for ubiquitous file sharing on all social media networks, and confirm that the file will work.
Would like to cross-train someone on the card debugging with someone at the end of this sprint during QA.

Hey @chachasikes here's the social media graphic in the 1200x630 size. Let me know if this doesn't work. Thanks!


Added pranavgoel29.md and Updated CONTRIBUTING.md

Just added my info.
Added one point to how to contribute portion in CONTRUTING.md file

Hi @pranavgoel29 could you separate these into two PRs :smiley:

I was having some problem in doing that, it would be very helpful if can you guide me.

Hi @pranavgoel29 did you figure this out?

No I am going to make a new PR

Great!


Adding onConnectFailure callback

I'm using this component for an online game. I introduced web socket security using JSON Web Token to my Spring Boot server, if the token is invalid then my server denies the web socket connection. My problem is that I can't handle this failure in the client because you are just logging the error, I need a callback so my clients are sent to a login page and a new token is created.
I hope you can merge and publish this as fast as possible :/ I also made the changes needed in the README.md
Thanks

@GabrielBB Thank you for the changes. I will publish within today

@GabrielBB Thank you for the changes. I will publish within today

Nice! Thanks!

Deployed as version 4.2.0 https://www.npmjs.com/package/react-stomp


retain logs and data of failed jobs in a location accessible to the operator

All job work dirs are exposed via WebDAV on each worker instance.
Work directory is left unscathed in case of failed jobs but longevity is not guaranteed if subsequent jobs need disk space to run. Need development if we want to ship failed work directories to a less volatile work space. Or, as we did in OCO-2, we catch exceptions in our PGE so verdi never catches a failure and ship those work dirs out to external storage for review.

Implemented: https://github.com/hysds/hysds/commit/39541fcaced94c06ba090ce16854229f17199c02
Tested on GRFN b-cluster.


The fp16 inference of pytorch swintransformer op got nan output.

Description
system and software:

fastertransformer version: v5.0
GPU: T4
Swin-Transformer: e0486b2cf8c63b6314570a43007569c8aa9b4578
CUDA: 11.0

Error Message

got nan of fp16 inference of swintransformer_op: FP16_torch_traced_output vs FP16_op_output , avg diff :  nan max diff :  nan, which causes by the output of FP16_op_output have nan value after debug into infer_swintransformer_op.py;
got a large amount of CUDA Error messages when fp16 op inference:

CUDA Error: (null) /workdir/xxx/packages/v5.0_tag/FasterTransformer-release-v5.0_tag/3rdparty/trt_fused_multihead_attention/fused_multihead_attention_v2.h 682

Reproduced Steps
1. git clone swin-transformer:
cd examples/pytorch/swin/Swin-Transformer-Quantization && \
  git clone https://github.com/microsoft/Swin-Transformer.git && \
  git checkout e0486b2cf8c63b6314570a43007569c8aa9b4578 && \
  cd ..

2. file path modify:
*inference_swintransformer_op.py*

 25 import sys
 26 sys.path.insert(0, "./Swin-Transformer-Quantization/Swin-Transformer")

*run_test.sh*
 12 python3 infer_swintransformer_op.py \
 13     --eval \
 14     --data-path /workspace \
 15     --cfg Swin-Transformer-Quantization/Swin-Transformer/configs/swin/swin_tiny_patch4_window7_224.yaml \
 16     --resume Swin-Transformer-Quantization/swin_tiny_patch4_window7_224.pth \
 17     --th-path ../../../build/lib/libpyt_swintransformer.so \
 18     --batch-size $1

3: run test shell script: bash run_test.sh 1

It's seem that WindowAttention has wrong invoking of FusedMHARunnerFP16v2，and we got expected diff after forbid using fused attention:
src/fastertransformer/layers/attention_layers/WindowAttention.cc

  183     if ((sm == 75 || sm == 80 || sm == 86) && size_per_head == 32 && window_len_ <= TRT_MAX_LEN
  184     ¦   && std::is_same<T, half>::value) {
  185     ¦   trt_S = trt_getS(window_len_);
! 186     ¦   //use_trt_ = true;
  187     }

CUDA Error: (null) /workdir/xxx/packages/v5.0_tag/FasterTransformer-release-v5.0_tag/3rdparty/trt_fused_multihead_attention/fused_multihead_attention_v2.h 682

This error means that you don't call fused mha successfully. Can you provide the docker image you use and the building steps you build the project?

CUDA Error: (null) /workdir/xxx/packages/v5.0_tag/FasterTransformer-release-v5.0_tag/3rdparty/trt_fused_multihead_attention/fused_multihead_attention_v2.h 682

This error means that you don't call fused mha successfully. Can you provide the docker image you use and the building steps you build the project?

Thanks for your replying. It's feels like that i uses wrong environment, and I have checked the swin-transformer-op inference in official remmanded image and I got correct result. I builds FasterTransformer in my own docker image, and I will check the build processes and relevant software dependence.

CUDA Error: (null) /workdir/xxx/packages/v5.0_tag/FasterTransformer-release-v5.0_tag/3rdparty/trt_fused_multihead_attention/fused_multihead_attention_v2.h 682

This error means that you don't call fused mha successfully. Can you provide the docker image you use and the building steps you build the project?

Thanks for your replying. It's feels like that i uses wrong environment, and I have checked the swin-transformer-op inference in official remmanded image and I got correct result. I builds FasterTransformer in my own docker image, and I will check the build processes and relevant software dependences.

I found the main difference between nvcr.io/nvidia/pytorch:21.07-py3 and my own image is the cuda version, which is 11.4 in nvcr.io/nvidia/pytorch:21.07-py3 but 11.0 in my own image. After switching the cuda version to 11.4 in my own image, I got the expected result.
I want to double checking in nvcr.io/nvidia/pytorch:21.07-py3, but the official image doesn't support backward compatibility as pytorch depending on cuda11.4（The only thing I do is that relink /usr/local/cuda from 11.4 to 11.0 in nvcr.io/nvidia/pytorch:21.07-py3）：
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/conda/lib/python3.8/site-packages/torch/__init__.py", line 197, in <module>
    from torch._C import *  # noqa: F403
ImportError: libcupti.so.11.4: cannot open shared object file: No such file or directory
CMake Error at CMakeLists.txt:193 (message):
  PyTorch >= 1.5.0 is needed for TorchScript mode.

Could you mind checking the cuda 11.0 which is declared to be supported in swin doc:

Requirements
CMake >= 3.13 for PyTorch
CUDA 11.0 or newer version
NCCL 2.10 or newer version
Python 3 is recommended because some features are not supported in python 2
PyTorch: Verify on 1.10.0, >= 1.5.0 should work.

I believe CUDA 11.0 is runnable. I try to build the cpp example by nvcr.io/nvidia/pytorch:20.07-py3, which contains CUDA 11.0.
I can run the cpp example successfully by following scripts:
cmake -DSM=75 -DCMAKE_BUILD_TYPE=Release  ..
make -j
./bin/swin_example 1 0 32

Note that you need to disable the BF16 flag because the CUDNN version is too old and still not support BF16.

I believe CUDA 11.0 is runnable. I try to build the cpp example by nvcr.io/nvidia/pytorch:20.07-py3, which contains CUDA 11.0.
I can run the cpp example successfully by following scripts:
cmake -DSM=75 -DCMAKE_BUILD_TYPE=Release  ..
make -j
./bin/swin_example 1 0 32

Note that you need to disable the BF16 flag because the CUDNN version is too old and still not support BF16. And the cmake version of the docker is also too old. So, you also need to upgrade the cmake version.

Thanks，I will try it.

@byshiue, It's FT linking the error cuda library in my docker image, which links to the libcuda.so from /usr/local/cuda/lib64/stubs/libcuda.so.
I debug into the following location to check the error code：
CUDA Error: (null) /workdir/xxx/packages/v5.0_tag/FasterTransformer-release-v5.0_tag/3rdparty/trt_fused_multihead_attention/fused_multihead_attention_v2.h 682

The error code is：CUDA_ERROR_STUB_LIBRARY , which means:

This indicates that the CUDA driver that the application has loaded is a stub library. Applications that run with the stub rather than a real driver loaded will result in CUDA API returning this error.
After I reset the link path, everything is OK!


HDDS-3778. Block distribution in a pipeline among open containers is not uniform.

What changes were proposed in this pull request?
Made allocate block call synchronised over pipeline object.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-3778
How was this patch tested?
Added a unit test.

Codecov Report

Merging #1058 into master will decrease coverage by 0.04%.
The diff coverage is 89.79%.

@@             Coverage Diff              @@
##             master    #1058      +/-   ##
============================================
- Coverage     69.48%   69.44%   -0.05%
- Complexity     9110     9115       +5
============================================
  Files           961      961
  Lines         48132    48142      +10
  Branches       4672     4679       +7
============================================
- Hits          33446    33433      -13
- Misses        12468    12494      +26
+ Partials       2218     2215       -3

Impacted Files
Coverage Δ
Complexity Δ

...hadoop/hdds/scm/container/SCMContainerManager.java
70.58% <61.53%> (+0.11%)
34.00 <0.00> (ø)

.../org/apache/hadoop/hdds/scm/pipeline/Pipeline.java
85.23% <100.00%> (-0.27%)
44.00 <0.00> (+1.00)
:arrow_down:

.../org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java
86.25% <100.00%> (+0.33%)
42.00 <0.00> (+2.00)

...adoop/ozone/om/helpers/OmKeyLocationInfoGroup.java
75.60% <100.00%> (+1.25%)
12.00 <2.00> (+1.00)

...g/apache/hadoop/ozone/om/helpers/OzoneAclUtil.java
81.91% <100.00%> (+1.23%)
39.00 <4.00> (+2.00)

...adoop/ozone/om/request/key/OMKeyCommitRequest.java
97.00% <100.00%> (ø)
18.00 <0.00> (+1.00)

...ache/hadoop/ozone/om/codec/S3SecretValueCodec.java
90.90% <0.00%> (-9.10%)
3.00% <0.00%> (-1.00%)

.../transport/server/ratis/ContainerStateMachine.java
69.36% <0.00%> (-6.76%)
59.00% <0.00%> (-5.00%)

...apache/hadoop/hdds/scm/block/BlockManagerImpl.java
66.66% <0.00%> (-5.41%)
18.00% <0.00%> (ø%)

...ozone/container/ozoneimpl/ContainerController.java
63.15% <0.00%> (-5.27%)
11.00% <0.00%> (-1.00%)

... and 21 more

Continue to review full report at Codecov.

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

@bshashikant, thanks for the quick fix. There is a checkstyle issue, can you take care of that?


Update Composer dependencies (2021-03-16-00-08)

Visual regression test passed!
View the visual regression test report


Sklearn estimators

Compatibility with scikit-learn (v0.19). Check_estimator passing for all DES/DCS/static classifiers.

Guys, there a drop in coverage for faiss_knn_wrapper.py, we need to check that


Fix #250 NPE when dependencyManagement lacks a version

Add integration tests for the reported issue.
Dependencies without version in dependencyManagement will be logged and ignored.
Dependencies without version will still fail, but will produce more informative message, stating which dependency caused the failure

I have the same stack trace as @newmen, yet all my dependencies have a version.


Bitcoin Day Sacramento

Link to Content: https://www.bitcoinday.io/sacramento22
Briefly Describe Content: Bitcoin Day is an interactive micro-conference to hear from local, regional, and national Bitcoiners on a variety of subjects such as how to buy and HODL privately and securely, building on Bitcoin, mining, self-sovereignty in the digital age, and leveraging local politics for Bitcoin.
Suggested Section: Conferences (February 19th, 2022)

Added


LinearRegression: add constructor overload that accepts IEnumerable<Coordinates>

... to make it easier to get a regression line from List<Coordinates> instead of requiring Coordinates[]
https://github.com/ScottPlot/ScottPlot/blob/fb3b1c84af3c361bf1eb8f4286ad1d4e7038afc5/src/ScottPlot5/ScottPlot5/Statistics/LinearRegression.cs#L14-L24

Array themselves implement the IEnumerable interface, so IEnumerable<Cooperatives> can accept Cooperatives[] as a parameter.
Maybe we can just change Coordinates[] to IEnumerable<Coordinates>?

@swharden Could you please review and approve this PR when you have a chance? It adds a new constructor to the LinearRegression class, allowing for easier creation of regression models from coordinate data.

Thanks for the tip @CoderPM2011! I modified the open PR #3982 to add this feature and it will be in the next release 🚀


allow user to output to a specific subscriber

Currently, message from a task is output to all its subscribers but a user may want to send some messages to one of the subscribers while other messages to another. The different subscribers could end up as the same Processor through different Partitioners.
Hence, I'm considering allowing user to output to a specific processor / subscriber with output("b", "p1", message) or output("c", "p2", message) where
  val a = Processor[A]("a", 1)
  val b = Processor[B]("b", 1)
  val c = Processor[C]("c", 1)
  val p1 = Partitioner[P1]("p1")
  val p2 = Partitioner[P2]("p2")

  val graph = Graph(a ~ p1 ~> b, a ~ p2 ~> c)

"a", "b", "c", "p1" and "p2" are globally unique ids to identify processors and partitioners respectively.
Just my immature thoughts to open further discussions.

Do you think there is benefit in typing output even if inferred? EG output[T:ClassTag]

by T you mean the class type of a Processor ?

I think we need to think whether the strong binding here will impact feature "dynamic dag".

superseded by #1456


update dependencies

This PR is to update:

Helm from 3.10.3 to 3.16.1
k8s version from 1.24.8 to 1.30.3 and from "v1.26.11-rancher2-1" to "v1.30.4-rancher1-1"
update image_id
rke version from 1.4.4 to 1.6.1

rke version from 1.4.4 to 1.6.2


Integrate API to actuator page

Actuator page has been integrated with the RuleDataManagement API. Closing the issue.


[docs] Demo SpacingGrid crashes

[x] I have searched for similar issues in this repository and believe that this is not a duplicate.

Steps to Reproduce

Visit https://mui.com/components/grid/#main-content
??
demo SpacingGrid crashes

Your Environment

Tech
Version

MUI
v5.2.5

netlify deploy
https://61c098e520eae9000736c0df--material-ui-docs.netlify.app

Browser
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

Probably related to #30304

Same issue, actually. Closing it to focus on the already opened.


Issue : main.yml is reloading systemctl even if we use init.d

May be i've done something wrong on my box, but for me if I use init.d i should not see a trigger on systemctl daemon reload
solution trigger the reload only if we are not using initd
- name: reload systemctl daemon
  systemd:
    daemon_reload: true
  become: true
  when: not splunk_use_initd

We did some testing on this. What we found is that while the changes do take effect without reloading systemd, systemd will complain when the service is started if you do not reload it after making changes to init.d files:
# service splunk start
Starting splunk (via systemctl):  Warning: splunk.service changed on disk. Run 'systemctl daemon-reload' to reload units.
# echo $?
0

Although the return code is success (0) we will keep the reload to avoid this warning message.

This implies that you have systemd installed on your machine :)
My tests was running on an Alpine linux which did not ship with systemd (hence the issue)
Possible workaround is to ignore error but i think it might miss some "real" error in the process

Alpine Linux is not supported by this role. Please see main.yml in meta/ for a list of supported operating systems.


IDE is confused about the last file to compile

Current master

It builds and runs OK. The false error is only in the IDE.
Repro:
Create a solution with two or more console app projects.

.net core? this is expected

Not dotnet core, .Net Framework 4.6.1
I've noticed this in Gjallarhorn WPF sample projects at first.

@KevinRansom @cartermp Something is quite busted on master, I think it is to do with cases where source files in projects get interpreted as if they are single file projects

@KevinRansom I think I have some idea what's going on.
https://github.com/Microsoft/visualfsharp/blob/6c6de72d154a550732dd1ce818f64ad75fee843c/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs#L414-L417
This event with ProjectAdded args fires during solution load, and it can fire well before SetupProjectFile or SyncProject had a chance to run for a given project. Execution goes here https://github.com/Microsoft/visualfsharp/blob/6c6de72d154a550732dd1ce818f64ad75fee843c/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs#L163-L170
and, I guess, things break because InvalidateConfiguration is being called for a project that is not set up?
Commenting out this line
https://github.com/Microsoft/visualfsharp/blob/6c6de72d154a550732dd1ce818f64ad75fee843c/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs#L416
fixes this issue and the other one (#3545) but I'm not sure what it breaks in return. I don't fully understand why it is needed.

and, I guess, things break because InvalidateConfiguration is being called for a project that is not set up?

Yes, that sounds like the problem
AFAIK the line is only needed for new-style .NET SDK project files (where a Roslyn project already exists).  SetupProjectFile is needed for old-style project files.  We need to somehow do the right thing here for old-style projects

Hmmm looks like I broke something.  On it.

cc @Pilchie for FYI

Fixed by #3603 - thanks for resolving this @KevinRansom


DO NOT MERGE: Prototype of how we can convey more information to subscribers

@Rishabh-V This is very rough and ready, but is a starting point to at least discuss.
If users actually want to be able to react per-message to failures etc, we could potentially provide a public subclass which did all the "book-keeping" necessary - I'd need to see idealised customer code in order to know what to propose there.

Note for the breaking change: I'd forgotten that SubscriberClientImpl is public. We can easily fix this, but I'm busy with something else right now. It shouldn't change the general shape of the PR.

@Rishabh-V This is very rough and ready, but is a starting point to at least discuss.
If users actually want to be able to react per-message to failures etc, we could potentially provide a public subclass which did all the "book-keeping" necessary - I'd need to see idealised customer code in order to know what to propose there.

Thank you very much Jon. I will create a sample code using this and discuss with Pub/Sub team and take it forward from here. Thanks again. This is very helpful.

This is now incorporated in #8973 and can be closed.


Fix a data race by re-adding the ID if its address is different

Currently, there's a data race on skademlia.ID when the address of the ID is updated in case the its address is different.
Since skademlia.ID should be immutable, the solution should be to remove the ID and add it again.
This PR implements the solution.

I'm reviewing this now

Wow, so I was aware about this for at least a month already. And even pushed branch with a fix but for some reason haven't created PR...

@a-urth What do you think about this solution versus your branches approach ?

I'd stick with mine, since its safer to update ID instead of creating new one since object can be referenced from somewhere.
But its up to You to decide.
Still can't believe that I didn't create PR... so sorry

@AhmadMuzakkir @rkeene i merged fresh cleanup and created PR.
If you guys think this one is better then close mine, I'm fine with either one.
https://github.com/perlin-network/noise/pull/252

@AhmadMuzakkir @rkeene i merged fresh cleanup and created PR.
If you guys think this one is better then close mine, I'm fine with either one.
#252

I personally think that IDs should be kept immutable - reducing locking overall is important to reduce the amount of possible points of contention in my opinion. Though, any thoughts from your side on why we should introduce a mutex into (*skademlia).ID?


(PUP-6997) acceptance: can put pp functions in $environment/functions

put this test in with the other test because this is where we first found the issue.
this change also removes the spurious environment, and creates a hiera5 3 level hierarchy
[skip ci]

this probably has to be re-targeted as well

needs a rebase

rebased

ping @thallgren ok to merge now? (ok for me)


Fix GreedyScheduler with ntasks and chunksize, closes #120

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 85.29%. Comparing base (cba9127) to head (3cbcf3d).
Report is 123 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #122      +/-   ##
==========================================
- Coverage   90.24%   85.29%   -4.95%
==========================================
  Files           3        7       +4
  Lines          82      544     +462
==========================================
+ Hits           74      464     +390
- Misses          8       80      +72

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

Thanks @fredrikekre!


Add QOC (Quantum Optimal Control) to QuTiP

This package has been developed by @flowerthrower and is now supposed to be added to QuTiP. This pull request will transfer all existing code to the new repository inside the qutip organization, allowing us to review and comment on the code.

Thank you @pmenczel and @ajgpitch for your detailed feedback! I really appreciate you taking the time to look over the code and explain your comments. I'll let you know once your requests are incorporated.

Let me know if I can help with the packaging. As suggested by @Ericgig I have already created an account for pipy.

Thank you, Patrick. Since I created this PR I can't do an "approve" review, so consider this message my approval.
Two more things I wanted to mention:

Thank you for figuring out the API doc stuff. I see everything working now if I build the doc locally, but https://qutip-qoc.readthedocs.io/en/latest/apidoc.html still seems broken. Is that just not up to date?
Since now we don't allow TimeInterval to be passed to pulse_optim, maybe TimeInterval should be removed from __all__ and also moved to the "Low-level interfaces" section of the api docs?

Thanks, @pmenczel, for your in-depth quality review!

Unfortunately, you are right, and the search seems to only work locally; this is suboptimal. Hence, I will try to look into it before the beta release; however, since this is not a blocker, I would be fine with patching it in a later version.
I like your suggestion and will move TimeInterval to the low level for now. I suggest revisiting this once we have found a common time structure within the QuTiP main package (as suggested during the workshop).
I guess this leaves us looking forward to your final "OK" @ajgpitch .

I have added my approval. Thanks @flowerthrower and @pmenczel for your commitment to this PR.
I will leave it to you guys to complete the merge.


Add free transformer option to commandline

This PR will give users an option for the use of a different transformer

Functionality is implemented!

A nice step forward! See my remarks.


Add Missing tests

Testing Strategy:

[x] Move not critical parts as external libraries with a proper testing (minimal for v2-beta1)
[ ] Let's increase the test coverage from the action itself (minimal for v2)
[ ] Let's cover scenarios in e2e

Hi @UlisesGascon 👋
I've added unit test for utility generateReportContent in the PR #32 😄

Thanks to @rajbos in #51 we can start moving into the E2E testing. The approach will be slightly different that the typical E2E with frameworks like Jest or Cypress but it will be good enough to grant that new collaborators can contribute and we can merge the PRs fast


[BUG] RPi Bullseye h264_encoder error

from picamera2.encoders import H264Encoder, Quality
encoder = H264Encoder()
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.9/dist-packages/picamera2/encoders/h264_encoder.py", line 24, in init
super().init(bitrate, V4L2_PIX_FMT_H264)
NameError: name 'V4L2_PIX_FMT_H264' is not defined

Am i missing something?

Upgrading V4L2 fixed the issue


Fix CONTRIBUTING, README, and index

My bad, this should've been part of the workspace PR

How could we miss this? The PR only had<PHONE_NUMBER> changes :)


Nest 7.0.0-alpha1 is not taking virtual directory name while executing queries

I have elastic search hosted on IIS with url as "https://somedomain.com/VD1".
I am able to access above url in Postman and perform get put queries on it. Using Nest I am observing that queries get fired against "https://somedomain.com" instead of "https://somedomain.com/VD1".
I am trying to connect using below code
EsNode    = new Uri("https://somedomain.com/VD1/");
EsConfig  = new ConnectionSettings(EsNode);
EsClient   = new ElasticClient(EsConfig);
var resp = EsClient.CreateIndex("profile", c => c
.Map(mp => mp )
.AutoMap())
error  shows uri as https://somedomain.com/profle

This was addressed in #3700 and is part of NEST 7.0.0-alpha2. Would you be able to try with this and report back?

Thanks @russcam , It is working in  7.0.0-alpha2.


Incorrect assertion in tedge-write test "doesnt_change_permissions_if_file_exists"

Hi,
the result seems OK because the expectation is 644 and the root user umask on the testing system happens to be set at 022.
So 644 is the maximum file mode automatically applied but it isn't a proof that the code didn't change it.
https://github.com/thin-edge/thin-edge.io/blob/cf109f329b8513bc56b70e228fcc812a9cf94b05/crates/core/tedge_write/tests/main.rs#L76
Whithout any code change this test will fail immediately on a system where the root user umask is 077.
I strongly suggest to use 666 as the expected value for this test.
Moreover, it checks only the file mode but not the owner and group.
They happen to be reset to root:root, in contradiction with the code at https://github.com/thin-edge/thin-edge.io/blob/cf109f329b8513bc56b70e228fcc812a9cf94b05/crates/core/tedge_write/src/bin.rs#L66 which is supposed to prevent both mode and owner/group changes.

Hi, so in total following changes were made:

Most important, permissions and owner information were being reset if writing to a file that exists.
This was fixed: tedge-write should now not overwrite original file owner/permissions.
Also tedge-write --help was edited to clarify what should happen when file exists or doesn't exist.
Test were failing due to assumptions about default umask.
We now set an umask as part of the test, so a case where tedge-write changes permissions to defaults should no longer be missed.
tedge-write can now take user/group id instead of only a name.

Some tedge-write tests were moved to Robot Framework, under tests/RobotFramework/tests/tedge_write.robot, you can run them with just integration-test -s tedge_write. Once it's merged you'll be able to run the test suite and verify if your issue is solved.

QA can verify that this bug in test is fixed


set vmdb_session to samesite

set cookie for vmdb_session to not work with third party entities
but only work for our vmdb session (even sub domain needs to be the same)
Since the rails ui servers all have the same domain name, this works
see also https://github.com/ManageIQ/manageiq-appliance/pull/357

I did make this change on the appliance and verified that the samesite in the cookie showed in the browser

Backported to najdorf in commit dc1fe05547e5ecbb2b83235ce748a3486ed7fffb.
commit dc1fe05547e5ecbb2b83235ce748a3486ed7fffb
Author: Jason Frey<EMAIL_ADDRESS>Date:   Fri Mar 4 09:44:04 2022 -0500

    Merge pull request #21758 from kbrock/session_same_site

    set vmdb_session to samesite

    (cherry picked from commit 58efcdc5e42db5676cfa43d2b23f8b8089fb5b55)


Treat Life fanlight not working

I have successfully got the fan working but the light does nothing. Here is my config:
{
"platform": "TuyaLan",
"devices": [
{
"name": "Bedroom Fan",
"type": "FanLight",
"manufacturer": "Treat Life",
"model": "Ceiling Fan Dimmer Switch DS03",
"id": "XXX",
"key": "XXX"
}
]
}

Alright I got the light working now. The dimming range was way low so I changed that in the tuya app. However, it won't dim at all it either on or off. How do I fix this?

Hope someone can help.
I have a 3 Ceiling Fan Dimmer Switches DS03, on tuya app i can control lights and fan speed, but on homebrige/homekit, i only get the fan control. any ideas what i'm missing. i tried the config above and it didn't work at all, her his how i get only the fan control.

{
"platform": "TuyaWebPlatform",
"name": "TuyaWebPlatform",
"options": {
"username": "xxxxx",
"password": "xxx",
"countryCode": "1",
"platform": "tuya",
"pollingInterval": 10,
"scene": true
},
"defaults": [
{
"id": "",
"device_type": ""
}

Had the same issue with the TuyaWeb plugin - I thought you could separate the tiles within the Home app, but I can't remember 100%. I ended up using tuna-lan for these switches.
It's a bit of work, but they're working perfectly:
Find the id and key:
https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md#listing-tuya-devices-from-the-tuya-smart-or-smart-life-apps-highly-recommended
Add config:
        "platform": "TuyaLan",
        "devices": [
            {
                "name": "Dining Room Wall Switch",
                "type": "fanLight",
                "manufacturer": "TreatLife",
                "model": "DS03",
                "id": "123",
                "key": "xxx"
            }

Hide the switch in TuyaWeb:
"name": "TuyaWebPlatform",
            "hiddenAccessories": [
                "123",

I also had to modify SimpleFanLightAccessory.js:
https://github.com/iRayanKhan/homebridge-tuya/issues/110#issuecomment-672164790
Let me know if you have any questions - I'm happy to help in any way that I can.

Had the same issue with the TuyaWeb plugin - I thought you could separate the tiles within the Home app, but I can't remember 100%. I ended up using tuna-lan for these switches.
It's a bit of work, but they're working perfectly:
Find the id and key:
https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md#listing-tuya-devices-from-the-tuya-smart-or-smart-life-apps-highly-recommended
Add config:
        "platform": "TuyaLan",
        "devices": [
            {
                "name": "Dining Room Wall Switch",
                "type": "fanLight",
                "manufacturer": "TreatLife",
                "model": "DS03",
                "id": "123",
                "key": "xxx"
            }

Hide the switch in TuyaWeb:
"name": "TuyaWebPlatform",
            "hiddenAccessories": [
                "123",

I also had to modify SimpleFanLightAccessory.js:
https://github.com/iRayanKhan/homebridge-tuya/issues/110#issuecomment-672164790
Let me know if you have any questions - I'm happy to help in any way that I can.

@travisgerard when I add this config I get an error that says "doesn't have a valid type defined".  I've tried changing the type in your example from "fanLight" to "SimpleFanLight" but I get the same error.  Any suggestions?

I'm hitting a wall with the TreatLife DS03. Followed the instructions at
https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md#listing-tuya-devices-from-the-tuya-smart-or-smart-life-apps-highly-recommended
and was able to get "Device(s) registered!" with the id/ip/localKey/name parameters:
[
  {
    id: 'ebce47a28178981b87jzyj',
    ip: '<IP_ADDRESS>',
    localKey: "wF9Z}lz-?wVQ~-'l",
    name: 'Ceiling Fan Dimmer Switch DS03'
  }
]

however, when I plug them into the homebridge-tuya config, I'm getting
[4/27/2023, 9:06:13 AM] [homebridge-tuya] wF9Z}lz-?wVQ****, key for Master Bedroom Lights & Fan (ebce47a28178981b87jzyj), is not a valid key.
[4/27/2023, 9:06:13 AM] [homebridge-tuya] No valid configured devices found.

My config looks like this:
                {
                    "type": "fanLight",
                    "name": "Master Bedroom Lights & Fan",
                    "id": "ebce47a28178981b87jzyj",
                    "key": "wF9Z}lz-?wVQ~-'l",
                    "manufacturer": "TreatLife",
                    "model": "DS03"
                }

What am I doing wrong?
FWIW by doing several "tuya-cli get" commands, I was able to work out the various settings for this switch...but even after digging through the wiki and issues I can't find a resource that tells me how to convert this data into a working config.json.
1   fan power
3   fan speed, 1 - 4
9   light power
10  light dimmer, 140 - 1000
105 "min dimmer" value (configured in app)
106 mode1 (configured in app)
108 always 1?


Issue #7345

Have you read the Contributing Guidelines on Pull Requests?
Yes I have read all the contributing guidelines on Pull requests
Description
This program gives the no of points inside a circle that is described by its cartesian coordinates in a vector.
Checklist

[ ✅ ] I've read the contribution guidelines.
[ ✅ ] I've checked the issue list before deciding what to submit.
[ ✅ ] I've edited the README.md and link to my code.

@bhav09 please review my PR

@ankitaggarwal23  I have done the necessary changes. Please see to it.


Rewrite chip startup code in assembly

See https://github.com/rust-embedded/cortex-m-rt/issues/300 for me details.
The TLDR version is, we shouldn't be calling any Rust until data/bss and properly initialized. asm! is stable so we should just do it :)

Relevant issues

https://github.com/esp-rs/xtensa-lx-rt/issues/53
https://github.com/esp-rs/esp-riscv-rt/issues/1

There's a tracking issue in xtensa-lx already for this, so going to close this issue since there's nothing left to do once that's updated.


Correct complexity statement for Sequence compactMap

This corrects an erroneous statement about the complexity of the compactMap function in the Sequence protocol.
There error was originally introduced at https://github.com/apple/swift/commit/6f7aecd0302a0d74f2181a187732c627f2895aa0#diff-12859757644da80c942399ba669152a212e379d997c94d70a8063c13ee9caa0eR752 when (what is now called) compactMap was broken off from its sibling flatMap.
Discussion:
In compactMap, the length of the result must be less than or equal to the length of the sequence. Therefore O(m+n) simplifies to O(n).

@swift-ci smoke test and merge


Multi language support (i18n)

With the new react-rendition UI from @sradevski, is it possible to integrate support for adding our own language files? Presumably I am not the only one using Balena in English and non-English speaking contexts.
Would inevitably create some challenges. A drop down menu would be required on the UI, perhaps populated by the contents of a languages folder would probably be more viable than at build time of the UI due to the way we create the container right now. It could draw on the same method as the --custom-ui feature. Probably a new string to launch wifi connect with too, that allows changing the default languages from English (--default-language=fr). Alternatively or additionally, pass a string in a url on accessing the interface (?link=fr) which would provide the added benefit of being able to better integrate in to apps that have already had a user set a language.
I'm sure many other challenges too, but wanted to float the idea.

A little rudimentary to be sure, but here is my current approach taken to allow custom messages and to allow multiple languages. Shared here for others to use as a interim measure:
https://github.com/maggie0002/wifi-connect/tree/language-selection
Passing /?language=xx on the end of the URL, where xx is a two digit language code (en, fr, de, ar) will change the main message languages to those set in the JSON files stored in ./ui/src/components/i18n/


⚠ Bofrost.at has degraded performance

In 1cb7f01, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1958 ms

Resolved: Bofrost.at performance has improved in c53d8ed.


⚠ Fortnite has degraded performance

In f656276, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1598 ms

Resolved: Fortnite performance has improved in fd11a9f.


Update link from SteamKit2.

SteamKit2 changed it.
We can update link to that proto or use fixed commit (can use example url#L54 to direct permalink of line).

Thank you for your contribution. The proto file have since moved to SteamDatabase/Protobufs, so I've fixed the links myself in https://github.com/seishun/node-steam/commit/d246c5eb88f283c61f40f31bf4cbcbb28f1ceb4b.


Update 09-bootstrapping-kubernetes-workers.md

spelling correction.  "empthy" to "empty"

Duplicate of #484


Update to new, unified codelab

TODO:

[ ] Publish codelab doc
[ ] Update link in README

We need to replace these codelabs:

https://developers.google.com/codelabs/firebase-emulator-get-started
https://developers.google.com/codelabs/firebase-emulator-test-rules
https://developers.google.com/codelabs/firebase-emulators-test-functions

We need to make sure that all three redirect to the new codelab, probably via Devsite redirects?

Hi @samtstern! I've updated the master branch to include GitHub CI and added a few fixes for the existing test script. Those fixes should be obsoleted by this PR so feel free to just overwrite my changes, as long as the CI still pass. (You can resolve the conflicts by choosing to use your versions as a whole)

@yuchenshi thanks for the heads up and for adding CI!


GDEXPO-19 - Issues with authentication on native platforms

Settings tab is white because of authentication issues. Settingstab should still work if there are authentication issues, but at the same time we should fix the authentication issues we face

Key: GDEXPO-19

Assignee: toraas

Comments:

 - 18/Oct/21 12:51 PM;60c06c39dae5670068cd284b;Where/how can I test this [~accountid:603def12678612006b9e9aa6] ?

 - 20/Oct/21 4:08 PM;60c06c39dae5670068cd284b;Tested with Expense&Pay app in TestFlight.
I only have to click on ‘Open’ in TF without any further authentication. Also the first page I get looks like this:

!image-20211020-140302.png|width=645,height=1186!

[~accountid:603def12678612006b9e9aa6]

 - 20/Oct/21 4:11 PM;603def12678612006b9e9aa6;[~accountid:60c06c39dae5670068cd284b] Oh right, we disabled the login screen for the expense and pay app today.

Also, the black background occurs because your device is set to dark mode enabled. We want to force light mode, but it’s not enabled yet.

 - 20/Oct/21 4:23 PM;60c06c39dae5670068cd284b;[~accountid:603def12678612006b9e9aa6] Can you inform me when you will enable login screen again?

Yes, it works much better when changing to light mode👍

Old issue, already fixed


Publish MiraiML on The Journal of Open Source Software

Link: https://joss.theoj.org/

Not enough time!


Git checkout does not update submodules

When doing checkout of a commit, the submodules have to be updated manually:
git submodule update --init --recursive

There's already a menu item for that: "Update all submodules"
Or is this for doing this step automatically? If so, I think this behavior should be opt-in since the GIT CLI also has this as separate steps

Maybe we can add an option like for pull and clone?

Yep, that's the idea


Edits

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks

Copy review - @Mbaoma, kindly commit the minor additional suggestion. Many thanks.

done, thanks @JohanFreelancer9

@mansipatel-usl Please merge this PR. Thanks.

@Kateyanne Kindly merge this PR. Thanks