agent: Add bootstrap duration metric

This metric helps evaluate how long it takes for an agent to start serving the
API and where the time is being spent during the bootstrap phase.
Example:
cilium_agent_bootstrap_seconds                        outcome="success" scope="bpfBase"                                            1.451699
cilium_agent_bootstrap_seconds                        outcome="success" scope="cleanup"                                            0.001206
cilium_agent_bootstrap_seconds                        outcome="success" scope="clusterMeshInit"                                    0.000001
cilium_agent_bootstrap_seconds                        outcome="success" scope="daemonInit"                                         0.000423
cilium_agent_bootstrap_seconds                        outcome="success" scope="earlyInit"                                          1.100657
cilium_agent_bootstrap_seconds                        outcome="success" scope="enableConntrack"                                    0.021765
cilium_agent_bootstrap_seconds                        outcome="success" scope="fqdn"                                               0.000462
cilium_agent_bootstrap_seconds                        outcome="success" scope="healthCheck"                                        0.001528
cilium_agent_bootstrap_seconds                        outcome="success" scope="initAPI"                                            0.514106
cilium_agent_bootstrap_seconds                        outcome="success" scope="ipam"                                               0.001434
cilium_agent_bootstrap_seconds                        outcome="success" scope="k8sInit"                                            1.731391
cilium_agent_bootstrap_seconds                        outcome="success" scope="mapsInit"                                           0.039221
cilium_agent_bootstrap_seconds                        outcome="success" scope="overall"                                            6.491492
cilium_agent_bootstrap_seconds                        outcome="success" scope="proxyStart"                                         0.000173
cilium_agent_bootstrap_seconds                        outcome="success" scope="restore"                                            1.570109
cilium_agent_bootstrap_seconds                        scope="workloadsInit" outcome="success"                                      0.000041

This change is

Coverage increased (+0.007%) to 43.055% when pulling 23f013e0644cd2e65c06e49d477b91fde30fddc6 on pr/tgraf/bootstrap-metric into 3c116d7d6eb52d6624601d91d5b575c1daa41b01 on master.

@raybejjani It doesn't add up right now

test-me-please


Changing the file name

Hello.
I'm trying to change the name of the file uploaded.
I have changed the code in jquery.Multifile.js on the line 169 to always setting the file name to "something.jpg", but didn't work.
Anybody can help me?
Here is the code:
166   // set file name
167   file.name = " something.jpg";
168   // execute function in element's context, so 'this' variable is current element
169   rv = handler.apply(MultiFile.wrapper, [element, file.name, MultiFile, file]);

You can't.
You have to upload the file then rename it on the server.
And you can't set the value on the client either. The  element is read only.

thanks for your anwser.
the problem is: i have two inputs image  with multi file thats i send this files on only one form.
I need to discriminate the file on the fist input to know on server side who is the fist file.
Do you have some ideia?

If you have 2 inputs can't you gave them different names and then upload one, rename it, then upload the other and renamed that?
If you only have 1  element the files are submitted in the order the user/browser picks them, you cannot re-order it or rename them in any way... read only. no way around it.

the only way i found is: on the list of pictures, the user must select what picture that will be the icon and which will be the wallpaper.
This's the case:

thanks Diego and thanks everyone

That looks perfect. Thanks for sharing this as I'm sure it will help others!


[BUG] Fix ticker leakage

I noticed that we are leaking Tickers, this is a tracking issue for the pull requests on all of the longhorn projects to fix the leakage.

This change is a bit bigger than I expected. Especially if go-iscsi-helper is changed, that means we need to change the engine too. We can merge this after the GA.

@joshimoo PR merged, will need a PR for the engine. Btw, is there anything we can test for this?

Will submit pr's for the updated go-iscsi dependency.
To identify these leaked resources in the future we could look into setting up profiling on one of our test clusters.
In terms of integration tests, the csi ticker fix should be covered by all regular csi operations. The manager ticker fix should be covered by normal usage as well (ratelimiter)
I don't see how we could create a specific test for this specific issue.

Pre-merged Checklist

[x] Does the PR include the explanation for the fix or the feature?

[x] Is the backend code merged?
The PR is at 32 593

[x] Is the reproduce steps/test steps documented?

[x] If the fix introduces the code for backward compatibility Has an separate issue been filed with the label release/obsolete-compatibility?
The compatibility issue is filed at

[x] If labeled: area/ui Has the UI issue filed or ready to be merged?
The UI issue/PR is at

[x] ~~if labeled: require/doc Has the necessary document PR submitted or merged?
The Doc issue/PR is at ~~

[x] If labeled: require/automation-e2e Has the end-to-end test plan been merged? Have QAs agreed on the automation test case?
The automation skeleton PR is at
The automation test case PR is at

[x] if labeled: require/automation-engine Has the engine integration test been merged?
The engine automation PR is at

[x] if labeled: require/manual-test-plan Has the manual test plan been documented?
The updated manual test plan is at

It's refactoring, so I don't think we have a specific way to test this now.
#538 might be related to this. I will see if we can test that.

I've set up a cluster of it, we can check CPU utilization after few days.

@khushboo-rancher can you also keep track of memory usage?

@joshimoo the monitoring is enabled on the cluster, so memory usage will be tracked as well.

We observed gradual increment in memory/cpu utilization but not sudden spike in the trend.
Closing this issue now. This will be more analyzed in https://github.com/longhorn/longhorn/issues/1463


Update SystemState.cs

Added readability of Person object from an Alexa Request.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Added an example for data lineage with PostgreSQL queries

Second transformation of Jim's tech lineage demonstration. This example focuses on data linage queries, and uses fake data generation behind the scenes.
Changes

Ported SQL code from docs/proposals/0003-lineage/ into example oriented material.
Split sequential demo into independent bite sized files
Made psql commands work inside local docker container
Minor formatting improvements for examples/upload-fake-data/example.sh

Checklist

[x] Tested locally?

Merged from master and integrated feedback from @jimduff-usds

@shanewholloway , that branch I mentioned has now been merged into master.


Support EXPLAIN PLAN

This PR adds support for EXPLAIN PLAN feature.
Here is the design doc that we shared the following design doc with the open source community a few weeks ago: https://docs.google.com/document/d/1lBMGcR65JY_8iIUCA1iCazzn0LzTVxMJlPzFIsZ7TRk/edit?usp=sharing
(Please request access if you don't have it already.)
Here is the link to the issue: https://github.com/apache/incubator-pinot/issues/6978

Added end-to-end tests for different kinds of queries (including query rewrite operations, compile time invocation, etc.)
As explained in the design doc, 2 kinds of output formats are supported (tabular and non-tabular).

TODOs:

Add support for queries that use StarTree index.
Add support for stretch goal outlined in the design doc.

Thanks for the PR. can you provide read-only access for everyone by default?

Thanks for the PR. can you provide read-only access for everyone by default?

Unfortunately, I created the document using my LinkedIn account so it won't let me share access by default. I will give commenter access when people request.

Thanks for the PR. can you provide read-only access for everyone by default?

Unfortunately, I created the document using my LinkedIn account so it won't let me share access by default. I will give commenter access when people request.

Can you please use your personal account to recreate and reshare the link.

I will review the design doc once I get the access. High level comment.
This is a lot of code and it looks like we are creating a completely different code path for explain. This can get outdated and out of sync. We should have extended the operator interface to add explain implementation.
I will review the design doc and add more comments. But please hold off on merging this

@kishoreg  We had shared the design doc a month ago on the mailing list and then proceeded with implementation.
Vast majority of LOCs are coming from exhaustive functional test class file.
Please spend some time reviewing. Happy to address feedback. We can also meet to discuss.

@kishoreg we have had PRs before that needed cleanups later. JSON support and Range index support comes to mind. https://github.com/apache/pinot/pull/5240. I am sure there are others where we added support so that it satisfies a need now, and we clean up things under the hood later. Some of them are still pending (and that is ok, people will get to it when they can). In fact, in some cases the design documents came in after the first PR (and/or was not circulated widely). But we have allowed it in the past with some understanding  that the feature was a timely one for the community.
In this case, a design document was floated appropriately along with the issue, and a month's time was provided for the community to provide feedback. The phasing of the project was also clearly mentioned in there.
We know that a cleanup is needed. It is also clear that @siddharthteotia  has committed to do the cleanup (and also in a timely manner). I think we should avoid blocking PRs in such cases.

@mcvsubbu the two implementations are very different and I would not consider that as clean up. This is introducing a very different way of implementing Explain and is not along the lines of the final implementation. What are we gaining by adding a lot of code that will be deleted later?
I understand that there was a lot of effort involved by the intern to implement this. I am happy to sit down and help implement it the right way.

Late to this discussion. I have the same question on why additional constructs are needed under explain package. Shouldn't it be easier to send a bit along with the request to the servers for skipping the execution and just collecting the stats back to the broker?
@chenboat wrote a proposal on this earlier this year. I'm curious to see his thoughts on this.
Lastly, can you grant access to the design doc? I requested the access a couple of days ago.

Late to this discussion. I have the same question on why additional constructs are needed under explain package. Shouldn't it be easier to send a bit along with the request to the servers for skipping the execution and just collecting the stats back to the broker?

The server-side implementation is currently being worked on, but given the large potential scope of the EXPLAIN plan functionality (logical plan, physical plan, run-time costs, plus possible profiling information), I don't think that even the server-side implementation would be considered close to "done" in any sense. IMHO, the best case scenario is probably a BETA cut that should be integrated into the codebase (possibly under an execution flag) sooner than later so that we can start iterating upon it. Anything that is merged at this point will drastically change if / when we get to the point of sending EXPLAIN query to all the servers for collecting profiling cost information, etc.

Thanks for the PR. can you provide read-only access for everyone by default?

Unfortunately, I created the document using my LinkedIn account so it won't let me share access by default. I will give commenter access when people request.

Can you please use your personal account to recreate and reshare the link.

+1, please reshare a link from an account that has read access for all (by default).

Update - We had met and discussed that directly doing phase 2 work outlined in the design doc is better. So we are reworking the PR (most likely will send new PR and close this).
Let me see if I can open the current document for comment access to all. If no luck, I will copy the document to a new one and share from my gmail account.


Switch to JSON as the "canonical" format

This also includes a converter to convert both to Bocfel's runtime patch format as well as to a compile-time format for a potential future release of Bocfel (C++ code to slot into the patches.cpp file).
Usage:
convert --mode bocfel-runtime
convert --mode bocfel-compiletime

Output is to stdout.

Does json-with-comments have its own file extension? I think that would reduce confusion.

I'm not sure there's anything universal.  Vim/neovim understand .jsonc as JSON-with-comments, but (for example) Visual Studio Code uses .json for its configuration files, even though they support comments.
I'm open to anything which makes the most sense; this is still experimental.  Heck, I'm open to a format that's not JSON: I just defaulted to it since it's basically the de facto human-readable serialization format, even with its drawbacks.

Maybe it doesn't matter. It's likely to only be used during a build step where, for example, we wouldn't be limited by a browser's JSON parser not supporting comments.


how to use List alerts method in azure-mgmt-security package?

I want to list azure security center alerts by using azure-mgmt-security package, but I don't know how to configure the AlertsOperations() methods, could you please give me some guides? Thank you.
Here is my code:
from azure.mgmt.security.operations import alerts_operations

#I don't know how to configure AlertsOperations method
client = alerts_operations.AlertsOperations()
client.list()

Hi @imeya
You don't create directly this object, you create a client first:
from azure.mgmt.security import SecurityCenter

client = SecurityCenter(credentials, subscription_id, asc_location="centralus")
client.alerts.list() # Returns an iterable object, use a list() if you want it as a list

For more details on how to create a credentials class, please refer to this doc:
https://docs.microsoft.com/python/azure/python-sdk-azure-authenticate
Thanks,


安装过程中报错

在an zhuang guo ch安装过程中，报错
Traceback (most recent call last):
File "/Users/zhanglin/Documents/tools/Curve_bak/Curve/venv/bin/swagger_py_codegen", line 5, in
from swagger_py_codegen import generate
File "/Users/zhanglin/Documents/tools/Curve_bak/Curve/venv/lib/python2.7/site-packages/swagger_py_codegen/init.py", line 4, in
from .command import generate
File "/Users/zhanglin/Documents/tools/Curve_bak/Curve/venv/lib/python2.7/site-packages/swagger_py_codegen/command.py", line 15, in
from .flask import FlaskGenerator
File "/Users/zhanglin/Documents/tools/Curve_bak/Curve/venv/lib/python2.7/site-packages/swagger_py_codegen/flask.py", line 6, in
from .jsonschema import Schema, SchemaGenerator, build_default
File "/Users/zhanglin/Documents/tools/Curve_bak/Curve/venv/lib/python2.7/site-packages/swagger_py_codegen/jsonschema.py", line 6, in
from .parser import schema_var_name
File "/Users/zhanglin/Documents/tools/Curve_bak/Curve/venv/lib/python2.7/site-packages/swagger_py_codegen/parser.py", line 5, in
import dpath.util
File "/Users/zhanglin/Documents/tools/Curve_bak/Curve/venv/lib/python2.7/site-packages/dpath/util.py", line 1, in
from collections.abc import MutableMapping
ImportError: No module named abc
但是colleciton.abc不是python3才支持的吗？

也许应该调整下 swagger_py_codegen 的版本？

I had same issue... as a hacky fix I changed the import statement in Curve/venv/lib/python2.7/site-packages/dpath/util.py
from
from collections.abc import MutableMapping
from collections.abc import MutableSequence

to
try:
    from collections.abc import MutableMapping
    from collections.abc import MutableSequence
except ImportError:
    from collections import MutableMapping
    from collections import MutableSequence

and it seems to work.

也许应该调整下 swagger_py_codegen 的版本？

I've submitted a pull request, adding dpath==1.5.0 as an explicit requirement.


chore: Actually Use the New Logo, Fix Text Field Display

Codecov Report

Merging #20 (bf82f69) into main (e5159f3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #20   +/-   ##
=======================================
  Coverage   80.40%   80.40%
=======================================
  Files          14       14
  Lines         638      638
=======================================
  Hits          513      513
  Misses        125      125

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 e5159f3...bf82f69. Read the comment docs.


Add CHANGELOG

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#3  👈 (View in Graphite)
#2
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Merge activity

Dec 1, 10:43 AM EST: The merge label 'merge-queue' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


Strong named assembly

Can we release a strongly named nuget package, so that other packages that are strongly named can use this. For now in Titanium Web Proxy someone have published a strongly named version of this library. Not sure if its official.

CloudVeil.BrotliSharpLib is the nuget package we are currently using which just strongly names this package assembly. I have security concern if its not an official build from this project.

Done, see PR #6 which adds a strong name key.


(love) Just to tell you how great your software is

Is this a regression?
No
Description
The real issue is maybe that opensource developers don't receive enough gratification.
Thanks to you, creator can build better software
Have a nice day =)
Please provide a link to a minimal reproduction of the bug
No response
Please provide the exception or error you saw
No response
Please provide the environment you discovered this bug in
No response
Anything else?
No response
Do you want to create a pull request?
No

Thanks @aleluff that was fun reading and much appreciated ❤

<3


Spotify Web API Typings - Import them / Sync them

Is your feature request related to a problem? Please describe.
This repo contains a copy of the typings for the Spotify's Web API endpoints. It quickly gets out of date (eg I made some changes in this repo but didn't synchronize them with the typings on DefinitelyTyped. Wherever they are, these typings also need to be tested.
Describe the solution you'd like

Move the typings away from this repo, to slim it down and avoid sync issues.

Describe alternatives you've considered

Do we need to have them locally?
Can we fetch them from DefinitelyTyped somehow? Would that increase the size of the package?

Additional context

Do you mean these typings? https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/spotify-api/

@omarryhan exactly!


What's the meaning of mode in preprocess.py?

Thank you for sharing the code. Now I want to use your code to retrain on my dataset. but I got a problem
    if args.mode == 1:         all_data = pool.map(tensorize, batches)     elif args.mode == 2:         all_data = pool.map(dual_tensorize, batches)     elif args.mode == 0:         all_data = pool.map(zero_tensorize, batches)
When running preprocess.py, need to provide mode. What are the functions of these three modes?

which the batch size should be set? there are two batch size in you code. first one is in preprocess.py, second is in gnn_train.py. The default batch_size is 15 and 16. My dataset contains 1 million molecules. Should I keep the default batch size?
Thanks!

Hi,
The mode option has become obsolete. Mode == 1 means to select one subgraph from the compound. Mode == 2 means to select two disconnected subgraphs from the compound. In the final version of our paper, we decided to use always use mode == 1.
Regarding batch_size, the batch_size in gnn_train.py doesn't matter. The batch_size is set only in preprocess.py. I will remove the batch_size option from gnn_train.py to avoid confusion. Thank you for point these out :-)

Thanks for your answer~ In your article, how is REINVENT evaluated? Because in REINVENT, there is also a scoring function used in training. The success rate obtained by different training steps will be very different. How do you choose the evaluation in the article? ? If possible, can the subject provide you with the code in this ？ (I have already emailed my question to you~)


Dashrews/ROX-13131 network flow walk needs cluster

Description
The stores for network flows are based on cluster.  Meaning each cluster has its own instance of the store.  The walkStmt did not have the cluster ID as a query criteria.  It needs to have that added, otherwise each store when utilizing the walkStmt would see all flows for all clusters instead of only all flows for its cluster.  This should reduce the number of flows returned and allow the query to utilize at least one index when it is executed.
Checklist

[x] Investigated and inspected CI test results
[x] Unit test and regression tests added
~- [ ] Evaluated and added CHANGELOG entry if required~
~- [ ] Determined and documented upgrade steps~
~- [ ] Documented user facing changes (create PR based on [openshift/openshift-docs]~(https://github.com/openshift/openshift-docs) and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Added UT.
In addition to reviewing your code, reviewers must also review your testing
instructions and make sure they are sufficient.

Adding the cluster id to the query allowed the analyzer to use the index on clusterid when it determines it makes sense to use the cluster id index.

Node
Rows
Loops

| 1. | Nested Loop Inner Join (rows=3 loops=1)Join Filter: ((nf.props_srcentity_type = network_flows.props_srcentity_type) AND ((nf.props_srcentity_id)::text = (network_flows.props_srcentity_id)::text) AND (nf.props_dstentity_type = network_flows.props_dstentity_type) AND ((nf.props_dstentity_id)::text = (network_flows.props_dstentity_id)::text) AND (nf.props_dstport = network_flows.props_dstport) AND (nf.props_l4protocol = network_flows.props_l4protocol) AND (nf.flow_id = (max(network_flows.flow_id)))) | 3 | 1
  | 2. | Index Scan using network_flows_cluster on network_flows as nf (rows=33 loops=1)Index Cond: ((clusterid)::text = '43'::text) | 33 | 1
  | 3. | Aggregate (rows=3 loops=33) | 3 | 33
  | 4. | Sort (rows=33 loops=33) | 33 | 33
  | 5. | Index Scan using network_flows_cluster on network_flows as network_flows (rows=33 loops=1)Index Cond: ((clusterid)::text = '43'::text) | 33 | 1

  Without the cluster id:

1.
Merge Inner Join (rows=100000 loops=1)Join Filter: ((nf.props_srcentity_type = network_flows.props_srcentity_type) AND ((nf.props_srcentity_id)::text = (network_flows.props_srcentity_id)::text) AND (nf.props_dstentity_type = network_flows.props_dstentity_type) AND ((nf.props_dstentity_id)::text = (network_flows.props_dstentity_id)::text) AND (nf.props_dstport = network_flows.props_dstport) AND (nf.props_l4protocol = network_flows.props_l4protocol) AND ((nf.clusterid)::text = (network_flows.clusterid)::text))
100000
1

2.
Index Scan using network_flows_pkey on network_flows as nf (rows=1100000 loops=1)
1100000
1

3.
Materialize (rows=100000 loops=1)
100000
1

4.
Sort (rows=100000 loops=1)
100000
1

5.
Aggregate (rows=100000 loops=1)
100000
1

6.
Gather Merge (rows=100000 loops=1)
100000
1

7.
Aggregate (rows=33333 loops=3)
33333
3

8.
Sort (rows=366667 loops=3)
366667
3

9.
Seq Scan on network_flows as network_flows (rows=366667 loops=3)
366667
3


Cooling Threshold Temperature AND Total Consumption error

Describe The Bug:
Warnings in the logs every minute:
This plugin generated a warning from the characteristic 'Cooling Threshold Temperature': characteristic was supplied illegal value: number 17.8 exceeded minimum of 18.
This plugin generated a warning from the characteristic 'Total Consumption': characteristic value expected valid finite number and received "NaN" (number).
Expected behavior:
I think I am not supposed to get any "Total Consumption" value.
Logs:
[4/6/2023, 9:44:42 AM] [LGThinQ] [request] post https://aic.lgthinq.com:46030/api/rti/rtiMon
[4/6/2023, 9:44:42 AM] [LGThinQ] Restoring existing accessory: d27b65d0-7149-11d3-80ad-0051ed8f7866: Chambre (AC RAC_056905)
[4/6/2023, 9:44:42 AM] [homebridge-lg-thinq] This plugin generated a warning from the characteristic 'Cooling Threshold Temperature': characteristic was supplied illegal value: number 17.8 exceeded minimum of 18. See https://homebridge.io/w/JtMGR for more info.
[4/6/2023, 9:44:42 AM] [homebridge-lg-thinq] Error:
    at CoolingThresholdTemperature.Characteristic.characteristicWarning (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:3011:105)
    at CoolingThresholdTemperature.Characteristic.validateUserInput (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2923:14)
    at CoolingThresholdTemperature.Characteristic.updateValue (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2328:20)
    at HeaterCooler.Service.updateCharacteristic (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Service.ts:795:35)
    at AC.updateAccessoryCharacteristic (/usr/lib/node_modules/homebridge-lg-thinq/src/devices/AirConditioner.ts:226:20)
    at LGThinQHomebridgePlatform.discoverDevices (/usr/lib/node_modules/homebridge-lg-thinq/src/platform.ts:166:21)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
[4/6/2023, 9:44:42 AM] [homebridge-lg-thinq] This plugin generated a warning from the characteristic 'Heating Threshold Temperature': characteristic was supplied illegal value: number 17.8 exceeded minimum of 18. See https://homebridge.io/w/JtMGR for more info.
[4/6/2023, 9:44:42 AM] [homebridge-lg-thinq] Error:
    at HeatingThresholdTemperature.Characteristic.characteristicWarning (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:3011:105)
    at HeatingThresholdTemperature.Characteristic.validateUserInput (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2923:14)
    at HeatingThresholdTemperature.Characteristic.updateValue (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2328:20)
    at HeaterCooler.Service.updateCharacteristic (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Service.ts:795:35)
    at AC.updateAccessoryCharacteristic (/usr/lib/node_modules/homebridge-lg-thinq/src/devices/AirConditioner.ts:227:20)
    at LGThinQHomebridgePlatform.discoverDevices (/usr/lib/node_modules/homebridge-lg-thinq/src/platform.ts:166:21)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
[4/6/2023, 9:44:42 AM] [homebridge-lg-thinq] This plugin generated a warning from the characteristic 'Total Consumption': characteristic value expected valid finite number and received "NaN" (number). See https://homebridge.io/w/JtMGR for more info.
[4/6/2023, 9:44:42 AM] [homebridge-lg-thinq] Error:
    at Characteristic.characteristicWarning (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:3011:105)
    at Characteristic.validateUserInput (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2903:14)
    at Characteristic.updateValue (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2328:20)
    at HeaterCooler.Service.updateCharacteristic (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Service.ts:795:35)
    at AC.updateAccessoryCharacteristic (/usr/lib/node_modules/homebridge-lg-thinq/src/devices/AirConditioner.ts:255:18)
    at LGThinQHomebridgePlatform.discoverDevices (/usr/lib/node_modules/homebridge-lg-thinq/src/platform.ts:166:21)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
[4/6/2023, 9:44:42 AM] [LGThinQ] Start MQTT listener for thinq2 device
[4/6/2023, 9:44:42 AM] [LGThinQ] [request] get https://common.lgthinq.com/route
[4/6/2023, 9:44:43 AM] [LGThinQ] [request] get https://www.amazontrust.com/repository/AmazonRootCA1.pem
[4/6/2023, 9:44:43 AM] [LGThinQ] [request] post https://aic-service.lgthinq.com:46030/v1/service/users/client
[4/6/2023, 9:44:43 AM] [LGThinQ] [request] post https://aic-service.lgthinq.com:46030/v1/service/users/client/certificate
[4/6/2023, 9:44:43 AM] [LGThinQ] open mqtt connection to ssl://a3phael99lf879-ats.iot.us-west-2.amazonaws.com:8883
[4/6/2023, 9:44:43 AM] [LGThinQ] Start polling device data every 60 second.
[4/6/2023, 9:44:44 AM] [LGThinQ] Successfully connected to the MQTT server.
[4/6/2023, 9:44:44 AM] [LGThinQ] mqtt connected: ssl://a3phael99lf879-ats.iot.us-west-2.amazonaws.com:8883

...

[4/6/2023, 9:47:44 AM] [LGThinQ] [request] post https://aic.lgthinq.com:46030/api/rti/rtiResult
[4/6/2023, 9:47:44 AM] [LGThinQ] [Chambre] Received snapshot:  {"airState.opMode":4,"airState.operation":false,"airState.tempState.current":19,"airState.tempState.target":23,"airState.windStrength":8,"airState.wDir.vStep":4,"airState.wDir.hStep":0,"airState.circulate.rotate":0,"airState.lightingState.signal":0,"airState.quality.overall":0,"airState.quality.sensorMon":0,"airState.quality.PM1":0,"airState.quality.PM2":0,"airState.quality.PM10":0,"airState.wMode.jet":0,"airState.humidity.current":0,"online":true,"raw":{"Operation":"0","OpMode":"4","WindStrength":"8","TempUnit":"NS","TempCur":"19","TempCfg":"23","GroupType":"1","SleepTime":"0","OnTime":"0","OffTime":"0","RacAddFunc":"NS","ExtraOp":"0","DiagCode":"00","TimeBsOn":"0","TimeBsOff":"0","AirClean":"0","AutoDry":"0","PowerSave":"0","WDirVStep":"4","WDirHStep":"0","TempLimitMax":"0","TempLimitMin":"0","DuctZoneType":"0","ZoneControl":"0","DRED":"0","SensorPM1":"0","SensorPM2":"0","SensorPM10":"0","AirPolution":"0","HumidityCfg":"0","WaterTempCoolMin":"0","WaterTempCoolMax":"0","WaterTempHeatMin":"0","WaterTempHeatMax":"0","HotWaterTempMin":"0","HotWaterTempMax":"0","SensorHumidity":"0","TotalAirPolution":"0","SensorMon":"0","CleanDry":"0","ProductStatus":"0","AirMonitoring":"0","Humidification":"0","AirFast":"0","AirRemoval":"0","AirUVDisinfection":"0","WatertankLight":"0","SignalLighting":"0","WDirUpDown":"0","WDirLeftRight":"0","WSwirl":"0","Jet":"0","LowHeating":"0","CirculateStrength":"0","CirculateDir":"0","AntiBugs":"0","IceValley":"0","Humsave":"0","WaterTempCur":"0","HotWaterTempCur":"0","HotWaterTempCfg":"0","HotWaterMode":"0","HotWater":"0","AWHPTempCfgSwitch":"0","AirTempCoolMin":"0","AirTempCoolMax":"0","AirTempHeatMin":"0","AirTempHeatMax":"0","WaterInTempCur":"0","AWHPWATempControlSta":"0","DisplayControl":"0","SmartCare":"0","TwoSetCoolTemp":"0","TwoSetHeatTemp":"0","TwoSetCoolUSL":"0","TwoSetCoolLSL":"0","TwoSetHeatUSL":"0","TwoSetHeatLSL":"0","TwoSetACOState":"0","TwoSetModeDeadband":"0","TwoSetState":"0"}}
[4/6/2023, 9:47:44 AM] [homebridge-lg-thinq] This plugin generated a warning from the characteristic 'Total Consumption': characteristic value expected valid finite number and received "NaN" (number). See https://homebridge.io/w/JtMGR for more info.
[4/6/2023, 9:47:44 AM] [homebridge-lg-thinq] Error:
    at Characteristic.characteristicWarning (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:3011:105)
    at Characteristic.validateUserInput (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2903:14)
    at Characteristic.updateValue (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2328:20)
    at HeaterCooler.Service.updateCharacteristic (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Service.ts:795:35)
    at AC.updateAccessoryCharacteristic (/usr/lib/node_modules/homebridge-lg-thinq/src/devices/AirConditioner.ts:255:18)
    at AC.update (/usr/lib/node_modules/homebridge-lg-thinq/src/baseDevice.ts:33:10)
    at EventEmitter.emit (node:events:513:28)
    at Timeout._onTimeout (/usr/lib/node_modules/homebridge-lg-thinq/src/platform.ts:234:27)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

Plugin Config:
{
            "username"<EMAIL_ADDRESS>            "password": "************",
            "country": "CA",
            "language": "fr-CA",
            "thinq1": true,
            "washer_trigger": true,
            "platform": "LGThinQ",
            "auth_mode": "token",
            "refresh_interval": 60,
            "refresh_token": ".*****************",
            "devices": [
                {
                    "id": "18469e1f-677d-121e-8b90-acf1080de89e",
                    "name": "Sécheuse",
                    "type": "DRYER",
                    "washer_door_lock": true
                },
                {
                    "id": "4be2e05b-b106-197f-9059-f8b95aab73df",
                    "name": "Laveuse",
                    "type": "WASHER",
                    "washer_door_lock": true
                },
                {
                    "id": "78983aaa-12ba-1088-8803-44cb8b2bc993",
                    "name": "Lili-Ambre",
                    "type": "AC",
                    "ac_mode": "BOTH",
                    "ac_temperature_sensor": false,
                    "ac_humidity_sensor": false
                },
                {
                    "id": "d27b65d0-7149-11d3-80ad-0051ed8f7866",
                    "name": "Chambre",
                    "type": "AC",
                    "ac_mode": "BOTH",
                    "ac_temperature_sensor": false,
                    "ac_humidity_sensor": false
                }
            ]
        }

Environment:

Plugin Version: 1.4.0
Homebridge Version: 1.6.0
Node.js Version: v18.15.0
NPM Version: 9.5.0
Operating System: Raspbian

My temperature unit is in C.
My AC (thinq1) doesn't have consumption but my washing machine an dryer (thinq2) do.

I need your device data too, please look into it in debug logging, find something like this [LGThinQ] Device data: {xxxxxx}

[4/6/2023, 12:10:42 PM] [LGThinQ] [request] post https://aic.lgthinq.com:46030/api/member/login
[4/6/2023, 12:10:42 PM] [LGThinQ] [request] get https://ca.lgeapi.com/users/profile
[4/6/2023, 12:10:42 PM] [LGThinQ] Successfully connected to the ThinQ API.
[4/6/2023, 12:10:43 PM] [LGThinQ] [request] get https://aic-service.lgthinq.com:46030/v1/service/homes
[4/6/2023, 12:10:44 PM] [LGThinQ] [request] get https://aic-service.lgthinq.com:46030/v1/service/homes/162293412445268286
[4/6/2023, 12:10:44 PM] [LGThinQ] Device data:  {"modelAppType":"NUTS","brandType":"common","deviceId":"18469e1f-677d-121e-8b90-acf1080de89e","deviceType":202,"modelName":"RV13B6ES_D_US_WIFI","subModelNm":null,"sensorType":null,"alias":"Sécheuse","deviceCode":"LA03","networkType":"02","tftYn":"N","guideTypeYn":"Y","guideType":"TYPE2","pccModelYn":"N","autoOrderYn":"N","drServiceYn":"N","ssid":"Foirfouille","timezoneCode":"America/Montreal","timezoneCodeAlias":"USA/Montreal","sdsGuide":"{\"deviceCode\":\"LA03\"}","newRegYn":"N","remoteControlType":"","fareTarget":null,"area":"1365502","sleep":null,"deviceState":"E","rmsClientId":null,"regDtUtc":"20210719212943000","regIndex":0,"blackboxYn":"Y","groupableYn":"N","controllableYn":"N","combinedProductYn":"N","masterYn":"Y","snapshot":{"washerDryer":{"initialBit":"INITIAL_BIT_OFF","smartCare_onOff":"SMARTCARE_BUTTON_OFF","initialTimeMinute":1,"preState":"END","dnn_temp":"7","downloadedCourseDryer27inchBase":"SUPERDRY","energySaver":"ENERGYSAVER_OFF","error":"ERROR_NO","dryLevel":"NO_DRYLEVEL","dnn_precipitationProbability":"87","moreLessTime":0,"dnn_washingIndex":"30","dnnReady":"DNNREADY_OFF","smartCourseDryer27inchBase":"NOT_SELECTED","remainTimeHour":0,"state":"POWEROFF","reduceStatic":"REDUCESTATIC_OFF","wrinkleCare":"WRINKLECARE_OFF","temp":"NO_TEMP","antiBacterial":"ANTIBACTERIAL_OFF","loadItem":"LOADITEM_OFF","washingIndex":"30","AIDDLed":"AIDDLed_OFF","dnn_humidity":"96","dampDrySignal":"DAMPDRYSIGNAL_OFF","dnn_dust":"-","timeDry":"TIMEDRY_OFF","remainTimeMinute":1,"courseDryer27inchBase":"NOT_SELECTED","easyIron":"EASYIRON_OFF","childLock":"CHILDLOCK_OFF","remoteStart":"REMOTE_START_OFF","turboSteam":"TURBOSTEAM_OFF","initialTimeHour":0},"static":{"deviceType":"202","countryCode":"CA"},"meta":{"allDeviceInfoUpdate":true,"messageId":"GiM8weRMRUW7YspCG26gKA"},"mid":117049060,"online":true,"rules":{"wm_to_dryer_pairing_rule_02":{"lastTriggeredTime":1680628219325,"status":"INIT"}},"timestamp":1680745862381},"manufacture":null,"online":true,"platformType":"thinq2","homeDeviceOrder":1,"roomDeviceOrder":-1,"ownershipYn":"Y","modelJsonVer":"3.8","modelJsonUri":"https://objectcontent.lgthinq.com/d8599a26-ab3a-4a2c-85c0-61ebfe3afa59?hdnts=exp=1729749626~hmac=5855a41fe0708955ec4ac1893502f5c65d4a5f4b41705ffcb64dee1e964d6131","appModuleVer":"6.21","appModuleUri":"https://objectcontent.lgthinq.com/ea54eb02-d923-4bf8-b6b7-6cef48783849?hdnts=exp=1705894666~hmac=da9f0fcb47f96863814304ec250639c83e7b3b5400ff0e84e7be0162df4c2f6a","appRestartYn":"Y","appModuleSize":"10013123","langPackProductTypeVer":"114.0","langPackProductTypeUri":"https://objectcontent.lgthinq.com/bb356dfc-403f-4d6c-b8c9-d98c91bbc268?hdnts=exp=1743588926~hmac=0ab11fee61fbcff8410a101b9b2910fa8da6587e4b0aebe2703fbcdaa56626ca","langPackModelVer":"1.3","langPackModelUri":"https://objectcontent.lgthinq.com/ac718993-adae-4219-a179-e351ece3258d?hdnts=exp=1726567219~hmac=1bb025373d60e1bb9d3b1084cce8b161b303f5747b810f61c8c868b2bacf8f1e","roomId":"162678510145854168","fwInfoList":[{"checksum":"0000A5BB","order":2,"partNumber":"SAA38964409"},{"checksum":"0000AAD7","order":1,"partNumber":"SAA38964306"}],"modemInfo":{"appVersion":"clip_hna_v1.9.183","modelName":"RV13B6ES_D_US_WIFI","modemType":"QCOM_QCA4010","ruleEngine":"y"},"existsEntryPopup":"N","fwVer":null,"modemVer":"clip_hna_v1.9.069","subDeviceCount":0,"firebaseLogKey":"T:DR-S:27-U:0-P:VICTOR2","cardType":"Small","cardControl":"Base","detailDeviceCode":null,"upgradableYn":"N","autoFwDownloadYn":"N","homeMovableYn":"Y"}
[4/6/2023, 12:10:44 PM] [LGThinQ] [Sécheuse] Setting up device!
[4/6/2023, 12:10:44 PM] [LGThinQ] Restoring existing accessory: 18469e1f-677d-121e-8b90-acf1080de89e: Sécheuse (DRYER RV13B6ES_D_US_WIFI)
[4/6/2023, 12:10:44 PM] [LGThinQ] Device data:  {"modelAppType":"NUTS","brandType":"common","deviceId":"4be2e05b-b106-197f-9059-f8b95aab73df","deviceType":201,"modelName":"F3L7CYK5W_US_WIFI","subModelNm":null,"sensorType":null,"alias":"Laveuse","deviceCode":"LA02","networkType":"02","tftYn":"N","guideTypeYn":"Y","guideType":"TYPE2","pccModelYn":"N","autoOrderYn":"N","drServiceYn":"N","ssid":"Foirfouille","timezoneCode":"America/Montreal","timezoneCodeAlias":"USA/Montreal","sdsGuide":"{\"deviceCode\":\"LA02\"}","newRegYn":"N","remoteControlType":"","fareTarget":null,"area":"1365502","sleep":null,"deviceState":"D","rmsClientId":null,"regDtUtc":"20220227142355000","regIndex":0,"blackboxYn":"Y","groupableYn":"N","controllableYn":"N","combinedProductYn":"N","masterYn":"Y","snapshot":{"washerDryer":{"initialTimeMinute":0,"preState":"SPINNING","dnn_temp":"7","downloadedCourseFLUpper25inchBaseUS":"HALF_LOAD_WASH","drumLight":"DRUMLIGHT_OFF","addGarment":"ADDGARMENT_OFF","dnn_precipitationProbability":"87","dnn_washingIndex":"30","autoSoak":"AUTOSOAK_OFF","remainTimeHour":0,"opCourseFLUpper25inchBaseUS":"NOT_SELECTED","preWash":"PREWASH_OFF","apCourseFLUpper25inchBaseUS":"NOT_SELECTED","state":"END","modelHeater":"MODELHEATER_OFF","dnn_humidity":"96","freshCare":"FRESHCARE_OFF","extraRinse":"EXTRARINSE_OFF","turboWash":"TURBOWASH_OFF","remainTimeMinute":1,"delay":"DELAY_OFF","ledDataView":"LEDDATAVIEW_OFF","childLock":"CHILDLOCK_OFF","remoteStart":"REMOTE_START_OFF","extraRinseCount":"NO_EXTRARINSE","favorite":"FAVORITE_OFF","rinseSpin":"RINSE_SPIN_OFF","initialTimeHour":0,"initialBit":"INITIAL_BIT_OFF","error":"ERROR_NO","dryLevel":"NO_DRYLEVEL","washLoadDisplay":"WASHLOADDISPLAY_OFF","rinseCount":"NO_RINSE","steam":"STEAM_OFF","multiStain":"MULTISTAIN_OFF","temp":"NO_TEMP","reserveTimeMinute":0,"washingIndex":"30","TCLCount":19,"waterPlus":"WATERPLUS_OFF","smartGridEnable":"SMARTGRIDENABLE_OFF","saveEnergy":"SAVEENERGY_OFF","dnn_dust":"-","reserveTimeHour":0,"doorClose":"DOORCLOSE_ON","spin":"NO_SELECT","soilWash":"NO_SOILWASH","coldWash":"COLDWASH_OFF","loadLevel":0},"fwUpgradeInfo":{"upgSched":{"upgUtc":"0","cmd":"none"}},"static":{"deviceType":"201","countryCode":"CA"},"meta":{"allDeviceInfoUpdate":false,"messageId":"wm_to_dryer_pairing_rule_01|4be2e05b-b106-197f-9059-f8b95aab73df"},"mid":29290752,"online":false,"rules":{"wm_to_dryer_pairing_rule_01":{"lastTriggeredTime":1680621162275,"status":"INIT"}},"timestamp":1680621162177},"manufacture":null,"online":false,"platformType":"thinq2","homeDeviceOrder":2,"roomDeviceOrder":-1,"ownershipYn":"Y","modelJsonVer":"12.2","modelJsonUri":"https://objectcontent.lgthinq.com/4f8b0408-72de-449f-93be-52b31f63a5b4?hdnts=exp=1711414836~hmac=d0e1e26468512cdec82885ee0f3ba2e87eaf0dde92848f873248a8d5445e78ce","appModuleVer":"6.21","appModuleUri":"https://objectcontent.lgthinq.com/ea54eb02-d923-4bf8-b6b7-6cef48783849?hdnts=exp=1705894666~hmac=da9f0fcb47f96863814304ec250639c83e7b3b5400ff0e84e7be0162df4c2f6a","appRestartYn":"Y","appModuleSize":"10013123","langPackProductTypeVer":"114.0","langPackProductTypeUri":"https://objectcontent.lgthinq.com/bb356dfc-403f-4d6c-b8c9-d98c91bbc268?hdnts=exp=1743588926~hmac=0ab11fee61fbcff8410a101b9b2910fa8da6587e4b0aebe2703fbcdaa56626ca","langPackModelVer":"6.1","langPackModelUri":"https://objectcontent.lgthinq.com/08e804c1-914b-4ef4-aafd-e0e7999a03f4?hdnts=exp=1702965614~hmac=f7fb3aca35ea7156698027c010e00175428ef37f297ef77058457c43edfd8cf6","roomId":"162678510145854168","fwInfoList":[{"checksum":"000047E3","order":2,"partNumber":"SAA41477201"},{"checksum":"0000E8F9","order":1,"partNumber":"SAA41477101"}],"modemInfo":{"appVersion":"clip_hna_v1.9.183","modelName":"F3L7CYK5W_US_WIFI","modemType":"RTK_RTL8711am","oneshot":"y","ruleEngine":"y","size":1572864},"existsEntryPopup":"N","fwVer":null,"modemVer":"clip_hna_v1.9.138","subDeviceCount":0,"firebaseLogKey":"T:FL-S:27-U:4.5-P:VICTOR2","cardType":"Small","cardControl":"Base","detailDeviceCode":null,"upgradableYn":"N","autoFwDownloadYn":"N","homeMovableYn":"Y"}
[4/6/2023, 12:10:44 PM] [LGThinQ] [Laveuse] Setting up device!
[4/6/2023, 12:10:44 PM] [LGThinQ] Restoring existing accessory: 4be2e05b-b106-197f-9059-f8b95aab73df: Laveuse (WASHER F3L7CYK5W_US_WIFI)
[4/6/2023, 12:10:44 PM] [LGThinQ] Device data:  {"modelAppType":"NUTS","brandType":"common","deviceId":"78983aaa-12ba-1088-8803-44cb8b2bc993","deviceType":401,"modelName":"RAC_056905_WW","subModelNm":null,"sensorType":null,"alias":"Lili-Ambre","deviceCode":"AI01","networkType":"02","tftYn":"N","guideTypeYn":"Y","guideType":"RAC_TYPE1","pccModelYn":"N","autoOrderYn":"N","drServiceYn":"N","ssid":"Foirfouille","timezoneCode":"America/Montreal","timezoneCodeAlias":"USA/Montreal","sdsGuide":"{\"deviceCode\":\"AI01\"}","newRegYn":"N","remoteControlType":"","fareTarget":null,"area":"1365502","sleep":null,"deviceState":"E","rmsClientId":null,"regDtUtc":"20210811191513000","regIndex":0,"blackboxYn":"Y","groupableYn":"Y","controllableYn":"Y","combinedProductYn":"N","masterYn":"Y","snapshot":{"airState.windStrength":8,"airState.wMode.lowHeating":0,"airState.diagCode":0,"airState.lightingState.displayControl":0,"airState.wDir.hStep":0,"mid":1954478325,"airState.energy.onCurrent":0,"airState.wMode.airClean":0,"airState.quality.sensorMon":0,"airState.miscFuncState.antiBugs":0,"airState.tempState.target":23,"airState.miscFuncState.autoDryRemainTime":0,"airState.operation":0,"airState.wMode.jet":0,"airState.wDir.vStep":4,"timestamp":1680795288681,"airState.powerSave.basic":0,"airState.quality.PM10":0,"static":{"deviceType":"401","countryCode":"CA"},"airState.quality.overall":0,"airState.tempState.current":20.5,"airState.miscFuncState.extraOp":0,"airState.reservation.sleepTime":0,"airState.miscFuncState.autoDry":0,"airState.reservation.targetTimeToStart":0,"meta":{"allDeviceInfoUpdate":false,"messageId":"htJZjc1cSVSoYY8ct88LOw"},"airState.quality.PM1":0,"airState.quality.PM2":0,"online":true,"airState.opMode":4,"airState.reservation.targetTimeToStop":0,"airState.filterMngStates.maxTime":360,"airState.filterMngStates.useTime":92},"manufacture":null,"online":true,"platformType":"thinq2","homeDeviceOrder":3,"roomDeviceOrder":1,"ownershipYn":"Y","modelJsonVer":"12.43","modelJsonUri":"https://objectcontent.lgthinq.com/cd770c22-dab6-47e2-835a-3893a3846202?hdnts=exp=1741748288~hmac=27ad22455a3fb48aef362f5b3d1c84f9af48c859f18d6b73ba9d775a1ac0b135","appModuleVer":"17.78","appModuleUri":"https://objectcontent.lgthinq.com/6f9e5106-2098-4fff-8382-44224a29519d?hdnts=exp=1701394617~hmac=5b9c7381ced9740f199fbe379f86226fcb0dd261953164fbfed15b0d1bf63b7e","appRestartYn":"Y","appModuleSize":"12867303","langPackProductTypeVer":"78.1","langPackProductTypeUri":"https://objectcontent.lgthinq.com/455be37c-af0d-4790-a967-9b4bbe284da4?hdnts=exp=1737856580~hmac=d44560be55354e0ae678e6d526ab1130d65a4e557090055ac895f08c931e503f","langPackModelVer":null,"langPackModelUri":null,"roomId":"162870878003763337","fwInfoList":[{"checksum":"00006692","order":1,"partNumber":"SAA38690428"}],"modemInfo":{"appVersion":"clip_hna_v1.9.188","modelName":"RAC_056905_WW","modemType":"QCOM_QCA4010","ruleEngine":"y"},"existsEntryPopup":"N","fwVer":null,"modemVer":"clip_hna_v1.9.045","subDeviceCount":0,"firebaseLogKey":"P:SD","cardType":"Large","cardControl":"Control","detailDeviceCode":null,"upgradableYn":"N","autoFwDownloadYn":"N","homeMovableYn":"Y"}
[4/6/2023, 12:10:44 PM] [LGThinQ] [Lili-Ambre] Setting up device!
[4/6/2023, 12:10:44 PM] [LGThinQ] Restoring existing accessory: 78983aaa-12ba-1088-8803-44cb8b2bc993: Lili-Ambre (AC RAC_056905)
[4/6/2023, 12:10:44 PM] [LGThinQ] Device data:  {"modelAppType":"NUTS","brandType":"common","deviceId":"d27b65d0-7149-11d3-80ad-0051ed8f7866","deviceType":401,"modelName":"RAC_056905_CA","subModelNm":null,"sensorType":null,"alias":"Chambre","deviceCode":"AI01","networkType":"02","tftYn":"N","guideTypeYn":"Y","guideType":"","pccModelYn":"N","autoOrderYn":"N","drServiceYn":"N","ssid":"Foirfouille","timezoneCode":"America/Montreal","timezoneCodeAlias":"USA/Montreal","sdsGuide":"{\"deviceCode\":\"AI01\"}","newRegYn":"N","remoteControlType":"","fareTarget":null,"area":"1365502","sleep":null,"deviceState":"E","rmsClientId":null,"regDtUtc":"20210811185732000","regIndex":0,"blackboxYn":null,"groupableYn":"Y","controllableYn":"Y","combinedProductYn":"N","masterYn":"Y","manufacture":null,"online":false,"platformType":"thinq1","homeDeviceOrder":4,"roomDeviceOrder":1,"ownershipYn":"Y","modelJsonVer":"7.14","modelJsonUri":"https://aic.lgthinq.com:46030/api/webContents/modelJSON?modelName=modelJSON_401&countryCode=KR&contentsId=d27b65d0-7149-11d3-80ad-0051ed8f7866&authKey=thinq","appModuleVer":"17.78","appModuleUri":"https://objectcontent.lgthinq.com/6f9e5106-2098-4fff-8382-44224a29519d?hdnts=exp=1701394617~hmac=5b9c7381ced9740f199fbe379f86226fcb0dd261953164fbfed15b0d1bf63b7e","appRestartYn":"Y","appModuleSize":"12867303","langPackProductTypeVer":"78.1","langPackProductTypeUri":"https://objectcontent.lgthinq.com/455be37c-af0d-4790-a967-9b4bbe284da4?hdnts=exp=1737856580~hmac=d44560be55354e0ae678e6d526ab1130d65a4e557090055ac895f08c931e503f","langPackModelVer":"","langPackModelUri":"","roomId":"162870873159897473","fwInfoList":null,"modemInfo":null,"existsEntryPopup":"N","fwVer":"2.5.8_RTOS_3K","modemVer":null,"subDeviceCount":0,"firebaseLogKey":"P:SD","cardType":"Large","cardControl":"Control","detailDeviceCode":null,"upgradableYn":"N","autoFwDownloadYn":null,"homeMovableYn":"Y"}

please update to v1.4.1, hope it's worked

@Damien514 seem it's thinq 1 issue, I'll find a way to detect fahrenheit unit device on thinq 1, maybe add new plugin config

already fixed it in latest version, please update


UPDATE: whist core version

Requires https://github.com/Whist-Team/Whist-Core/pull/332

@iTitus I think your comment was done on outdated version.


Replace window.onresize and window.onscroll with window.addEventListener in tootips component

This change will eliminate the risk of the onresize and onscroll events being overridden by external scripts.

Completed.


[Tenra Bansho Zero Spanish] Enabling the approved sheet

Changes / Comments
This is just a commit to enable the spanish version of the Tenra Bansho Zero character and scene sheet. Seems like the sheet was approved and merged, but the manual process of adding it to the approved.yaml was skipped somehow.
Take into account that this is not a translation of the original sheet, as the spanish publisher really liked the idea of the players in Roll20 having the exact same experience than the tabletop players. The character sheet is presented as is in the manual.
Also, it included the scene sheet, which is not in the original character sheet.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[X] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[X] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

We typically don't have contributors update the approved.yaml file; we do that manually. For the sake of following processes, I am going to close this PR, but make sure I manually add this to the file myself. Sorry for the miss!

Thank you, Olivia!


Investigate tslint 4.5.0

https://github.com/palantir/tslint/blob/85e04000665db3140bd4b76fa7d71eb15360ea59/CHANGELOG.md

[x] Update package.json
[x] Adapt to new rules

Done.

Thank you @AyaMorisawa


Disable PointerEvents in Firefox until they work.

We previously only disabled them in tests for #6539, but #6372 indicates the problem may be more widespread.

Thanks for the pull request @mramato!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:

CC @ggetz If the users encountering this issue in #6372 get back to us in time, we should definitely merge this for the release.
If we don't hear back by release time, we can punt to next month.

Ready

Thanks again!


Extension method taking lambda parameter causes StackOverflow under certain conditions

Suppose we have the following class with an extension method:
import java.util.function.Function;

public class Extensions {

    public static Object apply(Object o, Function<Object, Object> f) {
        return f.apply(o);
    }
}

The following program causes a StackOverflowException:
import lombok.experimental.ExtensionMethod;

@ExtensionMethod({Extensions.class})
public class ExtensionUser {

    public static void main(String[] args) {
        m(args.apply(x -> x));
        m(args.apply(x -> x));
        m(args.apply(x -> x));
    }

    private static void m(Object s) { }
}

The error looks like this:

Error:java: Lombok annotation handler class lombok.javac.handlers.HandleExtensionMethod failed on \src\main\java\ExtensionUser.java: java.lang.StackOverflowError

There are several changes that can be made to prevent the exception from occurring:

remove one of the three invocations in the main method
pass a non-lambda argument into the extension method
remove the calls to the private method 'm'

Sorry that I could not reduce the example further.  I hope this helps.

I am having the same issue, but it seems it is not a lombok issue, rather a javac one: https://bugs.openjdk.java.net/browse/JDK-8145181
The issue is claimed to be resolved, but with javac 1.8.0_92 I am still able to reproduce it exactly as it is described in the ticket.
Unfortunately it is not possible to update the ticket now since the site is down for maintenance. Hopefully I will remember to update it later.
FYI, the error is
The system is out of resources.
Consult the following stack trace for details.
java.lang.StackOverflowError
        at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2295)
        at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1624)
        at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:575)
        at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2434)
        at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1624)
        at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:575

and so on

+1
Having the same issue here without lambdas, but only if I build my project with maven. Eclipse compiles just fine.
Strange thing is, there is no lambda expression anywhere near that code. Also the code worked fine for ages and started failing just now, when I changed some unrelated stuff in the same class.


NOTIFICATION_THEME_CHANGED is getting called when it shouldn't

Godot version
883bb2f4f657fa38da07efc1f04f35b5c8923120
System information
Windows 10
Issue description

See https://chat.godotengine.org/channel/devel?msg=J4SjAHxFmwZ7NHYqQ

When opening a project, NOTIFICATION_THEME_CHANGED consistently gets called 8 times (or at least on the FileSystemDock and ProjectExportDialog which were what I tested, and only in 3.x).
When running the project manager in 3.x, NOTIFICATION_THEME_CHANGED is only called 3 times in EditorAbout (although it doesn't get called at all in master because (maybe by mistake?) NOTIFICATION_THEME_CHANGED was removed from EditorAbout in master).
NOTIFICATION_THEME_CHANGED is also called when/right before an object is destroyed it seems (or at least when closing the editor).
My understanding is that  NOTIFICATION_THEME_CHANGED should only be called when the theme actually, uh, changes, which it probably shouldn't very often unless the user changes the editor theme.
Steps to reproduce
Insert a breakpoint in NOTIFICATION_THEME_CHANGED
Minimal reproduction project
No response

So the reason it's getting called 3 times is

For  case NOTIFICATION_ENTER_TREE
NOTIFICATION_THEME_CHANGED gets called in NOTIFICATION_ENTER_TREE
NOTIFICATION_THEME_CHANGE gets propagated to all children in add_child_notify

_propagate_theme is also used to set the theme_owner to nullptr, but there's no check if the node is being removed or added, which is why NOTIFICATION_THEME_CHANGED gets called when the control is removed

I understand why NOTIFICATION_THEME_CHANGED is called so often in master, but I haven't looked into why it's getting called so much more often in 3.x (8 times instead of 3). For whatever reason the control's theme is emitting changed several times, calling _theme_changed, which is what is causing all the extra notifications.


Restrict permission to internal owner (contract) instead of external owner (deployer)

🎉 Description
I have several places in the code, where calling an external function should be permitted only to some other contract. Typically, that contract holds (or has a reference to) the contract which implements the external function. Of course, if a reference (address or interface) is used, then there can be several contracts holding the contract which implements the external function.

[x] 📈 This is a feature request.

💻 Environment
I am using Truffle + Ganache on Windows, but this feature request is generally platform-agnostic.
📝 Details:
I have implemented this feature, and thought it might be appropriate for you to add it too.
My naming conventions are:

'owner' - deployer of the contract (same definition as yours)
'user' - some other contract

I have named this module 'Callable', since it supports both 'owner' and 'user', to which I refer by the general term 'caller':
contract Callable is Claimable {
    mapping (address => bool) public users;

    /**
     * @dev This method adds the given address to the list of `users`.
     */
    function addUser(address user) external onlyOwner {
        users[user] = true;
    }

    /**
     * @dev This method removes the given address from the list of `users`.
     */
    function remUser(address user) external onlyOwner {
        users[user] = false;
    }

    /**
     * @dev Throws an exception if called by any contract other than one of the `users`.
     */
    modifier onlyUsers() {
        require(users[msg.sender]);
        _;
    }
}

Thanks

You can see a similar version of this pattern in RBAC.sol and RBACWithAdmin.sol, which allows for a variety of roles and restrictions. (it's pending a slight update in https://github.com/OpenZeppelin/zeppelin-solidity/pull/836)

closing as stale, but let us know if you want to chat about it more!


filesystem: only load paks with map name when testing if map name has valid map pak

Only load paks with map name when testing if map name has valid map pak (has bsp file with same name).
Also, only load legacy paks whatever the name when legacy paks are enabled instead of loading all paks whatever the name when legacy paks are enabled.

There do exist old maps with an underscore in the name, which means you can't rename the archive to match map-$NAME.dpk. E.g. pushcannon_b3a

I'm not sure to get your comment. There is no support for DPK map with underscore in name, only legacy maps support them.

If map-pushcannon_b3a.dpk exists, base name is map-pushcannon.
If map-pushcannon_b3a.pk3 exists, base name is map-pushcannon_b3a

Maybe you mean someone can't rename map-pushcannon_b3a.pk3 to map-pushcannon_b3a.dpk without renaming maps/pushcannon_b3a.bsp to maps/pushcannon.bsp (and related map files), this patch has no impact on this. This is already true, one cannot load from a dpk a bsp that has an underscore in its basename (because the map dpk base name can't have an underscore in its basename to begin with).

I rewrote some code because I noticed I must not compare pak basename has map-${name} prefix, but that pak basename is equal to map-${name}.

There is no support for DPK map with underscore in name

Yes there is. I can take the pushcannon pk3, rename it to e.g. map-pushcannon_zzz.dpk, and use it with devmap pushcannon_b3a.

Huu, I would consider such undocumented feature as a bug to begin with… I don't think we must take care of keeping this working. Such map is even not listable as client. There may be also ways to load aaa.bsp from map-bbb_0.dpk, I think that should be considered a bug.
There is a serious topic though: in the past games usually provided a large pk3 with all their maps in, without map- prefix (like pak0.pk3 (quake3), or xonotic-maps.pk3 (xonotic), and other variants). Do we want this to be supported with DPK? The purpose of enforcing the map- prefix was to not have to load the paks themselves to list maps, listing filesystem would be enough.
I'm even surprised we actually check for .bsp being present in map-*.dpk archive (I think it's OK to list the map and abort at loading if the dpk is malformed and does not contain a bsp). I would not be against simplifying the map listing code even more (and maybe make it common between engine and game code thanks to that).
The game code to list maps actually works by listing dpk with map- prefix in basename and stripping such prefix (it means it actually does not list legacy maps anyway).

In the current state of this PR, I feel like the different parts of the system are only becoming more inconsistent with one another... I opened #557 for more discussion of the issue.

I rebased on current master.

Implemented this for all parts of the system in https://github.com/DaemonEngine/Daemon/pull/601.


Merging dev to master

This release includes:

Add support to set grpcMaxMessageLength
Add Proto file from https://github.com/Azure/azure-functions-language-worker-protobuf/ as subtree
Pin to grpc major version

cc : @ahmelsayed

@elprans - CI errors ok?

We need changes to the proto file in this release as well.

@elprans - I see few test failures. Can you take a look ?

@pragnagopa Integration tests are failing due to timeouts.  Azure is not firing the triggers soon enough.

@pragnagopa There's also this:
Function.put_blob_bytes[0]
      => System.Collections.Generic.Dictionary`2[System.String,System.Object] => System.Collections.Generic.Dictionary`2[System.String,System.Object]
      System.Private.CoreLib: Exception while executing function: Functions.put_blob_bytes. Microsoft.Azure.WebJobs.Host: Error while handling parameter _binder after function returned:. Microsoft.Azure.WebJobs.Host: Cannot access a disposed object.

Which seems to me like a host bug.

Yes. Functions.put_blob_bytes test failure looks like a host issue. Can you please open an issue in host repo with the sample function code?
For transient failures, I have restarted the build. Will go ahead and merge if the failures are timeout issues.


Model Request

Hi can I request the following model + lora?
Copax TimeLessXL - SDXL1.0 v8
https://civitai.com/models/118111?modelVersionId=198246
MODILL_XL - Modern Colorful Illustration Style LoRa
https://civitai.com/models/192139/modillxl-modern-colorful-illustration-style-lora
thanks appreciate it!

I've added both of these models in https://github.com/fofr/cog-comfyui/commit/24ace7a3b70b46bf2c428f432f15d0b85d907572


cssPreprocessOptions less modifyVars Invalid modification

Do NOT ignore this template or your issue will have a very high chance to be closed without comment.

Describe the bug
this is modify to vantUI theme variable.
less import not work.
vant.theme.var.less
@import './default.less';

// vant主题变量参考 https://github.com/youzan/vant/blob/dev/src/style/var.less

// componentNz
@text-color: #theme[color];
@border-color: #theme[color-border];

// button
@button-primary-background-color: #theme[color-primary];
@button-primary-border-color: #theme[color-primary];

@button-info-background-color: #theme[color-500];
@button-info-border-color: #theme[color-500];

// checkbox
@checkbox-checked-icon-color: #theme[color-primary];

  cssPreprocessOptions: {
    less: {
      modifyVars: {
        // 'button-primary-background-color': 'red',
        hack: `true; @import "src/assets/styles/themes/vant.theme.var.less";`,
      },
      javascriptEnabled: true,
    },
    scss: {
      additionalData: '@import "src/assets/styles/vars.scss";',
    },
  },

In this less options, no work，in vue.config.js is work.
Reproduction
Please provide a link to a repo that can reproduce the problem you ran into.
A reproduction is required unless you are absolutely sure that the the problem is obvious and the information you provided is enough for us to understand what the problem is. If a report has only vague description (e.g. just a generic error message) and has no reproduction, it will be closed immediately.
System Info

required vite version:vite v1.0.0-rc.9
required Operating System:mac os
required Node version:
Optional:

npm/yarn version
Installed vue version (from yarn.lock or package-lock.json)
Installed @vue/compiler-sfc version

Logs (Optional if provided reproduction)

Run vite or vite build with the --debug flag.
Provide the error log here.

relative path to scss is work. @import "src/assets/styles/vars.scss"; so i think less import path is also like this

i try to modify that less
@button-primary-background-color: @blue;

it work if you config like this

@Wushq  ok,  thank u, but still no substitution variable
modifyVars: {
        hack: `true; @import "${join(
          __dirname,
          './src/assets/styles/themes/vant.theme.var.less'
        )}";`,
      },

"vite": "^1.0.0-rc.9",
"less": "^3.12.2",
"sass": "^1.29.0",
"vue": "^3.0.2",
"vite-plugin-html": "^1.0.0-beta.2",
"vite-plugin-mock": "^1.0.6",
"vite-plugin-purge-icons": "^0.4.4",
"vite-plugin-pwa": "^0.1.3",
I will try again

Oh, I found the problem, I dated multiple compiled  css files

@Wushq   hi, How do you import vant Less on demand

it work if you config like this

i did the same but its still not working.

Has this problem been solved? I don't see a credible result

Done like this (Vite 2.x):
export default defineConfig({
  // ...
  css: {
    preprocessorOptions: {
      less: {
        modifyVars: { 'primary-color': '#13c2c2' },
        javascriptEnabled: true,
      },
    },
  },
});

See more about my config pinyin/vite.config.ts

function pathResolve(dir: string) {
return resolve(__dirname, '.', dir);
}
css: {
preprocessorOptions: {
less: {
modifyVars: {
hack: true; @import "${resolve(                             './src/assets/less/overwrite/overwrite.less'                         )}";,
}
, javascriptEnabled: true
}
}
},

`
// 第零步
在assets下创建/less/overwrite/overwrite.less
// 第一步
import { resolve } from 'path';
// 第二步
function pathResolve(dir: string) {
return resolve(__dirname, '.', dir);
}
// 第三步
css: {
preprocessorOptions: {
less: {
modifyVars: {
hack: true; @import "${resolve(                             './src/assets/less/overwrite/overwrite.less'                         )}";,
}
, javascriptEnabled: true
}
}
},
`


Support Laravel 5.2

Problem 1
    - barryvdh/laravel-ide-helper v2.1.0 requires illuminate/support 5.0.x|5.1.x -> satisfiable by laravel/framework[v5.1.26], illuminate/support[v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.33, v5.0.4, v5.1.1, v5.1.13, v5.1.16, v5.1.2, v5.1.20, v5.1.22, v5.1.25, v5.1.6, v5.1.8].
    - barryvdh/laravel-ide-helper v2.1.0 requires illuminate/filesystem 5.0.x|5.1.x -> satisfiable by laravel/framework[v5.1.26], illuminate/filesystem[v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.33, v5.0.4, v5.1.1, v5.1.13, v5.1.16, v5.1.2, v5.1.20, v5.1.22, v5.1.25, v5.1.6, v5.1.8].
    - Can only install one of: laravel/framework[5.2.x-dev, v5.1.26].
    - don't install illuminate/support v5.1.1|don't install laravel/framework 5.2.x-dev

https://github.com/barryvdh/laravel-ide-helper/commit/aec17e3327b743bb38f087d36650f06ec618078e

@barryvdh
looks like 5.2 broke something
trying to run this
php artisan ide-helper:meta

produces this
  [Symfony\Component\Debug\Exception\FatalThrowableError]
  Fatal error: Cannot instantiate abstract class Illuminate\Database\Seeder

Since Laravel 5.2 has been released is it possible to get a tag for this?

@bramdevries damn, you got here first :-)

https://github.com/barryvdh/laravel-ide-helper/releases/tag/v2.1.1


Suggest users use the most modern version of gpg

Instead of
brew install gpg

suggest using
brew install homebrew/versions/gnupg21

See this for more details

Hey again, @sg-s
You are right, GnuPG comes in two flavours: 1.4.xx and 2.0.xx. While I think GPG 1.4.xx is sufficient for all functionality described in the guide -- verifying signatures, writing email (I'll add more on this to the guide soon), etc - it's worth mentioning the difference between versions and how to install 2.0.xx should one desire to do so.
Please send me a Pull Request if you have a good idea how to write this information, or I will do it myself later.


Should noms-show refs render as #abc not abc?

I noticed that if a value contains a ref then it renders as abc..., but should it render as #abc...? We seem to be standardising[*] on including the # in several places, this is one that makes sense to me.
Of course this doesn't only affect noms-show, but anywhere that uses the human readable serialization.
[*] an example of a place where it would just be distracting: commit hash in noms-log
@arv @aboodman

One might argue that these are refs not hashes so the inclusion of # isn't right. Either way it would be good to do something other than just the stringification of the ref's target hash.

What is the value in doing it?
On Tue, Aug 9, 2016 at 10:27 AM, Ben Kalman<EMAIL_ADDRESS>wrote:

One might argue that these are refs not hashes so the inclusion of #
isn't right. Either way it would be good to do something other than just
the stringification of the ref's target hash.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/attic-labs/noms/issues/2321#issuecomment-238627166,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAE6BE7Lg8fjEF__FzBIxeOWRo8qy4A8ks5qeLibgaJpZM4JgUDl
.

Consistnecy?

It doesn't strike me as inconsistent the way it is. The * notation is
when you use a hash as part of a path. Alone, the hash doesn't need that.
That's just the way I see it though.
On Tue, Aug 9, 2016 at 11:23 AM, Ben Kalman<EMAIL_ADDRESS>wrote:

Consistnecy?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/attic-labs/noms/issues/2321#issuecomment-238644314,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAE6BCMURPT0N3r-OQQhBLyAuTvWBir1ks5qeMWRgaJpZM4JgUDl
.

I've come across a case when the preceding hash would be nice. When writing perf tests, I record the environment as a ref, and alongside it the git hash. It looks like:
> noms show
...
    environment: kg7vkvcea4m0cvmc4a0aj3lbhnp2jntc,
    nomsVersion: "b425af6658a992915b0c72277df1cd850f8fd93c",
    testdataVersion: "a6289aa1e8757f19c98629c10e89922cc549940f",
...

It's hard to tell those apart at a glance. More generally, the difference between a string which looks like a hash, and a hash itself, is hard to tell apart. IMO it would look better as
> noms show
...
    environment: #kg7vkvcea4m0cvmc4a0aj3lbhnp2jntc,
    nomsVersion: "b425af6658a992915b0c72277df1cd850f8fd93c",
    testdataVersion: "a6289aa1e8757f19c98629c10e89922cc549940f",
...

still not convinced, sorry :)
On Tue, Aug 16, 2016 at 3:32 PM, Ben Kalman<EMAIL_ADDRESS>wrote:

I've come across a case when the preceding hash would be nice. When
writing perf tests, I record the environment as a ref, and alongside it the
git hash. It looks like:

noms show
...
environment: kg7vkvcea4m0cvmc4a0aj3lbhnp2jntc,
nomsVersion: "b425af6658a992915b0c72277df1cd850f8fd93c",
testdataVersion: "a6289aa1e8757f19c98629c10e89922cc549940f",
...

It's hard to tell those apart at a glance. More generally, the difference
between a string which looks like a hash, and a hash itself, is hard to
tell apart. IMO it would look better as

noms show
...
environment: #kg7vkvcea4m0cvmc4a0aj3lbhnp2jntc,
nomsVersion: "b425af6658a992915b0c72277df1cd850f8fd93c",
testdataVersion: "a6289aa1e8757f19c98629c10e89922cc549940f",
...

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/attic-labs/noms/issues/2321#issuecomment-240260208,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAE6BP6bCYTDZIiQhVqcMa3b0aOuqwcdks5qgjp0gaJpZM4JgUDl
.


chore : sync with upstream 59f354c

What :computer:

First thing updated with this PR
Second thing updated with this PR
Third thing updated with this PR

Why :hand:

Reason why first thing was added to PR
Reason why second thing was added to PR
Reason why third thing was added to PR

Evidence :camera:
Include screenshots, screen recordings, or console output here demonstrating that your changes work as intended

Removing branch due to corrupted state


Web - How to load existing database?

Question
I have a database with 10K entries, and I want to load it at the web version of my app.
The Mobile version is working fine since I copy from the assets directory to the app documents directory. Obviously, this cannot be done at the web version (not even a File object exists at the web).
I went through all of the documentation and issues, didn't see an answer.
How do I go about this?

thats the neat part you dont

How's that neat?


add new apiGroup export.kubevirt.io and clone.kubevirt.io

Short description: Add two new apiGroups
More details:
What this PR does / why we need it:
Which issue(s) this PR fixes:
Special notes for reviewer:
Bug:

@rnetser updated the title of the PR.

!verified

!cherry-pick v4.12


WIP: [ci] remove floor on dask and distributed in CI (fixes #4285)

https://github.com/microsoft/LightGBM/pull/4288 introduced explicit pins on dask and distributed in this project's CI jobs, due to https://github.com/dask/distributed/issues/4819.
Starting from dask / distributed 2021.5.0, Dask maintainers decided to pin distributed like dask=={version} to avoid such issues in the future. See https://github.com/dask/community/issues/155#issuecomment-841399732
dask-core and distributed 2021.5.0 are now available from the default conda channels. As soon as dask is available there as well, I think the workaround from #4288 can be reverted.

distributed 2021.5.0: https://repo.anaconda.com/pkgs/main/linux-64/
dask-core 2021.5.0: https://repo.anaconda.com/pkgs/main/noarch/
dask (currently 2021.4.0): https://repo.anaconda.com/pkgs/main/noarch/

Just opening this PR for visibility. I think it will fail until dask is uploaded too

I checked https://repo.anaconda.com/pkgs/main/noarch/ this morning and dask=2021.5.0 is still not up :disappointed:

I've learned some interesting things investigating this tonight, but I'm still really unsure what is happening.
On conda channels, there are two packages:

dask-core = the dask library with minimal dependencies
dask = the dask library + dependencies like pandas (for dask.dataframe) and numpy (for dask.array)

This is described at https://docs.dask.org/en/latest/install.html#conda.
So, said another way, the conda package dask is just a convenience. Since LightGBM's CI already installs numpy and pandas, I thought we could just conda install dask-core instead of conda install dask, and that that would avoid problems with dask and distributed being uploaded many days apart. dask-core seems to often be uploaded at roughly the same time as distributed (see the links in this PR's description).
However, I've found that sometimes a dependency on the conda package dask still gets pulled in in. I cannot figure out how to avoid that.
In a Python 3.8 environment, installing dask-core then distributed results in no dask, but an old version of distributed (version 2.10, January 2020).
docker run \
    --env CONDA_ENV=base \
    -it continuumio/miniconda3 \
    /bin/bash \
        -c "conda install -q -y -n base dask-core &&
            conda install -q -y -n base distributed &&
            conda list --explicit --name base"

https://repo.anaconda.com/pkgs/main/noarch/dask-core-2021.5.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/distributed-2.10.0-py_0.conda

full environment (click me)
https://repo.anaconda.com/pkgs/main/linux-64/_libgcc_mutex-0.1-main.conda
https://repo.anaconda.com/pkgs/main/linux-64/ca-certificates-2021.5.25-h06a4308_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/ld_impl_linux-64-2.33.1-h53a641e_7.conda
https://repo.anaconda.com/pkgs/main/linux-64/libstdcxx-ng-9.1.0-hdf63c60_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/libgcc-ng-9.1.0-hdf63c60_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/libffi-3.3-he6710b0_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/ncurses-6.2-he6710b0_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/openssl-1.1.1k-h27cfd23_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/xz-5.2.5-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/yaml-0.2.5-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/zlib-1.2.11-h7b6447c_3.conda
https://repo.anaconda.com/pkgs/main/linux-64/libedit-3.1.20191231-h14c3975_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/readline-8.0-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/tk-8.6.10-hbc83047_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/sqlite-3.33.0-h62c20be_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/python-3.8.5-h7579374_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/certifi-2020.12.5-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/chardet-3.0.4-py38h06a4308_1003.conda
https://repo.anaconda.com/pkgs/main/noarch/cloudpickle-1.6.0-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/fsspec-0.9.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/heapdict-1.0.1-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/idna-2.10-py_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/locket-0.2.1-py38h06a4308_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/msgpack-python-1.0.2-py38hff7bd54_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/psutil-5.8.0-py38h27cfd23_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/pycosat-0.6.3-py38h7b6447c_1.conda
https://repo.anaconda.com/pkgs/main/noarch/pycparser-2.20-py_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/pysocks-1.7.1-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/pyyaml-5.4.1-py38h27cfd23_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/ruamel_yaml-0.15.87-py38h7b6447c_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/six-1.15.0-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/noarch/sortedcontainers-2.3.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/tblib-1.7.0-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/toolz-0.11.1-pyhd3eb1b0_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/tornado-6.1-py38h27cfd23_0.conda
https://repo.anaconda.com/pkgs/main/noarch/tqdm-4.51.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/wheel-0.35.1-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/zipp-3.4.1-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/cffi-1.14.3-py38h261ae71_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/conda-package-handling-1.7.2-py38h03888b9_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/cytoolz-0.11.0-py38h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/importlib-metadata-3.10.0-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/noarch/partd-1.2.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/setuptools-50.3.1-py38h06a4308_1.conda
https://repo.anaconda.com/pkgs/main/noarch/zict-2.0.0-pyhd3eb1b0_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/brotlipy-0.7.0-py38h27cfd23_1003.conda
https://repo.anaconda.com/pkgs/main/noarch/click-8.0.1-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/cryptography-3.2.1-py38h3c74f83_1.conda
https://repo.anaconda.com/pkgs/main/noarch/dask-core-2021.5.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/pip-20.2.4-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/noarch/distributed-2.10.0-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/pyopenssl-19.1.0-pyhd3eb1b0_1.conda
https://repo.anaconda.com/pkgs/main/noarch/urllib3-1.25.11-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/requests-2.24.0-py_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/conda-4.10.1-py38h06a4308_1.conda

In a Python 3.8 environment, installing dask-core and distributed together pulls in a dependency on dask, which results in mismatched versions of dask and distributed.
docker run \
    --env CONDA_ENV=base \
    -it continuumio/miniconda3 \
    /bin/bash \
        -c "conda install -q -y -n base dask-core distributed &&
            conda list --explicit --name base"

https://repo.anaconda.com/pkgs/main/noarch/dask-core-2021.4.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/distributed-2021.5.0-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/noarch/dask-2021.4.0-pyhd3eb1b0_0.conda

full environment (click me)
https://repo.anaconda.com/pkgs/main/linux-64/_libgcc_mutex-0.1-main.conda
https://repo.anaconda.com/pkgs/main/linux-64/blas-1.0-mkl.conda
https://repo.anaconda.com/pkgs/main/linux-64/ca-certificates-2021.5.25-h06a4308_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/intel-openmp-2021.2.0-h06a4308_610.conda
https://repo.anaconda.com/pkgs/main/linux-64/ld_impl_linux-64-2.33.1-h53a641e_7.conda
https://repo.anaconda.com/pkgs/main/linux-64/libstdcxx-ng-9.1.0-hdf63c60_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/libgcc-ng-9.1.0-hdf63c60_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/mkl-2021.2.0-h06a4308_296.conda
https://repo.anaconda.com/pkgs/main/linux-64/jpeg-9b-h024ee3a_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/libffi-3.3-he6710b0_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/libwebp-base-1.2.0-h27cfd23_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/lz4-c-1.9.3-h2531618_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/ncurses-6.2-he6710b0_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/openssl-1.1.1k-h27cfd23_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/xz-5.2.5-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/yaml-0.2.5-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/zlib-1.2.11-h7b6447c_3.conda
https://repo.anaconda.com/pkgs/main/linux-64/libedit-3.1.20191231-h14c3975_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/libpng-1.6.37-hbc83047_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/readline-8.0-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/tk-8.6.10-hbc83047_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/zstd-1.4.9-haebb681_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/freetype-2.10.4-h5ab3b9f_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/libtiff-4.2.0-h85742a9_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/sqlite-3.33.0-h62c20be_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/lcms2-2.12-h3be6417_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/python-3.8.5-h7579374_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/certifi-2020.12.5-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/chardet-3.0.4-py38h06a4308_1003.conda
https://repo.anaconda.com/pkgs/main/noarch/cloudpickle-1.6.0-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/fsspec-0.9.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/heapdict-1.0.1-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/idna-2.10-py_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/locket-0.2.1-py38h06a4308_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/markupsafe-2.0.1-py38h27cfd23_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/msgpack-python-1.0.2-py38hff7bd54_1.conda
https://repo.anaconda.com/pkgs/main/noarch/olefile-0.46-py_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/psutil-5.8.0-py38h27cfd23_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/pycosat-0.6.3-py38h7b6447c_1.conda
https://repo.anaconda.com/pkgs/main/noarch/pycparser-2.20-py_2.conda
https://repo.anaconda.com/pkgs/main/noarch/pyparsing-2.4.7-pyhd3eb1b0_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/pysocks-1.7.1-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/noarch/pytz-2021.1-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/pyyaml-5.4.1-py38h27cfd23_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/ruamel_yaml-0.15.87-py38h7b6447c_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/six-1.15.0-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/noarch/sortedcontainers-2.3.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/tblib-1.7.0-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/toolz-0.11.1-pyhd3eb1b0_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/tornado-6.1-py38h27cfd23_0.conda
https://repo.anaconda.com/pkgs/main/noarch/tqdm-4.51.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/typing_extensions-<IP_ADDRESS>-pyha847dfd_0.tar.bz2
https://repo.anaconda.com/pkgs/main/noarch/wheel-0.35.1-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/zipp-3.4.1-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/cffi-1.14.3-py38h261ae71_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/conda-package-handling-1.7.2-py38h03888b9_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/cytoolz-0.11.0-py38h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/importlib-metadata-3.10.0-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/mkl-service-2.3.0-py38h27cfd23_1.conda
https://repo.anaconda.com/pkgs/main/noarch/packaging-20.9-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/partd-1.2.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/pillow-8.2.0-py38he98fc37_0.conda
https://repo.anaconda.com/pkgs/main/noarch/python-dateutil-2.8.1-pyhd3eb1b0_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/setuptools-50.3.1-py38h06a4308_1.conda
https://repo.anaconda.com/pkgs/main/noarch/zict-2.0.0-pyhd3eb1b0_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/brotlipy-0.7.0-py38h27cfd23_1003.conda
https://repo.anaconda.com/pkgs/main/noarch/click-8.0.1-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/cryptography-3.2.1-py38h3c74f83_1.conda
https://repo.anaconda.com/pkgs/main/noarch/dask-core-2021.4.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/jinja2-3.0.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/numpy-base-1.20.2-py38hfae3a4d_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/pip-20.2.4-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/noarch/pyopenssl-19.1.0-pyhd3eb1b0_1.conda
https://repo.anaconda.com/pkgs/main/noarch/urllib3-1.25.11-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/requests-2.24.0-py_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/conda-4.10.1-py38h06a4308_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/bokeh-2.3.2-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/distributed-2021.5.0-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/mkl_fft-1.3.0-py38h42c9631_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/mkl_random-1.2.1-py38ha9443f7_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/numpy-1.20.2-py38h2d18471_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/pandas-1.2.4-py38h2531618_0.conda
https://repo.anaconda.com/pkgs/main/noarch/dask-2021.4.0-pyhd3eb1b0_0.conda

And I don't know a good communication channel to report this to. Unlike the dask, dask-core, and distributed packages on conda-forge, those on the Anaconda main channels are not managed by Dask's maintainers and they don't have much influence there: https://github.com/dask/distributed/issues/4819#issuecomment-841275579.
Note that using only conda-forge instead, no transitive dependency on dask is introduced and the newest releases of dask-core and distributed are installed.
docker run \
    --env CONDA_ENV=base \
    -it continuumio/miniconda3 \
    /bin/bash \
        -c "conda install -q -y -c conda-forge -n base dask-core distributed &&
            conda list --explicit --name base"

https://conda.anaconda.org/conda-forge/noarch/dask-core-2021.5.1-pyhd8ed1ab_0.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/distributed-2021.5.1-py38h578d9bd_0.tar.bz2

full environment (click me)
https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.5.30-ha878542_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/ld_impl_linux-64-2.33.1-h53a641e_7.conda
https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-9.3.0-h6de172a_19.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/libgomp-9.3.0-h2828fa1_19.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-9.3.0-h2828fa1_19.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/libffi-3.3-he6710b0_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/ncurses-6.2-he6710b0_1.conda
https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1k-h7f98852_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/xz-5.2.5-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/yaml-0.2.5-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/zlib-1.2.11-h7b6447c_3.conda
https://repo.anaconda.com/pkgs/main/linux-64/libedit-3.1.20191231-h14c3975_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/readline-8.0-h7b6447c_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/tk-8.6.10-hbc83047_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/sqlite-3.33.0-h62c20be_0.conda
https://repo.anaconda.com/pkgs/main/linux-64/python-3.8.5-h7579374_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/chardet-3.0.4-py38h06a4308_1003.conda
https://conda.anaconda.org/conda-forge/noarch/cloudpickle-1.6.0-py_0.tar.bz2
https://conda.anaconda.org/conda-forge/noarch/fsspec-2021.5.0-pyhd8ed1ab_0.tar.bz2
https://conda.anaconda.org/conda-forge/noarch/heapdict-1.0.1-py_0.tar.bz2
https://repo.anaconda.com/pkgs/main/noarch/idna-2.10-py_0.conda
https://conda.anaconda.org/conda-forge/noarch/locket-0.2.0-py_2.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/pycosat-0.6.3-py38h7b6447c_1.conda
https://repo.anaconda.com/pkgs/main/noarch/pycparser-2.20-py_2.conda
https://repo.anaconda.com/pkgs/main/linux-64/pysocks-1.7.1-py38h06a4308_0.conda
https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.8-1_cp38.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/ruamel_yaml-0.15.87-py38h7b6447c_1.conda
https://repo.anaconda.com/pkgs/main/linux-64/six-1.15.0-py38h06a4308_0.conda
https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2
https://conda.anaconda.org/conda-forge/noarch/tblib-1.7.0-pyhd8ed1ab_0.tar.bz2
https://conda.anaconda.org/conda-forge/noarch/toolz-0.11.1-py_0.tar.bz2
https://repo.anaconda.com/pkgs/main/noarch/tqdm-4.51.0-pyhd3eb1b0_0.conda
https://repo.anaconda.com/pkgs/main/noarch/wheel-0.35.1-pyhd3eb1b0_0.conda
https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.5.30-py38h578d9bd_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/cffi-1.14.3-py38h261ae71_2.conda
https://conda.anaconda.org/conda-forge/linux-64/click-8.0.1-py38h578d9bd_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/conda-package-handling-1.7.2-py38h03888b9_0.conda
https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.11.0-py38h497a2fe_3.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.2-py38h1fd1430_1.tar.bz2
https://conda.anaconda.org/conda-forge/noarch/partd-1.2.0-pyhd8ed1ab_0.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/psutil-5.8.0-py38h497a2fe_1.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/pyyaml-5.4.1-py38h497a2fe_0.tar.bz2
https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py38h497a2fe_1.tar.bz2
https://conda.anaconda.org/conda-forge/noarch/zict-2.0.0-py_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/brotlipy-0.7.0-py38h27cfd23_1003.conda
https://repo.anaconda.com/pkgs/main/linux-64/cryptography-3.2.1-py38h3c74f83_1.conda
https://conda.anaconda.org/conda-forge/noarch/dask-core-2021.5.1-pyhd8ed1ab_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/setuptools-50.3.1-py38h06a4308_1.conda
https://conda.anaconda.org/conda-forge/linux-64/distributed-2021.5.1-py38h578d9bd_0.tar.bz2
https://repo.anaconda.com/pkgs/main/linux-64/pip-20.2.4-py38h06a4308_0.conda
https://repo.anaconda.com/pkgs/main/noarch/pyopenssl-19.1.0-pyhd3eb1b0_1.conda
https://repo.anaconda.com/pkgs/main/noarch/urllib3-1.25.11-py_0.conda
https://repo.anaconda.com/pkgs/main/noarch/requests-2.24.0-py_0.conda
https://conda.anaconda.org/conda-forge/linux-64/conda-4.10.1-py38h578d9bd_0.tar.bz2

Given all of the preceding information and the fact the the decision was made in #4054 to not use conda-forge, I'm going to investigate installing this libraries from PyPI.

Investigating https://github.com/microsoft/LightGBM/issues/4285#issuecomment-841214028

And of course this is suitable only in case these packages are updated simultaneously at PyPI, otherwise we gain nothing from switching to PyPI.

dask releases to PyPI: https://pypi.org/project/dask/#history
distributed releases to PyPI: https://pypi.org/project/distributed/#history

It looks like they are always released to PyPI on the same day.

dask
distributed

2020.12.0
12/10/2021
12/10/2021

2021.1.0
1/15/2021
1/15/2021

2021.1.1
1/22/2021
1/22/2021

2021.2.0
2/5/2021
2/5/2021

2021.3.0
3/5/2021
3/5/2021

2021.3.1
3/26/2021
3/26/2021

2021.4.0
4/2/2021
4/2/2021

2021.4.1
4/23/2021
4/23/2021

2021.5.0
5/14/2021
5/14/2021

2021.5.1
5/28/2021
5/28/2021

Hi, James. Just out of curiosity, why is installing from conda-forge being avoided? With conda-forge's dask the version mismatch doesn't seem to be a problem since each release has both dask-core and distributed with the same version:
https://github.com/conda-forge/dask-feedstock/blob/849f8b71ca796b785864faaef87f359e1d3940eb/recipe/meta.yaml#L24-L25

https://github.com/microsoft/LightGBM/pull/4054#pullrequestreview-607286413

A relevant issue was just opened in the Dask community repo: https://github.com/dask/community/issues/160
And a corresponding one was opened at ContinuumIO/anaconda-issues, which looks like a place we might be able to go to ask about such things in the future. https://github.com/ContinuumIO/anaconda-issues/issues/12447

good news: yesterday Anaconda published dask, dask-core, and distributed 2021.5.1 (the latest release) all at the same time, and committed to doing so from this point forward (https://github.com/ContinuumIO/anaconda-issues/issues/12447#issuecomment-853274655)
bad news: in environments with version 2021.5.1 of all those libraries, LightGBM's tests are still breaking
For example, here's linux sdist:
https://dev.azure.com/lightgbm-ci/lightgbm-ci/_build/results?buildId=10228&view=logs&j=02a2c3ba-81f8-54e3-0767-5d5adbb0daa9&t=720ee3fa-96d4-5b47-dbf4-01607b74ade2
/opt/conda/envs/test-env/lib/python3.7/site-packages/dask/base.py:285: in compute
    (result,) = compute(self, traverse=False, **kwargs)
/opt/conda/envs/test-env/lib/python3.7/site-packages/dask/base.py:568: in compute
    return repack([f(r, *a) for r, (f, a) in zip(results, postcomputes)])
/opt/conda/envs/test-env/lib/python3.7/site-packages/dask/base.py:568: in <listcomp>
    return repack([f(r, *a) for r, (f, a) in zip(results, postcomputes)])
/opt/conda/envs/test-env/lib/python3.7/site-packages/dask/array/core.py:1069: in finalize
    return concatenate3(results)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

arrays = [array([[28, 28, 24, ...,  2, 24, 25],
       [30, 11, 20, ..., 24, 13, 12],
       [13, 12, 14, ..., 21, 21, 22],
   ...0, 11, 20, ..., 11, 13, 12],
       [28, 28, 24, ..., 13, 24, 25],
       [ 1,  1,  1, ..., 19,  1,  1]], dtype=int32)]

    def concatenate3(arrays):
              ...
 >           result[idx] = arr
 E           ValueError: could not broadcast input array from shape (500,20) into shape (500,)

 /opt/conda/envs/test-env/lib/python3.7/site-packages/dask/array/core.py:4829: ValueError

It looks like we got the newest versions of the relevant dask libraries, but and older version of numpy and pandas
numpy              pkgs/main/linux-64::numpy-1.20.2-py37h2d18471_0
pandas             pkgs/main/linux-64::pandas-1.2.4-py37h2531618_0

We got numpy  1.20.2 (March 27, 2021). The newest release is numpy 1.20.3 (May 10, 2021).

Hi James. It seems that the drop_axis=1 trick doesn't work every time anymore. I believe the predict function is being called once already to determine the meta (numpy array, cupy, etc). So maybe we could call the predict function on a 1 row array to get the output shape and modify the call to map_blocks?
I did some modifications to lgb.dask._predict and the tests pass, except for test_classifier_pred_contrib[multiclass-classification-scipy_csr_matrix] where the output of the predict function is a list:
[<1x3 sparse matrix of type '<class 'numpy.float64'>'
        with 3 stored elements in Compressed Sparse Row format>, <1x3 s...format>, <1x3 sparse matrix of type '<class 'numpy.float64'>'
        with 3 stored elements in Compressed Sparse Row format>]

My modification was:
elif isinstance(data, dask_Array):
    predict_fn = partial(
        _predict_part,
        model=model,
        raw_score=raw_score,
        pred_proba=pred_proba,
        pred_leaf=pred_leaf,
        pred_contrib=pred_contrib,
    )
    data_row = data[[0]].compute()  # maybe model.client.compute(data[[0]])?
    pred_row = predict_fn(data_row)
    chunks = (data.chunks[0],)
    if len(pred_row.shape) > 1:
        chunks += (pred_row.shape[1],)
    else:
        kwargs['drop_axis'] = 1
    return data.map_blocks(
        predict_fn,
        chunks=chunks,
        meta=np.array([], dtype=dtype),
        **kwargs
    )

I was hoping meta worked the same way as for dataframes taking the shape and dtype of the output but seems like here it's just used for different types of arrays.

Thanks @jmoralez ! Great investigation. Are you interested in submitting a PR with that fix? If not or if you don't have the time, I can do that as well.
I have some other ideas too, now that you've helped us narrow it down to that place in the code:

The difference in multiclass-classification-scipy_csr_matrix is expected, and documented as a feature request in #3881
It still must be the root cause you identified PLUS something else specific to certain versions of dask / distributed / pandas / numpy, right? Since the Dask tests have been consistently passing for at least the last month.

Sure, I can make a PR. Should I include the changes you've made here to the environment as well?

Sure, I can make a PR. Should I include the changes you've made here to the environment as well?

yes please, thank you

Closing this in favor of #4351


rust: Add cross-compiler port

This PR adds patches for Rust's std and libc crates and allows us to cross-compile basic Rust programs for managarm.
The full install takes ~1h20 on my machine (4 core low spec laptop), as we compile both stage1 and stage2. This may not be strictly necessary, but is a good idea to avoid ABI issues in future (e.g with procedural macros).
Partially addresses managarm/managarm#91.

LGTM now, let's merge this. Thank you very much for this PR!