Kibana UI seems to enforce "notifyWhen" under alerts actions in "frequency", but Terraform does not import it

Describe the bug
When we started automating the Kibana alerts using Terraform provider: https://registry.terraform.io/providers/elastic/elasticstack/latest/docs, we started checking the basic skeleton of the resource "elasticstack_kibana_alerting_rule" across multiple Kibana alert types like "ElasticSearch Query rule", "Log threshold", "Index threshold" etc. which were created in our ELK manually via UI.
We are now managing alerts using this automation with the Terraform configuration for the resources exactly as specified in the sample here: https://github.com/elastic/terraform-provider-elasticstack/blob/main/examples/resources/elasticstack_kibana_alerting_rule/resource-index-rule.tf
For the above alert types, they required "notifyWhen" field at the rule level: https://github.com/elastic/terraform-provider-elasticstack/blob/main/examples/resources/elasticstack_kibana_alerting_rule/resource-index-rule.tf#L7
This automation was working fine until we upgraded our ELK clusters from ~v8.9 to v8.12.
For the alerts created with "notifyWhen" set on "rule-level", I am currently observing that manual updates to these alerts results in UI enforcing it at "action-level" in the form of "frequency" map as follows -
actions {
         ...
        frequency = {
            notify_when = "onActionGroupChange"
            summary     = "false"
            throttle    = //not needed
        }
    }

For context, we have all rules imported to have source of truth, but also allow our teams to test feature via UI.
My apologies for such lengthy issue description, but I have tried to add as much details as possible.
To Reproduce
Steps to reproduce the behavior:

Terraform resource configuration -

Terraform resource -

  # module.kibana_alert_rules["abc copy.yaml"].elasticstack_kibana_alerting_rule.elasticsearch_query_rules[0] will be created
  resource "elasticstack_kibana_alerting_rule" "elasticsearch_query_rules" {
      consumer              = "discover"
      enabled               = true
      interval              = "1m"
      name                  = "Test-frequency"
      notify_when           = "onActionGroupChange" --> Set here
      params                = jsonencode(
            {
              aggType                    = "count"
              excludeHitsFromPreviousRun = true
              groupBy                    = "all"
              searchConfiguration        = {
                  filter = [
                      {
                          meta  = {
                              index = "index ID"
                            }
                          query = {
                              query_string = {
                                  query = "service.name: abc"
                                }
                            }
                        },
                    ]
                  index  = "index ID"
                  query  = {
                      language = "kuery"
                      query    = ""
                    }
                }
              searchType                 = "searchSource"
              size                       = 5
              termSize                   = 5
              threshold                  = [
                  100,
                ]
              thresholdComparator        = ">="
              timeField                  = "@timestamp"
              timeWindowSize             = 5
              timeWindowUnit             = "m"
            }
        )
      rule_type_id          = ".es-query"
      space_id              = "default"
      tags                  = [
          "test",
        ]
      actions {
          group  = "query matched"
          id     = "Slack webapi connector ID"
          params = jsonencode(
                {
                  subAction       = "postMessage"
                  subActionParams = {
                      channels = [
                          "channel_ID",
                        ]
                      text     = <<-EOT
                            This is a sample - test frequency

                            '{{alertName}}' is active:

                            Hello team, please check :point_up:
                            Details:
                            - Timestamp: {{context.date}}
                            - Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}
                            - Matches: {{context.value}}
                        EOT
                    }
                }
            )
        }
    }

API call made by Terraform to create alert rule (POST) -

{
    "actions": [
        {
            "group": "query matched",
            "id": "slack_web_api_connector_ID",
            "params": {
                "subAction": "postMessage",
                "subActionParams": {
                    "channels": [
                        "channel_ID"
                    ],
                    "text": "This is a sample - test frequency\n\n'{{alertName}}' is active:\n\nHello team, please check :point_up:\nDetails:\n- Timestamp: {{context.date}}\n- Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}\n- Matches: {{context.value}}"
                }
            }
        }
    ],
    "consumer": "discover",
    "enabled": true,
    "name": "Test-frequency",
    "notify_when": "onActionGroupChange", --> Set here
    "params": {
        "aggType": "count",
        "excludeHitsFromPreviousRun": true,
        "groupBy": "all",
        "searchConfiguration": {
            "filter": [
                {
                    "meta": {
                        "index": "d3d7af60-4c81-11e8-b3d7-01146121b73d"
                    },
                    "query": {
                        "query_string": {
                            "query": "service.name: abc"
                        }
                    }
                }
            ],
            "index": "d3d7af60-4c81-11e8-b3d7-01146121b73d",
            "query": {
                "language": "kuery",
                "query": ""
            }
        },
        "searchType": "searchSource",
        "size": 5,
        "termSize": 5,
        "threshold": [
            100
        ],
        "thresholdComparator": ">=",
        "timeField": "@timestamp",
        "timeWindowSize": 5,
        "timeWindowUnit": "m"
    },
    "rule_type_id": ".es-query",
    "schedule": {
        "interval": "1m"
    },
    "tags": [
        "IAAC",
        "test"
    ],
    "throttle": null
}

Resource after apply - in local state

# module.kibana_alert_rules["abc copy.yaml"].elasticstack_kibana_alerting_rule.elasticsearch_query_rules[0]:
resource "elasticstack_kibana_alerting_rule" "elasticsearch_query_rules" {
    consumer              = "discover"
    enabled               = true
    id                    = "default/88a8958f-a58f-4195-afb1-604e713c79a9"
    interval              = "1m"
    last_execution_date   = "2024-03-19 11:31:09.26 +0000 UTC"
    last_execution_status = "pending"
    name                  = "Test-frequency"
    notify_when           = "onActionGroupChange" ---> set here
    params                = jsonencode(
        {....}
     )
    rule_id               = "88a8958f-a58f-4195-afb1-604e713c79a9"
    rule_type_id          = ".es-query"
    scheduled_task_id     = "88a8958f-a58f-4195-afb1-604e713c79a9"
    space_id              = "default"
    tags                  = [
        "IAAC",
        "test",
    ]

    actions {
        group  = "query matched"
        id     = "64956021-6980-4958-8469-afdba75baee0"
        params = jsonencode(
            {
                subAction       = "postMessage"
                subActionParams = {
                    channels = [
                        "channel_ID",
                    ]
                    text     = <<-EOT
                        This is a sample - test frequency

                        '{{alertName}}' is active:

                        Hello team, please check :point_up:
                        Details:
                        - Timestamp: {{context.date}}
                        - Conditions Met: {{context.conditions}} over {{params.timeWindowSize}}{{params.timeWindowUnit}}
                        - Matches: {{context.value}}
                    EOT
                }
            }
        )
    }
}

When I try to update from UI, I also tracked the API call it makes to update the alert -  PUT API call with following payload :
{
    "name": "Test-frequency",
    "tags": [
        "test",
        "abc"
    ],
    --> Not here
    "schedule": {
        "interval": "1m"
    },
    "params": {
        ...
        },
        "timeField": "timestamp",
        "searchType": "searchSource",
        "timeWindowSize": 5,
        "timeWindowUnit": "m",
        "threshold": [
            100
        ],
        "thresholdComparator": ">=",
        "size": 5,
        "aggType": "count",
        "groupBy": "all",
        "termSize": 5,
        "excludeHitsFromPreviousRun": true
    },
    "actions": [
        {
            "group": "query matched",
            "id": "64956021-6980-4958-8469-afdba75baee0",
            "params": {
                "subAction": "postMessage",
                "subActionParams": {
                    "channels": [
                        "channel_ID"
                    ],
                    "text": "some text"
                }
            },
            "frequency": {
                "notify_when": "onActionGroupChange", ----> Moved here
                "throttle": null,
                "summary": false
            },
            "uuid": "07fe9cf3-0343-44aa-a946-953d00f18e04"
        }
    ]
}

If I remove the resource from Terraform state just to import it , the following is from the GET API call made by Terraform:
We can see that "notifyWhen" setting is moved to "frequency" map under alert "actions" :
{
    "id": "88a8958f-a58f-4195-afb1-604e713c79a9",
    "name": "Test-frequency",
    "tags": [
        "test",
        "abc"
    ],
    "enabled": true,
    "consumer": "discover",
    "throttle": null,
    "revision": 2,
    "running": false,
    "schedule": {
        "interval": "1m"
    },
    "params": {
        ...
            },
            "index": "d3d7af60-4c81-11e8-b3d7-01146121b73d"
        },
        "timeField": "timestamp",
        "searchType": "searchSource",
        "timeWindowSize": 5,
        "timeWindowUnit": "m",
        "threshold": [
            100
        ],
        "thresholdComparator": ">=",
        "size": 5,
        "aggType": "count",
        "groupBy": "all",
        "termSize": 5,
        "excludeHitsFromPreviousRun": true
    },
    "rule_type_id": ".es-query",
    ...
    "notify_when": null, --> Here it's "null"
    ...
    "actions": [
        {
            "group": "query matched",
            "params": {
                "subAction": "postMessage",
                "subActionParams": {
                    "channels": [
                        "channel_ID"
                    ],
                    "text": "some Text"
                }
            },
            "uuid": "07fe9cf3-0343-44aa-a946-953d00f18e04",
            "id": "64956021-6980-4958-8469-afdba75baee0",
            "connector_type_id": ".slack_api",
            "frequency": { ----> But it's moved here
                "throttle": null,
                "summary": false,
                "notify_when": "onActionGroupChange"
            }
        }
    ],
    ...
}

But it is not imported in Terraform resource configuration - It's not present at either places
# module.kibana_alert_rules["abc-copy.yaml"].elasticstack_kibana_alerting_rule.elasticsearch_query_rules[0]:
resource "elasticstack_kibana_alerting_rule" "elasticsearch_query_rules" {
    consumer              = "discover"
    enabled               = true
    id                    = "default/88a8958f-a58f-4195-afb1-604e713c79a9"
    interval              = "1m"
    last_execution_date   = "2024-03-19 11:56:39.675 +0000 UTC"
    last_execution_status = "ok"
    name                  = "Test-frequency"
    params                = jsonencode(
        {
        ...
        }
    )
    rule_id               = "88a8958f-a58f-4195-afb1-604e713c79a9"
    rule_type_id          = ".es-query"
    scheduled_task_id     = "88a8958f-a58f-4195-afb1-604e713c79a9"
    space_id              = "default"
    tags                  = [
        "test",
        "abc",
    ]

    actions {
        group  = "query matched"
        id     = "64956021-6980-4958-8469-afdba75baee0"
        params = jsonencode(
            {
                subAction       = "postMessage"
                subActionParams = {
                    channels = [
                        "channel_ID",
                    ]
                    text     = <<-EOT
                        someText
                    EOT
                }
            }
        )
    }
}

Additionally, if an alert is created from UI, the "notifyWhen" is set at "action-level" - The following is from "Inspect" browser  tool to get the request payload while the UI performs POST API call to create a new rule :
{
    "params": {
       "searchConfiguration": {
            ...
    }
}
    "consumer": "stackAlerts",
    "schedule": {
        "interval": "1m"
    },
    "tags": [],
    "name": "test-2",
    "rule_type_id": ".es-query",
    "actions": [
        {
            "group": "query matched",
            "id": "64956021-6980-4958-8469-afdba75baee0",
            "params": {
                "subAction": "postMessage",
                "subActionParams": {
                    "channelIds": [
                        "channel_ID"
                    ],
                    "text": "some text"
                }
            },
            "frequency": { --> here
                "notify_when": "onActionGroupChange",
                "throttle": null,
                "summary": false
            }
        }
    ]
}

So, our expectation is that for alerts created with UI, we need a means to support the "frequency" setting at "action-level" as well in the Terraform provider. This is also because we would like to use the newer features like "on custom action intervals" which internally uses the "frequency" setting which we are unable as the provider does not support it :
"frequency": {
                "notify_when": "onThrottleInterval",
                "throttle": "1h",
                "summary": false
            }

Expected behavior
The provider should import the frequency setting under "frequency" in alert actions as the API call returns it.
Versions (please complete the following information):

Provider version - 0.11.1
Elasticsearch Version - 8.12.1 in my local cluster and 8.12.2 in our ELK cluster

Duplicate of https://github.com/elastic/terraform-provider-elasticstack/issues/524

Fixed by https://github.com/elastic/kibana/issues/186963.


Fix missing comma in Draftail docs code

Sample code is just missing a comma.

Thanks! Merged (with release notes) in 08ea980.


Fixed ReadMe Encoder/Decoder Example

Encoder/Decoder Example is not working. The Encoder requires a value for enc_num_memory_tokens.
This should fix it.

Thanks Adrian!

@adrian-spataru Do you want to submit a PR for the other piece? perhaps with a flag like tie_token_embeds ?


Google Maps v3 breaks Skrollr

I'm having a "help me Obi Wan Kenobi" moment here.
Adding a Google Maps div on the page - literally anywhere on the page including outside of the skrollr body - cause Skrollr to break. Worse, it's a silent error in the console.
I duplicated the issue in Codepen (literally duplicated, it's almost a copy-paste from my IDE, minus the PHP calls):
With Map:
http://codepen.io/Imperative/pen/f0945c1c44610c156e63ed5b30020826
Without Map:
http://codepen.io/Imperative/pen/e9307d22a1656c0d0b3e32eadd4b8c39
All I did, literally, was remove the map canvas DIV. When it's in, the plugin fails. When it's out, Skrollr works as expected.
I'm under a pretty heavy time crunch at work and I would really really really hate to have to start the parallax portion of the site over again. Can you spot a workaround?

Hmmm...nothing obvious. Are you stuck on timing and frequency...I would change the order of the calls and variables, and see if it makes a difference.

What I know now, after a lot of debugging effort, is that it's a z-indexing issue. Essentially, that's why the console isn't reporting any bugs - because the JS isn't at fault. This doesn't stop it from being a plugin issue though so I'll keep this open.
In Chrome, if I select #frame-2 and add a z-index of 50, the image leaps to the front and completely covers the map. If I remove the z-index, it stays there.
So something in the way Google Maps v3 inserts itself into the page is causing the parent container's z-index to go haywire.

Quick note - the demo I did was only checked in Chrome. My hack of a fast paste means it doesn't always render right in alternate browsers (not a problem in production)

Maybe I'm missing something, but what do you mean with "cause Skrollr to break"? There's not a single animation on the page, how do you see that it broke?

Quick answer - you're right, I had simplified it to a point where Skrollr was no longer a factor. Too long looking at the same problem.
Aside - I needed to add a translate-z to the containers and tweak a pair of z-index values. The formerly 'broken' version works fine now.
Moral of the story: don't skip lunch and try to keep coding.


Adds davidvossel as approver

While I've made an effort to isolate as much of the KubeVirt platform into separate directories as possible, the reality is much of our work at least touches other components as an entry point into our platform specific code. In order to make the KubeVirt hypershift platform more self sufficient, I'm asking for project wide approval access with the understanding that I'm only approving items isolated to the KubeVirt platform initially.
Note that I didn't put myself as a project wide reviewer. I'm already a reviewer in all the kubevirt directories of openshift/hypershift, so I should get automatically assigned as a reviewer just for KubeVirt related PRs.

/lgtm

/approve


Updated Master to Main

Fixes #570

@JeS24

@prakashaditya369 Thanks for the PR. Merging now.

@prakashaditya369 Thanks for the PR. Merging now.

@JeS24 Thanks.

@JeS24 Thanks.


Change SSL to TLS per 1679050

This is 1679050 Content Update: replace SSL in docs
@msmbaldwin - Author is @JeremyLikness
Author - please review these as soon as you can. According to our SLA, review time is 5 business days. I'll follow up in email in a couple of days, in case you are buried under github at-mentions.

#sign-off

Hi @mairaw - I was told you can help with merges in the dotnet repo. This work item 1679050 Content Update: replace SSL in docs will probably have about 15 PRs over the next week.
Let me know if there's anything else I should be aware of. Thanks -

As noted in the work item, we're narrowing the scope to include only azure-docs-pr.


Document CLI options

Some other tools pass-through CLI options to cucumber, and had to fish them out from the code:
https://chimp.readme.io/docs/command-line-options#section-cucumber-options-

I skimmed that link, and it seems you're talking about cucumber.js. I agree we should add it to the web site, but have you this?
cucumber.js --help

Closed due to inactivity


Add getter for port number

This is useful when starting the server with an automatically-assigned
port number.

I'm not sure why the Travis-CI build failed, looking at the error logs I see:
gpg: no default secret key: secret key not available
gpg: signing failed: secret key not available

Is this a known issue for this repo?

It is since for some reason it wants to attempt to sign it which should only be done on release, probably something I did when getting it ready for maven.
I see no reason to not merge this, good contribution.

Thanks!


Reopen Issue: Zombie .sock Files Not Being Deleted in CLI Mode

Hi team,
I would like to reopen the issue regarding the zombie .sock files not being correctly deleted when using amphp/parallel.
Background:
I am running parallel tasks using amphp/parallel in two different environments:

Web

CLI (via a cron job)

After a recent update to the amphp/parallel library, I noticed an improvement where the .sock files were correctly deleted in the web version. However, the CLI version still leaves .sock files in the /tmp folder, which eventually leads to issues.
Steps to Reproduce:

Run parallel tasks using amphp/parallel in a web environment.

Observe that .sock files are deleted correctly.

Run the same parallel tasks in a CLI environment (e.g., via a cron job).

Observe that .sock files are not deleted and accumulate in the /tmp folder.

I suspect that the issue might be related to the way "LocalIpcHub"  handles cleanup operations differently in web and CLI environments. Any insights or suggestions on how to resolve this issue for the CLI environment would be greatly appreciated.

I've had a hard to trace zombie sock problem - I hadn't noticed the connection with running via CLI - good spot!

Hi @trowski, would be very helpful if you can have a look at this case please. thank you

Helle @kelunik, Can you have a look at this issue please?

i am going to reopen the subject with more details about the situation.


Documentation

I apologize but this is going to be  a basic use question.
To get started after installing do I:
Launch the environment with source activate osmnx or go to python
Then, do I just run
`import osmnx as ox
from IPython.display import Image
%matplotlib inline
ox.config(log_console=True, use_cache=True)`

or do I save into a .py file and run the script?

It is easier and nicer to play with the Jupyter/Python Notebooks. If you have never heard this term, have a look here: http://nbviewer.jupyter.org/github/jupyter/notebook/blob/master/docs/source/examples/Notebook/What is the Jupyter Notebook.ipynb#

To get started, install osmnx as described in command line via:
pip install osmnx
or if you are using anaconda
conda install -c conda-forge osmnx

Download the complete osmnx repository

Type in command line:
jupyter notebook

Navigate to examples in repository and check it out:
https://github.com/gboeing/osmnx/tree/master/examples

Cheers,

Thanks @philippschw -- yep, the notebooks are the easiest way to play around. @Monduiz if you're new to all of this, I also have a getting started guide that might be useful: http://geoffboeing.com/2017/02/python-getting-started/

Thank you for this! I will take the time to read the guide. I have anaconda
but I have not touched jupyter.
Bjenk
On Tue, Mar 7, 2017 at 12:30 PM, Geoff Boeing<EMAIL_ADDRESS>wrote:

Thanks @philippschw https://github.com/philippschw -- yep, the
notebooks are the easiest way to play around. @Monduiz
https://github.com/Monduiz if you're new to all of this, I also have a
getting started guide that might be useful: http://geoffboeing.com/2017/
02/python-getting-started/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gboeing/osmnx/issues/37#issuecomment-284795905, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIWpogv_PD3KKJZNgAs5Ue3O1Ylmjstdks5rjZRMgaJpZM4MVWfR
.


Add search-friendly documentation for BSI range query syntax

Overview
BSI Range queries support five different operators that, previously, weren't clearly specified anywhere except the source code. Also, the BETWEEN operator is unique to pilosa, and searching for it or "between" in the docs didn't return anything helpful.
Pull request checklist

[ ] I have read the contributing guide.
[ ] I have agreed to the Contributor License Agreement.
[ ] I have updated the documentation.
[ ] I have resolved any merge conflicts.
[ ] I have included tests that cover my changes.
[ ] All new and existing tests pass.

Code review checklist
This is the checklist that the reviewer will follow while reviewing your pull request. You do not need to do anything with this checklist, but be aware of what the reviewer will be looking for.

[ ] Ensure that any changes to external docs have been included in this pull request.
[ ] If the changes require that minor/major versions need to be updated, tag the PR appropriately.
[ ] Ensure the new code is properly commented and follows Idiomatic Go.
[ ] Check that tests have been written and that they cover the new functionality.
[ ] Run tests and ensure they pass.
[ ] Build and run the code, performing any applicable integration testing.

I agree there are some inconsistencies in name, operator, and functionality. Would you suggest we change the function from Range() to something else? I'm ok either way.

I would prefer to change them, but I don't have a great suggestion for either one. Maybe Compare? I can't think of an alternative for BETWEEN. The name of the operator doesn't strictly need to be in the docs, but I wanted to have a searchable english word, especially for the operator that's unique to Pilosa.


Fix decimal serialization

Bring in decimal serialisation fix from Davyd

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your<EMAIL_ADDRESS>seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Opened and closed it to run the workflows (which weren't enabled before).


Make NavigationBar more prominent on the BottomNavigationBar API docs

When testing out some cross-platform design adaptations, I realized I had been using BottomNavigationBar instead of the updated NavigationBar. BottomNavigationBar is featured in a few tutorials and (for me) comes up first when I google "navigation bars flutter" -- so it might be useful to point developers to the new widget to avoid them using out of date material components.

Hi ,I came across your project and noticed that you are using the deprecated BottomNavigationBar widget. I would like to contribute to your project by updating it to use the updated NavigationBar widget. Is that something you would be interested in?


[Bug] Crashes when trying to use the GIF option in chat

Describe the Bug
My discord gives a Level 9000 error when I try to use the GIF's from discord.
To Reproduce
Click on the GIF option in chat (Direct Message or in Server)
Expected Behavior
Opens the GIF section normally but it crashes instead
Screenshots

Discord Version
Stable. BD v1.2.4
Additional Context
I only use themes and have no Plugins installed and it only started happening after I updated my drivers with ccleaner

Duplicate of #1116


This framework alive? i think this framework is dead

Prerequisite Checklist

[X] I searched for existing issues to prevent duplicates
[X] I searched for existing discussions on the forum to prevent duplicates
[X] I understand SFML's scope and believe the feature fits it

Describe your feature request here
I write game on this SFML framework. and i dont found particles and i broke my project. And i dont sure that only PC export - it very nice. This framework now alive and developers make games in 2024 on SFML?
Use Cases
9090900090909uoipoipu
API Example
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode({1280, 720}), "Minimal, complete and verifiable example");
    window.setFramerateLimit(60);

    while (window.isOpen())
    {
        while (const std::optional event = window.pollEvent())
        {
            if (event->is<sf::Event::Closed>())
                window.close();
        }

        window.clear();
        window.display();
    }
}

f

This library is still being maintained.


Bracket sequence algorithm

Related Issue

#1

Additional Info

create a stack that holds brackets to be removed with opposite ones

Checklist

[x] ✅ My code follows the code style of this project.
[ ] 📝 My change requires a change to the README.
[ ] 🎀 I have updated the README accordingly.
[ ] 👀 I have read the CONTRIBUTING document.
[ ] ✨ I have added tests to cover my changes.
[ ] 🚩 All new and existing tests passed.
[ ] 🌟 ed the repo

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Output Screenshots

Screenshot #1
Screenshot #2

code
output

Make your issue a descriptive one so it is easy for us
mentors to get hold of your contribution and can guide you for further steps.
I would recommend you to go through this tutorial video of the project here , thanks.
///--------------------Pull Requests--------------------///

Short Description or CheckLists

Make sure your Pull Request is descriptive and complete the checklist .
I would recommend you to go through this tutorial video of the project here ,thanks.
///------------------Description -----------------------///
For contribution and more guidelines i would recommend you to go through this
tutorial video of the project here, thanks.
///------------------Description -----------------------///
Let me show you how to check the check list , there should be no space inside brackets like [x]
[x]

[x] Checklist
[ ] Or you can just check them from outside without doing any of these
[x] ✨ I have added tests to cover my changes.
[x] 🚩 All new and existing tests passed.
[ ] 🌟 ed the repo

1. Starr the repo if you haven't !

Have you watched this video ?

///----------------------PR README --------------------///
You need to follow particular guidelines for your README , please follow
these guidelines click here
also you can see how your README should look like see here
for more please go through these here

Closing this pr!


clickable snippets inline requires some documentation fixes

Describe the bug
As of https://github.com/microsoft/pxt/pull/9049 you will be able to click the inline snippets to pop open toolbox category, but there are a few spots where that misbehaves. in particular this is for cases like set mysprite where we will occasionally show it as variables even though it's in the sprites category:
``||variables:set mySprite||``

the new feature supports making this open the sprites category, but it requires a small content update to this:
``||variables(sprites):set mySprite||``

In addition, if there are any cases where the namespace color is used but we do not want it related to the category, we can disable the click behavior like
``||variables(noclick):set mySprite||``

(noclick just being something that doesn't map to a namespace, might be good to keep it the same for consistency / easy of updates)
an example of where this occurs is in https://github.com/microsoft/pxt-arcade/blob/master/docs/tutorials/chase-the-pizza.md (which is where this snippet came from)
Expected behavior
correct category should open for snippets

Yeah, it sounded like that was Kiki's current approach  (@kiki-lee correct me if I'm wrong)

Hopefully there's never a category called noclick.


ProgressIndicator  - Flutter UI thread is using too much ressources

Hello,
I am currently working on optimizing my app.
I noticed that the LinearProgressIndicator and CircularProgressIndicator I had on my app were using a lot of CPU ressources. (Flutter UI thread)
From the picture you can see that when the Indicators are displayed, the CPU is under heavy use and it's not decreasing at all.

The issues there is that with time the app is becoming unresponsive.
I don't understand what I am doing wrong in my declaration if someone has an idea ?
final sectionProgressIndicator = Container(
      width: isPhone ? MediaQuery.of(context).size.width : 300,
      alignment: Alignment.topLeft,
      child: LinearProgressIndicator(
        backgroundColor: THEME_COLOR_GREEN,
        valueColor: new AlwaysStoppedAnimation<Color>(Colors.orange),
      ),
    );

children: <Widget>[
  CircularProgressIndicator(
    value: 1.0,
    valueColor:
        AlwaysStoppedAnimation<Color>(
            Colors.grey),
  ),
  CircularProgressIndicator(
    valueColor:
        AlwaysStoppedAnimation<Color>(
            Colors.blue),
  ),
...
]

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  @override
  void initState() {
    //you can add more markers here
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("Google Map in Flutter"),
          backgroundColor: Colors.deepPurpleAccent,
        ),
        body: Container(
          alignment: Alignment.centerRight,
          child: Stack(
            alignment: Alignment.center,
            children: <Widget>[
              const CircularProgressIndicator(
                value: 1.0,
                valueColor: AlwaysStoppedAnimation<Color>(Colors.grey),
              ),
              const CircularProgressIndicator(
                valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
              ),
              IconButton(
                icon: const Icon(Icons.stop),
                tooltip: 'Test',
                onPressed: () {},
              ),
            ],
          ),
        ));
  }
}

flutter doctor -v

flutter doctor -v
[✓] Flutter (Channel master, 3.5.0-12.0.pre.175, on macOS 12.6 21G115 darwin-x64, locale fr-FR)
    • Flutter version 3.5.0-12.0.pre.175 on channel master at /Users/idm/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 92f10ed712 (2 weeks ago), 2022-11-08 17:57:52 -0800
    • Engine revision e7d7edab98
    • Dart version 2.19.0 (build 2.19.0-374.0.dev)
    • DevTools version 2.19.0
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
• Android SDK at /Users/idm/Library/Android/sdk
• Platform android-30, build-tools 30.0.1
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14A400
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
[✓] VS Code (version 1.73.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.52.0
[✓] Connected device (3 available)
• iPad de Mickael (mobile) • 449a48279fd3aed768002dbb55baf769cd3aed9d • ios            • iOS 12.5.6 16H71
• macOS (desktop)          • macos                                    • darwin-x64     • macOS 12.6 21G115 darwin-x64
• Chrome (web)             • chrome                                   • web-javascript • Google Chrome 107.0.5304.110
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!
idm@MacBook-Pro-de-IDM-2 iterra-flutter %

Thanks

Hi @jjboy91, I can not reproduce this issue on the latest Flutter stable 3.3.8, macOS 13.0 22A380 darwin-x64.
Running macOS app with provided sample code:

Can you try upgrading to the latest Flutter stable or master channel and retry?
Also, does this issue happen every time? And what is affected environment? (device info, model)


feat: remove hardcoded deno.json path

Fixes #961
I needed to put my fresh project inside a subdirectory and this was getting in the way. I fixed it

i was going to add support for deno.jsonc as well, but TypeScript is complaining about importing .jsonc


USB Device next cdc acm can get in a deadlock when the host doesn't pull the endpoint data

Fixes #78104
Current situation before the fix:

The cdc_acm code starts claiming buffers to hand over to the lower layer driver for TX.
The lower layer drivers puts the data into the endpoint for the application / host
lower layer gives a request callback when the endpoint is read
cdc_acm layer frees the buffer.

When the endpoint is not read, due to no terminal application running, the last two steps doesn't occur and the cdc_acm simply occupies all available buffers, followed by rescheduling the same work task for tx_fifo directly, creating an endless loop.
By checking if a TX task is ongoing, the new work task scheduled as soon as the callback is given.
There is no timeout used in this case, as I couldn't find an interface to configure a timeout.

Is this essentially https://github.com/zephyrproject-rtos/zephyr/issues/76642 that is fixed by https://github.com/zephyrproject-rtos/zephyr/pull/75439 or some other issue?

@tmon-nordic : The fix does take in account that poll could also be used, but I haven't validated that this would fix this mixed usage.

@tmon-nordic Do you want me to add this to the commit comment? or leave it as it is. For me no problem, but it triggers potentially the review and commit checks again.

@tmon-nordic Do you want me to add this to the commit comment? or leave it as it is. For me no problem, but it triggers potentially the review and commit checks again.

I'd appreciate it if you do change the commit message. The commit message will stay there and it will be the first thing people looking through the CDC ACM class implementation history will notice. I am not sure if my review will disappear after merely commit message change, but I will re-approve as soon as I see the notification.

From the commit message:

Secondly, under the current structure of usbd_cdc_acm, there is a
possibility that TX data is enqueued to UDC driver before the previous
transaction is completed, hence causing dropped data. By using a
atomic flag for tx busy, no data is dropped and will only be enqueued
when there is room to forward the data.

I am still confused by this statement, where is the data dropped, can you point me to the line. It is fine to enqueue multiple transfers!

Hi @jfischer-no
I added the additional comments to the commit message on request of @tmon-nordic so that both mentioned issues are referred to. The initial goal of the commit was first of all solve the original deadlock and with the other patches, improve the performance.
I'm hoping that we can get this merged into the main branch as soon as possible. And whatever non-technical part needs to be done, just agree together and tell me, so we can get it done. (and sorry for my direct Dutch approach...)

I added the additional comments to the commit message on request of @tmon-nordic so that both mentioned issues are referred to. The initial goal of the commit was first of all solve the original deadlock and with the other patches, improve the performance. I'm hoping that we can get this merged into the main branch as soon as possible. And whatever non-technical part needs to be done, just agree together and tell me, so we can get it done. (and sorry for my direct Dutch approach...)

I have seen this request. That is addressed in https://github.com/zephyrproject-rtos/zephyr/pull/78160/commits/adfb154b253f0c4a7ff6d5698a8ee3ddeda73ab1#diff-55bd613139b01a65e6f92a663ef66b84b0041b280ad89aa53a0afd517c86b059R261-R263. I think the commit message could be:
"In case the host doesn't pull the new data from the endpoint, the work task
would schedule itself again delayed (at the max. priority). When there is
no terminal program or active application reading the endpoint this
results in a constant polling of the endpoint burning up to 5% of the
CPU cycles.
By using a atomic flag for tx busy, the polling is solved and changed into
a postponed execution of the next work task which saves up to 5% of
CPU cycles and allows a better real-time behavior for other tasks.
Secondly, if the TX interrupt is disabled but there is still data in the TX
FIFO (ring buffer), the implementation will continue to trigger subsequent
TX work and attempt to flush the data to the host."


Not working with 0.7.5

Hello,
I'm using 0.7.5 and DnD 0.98.
Activating the module doesn't change status effects on a token.

I cannot reproduce this issue. Please double-check to make sure you are using v1.0.2 of Illandril's Token HUD Scaler, and that it is not only installed but active for your world.
If Token HUD Scaler is up-to-date and active, try disabling all other modules.
If the module works when it is the only module enabled, please enable your other modules one at a time until it stops working, and then let me know which other module(s) you have enabled when it stops working.
If the module still does not work when it is the only one enabled, try using your browser in Incognito mode, with all browser extensions disabled.
If the module still does not work in Incognito mode...

Let me know which browser (including the specific browser version) you are using
Open the DevTools (F12) and let me know if there are any errors in the console

If the module works in Incognito mode...
Go back to non-Incognito mode and clear your browser's cache and trying again.
If the module works after clearing your cache, then it must've been a caching issue where you had and older version of some file(s) loaded - let me know and close this issue.
If the module still doesn't work after clearing you cache...

Let me know which browser (including the specific browser version) you are using
Open the DevTools (F12) and let me know if there are any errors in the console
Let me know what browser extensions you have installed

All modules deactivated but yours.
Incognito mode as well.
Win 10
Chrome 86.0.4240.111
No errors in the console either at init or when applying a status effect

Same in a test world without any data initialized by other modules.
Blank world. Created an empty actor. Placed the token on an empty map.
Same display.

Thanks for the info - I've reproduced it now.
It turns out that newly created status effects are stored differently from previously created status effects. Previously created status effects work properly still, so everything looked good to me when I tested it, but newly created status effects are broken.
This looks like it will be a simple fix, so I should be able to squeeze it in during my lunch break and have a fix ready today.


Surprising that just doesn't enable -o pipefail by default

The docs section "Safer Bash Shebang Recipes", you recommend using pipefail, and suggest that will replicate how just executes normal recipes.  But in testing, it doesn't seem like it does:
shouldfail:
  which lss | cat

If pipefail were enabled, that should fail (since "lss" isn't found).
Either docs should mention that pipefail isn't enabled by default, or consider enabling it.

just calls sh, not bash, and set -o pipefail isn't supported by some of the shells that are commonly installed as sh, like dash, so just can't use it by default.
The current wording of the readme is unclear though, since it sounds like set -o pipefail is used in linewise recipes by default. I'll add something that clarifies that.


For how to use Navigation2D in GDScript

For how to use Navigation2D in GDScript

Have you seen this demo?
https://github.com/okamstudio/godot/tree/master/demos/2d/navpoly

Yes I have carefully read。
demo navpoly Is not exactly built with GDScript。
My own example
func _ready():
NData = NavigationPolygon.new()
NPath = Navigation2D.new()
NData.add_polygon(polygon)
NPath.navpoly_create(NData,Matrix32())
var value = NPath.get_simple_path(start,end,true)
value.size()==2

Well, I don't know why you need create 100% with GDScript but I made this example for you:
https://gist.github.com/guilhermefelipecgs/6d504dedfc6a5476e3eb
Put this code in a Node2D,
I hope this help you.


Array.toContain() with expect.objectContaining

What is the current behavior?
It seems that .toContain() can't be combined with expect.objectContaining. There might be another solution to test if an array of objects contains a specific object, but I somehow thought that combining toContain with expect.objectContaining would do the trick.
Example Test
  test('Array with Object Containing', () => {
    expect(
      [
        { a: 1, b: 2 },
        { c: 1, d: 1 }
      ])
      .toContain(
        expect.objectContaining({ a: 1, b: expect.anything() })
      )
  })

Output
 Array with Object Containing

    expect(array).toContain(value)

    Expected array:
      [{"a": 1, "b": 2}, {"c": 1, "d": 1}]
    To contain value:
      ObjectContaining {"a": 1, "b": Anything}

FWIW, check out #2143

@KarandikarMihir
I think I am missing something. How can I use Object.keys to find a specific object in my array of objects?

@KeKs0r If this helps!
test('Array with Object Containing', () => {
  expect(
    [
      { a: 1, b: 2 },
      { c: 1, d: 1 }
    ])
    .toContainEqual(
      expect.objectContaining({ a: 1, b: expect.anything() })
    )
})

@anilreddykatta thanks this is working fine..

I just ran into the same issue. I find it a little confusing that toContain uses strict equality checks, whereas toContainEqual does not. Their names would imply otherwise?

@WickyNilliams I agree that the naming there is a bit confusing, but you have to think like this: toContain asserts that it contains an exact thing, and in the case of objects, if it isn't the exact same object by reference, it fails. toContainEqual means if it looks the same by shape, it's ok. So it kinda makes sense, but it would have been better to reverse it and have a toContainStrict or something like that.

Coming back with more experience of jest, I would say the naming is ok. The toEqual matcher is the equivalent of toContainEqual, in that both test deep equality, not reference equality.


[Feature]: Implement bearer token auth interceptor

we should move upgradeContextWithBearerToken from plugin/storage/grpc/shared/grpc_client.go to be implemented as interceptor in pkg/bearertoken

Should be similar to the pkg/tenancy implementation.
Details: https://github.com/jaegertracing/jaeger/pull/6030#issuecomment-2387077052

We should use client interceptors in plugin/storage/grpc/shared/grpc_client.go, currently it extracts token manually, even though it seems like the factory does attach interceptors

plugin/storage/grpc/factory.go
136:	opts = append(opts, grpc.WithUnaryInterceptor(bearertoken.NewUnaryClientInterceptor()))
137:	opts = append(opts, grpc.WithStreamInterceptor(bearertoken.NewStreamClientInterceptor()))

Another suspicious place:

plugin/metrics/prometheus/metricsstore/reader.go
25:	"github.com/jaegertracing/jaeger/pkg/bearertoken"
345:	return bearertoken.RoundTripper{

Interceptor are installed in createGRPCServerLegacy but not in createGRPCServerOTEL in cmd/query/app/server.go

@chahatsagarmain I re-opened as there are other places that could use interceptors


Fix locale sensitive unit tests

Fixes #762

Thanks @SIkebe - this looks good to me. I'm going to need to wait a few days to merge this since we're locked down right now to produce a preview2 build. Thanks!

Thanks again @SIkebe


KeyError in constants.SPACY_LANGUAGE_MAP[self.language_flag]

Hello,
thank you for the development of QuickUMLS! I have installed QuickUMLS with Russian UMLS concepts (-E RUS) and found the following issue:
Traceback (most recent call last):
File "server.py", line 80, in
run_quickumls_server(opts)
File "server.py", line 19, in run_quickumls_server
verbose=opts.verbose
File "/home/elena/umls/QuickUMLS/quickumls.py", line 91, in init
spacy_lang = constants.SPACY_LANGUAGE_MAP[self.language_flag]
KeyError: 'RUS'
This is the obvious bug in constants.py since there is 'RUS' key in LANGUAGES which is not included in SPACY_LANGUAGE_MAP.
Could you please fix it? Thank you in advance!

Thank you for the bug report! I just pushed a fix for this.


prevent downgrading to stable version when package.json specifies a pre-release version

I'm currently using the alpha version of istanbul to collect coverage information with es6 code. However, when I run updtr, it always replaces it with the latest stable version. I understand not wanting to "upgrade" those projects that have specified a stable version to the pre-release, but since I have specified the alpha, I'd prefer not to be downgraded either.
I'm not sure if dist-tags or semver is the safer way to identify a pre-release, so I'll leave that decision to you, but some interesting things about the specific istanbul case are:

they do not tag the alpha version with an alpha tag, but rather a next tag
the alpha that is tagged with next is not the latest alpha version

I'd be happy to suggest modifications to how they manage their releases, but wanted to start here so that if I do need to suggest a change to their project that it would align with this projects goals as well.

You're right. Updtr should not touch these versions.
We already have a check for this case but it seems to fail in your scenario. Could you check why? And maybe submit a PR?

I've been keeping an eye on this across several projects and haven't noticed the issue lately. I wonder if I simply had some node version through nvm that I hadn't updated for a while.

Thx for checking


Check Promise status

Hello once again,
Looking at the documentation I could not find the answer.
I'm trying to implement a loading inside my modal, after the user submits (resolves, or rejects the promise)
For that, I thought about know if the Promise is Pending or Resolves/Rejected
if Resolves/rejected the loading should appear
I suggest add a isPending property for example
Example code after the implementation
{!isPending && Loading ...}

You may need use a separate state for such cases:
const [pending, setPending] = useState(false);
const showModal = () => {
  setPending(true);
  modal.show(MyModal, {}).then(() => {
    setPending(false);
  }
}

Or, you just handle pending state inside a modal.

This is the solution I first remembered. But thought you wanted to implement inside the library.
In that case this issue can be closed 👍


Adjust the checkstyle location to play nice on Win

Removed the file:// prefix on the checkstyle config location. This appeared to be breaking the site build on Windows. I've also tested this on Linux (OpenSuse 13.2) and believe that change has not broken anything. However it would be good if someone else could make sure the site still builds with this change on Linux.
If there are reasons not to remove the file:// prefix, or issues with doing so, please let me know, and I'll attempt to remedy the build issues on Windows via other means.

Thanks for the submission!


BUG: stats: Improve calculation of exponnorm.pdf

Use _norm_logcdf to compute exponnorm._logpdf more accurately,
and use the _logpdf method to implement _pdf.
Closes gh-12326.

The test failure on the ppc64le platform on Travis CI is unrelated to this PR.

I pushed a second commit that does a flake8-driven clean up in test_distributions.py.  The file had some pretty egregious PEP-8 nonconformance, so it was time for clean up.  Now, when making changes to the file in the future,  it will be much easier to use flake8 to see if any new PEP-8 violations have been introduced.
All the interesting changes are still in the first commit, for anyone looking to review the PR.

And the one test failure (Travis CI ppc64le platform) still appears to be unrelated, although I don't know why this PR seems to experience that failure while other recent PRs don't.  The failure is
=================================== FAILURES ===================================
____________________________ test_parallel_threads _____________________________
[gw0] linux -- Python 3.6.8 /home/travis/virtualenv/python3.6.8/bin/python
scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py:902: in test_parallel_threads
    assert_allclose(r, results[-1])
E   AssertionError:
E   Not equal to tolerance rtol=1e-07, atol=0
E
E   Mismatched elements: 2 / 3 (66.7%)
E   Max absolute difference: 0.01136564
E   Max relative difference: 0.00285222
E    x: array([-3.984841+0.j, -3.996207+0.j, -3.965946+0.j])
E    y: array([-3.996207, -3.984841, -3.965946])

All green now, readability improved, the bug's fixed. Merging, thanks Warren, Ralf


As a user, I would like to sort items based on ascending or descending fields

So that I can have more flexibility in what items I want to view at the top.

Refer to PR #92
Closed.


Removes -n argument for csvgrep's documentation

The -n argument doesn't work with csvgrep. I assume it was, proabably, copy/pasted by mistake from csvcut's documentation.

Hmm, but it does work:
echo "1,2\n3,4" | csvgrep -n


jacdac-ledstrip number of pixels and brightness

https://makecode.microbit.org/_2rtFM0YJ28Yw
first time to show number of pixels or brightness，it gets 'undefined' and 'NaN'

fixed in 1.9.11


parse for multiple json ?

Hello
I get multiple json data. I would like to join us altogether to get one valid json.
Sample:
Input:
{"a":"A"}
"foo"
{"c":"C"}

Output:
[
  {"a":"A"},
  "foo",
  {"c":"C"}
]

Is it possible to read all of them ? or you probably want to read only valid json.
Is it possible to read the first valid json ({"a":"A"}) and return his decoded value and the current position  ? by this way I will be able to read each parts

Best Regards,

I tried a small change in lunajson/decode.lua :
            else
                    f, pos = find(json, '^[ \n\r\t]*', pos)
                    if pos ~= #json then
-                            decode_error('json ended')
+                            return nil, v, pos
                    end
                    return v

Instead of raisin an error, the first value returned is nil, that is easy to make x = assert(json.decode(data))
the 2nd returned value is the currently decoded item, the 3rd is the position
local all = {}
while true do
    local usual, partial, pos = lunajson.decode(data)
    if usual and not partial then
        table.insert(all, usual)
        break
    elseif not usual and pos then
        table.insert(all, partial)
        data = data:sub(pos)
    else
        error("?!")
    end
end

What do you think about this change ?

See my PR https://github.com/grafi-tt/lunajson/pull/19


Api reference: Added actor builds and runs into apiary docs.

Added actor builds and runs into apiary docs
For now, I just copy and update descriptions of endpoints from Actors group.

Without changing the original Actors section it might be pretty confusing for users to find two bits of information that are the same except for the difference in the URL.
If it's a bad time to move the Run Collection and Build Collection out of the Actors section, it would be good to at least add [Deprecated] tags for the old 'Get Run'/'Abort Run'/etc endpoints, no?

@m-murasovs Sorry, I forgot to add deprecation warning as we discussed.


Incomplete ed25519 key support

Trying to authenticate an ssh tunnel using a freshly created ed25519 key results in following error messages:
Can't initialize tunnel
  Cannot establish tunnel
    Exhausted available authentication methods
      Problem getting public key from com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile@3a09bcf2
        Cannot read encrypted keypair with aes256-ctr yet.

DBeaver SSHJ <IP_ADDRESS>808130820 is installed.

This seems to be fixed in SSHJ already (https://github.com/hierynomus/sshj/issues/427)
We need to upgrade the SSHJ version.

I have a problem trying to connect using ed25519

with RSA if it works
I noticed that version 0.26 is used
https://github.com/dbeaver/dbeaver/commit/d195bbda729b1828f85cb52342a5628e7132ff52
and it already includes support for this type of key.
https://github.com/hierynomus/sshj/commit/db48ff85c05d2d85018e32e3631d0a3161d05b82


Duplicate lines in Problem pane

This is for NAV 2018 RTM on premise.
Why for every "problem" in my code are there 2 entries in the Problem pane of VS Code?

It is very annoying.

Hi @GreatScott000, which version of the extension are you using? Is it possible that you have two versions of the extension currently installed in VS Code?

It is possible.  Is there a way to tell?
I had some problems installing the VSIX and I may have run one from the wrong build.

When using VS Code, you can see which extensions are installed by clicking on the 'Extensions' icon (the one highlighted in the image below):

That was it, thank you.


Rewrite

So, here it is: The thing that I would like to call v1.0.0.
As the title suggests, it's a complete re-write of what was there before, splitting it up in proper C++ classes. There are still a LOT of TODOs in the code, but it is at a state that I would definitely call "usable".
Main features:

Status LEDs (8 WS2812 LEDs), dimmable in case they are too bright
Web interface (dongle enumerates as an NCM network adapter and hosts its own web server for configuration and status)
Logging via USB serial interface or accessible via web server (logs are buffered to some extent)
Detects connected IO boards and their type (connector and port direction). However, currently treats all boards as 4 outputs
Configurations are stored on one of the IO Boards or the main board and managed on the WebUI
Optional wireless module is detected and used for wireless DMX (currently TX and RX is implemented, Mesh is still missing). I've successfully transferred four DMX universes on one radio channel without noticeable latency
Main method to get DMX data from the host PC to the board is either ArtNet or sACN (the board speaks both). A "native USB protocol" is designed and integrated into the dongle (the same protocol as used for the wireless DMX, including data compression) but no PC software has yet been adapted to use it. Main advantages of "network"-based protocols:

Super-easy hotplugging: Dongle starts processing data from host in less than one second after plugging in. libusb-based dongles and hotplugging (also in the sense of disconnecting and reconnecting the dongle while it's running) is quite some effort
Easy to debug using tools such as Wireshark
Already supported by a great number of lighting control software

The dongle has 24 internal buffers that can be patched pretty flexibly. In this version, it's simply hardcoded:

buffer -> local output for the fist 16 buffers +
buffer -> wireless for the first 4 buffers +
wireless -> buffer (4 universes incoming go to buffers 4 to 7 = outputs 0-3 on second IO board). So it can be used as a standalone Wireless -> DMX receiver without host PC.

Screenshots of web interface can be provided. However, everything required to test it is a Raspberry Pi Pico board, one microUSB-Cable and the firmware file :). Load the firmware onto the board, reboot it. It will/should show up as a network card (works on Linux, macOS and Windows hosts) and assign an IPv4-address to your machine. Then, open a web browser and enter the dongle's IP there. The IP is 169.254.X.1 (link-local addressing) and can be found out using dmesg on Linux or hovering over the "USB" icon in the task bar on Windows. Mac users should be able to see the IP in the network settings but since I don't own a Mac I didn't test that.
I plan to run a first "real" show with that interface (maybe even with wireless ;) in December. If the Corona-situation allows it ...

Oh, fixes #15 ;)

By the way, I'm not expecting a line-by-line code review. This is more to see if the direction this is going is fine for the other OLP-devs :)

Can I say this is amazing that you've done the whole stack single handed!
I've only played with the web UI so far but it looks great!

Especially if I can go ahead requesting USB PID 0x2040 as stated in https://github.com/OpenLightingProject/rp2040-dongle/pull/16/files#diff-40b405bc8e91746f1ee25c24a2cf6e409689d83f380d95094b60cfbf9b359360R34

I'd imagine so, but please can you put a comment on the line you're referring too, the link doesn't work for me.

Can I say this is amazing that you've done the whole stack single handed!

Thank you! I did some web-page-projects in my day-to-day-job but the main challenge here is to make sure that the firmware (compiled C++ code) plus the complete web application including assets (icons, pictures, ...) fit into the 2MB flash of the Pico board. This is why I chose React over the other available web frameworks :)

I've only played with the web UI so far but it looks great!

Great that it was easy for you to get it up and running to that point! To which host OS did you connect your Pico board? Linux. macOS or Windows?
Without any additional hardware, you could do the following things:

Send ArtNet or sACN to the board's IP address (sACN should also work with multicast) and see if the values change on the WebUI's "Console" page
Use the "Config" page to edit the board's name or IP-address, pressing the "Save to base board" button to save it to the Pico's Flash storage and then rebooting (= unplugging + re-plugging) it. That should make the Status LEDs on the "Home" page show a different status (since it now has a "real", valid config instead of the fallback one). And of course the modified board name and IP should be reflected on the "Home" and "Config" pages as well

Especially if I can go ahead requesting USB PID 0x2040 as stated in https://github.com/OpenLightingProject/rp2040-dongle/pull/16/files#diff-40b405bc8e91746f1ee25c24a2cf6e409689d83f380d95094b60cfbf9b359360R34

I'd imagine so, but please can you put a comment on the line you're referring too, the link doesn't work for me.

Oh, yeah, that link is broken. I was referring to the file src/usb_descriptors.c, line 34 (https://github.com/kripton/rp2040-dongle/blob/6778ae6d7bcc06281f8af6390c11cfbea7ec0c19/src/usb_descriptors.c#L34). The board currently uses the yet unclaimed PID of 0x2040 just for the fun of it (= reference to the RP2040 µC). I could of course also use the one of the JaRule!-Board + 1 as we discussed previously. No preference here.

Can I say this is amazing that you've done the whole stack single handed!

Thank you! I did some web-page-projects in my day-to-day-job but the main challenge here is to make sure that the firmware (compiled C++ code) plus the complete web application including assets (icons, pictures, ...) fit into the 2MB flash of the Pico board. This is why I chose React over the other available web frameworks :)

Yeah that certainly sounds like a challenge! You might want an action that catches such issues as part of the build; the Arduino people do the same thing.

I've only played with the web UI so far but it looks great!

Great that it was easy for you to get it up and running to that point! To which host OS did you connect your Pico board? Linux. macOS or Windows?

A slightly old version of Ubuntu Linux.

Without any additional hardware, you could do the following things:
* Send ArtNet or sACN to the board's IP address (sACN should also work with multicast) and see if the values change on the WebUI's "Console" page. You could also hook up a scope, logic analyser or RS-485 transmitter to the GPIOs of the board (Port 0 is on GPIO 6) to see the DMX data being generated.

I don't think I tried this.

* Use the "Config" page to edit the board's name or IP-address, pressing the "Save to base board" button to save it to the Pico's Flash storage and then rebooting (= unplugging + re-plugging) it. That should make the Status LEDs on the "Home" page show a different status (since it now has a "real", valid config instead of the fallback one). And of course the modified board name and IP should be reflected on the "Home" and "Config" pages as well

I think I'd done this already!

Especially if I can go ahead requesting USB PID 0x2040 as stated in https://github.com/OpenLightingProject/rp2040-dongle/pull/16/files#diff-40b405bc8e91746f1ee25c24a2cf6e409689d83f380d95094b60cfbf9b359360R34

I'd imagine so, but please can you put a comment on the line you're referring too, the link doesn't work for me.

Oh, yeah, that link is broken. I was referring to the file src/usb_descriptors.c, line 34 (https://github.com/kripton/rp2040-dongle/blob/6778ae6d7bcc06281f8af6390c11cfbea7ec0c19/src/usb_descriptors.c#L34). The board currently uses the yet unclaimed PID of 0x2040 just for the fun of it (= reference to the RP2040 µC). I could of course also use the one of the JaRule!-Board + 1 as we discussed previously. No preference here.

My gut feeling is this is probably a little niche to be grabbing such a prime PID, especially as a few others haven't taken it either (although they mostly seem to have name based vanity ones instead. The ACE* range is still pretty cool! But ultimately it's your baby so I'll leave it up to you!

Thank you! I did some web-page-projects in my day-to-day-job but the main challenge here is to make sure that the firmware (compiled C++ code) plus the complete web application including assets (icons, pictures, ...) fit into the 2MB flash of the Pico board. This is why I chose React over the other available web frameworks :)

Yeah that certainly sounds like a challenge! You might want an action that catches such issues as part of the build; the Arduino people do the same thing.

Could you give me hint here? An action that tells us that the resulting .uf2-file got too large? I looked for the solution in the Arduino-project you mentioned here: https://github.com/earlephilhower/arduino-pico/tree/master/.github/workflows but I couldn't find anything related to binary size.

I've only played with the web UI so far but it looks great!

Great that it was easy for you to get it up and running to that point! To which host OS did you connect your Pico board? Linux. macOS or Windows?

A slightly old version of Ubuntu Linux.

Great to hear that it worked out-of-the-box!

Especially if I can go ahead requesting USB PID 0x2040 as stated in https://github.com/OpenLightingProject/rp2040-dongle/pull/16/files#diff-40b405bc8e91746f1ee25c24a2cf6e409689d83f380d95094b60cfbf9b359360R34

I'd imagine so, but please can you put a comment on the line you're referring too, the link doesn't work for me.

Oh, yeah, that link is broken. I was referring to the file src/usb_descriptors.c, line 34 (https://github.com/kripton/rp2040-dongle/blob/6778ae6d7bcc06281f8af6390c11cfbea7ec0c19/src/usb_descriptors.c#L34). The board currently uses the yet unclaimed PID of 0x2040 just for the fun of it (= reference to the RP2040 µC). I could of course also use the one of the JaRule!-Board + 1 as we discussed previously. No preference here.

My gut feeling is this is probably a little niche to be grabbing such a prime PID, especially as a few others haven't taken it either (although they mostly seem to have name based vanity ones instead. The ACE* range is still pretty cool! But ultimately it's your baby so I'll leave it up to you!

Yeah, I just decided to go with the ACE*-range. And just for fun I re-checked on the 0x2040: taken since 2 hours ago ;) I'll send the PR the coming days :+1:


History of change in section preview

PR includes

[x] Refactor
[x] Feature

Related issues
Resolve #1062

Also pageHrefs.interviewSectionHistory is not needed anymore

@Katrin-kudryash


Use Azure AD Token instead of Personal Token for SCIM Provisioning

The Databricks REST API now supports Azure AD Token based authentication as a public preview feature. Can we setup a Service Principal and use that for this integration rather than using Databricks Personal Tokens?

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

ID: 8f6960e6-1a0c-267f-4ec4-2ff7574b1f09
Version Independent ID: b08f7ae9-2b9a-c629-74e8-71a403543b97
Content: Configure SCIM provisioning for Microsoft Azure Active Directory - Azure Databricks
Content Source: databricks/administration-guide/users-groups/scim/aad.md
Service: azure-databricks
GitHub Login: @mamccrea
Microsoft Alias: mamccrea

@pnarsi  Thanks for the question! We are investigating and will update you shortly.

Hi @pnarsi! This feature is in public preview. Please see Get an Azure Active Directory token using a service principal

Hi @mamccrea. Yes I did see that the feature was in public preview.  My question was around whether we can start using the feature for the SCIM integration. At the moment the SCIM provisioning article only talks about using personal tokens.
https://docs.microsoft.com/en-us/azure/databricks/administration-guide/users-groups/scim/aad


Add documentation for running cloudsql-proxy as a deployment in Kubernetes

for cases such as cronJobs.

Yep, especially how to run cronjobs since now its on a distroless image, we're unavailable to do this:
        command: ["/bin/sh", "-c"]
        args:
          - |
            /cloud_sql_proxy -instances= ... & CHILD_PID=$!
            (while true; do if [[ -f "/tmp/pod/terminated" ]]; then kill $CHILD_PID; echo "Killed $CHILD_PID because the main container terminated."; fi; sleep 1; done) &
            wait $CHILD_PID
            if [[ -f "/tmp/pod/terminated" ]]; then exit 0; echo "Job completed. Exiting..."; fi

There is a Helm chart. Although not docs, but you should be able to interpolate how the deployment works from the template.


Feature/customer orders test

DBT Build Status 📖success
Pushed by: @abhr1994, Action: pull_request


Create PSA crypto coverage page

This commit adds information about the current level of progress made
against mapping the PSA crypto API as an IPC API.
Signed-off-by: Ionut Mihalcea<EMAIL_ADDRESS>See the new page here

Closing this PR and moving the new page to the Parsec book!


[Question] What is the Mod Permission Node?

Checks

[X] I confirm that I have searched for existing issues / pull requests before reporting to avoid duplicate reporting.
[X] I confirm that I noted that if I don't follow the instructions, the issue may be closed directly.

Description
Hiya,
I am trying to use luckperms to limit the use of the command /mcdc (to avoid users without admin rights adding players to the whitelist) and could not find information if the Mod offers a permission node.
Kind regards.

Solution is in https://github.com/Xujiayao/MCDiscordChat/issues/167#issuecomment-1695627194


Design contract interface for tokenomics

Methods:

create an offer
set vesting
transfer locked tokens (only by operators)
transfer free tokens (free: tokens whose offers are expired)
balance vesting
balance locked
balance free
balance offered

Events:

offer created (from, amount)
locked transfer (from, to, amount)
vesting set (to, amount)

https://github.com/TelediskoDAO/projects/issues/40
https://github.com/TelediskoDAO/projects/issues/50
https://github.com/TelediskoDAO/projects/issues/39

Closed by #52


Somfy blinds initially non responsive

Hardware
ESP32
Firmware version
V2.4.1
Application version
V2.4.1
What happened? What did you expect to happen?
No problems pairing multiple Somfy motors, but the response from the user interface is unreliable (there's no issue using the remote). Initially, the web-ui is non-responsive to any of the buttons. If I click one of the buttons multiple times, it suddenly responds, and after that, it responds immediately to any button press. I encounter the same issue with all blinds. It seems that the motors need to wake up initially. What could be the problem?
How to reproduce it (step by step)
1. Go to...
2. Click on...
...

Logs
No response

Please update to v2.4.2.  There have been some updates to the network handling.
However, this could also mean that the mDNS name are not being kept by your network.  So what happens is the web interface asks for the local address and the router has to ask all the stuff connected if it belongs to them.  Try using the IP address to troubleshoot this.  If it works consistently then we need to look at how the local mDNS is setup on your network.   Also if you are using .local try it without anything just the hostname.
Another thing that commonly is required on your router is to set up a DHCP reservation that includes the host name of the ESPSomfy RTS device that you set in the Options tab.

Thanks for your quick response. The IP address is already reserved for the ESPSomfy RTS device in my router and is also set in the option tab (Acquire IP Address automatically DHCP is selected). I have updated to V2.4.2, but the issue remains the same. Also no difference with the IP or the Espsomfyrts.local address. If I triple-click a random button, then every button works immediately afterwards. However after a few minutes, I have to triple-click again. This happens with all blinds.
Initially I did not have this problem, but I recently installed 2 additional blinds and updated from 1.7.2 to 2.4.1. Perhaps I could revert back to an older version to test if this solves this issue?

If you are running a CC1101 12db will send out intermittent garbage.   Only under specific chips can you reach 12dB gain set it to 10 for the E07-M1101 module.   Open the browser console and see if there is an error in there when first pressing the button.  If there isn't increase the number of repeats in the shade definition.   Some motors go to sleep to conserve energy and it is near impossible to get a single frame sent from a handheld remote.

The number of repeat commands in the shade definition did the trick, how could I have missed that option. I have set it to 3 times and now it works like a charm. Thanks a lot for your quick help with this! There was no error after the first press in the browser console btw

Awesome.  I am going to close this for now.


Fails to connect

I had this integration working for a few weeks. I have a BT Proxy setup on an SLZB-06 coordinator. HA can see and detect the integration but it won’t connect. I have deleted the pair and re-paired. I have reinstalled the BT Proxy setup

LOG:
Detected code that calls async_forward_entry_setups for integration astralpool_halo_chlorinator with title: HCHLOR and entry_id: 01J340F9JMKXD05V1M0673H0XV, during setup without awaiting async_forward_entry_setups, which can cause the setup lock to be released before the setup is done. This will stop working in Home Assistant 2025.1. Please report this issue.
Logger: homeassistant.components.select
Source: runner.py:190
integration: Select (documentation, issues)
First occurred: 8:47:53 AM (2 occurrences)
Last logged: 8:53:48 AM
Setup of select platform astralpool_halo_chlorinator is taking over 10 seconds.
Logger: homeassistant.components.binary_sensor
Source: runner.py:190
integration: Binary sensor (documentation, issues)
First occurred: 8:47:53 AM (2 occurrences)
Last logged: 8:53:48 AM
Setup of binary_sensor platform astralpool_halo_chlorinator is taking over 10 seconds.

I'm having the same problem. Halo was commissioned yesterday and integration worked initially - but post Halo firmware upgrade yesterday evening (V2.3 -> V2.4) it seems I have no values in HA.
I'm getting this error in the logs.
This error originated from a custom integration.

Logger: custom_components.astralpool_halo_chlorinator.coordinator
Source: custom_components/astralpool_halo_chlorinator/coordinator.py:90
integration: Astral Pool Halo Chlorinator (documentation, issues)
First occurred: 09:34:36 (73 occurrences)
Last logged: 10:13:14

Failed _gatherdata, giving up: 83
Failed _gatherdata, giving up: 84
Failed _gatherdata, giving up: 85
Failed _gatherdata, giving up: 86
Failed _gatherdata, giving up: 87

@jonathanwilletts did you also upgrade to v2.4 firmware on the Halo?
@staticlama i was afraid this day would come.

@jonathanwilletts did you also upgrade to v2.4 firmware on the Halo?
@staticlama it looks like something has changed in the update.

Confirming that I can still control the mode on my Chlorinator but all other data is unavailable. I've located a BT proxy in my pool equipment box - so BT signal is strong - but consequently the wifi signal isn't so good so also trying to balance those two.

Confirming that I can still control the mode on my Chlorinator but all other data is unavailable. I've located a BT proxy in my pool equipment box - so BT signal is strong - but consequently the wifi signal isn't so good so also trying to balance those two.

What ble proxy software is being used on that zigbee stick of yours? if youre able to control it, but not recieveing data, it appears it isnt subscribing to the notification properly and passing it to HA.
Further more, Due to what i've discovered from @staticlama's post.. I'm going to make an annoncement shortly with my findings.

Thanks for the quick responses Daniel, look forward to the post and hopefully it's positive.... I'm also trying to work out if I can do a firmware downgrade somehow.

Thanks for the quick responses Daniel, look forward to the post and hopefully it's positive.... I'm also trying to work out if I can do a firmware downgrade somehow.

Unfortunately it seems unlikely.
I've made a post here. https://community.home-assistant.io/t/viron-astral-pool-chlorinatorgo-integration/375495/408

@jonathanwilletts did you also upgrade to v2.4 firmware on the Halo?
@staticlama it looks like something has changed in the update.

I have upgraded to 2.4 as well unfortunately.

Thanks for the quick responses Daniel, look forward to the post and hopefully it's positive.... I'm also trying to work out if I can do a firmware downgrade somehow.

Unfortunately it seems unlikely.
I've made a post here. https://community.home-assistant.io/t/viron-astral-pool-chlorinatorgo-integration/375495/408

I have the ability to connect my Halo via Cat5e. Can your integration work with this type of connection?

I have upgraded to 2.4 as well unfortunately.

Bugger. Locked out now. See the community post above for further details.

@jonathanwilletts did you also upgrade to v2.4 firmware on the Halo?
@staticlama it looks like something has changed in the update.

I have upgraded to 2.4 as well unfortunately.

I’ve reached out to Astral via my installer. Suggest you try the same. Have expressed my disappointment and requested a firmware downgrade.

Just out of interest, has anyone checked to see if the Halo requires the cloud service key generation if it doesn't have an internet itself? Surely there isn't much point to a cloud verification if the Halo can't verify too?
Just a thought as I disconnect mine from the internet so it can't be accidentally updated - feel sorry for you guys who have already updated!

Just out of interest, has anyone checked to see if the Halo requires the cloud service key generation if it doesn't have an internet itself? Surely there isn't much point to a cloud verification if the Halo can't verify too?
Just a thought as I disconnect mine from the internet so it can't be accidentally updated - feel sorry for you guys who have already updated!

Good thought. I can try out tomorrow and report back.

Just out of interest, has anyone checked to see if the Halo requires the cloud service key generation if it doesn't have internet itself? Surely there isn't much point to a cloud verification if the Halo can't verify too?

I'd suggest they're using Public/Private key authentication, which would not require Halo to be connected to the cloud server. Ie, pretty much how JWT tokens work.
However, it certainly would be a good test.

Just a thought as I disconnect mine from the internet so it can't be accidentally updated - feel sorry for you guys who have already updated!

Good move on removing yours from wifi.

Just an update - removing or blocking wifi/internet doesn’t work as expected.

Yep, confirms they are using asymetric public/private key exchange that is trusted by the Halo.

The new handshake with the cloud server during a bluetooth connection is quite simple to replicate within this Intergration.
I've already worked it out infact. It requests a challenge response providing some details like firmware major/minor versions, and protocol version then hits a second authorisation using that receieved challenge, providing even more details like the bluetooth passcode to recieve the MAC to decrypt the payload.
The issue is that it no longer becomes a local solution, and will hit that endpoint every 60 seconds which could potentially impact real users of their platform which is where the problem lays as to why I'm not proceeding with it (see what happened with MyQ).
Heck, this change of theirs already impacts end users that have little, to no mobile/wifi coverage to their mobile device. Its quite poor form approach to moving forward with this.

Wonder what the reason is behind locking down the Bluetooth - given you have to basically be within 10m to reliably connect.
If you did proceed, I’d be grateful to even get hourly stats and cumulative dose amount from the doser. Two useful bits of info the Halo app doesn’t provide when it does connect.

I wrote a Home Assistant sensor to track cumulative acid dosing over time.
https://community.home-assistant.io/t/viron-astral-pool-chlorinatorgo-integration/375495/320


Fixed radix dialog version

In package.json it is using the locked version of radix-dialog, shouldn't this be ^1.0.0 to upgrade to minor or patch versions?
https://github.com/pacocoursey/cmdk/blob/main/cmdk/package.json#L22

I just wanted to ask the same question. +1


Unify plugin-publish plugin with java-gradle-plugin

From the Design Spec:
Context
Publishing Gradle plugins currently requires different plugins depending on whether one wants to publish to the Plugin Portal or a custom, e.g. company-internal, repository. For the former purpose, there’s the Plugin Publishing Plugin (com.gradle.plugin-publish); for the latter, there’s the Gradle Plugin Development Plugin (java-gradle-plugin).
When a project wants to publish Gradle plugins to both the Plugin Portal and a custom Maven repository or simply use the Gradle Plugin Development Plugin to generate the plugin descriptors, its build script currently requires some duplication:

the plugin IDs have to be duplicated in the plugins blocks of gradlePlugin and pluginBundle
the maven coordinates have to customized twice (in mavenCoordinates of pluginBundle and in the pluginMaven publication).

Moreover, the Plugin Publishing Plugin generates a separate POM file and does not take into account any customizations made to the POM of the main publication added by the Gradle Plugin Development Plugin.
Goal
Simplify publishing to the Plugin Portal and a custom repository to avoid duplication and enable reuse of POM customization.

I wrote a design spec and update the issue description with its main points. Comments on the design spec are welcome!

plugin-publish 0.10.0 has been released, the changes to the java-gradle-plugin plugin will be in 4.10.

If anyone is interested, @marcphilipp wrote this little example to demonstrate how to use this feature with the Groovy DSL:
https://github.com/marcphilipp/gradle-sandbox/blob/85e934d13b413df2fccd752591f631128e7e7734/plugin-maven-publish/build.gradle#L23-L44


store: Use channels for Watch/WatchTree

ping @abronan @vieux @mavenugo

@aluzzardi did you read my mind :-), I was about to request for this. Not just for the Store, but also for the discovery.Watch. Now that libnetwork is making use of discovery package, there will be cases where we would like to stop the discovery. Hence, I was thinking of checking with you for an ability to pass a stop channel to the Watch() API, which gives the control to the user to stop the discovery when it prefers. Do you have any opinion on this ?

@mavenugo: Yes, this PR is the foundations for that :)
I will change discovery so that:
1/ Watch will take a stop channel and return a channel which can be stopped at any time
2/ discovery.Fetch will disappear. The only call will be Watch which will immediately fire the current entries to the channel (so no need for List+Watch, just Watch). 3/ Watchwill be resilient to errors. Right now, if the store goes down, Watch aborts. It won't be the case anymore and it will keep retrying forever and ever, untilstopCh` gets called.

LGTM

We should probably wait for integration tests in this case? Just to be sure that any future change on the Watch won't break the whole discovery part?

We should but I'm actually working on resilient Discovery which will alter a lot integration tests so I'll do it in a single pass

Merging this since I have your LGTMs.
More tests are coming in another PR.


Incorrect exercise: [courseId=grammar-intro_eng][lessonNumber=23][exerciseId=1272]

Description
If possible, please provide a brief description of what is wrong with this exercise.
English sentence is nonsensical
Diagnostics information (do not remove)

Exercise identifier: [courseId=grammar-intro_eng][lessonNumber=23][exerciseId=1272]
Exercise payload: {"sentences":[{"text":"You are have finished eating the apple.","lojbanic":false}],"title":"Translate specifying event contours","type":"typing"}
Attempted solution: {"text":"do ba'o citka le plise"}
Attempted solution was classified as correct: yes
Validation payload: {"canonicalAnswer":"do ba'o citka lo plise","correct":true}

Fixed, thanks!


matrix gpu [third stage]

Submission Checklist

[ ] Run unit tests: ./runTests.py test/unit
[x] Run cpplint: make cpplint
[x] Declare copyright holder and open-source license: see below

Summary:
Adds the matrix_gpu type and basic functions such as add, subtract, transpose, etc.

Rok and I thought it would be better to break the GPU PR into several smaller PRs that will flow by:

OpenCL headers / makefile things
Code to set up GPU
basic GPU matrix and functions (You are here)
Multiplication and Inverse for GPU Matrix
Cholesky Decomposition

Intended Effect:
We have a new matrix type matrix_gpu whose operations are done, on the gpu. Basic simple operations are available such as add, subtract, transpose, etc.
How to Verify:
Tests ending with _gpu
Side Effects:
None
Documentation:
?
Copyright and Licensing
Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company):
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

Rok Cesnovar and Steve Bronder

@SteveBronder and @rok-cesnovar, closing the PR for now; we'll reopen when we're on this stage.


Unable to build zwave | homeassistant-pyozw

Home Assistant release with the issue:
Current version 0.82.1
Last working Home Assistant release (if known):
Fresh install I don't know...
Operating environment (Hass.io/Docker/Windows/etc.):

Running home-asistant in an ubuntu 18.04 LXC container on proxmox.
usb pass trough has been set up and is working. (home assistant is set up in venv)
Component/platform:

z-wave  (zwave)

Description of problem:
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

Traceback (if applicable):
LEAN=1 -DPY_LIB_FLAVOR=embed -DPY_LIB_BACKEND=cpp -Isrc-lib/libopenzwave/ -Iopenzwave-embed/open-zwave-hass/cpp/src -Iopenzwave-embed/open-zwave-hass/cpp/src/value_classes -Iopenzwave-embed/open-zwave-hass/cpp/src/platform -Iopenzwave-embed/open-zwave-hass/cpp/build/linux -I/home/albert/homeassistant/include -I/usr/include/python3.6m -c openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp -o build/temp.linux-x86_64-3.6/openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.o
  openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:3:0: warning: "PY_SSIZE_T_CLEAN" redefined
   #define PY_SSIZE_T_CLEAN

  <command-line>:0:0: note: this is the location of the previous definition
  openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:15395:67: warning: macro "__DATE__" might prevent reproducible builds [-Wdate-time]
     __pyx_t_4 = __pyx_convert_PyUnicode_string_to_py_std__in_string(PY_LIB_DATE_STRING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1411, __pyx_L1_error)
                                                                     ^~~~~~~~~~~~~~~~~~
  openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:15397:67: warning: macro "__TIME__" might prevent reproducible builds [-Wdate-time]
     __pyx_t_5 = __pyx_convert_PyUnicode_string_to_py_std__in_string(PY_LIB_TIME_STRING); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1411, __pyx_L1_error)
                                                                     ^~~~~~~~~~~~~~~~~~
  openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp: In function ‘PyObject* __pyx_pf_12libopenzwave_9PyManager_272beginControllerCommand(__pyx_obj_12libopenzwave_PyManager*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*)’:
  openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:31703:204: warning: ‘bool OpenZWave::Manager::BeginControllerCommand(uint32, OpenZWave::Driver::ControllerCommand, OpenZWave::Driver::pfnControllerCallback_t, void*, bool, uint8, uint8)’ is deprecated [-Wdeprecated-declarations]
     __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_self->manager->BeginControllerCommand(__pyx_t_1, __pyx_t_2, __pyx_f_12libopenzwave_ctrl_callback, ((void *)__pyx_v_pythonfunc), __pyx_t_3, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4207, __pyx_L1_error)
                                                                                ^
  In file included from openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:640:0:
  openzwave-embed/open-zwave-hass/cpp/src/Manager.h:1732:19: note: declared here
     DEPRECATED bool BeginControllerCommand( uint32 const _homeId, Driver::ControllerCommand _command, Driver::pfnControllerCallback_t _callback = NULL, void* _context = NULL, bool _highPower = false, uint8 _nodeId = 0xff, uint8 _arg = 0 );
                     ^~~~~~~~~~~~~~~~~~~~~~
  x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.6/openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.o openzwave-embed/open-zwave-hass/libopenzwave.a -ludev -lstdc++ -lresolv -o build/lib.linux-x86_64-3.6/libopenzwave.cpython-36m-x86_64-linux-gnu.so
  x86_64-linux-gnu-g++: error: openzwave-embed/open-zwave-hass/libopenzwave.a: No such file or directory
  error: command 'x86_64-linux-gnu-g++' failed with exit status 1

  ----------------------------------------
  Failed building wheel for homeassistant-pyozw

And also at the end of building
    creating build/temp.linux-x86_64-3.6/openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPY_LIB_VERSION=0.1.1 -DPY_SSIZE_T_CLEAN=1 -DPY_LIB_FLAVOR=embed -DPY_LIB_BACKEND=cpp -Isrc-lib/libopenzwave/ -Iopenzwave-embed/open-zwave-hass/cpp/src -Iopenzwave-embed/open-zwave-hass/cpp/src/value_classes -Iopenzwave-embed/open-zwave-hass/cpp/src/platform -Iopenzwave-embed/open-zwave-hass/cpp/build/linux -I/home/albert/homeassistant/include -I/usr/include/python3.6m -c openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp -o build/temp.linux-x86_64-3.6/openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.o
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:3:0: warning: "PY_SSIZE_T_CLEAN" redefined
     #define PY_SSIZE_T_CLEAN

    <command-line>:0:0: note: this is the location of the previous definition
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:15395:67: warning: macro "__DATE__" might prevent reproducible builds [-Wdate-time]
       __pyx_t_4 = __pyx_convert_PyUnicode_string_to_py_std__in_string(PY_LIB_DATE_STRING); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1411, __pyx_L1_error)
                                                                       ^~~~~~~~~~~~~~~~~~
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:15397:67: warning: macro "__TIME__" might prevent reproducible builds [-Wdate-time]
       __pyx_t_5 = __pyx_convert_PyUnicode_string_to_py_std__in_string(PY_LIB_TIME_STRING); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1411, __pyx_L1_error)
                                                                       ^~~~~~~~~~~~~~~~~~
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp: In function ‘PyObject* __pyx_pf_12libopenzwave_9PyManager_272beginControllerCommand(__pyx_obj_12libopenzwave_PyManager*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*)’:
    openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:31703:204: warning: ‘bool OpenZWave::Manager::BeginControllerCommand(uint32, OpenZWave::Driver::ControllerCommand, OpenZWave::Driver::pfnControllerCallback_t, void*, bool, uint8, uint8)’ is deprecated [-Wdeprecated-declarations]
       __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_self->manager->BeginControllerCommand(__pyx_t_1, __pyx_t_2, __pyx_f_12libopenzwave_ctrl_callback, ((void *)__pyx_v_pythonfunc), __pyx_t_3, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4207, __pyx_L1_error)
                                                                                ^
    In file included from openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:640:0:
    openzwave-embed/open-zwave-hass/cpp/src/Manager.h:1732:19: note: declared here
       DEPRECATED bool BeginControllerCommand( uint32 const _homeId, Driver::ControllerCommand _command, Driver::pfnControllerCallback_t _callback = NULL, void* _context = NULL, bool _highPower = false, uint8 _nodeId = 0xff, uint8 _arg = 0 );
                       ^~~~~~~~~~~~~~~~~~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.6/openzwave-embed/open-zwave-hass/python-openzwave/src-lib/libopenzwave/libopenzwave.o openzwave-embed/open-zwave-hass/libopenzwave.a -ludev -lstdc++ -lresolv -o build/lib.linux-x86_64-3.6/libopenzwave.cpython-36m-x86_64-linux-gnu.so
    x86_64-linux-gnu-g++: error: openzwave-embed/open-zwave-hass/libopenzwave.a: No such file or directory
    error: command 'x86_64-linux-gnu-g++' failed with exit status 1

    ----------------------------------------
Command "/home/albert/homeassistant/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-uz0pruae/homeassistant-pyozw/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-a6zap9cy-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/albert/homeassistant/include/site/python3.6/homeassistant-pyozw" failed with error code 1 in /tmp/pip-build-uz0pruae/homeassistant-pyozw/

Additional information:
I also tried to install it manualy using pip install homeassistant-pyozw==0.1.1 or pip3 install homeassistant-pyozw==0.1.1

Hi,
I solved it using "yum install systemd-devel"

I am running on  Ubuntu 18.04...
sudo apt-get install systemd-devel results in: Unable to locate package systemd-devel
After googleing a bit i stumbled upon libsystemd-dev but that didn't work either.
Any idea how I could get homeassistant-pyozw working on ubuntu?

Could u try package libudev-dev ? On Fedora there was no separate package
but on Ubuntu it might be in that specific package.
On Sat, Nov 24, 2018, 13:14 johnappletree<EMAIL_ADDRESS>wrote:

I am running on Ubuntu 18.04...
sudo apt-get install systemd-devel results in: Unable to locate package
systemd-devel
After googleing a bit i stumbled upon libsystemd-dev but that didn't work
either.
Any idea how I could get homeassistant-pyozw working on ubuntu?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/issues/18659#issuecomment-441363658,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXXE8Nu8pl8hnX_0cFrTj2owqa2kyXUiks5uyTgPgaJpZM4YxGp-
.

Cool That worked! Thanks

Hi there!
I'm facing the exact same issue running HA 0.82.1 and trying to install Z-Wave, but I'm running HA on my Synology.
It seems I don't have yum or apt-get installed. Can somebody knows how to do the update on a Synology?
Thanks!

Are you running it in a container? I would highly recommend it. The equivalent to apt-get/yum on synology should be something like dkpg -i  libudev-dev

On Raspbian Buster I needed some additional libs - solution already documented here: https://github.com/home-assistant/home-assistant/issues/23028
sudo apt-get install libudev-dev
sudo apt-get install libopenzwave1.5-dev
pip3 install homeassistant homeassistant-pyozw python-openzwave


something is amiss

I like this add-on because I am totally off-grid and use to help with my solar array. However it seems to be a bit off. I see other issues posted but I dont know for certain this one is covered. I have confirm my local setting is HA are correct. But as you see in this screenshot, the data is askew. My phone time is 6:46am, yet its saying sunrise is 6:39am and just now at 0' elevation. One of these things cannot exist at the same time as the others,.

So, I know that I played around with the elevation in the settings. Although I'm not sure whether the elevation is in feet or meters, I know that it changes some of these numbers. Maybe play around with those a bit?


Menus: Can't run menu action on a single click

Using custom title bars:

Press mouse left button down on Help
Move mouse to About and release mouse button

🐛 Nothing happens
I thought we had this working before 🤔

Sounds similar to #101537 but @drventure doesn't mention if using custom title bars.

Yeah definitely a dupe.


AWS integration: add test jobs for multiple languages.

C/C++ (with bazel), C#, python, php, ruby.
the remote test script for each of the languages aren't that interesting (it's just installing prerequisites and running build & test), but there are a few (mostly minor) changes to the script that drives the remote execution.

@amidlash please review