Main to live merge

Microsoft authors of articles need to make updates through the private repository, so the updates can be staged and validated by current validation rules. After you review staging and fix all validation issues, you can add the sign-off comment to let the PR reviewers know the updates are ready to be merged.
It's easy to access the private repo version of your articles in GitHub. Just add -pr to the URL, as follows:
 Public repo URL: https://github.com/MicrosoftDocs/{docs-repo}
 Private repo URL: https://github.com/MicrosoftDocs/{docs-repo-pr}
We have closed this pull request. Please resubmit the updates through the private repo. For more information, see the contributor guide.

Docs Build status updates of commit de88e6f:
:warning: Validation status: warnings

File
Status
Preview URL
Details

microsoft-community-training/infrastructure-management/install-your-platform-instance/configure-login-social-work-school-account.md
:warning:Warning
View
Details

microsoft-community-training/analytics/custom-reports/database-schema.md
:white_check_mark:Succeeded
View

microsoft-community-training/media/ManualAADSetup3.png
:white_check_mark:Succeeded
View

microsoft-community-training/media/ManualAADSetup3a.PNG
:white_check_mark:Succeeded
View

microsoft-community-training/media/Obtain clientsecret value.PNG
:white_check_mark:Succeeded
View

microsoft-community-training/media/Redirect URIs.png
:white_check_mark:Succeeded
View

microsoft-community-training/infrastructure-management/install-your-platform-instance/configure-login-social-work-school-account.md

Line 114, Column 5: [Warning: alt-text-bad-value - See documentation] Alt text 'Obtain ClientSecret value' is the same as the image file name. This redundancy adds no value for users of screen readers. For accessibility, add more descriptive alt text.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit de88e6f:
:warning: Validation status: warnings

File
Status
Preview URL
Details

microsoft-community-training/infrastructure-management/install-your-platform-instance/configure-login-social-work-school-account.md
:warning:Warning
View
Details

microsoft-community-training/analytics/custom-reports/database-schema.md
:white_check_mark:Succeeded
View

microsoft-community-training/media/ManualAADSetup3.png
:white_check_mark:Succeeded
View

microsoft-community-training/media/ManualAADSetup3a.PNG
:white_check_mark:Succeeded
View

microsoft-community-training/media/Obtain clientsecret value.PNG
:white_check_mark:Succeeded
View

microsoft-community-training/media/Redirect URIs.png
:white_check_mark:Succeeded
View

microsoft-community-training/infrastructure-management/install-your-platform-instance/configure-login-social-work-school-account.md

Line 114, Column 5: [Warning: alt-text-bad-value - See documentation] Alt text 'Obtain ClientSecret value' is the same as the image file name. This redundancy adds no value for users of screen readers. For accessibility, add more descriptive alt text.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 49912ca:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-community-training/analytics/custom-reports/database-schema.md
:white_check_mark:Succeeded
View

microsoft-community-training/infrastructure-management/install-your-platform-instance/configure-login-social-work-school-account.md
:white_check_mark:Succeeded
View

microsoft-community-training/media/ManualAADSetup3.png
:white_check_mark:Succeeded
View

microsoft-community-training/media/ManualAADSetup3a.PNG
:white_check_mark:Succeeded
View

microsoft-community-training/media/Obtain clientsecret value.PNG
:white_check_mark:Succeeded
View

microsoft-community-training/media/Redirect URIs.png
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Minor update to rate-limit integration test

This PR does not need to be merged. It's being used to illustrate minor code changes I made to run the rate-limit integration tests against my local version of rest and the stage.

Pull Request Test Coverage Report for Build 1893

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 71.921%

Totals

Change from base Build 1890:
0.0%

Covered Lines:
2015

Relevant Lines:
2606

💛  - Coveralls


Default resources are no longer valid

This is a bit confusing to follow because the "default resources" created by an Android Project are not actually what are being generated. There is no drawable folder being created and there are mipmap-xx folders which are not mentioned.

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

ID: 4db71a47-f7c4-e619-af5d-f173d97df1bd
Version Independent ID: 1f6af9fe-e53f-de92-041a-4340b1ae45a4
Content: Android Resource Basics - Xamarin
Content Source: docs/android/app-fundamentals/resources-in-android/android-resource-basics.md
Product: xamarin
GitHub Login: @mgmclemore
Microsoft Alias: mamcle

Hi @wutever0, thank you for your feedback!  You are correct: this topic has become outdated because the names of the default resources have changed since it was written. I've added a task to our backlog to get it updated.

@mgmclemore, if I want to access an image from the resource folder in the shared project to set icon for a toolbar item, do i access this way<EMAIL_ADDRESS>I keep getting image not found in the output window.

Hello @syedkutubahmed, our team can only answer feedback related to documentation issues. To get help, please visit the Developer Community forum.


state of memory thread_id

Each time when agent tries to gather information by asking I got another thread_id in state, then my graph doesn't remember what I provided, How to resolve this?
def process_query(user_input):
    if user_input:
        try:
            thread_id = str(uuid.uuid4())

this is one of the solution
if "thread_id" not in st.session_state:
    st.session_state.thread_id = str(uuid.uuid4())

def process_query(user_input):
    if user_input:
        try:
            thread_id = st.session_state.thread_id


CodeQL docs: Update intros in QL handbook and QL spec

I've added/updated introductions for the QL handbook articles and the spec. (I'm considering the first paragraph of each article the "introduction".)
Internal previews:

QL handbook
QL language spec

Partially addresses this docs pre-migration issue. I'm holding off on restructuring the content for now, so we can get the changes from #3143 merged first.

I'm going to assume this is a spurious test failure and merge...


Styles are not updated in time

Version
2.5.13
Reproduction link
https://github.com/Axure/sticky-scroll-demo
Steps to reproduce
npm run dev

and open http://localhost:8080. Scroll inside the region with black border from top to bottom. You will see another div with black border with "text" inside it.
What is expected?
The text should always be right on the midline of the visible area of the smaller bordered div.
What is actually happening?
The text is sometimes not on the midline, which produces visible "lags".
You can see wrongly rendered frames in the developer tools, e.g.:

(Note that for clarity I temporarily set a red border for the div of the text.)

An online demo is available at https://axure.github.io/sticky-scroll-demo/.
The effect is achieved by modifying the translateY of the text inside the smaller div on every scroll. It seems that the modified styled is not applied in time, so the a newly scrolled frame is rendered using the old style.
I highly suspect that not only styles, but also other data are not applied in time in possible scenarios.
It is not a problem of the browser, since the raw DOM solution works well:

source: https://github.com/Axure/stickty-scroll-correct/
demo: https://axure.github.io/stickty-scroll-correct/

Angular and React do not suffer from this problem:

React source: https://github.com/Axure/sticky-scroll-react/
React demo: https://axure.github.io/sticky-scroll-react/
Angular source: https://github.com/Axure/sticky-scroll-angular/
Angular demo: https://axure.github.io/sticky-scroll-angular/

seems a regression of 2.5.x internal change
i tried on https://jsfiddle.net/2zzydkf4/10/ with 2.4.4
it seems work well

Yes thi is likely related to that. But I would argue that Vue is not intended to be used for animations by rapidly changing style value bindings. That would have horrible performance in any but the most simple components, because you will re-render the whole component on every scroll event.
In my opinion., That should rather be done on the DOM level, i.e. with a custom directive, or with a dedicated animation library for biger things.

Looks like it's the deferred invocation of event handler which produces this problem, you can add scroll event listener manually inside mounted hook to avoid it. For example-https://jsfiddle.net/2zzydkf4/22/

https://vuejs.org/v2/api/#Vue-nextTick

[vue nextTick]https://vuejs.org/v2/api/#Vue-nextTick

Link: vue-nextTick
In the doc, it shows nextTick's callback will be executed after the next DOM update.
this may be a breaking change in Vue 2.x, if necessary, it better to be in Vue 3.x

Currently $nextTick callbacks are no longer assured to be invoked after DOM updates as stated in the docs, which may lead to confusion. There's no way for normal developers to know such caveat and they would have to have a good knowledge about the internal mechanism in order to use $nextTick without breaking their code.
For most of us one of Vue's best part is that developers wouldn't have to dig into internals to create rather complicated yet performant applications, and “it just works”.

@yyx990803 any update on this? The lack of a correct/consistent $nextTick is really causing me problems when trying to ensure that the Vue and other non-Vue parts of my UI are updated in the same frame.

Closed via #8450 (will be out in 2.6)


The Mistakes Most Swift Developers Don't Know They're Making

The Mistakes Most Swift Developers Don't Know They're Making
Swift is the new programming language created to be a modern replacement for Objective-C in iOS and OS X application development. In general, a skilled Swift developer is usually someone who is already experienced with Objective-C, and that, among other things, might lead them to write Swift code using Objective-C best practices, which can cause some bad mistakes.
In this article, Toptal Freelance Software Engineer Nilson Souto outlines the most common mistakes Swift developers should be aware of.

Thanks @hollaur ! 😄
I'm not sure this would be suited for the Swift Weekly audience. We try to share community articles on very swift-specific topics or technical details. But this looks like a great post for the Cocoa community in general! 😊


Add support for C8 DMN

Is your feature request related to a problem? Please describe.
The plugin was built with C7 DMN diagrams in mind. C8 support has to be added explicitly (cloud-dmn).
Describe the solution you'd like
Add C8 support.
Describe alternatives you've considered
/
Additional context
/

Hi @pinussilvestrus
can you please let me know how to make support  dmn for camunda 8 . now it is working only camunda 7.
Thanks
Pavan Kumar


prisma2 init does not find ts-node when using starter kit "GraphQL API (+ Auth)"

Using Prisma 2 version<EMAIL_ADDRESS>binary version: bbbeff6f84b408e534ebd866bfd378748e6d6611
When running prisma2 init with the GraphQL API (+ Auth)starter kit I came across the following error. I assume that the npm install did not install everything:
...

✔  Downloading the starter kit from GitHub ...

Preparing your starter kit: GraphQL API (+ Auth)

✔  Downloading the starter kit from GitHub ...
✔  Extracting content to prisma2preview91 ...
✔  Installing dependencies with: `npm install` ...
✔  Preparing your database ...
⠼  Seeding your database with: `npm run seed` ...
 ERROR  Error during command execution

sh: ts-node: command not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! graphql-auth@ seed: `ts-node prisma/seed.ts`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the graphql-auth@ seed script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/nickreynke/.npm/_logs/2019-09-02T17_20_11_738Z-debug.log

After running a npm i I could run npm run seed successfully.

I can confirm this. It is an easy workaround for now as you just need to run npm install again.

Still occurs in version<EMAIL_ADDRESS>binary version: 1b0c271f14ca00606f56c93717e228fe48c5603c

npm install -g typescript ts-node ts-node-dev seems to be sufficient for the starter kits.

@ttsirkia Yes, the issue however is that these dev deps exist and are installed but for some reason ts-node doesn't go through. I will investigate this soon.

On further digging, I can confirm that using the bin.ts from introspection directly works but when it is used from Prisma 2 CLI's bin.ts it fails with this error as we pass in a different cwd.
That is used here and it breaks the ts-node resolution: https://github.com/prisma/lift/blob/master/src/cli/commands/LiftTmpPrepare.ts#L9-L42
Tim informed me that a proper fix for this is to refactor the cwd resolution for Prisma schema path resolution which is a relatively larger refactor.
Handing this one over to @timsuchanek

Fixed in the latest alpha.

I can still reproduce this with alpha.216

Can confirm that the same procedure still fails when using version<EMAIL_ADDRESS>binary version: 14576370b55d5152d9cb90f4f509bfa56760dbbd.

Apologies for the problems! We released a patch to fix this!


React Hook "useContext" is called conditionally.

Failed to compile.
src/components/MDPagination/index.js
Line 17:28:  React Hook "useContext" is called conditionally. React Hooks must be called in the exact same order in every component render  react-hooks/rules-of-hooks

I have the same issue.

Remove conditionally
const context = useContext(Context);

Hi there
Thanks for using our product and reporting this issue, we will take care of that on the next update of the product.
All the best
Sajad


fix zombie process

fix https://github.com/juicedata/juicefs-csi-driver/issues/246

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@8a32da8). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #248   +/-   ##
=========================================
  Coverage          ?   83.72%
=========================================
  Files             ?       18
  Lines             ?     1567
  Branches          ?        0
=========================================
  Hits              ?     1312
  Misses            ?      213
  Partials          ?       42

Continue to review full report at Codecov.

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


[spaceship] Add get app availabilities v2 request

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I see several green ci/circleci builds in the "All checks have passed" section of my PR (connect CircleCI to GitHub if not)
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.
[x] I've added or updated relevant unit tests.

Motivation and Context

As written in https://github.com/fastlane/fastlane/pull/21890, there is a need to implement a new request for app availabilities. It will allow for checking if app is available or removed from distribution.
PR should be considered after https://github.com/fastlane/fastlane/pull/21900 is handled.
Description
In this PR a request for app availabilities (https://developer.apple.com/documentation/appstoreconnectapi/read_app_availablity_territories) is implemented. It's a first request to v2 version in path.
Request is used in Pricing and Availability on AppStoreConnect.
Testing Steps
I added unit tests for models.
I also tested the request in spaceship playground.

          1 Warning

:warning:
Big PR

  Generated by :no_entry_sign: Danger

question: how are you going to know which territory corresponds to a territoryAvailability?

@shernade I took a look at the fixtures and I think that when you fetch appAvailabilities you can get territoryAvailabilities and as far as I remember ids are meaningful for them. If you want to know exactly how it works, you could login to AppstoreConnect in web browser with developer tools open and check network requests on "Pricing and Availability".

i see that doing a call like this:
client.tunes_request_client.get("v2/appAvailabilities/6497953632/territoryAvailabilities", client.tunes_request_client.build_params(filter: {}, includes: "territory", limit: 200 , sort: nil)) and including territory the json data has territory info:
 =>
#<Spaceship::ConnectAPI::Response:0x00007f9abe72a2f8
 @body=
  {"data"=>
    [{"type"=>"territoryAvailabilities",
      "id"=>"eyJzIjoiNjQ5Nzk1MzYzMiIsInQiOiJEWkEifQ",
      "attributes"=>{"available"=>false, "availableInPast"=>false, "preOrderAvailableInPast"=>false, "releaseDate"=>nil, "preOrderEnabled"=>false, "preOrderPublishDate"=>nil, "contentStatuses"=>["CANNOT_SELL"]},
      "relationships"=>{"territory"=>{"data"=>{"type"=>"territories", "id"=>"DZA"}}},
      "links"=>{"self"=>"https://appstoreconnect.apple.com/iris/v1/territoryAvailabilities/eyJzIjoiNjQ5Nzk1MzYzMiIsInQiOiJEWkEifQ"}},
     {"type"=>"territoryAvailabilities",
      "id"=>"eyJzIjoiNjQ5Nzk1MzYzMiIsInQiOiJWRU4ifQ",
      "attributes"=>{"available"=>false, "availableInPast"=>false, "preOrderAvailableInPast"=>false, "releaseDate"=>nil, "preOrderEnabled"=>false, "preOrderPublishDate"=>nil, "contentStatuses"=>["CANNOT_SELL"]},
      "relationships"=>{"territory"=>{"data"=>{"type"=>"territories", "id"=>"VEN"}}},
      "links"=>{"self"=>"https://appstoreconnect.apple.com/iris/v1/territoryAvailabilities/eyJzIjoiNjQ5Nzk1MzYzMiIsInQiOiJWRU4ifQ"}},
     {"type"=>"territoryAvailabilities",

thanks

@lucgrabowski Let's get https://github.com/fastlane/fastlane/pull/21900 through the door first. I hope tests are passing now. Then there should be less changes here, and hopefully less warnings.
Could you provide me/us with some basic steps to test/reproduce this with the Spaceship playground? More than happy to review that so we can get this PR here over the finish lines as well! Thanks for your work in the meantime :)

https://github.com/fastlane/fastlane/pull/21900
Has been merged 🥇

@max-out Thanks for reviewing and merging other PRs. I don’t have an access to computer this weekend, but I have tried merging master through web interface, I hope it will be fine.
About testing steps in Spaceship playground. I logged in to developer account, fetched ConnectAPI::App and called app_get_availabitilites for this app. It’s also good to later check territory_availabilities for app availability. I used it in https://github.com/fastlane/fastlane/pull/21902

I have created my own fork with all the latest merges from master and then also applied the changes introduced in this PR - when running a test App Store deployment workflow - i'm still getting pretty much the same error:
************************/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane_fork-e8fe2a941102/spaceship/lib/spaceship/connect_api/api_client.rb:223:in handle_response': \e[31m[!] The provided entity includes an unknown attribute - 'availableInNewTerritories' is not an attribute on the resource 'apps' - /data/attributes/availableInNewTerritories (Spaceship::UnexpectedResponse)
The provided entity includes an unknown relationship - 'prices' is not a relationship on the resource 'apps' - /data/relationships/prices
The provided entity includes an unknown relationship - 'availableTerritories' is not a relationship on the resource 'apps' - /data/relationships/availableTerritories\e[0m`
I just thought you'd like to know

@max-ott
You were absolutely right - it works! I guess we're gonna have to set those capabilities manually until a proper fix is in place. Still, this is great, cheers!

Hello 👋
Is there any news? The implementation of @lucgrabowski seems to be working correctly

When I try to submit an app using your branche I still get the response of;
[!] The provided entity includes an unknown attribute - 'availableInNewTerritories' is not an attribute on the resource 'apps' - /data/attributes/availableInNewTerritories (Spaceship::UnexpectedResponse)

@bkrijgsman Please keep in mind that this is only to retrieve the territories. If you have not previously set it, you will get this error message.

@bkrijgsman Please keep in mind that this is only to retrieve the territories. If you have not previously set it, you will get this error message.

Ah check thanks.
Well if there is somehow who is good into this and can fix again that pricing & territories can be set from zero; would be very great. Maybe I can get a reward from my company, since this issue is now blocking our build street for some weeks.

Ah check thanks.
Well if there is somehow who is good into this and can fix again that pricing & territories can be set from zero; would be very great. Maybe I can get a reward from my company, since this issue is now blocking our build street for some weeks.

@bkrijgsman
Similar situation here. Basically, now we're doing that initial part of the set-up manually, and then everything else is automated. Not as much of a pain as we initially thought (just 1-2 mins of manual work per workflow) but certainly not ideal.

Sorry kind of new to this. Is there any news on when this will. be available on deliver action?

can you show me an example of how can i set the app availability and pricing using spaceship?

@muhammad67uzair Please read through the thread. This functionality is only for retrieving set availabilities. Locking this thread to prevent non relevant discussions.


Utilize Borsh encoding for 'abi.encode' on Solana

This PR implements the abi.encode function using Borsh Encoding for Solana. It also introduces a few changes:

There was a bug in common subexpression elimination. When we use x=y+1, we can replace y+1 by x until x changes value. I fixed the code so that the algorithm unlinks y+1 to x, when the latter is assigned another value.
I added a MemCpy instruction to ease copying elements from arrays.
There is a AdvancePointer instruction to advance the buffer pointer when encoding. It also needed a new Type for account for the return of such an instruction. I named it Type::BufferPointer.
There is an Encoding trait that should be implemented by all encoding schemes. The function create_encoder should return the correct encoder given our target chain.
I have wired up all code necessary to support multidimensional dynamic arrays, but I have not tested it, because Solang does not support them.

The encoding happens in two passes. During the first one, I calculate the buffer's size. In the second, I save data into it.

we constant fold abi.encode() if the arguments are constant.

This is totally possible, but given the complexity of the encoder, I decided to do this later. Can I submit it in another PR? I believe this one is complex and already covers this case if it is needed for testing. This will be my next addition then, before decoding.

In the original design:

deal with null references:

function test() returns (bytes) {
      string[] x = new foo[](5);
      return abi.encode(x);
}

This example works fine, I added a test for it. Do null pointers need special handling?

In the original design:

deal with null references:

function test() returns (bytes) {
      string[] x = new foo[](5);
      return abi.encode(x);
}

This example works fine, I added a test for it. Do null pointers need special handling?

Right, that example works because vector_len() deals with null pointers.
How about:
struct S {
    int f1;
    string f2;
}

function test() returns (bytes) {
     S[] s = new S[](5);
     return abi.encode(x);
}

In the original design:

deal with null references:

function test() returns (bytes) {
      string[] x = new foo[](5);
      return abi.encode(x);
}

This example works fine, I added a test for it. Do null pointers need special handling?

Right, that example works because vector_len() deals with null pointers.
How about:
struct S {
    int f1;
    string f2;
}

function test() returns (bytes) {
     S[] s = new S[](5);
     return abi.encode(x);
}

This works fine too. I'll push my ch

In the original design:

deal with null references:

function test() returns (bytes) {
      string[] x = new foo[](5);
      return abi.encode(x);
}

This example works fine, I added a test for it. Do null pointers need special handling?

Right, that example works because vector_len() deals with null pointers.
How about:
struct S {
    int f1;
    string f2;
}

function test() returns (bytes) {
     S[] s = new S[](5);
     return abi.encode(x);
}

This works fine too. I'll push my test shortly.

Looks good

You've approved already, but I think it is good if your review it again.


Handle possible crash when loading a board configuration

Fixes #1170

Add a try/catch around the core LoadConfig() code, with an error log that identifies what the issue might be
Clean up all Visual Studio style messages in MobiFlightModule.cs since the file was touched by this change

I will not merge this one in favor of this one #1177 - later I will take a look at your code style modifications and merge them.

Works for me!


Stop GlyphRunTests leaking IPlatformRenderInterface.

What does the pull request do?
GlyphRunTests was leaking an IPlatformRenderInterface registration, causing flaky tests - in particular MaskedTextBoxTests need a registered IPlatformRenderInterface and were only passing because GlyphRunTests was leaking one.

You can test this PR using the following package version. 11.0.999-cibuild0032590-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0032608-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]


Add the sofproject as a module

Add https://github.com/thesofproject/sof as a module to enable building Audio application and support Audio DSPs available in some platforms.
Proposed Module name: sof

Agreed. Where is the "porting layer" to Zephyr in that project though?

+1 to the name

Agreed. Where is the "porting layer" to Zephyr in that project though?

not sure what you mean


RFC - Pipeline Resolver Support

Pipeline Resolvers Support
This RFC will document a process to transition the Amplify CLI to use AppSync pipeline resolvers. The driving use case for this feature is to allow users to compose their own logic with the logic that is generated by the GraphQL Transform. For example, a user might want to authorize a mutation that creates a message by first verifying that the user is enrolled in the message's chat room. Other examples include adding custom input validation or audit logging to @model mutations. This document is not necessarily final so please leave your comments so we can address any concerns.
Github Issues

https://github.com/aws-amplify/amplify-cli/issues/867
https://github.com/aws-amplify/amplify-cli/issues/318
https://github.com/aws-amplify/amplify-cli/issues/372
https://github.com/aws-amplify/amplify-cli/issues/891

Proposal 1: Use pipelines everywhere
Back in 2018, AppSync released a feature called pipeline resolvers. Pipeline resolvers allow you to serially execute multiple AppSync functions within the resolver for a single field (not to be confused with AWS Lambda functions). AppSync functions behave similarly to old style AppSync resolvers and contain a request mapping template, a response mapping template, and a data source. A function may be referenced by multiple AppSync resolvers allowing you to reuse the same function for multiple resolvers. The AppSync resolver context ($ctx in resolver templates) has also received a new stash map that lives throughout the execution of a pipeline resolver. You may use the $ctx.stash to store intermediate results and pass information between functions.
The first step towards supporting pipeline resolvers is to switch all existing generated resolvers to use pipeline resolvers. To help make the generated functions more reusable, each function defines a set of arguments that it expects to find in the stash. The arguments for a function are passed by setting a value in the $ctx.stash.args under a key that matches the name of the function. Below you can read the full list of functions that will be generated by different directives.
Generated Functions
Function: CreateX
Generated by @model and issues a DynamoDB PutItem operation with a condition expression to create records if they do not already exist.
Arguments
The CreateX function expects
{
    "stash": {
        "args": {
            "CreateX": {
                "input": {
                    "title": "some title",
                },
                "condition": {
                    "expression": "attribute_not_exists(#id)",
                    "expressionNames": {
                        "#id": "id"
                    },
                    "expressionValues": {}
                }
            }
        }
    }
}

Function: UpdateX
Generated by @model and issues a DynamoDB UpdateItem operation with a condition expression to update if the item exists.
Arguments
The UpdateX function expects
{
    "stash": {
        "args": {
            "UpdateX": {
                "input": {
                    "title": "some other title",
                },
                "condition": {
                    "expression": "attribute_exists(#id)",
                    "expressionNames": {
                        "#id": "id"
                    },
                    "expressionValues": {}
                }
            }
        }
    }
}

Function: DeleteX
Generated by @model and issues a DynamoDB DeleteItem operation with a condition expression to delete if the item exists.
Arguments
The UpdateX function expects
{
    "stash": {
        "args": {
            "DeleteX": {
                "input": {
                    "id": "123",
                },
                "condition": {
                    "expression": "attribute_exists(#id)",
                    "expressionNames": {
                        "#id": "id"
                    },
                    "expressionValues": {}
                }
            }
        }
    }
}

Function: GetX
Generated by @model and issues a DynamoDB GetItem operation.
Arguments
The UpdateX function expects
{
    "stash": {
        "args": {
            "GetX": {
                "id": "123"
            }
        }
    }
}

Function: ListX
Generated by @model and issues a DynamoDB Scan operation.
Arguments
The ListX function expects
{
    "stash": {
        "args": {
            "ListX": {
                "filter": {
                    "expression": "",
                    "expressionNames": {},
                    "expressionValues": {}
                },
                "limit": 20,
                "nextToken": "some-next-token"
            }
        }
    }
}

Function: QueryX
Generated by @model and issues a DynamoDB Query operation.
Arguments
The QueryX function expects
{
    "stash": {
        "args": {
            "QueryX": {
                "query": {
                    "expression": "#hashKey = :hashKey",
                    "expressionNames": {
                        "#hashKey": "hashKeyAttribute",
                        "expressionValues": {
                            ":hashKey": {
                                "S": "some-hash-key-value"
                            }
                        }
                    }
                },
                "scanIndexForward": true,
                "filter": {
                    "expression": "",
                    "expressionNames": {},
                    "expressionValues": {}
                },
                "limit": 20,
                "nextToken": "some-next-token",
                "index": "some-index-name"
            }
        }
    }
}

Function: AuthorizeCreateX
Generated by @auth when used on an OBJECT.
Arguments
The AuthorizeCreateX function expects no additional arguments. The AuthorizeCreateX function will look at $ctx.stash.CreateX.input and validate it against the $ctx.identity. The function will manipulate $ctx.stash.CreateX.condition such that the correct authorization conditions are added.

Function: AuthorizeUpdateX
Generated by @auth when used on an OBJECT.
Arguments
The AuthorizeUpdateX function expects no additional arguments. The AuthorizeUpdateX function will look at $ctx.stash.UpdateX.input and validate it against the $ctx.identity. The function will manipulate $ctx.stash.UpdateX.condition such that the correct authorization conditions are added.

Function: AuthorizeDeleteX
Generated by @auth when used on an OBJECT.
Arguments
The AuthorizeDeleteX function expects no additional arguments. The AuthorizeDeleteX function will look at $ctx.stash.DeleteX.input and validate it against the $ctx.identity. The function will manipulate $ctx.stash.DeleteX.condition such that the correct authorization conditions are added.

Function: AuthorizeGetX
Generated by @auth when used on an OBJECT.
Arguments
The AuthorizeGetX function expects no additional arguments. The AuthorizeGetX function will look at $ctx.stash.GetX.result and validate it against the $ctx.identity. The function will return null and append an error if the user is unauthorized.

Function: AuthorizeXItems
Filters a list of items based on @auth rules placed on the OBJECT. This function can be used by top level queries that return multiple values (list, query) as well as by @connection fields.
Arguments
The AuthorizeXItems function expects $ctx.prev.result to contain a list of "items" that should be filtered. This function returns the filtered results.

Function: HandleVersionedCreate
Created by the @versioned directive and sets the initial value of an objects version to 1.
Arguments
The HandleVersionedCreate function augments the $ctx.stash.CreateX.input such that it definitely contains an initial version.

Function: HandleVersionedUpdate
Created by the @versioned directive and updates the condition expression with version information.
Arguments
The HandleVersionedUpdate function uses the $ctx.stash.UpdateX.input to append a conditional update expression to $ctx.stash.UpdateX.condition such that the object is only updated if the versions match.

Function: HandleVersionedDelete
Created by the @versioned directive and updates the condition expression with version information.
Arguments
The HandleVersionedDelete function uses the $ctx.stash.DeleteX.input to append a conditional update expression to $ctx.stash.DeleteX.condition such that the object is only deleted if the versions match.

Function: SearchX
Created by the @searchable directive and issues an Elasticsearch query against your Elasticsearch domain.
Arguments
The SearchX function expects a single argument "params".
{
    "stash": {
        "args": {
            "SearchX": {
                "params": {
                    "body": {
                        "from": "",
                        "size": 10,
                        "sort": ["_doc"],
                        "query": {
                            "match_all": {}
                        }
                    }
                }
            }
        }
    }
}

Generated Resolvers
The @model, @connection, and @searchable directives all add resolvers to fields within your schema. The @versioned and @auth directives will only add functions to existing resolvers created by the other directives. This section will look at the resolvers generated by the @model, @connection, and @searchable directives.
@model resolvers
type Post @model {
    id: ID!
    title: String
}

This schema will create the following resolvers:

Mutation.createPost
The Mutation.createPost resolver uses its own RequestMappingTemplate to setup the $ctx.stash such that it's pipeline is parameterized to return the correct results.
Mutation.createPost.req.vtl
#set($ctx.stash.args = {})
#set($ctx.stash.args.CreatePost = {
    "input": $ctx.args.input
})

Function 1: CreatePost
The function will insert the value provided via $ctx.stash.CreatePost.input and return the results.
Mutation.createPost.res.vtl
Return the result of the last function in the pipeline.
$ctx.prev.result

Mutation.updatePost
The Mutation.updatePost resolver uses its own RequestMappingTemplate to setup the $ctx.stash such that it's pipeline is parameterized to return the correct results.
Mutation.updatePost.req.vtl
#set($ctx.stash.args = {})
#set($ctx.stash.args.UpdatePost = {
    "input": $ctx.args.input
})

Function 1: UpdatePost
The function will update the value provided via $ctx.stash.UpdatePost.input and return the results.
Mutation.updatePost.res.vtl
Return the result of the last function in the pipeline.
$ctx.prev.result

Mutation.deletePost
The Mutation.deletePost resolver uses its own RequestMappingTemplate to setup the $ctx.stash such that it's pipeline is parameterized to return the correct results.
Mutation.deletePost.req.vtl
#set($ctx.stash.args = {})
#set($ctx.stash.args.DeletePost = {
    "input": $ctx.args.input
})

Function 1: DeletePost
The function will delete the value designated via $ctx.stash.DeletePost.input.id and return the results.
Mutation.deletePost.res.vtl
Return the result of the last function in the pipeline.
$ctx.prev.result

Query.getPost
The Query.getPost resolver uses its own RequestMappingTemplate to setup the $ctx.stash such that it's pipeline is parameterized to return the correct results.
Query.getPost.req.vtl
#set($ctx.stash.args = {})
#set($ctx.stash.args.GetPost = {
    "id": $ctx.args.id
})

Function 1: GetPost
The function will get the value designated via $ctx.stash.GetPost.id and return the results.
Query.getPost.res.vtl
Return the result of the last function in the pipeline.
$ctx.prev.result

Query.listPosts
The Query.listPosts resolver uses its own RequestMappingTemplate to setup the $ctx.stash such that it's pipeline is parameterized to return the correct results.
Query.listPosts.req.vtl
#set($ctx.stash.args = {})
#set($ctx.stash.args.ListPosts = {
    "filter": $util.transform.toDynamoDBFilterExpression($ctx.args.filter),
    "limit": $ctx.args.limit,
    "nextToken": $ctx.args.nextToken
})

Function 1: ListPosts
The function will get the value designated via $ctx.stash.ListPosts.id and return the results.
Query.listPosts.res.vtl
Return the result of the last function in the pipeline.
$ctx.prev.result

@connection resolvers
type Post @model {
    id: ID!
    title: String
    comments: [Comment] @connection(name: "PostComments")
}
type Comment @model {
    id: ID!
    content: String
    post: Post @connection(name: "PostComments")
}

The example above would create the following resolvers

Post.comments
The Post.comments resolver uses its own RequestMappingTemplate to setup the $ctx.stash such that it's pipeline is parameterized to return the correct results.
Post.comments.req.vtl
#set($ctx.stash.args = {})
#set($ctx.stash.args.QueryComments = {
    "query": {
        "expression": "#connectionAttribute = :connectionAttribute",
        "expressionNames": {
            "#connectionAttribute": "commentPostId"
        },
        "expressionValues": {
            ":connectionAttribute": {
                "S": "$ctx.source.id"
            }
        }
    },
    "scanIndexForward": true,
    "filter": $util.transform.toDynamoDBFilterExpression($ctx.args.filter),
    "limit": $ctx.args.limit,
    "nextToken": $ctx.args.nextToken,
    "index": "gsi-PostComments"
})

Function 1: QueryPosts
The function will get the values designated via $ctx.stash.QueryPosts and return the results.
Post.comments.res.vtl
Return the result of the last function in the pipeline.
$ctx.prev.result

Comment.post
The Comment.post resolver uses its own RequestMappingTemplate to setup the $ctx.stash such that it's pipeline is parameterized to return the correct results.
Comment.post.req.vtl
#set($ctx.stash.args = {})
#set($ctx.stash.args.GetPost = {
    "id": "$ctx.source.commentPostId"
})

Function 1: GetPost
The function will get the values designated via $ctx.stash.GetPost and return the results.
Comment.post.res.vtl
Return the result of the last function in the pipeline.
$ctx.prev.result

@searchable resolvers
type Post @model @searchable {
    id: ID!
    title: String
}

Query.searchPosts
The Query.searchPosts resolver uses its own RequestMappingTemplate to setup the $ctx.stash such that it's pipeline is parameterized to return the correct results.
Query.searchPosts.req.vtl
#set($ctx.stash.args = {})
#set($ctx.stash.args.SearchPosts = {
    "query": $util.transform.toElasticsearchQueryDSL($ctx.args.filter),
    "sort": [],
    "size": $context.args.limit,
    "from": "$context.args.nextToken"
})

Function 1: SearchPosts
The function will get the values designated via $ctx.stash.GetPost and return the results.
Comment.post.res.vtl
Return the result of the last function in the pipeline.
$ctx.prev.result

@auth resolvers
The @auth directive does not add its own resolvers but will augment the behavior of existing resolvers by manipulating values in the $ctx.stash.

Mutation.createX - @auth will add logic to the request mapping template of the resolver that injects a condition into $ctx.stash.CreateX.condition
Mutation.updateX - @auth will add logic to the request mapping template of the resolver that injects a condition into $ctx.stash.UpdateX.condition
Mutation.deleteX - @auth will add logic to the request mapping template of the resolver that injects a condition into $ctx.stash.DeleteX.condition
Query.getX - @auth will add logic to the response mapping template of the resolver that will return the value if authorized.
Query.listX - @auth will add logic to the response mapping template of the resolver that will filter $ctx.prev.result.items based on the auth rules.
Query.searchX - @auth will add logic to the response mapping template of the resolver that will filter $ctx.prev.result.items based on the auth rules.
Query.queryX - @auth will add logic to the response mapping template of the resolver that will filter $ctx.prev.result.items based on the auth rules.
Model.connectionField - @auth will add logic to the response mapping template of the resolver that will filter $ctx.prev.result.items based on the auth rules.

@versioned resolvers
The @versioned directive does not add its own resolver but will augment the behavior of existing resolvers by manipulating values in the $ctx.stash.

Mutation.createX - @versioned will add logic to the request mapping template of the resolver that injects a condition into $ctx.stash.CreateX.condition
Mutation.updateX - @versioned will add logic to the request mapping template of the resolver that injects a condition into $ctx.stash.UpdateX.condition
Mutation.deleteX - @versioned will add logic to the request mapping template of the resolver that injects a condition into $ctx.stash.DeleteX.condition

Proposal 2: The @before and @after directives
There are many possibilities for how to expose pipeline functions via the transform. Defining a function of your own requires a request mapping template, response mapping template, and a data source. Using a function requires that you place that function, in order, within a pipeline resolver. Any directive(s) introduced would need to be able to accomodate both of these requirements. Here are a few options for discussion.
Before & After directives for adding logic to auto-generated model mutations
The main use case for this approach is to add custom authorization/audit/etc logic to mutations that are generated by the Amplify CLI. For example, you might want to lookup that a user is a member of a chat room before they can create a message. Currently this design only supports mutations but if you have suggestions for how to generalize this for read operations, comment below.
directive @before(mutation: ModelMutation!, function: String!, datasource: String!) ON OBJECT
directive @after(mutation: ModelMutation!, function: String!, datasource: String!) ON OBJECT
enum ModelMutation {
    create
    update
    delete
}

Which would be used like so:
# Messages are only readable via @connection fields.
# Message mutations are pre-checked by a custom function.
type Message
  @model(queries: null)
  @before(mutation: create, function: "AuthorizeUserIsChatMember", datasource: "ChatRoomTable")
{
    id: ID!
    content: String
    room: Room @connection(name: "ChatMessages")
}
type ChatRoom @model @auth(rules: [{ allow: owner, ownerField: "members" }]) {
    id: ID!
    messages: [Message] @connection(name: "ChatMessages")
    members: [String]
}

To implement your function logic, you would drop two files in resolvers/ called AuthorizeUserIsChatMember.req.vtl & AuthorizeUserIsChatMember.res.vtl:
## AuthorizeUserIsChatMember.req.vtl **
{
    "operation": "GetItem",
    "key": {
        "id": "$ctx.args.input.messageRoomId"
    }
}

## AuthorizeUserIsChatMember.res.vtl **
#if( ! $ctx.result.members.contains($ctx.identity.username) )
  ## If the user is not a member do not allow the CreatePost function to be called next. **
  $util.unauthorized()
#else
  ## Do nothing and allow the CreatePost function to be called next. **
  $ctx.result
#end

The @before directive specifies which data source should be called and the order of the functions could be determined by the order of the @before directives on the model. The @after directive would work similarly except the function would run after the generated mutation logic.
Audit mutations with a single AppSync function
type Message
  @model(queries: null)
  @after(mutation: create, function: "AuditMutation", datasource: "AuditTable")
{
    id: ID!
    content: String
}
# The Audit model is not exposed via the API but will create a table
# that can be used by your functions.
type Audit @model(queries: null, mutations: null, subscriptions: null) {
    id: ID!
    ctx: AWSJSON
}

You could then use function templates like this:
## AuditMutation.req.vtl **
## Log the entire resolver ctx to a DynamoDB table **
#set($auditRecord = {
    "ctx": $ctx,
    "timestamp": $util.time.nowISO8601()
})
{
    "operation": "PutItem",
    "key": {
        "id": "$util.autoId()"
    },
    "attributeValues": $util.dynamodb.toMapValuesJson($auditRecord)
}

## AuditMutation.res.vtl **
## Return the same value as the previous function **
$util.toJson($ctx.prev.result)

Request for comments
The goal is to provide simple to use and effective abstractions. Please leave your comments with questions, concerns, and use cases that you would like to see covered.

+1

Hi - I'm going to be closing this issue out as we've now launched additional guides on how to extend the GraphQL API via amplify add custom https://docs.amplify.aws/cli/graphql/custom-business-logic/#vtl-resolver and also we've now launched the GraphQL API as a first-class CDK construct. https://aws.amazon.com/blogs/mobile/announcing-aws-amplifys-graphql-api-cdk-construct-deploy-real-time-graphql-api-and-data-stack-on-aws/
Within the CDK approach, the experience is built-in to the construct, see the .add*() methods we've created: https://aws.amazon.com/blogs/mobile/announcing-aws-amplifys-graphql-api-cdk-construct-deploy-real-time-graphql-api-and-data-stack-on-aws/
Please @-mention me if this doesn't fully resolve the issues outlined here.

Thanks @renebrandel are we also planning on adding guides with best practices on on how to support multi-tenancy in amplify apps? This might be the key to resolving https://github.com/aws-amplify/amplify-category-api/issues/449#issuecomment-1741830687


Fix cpp minimal test

ace: linker: fix ctors section for CPP
xcc-clang: add default C includes when build C++ code

@nashif Can you review this?

@galak - I think I can help shed some light. When CONFIG_CPP_STATIC_INIT_GNU is set to 'y' (as it is when compiling C++ with xcc-clang), we want the constructor information to reside in the ctors section. However, the prior to the change, the linker script used for Ace (soc/xtensa/intel_adsp/ace/ace-link.ld) was ultimately specifying two places to put the constructors--rodata and ctors instead of just one. The linker then placed the constructors in the rodata section instead of the ctors. This change ensures that they are only specified in the ctors section, thereby allowing them to be automatically invoked by our constructor startup code located under lib/cpp/abi/.

@galak - I think I can help shed some light. When CONFIG_CPP_STATIC_INIT_GNU is set to 'y' (as it is when compiling C++ with xcc-clang), we want the constructor information to reside in the ctors section. However, the prior to the change, the linker script used for Ace (soc/xtensa/intel_adsp/ace/ace-link.ld) was ultimately specifying two places to put the constructors--rodata and ctors instead of just one. The linker then placed the constructors in the rodata section instead of the ctors. This change ensures that they are only specified in the ctors section, thereby allowing them to be automatically invoked by our constructor startup code located under lib/cpp/abi/.

I still dont see how CPP_STATIC_INIT_GNU is ever set to something different for xcc-clang builds.

xcc

@galak - I think I can help shed some light. When CONFIG_CPP_STATIC_INIT_GNU is set to 'y' (as it is when compiling C++ with xcc-clang), we want the constructor information to reside in the ctors section. However, the prior to the change, the linker script used for Ace (soc/xtensa/intel_adsp/ace/ace-link.ld) was ultimately specifying two places to put the constructors--rodata and ctors instead of just one. The linker then placed the constructors in the rodata section instead of the ctors. This change ensures that they are only specified in the ctors section, thereby allowing them to be automatically invoked by our constructor startup code located under lib/cpp/abi/.

I still dont see how CPP_STATIC_INIT_GNU is ever set to something different for xcc-clang builds.

@galak CPP_STATIC_INIT_GNU is not defined as something different for xcc-clang builds. In the case of xcc-clang compiler, the CPP constructors in linker are placed in .ctors section instead of .init_array which is usually the case when we use zephyr SDK. However, for xcc-clang this section in .rodata section is overriding what we have in .ctors and therefore preventing the constructors to work as desired. Hence this conditional.

@aasthagr I'm trying to understand when is CONFIG_CPP_STATIC_INIT_GNU=n.

CONFIG_CPP_STATIC_INIT_GNU

@aasthagr I'm trying to understand when is CONFIG_CPP_STATIC_INIT_GNU=n.

Only when we are not compiling C++ code (i.e CPP not defined) or if ZEPHYR_TOOLCHAIN_VARIANT) != "arcmwdt".

Only when we are not compiling C++ code (i.e CPP not defined) or if ZEPHYR_TOOLCHAIN_VARIANT) == "arcmwdt".

So the arcmwdt doesn't come into play, so for the case we aren't build C++ how do we have any ctors?

Only when we are not compiling C++ code (i.e CPP not defined) or if ZEPHYR_TOOLCHAIN_VARIANT) == "arcmwdt".

So the arcmwdt doesn't come into play, so for the case we aren't build C++ how do we have any ctors?

@galak Thanks for the valid questions. Investigated further and removed those lines so that constructor data is retained from .ctors section. Please re-review.

I think we need to update the commit message for ace: linker: fix ctors section for CPP

Done.

ace:  as commit prefix is very ambiguos, please use intel_adsp: ace: going forward.

ace:  as commit prefix is very ambiguos, please use intel_adsp: ace: going forward.

changed this.


[BUG]: How to avoid email notifications while deploying CoE Starter kit in the staging environments?

Hello!
We have CoE Starter Kit deployed in the "Dev" environment and planning to deploy in the fresh "Test" environment.
However, We need to know whether emails will be sent to users via CoE flows again even if they have received when CoE Starter Kit was deployed in the "Dev" environment?
On the other hand, "Turning" flows "On" triggers are generated based on the past events as well. More information is here - https://powerusers.microsoft.com/t5/Power-Automate-Ideas/Flow-Turn-Off-Turn-on-functionality/idi-p/385982
Considering this, What strategy we can apply to avoid email notifications while managing CoE Starter kit in the different environments without generating repeated existing user's email notifications via CoE Flows from the different environments?
Thank you in advance!
Regards,
Dipti

Can you explain what you are trying to do within the Dev environment?
If you really want to use and test the flows that email users in dev, you would need to modify the flows themselves to email someone else.

As an update, we were updating these flows anyway, and per your feedback I have added an envt variable that can be used.
Current POR is that it will be an env var called ProductionEnvironment with default value of True.
For any dev environments you set up you can mark this to false, and then we will assign the approvals / emails to the admin instead.
We will release this with the next update to the CoE
Thanks for the feedback!

Hello Jenefer,
Appreciate considering the feedback!
Regarding your previous question, In the Dev environment, We are trying to update CoE flows email actions/recurrence configuration etc and check when and how each flow are being sent and update as per the org need.Therefor, we have to consider the same CoE solution into other staging environments as per the how solutions deployment works in the Power Platform.
However by deploying the same solution from dev to test environment, CoE flows will be triggered again and we do not know whether it will send the emails to App/Flow Owners again because "Turn On" functionality of the flow suggest the same? If that happens - We want to avoid it because we do not want end users to receive the same email repeatedly!
Can you please help on things to consider for the deployment stratagy on Dev-Test-Prod environments to avoid sending repeated emails with current CoE starter kit we have in the Dev Environment?
Thank you for your understanding!
Regards,
Dipti

Hi Jenefer,
Thank you for your response, I think changing the email action to someone else would save the duplications of emails to end user, however I have further noticed two points:
1. CoE Solutions currently deployed into the Dev environment can not be exported as they are managed solution - considering this, Is CoE kit deployment should have staging environments like "test/dev" ? Or it should be deployed only in the single environment per organization?
2.  If we deploy Microsoft's version of CoE kit in each staging environment ( dev,test,prod) - How the CoE data would be managed as each environment will start with fresh data? should we migrate CoE data with some sort of automation? - Does it again indicates that CoE must be deployed in the single environment per organization?
Can you please help clarifying further on this and suggest the best practices for CoE Starter kit deployment in the staging environments?
Thanks and Regards,
Dipti

Here are the instructions for extending the starter kit
Please let me know if you have questions after reviewing.
Thanks for using CoE

Hi Jenefer,
Thank you for the link, that helps a lot and I understood as follows:
1. If Microsoft Version's CoE kit needs to be extended, then create new custom solution ( e.g. "Custom CoE Kit" ) and add all "customized" components into New custom solution  "Custom CoE Kit".
2. When new updates arrive, make sure that in the existing Microsoft Version's CoE kit solutions have no "Solution Layers", if there are any, then remove it, so that new updates get applied without any problem during "Upgrade" process.
However, when we do "Upgrade" - How to upgrade "Custom CoE Kit" solution that contains custom components derived from the previous version of CoE Kit? Do we have to create another custom solution again to incorporate with the latest changes of the CoE Kit?
Looking forward to hearing from you soon!
Thanks and Regards,
Dipti

On Q1)
You will upgrade the managed solution from us and it will overwrite the old managed solution you got from us, it will not touch your new unmanaged solution.
From there, you can save-as whichever flows/apps you want, and import them to your unmanaged solution, and redo your changes on top.
On Q2)  with the new env var we are shipping, you will just have those set to isProd=no, and the end users will not be prompted for archival.

This has been resolved in the new version of the toolkit released today: https://aka.ms/CoEStarterKitDownload
PLEASE NOTE: In order to receive updates, you now have to remove all unmanaged layers from any apps/flows you have created in the past. Otherwise you will not see the changes for the app/flow that maintains its unmanaged layers.
For more details on what this looks like, please view installing updates
NOTE ALSO: The way that the archival system works has changes now.

No longer backing up for the user:
In the past we would back up the apps and flows for the owners in a SP library, and then they would need to find those backups later, or reach out to the Power Platform admin for assistance in finding those backups.
We received some feedback from customers that this is problematic, and a few product changes were made which make this less reliable.
As a result, we have moved to a system in which the users will be responsible for backup of their apps and flows themselves for later use, in the event they change their minds.

An environment variable ProductionEnvironment was added. If set to "no", it will send all approvals to the admin instead of the end user for your dev and test installations.

Changing the criteria to flag for archival:
Apps will now check for both modified and launched dates. By default, if they have not been launched NOR modified in 6 months, they will flag for archival
Flows will now be flagged for archival if they are not in the stopped state, as well as not modified in the last 6 months.

Thanks for using CoE, and helping make it great with your feedback.


2.1.5 Cheat Sheet Page has invalid links

Cheat sheet page has invalid navigation links:
http://gatling.io/docs/2.1.5/cheat-sheet.html
Download, Documentation and Professional Services links don't work

@notdryft This one's for you ;-)

@notdryft I fixed the links on the generated pages, but I'll let you fix upstream.
@rwwarren Thanks for reporting!

Closed by d7ac5d6


fx:Declarations doesn't initialize fx:Number or fx:Boolean

In attached test case, fx:Number and fx:Boolean are undefined.
TestDeclarations.mxml.txt
Flash Debug Player shows error:
VerifyError: Error #1030: Stack depth is unbalanced. 3 != 0.

	at org.apache.royale.core::Application/initialize()[/org/apache/royale/0.9.8/org/apache/royale/core/Application.as:0]
	at org.apache.royale.core::Application/initHandler()[/org/apache/royale/0.9.8/org/apache/royale/core/Application.as:161]

Where to begin looking for the place to fix it?

@estanglerbm , this is a compiler issue. We've run into it too. It probably won't make it into this release as everyone is in over their heads with end of year ports and such. The workaround is to just declare vars in scripts with [Bindable].
If you do want to explore compiler code this might be a good place to start
https://github.com/apache/royale-compiler/wiki/developer-guide

@aharui Appears fixed.  Thanks!

@aharui Appears fixed.  Thanks!


⚠ Contemporanea B2B has degraded performance

In cb14a3c, Contemporanea B2B ($SITE_CNTMB) experienced degraded performance:

HTTP code: 200
Response time: 15375 ms

Resolved: Contemporanea B2B performance has improved in 9b9263f.


launcher refactoring: FSJobCatalog

initial commit, basic implementation, require further commits to complete.

Coverage decreased (-0.3%) to 45.868% when pulling d2238383427460e82317a8380cdd13e41be2a465 on autumnust:launcherRefactor into 3b6a8b1e42115ad787787e89b4aed55891fa2ee8 on linkedin:master.

Switch to another PR as I carelessly messed this up.


Update Vast XSD files

Updated the Vast XSD files from the official version from https://github.com/InteractiveAdvertisingBureau/vast. Contains a few formatting changes, but mainly done as Vast 3 spec added acceptInvitationLinear and closeLinear tracking events.

@chrisdinn thank you for merging so quickly. Would you be able to release a new version of the Gem to rubygems at some point to save us having to point our Gemfile to the GitHub url?
Thanks again,
Owen @ Admedo

OK, sounds good. I'll re-publish as soon as I can.


Login page error: Could not find an option named "scss"

Hello,
I am trying to run the crm locally on MacOS X. I created a virtual environment, installed all dependencies, created the database and migrated the changes. I also installed sass via homebrew and the html to pdf tool via installer. According to the installation info provided it should all run smooth... but it doesn't. I can't even reach the login page. I turned on debug and the source of the error seems to be django-compressor. The error is:
Unable to apply CachedCompilerFilter (sass --scss {infile} {outfile})
Could not find an option named "scss"

I tried all possible workarounds I could find on both github and stackoverflow but they don't work.

@calinbule Have u tried to pull from the master itself? I've made a PR that already merged and fix the sass & scss issue. See https://github.com/MicroPyramid/Django-CRM/pull/303


2021 Kia Sorento, Raspberry Pi 3B+, One Plus 7T stuck at searching for Android Auto

The title pretty much describes it. I can connect bluetooth between my phone and the pi but that is where it stops. The image is where it stops. I have attached the logs, any help would be appreciated! Thanks
Kia_hostapd_log.txt
Kia_message_Log.txt

Raspberry Pi 3B+ is not supported, it does not have USB OTG capability.

My bad, thank you. I will try a different model.


Bugfix/remove typos

This fixes some minor typos in the code base (specs, variables, translation keys)

THANKS @hwanders


Semi-working version on Render

TODO

[ ] Temporal Server Worker errors
[ ] We need to create a separate DB for VISIBILITY
[ ] Needs real user testing

cc @sw-yx

greatly appreciated!


Add documentation for the Serverless Overview Page

This issue tracks the feature documentation that should accompany the new CC Serverless Overview page. There are various components to this, which may need to split into distinct issues as they intersect with various teams:

Plan info
Metrics: Request units
Metrics: Storage
Metrics: SQL statements
Activity panel which includes a menu of metrics (storage used, request units, throughput (QPS), P99 latency, databases, tables, open sessions, transaction retries)

Epic: CC-3820

cc @mikeCRL for awareness based on our discussions


Can't send notifications on iOS 10.3.3

Unable to connect to FCM. Error Domain=com.google.fcm Code=2001 "FIRMessaging is already connected" UserInfo={NSLocalizedFailureReason=FIRMessaging is already connected}
In Xcode debugger, I see my push notification, but can't see it on iOS :(
Can someone help me?

I think that plugin.xml may be missing this configuration, so be sure to turn them on manually in XCode:
    <config-file target="*-Info.plist" parent="UIBackgroundModes">
      <array>
        <string>remote-notification</string>
      </array>
    </config-file>

closing this for now. re-open if still a problem with the latest version of the plugin


make @dhirschfeld a feedstock maintainer

makes @dhirschfeld a feedstock maintainer - thanks for your help!
Kindly confirm before I merge, @dhirschfeld

You'll need to bump the build number if you do it this way.
https://conda-forge.org/docs/maintainer/infrastructure/#conda-forge-admin-please-add-user-username

hmm - would it not update automatically when we build at the next release?

Every commit to main in a feedstock releases a new package so you can't commit any changes without at least bumping the build number.

what happens if I do not bump the build number?

I see, this causes a release, and the bot command does skip the release. Let me do it that way then.

superseded by https://github.com/conda-forge/skbase-suite-feedstock/pull/61


Recording does not work on Jetson platform when streaming

On Jetson TX2, newest Jetpack, newest SDK (downloaded and installed last week).
Code snippet to reproduce:
import pyzed.sl as sl
import argparse
import cv2
import time

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--ip", type=str, required=True,
    help="IP to the sender of the stream")
ap.add_argument("-p", "--port", type=int, required=True,
    help="port used for receiving the stream")

args = vars(ap.parse_args())

if __name__ == "__main__":

    # Create a ZED camera object
    zed = sl.Camera()

    # Set configuration parameters
    init_params = sl.InitParameters()
    init_params.depth_mode = sl.DEPTH_MODE.NONE
    init_params.set_from_stream(args["ip"],args["port"])
    init_params.sdk_verbose = False

    # Open the camera
    err = zed.open(init_params)
    while err != sl.ERROR_CODE.SUCCESS:
        print("Opening camera error: ", err,flush=True)
        print("Trying again in 1 second ...",flush=True)
        time.sleep(1)
        err = zed.open(init_params)

    print("Camera opened. Starting stream ...",flush=True)

    # Print camera info
    camera_info = zed.get_camera_information()
    print("\n",flush=True)
    print("ZED Model \t\t: {}".format(camera_info.camera_model),flush=True)
    print("ZED Serial Number \t: {}".format(camera_info.serial_number),flush=True)
    print("ZED Camera Firmware \t: {}-{}".format(camera_info.camera_firmware_version, camera_info.sensors_firmware_version),flush=True)
    print("ZED Camera Resolution \t: {}x{}".format(camera_info.camera_resolution.width, camera_info.camera_resolution.height),flush=True)
    print("ZED Camera FPS \t\t: {}".format(camera_info.camera_fps),flush=True)

    # Enable recording
    recording_param = sl.RecordingParameters("./test.svo",sl.SVO_COMPRESSION_MODE.H264)
    err = zed.enable_recording(recording_param)
    if err != sl.ERROR_CODE.SUCCESS:
        print(repr(status))
        exit(1)

    runtime = sl.RuntimeParameters()
    runtime.enable_depth = False

    mat = sl.Mat()

    key = ''
    while key != 113:  # for 'q' key
        err = zed.grab(runtime)
        if err == sl.ERROR_CODE.SUCCESS:
            zed.retrieve_image(mat, sl.VIEW.LEFT)
            cv2.imshow("ZED", mat.get_data())
        key = cv2.waitKey(5)

    cv2.destroyAllWindows()
    zed.disable_recording()
    zed.close()

It seems it floods the memory and then exits. Errors are not really consistent. Here's one example of an error:
Opening in BLOCKING MODE
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
libv4l2_nvvidconv (0):(802) (INFO) : Allocating (11) OUTPUT PLANE BUFFERS Layout =1
libv4l2_nvvidconv (0):(818) (INFO) : Allocating (11) CAPTURE PLANE BUFFERS Layou t=0
Camera opened. Starting stream ...
ZED Model               : ZED-M
ZED Serial Number       : 12811826
ZED Camera Firmware     : 1523-517
ZED Camera Resolution   : 1280x720
ZED Camera FPS          : 60.0
Opening in BLOCKING MODE
NvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
NvMapMemHandleCreate: error 22
nvbuf_utils: Unable to allocate HW buffer for PayloadType SurfArray
NvBufferCreateEx with memtag 4608 failed
nvbuf_utils: dmabuf_fd 0 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD... Exiting...
Segmentation fault (core dumped)
--

If I comment out the enable_recording() lines, it works just fine.

We've identified the problem, it will be fixed in an upcoming patch.
Sorry for the inconvenience and thank you for reporting the issue.

The ZED SDK 3.0.3 is now released and includes this fix https://www.stereolabs.com/developers/release/

@adujardin can you please comment whether the newest patch will fix my issue as well ? https://github.com/stereolabs/zed-python-api/issues/135


CASMTRIAGE-6813-release-1.5 add troubleshooting page for NotADirectoryError seen in IUF

Description
NotADirectoryError error has been seen in the IUF-CLI. This has been fixed by CASMTRIAGE-6813 in CSM 1.5.1 and CSM 1.6. This PR adds a troubleshooting page for this issue so that a work around can be performed in CSM 1.4.X and CSM 1.5.0.

Checklist

[x] If I added any command snippets, the steps they belong to follow the prompt conventions (see example).
[x] If I added a new directory, I also updated .github/CODEOWNERS with the corresponding team in Cray-HPE.
[x] My commits or Pull-Request Title contain my JIRA information, or I do not have a JIRA.

/backport release/1.4


Testing for @fluid-example packages

Add End to end testing with Jest and Puppeteer.
Use clicker/dice-roller as an example.
Here are a list of remaining packages that doesn't have test.

[ ] @fluid-example/agent-scheduler
[ ] @fluid-example/badge
[ ] @fluid-example/client-ui
[ ] @fluid-example/codemirror
[ ] @fluid-example/draft-js
[ ] @fluid-example/image-collection
[ ] @fluid-example/image-gallery
[ ] @fluid-example/key-value-cache
[ ] @fluid-example/math
[ ] @fluid-example/monaco
[ ] @fluid-example/musica
[ ] @fluid-example/progress-bars
[ ] @fluid-example/prosemirror
[ ] @fluid-example/scribe
[ ] @fluid-example/search-menu
[ ] @fluid-example/simple-fluidobject-embed
[ ] @fluid-example/smde
[ ] @fluid-example/sudoku
[ ] @fluid-example/video-players
[ ] @fluid-example/webflow

Closing, as this issue seems like served its purpose.


ESP32: wifi station sample does not get IP address by DHCP4

Describe the bug
I am running the samples/boards/esp32/wifi_station sample on a NodeMCU-ESP32. The ESP32 connects to the Wifi access point but does not get an IP address.
There are no DHCP4 packets on air despite the ESP32 is connected to the access point and the DHCP client is started. For other computers the access point is working correctly.
To Reproduce
Basically do

mkdir build; cd build
cmake -DBOARD=esp32 ../samples/boards/esp32/wifi_station
ninja menuconfig # for WiFi credentials
ninja
cd ..
west flash; picocom /dev/ttyUSB0 -b 115200

Due to some non standard installation and activation of the debug log I had to use a different batch script (see at the end of the issue).
Expected behavior
ESP32 to get an IP address by DHCP4.

I (4084347) wifi:state: run -> init (2a0)
I (4084347) wifi:pm stop, total sleep time: 530681046 us / 599902053 us

I (4084347) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (4084361) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1
I (4084362) wifi:state: init -> auth (b0)
I (4084374) wifi:state: auth -> assoc (0)
I (4084391) wifi:state: assoc -> run (10)
I (4084422) wifi:connected with MumpfelgrumpfSpeicher, aid = 1, channel 11, BW20, bssid = 44:4e:6d:cb:e8:c0
I (4084422) wifi:security: WPA2-PSK, phy: bgn, rssi: -77
I (4084426) wifi:pm start, type: 1

[01:08:04.353,000] <inf> esp32_wifi: WIFI_EVENT_STA_DISCONNECTED
[01:08:04.353,000] <dbg> net_dhcpv4.dhcpv4_iface_event_handler: (0x3ffb1fb8): Interface 0x3ffb0168 going down
[01:08:04.429,000] <iI (4084448) wifi:AP's beacon interval = 102400 us, DTIM period = 1
nf> esp32_wifi: WIFI_EVENT_STA_CONNECTED
[01:08:04.429,000] <dbg> net_dhcpv4.dhcpv4_iface_event_handler: (0x3ffb1fb8): Interface 0x3ffb0168 coming up
[01:08:04.429,000] <dbg> net_dhcpv4.dhcpv4_immediate_timeout: (0x3ffb1fb8): force timeout dhcpv4=0x3ffb0178
[01:08:04.429,000] <dbg> net_dhcpv4.dhcpv4_manage_timers: (0x3ffca1f0): iface 0x3ffb0168 dhcpv4=0x3ffb0178 state=selecting timeleft=0
[01:08:04.429,000] <dbg> esp32_wifi.eth_esp32_send: pkt sent 0x3fff7e5c len 291
[01:08:04.429,000] <dbg> net_dhcpv4.dhcpv4_set_timeout: (0x3ffca1f0): sched timeout dhcvp4=0x3ffb0178 timeout=65s
[01:08:04.429,000] <dbg> net_dhcpv4.dhcpv4_send_discover: (0x3ffca1f0): send discover xid=0x951fb043 timeout=65s
[01:08:04.429,000] <dbg> net_dhcpv4.dhcpv4_timeout: (0x3ffca1f0): Waiting for 65s
[01:08:04.429,000] <dbg> net_dhcpv4.dhcpv4_manage_timers: (0x3ffca1f0): iface 0x3ffb0168 dhcpv4=0x3ffb0178 state=selecting timeleft=65
[01:08:04.429,000] <dbg> net_dhcpv4.dhcpv4_timeout: (0x3ffca1f0): Waiting for 65s
[01:09:09.429,000] <dbg> net_dhcpv4.dhcpv4_manage_timers: (0x3ffca1f0): iface 0x3ffb0168 dhcpv4=0x3ffb0178 state=selecting timeleft=0
[01:09:09.430,000] <dbg> esp32_wifi.eth_esp32_send: pkt sent 0x3fff7e5c len 291
[01:09:09.430,000] <dbg> net_dhcpv4.dhcpv4_set_timeout: (0x3ffca1f0): sched timeout dhcvp4=0x3ffb0178 timeout=64s
[01:09:09.430,000] <dbg> net_dhcpv4.dhcpv4_send_discover: (0x3ffca1f0): send discover xid=0x951fb044 timeout=64s
[01:09:09.430,000] <dbg> net_dhcpv4.dhcpv4_timeout: (0x3ffca1f0): Waiting for 64s
[01:09:09.430,000] <dbg> net_dhcpv4.dhcpv4_manage_timers: (0x3ffca1f0): iface 0x3ffb0168 dhcpv4=0x3ffb0178 state=selecting timeleft=64
[01:09:09.430,000] <dbg> net_dhcpv4.dhcpv4_timeout: (0x3ffca1f0): Waiting for 64s
[01:10:13.430,000] <dbg> net_dhcpv4.dhcpv4_manage_timers: (0x3ffca1f0): iface 0x3ffb0168 dhcpv4=0x3ffb0178 state=selecting timeleft=0
[01:10:13.430,000] <dbg> esp32_wifi.eth_esp32_send: pkt sent 0x3fff7e5c len 291
[01:10:13.430,000] <dbg> net_dhcpv4.dhcpv4_set_timeout: (0x3ffca1f0): sched timeout dhcvp4=0x3ffb0178 timeout=63s
[01:10:13.430,000] <dbg> net_dhcpv4.dhcpv4_send_discover: (0x3ffca1f0): send discover xid=0x951fb045 timeout=63s
[01:10:13.430,000] <dbg> net_dhcpv4.dhcpv4_timeout: (0x3ffca1f0): Waiting for 63s

Wireshark scan - sample of ESP32 transmissions

Access point:             AVMAudio_cb:e8:c0
NodeMCU (ESP32):  Espressi_9c:10:f4
"No.","Time","Source","Destination","Protocol","Length","Info"
"1","0.000000000","Espressi_9c:10:f4","Broadcast","802.11","89","Probe Request, SN=8, FN=0, Flags=........, SSID=MumpfelgrumpfSpeicher"
"2","0.120445535","Espressi_9c:10:f4","Broadcast","802.11","89","Probe Request, SN=9, FN=0, Flags=........, SSID=MumpfelgrumpfSpeicher"
"3","1.323472056","Espressi_9c:10:f4","Broadcast","802.11","89","Probe Request, SN=13, FN=0, Flags=........, SSID=MumpfelgrumpfSpeicher"
"4","2.046370508","Espressi_9c:10:f4","Broadcast","802.11","89","Probe Request, SN=19, FN=0, Flags=........, SSID=MumpfelgrumpfSpeicher"
"5","2.287357290","Espressi_9c:10:f4","Broadcast","802.11","89","Probe Request, SN=21, FN=0, Flags=........, SSID=MumpfelgrumpfSpeicher"
"6","3.104791228","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","52","Deauthentication, SN=2543, FN=0, Flags=........"
"7","3.105925282","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","56","Authentication, SN=2544, FN=0, Flags=........"
"8","3.116380626","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=2545, FN=0, Flags=........, SSID=MumpfelgrumpfSpeicher"
"9","3.141584829","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","EAPOL","182","Key (Message 2 of 4)"
"10","3.159028530","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","EAPOL","160","Key (Message 4 of 4)"
"11","3.216329097","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2546, FN=0, Flags=...P...T"
"12","11.036332668","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2547, FN=0, Flags=.......T"
"13","11.036867073","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=2, FN=0, Flags=.p.....T"
"14","11.087400474","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2548, FN=0, Flags=...P...T"
"15","23.294601788","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2549, FN=0, Flags=...P...T"
"16","28.036060788","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2550, FN=0, Flags=.......T"
"17","28.036487340","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=3, FN=0, Flags=.p.....T"
"18","28.086991180","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2551, FN=0, Flags=...P...T"
"19","43.467542112","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2552, FN=0, Flags=...P...T"
"20","53.605245906","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2553, FN=0, Flags=...P...T"
"21","60.035496238","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2554, FN=0, Flags=.......T"
"22","60.035924274","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=4, FN=0, Flags=.p.....T"
"23","60.086494994","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2555, FN=0, Flags=...P...T"
"24","73.778214217","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2556, FN=0, Flags=...P...T"
"25","83.916000554","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2557, FN=0, Flags=...P...T"
"26","94.053735359","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2558, FN=0, Flags=...P...T"
"27","104.191429795","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2559, FN=0, Flags=...P...T"
"28","114.329136866","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2560, FN=0, Flags=...P...T"
"29","124.033893428","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2561, FN=0, Flags=.......T"
"30","124.034341415","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=5, FN=0, Flags=.p.....T"
"31","124.084906004","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2562, FN=0, Flags=...P...T"
"32","134.502447810","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2563, FN=0, Flags=...P...T"
"33","144.639650466","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2564, FN=0, Flags=...P...T"
"34","154.777578202","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2565, FN=0, Flags=...P...T"
"35","164.915126318","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2566, FN=0, Flags=...P...T"
"36","175.052929619","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2567, FN=0, Flags=...P...T"
"37","185.190669812","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2568, FN=0, Flags=...P...T"
"38","189.032634569","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2569, FN=0, Flags=.......T"
"39","189.032934022","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2569, FN=0, Flags=....R..T"
"40","189.033394059","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=6, FN=0, Flags=.p.....T"
"41","189.083965912","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2570, FN=0, Flags=...P...T"
"42","205.363594428","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2571, FN=0, Flags=...P...T"
"43","215.501270108","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2572, FN=0, Flags=...P...T"
"44","225.638953849","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2573, FN=0, Flags=...P...T"
"45","235.776555638","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2574, FN=0, Flags=...P...T"
"46","245.914794872","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2575, FN=0, Flags=...P...T"
"47","253.031227332","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2576, FN=0, Flags=.......T"
"48","253.031677796","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=7, FN=0, Flags=.p.....T"
"49","253.082051578","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2577, FN=0, Flags=...P...T"
"50","266.087345191","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2578, FN=0, Flags=...P...T"
"51","276.225096697","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2579, FN=0, Flags=...P...T"
"52","277.761006015","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2580, FN=0, Flags=.......T"
"53","277.812017058","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2581, FN=0, Flags=...P...T"
"54","296.398528014","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2582, FN=0, Flags=...P...T"
"55","306.535764766","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2583, FN=0, Flags=...P...T"
"56","316.673910047","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2584, FN=0, Flags=...P...T"
"57","318.029814145","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2585, FN=0, Flags=.......T"
"58","318.030268818","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=8, FN=0, Flags=.p.....T"
"59","318.080779521","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2586, FN=0, Flags=...P...T"
"60","336.846437276","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2587, FN=0, Flags=...P...T"
"61","346.984170214","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2588, FN=0, Flags=...P...T"
"62","357.121917884","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2589, FN=0, Flags=...P...T"
"63","367.259608895","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2590, FN=0, Flags=...P...T"
"64","377.397338576","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2591, FN=0, Flags=...P...T"
"65","382.028366739","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2592, FN=0, Flags=.......T"
"66","382.028853037","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=9, FN=0, Flags=.p.....T"
"67","382.079435377","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2593, FN=0, Flags=...P...T"
"68","397.570355509","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2594, FN=0, Flags=...P...T"
"69","407.707932981","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2595, FN=0, Flags=...P...T"
"70","417.845820331","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2596, FN=0, Flags=...P...T"
"71","427.983445671","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2597, FN=0, Flags=...P...T"
"72","438.121087047","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2598, FN=0, Flags=...P...T"
"73","447.026870068","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2599, FN=0, Flags=.......T"
"74","447.027314180","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=10, FN=0, Flags=.p.....T"
"75","447.077914794","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2600, FN=0, Flags=...P...T"
"76","458.294152799","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2601, FN=0, Flags=...P...T"
"77","468.431864978","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2602, FN=0, Flags=...P...T"
"78","478.569570531","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2603, FN=0, Flags=...P...T"
"79","488.707271214","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2604, FN=0, Flags=...P...T"
"80","508.982688071","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2606, FN=0, Flags=...P...T"
"81","511.025617250","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2607, FN=0, Flags=.......T"
"82","511.026097216","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=11, FN=0, Flags=.p.....T"
"83","511.076716426","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2608, FN=0, Flags=...P...T"
"84","513.897922396","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2609, FN=0, Flags=.......T"
"85","513.948570401","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2610, FN=0, Flags=...P...T"
"86","514.921875848","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2611, FN=0, Flags=.......T"
"87","514.972414649","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2612, FN=0, Flags=...P...T"
"88","515.945890201","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2613, FN=0, Flags=.......T"
"89","515.996439751","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2614, FN=0, Flags=...P...T"
"90","516.969896407","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2615, FN=0, Flags=.......T"
"91","517.020461959","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2616, FN=0, Flags=...P...T"
"92","517.993934908","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=2617, FN=0, Flags=.......T"
"93","518.002383782","Espressi_9c:10:f4","Broadcast","802.11","89","Probe Request, SN=22, FN=0, Flags=........, SSID=MumpfelgrumpfSpeicher"
"94","518.011249390","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","56","Authentication, SN=495, FN=0, Flags=........"
"95","518.012106460","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","56","Authentication, SN=495, FN=0, Flags=....R..."
"96","518.025834923","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=........, SSID=MumpfelgrumpfSpeicher"
"97","518.027401313","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"98","518.030144950","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"99","518.032837425","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"100","518.035524145","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"101","518.038217488","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"102","518.041680672","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"103","518.043323173","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"104","518.044753980","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"105","518.047859407","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"106","518.049131657","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"107","518.052310256","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","152","Association Request, SN=496, FN=0, Flags=....R..., SSID=MumpfelgrumpfSpeicher"
"108","518.063024216","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","EAPOL","182","Key (Message 2 of 4)"
"109","518.081021927","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","EAPOL","160","Key (Message 4 of 4)"
"110","518.089070399","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=2, FN=0, Flags=.p.....T"
"111","518.139684044","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=497, FN=0, Flags=...P...T"
"112","538.167040793","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=498, FN=0, Flags=...P...T"
"113","548.304740158","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=499, FN=0, Flags=...P...T"
"114","558.442530881","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=500, FN=0, Flags=...P...T"
"115","568.580217674","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=501, FN=0, Flags=...P...T"
"116","578.717924511","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=502, FN=0, Flags=...P...T"
"117","581.088053946","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=503, FN=0, Flags=.......T"
"118","581.088399940","Espressi_9c:10:f4","Broadcast","802.11","356","QoS Data, SN=3, FN=0, Flags=.p.....T"
"119","581.138894417","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=504, FN=0, Flags=...P...T"
"120","598.891292314","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=505, FN=0, Flags=...P...T"
"121","609.028493678","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=506, FN=0, Flags=...P...T"
"122","619.166360681","Espressi_9c:10:f4","AVMAudio_cb:e8:c0","802.11","50","Null function (No data), SN=507, FN=0, Flags=...P...T"

Access point status:

PC-CC-50-E3-9C-10-F4
CC:50:E3:9C:10:F4
WLAN-Eigenschaften (2,4 GHz)
Signalstärke -71dBm
max. mögliche Datenrate 72 / 72 Mbit/s
aktuelle Datenrate 1 / 13 Mbit/s
WLAN-Standard WLAN-b+g+n / Wi-Fi 4
Frequenzband 2,4 GHz
Kanalbandbreite 20 MHz
Streams1 x 1
WLAN-Eigenschaften
Verschlüsselung WPA2
Signaleigenschaften STBC
QoS (Quality of Service) WMM
Repeaterbetrieb nein

Environment (please complete the following information):

Development Kit:   NodeMCU ESP32 https://joy-it.net/de/products/SBC-NodeMCU-ESP32
Module or chip used:  ESP32-WROOM-32
hal-espressif: 55099bd86fe28ac457d4b0705331be72752c2786
mbedtls: 5765cb7f75a9973ae9232d438e361a9d7bbc49e7
Zephyr: 84c5a469abd2eb943c970543763cb3694f939130 + PR#36378 + PR#36650
Build System:  Zephyr/CMake
Compiler version: xtensa-esp32-elf-gcc (crosstool-NG esp-2020r3) 8.4.0
Operating System:  Linux
Using an IDE?: No
Power Supply:  3.3V

Additional context

bash script used:

#!/usr/bin/env bash
#
# usage esp32_sample.sh path_to_sample board

DIR=${PWD}
BUILD_DIR=${DIR}/build

rm -rf ${BUILD_DIR}
mkdir ${BUILD_DIR}

# Set project specific zephyr directory
# (To be adapted)
zephyr_base="${ZEPHYR_BASE:-../comitberry-zephyr}"

# set zephyr environment variables
source "${zephyr_base}/zephyr-env.sh"

# Set project specific environment
# (To be adapted)
SAMPLE="${1:-${ZEPHYR_BASE}/samples/boards/esp32/wifi_station}"
BOARD="${2:-esp32}"
BOARD_ROOT="${DIR}/zephyr"
export ESPRESSIF_TOOLCHAIN_PATH="${ZEPHYR_BASE}/../zephyr-sdk/xtensa-esp32-elf"
export IDF_PATH=${ZEPHYR_BASE}/../zephyr-hal-espressif

# Configure ESP32 toolchain
export ZEPHYR_TOOLCHAIN_VARIANT="espressif"
export PATH="${ESPRESSIF_TOOLCHAIN_PATH}/bin:${PATH}"

# Configure WIFI credentials
echo -e \
"CONFIG_ESP32_WIFI_SSID=\"MumpfelgrumpfSpeicher\"
CONFIG_ESP32_WIFI_PASSWORD=\"xxxxxxxxx\"
" > ${BUILD_DIR}/wifi_credentials.conf

# Configure additional logging for test
echo -e \
"CONFIG_LOG=y
CONFIG_NET_LOG=y
CONFIG_NET_DHCPV4_LOG_LEVEL_DBG=y
CONFIG_WIFI_LOG_LEVEL_DBG=y
" >> ${BUILD_DIR}/wifi_credentials.conf

# Build
echo -e "\033[1;32mBuilding sample: ${SAMPLE}.\033[0m"
echo -e "\033[1;32m      for BOARD: ${BOARD}\033[0m"
echo -e "\033[1;32mBOARD_ROOT:      ${BOARD_ROOT}\033[0m"
echo -e "\033[1;32mBUILD_DIR:       ${BUILD_DIR}\033[0m"
echo -e "\033[1;32mCurrent working directory is ${DIR}.\033[0m"

cd ${BUILD_DIR}
cmake -D "ESP_IDF_PATH=${IDF_PATH}" -D "BOARD_ROOT=${BOARD_ROOT}" -D "BOARD=${BOARD}" -D "ZEPHYR_MODULES=${IDF_PATH};${ZEPHYR_BASE}/../zephyr-mbedtls" -D "CONF_FILE=${SAMPLE}/prj.conf;${BUILD_DIR}/wifi_credentials.conf" -G Ninja "${SAMPLE}"
ninja

cd ${DIR}

Thank you @sylvioalves for addressing my problem. Unlikely PR#36995 does not help in my case.
Have you done additional changes that are not in the repo?
hal-espressif: f525ee6f468c2c68119731e1453ad72d189a1277
mbedtls: 5765cb7f75a9973ae9232d438e361a9d7bbc49e7
Zephyr:

85abcdf21d8caa25cc170572a9533259bdecb525 (PR#36995)
2e60836ecaf04840e7447014553badb45ad8691d +  PR#36378 + PR#36650 + PR#36995

I (149) esp_image: segment 5: paddr=0001d360 vaddr=40080400 size=02cb8h ( 11448) load
I (161) esp_image: segment 6: paddr=00020020 vaddr=400d0020 size=3d564h (251236) map
I (255) esp_image: segment 7: paddr=0005d58c vaddr=400830b8 size=1199ch ( 72092) load
I (295) boot: Loaded app from partition at offset 0x10000
I (295) boot: Disabling RNG early entropy source...
 (Sorry for last comment - now deleted, I tested the wrong BOARD_ROOT).