Smartthings Air Conditioner seen like Fan and not like Climate

Home Assistant release with the issue:
 0.88.1
Operating environment (Hass.io/Docker/Windows/etc.):
 Hass.io
Component/platform:
 https://www.home-assistant.io/components/smartthings/
Description of problem:
I have a samsung air conditioner added in Smartthings app and it works (No hub).
Adding smartthings component in home assistant following component's guide, AC is seen as FAN and not as CLIMATE.
I already remove component from 0.87 to 0.88 and deleting Smartthings entities from database and already tried to remove smartapp from smartthings app.
These are entities created by component:

No errors from home-assistant.log

So this can happen if the Device Type Handler isn't implementing the minimum required capabilities per the documentation.  It appears to be combing capabilities of other devices (i.e. Fan) instead of the thermostat-specific capabilities.
I'm guessing this is a custom Device Type Handler...  Can you share the a link to the source?

I added AC from new mobile app because in the classic one is not present category "Conditioner".
However, since AC added, I see and I can control this also in classic app.
I'm not sure understanding your question but if I login in https://graph-eu01-euwest1.api.smartthings.com/ in device handler type page is empty.
In device page, air conditioner is shown in this way.

Looks like the Device Type Handler (Type) is "Samsung OCF Air Conditioner".  OCF is a direct-to-cloud connected device which uses a built-in handler that we can't modify.  The good news is I think we should be able to update the climate platform to support this device (and others like it).  To do that, I'll need some more information from you about how the device presents in the API.  Can you run the following command and send me the output (here or via a DM in Discord):
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.smartthings.com/v1/devices/DEVICE_ID

YOUR_ACCESS_TOKEN is the personal access token created for the integration.
DEVICE_ID is the UUID/GUID in the URL when you're viewing the device in the SmartThings IDE (where those screen shots came from above).  For example, when viewing the device, the URL looks something like: https://graph.api.smartthings.com/device/show/80e27aa1-8939-4a71-b6db-2510f7b2ace7.  The Device ID is the part after /show/ in this case 80e27aa1-8939-4a71-b6db-2510f7b2ace.

Thanks!

Thank you for your support. Here the output:
{"deviceId":"d5226d90-1b4f-e59d-5f3f-027ac3b18faf","name":"[room a/c] Samsung","        label":"Condizionatore aria stanza","locationId":"68776001-29c0-495c-96f7-ee68f7        93ec6d","roomId":"871993c7-d54e-4247-bd9e-a87a0e283bc5","deviceTypeId":"87763316        -abf2-40ae-b019-3e56ef15b220","deviceTypeName":"Samsung OCF Air Conditioner","de        viceNetworkType":"UNKNOWN","components":[{"id":"main","capabilities":[{"id":"tem        peratureMeasurement","version":1},{"id":"switch","version":1},{"id":"refresh","v        ersion":1},{"id":"thermostatCoolingSetpoint","version":1},{"id":"ocf","version":        1},{"id":"execute","version":1},{"id":"fanSpeed","version":1},{"id":"airConditio        nerMode","version":1},{"id":"demandResponseLoadControl","version":1},{"id":"powe        rConsumptionReport","version":1}]}],"dth":{"deviceTypeId":"87763316-abf2-40ae-b0        19-3e56ef15b220","deviceTypeName":"Samsung OCF Air Conditioner","deviceNetworkTy        pe":"UNKNOWN","completedSetup":false,"networkSecurityLevel":"UNKNOWN"},"type":"D

Thanks!  Couple more questions:

What are the fan options you can set in the app? i.e. off, low, medium, and high?
What A/C modes can you set?  The capability definition has 9 different options, including heating options.  I assume your A/C doesn't actually have an option to heat...

These OCF devices do all sorts of fun undocumented things. :)  One more request.  Can you send me the result of this:
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.smartthings.com/v1/devices/d5226d90-1b4f-e59d-5f3f-027ac3b18faf/status

In the new smartthings app AC modes are:

Auto
Cool
Dry
Fan
Heat
and fan modes are:
Auto
Low
Medium
High
Turbo
There are other option called wind direction:
Fix
Vertical
Horizontal
All
and another one called wind free mode.

In the classic app AC modes are (written in same order position like new app):

Comfort cool
cool
dry
not support(if set fan in new app)
heat
fan are represented from 0 to 4 but seems not link with the new app(moving from new app and go to old app seems not have effect).

Below the output of command:
{"components":{"main":{"demandResponseLoadControl":{"drlcStatus":{"value":{"duration":0,"drlcLevel":-1,"start":"1970-01-01T00:00:00Z","override":false}}},"powerConsumptionReport":{"powerConsumption":{"value":{"start":"2019-02-24T21:03:04Z","power":0,"energy":500,"end":"2019-02-26T02:05:55Z"}}},"ocf":{"st":{"value":null},"mnfv":{"value":"0.1.0"},"mndt":{"value":null},"mnhw":{"value":"1.0"},"di":{"value":"d5226d90-1b4f-e59d-5f3f-027ac3b18faf"},"mnsl":{"value":null},"dmv":{"value":"res.1.1.0,sh.1.1.0"},"n":{"value":"[room a/c] Samsung"},"vid":{"value":"DA-AC-RAC-000001"},"mnmo":{"value":"ARTIK051_KRAC_18K|10193441|60010123001111010200000000000000"},"mnmn":{"value":"Samsung Electronics"},"mnml":{"value":"http://www.samsung.com"},"mnpv":{"value":"0.1.0"},"mnos":{"value":"TizenRT2.0"},"pi":{"value":"d5226d90-1b4f-e59d-5f3f-027ac3b18faf"},"icv":{"value":"core.1.1.0"}},"refresh":{},"temperatureMeasurement":{"temperature":{"value":19.0,"unit":"C"}},"airConditionerMode":{"airConditionerMode":{"value":"notSupported"}},"fanSpeed":{"fanSpeed":{"value":2}},"execute":{"data":{"value":{"payload":{"range":[16,30],"if":["oic.if.baseline","oic.if.a"],"rt":["oic.r.temperature"],"units":"C","temperature":24}}}},"thermostatCoolingSetpoint":{"coolingSetpoint":{"value":24.0,"unit":"C"}},"switch":{"switch":{"value":"off"}}}}}
Thanks!

airConditionerMode value is "not supported" because I turned off air conditioner in fan mode (fan mode set from new app, and appear not supported like in classic app).

@andrewsayre as @beppeserafini have already listed, my A/C is also capable of operating in the heating mode, and I use it regularly during the winter.
Adding my response for the above API requests
curl -H "Authorization: Bearer <token>" https://api.smartthings.com/v1/devices/a6d282d1-5ba4-5fea-20b0-f18232708f4a

{
    "deviceId": "a6d282d1-5ba4-5fea-20b0-f18232708f4a",
    "name": "[room a/c] Samsung",
    "label": "Room A/C",
    "locationId": "2915c998-4cb9-4e12-acc1-544cf6dea3a1",
    "roomId": "e2f8b8e7-e7d7-444f-90e2-7dc02e930db0",
    "deviceTypeId": "87763316-abf2-40ae-b019-3e56ef15b220",
    "deviceTypeName": "Samsung OCF Air Conditioner",
    "deviceNetworkType": "UNKNOWN",
    "components":
    [
        {
            "id": "main",
            "capabilities":
            [
                {
                    "id": "temperatureMeasurement",
                    "version": 1
                },
                {
                    "id": "switch",
                    "version": 1
                },                {
                    "id": "refresh",
                    "version": 1
                },
                {
                    "id": "thermostatCoolingSetpoint",
                    "version": 1
                },
                {
                    "id": "ocf",
                    "version": 1
                },
                {
                    "id": "execute",
                    "version": 1
                },
                {
                    "id": "fanSpeed",
                    "version": 1
                },
                {
                    "id": "airConditionerMode",
                    "version": 1
                },
                {
                    "id": "demandResponseLoadControl",
                    "version": 1
                },
                {
                    "id": "powerConsumptionReport",
                    "version": 1
                }
            ]
        }
    ],
    "dth":
    {
        "deviceTypeId": "87763316-abf2-40ae-b019-3e56ef15b220",
        "deviceTypeName": "Samsung OCF Air Conditioner",
        "deviceNetworkType": "UNKNOWN",
        "completedSetup": false,
        "networkSecurityLevel": "UNKNOWN"
    },
    "type": "DTH"
}

curl -H "Authorization: Bearer <token>" https://api.smartthings.com/v1/devices/a6d282d1-5ba4-5fea-20b0-f18232708f4a/status

{
    "components":
    {
        "main":
        {
            "demandResponseLoadControl":
            {
                "drlcStatus":
                {
                    "value":
                    {
                        "duration": 0,
                        "drlcLevel": -1,
                        "start": "1970-01-01T00:00:00Z",
                        "override": false
                    }
                }
            },            "powerConsumptionReport":
            {
                "powerConsumption":
                {
                    "value":
                    {
                        "start": "2019-02-24T17:20:02Z",
                        "power": 0,
                        "energy": 24200,
                        "end": "2019-02-25T23:45:02Z"
                    }
                }
            },
            "ocf":
            {
                "st":
                {
                    "value": null
                },                "mnfv":
                {
                    "value": "0.1.0"
                },
                "mndt":
                {
                    "value": null
                },
                "mnhw":
                {
                    "value": "1.0"
                },
                "di":
                {
                    "value": "a6d282d1-5ba4-5fea-20b0-f18232708f4a"
                },
                "mnsl":
                {
                    "value": null
                },
                "dmv":
                {
                    "value": "res.1.1.0,sh.1.1.0"
                },
                "n":
                {
                    "value": "[room a/c] Samsung"
                },
                "vid":
                {
                    "value": "DA-AC-RAC-000001"
                },
                "mnmo":
                {
                    "value": "ARTIK051_KRAC_18K|10193441|60010132001111010200000000000000"
                },
                "mnmn":
                {
                    "value": "Samsung Electronics"
                },
                "mnml":
                {
                    "value": "http://www.samsung.com"
                },
                "mnpv":
                {
                    "value": "0.1.0"
                },
                "mnos":
                {
                    "value": "TizenRT2.0"
                },
                "pi":
                {
                    "value": "a6d282d1-5ba4-5fea-20b0-f18232708f4a"
                },
                "icv":
                {
                    "value": "core.1.1.0"
                }
            },
            "refresh":
            {

            },
            "temperatureMeasurement":
            {
                "temperature":
                {
                    "value": 19,
                    "unit": "C"
                }
            },
            "airConditionerMode":
            {
                "airConditionerMode":
                {
                    "value": "heat"
                }
            },
            "fanSpeed":
            {
                "fanSpeed":
                {
                    "value": 2
                }
            },
            "execute":
            {
                "data":
                {
                    "value":
                    {
                        "payload":
                        {
                            "supportedModes":
                            [
                                "Cool",
                                "Dry",
                                "Wind",
                                "Auto",
                                "Heat",
                                "HOMECARE_WIZARD_V2"
                            ],
                            "if":
                            [
                                "oic.if.baseline",
                                "oic.if.a"
                            ],                            "rt":
                            [
                                "oic.r.mode"
                            ],
                            "modes":
                            [
                                "Heat"
                            ]
                        }
                    }
                }
            },
            "thermostatCoolingSetpoint":
            {
                "coolingSetpoint":
                {
                    "value": 22,
                    "unit": "C"
                }
            },
            "switch":
            {
                "switch":
                {
                    "value": "off"
                }
            }
        }
    }
}

Thanks guys!  I think I got enough to get started.  I’m going to need to mock out a virtual device so I can test.  Once I have something ready (probably this weekend) I’d love to have you help test it.
I’m sure I’ll have more questions, here’s two I have now:

if you see in the payload above it says switch:off.  Does that mean the device is actually off?  If you turn it on and run the status command, it goes to switch:on?
does the status update automatically in the ST Classic App?  Meaning, go into the device in the app and while it’s displaying, go over and change the mode on the physical unit.  Does that update automatically in the app?  (Note that navigating out/in to the device in the app does a pull refresh, so keep it drilled in to the device to see if it’s getting pushed the update)

Of course I'll test it!

yes the reason is that. If I run status command i.e. with AC on, heat mode, auto fan the output is:

{"components":{"main":{"demandResponseLoadControl":{"drlcStatus":{"value":{"duration":0,"drlcLevel":-1,"start":"1970-01-01T00:00:00Z","override":false}}},"powerConsumptionReport":{"powerConsumption":{"value":{"start":"2019-02-24T21:03:04Z","power":0,"energy":500,"end":"2019-02-26T02:05:55Z"}}},"ocf":{"st":{"value":null},"mnfv":{"value":"0.1.0"},"mndt":{"value":null},"mnhw":{"value":"1.0"},"di":{"value":"d5226d90-1b4f-e59d-5f3f-027ac3b18faf"},"mnsl":{"value":null},"dmv":{"value":"res.1.1.0,sh.1.1.0"},"n":{"value":"[room a/c] Samsung"},"vid":{"value":"DA-AC-RAC-000001"},"mnmo":{"value":"ARTIK051_KRAC_18K|10193441|60010123001111010200000000000000"},"mnmn":{"value":"Samsung Electronics"},"mnml":{"value":"http://www.samsung.com"},"mnpv":{"value":"0.1.0"},"mnos":{"value":"TizenRT2.0"},"pi":{"value":"d5226d90-1b4f-e59d-5f3f-027ac3b18faf"},"icv":{"value":"core.1.1.0"}},"refresh":{},"temperatureMeasurement":{"temperature":{"value":22.0,"unit":"C"}},"airConditionerMode":{"airConditionerMode":{"value":"heat"}},"fanSpeed":{"fanSpeed":{"value":0}},"execute":{"data":{"value":{"payload":{"supportedModes":["Cool","Dry","Wind","Auto","Heat","HOMECARE_WIZARD_V2"],"if":["oic.if.baseline","oic.if.a"],"rt":["oic.r.mode"],"modes":["Heat"]}}}},"thermostatCoolingSetpoint":{"coolingSetpoint":{"value":23.0,"unit":"C"}},"switch":{"switch":{"value":"on"}}}}}
and here the output of same AC mode but fan set as medium instead of auto
{"components":{"main":{"demandResponseLoadControl":{"drlcStatus":{"value":{"duration":0,"drlcLevel":-1,"start":"1970-01-01T00:00:00Z","override":false}}},"powerConsumptionReport":{"powerConsumption":{"value":{"start":"2019-02-24T21:03:04Z","power":0,"energy":500,"end":"2019-02-26T02:05:55Z"}}},"ocf":{"st":{"value":null},"mnfv":{"value":"0.1.0"},"mndt":{"value":null},"mnhw":{"value":"1.0"},"di":{"value":"d5226d90-1b4f-e59d-5f3f-027ac3b18faf"},"mnsl":{"value":null},"dmv":{"value":"res.1.1.0,sh.1.1.0"},"n":{"value":"[room a/c] Samsung"},"vid":{"value":"DA-AC-RAC-000001"},"mnmo":{"value":"ARTIK051_KRAC_18K|10193441|60010123001111010200000000000000"},"mnmn":{"value":"Samsung Electronics"},"mnml":{"value":"http://www.samsung.com"},"mnpv":{"value":"0.1.0"},"mnos":{"value":"TizenRT2.0"},"pi":{"value":"d5226d90-1b4f-e59d-5f3f-027ac3b18faf"},"icv":{"value":"core.1.1.0"}},"refresh":{},"temperatureMeasurement":{"temperature":{"value":22.0,"unit":"C"}},"airConditionerMode":{"airConditionerMode":{"value":"heat"}},"fanSpeed":{"fanSpeed":{"value":2}},"execute":{"data":{"value":{"payload":{"speed":2,"if":["oic.if.baseline","oic.if.a"],"direction":"Fix","rt":["oic.r.airflow"]}}}},"thermostatCoolingSetpoint":{"coolingSetpoint":{"value":23.0,"unit":"C"}},"switch":{"switch":{"value":"on"}}}}}
so, looking this seem fanSpeed map is: auto=0, low=1, medium=2, high=3, turbo=4

Yes, the status of AC change according remote controller (remaining in device screen) both in new and classic app.
In classic app seems fan speed doesn't change never, for example below screenshots of both app

Thank you, especially for the fan mapping.  I'll keep update you shortly!

Thank you too for your work! Feel free to ask me all question and trials you need!

Hey folks -- I have supported added in this branch: https://github.com/andrewsayre/home-assistant/tree/feature-smartthings-ac
Please make sure that you're using the latest 0.89 beta code first before copying over the modified platform!  One note: There's no support for fan direction, as those attributes/commands aren't exposed in the API
Let me know if it works or if you have any issues.

Thank you! I'm updating to latest 0.89 beta. After that what I have to do?
It's enough substitutes smartthings components folder or load it as custom component?

If you're running from sources, you can just pull my branch and run that.
If you're running using one of the distributions, I would:

Get up and running on the beta (and setup the SmartThings integration again as it will force you to do this per a breaking change unrelated to this work).
Copy the entire smartthings folder to your custom_components directory.  I've been seeing some reports of this no longer working, so if it still doesn't see your device as a climate after restarting, just overwrite the smartthings folder in components directly.

I add as a custom component and I make new integration with token. After that I don't see nothing under this integration and looking log file there is:
2019-03-03 18:00:54 WARNING (MainThread) [homeassistant.loader] You are using a custom component for smartthings which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-03-03 18:01:09 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Home for smartthings Traceback (most recent call last):   File "/usr/local/lib/python3.7/site-packages/homeassistant/config_entries.py", line 283, in async_setup     result = await component.async_setup_entry(hass, self)   File "/config/custom_components/smartthings/__init__.py", line 139, in async_setup_entry     broker = DeviceBroker(hass, entry, token, smart_app, devices, scenes)   File "/config/custom_components/smartthings/__init__.py", line 210, in __init__     self._assignments = self._assign_capabilities(devices)   File "/config/custom_components/smartthings/__init__.py", line 222, in _assign_capabilities     '.' + platform_name, self.__module__)   File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module     return _bootstrap._gcd_import(name[level:], package, level)   File "<frozen importlib._bootstrap>", line 1006, in _gcd_import   File "<frozen importlib._bootstrap>", line 983, in _find_and_load   File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked   File "<frozen importlib._bootstrap>", line 677, in _load_unlocked   File "<frozen importlib._bootstrap_external>", line 728, in exec_module   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed   File "/config/custom_components/smartthings/sensor.py", line 5, in <module>     from homeassistant.const import ( ImportError: cannot import name 'POWER_WATT' from 'homeassistant.const' (/usr/local/lib/python3.7/site-packages/homeassistant/const.py)

Sorry about that -- the branch was based on dev.  I just rebased it to 0.89.0b1 and if you copy over the latest it should not have that error!

I tried and it works. Great work!
I tried all functions and the only one that doesn't make effect is FAN MODE. When selected nothing change. But selecting fan mode from the app, in HA is updated correctly.
Thank you!

I mapped notSupported to fan only as that's what it's using to display the mode... but guess it doesn't work for setting the mode.  Are you able to set fan only using the classic app?
There actually is a 'fanOnly' option in the airConditionerMode capability spec.  It may use that for setting the mode (just not displaying the current mode, which is odd).

I just pushed a commit that will try using fanOnly when setting fan mode.  Copy over the latest climate.py and see if that works?

Exactly, show correctly only the status of fan mode but I'm not able to set it(also with new climate.py). Also in the classic app I'm not able to set fan mode(remains "updating").
In first image that I send you of smartthings web site in payload-> supportedModes there is "Wind". Means fan mode?

Yes that's from the OCF (open connectivity framework) standard.  Looks like a mapping issue internally to the enumeration in airConditionerCapability. It probably works in the new app because they are manipulating the OCF interfaces directly, same way they are setting fan direction...  Let me ping some contacts at ST and see if we can get this sorted out.

I've opened a ticket with SmartThings and am in contact with the engineers.  This appears to be an issue on their side and they are working on a fix.
Meanwhile, I will move this enhancement forward with the caveat that "Fan Only" mode cannot be set until the parent issue is resolved.

Ok perfect. Thank you! To use it I have to use HA beta or can I switch to official 0.89 release and use smarthings custom component?

This hasn’t been submitted yet, so it only exists in my branch.  We’ll target to get this out in 0.90 which will release in about 2 weeks on 3/20.

This will be part of v0.90.0 with a release date of 3/20

Hi @andrewsayre, I installed the last home assistant update and my climate disappeared.
Filtering entities the situation is this

I have already tried to remove and add again climate but never change.
Do you have any suggestion?
Thanks


[FEATURE REQUEST] Plugin support

Is your feature request related to a problem? Please describe.
Trying to call a plugin within a spawn isolate fails. This limits use cases for this package.
Describe the solution you'd like
Since 13937 it's possible to pass a root token and call BackgroundIsolateBinaryMessenger.ensureInitialized within the isolate. But it only works for some plugins (those that do dart -> platform messenging, but not platform -> dart messenging). Hopefully this package can do the necessary plumbing so that it works whatever the plugin.
Describe alternatives you've considered
flutter_isolate is another package trying to make isolates nicer, and it supports plugins, but it has its own issues and limitations.

Hi!
This is definitely something I've intended to look at at some point. I'll have to look at what the overhead for this would be, and what I'd need to do to make integral_isolate still be able to run in a pure Dart environment too.
I'd be more than happy to get feedback on this and discuss my options/potential solutions to be able to bring interop with packages to integral_isolates. ☺

Hello again!
I am sorry for being so slow at investigating this, but I've had a lot of stuff on my plate, and this feature request was frankly not on top of my list.
I have tried something that seems to work for me, but I also want to check if it will solve it for you too.
If you try calling this piece of code before making any calls to a plugin:
// Define as a top level function or a static function, just as normal
void _initPluginForIsolate(RootIsolateToken rootIsolateToken) {
  BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken);
  print('I am init!');
}
...
// Creating the isolate
isolate = StatefulIsolate();
final rootIsolateToken = RootIsolateToken.instance!;
await isolate.compute(_initPluginForIsolate, rootIsolateToken);

Are you able to call the plugins you wish to work then?
I seem to be able to call at least the shared_preferences plugin, but I would love to hear how well this workaround works.
If it works well, I'll try to neatly wrap it in a nice package and do it automatically in Flutter apps.

I realise now that I repeated exactly what you said and didn't actually solve your problem 🙈
But I am looking into how to fix this and I'm working on a wrapping package that sets up and allows for this functionality.

Glad you're looking into it. However, to be perfectly candid, when I opened this issue I was investigating something and trying out several isolate related packages, but I can't remember what I was searching then... So I can't really follow up on my initial request or help you push this further.

I believe I've come to the conclusion that I will need to implement native code for all supported platforms in order to support hooking up native calls to push data to Flutter.
I have decided that I will create the package anyway, but initially only support ’dart -> native’. I will then create a follow up issue in the backlog to try to implement ’native -> dart’.
At least I think that I know how I want the API surface to look when I eventually cross that road.
Thank you for the feature request, it is definitely something that I really want to have eventually!


[feature]: Test cases for new APIs

WE need to create some test cases for new APIs. These test cases should be easy for new comers to catch up. Currently, the code coverage see below.

However, the code coverage for new APIs are 0%. So, we have the following tasks

[ ] #26
[ ] #27

https://dev.to/devasservice/fastapi-best-practices-a-condensed-guide-with-examples-3pa5?context=digest


[10.x] Fix parallel testing without any database connection

When running Parallel Testing, one of the checks that happens within the framework is whether we're using SQLite or not. However, this check is done via DB::getConfig(). What truly happens here is:

DB Facade is invoked
DatabaseManager class is resolved
DatabaseManager::__call() is invoked
DatabaseManager::connection() is invoked
The default Database configuration is loaded from database.default.
A new connection is established on this database.
A verification of whether getConfig() returns :memory: is performed.

As we can see, even if we specify without-databases, the ParallelTesting class is still establishing a database connection.
The added test goes to show that if we create a Laravel Application and delete the database.default configuration in our project skeleton, then php artisan test --parallel --without-databases will still crash because it cannot establish a database connection to check if it's SQLite or not.
The code change partially mitigates the problem. I think a deeper issue is the fact that a complete database connection is being established just to check whether the developer is using SQLite or not. However, for the sake of simplicity and brevity, we can at least use the without-databases flag to decide to not even try connecting to any database.

I'm not sure what's going on with GitHub Actions here. I tried installing PHP 8.1 and running the tests, but they are working fine


[docs] Fix API info generation for Menu.SubmenuTrigger

Preview: https://deploy-preview-964--base-ui.netlify.app/new/components/menu#submenu-trigger

Do you know what is the root cause of the issue? Why did the docgen ignore the component with its previous name?

The logic comes from here: https://github.com/mui/base-ui/blob/master/docs/src/components/reference/rehypeReference.mjs#L52 it expects that each part starts with the component name. I noticed that only this component didn't follow this pattern, so I renamed it.

It's also the case with Tabs (we don't have TabsTab, just Tab)

NIce catch, I guess Vlad didn't get to the Tabs doc yet :) I will fix it as part of this PR too.


[Feature] Table Widget Features v2

Adding a list here instead of separate issues. I'll create separate issues for these once we discuss them.
Summary

[ ] 1. Format column as boolean(show icons as an alternate way of representation)
[ ]
[ ] 2. Disable sorting for end-user view mode(required when sorting will mess up the row order)
[ ]
[ ] 3. Include refresh button in the table
[ ] 4. Sticky columns and rows(freeze pane in excel/sheets style)
[ ] 5. Underline style for text
[ ] 6. Currency column
[ ]
[x] 7. Show or hide table controls
[ ]
[ ] 8. Show or hide column names
[ ]
[ ] 9. Set the row height by property pane control(compact view)

@areyabhishek @riodeuno can we add a simple refresh button? Seen a few requests for this and looks very low effort

Note:

The table widget will use a platform API which refreshes all the Actions the tableData is bound to.

it seems that there is no way to have for example a tall cell with a big font, or a short cell with a small font. I think that Row Height property should be available in the table property pane (like the Font size property).

Also it seems that I can style the columns with JS code, but not the full row: it's common to use the row background color to highlight for example a record in a relevant status

+Make tables writable. Currently tables are readonly widgets.
+Better yet, turn tables into spreadsheets link mintdata https://mintdata.com/docs/learn/core-mechanics/craft-the-user-experience/display-based-on-spreadsheet/

@mingfang we'll be introducing another component called the data grid to achieve this #1392

I'd like to request a feature extension to the download button.
Instead of downloading entire table data in PDF, EXCEL, CSV.
Please also allow to filter option to only download data from selected rows, data in current view and all data after a filter is applied.

@vishaldfreak thanks for the feature request. You can also make use of the download action to achieve this today
https://docs.appsmith.com/framework-reference/download

https://discord.com/channels/725602949748752515/760761686549463060/857936274919915541

having the ability to groupby (and sum all number columns, and eventually concatenate all other) in tables would actually be a great feature. It would spare tons of js code in table setup

@jmcouffin with group by do you wish to reorder table rows (which is currently possible with filter and sort) or show sum/total of different columns? Can you provide a bit more clarity with the request here?

@somangshu " show sum/total of different columns" while row being grouped by a specific column

@somangshu this feels like a feature for a data grid and introducing that would be more beneficial here than struggling to add this in a table widget. I don't think I've seen any table components provide this functionality

@jmcouffin in favour of an upcoming widget i.e. DataGrid, We plan to take the grouping and sum/avg/count features over there.

sounds good to me
@somangshu https://github.com/somangshu
Thanks
Le mer. 7 juil. 2021 à 09:15, Somangshu Goswami @.***>
a écrit :

@jmcouffin https://github.com/jmcouffin in favour of an upcoming widget
i.e. DataGrid, We plan to take the grouping and sum/avg/count features over
there.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/appsmithorg/appsmith/issues/2860#issuecomment-875351037,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB4B4A5CXWXEWWKLNQ3OZ3DTWP5HTANCNFSM4XBVT5QQ
.


Parameters - Permitted Values

I think it would be very useful if the permitted values for each parameter were listed and what they did.  eg -Handlers a permitted value is PageHandler

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

ID: 451dc826-b072-5bcd-e98d-319ee82d73fe
Version Independent ID: c0c6ad38-e86c-cd0c-ac01-033791404e25
Content: Get-PnPProvisioningTemplate (sharepoint-pnp)
Content Source: sharepoint/sharepoint-ps/sharepoint-pnp/Get-PnPProvisioningTemplate.md
Service: unspecified
GitHub Login: @techwriter40
Microsoft Alias: kirks

@VesaJuvonen for your review.

We'll consider adding this. In the meantime, the handlers parameter is an enum, this means that you can use PowerShell completion (tab) to loop through the possible handlers. It's on our backlog to create up to date documentation for the Provisioning Engine in general.

Closing based on comment from @erwinvanhunen.


This feels like assembly but backwards

Why do you have var then type name?
Why do you have to explicitly use write/load?
Why are the statements all backwards? It's harder to read.
For example why x y == instead of == x y or better yet, comp x y to match the direction the write and load keywords are going.
How would you even write more complex operations with this syntax? (e.g. (x ^ (y << 1)) >> 1) ^ (z << 1))
This just feels inconvenient

it feels backwards because it is, refer: https://en.wikipedia.org/wiki/Reverse_Polish_notation
you have to explicitly use write/load because it  is stack bases, so you first push the addr of variable and then do your next operation.
as for ur last point.... youll just have to write everything one by one for now : >


Need help with using date picker within modal

The icons for the datepicker overlap when validation fails (calendar and x mark).  Also, I can't select date when validation fails.  I'm trying to force users to select the date and not type it in manually. The date picker is within a form which is in a modal. Where did I mess up?  Thanks.

D.O.B.

![dob](https://cloud.githubusercontent.com/assets/6640569/8892614/30730cce-3330-11e5-9191-eddff6b35ed4.png)
$('#normalForm')
.find('[name="n_persondob"]')
// Revalidate the color when it is changed
.change(function (e) {
$('#normalForm').formValidation('revalidateField', 'n_persondob');
})
.end()
.formValidation({
framework: 'bootstrap',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
excluded: [':disabled', ':hidden', ':not(:visible)'],
fields: {
n_persondob: {
validators: {
notEmpty: {
message: "The person's D.O.B is required"
},
date: {
format: 'YYYY-MM-DD',
message: 'The value is not a valid date'
}
}
}
}
}).on('success.form.fv', function (e) {
// Prevent form submission
e.preventDefault();
});

I solved the icon overlap issue with this:
�

The other issues were with the formvalidation plugin and how I was using it:
$('#n_persondob')
.on('dp.change dp.show', function (e) {
// Revalidate the date when user change it
$('#normalForm').formValidation('revalidateField', 'n_persondob');
});�


libreoffice icons are missing

No icon is seen in desktop menu (or, it shows just a generic icon for an executable). Further, there doesn't seem to be any icon files in libreoffice store path. I searched for ".png" and ".svg" but found nothing relevant. So it's not just that the .desktop file has bad Icon= setting.

Should be fixed in master.

I only see icon for "Calc". The other apps have the dummy/executable icon still. Weird.

I only see icon for "Calc". The other apps have the dummy/executable icon still. Weird.

Same here. I'm on nixpkgs unstable, idk if that has an effect.

Nevermind, I'm sorry, logging out and back in after rebuilding fixed it. :+1:


Orbie on with different color (orange?) for onion-only mode

Currently implementing Orbie in Orbot Apple.
@cstiens, can you please provide another Orbie version (when it's on) which is suitable for onion-only mode?
Thank you!

@tladesignz Here's one to use for now. I may want to change it later after giving it more thought.

This is great, thank you!


cargo-update: 14.0.2 -> 14.1.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/nabijaczleweli/cargo-update/releases.
meta.description for cargo-update is: Cargo subcommand for checking and applying updates to installed executables
meta.homepage for cargo-update is: https://github.com/nabijaczleweli/cargo-update
meta.changelog for cargo-update is: https://github.com/nabijaczleweli/cargo-update/releases/tag/v14.1.0
Updates performed

Rust version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 14.1.0 with grep in /nix/store/gpkr9j3z4pvfazkx9jw02kraa3xipzi9-cargo-update-14.1.0
found 14.1.0 in filename of file in /nix/store/gpkr9j3z4pvfazkx9jw02kraa3xipzi9-cargo-update-14.1.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

cargo-update

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/gpkr9j3z4pvfazkx9jw02kraa3xipzi9-cargo-update-14.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cargo-update https://github.com/r-ryantm/nixpkgs/archive/0223f4bc161eb5efba235da4bc38655236d33d64.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/0223f4bc161eb5efba235da4bc38655236d33d64#cargo-update

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/gpkr9j3z4pvfazkx9jw02kraa3xipzi9-cargo-update-14.1.0
ls -la /nix/store/gpkr9j3z4pvfazkx9jw02kraa3xipzi9-cargo-update-14.1.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cargo-update

Maintainer pings
cc @Gerschtli @Br1ght0ne @JohnTitor @matthiasbeyer for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/nabijaczleweli/cargo-update/releases.
meta.description for cargo-update is: Cargo subcommand for checking and applying updates to installed executables
meta.homepage for cargo-update is: https://github.com/nabijaczleweli/cargo-update
meta.changelog for cargo-update is: https://github.com/nabijaczleweli/cargo-update/releases/tag/v14.1.1
Updates performed

Rust version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 14.1.1 with grep in /nix/store/cbn1sqxvlqz38ikgwacmj284jaqjxjsj-cargo-update-14.1.1
found 14.1.1 in filename of file in /nix/store/cbn1sqxvlqz38ikgwacmj284jaqjxjsj-cargo-update-14.1.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

cargo-update

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/cbn1sqxvlqz38ikgwacmj284jaqjxjsj-cargo-update-14.1.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cargo-update https://github.com/r-ryantm/nixpkgs/archive/9bd70468baf00273e9178f8c76d612ca74ba2e3d.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/9bd70468baf00273e9178f8c76d612ca74ba2e3d#cargo-update

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/cbn1sqxvlqz38ikgwacmj284jaqjxjsj-cargo-update-14.1.1
ls -la /nix/store/cbn1sqxvlqz38ikgwacmj284jaqjxjsj-cargo-update-14.1.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cargo-update

Maintainer pings
cc @Gerschtli @Br1ght0ne @JohnTitor @matthiasbeyer for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.


38 add microcontroller clock functions

Added some new calls! In pysquared you can now c.turbo to change the clock speed from 62.5Mhz (when it is False) to 125Mhz (when it is True). Also made it so that we boot into 62.5Mhz clock for power saving.
Also added a fix for TCA try_lock hangs when the camera inits.

lgtm


updated jquery waypoint to use a higher contrast color

changed the tested color to orange, also updated the spanish translation to match
tested in chrome
Closes #5719

You didn't update the error message:
"assert($(\"#right-well\").children().css(\"color\") === 'rgb(255, 165, 0)', 'message: All children of <code>#right-well</code> should have green text.');",
Otherwise looks good.

fixed that, also updated the following challenges to have the `#right-well1 be orange for consistency.

Looking good!  Thanks!


Medical Bounding Box Requirements

Could you consider new annotation scenarios? For example, segmentation or labeling of bounding boxes or masks for CT and MRI format 3D images in the medical field.

Sorry, this type of scenario will be special and the labeling method will be completely changed and will not be considered for a short time. Welcome to give us PR~


[Admin] (CATS) Fix issues from September 2019 report.

Docs Build status updates of commit 766de25:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/develop/authorize-to-microsoft-graph-without-sso.md
:white_check_mark:Succeeded

docs/develop/manifest-element-ordering.md
:white_check_mark:Succeeded

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


AUR installer leads to incorrect file type

When installing via yaourt or pacaur, the terminal reads "installation failed - unrecognized filetype" after downloading "package.deb"
running:
Antergos (Arch x64)
DE:
Xfce4
Installing via:
both terminal/pacaur and pamac aur

@parkcitymedia Unfortunately, the package is not maintained by us. Please download the file from release section :)

Ah, understood. thank you


FormRenderer does not display a validation errors if the fields are in a subform

Describe the bug
FormRenderer does not display a validation error if the fields are in a subform.
(Validation is being performed.)
To Reproduce
Steps to reproduce the behavior:

Show wizard made by FormRenderer.
Click Next button of wizard without filling requred fields.
Stay the page due to validation error. But validation errors are not displayed.
Fill required fields and click Next button.
Next page of wizard is displayed.

Expected behavior
Validation results in the subforms in the wizard should be displayed.
Desktop (please complete the following information):

OS: Windows 10
Browser: Chrome 86.0.4240.111
Version: 1.0.12

Additional context
Code to reproduce:
import React from 'react';
import FormRenderer, { componentTypes, validatorTypes } from 'aws-northstar/components/FormRenderer';
import Container from 'aws-northstar/layouts/Container';
import Box from 'aws-northstar/layouts/Box';

const ReviewTemplate = (data: any) => {
    return <Box>{JSON.stringify(data)}</Box>;
};

const wizardSchema = {
    fields: [
        {
            component: componentTypes.WIZARD,
            name: 'wizard',
            submitButtonText: 'Custom Submit Label',
            fields: [
                {
                    name: 'step-1',
                    title: 'title-1',
                    description: 'description-1',
                    fields: [
                        {
                            component: componentTypes.SUB_FORM,
                            title: 'subform-title',
                            description: 'subform-description',
                            name: 'InputData',
                            fields: [
                                {
                                    component: componentTypes.TEXT_FIELD,
                                    name: 'Name',
                                    label: 'Name',
                                    isRequired: true,
                                    isReadOnly: false,
                                    validate: [
                                        {
                                            type: validatorTypes.REQUIRED,
                                        },
                                    ],
                                },
                            ],
                        },
                    ],
                },
                {
                    name: 'step-2',
                    title: 'review',
                    description: 'review',
                    fields: [
                        {
                            component: componentTypes.REVIEW,
                            name: 'review',
                            Template: ReviewTemplate,
                        },
                    ],
                },
            ],
        },
    ],
    header: 'header',
    description: 'description',
};

const initialValues = {
};

function MyWizard() {
    return (
        <FormRenderer schema={wizardSchema} initialValues={initialValues} onSubmit={console.log} onCancel={console.log} />
    );
}
export default MyWizard;

Hi @shellyln,
In your example, you use Wizard and SubForm together.
Since the Wizard and Subform are both for separating a group of information within a form. Usually, we would recommend to use SubForms when you would like to create a page form while use Wizard to create multi pages form.
Can you please provide your use case for this if possible?

Hi @jessieweiyi,

Can you please provide your use case for this if possible?

I'm trying to get a manual review of records in a wizard step.
The records are generated from one external system record and will be stored in multiple tables.
I'm using subform to group the items in each table.

🚀  A new version 1.0.13 of  aws-northstar  has been released.
https://github.com/aws/aws-northstar/releases/tag/v1.0.13
Release v1.0.13 · aws/aws-northstar
1.0.13 (2020-11-05) Bug Fixes Show Error when validation in SubForm used inside Wizard (#35) (b2987ca)

Thanks for the speedy fix!


Error in Android Example

Hello,
I want to tell that I am using source code which I got from tensorflow.com/lite website. Now I am frustrated to solve this error. Please see screenshot and let me know. how to fix it and use this. When I start the app then it takes seconds to take to crash my app.

@KanwarpartapSinghBimrah ,
Please provide details about what platform you are using (operating system, architecture). Also include your TensorFlow version.
In order to expedite the trouble-shooting process, please provide complete code snippet to reproduce the issue reported here in accessible format. Thanks

@oanush Now it's working fine and I fix all the errors. if in future I need help I let you know.

Thank you for the feedback.Closing since the issue is resolved.


Traefik UI not accessible after install

After install, traefiks ingress isn't accessible.  This was after the sub domain change.

Fixed this a while ago.


Deploy internal test environments (Andrew/??)

@mattmoyer do you think we can call this one done? I think we chatted in retro last week that we didn't want to stand up new test environments for CI after all.


'CustomElementRegistry': the name "bubble-pop-up" has already been used with this registry

Am I the only one having this issue:
Firefox console:
Uncaught DOMException: Failed to execute 'define' on 'CustomElementRegistry': the name "bubble-pop-up" has already been used with this registry
define scoped-custom-element-registry.js:44
checkElementInterval bubble-pop-up.js:1
setInterval handler* bubble-pop-up.js:1
67 app-WGjVk0xiOKY.js:2
HA logs:
Logger: frontend.js.latest.202310302
Source: components/system_log/init.py:300
First occurred: 07:48:49 (1207 occurrences)
Last logged: 07:51:09
Uncaught error from Firefox 119.0 on Mac OS 10.15 Error: Failed to execute 'define' on 'CustomElementRegistry': the name "bubble-pop-up" has already been used with this registry 87659/</window.CustomElementRegistry.prototype.define (src/scoped-custom-element-registry.js:44:14) checkElementInterval< (/hacsfiles/Bubble-Card/bubble-pop-up.js:1:20903) setInterval handler* (/hacsfiles/Bubble-Card/bubble-pop-up.js:1:20875)

So I finally found the problem. After removing the bubble card completely I still got the error. Found a duplicate entry in the resources loading a cached version of the bubble card.
These cashing issues 🤦🏻♂


Pass extra baseplate-script args to invoked script

Fixes part 1 of https://github.com/reddit/baseplate.py/issues/58
This allows users to pass additional args to the invoked script. This should continue to work if no additional args are passed. This allows scripts to parse these args as they usually would with argparse:
def run(app_config, *args):
  parser = argparse.ArgumentParser()
  # parser.add_arguments
  args = parser.parse_args(args)

👓 @spladug

Clever trick using *args for backwards compat. First reaction was a bit squicked because it felt like it'd lock us into the args being strings, but seeing your example usage makes it look pretty clean/clear. I think I'm totally on board with this but maybe we should get one or two more sets of eyes on it just to be sure?
:fish:

👓 @pacejackson @bsimpson63

One thing that comes to mind: the error message the user would get if they accidentally put some extra junk on the command line when the script isn't expecting it would be super confusing. Is there anything we could do to detect that case (inspect the entrypoint signature? :grimacing:) and give a more helpful error message?

That can be done. I suppose it should cover any scenario where the extra arg count doesn't align with the invoked function signature.

Would that be solved by encouraging writing your entrypoint like this?:
def run(app_config, *args):
  parser = argparse.ArgumentParser()
  # parser.add_arguments
  args = parser.parse_args(args)

Yeah that definitely works moving forward. I think @spladug is concerned about existing scripts that haven't been updated yet

Ah yes, other people have in fact written code before now 😅
That's a good point!

💇

Looks like I should be using the signature() api instead of getfullargspec() if we are only supporting 3.6+

💇

Merged as d79ddda5a566019055dd537e80822c932c911d9f. Thanks!


Pass context to events

Oh snap! I apologize for the noise. I meant to open this PR on my own forked repository to keep track of some metrics & tracing updates. Sorry for the confusion, and thanks for the reply @robbix1206!


vendor extension inside "items"

Hey guardrail is a super great project and I love it but I'm here to report a bug:
Generating clients for akka-http. Using the maven plugin 0.59.0.
In my spec file I choose a x-jvm-type nested inside some request paramters on a Post. The generated client ends up taking String instead of the type I specified.
Example snippet:
  /v1/Services/{ServerlessServiceSid}/Builds:
    post:
      tags:
        - "Builds"
      x-jvm-package: "Serverless"
      summary: "Create a build of the service"
      operationId: "createBuild"
      parameters:
        - $ref: "#/components/parameters/ServerlessServiceSid"
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - AssetVersions
                - FunctionVersions
                - Dependencies
              properties:
                AssetVersions:
                  type: array
                  items:
                    x-jvm-type: ServerlessFileVersionSid         # !
                    example: ZN00000000000000000000000000000000  # !
                    type: string                                 # !
                FunctionVersions:
                  type: array
                  items:
                    x-jvm-type: ServerlessFileVersionSid         # !
                    example: ZN00000000000000000000000000000000  # !
                    type: string                                 # !
                Dependencies:
                  type: string
      responses:
        201:
          description: "Created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServerlessBuildResource"
        400:
          $ref: '#/components/responses/BadRequest'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/InternalServerError'

The generated client has this:
def createBuild(serverlessServiceSid: ServerlessServiceSid, assetVersions: Iterable[String], functionVersions: Iterable[String], dependencies: String, headers: List[HttpHeader] = Nil): EitherT[Future, ServiceClientError, CreateBuildResponse]

I expected the two Iterable[String] to be Vector[ServerlessFileVersionSid]
Have attempted a workaround of moving the #! lines above to a $ref but generated client didn't change.

Just some further info so I don't forget, because I got confused about this:

This does work for array properties in an object specified in components/schemas (or definitions for Swagger v2).
This does not work for array parameters specified on a request.
This does not work for array properties in an object specified in-line in a requestBody.

Ultimately we want to unify these things so we don't need this code in three places; they are separate because the Swagger v2 used different model representations, but the OAPI v3 parser does actually model these things the same way.


List of overloads shown on compiler error doesn't replace type parameters

Consider this code:
a = [1, 2, 3]
a.push 'a'

The error we get is this:
In foo.cr:2:3

 2 | a.push 'a'
       ^---
Error: no overload matches 'Array(Int32)#push' with type Char

Overloads are:
 - Array(T)#push(value : T)
 - Array(T)#push(*values : T)

Note that the method is defined as push(value : T) and it shows up like that, but here the compiler knows that T is Int32 so it could tell the user that, instead of having them do the replacement.
Ideally, the error should look like this:
In foo.cr:2:3

 2 | a.push 'a'
       ^---
Error: no overload matches 'Array(Int32)#push' with type Char

Overloads are:
 - Array(Int32)#push(value : Int32)
 - Array(Int32)#push(*values : Int32)

That's a good point.
Maybe I can send a PR with everything I have in mind to improve these errors, instead of suggesting or tackling one thing at a time 😊

Actually this is unrelated to the other error message improvement...

I agree with those concerns, but if we go with #11106 then it won't matter because you'll have a short summary explaining why each overload didn't match.

Perhaps we could just enhance the current output to include the value of type parameters. For example like this:
1) Array(T: Int32)#push(value : T)
2) Array(T)#push(value : T) with T: Int32

This addresses the concerns mentioned in https://github.com/crystal-lang/crystal/issues/12170#issuecomment-1170358599 (which I share).
I think I like 2) better despite being a bit more verbose, but it's probably not a big difference.

For what it's worth: In Java you don't have type unions, so the output is typically more concise. But you also often have longer namespaces which might balance that to some degree.

Yeah, I just tried it with a union type and it doesn't look very good.

I really think original compile error is better.
In foo.cr:2:3

 2 | a.push 'a'
       ^---
Error: no overload matches 'Array(Int32)#push' with type Char  # <= 1. here told user, it accept Int, but you push a Char.

Overloads are:
 - Array(T)#push(value : T)    # <= 2. here show the REAL overloads definition is here, it good, more is redundant.
 - Array(T)#push(*values : T)

From my point of view, the issue is, we should improve 1's readability, as described in #11106 , it better.
but, even, if we can output 1's content as 2, it improvement a lot.
following is a really example come from avaram, a very small user table.
After chang to wrong changes, i get error message like following:
Overloads are:
 - UpdateUser.update(record : T, with params, id : Int64 | Avram::Nothing = Avram::Nothing.new, created_at : Time | Avram::Nothing = Avram::Nothing.new, updated_at : Time | Avram::Nothing = Avram::Nothing.new, open_id : String | Avram::Nothing = Avram::Nothing.new, account : String | Avram::Nothing = Avram::Nothing.new, password_digest : String | Avram::Nothing = Avram::Nothing.new, roles : Array(String) | Avram::Nothing = Avram::Nothing.new, auth_token_salt : String | Avram::Nothing = Avram::Nothing.new, licenses_allowed_creation_times : Int16 | Avram::Nothing = Avram::Nothing.new, last_sign_in_attempt_at : Time | Avram::Nothing | Nil = Avram::Nothing.new, failed_attempts : Int32 | Avram::Nothing = Avram::Nothing.new, locked_at : Time | Avram::Nothing | Nil = Avram::Nothing.new, password : String | Avram::Nothing = Avram::Nothing.new, password_confirmation : String | Avram::Nothing = Avram::Nothing.new, &)
 - UpdateUser.update(record : T, id : Int64 | Avram::Nothing = Avram::Nothing.new, created_at : Time | Avram::Nothing = Avram::Nothing.new, updated_at : Time | Avram::Nothing = Avram::Nothing.new, open_id : String | Avram::Nothing = Avram::Nothing.new, account : String | Avram::Nothing = Avram::Nothing.new, password_digest : String | Avram::Nothing = Avram::Nothing.new, roles : Array(String) | Avram::Nothing = Avram::Nothing.new, auth_token_salt : String | Avram::Nothing = Avram::Nothing.new, licenses_allowed_creation_times : Int16 | Avram::Nothing = Avram::Nothing.new, last_sign_in_attempt_at : Time | Avram::Nothing | Nil = Avram::Nothing.new, failed_attempts : Int32 | Avram::Nothing = Avram::Nothing.new, locked_at : Time | Avram::Nothing | Nil = Avram::Nothing.new, password : String | Avram::Nothing = Avram::Nothing.new, password_confirmation : String | Avram::Nothing = Avram::Nothing.new, &)
 - UpdateUser.update(record : T, params : Hash, **named_args, &)
 - User::SaveOperation.update(record : T, with params, id : Int64 | Avram::Nothing = Avram::Nothing.new, created_at : Time | Avram::Nothing = Avram::Nothing.new, updated_at : Time | Avram::Nothing = Avram::Nothing.new, open_id : String | Avram::Nothing = Avram::Nothing.new, account : String | Avram::Nothing = Avram::Nothing.new, password_digest : String | Avram::Nothing = Avram::Nothing.new, roles : Array(String) | Avram::Nothing = Avram::Nothing.new, auth_token_salt : String | Avram::Nothing = Avram::Nothing.new, licenses_allowed_creation_times : Int16 | Avram::Nothing = Avram::Nothing.new, last_sign_in_attempt_at : Time | Avram::Nothing | Nil = Avram::Nothing.new, failed_attempts : Int32 | Avram::Nothing = Avram::Nothing.new, locked_at : Time | Avram::Nothing | Nil = Avram::Nothing.new, &)
 - User::SaveOperation.update(record : T, id : Int64 | Avram::Nothing = Avram::Nothing.new, created_at : Time | Avram::Nothing = Avram::Nothing.new, updated_at : Time | Avram::Nothing = Avram::Nothing.new, open_id : String | Avram::Nothing = Avram::Nothing.new, account : String | Avram::Nothing = Avram::Nothing.new, password_digest : String | Avram::Nothing = Avram::Nothing.new, roles : Array(String) | Avram::Nothing = Avram::Nothing.new, auth_token_salt : String | Avram::Nothing = Avram::Nothing.new, licenses_allowed_creation_times : Int16 | Avram::Nothing = Avram::Nothing.new, last_sign_in_attempt_at : Time | Avram::Nothing | Nil = Avram::Nothing.new, failed_attempts : Int32 | Avram::Nothing = Avram::Nothing.new, locked_at : Time | Avram::Nothing | Nil = Avram::Nothing.new, &)

It Crazy.
Even, if we can output like this, it better.
 - Array(Int32)#push(value : Int32)
 - Array(Int32)#push(*values : Int32)


Missing argument for parameter 'placemark' in call

The sample posted no longer compiles with xCode 8.1 and Swift 3.
The problem lies on the line:
let initialLocation = Location(name: "my home", location: location)
"Missing argument for parameter 'placemark' in call". The compiler wants:
let initialLocation = Location(name: "my home", location: location, placemark: placemark)
I've been trying to understand how to init CLPlacemark from CLLocation, but I've had no luck.
I can not get xCode to recognize init(location: CLLocation, name: String?, postalAddress: CNPostalAddress?) so I do not have an easy way to create a CLPlacemark from CLLocation.
If I pass in an empty CLPlacemark, it crashes.

Hello, sorry, away from Mac now. Could you please try with MKPlacemark, passing [:] as address dictionary?


Create UI Pattern Library

Tasks

[x] Design a UI pattern library that includes all UI components and instructions for usage
[x] Review with existing stakeholders
[x] Revise document as needed

Outcomes

[x] A living pattern library document for designer and front-end developer reference

Completed


⚠ Samsung has degraded performance

In 60ab0b9, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2452 ms

Resolved: Samsung performance has improved in 717af64.


Problem with Safari 11 Mac OSX High Sierra

Hi,
I have a problem with the demo.
When I record something, most of the times (unfortunately not always) the first one or two seconds are clipped - meaning that after some silence the audio starts to play with a click. So if I record 'one two three' with a slow voice, I only hear ' ___ (click) two three'.
I wonder why that is?
Thanks, Dirk

Seems like OS just have a lag during mic enabling. I don’t see a way to solve it.

No, this demo works fine, no trace of lag:
https://danielstorey.github.io/WebAudioTrack/index.html

Good reason

Unfortunately, I will not have time in the next few weeks (need a rest after conferences). Maybe somebody will investigate and send PR?

Also I don’t have Mac to reproduce the error :(

My findings so far: this is a Safari/WebKit bug which I reported (here).[https://bugreport.apple.com/web/?problemID=42852112]
The other library has the same problem (a second of silence in the first recording, https://github.com/danielstorey/WebAudioTrack/issues/5 )
One possible workaround to mitigate this, is to make a short recording right a the start:
https://github.com/dirkk0/record-audio-webkit/blob/master/index.html#L47-L51

@dirkk0 good research :+1:
Should we do this quick recording in the library? Or  we just should recommend do it in app level in the docs?

For this particular problem, I would recommend app level.

Sorry for the long delay. Yes, I can do that.

I just checked my own demos - the bug seems to be gone, but my bug report on the Apple site is still open.
I'll check again in a week or two, and if it works then I'll close this issue as obsolete.

This bug seems to have come back as I've been running into it recently. Using Dirk's work around seems to fix it though. Unfortunately the bugreport link is dead as I guess Apple have moved to using other platforms.


require POST method + test

Fixes #474
This fix only applies to import - the export view requested via GET results in just the form.

Thanks, merged!


Typo in policyname lambdaexecute

I found a typo in the lambda execute role at line 61:
https://github.com/aws-samples/aws-codecommit-serverless-backup/blob/72e099d2c7918d87da8b6d169610387b6a0d0948/codecommit_backup_cfn_template.yaml#L61
Please, replace GPutbject with PutObject.
// Siert

Noticed the same thing lol... also worth to noted that Lambda IAM role should not need any access to S3 at all. it only need access for CodeBuild:start. Should remove s3 permission entirely.


MudTable does not execute the ServerData method in some cases.

Bug type
Component
Component name
MudTable
What happened?
Pressing enter in the form page text box will trigger the OnValidSubmit event, which uses Navigation.NavigateTo("/list") to return to the list page.
After returning to the list page, the data of the list is not loaded.
list page
<MudTable Hover="true"
          Striped="true"
          @ref="_table"
          ServerData="x => LoadDataAsync(x)"
          CurrentPage="@(_pageIndex - 1)"
          RowsPerPage="PageSize">
  @* Todo *@
</MudTable>

private int _pageIndex = 1;
private const int PageSize = 10;
private MudTable<Model> _table;

protected override async Task OnInitializedAsync()
{
    Console.WriteLine("page init.");
    await base.OnInitializedAsync();
}

private async Task<TableData<Model>> LoadDataAsync(TableState state)
{
    Console.WriteLine("page load data.");
    _pageIndex = state.Page + 1;
    var list = await loaddata(_pageIndex, PageSize); //Pseudocode
    return new TableData<Model>()
    {
        TotalItems = list.TotalItemCount,
        Items = list
    };
}

form page
<EditForm Model="@_t" OnValidSubmit="PostDataAsync">
    <MudCard>
        <MudCardContent>
            <DataAnnotationsValidator/>
            <MudGrid>
                <MudItem xs="12" md="12">
                    <MudTextField T="string"
                                  HelperText="name"
                                  Immediate="true"
                                  Label="name"
                                  Required="true"
                                  @bind-value="_name"
                                  Variant="Variant.Text">
                    </MudTextField>

                </MudItem>
            </MudGrid>
        </MudCardContent>
        <MudCardActions>
            <MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Disabled="_isPublishing" Color="Color.Primary">
                @if (_isPublishing)
                {
                    <MudProgressCircular Class="ms-n1" Size="Size.Small" Indeterminate="true"/>
                    <MudText Class="ms-2">publishsing</MudText>
                }
                else
                {
                    <MudText>Publish</MudText>
                }
            </MudButton>
        </MudCardActions>
    </MudCard>
</EditForm>

[Inject]private NavigationManager Navigation { get; set; }
private string _name = "";

private async Task PostDataAsync(EditContext context)
{
    _isPublishing = true;
    StateHasChanged();
    await post(_name,);//Pseudocode
    Console.WriteLine("to list page");
    Navigation.NavigateTo("/list");
}

In the case of pressing enter, the return list page will not load data, but in the case of clicking a button it will load data.
Expected behavior
After pressing Enter to submit the data, return to the list page to load the data.
Reproduction link
https://try.mudblazor.com/snippet/GuGvlQOeptyFbXUA
Reproduction steps
1.[Inject]private NavigationManager Navigation { get; set; }
2.Fill in the form data
3.press Enter
I didn't reproduce it in try.mudblazor.com, but the problem still exists in my local.

Relevant log output
No response
Version (bug)
No response
Version (working)
5.1.5
What browsers are you seeing the problem on?
Chrome, Microsoft Edge
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Any updates on this? I've a similar issue. Locally it works locally but when deployed to azure the tablestate seems to be null. (Maybe it has to do with the linux service plan?)


Update README

Write about and introduce the project! Tell people what makes it so good. Feel free to read articles about writing a great README before getting started, so you know how to make this one great.
Start off by deleting the content that is in it right now, since that's just boilerplate.
Structure

Project logo
Project name (Bug Sweeper
Short introduction, including that it's a part of the code jam
What the project does
What technologies it uses

Django Channels
Vue.js
Docker

How to run the project (look at /frontend/README.md and /backend/Run-with-docker.txt for information)

And if you think there's a better way to do this, feel free to experiment :smile:

I believe this is done, for now. Thanks!


[Bug] MaxIoUAssigner is not in the task util registry. when trying to train SECOND

Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] I have read the FAQ documentation but cannot get the expected help.
[X] The bug has not been fixed in the latest version (dev) or latest version (1.x).

Task
I'm using the official example scripts/configs for the officially supported tasks/models/datasets.
Branch
1.1x branch https://github.com/open-mmlab/mmdetection3d/tree/1.1
Environment
sys.platform: win32
Python: 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)]
CUDA available: True
numpy_random_seed:<PHONE_NUMBER>
GPU 0: NVIDIA GeForce GTX 1650
CUDA_HOME: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
NVCC: Cuda compilation tools, release 11.8, V11.8.89
MSVC: Microsoft (R) C/C++ Optimizing Compiler Version 19.33.31630 for x64
GCC: n/a
PyTorch: 1.13.0+cu117
PyTorch compiling details: PyTorch built with:

    C++ Version: 199711
    MSVC 192829337
    Intel(R) Math Kernel Library Version 2020.0.2 Product Build 20200624 for Intel(R) 64 architecture applications
    Intel(R) MKL-DNN v2.6.0 (Git Hash 52b5f107dd9cf10910aaa19cb47f3abf9b349815)
    OpenMP 2019
    LAPACK is enabled (usually provided by MKL)
    CPU capability usage: AVX2
    CUDA Runtime 11.7
    NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_7
    5,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_37,code=compute_37
    CuDNN 8.5
    Magma 2.5.4
    Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.7, CUDNN_VERSION=8.5.0, CXX_COMPILER=C:/actions-runner/_work/pytorch/pytorch/builder/windows/tmp_bin/sccache-cl.exe, CXX_FLAGS=/DWIN32 /D_WINDOWS /GR /EHsc /w /b
    igobj -DUSE_PTHREADPOOL -openmp:experimental -IC:/actions-runner/_work/pytorch/pytorch/builder/windows/mkl/include -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOCUPTI -DUSE_FBGEMM -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILE
    R_USE_KINETO, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.13.0, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NC
    CL=OFF, USE_NNPACK=OFF, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.14.0+cu117
OpenCV: 4.6.0
MMEngine: 0.3.0
MMDetection: 3.0.0rc2
MMDetection3D: 1.1.0rc1+28fe73d
spconv2.0: False

Reproduces the problem - code sample
.
Reproduces the problem - command or script
python tools/train.py configs\second\second_hv_secfpn_8xb6-80e_kitti-3d-car.py

Reproduces the problem - error message
Traceback (most recent call last):
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\build_functions.py", line 121, in build_from_cfg
    obj = obj_cls(**args)  # type: ignore
  File "c:\path\to\mmdetection3d\mmdet3d\models\dense_heads\anchor3d_head.py", line 118, in __init__
    self._init_assigner_sampler()
  File "c:\path\to\mmdetection3d\mmdet3d\models\dense_heads\anchor3d_head.py", line 138, in _init_assigner_sampler
    self.bbox_assigner = TASK_UTILS.build(self.train_cfg.assigner)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\registry.py", line 454, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\build_functions.py", line 100, in build_from_cfg
    raise KeyError(
KeyError: 'MaxIoUAssigner is not in the task util registry. Please check whether the value of `MaxIoUAssigner` is correct or it was registered as expected. More details can be found at https://mmengine.readthedocs.io/en/latest/tutor
ials/config.html#import-custom-python-modules'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\build_functions.py", line 121, in build_from_cfg
    obj = obj_cls(**args)  # type: ignore
  File "c:\path\to\mmdetection3d\mmdet3d\models\detectors\voxelnet.py", line 25, in __init__
    super().__init__(
  File "c:\path\to\mmdetection3d\mmdet3d\models\detectors\single_stage.py", line 52, in __init__
    self.bbox_head = MODELS.build(bbox_head)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\registry.py", line 454, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\build_functions.py", line 240, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\build_functions.py", line 135, in build_from_cfg
    raise type(e)(
KeyError: "class `Anchor3DHead` in mmdet3d/models/dense_heads/anchor3d_head.py: 'MaxIoUAssigner is not in the task util registry. Please check whether the value of `MaxIoUAssigner` is correct or it was registered as expected. More d
etails can be found at https://mmengine.readthedocs.io/en/latest/tutorials/config.html#import-custom-python-modules'"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\path\to\mmdetection3d\tools\train.py", line 128, in <module>
    main()
  File "C:\path\to\mmdetection3d\tools\train.py", line 117, in main
    runner = Runner.from_cfg(cfg)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\runner\runner.py", line 434, in from_cfg
    runner = cls(
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\runner\runner.py", line 404, in __init__
    self.model = self.build_model(model)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\runner\runner.py", line 803, in build_model
    model = MODELS.build(model)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\registry.py", line 454, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\build_functions.py", line 240, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "C:\path\to\venv\mmdetection3d\lib\site-packages\mmengine\registry\build_functions.py", line 135, in build_from_cfg
    raise type(e)(
KeyError: 'class `VoxelNet` in mmdet3d/models/detectors/voxelnet.py: "class `Anchor3DHead` in mmdet3d/models/dense_heads/anchor3d_head.py: \'MaxIoUAssigner is not in the task util registry. Please check whether the value of `MaxIoUA
ssigner` is correct or it was registered as expected. More details can be found at https://mmengine.readthedocs.io/en/latest/tutorials/config.html#import-custom-python-modules\'"'

Additional information
It is in mmdet. How can MaxIoUAssigner be registered in mmdetection3d?

@vavanade  Hi, please modify MaxIoUAssigner the config as mmdet.MaxIoUAssigner. A similar modification if using the module in mmdet.

@vavanade , I check it again, and here is a typo. The assignment strategy should be 'Max3DIoUAssigner' rather than MaxIoUAssigner.


outline key

Outline can only be accessed by one device with a key, when the second device tries to use the same key, it gives an error and the second device cannot enter with that key. how can I do that?

Thank you for reaching out! Please contact us through the application on the device where you’re experiencing this issue  – or at support.getoutline.org – and include the GitHub issue number so that we can better support your needs.
If you haven’t already, check out the Outline Support Site at support.getoutline.org for access to help articles and more.


Ok, this should be much better now...

Here is a pull request where I don't run us around in circles.
Removed:
client/static.html
client/style.css

I probably shouldn't have put them there in the first place

Updated
server/express/ReadMe.md

to include the install instructions (should these include installing node or is that a given?)
server/sinatra/views/static.html
server/sinatra/views/style.css
We should update them in the repo as the haml/sass changes

Moved
app.coffee to server.coffee

to be consistent with the sinatra file names.

This is still dubious untested code, but hopefully it's all arranged in a way that it can grow harmoniously with everything else.  My plan is to move forward attempting to implement the rest of the features from the Sinatra implementation, and integrate with the rspec stuff.  Any questions, comments, steering, or even demands would be greatly appreciated.
Thanks for your patients and acceptance everyone, I tried to dive in head first here and belly flopped.
--nick

Here is how we can keep sinatra and express in sync.

announce intended change to client-server protocol as issue for discussion
commit change to client, server (i.e. sinatra) together with new test
other server (i.e. express) catches up when convenient

Odd. I thought I pulled this earlier this morning. I'm glad I checked.


apriltag_ros: 3.1.2-1 in 'noetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository apriltag_ros to 3.1.2-1:

upstream repository: https://github.com/AprilRobotics/apriltag_ros.git
release repository: https://github.com/AprilRobotics/apriltag_ros-release.git
distro file: noetic/distribution.yaml
bloom version: 0.9.7
previous version for package: null

apriltag_ros
* Add support for tagCircle21h7, tagCircle49h12 (#69 <https://github.com/AprilRobotics/apriltag_ros/issues/69>)
* Add support for tagCustom48h12 (#65 <https://github.com/AprilRobotics/apriltag_ros/issues/65>)
* Contributors: Anthony Biviano, Kyle Saltmarsh, Wolfgang Merkt, kai wu

CI got stuck here as well.  Closing and reopening to retrigger.


[API] import CSV data should be a string attribute in prject creation POST API

Fixed in #60, now front end send a ProjectModel object with a csv field


Setting switch state of a smart switch (custom template)

Hoping someone can help.  Just go my first tuya devices and are trying to get them going in openhab.
template: {
      state: {
        key: 1,
        type: 'bool'
      },
      power_state: {
        key: 1,
        type: 'bool'
      }
}

With the following partial template, for a smart switch with power monitoring (excluded the volts etc) I can get the volts fine (dp2/20).
But i can't get the power/state command to work to set the power on or off.

This project is mostly unmaintained at this point, while you are welcome to use it, it's pretty dead around here so there's not much help.
Your template only needs a single entry per DPS key, no need for two, although for a simple switch you can use the predefined "SimpleSwitch" type and then you don't even need a template.
As to what you're doing wrong, you are adding /command to state topic, instead of replacing the word "state" with the word "command" in the existing topic, so with your above examples these should work:
sensors/tuya/kogan-02/command off
sensors/tuya/kogan-02/power_command OFF

Basically, every "state" topic creates a corresponding "command" topic automatically, so "power_state" will create a "power_command" topic for commands, but you instead tried "power_state/command".

Did you remove the double entries in your template, I have no idea what defining two values pointing at the same DPS key will do, but it might break in the way your seeing.
Regarding, using a predefined device like SimpleSwitch does not keep you from using the DPS values, the predefined devices are just templates themselves, just ones already created.  Direct access to the device DPS values is always available in any case.
Unfortunately I haven't used this code in what feels like forever, so I can barely remember what it takes to configure it, even though I wrote it.


Don't log password if passed in via RABBITMQ_PASS

It seems silly that when I generate a new, secure password, set it via the environment variable, and then run this rabbitmq container, it immediately logs the admin password and then tells me to change it.
Is there an inherent reason that the default pass should already be considered compromised or something? (I'm not actually too familiar with rabbitmq).
If not, this PR will stop logging the password if you pass it in via RABBITMQ_PASS

True, it is meaningless to show the user defined password.
Thank you


Deployment Error On Vercel

Here are logs

Hi, would you mind to share your page id for me to test?

Hi, would you mind to share your page id for me to test?

ed4eb72bf7dd4499ae5fdfa9b796b9be

Hi, would you mind to share your page id for me to test?

ed4eb72bf7dd4499ae5fdfa9b796b9be

Thank you and I will test it soon.

Hi, I am able to deploy Nobelium with your page id w/out issue. Could you try to deploy again?

Nope yet

Hi, I am able to deploy Nobelium with your page id w/out issue. Could you try to deploy again?

Nope yet!

Hi, I am able to deploy Nobelium with your page id w/out issue. Could you try to deploy again?

Did you set NOTION_PAGE_ID properly?

It's normal after I delete the project and redeploy it.

Nope yet!

Hi, I am able to deploy Nobelium with your page id w/out issue. Could you try to deploy again?

Did you set NOTION_PAGE_ID properly?

It's normal after I delete the project and redeploy it.

Nope yet!

Hi, I am able to deploy Nobelium with your page id w/out issue. Could you try to deploy again?

Did you set NOTION_PAGE_ID properly?

So I am gonna close this issue then.


Display reactors

It would be nice to have a tab with the current reactors, like the schedules.

It's kinda blocked by https://github.com/saltstack/salt/issues/53334
We could catch the error and not update models


Please provide an icon for weather.weatherbit that matches the current conditions.

Could you elaborate on this? Are you not seeing any icon for the Current Condition or is the icon you see not representing the actual condition?

Thanks for your quick response. I use custom:multiple-entity-row a lot because it allows for a good looking content dense UI with progressive disclosure via more-info popups. I created a simple single-row weather control that combines the forecast and state from weatherbit with data from my PWS. The resulting control produces charts, etc. through more-info popups activated by clicking on its various weather data elements. It's great for phone displays. The main entity for this weather control is a template sensor that implements an active icon that matches the weatherbit state and I overrode the template sensor more-info with the weatherbit more-info for the detailed current/forecast information. Unfortunately custom:multiple-entity-row recently removed the ability to override the main entity more-info. So I'm stuck with either an active icon (template sensor) or the more-info current/forecast  popup (weatherbit). I believe that if the weatherbit entity provided an active icon in attributes, I could make weatherbit the main entity for my weather control and get both icon and more-info. Presently the weatherbit icon can be modified but it appears to be fixed, unless I'm missing something. Thanks for your consideration.

Thanks for clarifying, now your question makes sense.
Just to make sure: You basically want the state of the weather entity, duplicated in an attribute? Is that correctly understood?

Actually no, I'm aware of the alt_condition. What I'm wondering is if weatherbit can add an icon attribute that changes with the state. Here is the code from my template sensor.
     icon_template: >
      {% set night = is_state('sun.sun', 'below_horizon') %}
      {% set w = states('weather.weatherbit') %}
      {% if w == 'unavailable' %} mdi:radar
      {% elif w == 'exceptional' %} mdi:weather-cloudy-alert
      {% elif w == 'partlycloudy' %}
        {% if night %} mdi:weather-night-partly-cloudy
        {% else %} mdi:weather-partly-cloudy {% endif %}
      {% elif w == 'clear-night' %} mdi:weather-night
      {% else %} mdi:weather-{{w}} {% endif %}

So the icon attribute would hold the text name of the appropriate icon to display as per other entities in HA.

Normally if you add mdi:weather- in front of alt_condition, then you should get the correct icon.
If that does not work, I have made a little change, so that there now is a new attribute called mdi_icon that contains the full icon name based on current condition. Could you test this for me, and let me know if this is what you want?
To install it go to the custom_components\weatherbit directory in this Github, and download the following two files:
weather.py and const.py
Copy the two files to the same directory in your Home Assistant installation, overwriting the previous ones. Then restart Home Assistant. When back up, you should now see the new attribute called mdi_icon.

Sorry, that won't work. It's not that I want to determine the icon name (I can already do that as evidenced by the code above).
When Lovelace displays a plain-old entity row, it shows an icon, a name, and a state. HA gets the name and icon from the entity's attribute list. Since the weatherbit entity currently doesn't specify an icon, a default static icon (cloud) is assigned by the system. You can change this default icon in the HA entity UI but it's still static.
However, if weatherbit had its own icon attribute (which is simply the text string of the icon file to use) it could provide an active icon that changes with the weather. As the icon changed, Lovelace would then automatically change the entity row display. This is similar to how battery level icons are displayed for battery entities,
I hope that explains it more clearly. Sorry for being a pain.

FINALLY I understand what you want - sorry its taken so long.
Instead of the fix with the new attribute mdi_icon I am now assigning that value to the standard icon attribute. So the entity row should now display the correct icon.
Try and download the two files mentioned in my previous post, and see if that does not fix your problem.

Okay finally tested this out and it works as far as I can tell. Unfortunately it's been cloudy here so I used the States tool to change the icon attribute, verified the entity row icon changed, and then waited for weatherbit to change it back to cloudy which all happened flawlessly. Thank you! Question what icon do you use if the service is unavailable? I was using mdi:radar.

Glad it works.
I have set this icon mdi:weather-cloudy-alert when not found, as this is never used. I have no preference, would you prefer the radar icon?

Yeah, it's working great.  It's raining now and the icon is correctly showing rain! I use the weather-cloudy-alert icon for weather alerts. I prefer the radar icon as it says to me it's looking for the service ( and it's kind of a weather symbol too).

Perfect. I'll change it to radar and make the official release.

Release 0.3.4 is out including this fix. I'll close it now.


V11 react step 2

Closes #
{{short description}}
Changelog
New

{{new thing}}

Changed

{{change thing}}

Removed

{{removed thing}}

Please check the Pull Request and approve


Add support of the command ZINTER and ZINTERCARD

Refer to https://redis.io/commands/zinter/

Hi, can you assign it to me?

Sure! Assigned.


Unable to copy an entity

Seen in v6.0-alpha.6
Steps to recreate:

Right click on an entity in the explorer pane
Select copy
Select the folder of the original entity
Click OK

An Alert will be shown saying:
Unable to copy 'NAME_OF_ENTITY' org.hibernate.HibernateException: identifer of an instance of stroom.pipeline.shared.XSLT was altered from 2 to -1
Stroom5 used to give you the option to change the name in a copy dialog, thus allowing you to copy into the same folder.  It should either cleanly tell you that you can't copy into the same folder, give you the option of choosing a new name, or do what windows does and auto rename the copy if it is the same folder.

It seems as though within the copy function, we are modifying an entity that is still 'attached' to hibernate. So I have added the ability to 'detach' from hibernate before making modifications and attempting to save. This seems to do the trick. Wherever you put the copy, it will put 'Copy of' in front of the existing name, so that seem fine.


Added Hello World Using EJS and Express.

To run this first run npm install in vscode terminal and then it will work fine.

Amazing work 🎉

Amazing work 🎉

Thank You!


Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)

[<!--
If you are reporting a new issue, please first search for a matching issue in
this repository.
-->
Output of dotnet --info:
(paste your output here)

What version of Docker.DotNet?:
(paste your output here)

Steps to reproduce the issue:
1.
2.
3.
What actually happened?:
What did you expect to happen?:
Additional information:
](https://github.com/dotnet/dotnet-docker/issues/4124)

This does not relate to Docker.DotNet at all. @galvesribeiro can we close this?

Sir I have updated the issue pleas can you check now

Issue is resolved when I updated the Version of Sql Server 15.0.4236.7
Thank you!


${command:python.interpreterPath} within tasks.json invalid with a path that contains a space

Type: Bug

Behaviour
Expected vs. Actual
Expected:
Using ${command:python.interpreterPath} in my tasks.json should let me run a python interpreter
Actual:
If my ${command:python.interpreterPath} contains a space in the directoy path, powershell understands that as the end of the file path and breaks
Steps to reproduce:

Include ${command:python.interpreterPath} within tasks.json and run the task

Folder path with space:

Without a space:

Diagnostic data

Python version (& distribution if applicable, e.g. Anaconda): 3.8.10
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Venv
Value of the python.languageServer setting: Default

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

User Settings

languageServer: "Pylance"

Extension version: 2024.3.10641005
VS Code version: Code - Insiders 1.86.0-insider (9c5eabb378c9d18a0f712d1f22fe63df3f933ade, 2024-01-30T03:56:13.017Z)
OS version: Windows_NT x64 10.0.22621
Modes:

System Info

Item
Value

CPUs
11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz (8 x 2995)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
47.71GB (24.15GB free)

Process Argv
--crash-reporter-id 50a710d9-9913-4444-88bb-812a9f6e513f

Screen Reader
no

VM
0%

A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805:30301674
vsaa593:30376534
py29gd2263:30784851
c4g48928:30535728
2i9eh265:30646982
962ge761:30841072
pythongtdpath:30726887
welcomedialog:30812478
pythonidxpt:30768918
pythonnoceb:30776497
asynctok:30898717
dsvsc013:30777762
dsvsc014:30777825
dsvsc015:30821418
pythontestfixt:30866404
pythonregdiag2:30926734
pyreplss1:30879911
pythonmypyd1:30859725
pythoncet0:30859736
pythontbext0:30879054
accentitlementst:30870582
dsvsc016:30879898
dsvsc017:30880771
dsvsc018:30880772
d6fi2104:30968146
pydisww2:30959801
cppperfnew:30963552
d34g3935:30961436
edj9j583:30969294
fegfb526:30952798
bg6jg535:30979844
78248357:30976997
ccp2r6:30958154
pythonait:30973460
666c4381:30973073

Thanks for the bug report! We investigate issues in order based on priority and severity, which includes the impact it has on your ability to use the extension to do productive work, and the number of people affected. If other users come forward and leave a comment demonstrating they are seeing/reproducing the problem then we will raise this issue's priority. Thanks for understanding and the patience!

A simple solution could be for the Python extension to double quote the path if it contains a space. However, Python extension does not have context how the task is being used, so quoting it ourselves returning may not work. Consider a task such as the following:
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Run s.py",
            "type": "shell",
            "command": "\"${command:python.interpreterPath}\\..\\python.exe\" s.py"
        }
    ]
}

It would result in a command such as:
""c:\Users\karraj\OneDrive - Microsoft\Desktop\folders\jupyterbug\.venv\Scripts\python.exe"\..\python.exe" s.py

if the path to the selected interpreter:
c:\Users\karraj\OneDrive - Microsoft\Desktop\folders\jupyterbug\.venv\Scripts\python.exe

If we were to not double quote, it would result in the correct command:
"c:\Users\karraj\OneDrive - Microsoft\Desktop\folders\jupyterbug\.venv\Scripts\python.exe\..\python.exe" s.py

Hence ideally I think it should be up to the user to quote the path in tasks if needed themselves, and ${command:python.interpreterPath} should just be used as substitute to the path to selected interpreter.

That all being said, as enough users are expecting us to double quote the path and seeing as the task such as the above is rare with ${command:python.interpreterPath}, I'm going with us doing the double quotes for now 🙂

Verification steps

Open a workspace folder in directory with spaces
Use a tasks.json using ${command:python.interpreterPath}:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Run s.py",
            "type": "shell",
            "command": "${command:python.interpreterPath} file.py"
        }
    ]
}

Make sure ${command:python.interpreterPath} is double quoted.

@nturinski Fix should be out in the pre-release version of the extension, use the following to try it out:

The double quotes are added, but the task still breaks the path at the space:
Executing task: "c:\src\test\temp\new dir\.venv\Scripts\python.exe" s.py

c:\src\test\temp\new: The term 'c:\src\test\temp\new' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

I actually wasn't able to download the new version to test it

@nturinski The version that you had installed should have the fix. Can you try it out?

used the same task.json that you had posted, I get that result from pwsh 7.
I tried with cmd and it actually does work correctly
Outside of tasks, pwsh seems to just have an issue with quotes: (left is tasks, right is just a pswh terminal)

yeah, seems like an issue with tasks, or I'm missing how this is supposed to be done.
copilot tells me to use a & and surround everything with strings, which works for pwsh, but that still errors for tasks:

Marking verified since it works for cmd and has the quotes, but we'll see if it fits @nturinski's scenario


Archive

Is your feature request related to a problem? Please describe.
Discord has a channel limit of 500, when this is hit people still want to store inactive channels that may not need to be accessed.
Requirements

Store the name and category of the archived channel
Read all messages from a channel and store them with timestamps and an order (for if two messages were sent at the same time)
Store images requried to be archived
Store embeds
Store replys
Set a customisable storage limit depending on the subscription level of the server
Allow the Archived channel to be recreated within the server if required
Allow an easy to navigate way of finding archived channels (a list of some sort)

Describe alternatives you've considered
https://github.com/Tyrrrz/DiscordChatExporter
Additional context
Created by and suggested by Top Trumpet#5893

Waiting for paid KoalaBot Pro to be implemented to allow space used to be restricted.
Until this is confirmed, development of this should not continue, only continue once a concrete number for allowed storage is found by Senior Devs


Merged index.html styling with Garrett's changes

Closing pull request to update pull request to a more recent version.


Fix 'A closing curly bracket must not be preceded by a blank line.' issue in LearnFiles\Basics\Variables.cs

CodeFactor found an issue: A closing curly bracket must not be preceded by a blank line.
It's currently on:
LearnFiles\Basics\Variables.cs:22

Issue Resolved, no major change to code, just stylising errors.