👩🏼💻 Containerise Solution

Cc: @GordonBeeming
Hey @matt-goldman,
We briefly discussed containerisation of SSW.Rewards, and I think it would be awesome to get that up and running!
The Pain:
SSW Rewards requires some effort to set up and run properly. It would be a much better F5 Experience if we could simply run docker compose build and docker compose up to run our entire back end and get developing!
Solution:

[ ] See the existing ./.docs/instructions_compile.md

Set up containers:

[ ] Azurite - Default Ports
[ ] SQL Server - DB
[ ] WebAPI.csproj
[ ] SSW.Identity (Nice to have running local)
[ ] Other services that would be great to run locally

Do we still need DevTunnels if we are running API on Docker?

@tkapa
DevTunnels is for the mobile app to connect in I'd imagine?
Is devcontainers an option to simplify this F5 experience?

@tkapa
DevTunnels is for the mobile app to connect in I'd imagine?
I believe so - Previously, Ngrok was the suggested solution.

Is devcontainers an option to simplify this F5 experience?
Yes - though not just to help with DevTunnels. There is also the issue of needing to run SSW.IdentityServer + API + Mobile locally in order to test MobileUI changes, it becomes a pain.

There's a lot that could be done to improve the local dev experience for this project.

I think it would be uber cool if the identity server bits were containerized... then you could pull that latest container from there into your dev container and just fire it up... but I guess that's for a future time 🙂

but I guess that's for a future time

I think that's specifically what's being requested here. If you want to work on the UI for SSW Rewards, whether it's the admin portal or the mobile app, you need a lot of moving parts in the back end. One challenge to be aware of here is using dev tunnels. Currently if you use ngrok or dev tunnels (or any other tunneling protocol), you can specify the API and IDP using their tunnel addresses. The API and IDP can then also reach each other over these tunnels. Fortunately you can set up dev tunnels using the .NET CLI now, so we may be able to incorporate this into the script.
An alternative approach, and one we should probably consider for now, is to simply use the dev or staging instance in Azure for development.

As per my conversation with @matt-goldman we should use the Azure SQL Edge Docker image for best compatibility on different platforms.


Add support for disabling egress traffic

what

Add support for disabling egress security-group rule in default security group

why
tl;dr My boss told me to.
We had a third party do a pen test and afterwards they suggested we remove egress traffic from our DB subnets. If I'm missing something and there is another way to accomplish this without changing the module I'd be happy and grateful to hear it.

/test all

/test all

@jalgraves
Thanks for the contribution! Released as https://github.com/cloudposse/terraform-aws-rds-cluster/releases/tag/0.50.0.


Adding dockerfile and GHA for compose docker

Description

Needed to pull into compose file for configurability
Added Dockerfile-compose
Updated the GHA to build second docker too

closes: #XXXX

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer

Talked it though, will adopt these changes in the dockerEnvOverride branch and make a PR


JSONSchema to types converter

Turns jsonschema into types :)
Conventionally, there is a schematic from GitHub (in their api). It will be possible with the help of this package to create the type issue and all the data given to it into types
There can be many types/relationships. And doing it manually takes a long time. Especially if you try to do it for all GitHub apis. And json-schema + object-to-links converter will be very useful
object-to-types will not help here because not always all data can be in an object, some fields are optional. and json schema has information about each field, whether it is optional or not, and so on

https://github.com/FreePhoenix888/jsonschema-to-types-async-converter


review: sample_bernoulli_exp

Towards #2069

#2113  👈
main

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

Join @Shoeboxam and the rest of your teammates on  Graphite

There is a difference between the pseudocode and implementation, but the function still gives the same probability either way. I updated the pseudocode to match the code. Response to your comments is in a new commit. Thanks @zachratliff!


UnexpectedSignatureError: b'<htm'`

`---------------------------------------------------------------------------
UnexpectedSignatureError Traceback (most recent call last)
Cell In[5], line 9
5 url = f"https://download.companieshouse.gov.uk/Accounts_Bulk_Data-2024-01-20.zip"
6 with
7 httpx.stream('GET', url) as r,
8 stream_read_xbrl_zip(r.iter_bytes(chunk_size=65536)) as (columns, rows):
----> 9 df = pd.DataFrame(rows, columns=columns)
10 if isinstance(df, pd.DataFrame):
11 df1 = df
File c:\Users\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\core\frame.py:832, in DataFrame.init(self, data, index, columns, dtype, copy)
830 data = np.asarray(data)
831 else:
--> 832 data = list(data)
833 if len(data) > 0:
834 if is_dataclass(data[0]):
File c:\Users\AppData\Local\Programs\Python\Python312\Lib\site-packages\stream_read_xbrl.py:556, in (.0)
553 yield queue.popleft().result()
555 with ProcessPoolExecutor(max_workers=num_workers) as executor:
--> 556 yield _COLUMNS, (
557 row + (zip_url,)
558 for results in imap(executor, _xbrl_to_rows, ((name.decode(), b''.join(chunks)) for name, _, chunks in stream_unzip(zip_bytes_iter)))
559 for row in results
560 )
File c:\Users\AppData\Local\Programs\Python\Python312\Lib\site-packages\stream_read_xbrl.py:546, in stream_read_xbrl_zip..imap(executor, func, param_iterables)
545 def imap(executor, func, param_iterables):
--> 546 for params in param_iterables:
547 if len(queue) == num_workers:
548 yield queue.popleft().result()
File c:\Users\AppData\Local\Programs\Python\Python312\Lib\site-packages\stream_read_xbrl.py:558, in (.0)
553 yield queue.popleft().result()
555 with ProcessPoolExecutor(max_workers=num_workers) as executor:
556 yield _COLUMNS, (
557 row + (zip_url,)
--> 558 for results in imap(executor, _xbrl_to_rows, ((name.decode(), b''.join(chunks)) for name, _, chunks in stream_unzip(zip_bytes_iter)))
559 for row in results
560 )
File c:\Users\AppData\Local\Programs\Python\Python312\Lib\site-packages\stream_unzip.py:460, in stream_unzip(zipfile_chunks, password, chunk_size, allow_zip64)
457 else:
458 raise UnexpectedSignatureError(signature)
--> 460 for file_name, file_size, unzipped_chunks in all():
461 yield file_name, file_size, unzipped_chunks
462 for _ in unzipped_chunks:
File c:\Users\AppData\Local\Programs\Python\Python312\Lib\site-packages\stream_unzip.py:458, in stream_unzip..all()
456 break
457 else:
--> 458 raise UnexpectedSignatureError(signature)
UnexpectedSignatureError: b'<htm'`
I am getting this error

Hi @hinas-source,
Can you post the exact code you're running? For example, I'm running this in a Python file:
import httpx
from stream_read_xbrl import stream_read_xbrl_zip

if __name__ == '__main__':
    url = 'https://download.companieshouse.gov.uk/Accounts_Bulk_Data-2024-01-20.zip'
    with httpx.stream('GET', url) as r:
        r.raise_for_status()
        with stream_read_xbrl_zip(r.iter_bytes(chunk_size=65536)) as (columns, rows):
            for row in rows:
                print(row)

And it seemingly woks fine - printing all the results without that error.
(If you can format the code so it appears as code, properly indented, that would be helpful. See https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#quoting-code)


Rewrite the article with accurate details and screenshot

The screenshot and explanation provided under the section3.4 is not accurate.
Here is the section: https://docs.microsoft.com/en-us/sql/relational-databases/tutorial-use-azure-blob-storage-service-with-sql-server-2016?view=sql-server-ver15#3---database-backup-to-url
SSMS is not allowing to enter SAS key and the following explanation is not relevant
Open Object Explorer and connect to Azure storage using your storage account and account key.
Attached the applicable screenshot as below:

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

ID: 15e8e46c-01f3-a76a-761f-5206e6d878e9
Version Independent ID: 3945290e-ef38-b04c-9ee6-d3889b4b94e4
Content: Tutorial: Use Azure Blob Storage with SQL Server 2016 - SQL Server
Content Source: docs/relational-databases/tutorial-use-azure-blob-storage-service-with-sql-server-2016.md
Product: sql
Technology: ****
GitHub Login: @MashaMSFT
Microsoft Alias: mathoma

@clouditspace -- Manu, thank you for bringing this to our attention.
@MashaMSFT -- Masha, please look into this issue.

Hi @clouditspace , thanks for contacting Microsoft and my apologies for the delay as we work through a large backlog of Issues. While your suggestion has merit, it is out of scope for a Git Issue engagement so we're going to start tracking it internally (61483) and address it as resourcing allows. I'll go ahead and close out this Git Issue but please feel free to comment should you need anything further.
Thanks again for reaching out and I hope you have a wonderful rest of your day!
Masha from the SQL Docs team
#please-close


Cloud backup/service improvements

#86948wruc

Task linked: CU-86948wruc Android. Cloud Backup Service Improvements


youtube regression: output template "abr" is "NA"

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2<IP_ADDRESS>
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-f', 'bestaudio[ext=m4a]', '-o', '%(abr)sk.%(ext)s', '-v', 'tYO8a0I6lX8']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 3.9.1 (CPython) - Windows-10-10.0.19041-SP0
[debug] exe versions: ffmpeg 4.3.2-2021-02-02-full_build-www.gyan.dev, ffprobe 4.3.2-2021-02-02-full_build-www.gyan.dev
[debug] Proxy map: {}
[youtube] tYO8a0I6lX8: Downloading webpage
[debug] Invoking downloader on '...'
[download] Destination: NAk.m4a
[download] 100% of 950.87KiB in 00:00

Description

At some point %(abr)s for youtube became "NA".  "-F" still shows audio bitrates, so "abr" should be available.
140          m4a        audio only tiny  129k , mp4a.40.2 (44100Hz), 950.87KiB

@dstftw The abr now has 3 decimal places (129.473).  Should be truncated or rounded to a whole number.


Feature Request: Resume started conversions when Docker Container is restarted

Processing ebooks in CPU-only mode is quite slow, therefore it would be good to have the following feature:
When the docker container spins-up, check for already started (but not yet finished) conversions.
If there are any, then resume these conversions.
In my use case, I need to restart the docker container once every day. If a conversion takes longer than one day, it can never finish (because it is aborted as soon as the docker container is stopped).

it's already implemented. just click on the the close X of the ebook file to upload component or just close your browser or Ctrl + C for CLI then when you will run exactly the same ebook file it will resume from the last good sentence.

@ROBERT-MCDOWELL thanks for the reply!
I just tested the following:

start docker container
go to webui, upload an ebook and start conversion
stop docker container
restart docker container

At this point when visiting the webui again, nothing is restarted automatically. Also, when same ebook is uploaded again, it starts from 0.
As far as I observed, the finished sentences are saved in the tmp folder, which gets cleared when the docker container is restarted (probably a cleanup task from the app.py?).

This might my docker image
I'm in the works on one that's fully based on the repo with its own Dockerfile so it's less buggy
😅

@leet1994 ok we'll check it asap

@DrewThomasson I have to rebase DockerUtils too....


toggle_info_command exception for eval results (phantom_success_fg=None)

Attempting to toggle_info_command on eval results doesn't work for me, something is off with the color style definitions, console with some of debug:
toggle_info_command for eval status=success
Eval.colors = {'pending': ('region.bluish', '#7a3e9d'), 'interrupt': ('region.bluish', '#7a3e9d'), 'success': ('region.greenish', '#6abf40'), 'exception': ('region.redish', '#cc3333'), 'lookup': ('region.bluish', '#7a3e9d'), 'phantom_success_fg': None, 'phantom_success_bg': None, 'phantom_exception_fg': None, 'phantom_exception_bg': None}
scope_color: returning None for scope phantom_success_fg
Traceback (most recent call last):
  File "/opt/sublime_text/Lib/python38/sublime_plugin.py", line 1703, in run_
    return self.run(edit)
  File "/home/e/.config/sublime-text/Packages/Clojure-Sublimed/cs_eval.py", line 364, in run
    eval.toggle_pprint()
  File "/home/e/.config/sublime-text/Packages/Clojure-Sublimed/cs_eval.py", line 137, in toggle_pprint
    if phantom_styles := self.phantom_styles("phantom_success"):
  File "/home/e/.config/sublime-text/Packages/Clojure-Sublimed/cs_eval.py", line 121, in phantom_styles
    _, fg = self.scope_color(f"{scope}_fg")
TypeError: cannot unpack non-iterable NoneType object

Yeah, sorry about that


Support dynamic addition and removal of virtual desktops as EWMH dictates

The EWMH specification specifies two possible choices how an EWMH compliant window manager should react to a _NET_NUMBER_OF_DESKTOPS message. Either reject it and do nothing else or honor it and behave as described in the linked section.
JWM currently rejects this request and this proposal is about honoring it instead.
Steps to reproduce:

Use the latest git revision of JWM or the release 2.3.7 and run it as a window manager.
Open terminal and run wmctrl -n <number_of_your_virtual_desktops_increased_by_one> or alternatively wmctrl -n <number_of_your_virtual_desktops_decreased_by_one>.

What happens:
Nothing.
What was expected to happen:
The number of virtual desktops should have increased (or decreased) by one (and thus also appear in the pager), which can be verified e.g. by wmctrl -d.

Since jwm cannot modify its own config file(s) or naturally communicate with its separate XML generator, this could be confusing and frustrating.  Currently you could add a binding that runs a program to do this via your XML generator, followed by a jwm -restart.

I think refreshing individual items would be a feature that would be required before this could fully work.
Perhaps simply rereading the config and looking for only certain components specified (WindowStyle, Pager, Desktops, TrayButton, etc.....)
perhaps
jwm -restart could also take agruments optionally?
jwm -restart Desktops
Just a thought..

@technosaurus

Since jwm cannot modify its own config file(s) or naturally communicate with its separate XML generator, this could be confusing and frustrating.

I'm afraid I don't quite understand what you mean. There is no need to change anything in XML nor in configuration file handling nor parsing nor absolutely anything else. The XML configuration JWM reads is an initial configuration. What happens afterwards (any dynamic behavior - e.g. windows are created/moved/removed, which is the primary motivation to even have a window manager) has nothing to do with the initial configuration any more - it lives it's own live.

Currently you could add a binding that runs a program to do this via your XML generator, followed by a jwm -restart.

I'm confused. How do I react to the _NET_NUMBER_OF_DESKTOPS message by running a program (show me the code)?
@Israel-

Perhaps simply rereading the config and looking for only certain components specified (WindowStyle, Pager, Desktops, TrayButton, etc.....)

Many years ago (it could be already more than 11 :open_mouth:) I got a similar idea. But now I know it's a completely wrong path from the architectural point of view as it results in a lot of duplicating code or at least code doing similar things at more than one place, increases the size of the code base and is not easy to grasp.
Way easier is to understand the parsing, emitting and reacting to tokens/activities as a continually running machine, which waits all the time for instructions at the input, whereas at the very beginning we put the initial jwmrc file as the first set of instructions to be interpreted. Then the machine (the JWM window manager) shall wait (named pipe? socket? multiplatform_IPC_of_your_choice?) for new commands until the command <Exit> appears on the input. This is how GUIs are implemented, this is how many other window managers are implemented, etc.

@dumblob
I see, so a specific JWM system set in place to listen for things would be the way to go.  Some way of reading signals and reacting to them.  This would be a seemingly large undertaking, wouldn't it?  how do other WM/DE perform this, or what has been your thoughts on accomplishing this task in JWM?
This makes me think then that there should be a separate program to create dialogs (similar to gtk-dialog/yad/zenity/xmessage/etc...) that sends signals (pipe, socket, whatever....) to create a dialog.... or
I wonder if (in theory) JWM could run JWM in a window within itself and that with something like:
jwm -f inception_dialog.xml
IT would be really easy to build complicated interfaces using a jwmrc file, since buttons can run programs, and we can build a tray that acts as a menu.
Perhaps adding something like
<JWM windowed="true">

or
jwm -window -f inception_dialog.xml
JWM within JWM.

This would be a seemingly large undertaking, wouldn't it?

Well, not that large I would say as JWM seems already kind of decoupled. Of course considering only a small subset of all the instructions would be needed e.g. for the _NET_NUMBER_OF_DESKTOPS message while also assuming, that the X server will be used as a cheap and simple IPC.
What I'm rather afraid of is a potential porting effort to Wayland or so. Until JWM will use X server only for rendering and managing windows, it's still manageable to write a shim providing the X server like functionality using other tools (be it Wayland with few additional servers or whatever). But once JWM starts depending on the X server IPC, it could be harder to write the shim for a different IPC system.

This makes me think then that there should be a separate program to create dialogs (similar to gtk-dialog/yad/zenity/xmessage/etc...) that sends signals (pipe, socket, whatever....) to create a dialog.... or
I wonder if (in theory) JWM could run JWM in a window within itself and that with something like:
jwm -f inception_dialog.xml
...

This everything was already invented, programmed and used in the past - look e.g. at all the stuff developed for Plan 9 (especially the great window manager Rio which was built around the idea of composition and nesting) or at Smalltalk or Lisp systems and other fully integrated systems, which allow basically any nesting and any change/configuration/extension with just few short lines of easily understandable code.
Btw. I'm not a fan of adding a "dialog-like" functionality to JWM. It's easier to add the IPC functionality and allow a "jclient" (JWM IPC client) to send nearly arbitrary commands and then use any of the existing dialog-like solutions to send these commands.


feature request: ignore sending errors coming from a certain operating sytem

Essence and Description
I'd like to ignore errors coming from a certain operating systems. Preferably that the request won't even be sent, to save a network call.
Implementation Suggestion
The same way Raven is acting with ignoreErrors, just something dedicated for operating systems. e.g. ignoreOS: []

Sure, will do!

It's easily doable through event processors in new SDK

@kamilogorek,
So how do you migrate shouldSendCallback to the new SDK? Can't find any migration examples of that. I had the following code in my Raven.config block:
shouldSendCallback() {
    // Ignore IE 11, but gather Edge errors
    return !('ActiveXObject' in window);
}

Thanks

@karensg https://docs.sentry.io/learn/hints/?platform=browser#before-send
init({
  dsn: '__DSN__',
  beforeSend(event) {
    // Ignore IE 11, but gather Edge errors
    if !('ActiveXObject' in window) return null;
    return event;
  }
})

Thanks, this is what I did. Was not sure whether returning null here was right approach.

@karensg you can make an integration to drop those events for you instead of relying on beforeSend - https://docs.sentry.io/platforms/javascript/#hints

@karensg
// integrations/iefilter.js

import { configureScope } from '@sentry/browser';

class IEFilter {
  constructor() {
    this.name = 'IEFilter';
  }

  install() {
    configureScope(scope => {
      scope.addEventProcessor(async (event) => {
        // Ignore IE 11, but gather Edge errors
        if !('ActiveXObject' in window) return null;
        return event;
      });
    });
  }
}

and then:
import IEFilter from './integrations/iefilter';

init({
  dsn: '__DSN__',
  integrations: [new IEFilter()]
})


Proposal: Enum Case Blocks

Add an optional syntax to declare all code related to a single enum case in one spot.

[X] Check prior proposals
[X] Consider the goals of the upcoming Swift release
[X] Socialize the idea

Socializing Results

59 emails exchanged over 2 weeks
Swift-evolution threads: Consolidate Code for Each Case in Enum, second week discussion
I'm grateful for the comments from Tony Allevato (@allevato), Rien (@swiftrien), Robert Widmann, Derrick Ho, Anthon Zhilin, Daniel Leping, Karim Nassar, David Sweeris, Sean Heber, Charles Srstka, Guillaume Lessard, David Waite, and Jay Abbott.

The core team discussed this proposal and determined that it doesn't fit in the scope of Swift 4: it is purely additive (and could be introduced at any time), is not source-breaking (so it doesn't need to be front-loaded), and does not affect ABI or the standard library.


Regression: fix convert unable to find image

Convert using non fully qualified images will fail. Likely a regression with the refutil cleanup.
Spotted by @GrigoryEvko on unrelated #3623

@AkihiroSuda must have for 2.0 (pending green)


Revert removal of PORT environment variable

📖 Description
#132 removed the use of PORT in favor of extracting the port from CANONICAL_URL.
We still need an explicit PORT variable to be able to specify a local port the server will run on vs. the port that will be used to generate URLs.

🦀 Requesting reviewers for this pull request:

@Boubalou (contributor with 5 commits in the last 90 days and 11 commits overall)
@Madumo (expert reviewer for the elixir stack)


Add z index to RelativePopup

This fixes the Toast being hidden behind a PopupDialog issue.
Components that use RelativePopup:

FloatingMenu
FloatingBox
Toast
FloatingPicker

Let me know if my grepping missed anything. I think we want all of these components to be above PopupDialog Elements (Dropdown, MaybePopup).

closing this out in favor of another solution

turns out this was the right solution all along!


Added mutually recursive records example to records documentation

Added mutually recursive records example to records documentation
I have added a code example for creating mutually recursive record types as I couldn't find any information about them on the official documentation.
I noticed in the records.md file, some of the snippets were defined in the markdown file but most were in the samples repo. I have added the code inline but can move to the samples repo if desired.

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


fix(input): floating placeholder on by default

R: @tinayuangao
I accidentally set this to false in an earlier PR.

LGTM


Landing Page UI changes

Removed the strikethrough in the explore button and changed the contrast and visibility of the main and sub text

Efforts appreciated, but the color of then NomeN is not matching the colors we have used in the whole site. Plus the explore button is way too large. Reduce the size a little bit and check the colors being used in the application.

I have now applied the same color-gradient that is being used in the "text-reveal-card.tsx" and decreased the button size. Do let me know if you want further changes.

@Luciferlocas pls review the changes done this time

Okay, sure, but could you please tell me which color shades you'll prefer or have in mind? Do you prefer shades of black/gray/ white as in the color scheme used for the whole website , or will any other popping color work? It would be helpful.

I really don't have anything in mind, the thing is I want to highlight "NomeN" by using simple gray/white color. The shade your gave to NomeN was really looking good, but the issue is in comparison to the white color of welcome to, if was fading away. And the issue while changing the style of the special-button is that it is a component which is being used for many buttons, changing directly the main component will cause the other usage change and they might not look good.

Okay, I understood. I will make the changes and update you soon.


Use vendor/bin/twig-cs-fixer in README

I replaced bin/twig-cs-fixer with vendor/bin/twig-cs-fixer as that is today more common. I also added empty spaces around code blocks as that is required for some markdown viewers sadly not remember which one it was where that problem popped up.
PS: really great project 👍

PS: really great project 👍

Thanks a lot

Codecov Report

Merging #90 (cf5cf5e) into main (e84ea6b) will decrease coverage by 0.00%.
The diff coverage is n/a.

:exclamation: Current head cf5cf5e differs from pull request most recent head 4e9b86c. Consider uploading reports for the commit 4e9b86c to get more accurate results

@@             Coverage Diff              @@
##               main      #90      +/-   ##
============================================
- Coverage     99.91%   99.91%   -0.01%
- Complexity      464      465       +1
============================================
  Files            34       34
  Lines          1208     1207       -1
============================================
- Hits           1207     1206       -1
  Misses            1        1

Impacted Files
Coverage Δ

src/Token/Tokenizer.php
100.00% <0.00%> (ø)

src/Cache/CacheEncoder.php
100.00% <0.00%> (ø)

src/Report/SniffViolation.php
100.00% <0.00%> (ø)

src/Cache/Manager/NullCacheManager.php
100.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Thanks for the PR


[Android/Build] check target abi

Check target abi when build android library, and set dir name to get gstreamer prebuilt libs.
Signed-off-by: Jaeyun<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #71. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.


revision_v: Update feature gates from revision v split in PAC

Upstream change in stm32-rs
https://github.com/stm32-rs/stm32-rs/pull/247
Remove feature gates where they are not required.
Add new v feature targets to travis.
ADC is currently the only area where this crate differs between v and
non-v.
Revision v tracking issue
https://github.com/stm32-rs/stm32h7xx-hal/issues/9

Sorted. I also added details about Rev V in the README.
bors r+


Ace config add button info

Ace's config add button info .

@dsato80
Since another problem "#197" etc occurred while setting "gain omega" , so the initial value is zero in the process .
Honestly , 1.0 is fine. . . ( Aside from "gain_omega_i" )


Optimize images

This pull request optimizes the images found in the repository using lossless compression. This means that the image quality will not be degraded. This will mean less space taken up by images along with faster loading times when viewing them. The overall file size has been reduced by around 37%.

@JeffResc thanks a lot for the PR, but unfortunately it doesn't add much value to the project. I really like 37% optimization of the storage.
So Hub has an internal compression algorithm support https://github.com/activeloopai/Hub/tree/master/hub/codec.
To give more background, the package can store large arrays (with compression). If you are interested to help us with compression algorithms for images, would love to create a specific issue request for you.
Feel free to use Discussions https://github.com/activeloopai/Hub/discussions for brainstorming on how we can best store images using our tool.


Connect with remote server

Hello,
I used a server computer for using GPU which is separated from my Desktop.
So, I installed SAM into the server computer and ran the SAM via SLURM.
I tried to connect that node with my local Desktop via ssh, but it is not connected.
INFO:     Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)
INFO:     Started parent process [61240]
INFO:     Started server process [61264]
INFO:     Started server process [61263]
INFO:     Waiting for application startup.
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Application startup complete

ssh -NL 8000:c0906a-s11:8000 -l "User"
channel 2: open failed: connect failed: Connection refused

I think it is a kind of problem with Uvicorn.
Do you have a solution for connecting the node with the local computer?

Solve by adding --host <IP_ADDRESS> in the command line


Implement exception handlers for @JMSListener

Task List

[x] Steps to reproduce provided
[ ] Stacktrace (if present) provided
[x] Example that reproduces the problem uploaded to Github
[x] Full description of the issue provided (see below)

Steps to Reproduce

Create an @JMSListener that throws an exception i.e.

@JMSListener("activeMqConnectionFactory")
public class MessageListener {
    @Queue(value = "test", concurrency = "1-1")
    public void receive(@Body String message) {
        throw new RuntimeException("This is a loud exception!!");
    }
}

Consume a message from the queue

Expected Behaviour

If no configuration is provided, then the exception should be logged at the ERROR level
Allow the developer to provide a custom error handler using an errorHandler annotation parameter
Allow the developer to provide a global custom error handler using a JMSErrorHandler

Actual Behaviour
The method aborts without any log messages or a stack trace
Environment Information

Operating System: Pop OS 20.10
Micronaut Version: 2.2.3
JDK Version: OpenJDK 14.0.2

Example Application

https://github.com/elliottpope/micronaut-jms-application-example (see io.micronaut.jms.example.listener.MessageListener)

That would be good to have, I myself spent a little time troubleshooting before I realised I had a problem and the exception was swalllowed.

@drmaciej thanks for trying the library out, feel free to add any other issues you find. I'm currently working on a PR for this (closed by #54) so once that's merged we should be able to do a second milestone release

Thanks @elliottpope, I'm looking forward to the next release.
Just to clarify on this issue - the problem I had related to inability to bind to listener's parameters in AbstractJMSListenerMethodProcessor#generateAndBindListener at binder.bind(...). This exception was swallowed, whereas it should have been logged.
Hopefully your fix addresses exceptions both in the "plumbing" and listeners themselves.
Actually, one more issue/concern/wonderment has come to mind, so I'll create a separate issue.

@drmaciej yes, I have observed this issue too and the solution will address both and I'll ensure there are test cases to cover both scenarios

@elliottpope sounds great, thanks!

Hi @elliottpope,
Good to see 1.0.0.M2! I'll definitely give this a try.
Otherwise, we've been quite happy with M1, no major complaints, but we're just wondering when the exception handler might make it into a release. Would you be able to shed some light?

Fixed in https://github.com/micronaut-projects/micronaut-jms/commits/master


I accidentally committed this! Reversing it back to how it was

I probably should have asked a while ago... how do I enable this locally without modifying this file?

Thanks!

A lot of the options like enabled etc were looking ahead in how we might use the capability.. I should probably remove these unused options to avoid confusion.
We enable a feature today by removing the feature flag throughout the codebase, instead of setting enabled to true.


fix config install in deb package

1. Tell us something about your changes.
the default config was renamed - this produced an error in debian postinstall. @brindosch please change config name in cmake/debian/postinst if you change the config name again.
2. If this changes affect the .conf file. Please provide the changed section
3. Reference a issue (optional)
Note: For further discussions use our forum: forum.hyperion-project.org

Oh, i´m sorry!


Update gradle.properties

Migrate To Android X

Any updates on this @Shchvova?

I'm working on it. Unfortunately your solution breaks all the plugins we currently have :(

I got you. Do you know if there a list of plugins in particular that break? I could try to help.


Change the swap threshold by adding an elastic percentage

Originally, heuristic memory swapping feature won't improve much on the batch size, that's because IdentifySwappingCandidates are fully trusting the statically analysis.
Per my experiment, this did not improve the batch size at all.
While If we make the swapping threshold to be lower,for example, when analyzed memory usage is 0.8 * GPU mem size, then swapping feature is triggered.
According to my experiments, for my K80 (12G), ResNet50, batch size can be improved from 128 to 150.

I signed it!

I signed it!

seems, i was using the wrong email to submit, discard this, and will create a new pull request.


Update Translation & Delete useless file

@wbsdty331,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot


feat: quest first implementation

Quests 1.0 implementation.
To enable Quests use the feature flag QUESTS_ENABLED
Use J (temporary) to open the Quests panel.

https://play.decentraland.zone/branch/feat/quest_first_implementation/index.html?ENV=org&QUESTS_ENABLED

Brian's code review will be addressed here: https://github.com/decentraland/explorer/pull/2114


Markdown software?

I'd like to add a Languages column on README.md.
The github basic editor nor VSCode is not very satisfying for this purpose.
Are there any tools that might be recommended for contribution?

Good question. Unfortunately, I don't have a very good suggestion. I have a formatter configured when I save the file.
Should we move away from writing md tables manually? Most of the awesome lists I saw are flattened lists of links, which isn't very helpful to be honest.

Well it would depend on how many columns and rows you eventually want.
I do think that current Markdown solution is limiting, but as my question demonstrates, I do not know of any effective alternative. I could take a look though.

Feel free to add the languages now. I use Markdown All in One to format things before committing.
I will find the solution or a workaround in #2; feel free to chime in.

I added a commit hook to automatically create the table from JSON entries. Now you can use pre-commit and only add JSON files. No need to add the language for other entries if you don't want to. They will be empty by default.


retrieveMetadataLoaderAsync uses QIDO-RS service instead of WADO-RS

Bug Report
Describe the Bug
The async metadata loader is using the QIDO-RS service https://github.com/OHIF/Viewers/blob/2f443fa2efa223ac0fcdf238eee834c6a4ee3fc1/platform/core/src/studies/services/wado/retrieveMetadataLoaderAsync.js#L76, to obtain the series metadata while the sync version is using WADO-RS https://github.com/OHIF/Viewers/blob/2f443fa2efa223ac0fcdf238eee834c6a4ee3fc1/platform/core/src/studies/services/wado/retrieveMetadataLoaderSync.js#L61. The correct service to use for series metadata retrieval is the WADO-RS and, therefore, the async metadata loader service needs to be changed.
This was probably overlooked because most of the servers (DCM4CHEE, Orthance, etc.) are exposing QIDO-RS and WADO-RS service endpoints under the same root URL.
What steps can we follow to reproduce the bug?

Load a study to trigger a series metadata query.
Observe that the series metadata query uses QIDO-RS service (qidoRoot config param) instead of WADO-RS (wadoRoot config param).

This bit me today. I am developing our own PACS which exposes different endpoints for QIDO and WADO. What's more, the down stream code seems to expect the QIDO results (one meta-data entity per series rather than one meta-data entity per instance for all instances in the series).
This is also highlighted by the URL used ( "GET /wado/studies/1.2.840.1135<IP_ADDRESS>947897<IP_ADDRESS>05161809/series HTTP/1.1" 200 OK), which I don't think conforms to wado spec but does to qido spec.

https://github.com/OHIF/Viewers/pull/2712#discussion_r808796912
Makes sense now. My workaround at the moment is to redirect to the QIDO url on my PACS.

might be related topic
https://github.com/OHIF/Viewers/issues/2176

We just release the OHIF 3.8, you can find more details here https://ohif.org/release-notes/3p8/
If you still encounter this issue in 3.8, please re-open this.


disable_stream() still does not work

System Info

Camera Model
D415

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 22.04.5 LTS

Kernel Version (Linux Only)
6.8.0-45-generic

Platform
PC

SDK Version
2.56.1

Language
C++

Segment
CV

Issue Description
Hello everyone. I met an problem with using librealsense. For my purposes I needed to collect some number of depth frames for post-processing and one color frame. I had four D415 cameras. I decided to take a depth frames first and then collect the color one. So, for optimization it is good to enable only depth stream first. However, I could not disable color stream with disable_stream, these frames still had been collected.
The code:
rs2::context ctx;
rs2::config cfg;
cfg.enable_stream(RS2_STREAM_DEPTH, 1280, 720, RS2_FORMAT_Z16, depthFrameRate);
cfg.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_YUYV, colorFrameRate);

std::vector<Device> devices;
for (auto serial : serials) {
    devices.emplace_back(enable_device(serial, cfg, ctx, false));
    cout << serial << " is successfully enabled!\n";
}

...

unordered_map<string, vector<rs2::depth_frame>> depthFrames;
for (auto device : devices) {
    enableEmitter(device);
    auto enableTimeMs = (double)duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count();
    int framesCollected = 0;
    rs2::frameset frameset;
    rs2::depth_frame* firstDepthFrame = nullptr;
    rs2::depth_frame* prevDepthFrame = nullptr;
    depthFrames[device.serial] = vector<rs2::depth_frame>();
    cfg.disable_stream(RS2_STREAM_COLOR);

    auto sensor = device.profile.get_device().first<rs2::color_sensor>();
    for (auto stream: sensor.get_active_streams()) {
        cfg.disable_stream(RS2_STREAM_COLOR, stream.stream_index()); // Disabling color stream
    }

    while (framesCollected < numFramesForAverage) {
        try {
            frameset = device.pipeline.wait_for_frames(5000);
        }
        catch (std::runtime_error& e) {
            cout << "Frames does not received for 5000 ms for " << device.serial << "\n";
            continue;
        }

        auto depthFrame = frameset.get_depth_frame();
        auto colorFrame = frameset.get_color_frame(); // <-- still collected

        if (depthFrame.get_timestamp() < enableTimeMs + 130) {
            continue;
        }

        if (prevDepthFrame != nullptr && prevDepthFrame->get_frame_number() == depthFrame.get_frame_number()) {
            continue;
        }

        if (firstDepthFrame == nullptr) {
            firstDepthFrame = new rs2::depth_frame(depthFrame);
        }

        if (prevDepthFrame != nullptr) {
            delete prevDepthFrame;
        }
        prevDepthFrame = new rs2::depth_frame(depthFrame);
        depthFrames[device.serial].push_back(depthFrame);
        framesCollected += 1;
    }

    disableEmitter(device);
    delete firstDepthFrame;
    delete prevDepthFrame;
}

For reference Device is
typedef struct {
    rs2::pipeline pipeline;
    rs2::pipeline_profile profile;
    string serial;
} Device;

enable_device() is
Device enable_device(string& serial, rs2::config& cfg, rs2::context& ctx, bool enableEmitter) {
    rs2::pipeline pipeline(ctx);
    cfg.enable_device(serial);
    auto profile = pipeline.start(cfg);

    auto sensor = profile.get_device().first<rs2::depth_sensor>();
    if (sensor.supports(RS2_OPTION_EMITTER_ENABLED)) {
        sensor.set_option(RS2_OPTION_EMITTER_ENABLED, enableEmitter ? 1 : 0);
    }

    return { pipeline, profile, serial };
}

Commenting line with cfg.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_YUYV, colorFrameRate); prevents collecting color frames. However, I want to it to be enabled. I tried to find the solution in the official documentation but I failed. Also I saw this issue but provided solution uses low API calls.
I will be glad to any suggestion.

Hi @someilay  instead of using disable_stream(), an alternative approach that you could take is to start the pipeline with a cfg instruction for depth only.  Later, stop the pipeline after the depth capture, set a new cfg configuration for the color stream only and then restart the pipeline.  Something like this:
pipeline.stop();

cfg.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_YUYV, colorFrameRate);

 auto profile = pipeline.start(cfg);

When the pipeline is restarted after the stop, the new color stream only configuration will be applied.

@MartyG-RealSense Thanks for your quick response. I tried your solution. It works well for disabling color stream, but I cannot enable it back. My code looks now like that
// Enable emitter

device.pipeline.stop();
device.cfg.disable_stream(RS2_STREAM_COLOR);
device.profile = device.pipeline.start(device.cfg);

// Collect depth frames

device.pipeline.stop();
device.cfg.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_YUYV, colorFrameRate);
device.profile = device.pipeline.start(device.cfg);

try {
    frameset = device.pipeline.wait_for_frames(5000);
    colorFrames[device.serial] = new rs2::video_frame(frameset.get_color_frame());
}
catch (std::runtime_error& e) {
    cout << "Frames does not received for 5000 ms for " << device.serial << "\n"; // <-- getting this error
}

You should not need to use a disable_stream instruction.  When the pipeline is stopped, all active streams are stopped automatically.  When cfg is used, only the stream specified in the cfg line will be started.

Ok. If I understand correct, I should recreate rs2::config each time when I want to change active stream. Right?

You only need to call rs2::config once in the script.  When you need to change the active stream, just change the cfg line after the pipeline stop command and then start the pipeline again to apply the change.

Without passing rs2:config as argument?

In a C++ script, rs2::config will typically be at the very start of the script.  For example:
rs2::pipeline pipe;
rs2::config cfg;

You only need to define it once at the beginning.

But it does not work. I tried it here. I created for each camera separate rs2::pipeline and rs2::config.

Ah yes, you are using multiple cameras.  Thanks for the reminder.
https://github.com/IntelRealSense/librealsense/issues/1735#issuecomment-390840337 has a Python example of setting separate configs for each camera that you may be able to adapt for C++.

Thanks. However, I have already saw it, and it is not suitable for me( I want to collect multiple depth frames and one color frame. Of course, I can achieve it without disabling and enabling different streams. But my project is on the stage where any time delay or USB bandwidth over consumption are critical.  So, I am forced to find some optimization tricks.

May be you have any suggestions?

If you want to reduce the processing demand without changing the depth resolution, you could use the Decimation post-processing filter to 'downsample' the depth image to reduce the depth scene complexity.
https://dev.intelrealsense.com/docs/post-processing-filters#decimation-filter
If you do not want to sacrifice depth image quality though then what might improve performance for you is to use the Keep() instruction to store frames in the computer's memory.
https://github.com/IntelRealSense/librealsense/issues/1942#issuecomment-400031901 has an example of a C++ script that implements both Keep() and the Decimation filter.

you could use the Decimation post-processing filter to 'downsample' the depth image to reduce the depth scene complexity.

Already used

what might improve performance for you is to use the Keep()

No problems with storing frames

Let's back to the issue topic. I still cannot achieve disabling/enabling color stream. Currently my progress is on this stage

With four simultaneously active cameras on the same computer, there will be a limit to how much you can improve performance unless you use a computer with a higher hardware specification (e.g a more powerful CPU), because each individual camera is consuming a portion of the computer's available resources.
It might be best to go back to your original plan of collecting the depth and color frames at the same time.
https://github.com/IntelRealSense/librealsense/issues/2219#issuecomment-412899468 has a c++ script for automatically retrieving an RGB color frame from all attached computers simultaneously.

So, disabling unnecessary stream with lower FPS does not improve the overall performance. Did I understand you right?

There should be a minor improvement in performance if an unnecessary stream is disabled.  Depth streams tend to impose a higher processing burden than RGB streams though, so you may not be gaining much performance by disabling color.
The easiest way to reduce processing burden is to use a lower stream resolution or a lower FPS speed.
Charts at the link below provide estimates of the USB bandwidth that four cameras will use at different resolutions.
https://dev.intelrealsense.com/docs/multiple-depth-cameras-configuration#2-multi-camera-considerations

Thanks for nice hint. Nevertheless, can we consider my case as bug? I still want to test this hypothesis by myself

To consider the possibility of a bug, we would need a report from another user experiencing the same issue in order to confirm that it is not an issue that is only occuring on one particular computer.  I would be happy to leave this case open to see if anyone else comments about a similar experience.

Ok, I don't mind

Okay, I have added an 'Enhancement' tag to this case as a reminder for it to be kept open.


Improve handling of ssh-agent process

Fixes #22
Currently I have the following added to all of my workflow files using the deployerphp action for our self hosted runners:
- name: Clean Up SSH Agent
  if: always()
  run: |
    killall ssh-agent
    rm ~/.ssh/config

This works fine, however recently we had started having multiple runner instances on each of our runner servers and conflicts began to arise with my solution due to the usage of killall
While I could have improved killing off the ssh-agent, I've decided to take a crack at implement a way of handling the ssh-agent process a little more nicely within the action iteself and have ended up with this.
There is probably a slightly better way of doing this via a proper setting, however I was aiming for backwards compatibility where possible.

What this PR does:

Spawns the SSH agent without specify a socket path, ensuring a unique socket path for each runner.
Adds a new option to toggle if the action should disable strict host checking if no known hosts are provided.
Adds a cleanup task that ensures all SSH keys are removed from the SSH Agent.
Ensures the SSH is shutdown on the runner server.

Why make these changes:

Improves supports for self hosted runners while also adding a bit of extra security for those using GitHub hosted runners.
Allows for the action to still handle the SSH related tasks for the end user without actually touching anything SSH related if necessary.
Probably doing things "the right way", so to speak, in that we're cleaning up after ourselves as part of the action.

Thanks for PR. Let's merge it but with little bit changes.

Thanks for PR. Let's merge it but with little bit changes.

Thanks for the consideration, what changes did you have in mind here?

Different naming and default. Not running ssh=agent instead of killing.

Different naming and default.

Do you have any suggestions for these?

Not running ssh=agent instead of killing.

The main reason I'm still running ssh-agent in my scenario is because deployerphp itself cannot read in a private key from a string and requires it to be a file on the system.
Instead of attempting to create the key file and have to clean that up I found it easier to just continue to use the ssh-agent process and remove all the keys from the ssh-agent process and kill it.
I could put the "cleanup" step behind an additional flag so it only kills off the ssh-agent process if you pass through another option telling it to.
I should note killing the ssh-agent process does cleanup the socket file as well.

I'm just circling back to this PR after a bit, is this still something you'd be interesting in merging @antonmedv?


Create event

This I have mentioned in presentation too, as you have added a create button if no event is found during search I think so you can give that option even if event is found on search as maybe we want different event.

This issue is now resolved. One can create an event even if some events are present or not.


[PRED-1593] Remove the -e from the pip installs for the package

Using an editable install was hiding a bug when the package was
refactored but the new sub-library was not being properly shipped.

So, we have evidence that the tests fail as they should.
https://travis-ci.org/datarobot/batch-scoring/builds/264599687?utm_source=github_status&utm_medium=notification
https://travis-ci.org/datarobot/batch-scoring/builds/264599611?utm_source=github_status&utm_medium=notification
https://ci.appveyor.com/project/Axik/batch-scoring/build/960
https://ci.appveyor.com/project/Axik/batch-scoring/build/961
Will rebase and I expect green with the PR that was just merged to master.

Coverage decreased (-82.3%) to 0.0% when pulling 4231488ad439f3c02edbcf24a2353beced605734 on steve/PRED-1593-remove-editable-install into 288f5a6771277f5e91a5c705532b90bb9c17c2c0 on master.

So then... we don't want to do this?

@dsakagi We want the appveyor and Makefile changes still since they will actually fix the underlying bug and make sure the package installs correctly for future changes.

Coverage decreased (-82.3%) to 0.0% when pulling 9c460229e305f69dd75b3df79badff61a73bcb17 on steve/PRED-1593-remove-editable-install into 288f5a6771277f5e91a5c705532b90bb9c17c2c0 on master.

And on travis removing the -e breaks coverage? Hmmm.

Coverage decreased (-0.05%) to 82.28% when pulling ee92ea1271564a222fa8b3ac223a176227a3ec55 on steve/PRED-1593-remove-editable-install into 288f5a6771277f5e91a5c705532b90bb9c17c2c0 on master.

@sevikkk Can you take a look again when you have a moment. Seems like the appveyor tests are the only place we can drop the -e but that gives me enough confidence in catching wholesale packaging errors in the future.


non-translatable string

"Post" in post_list_compact.html

Did you try using it in lower case ?
like "post" ?

Hey, @tima101 ! Telescope has changed a lot in the past months, and there is a new React-based version, Telescope Nova (intro video). If you know Crater, it runs on the latest version.
The Legacy version is no longer supported. I'm closing this issue.
I invite you to check the new version, it's awesome!
Happy hacking! 🚀
Ps: by the way, don't hesitate to join the Slack to ask any question, you are welcome! 👍


[IOTDB-1301] snappy compatible arm64

Snappy must be compatible with the ARM server. 1.8.0 and later versions are compatible with ARM.

@jixuan1989 @LebronAl , could you please review?
Thanks


Implement reading an object from the object database.

I've been using Rust for only two days, so feel free to criticize everything :)

Related to #124, however this is a quite different API.
I'll look into a writing API too, but reading is much more important to have this level of an API, I feel.

Thanks!


:memo: [ 2022 Season1: Taehyun ] Does MySQL have a loop query?

I will merge it instead of @0417taehyun 😄


Testing: add tests for burst and burst_photos

PhotoInfo.burst and PhotoInfo.burst_photos need test cases

Also need test for Live Photos


Change setValueCurveAtTime values to Float32Array

Microsoft/TypeScript#23160
https://www.w3.org/TR/webaudio/#widl-AudioParam-setValueCurveAtTime-AudioParam-Float32Array-values-double-startTime-double-duration

Pushed an alternative fix in https://github.com/Microsoft/TSJS-lib-generator/pull/409

closing in favor of https://github.com/Microsoft/TSJS-lib-generator/pull/409


feat(uat): added configure iot core broker step

Description of changes:

refactor broker connectivity info storage
added create IoT core step

Why is this change necessary:

required step for several test features

Log results:
[INFO ] 2023-04-26 17:33:21.570 [main] MqttControlSteps - Connection with broker iot_core_broker established to address a2rytmonq5cblh-ats.iot.eu-central-1.amazonaws.com:443 as Thing gg-3f0b962c546b494c371c-clientDeviceTest on aws.greengrass.client.Mqtt5JavaSdkClient
[INFO ] 2023-04-26 17:33:21.570 [main] feature - Finished step: 'I connect device "clientDeviceTest" on aws.greengrass.client.Mqtt5JavaSdkClient to "iot_core_broker"' with status PASSED

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Please add Issue with link to task in PR description

Please add Issue with link to task in PR description

done


Mat-tree is broken on examples

Bug, feature request, or proposal:
mat-tree can be easily broken. Tested it on your demo
https://material.angular.io/components/tree/examples
What is the current behavior?

What are the steps to reproduce?

Try opening parent node, and then open child node as well.
Close parent node.
Repeat

You will end up creating multiple child nodes, every time you do this procedure.

Fixed by #11728