Explain PowerApps Licensing Scheme for Citizen Developers

Article Suggestion
New licensing options for PowerApps go into effect on 1 Oct 2019. Many people are confused about how this will affect them as citizen developers or makers. An article which explains the impacts to them (and stays valid over time) would be very useful.
Thanks for your contribution! Sharing is caring.

This would be super useful, I'll give it a try @sympmarc, but to be honest mate I barely understand it myself so someone should look over when I'm done, ;)

I've let this languish because I'm not sure anyone can really explain it. I'm learning different takes on it all the time, which make my prior assumptions incorrect. TBH, I'm not sure we should try to cover it here, as it's bound to change again.

agree, it's a shame that's it's so difficult...

I will take this on. We have guidance done the key doc and I have done and will do a seminar on this.

As a note the licensing will transcend apps and cover flow and even the new fangled power virtual agents ;-)

Awesome. Looking forward to seeing what you come up with.
If you can slant it to citizen devs, that would be great. In other words, not just for admins or someone who needs to understand cost implications: what citizen devs need to know to discuss what they need and why they need it.
Make sense?

Yes.... Just quick riffing here, from the citizen dev angle, first know what you got, what it costs to use it in the various combinations then how to ask for what you need or want now that you know what you get for the money

I think the “why you need a license” in terms of business benefit. I think we’re saying similar things. Have at it!

Got it and on it!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Marc D Anderson<EMAIL_ADDRESS>Sent: Saturday, March 14, 2020 6:35:13 PM
To: MicrosoftDocs/microsoft-365-community<EMAIL_ADDRESS>Cc: Ralph Rivas<EMAIL_ADDRESS>Assign<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/microsoft-365-community] Explain PowerApps Licensing Scheme for Citizen Developers (#13)
I think the “why you need a license” in terms of business benefit. I think we’re saying similar things. Have at it!
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-community%2Fissues%2F13%23issuecomment-599147827&data=02|01||e3cbc9c88a064d112eff08d7c8705879|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637198257146606748&sdata=5S6dmKqbMnEOP6MCFihOsF1KIRsXN%2F4Edv3DEIKswS0%3D&reserved=0, or unsubscribehttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB2OOTQH5JZ5DCDONFZZ54LRHQIDDANCNFSM4IS53D5Q&data=02|01||e3cbc9c88a064d112eff08d7c8705879|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637198257146606748&sdata=Lx2fLI1yHK6NC0HCb7ywcbycGfNENg1I6vda28pjR0w%3D&reserved=0.

I believe I was able to put it in ... someone please confirm the article is there?  Thanks! cc: @sympmarc

@bigpix2000 - I don't see a pull request. Do you need help getting it posted?

Figures .. it is in my Fork.  Need to get it over to the main … yes just a quick procedure via the main interface should help as I am usually doing Code in one of the tools.
Thanks in advance!
From: Marc D Anderson<EMAIL_ADDRESS>Sent: Monday, March 16, 2020 9:17 AM
To: MicrosoftDocs/microsoft-365-community<EMAIL_ADDRESS>Cc: Ralph Rivas<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/microsoft-365-community] Explain PowerApps Licensing Scheme for Citizen Developers (#13)
@bigpix2000https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbigpix2000&data=02|01||794c553ceea243e0c56108d7c9b4b96e|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199650343037499&sdata=xcZ9VMZn76oJWZvRWqv84%2Bd1uK8hCNmmXIoBxmJQDLM%3D&reserved=0 - I don't see a pull request. Do you need help getting it posted?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-community%2Fissues%2F13%23issuecomment-599560808&data=02|01||794c553ceea243e0c56108d7c9b4b96e|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199650343047496&sdata=Cblt3LT%2FEDqJjuV7sKmjJSDyWxGo%2BpokTeoFFhQIosc%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB2OOTXQUALCTYEYFD47RGLRHYYGTANCNFSM4IS53D5Q&data=02|01||794c553ceea243e0c56108d7c9b4b96e|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199650343057493&sdata=RhhtclrconTrzA8RNSz08toRmzkJGsayoXgybxKED3k%3D&reserved=0.

Hi @bigpix2000, create a pull request using this guide here. :)
https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request

on your computer, verify your git config by the way, otherwise your name might not be shown rite in the article, I forgot this with the earlier articles. ;)
verify your local config | git config user.email | if your git email is present you're good to go.. ;)
if not run this:

git config --global user.email<EMAIL_ADDRESS>
make sure the email is the same as your github settings

It is set correctly for what I have been working on of late and my debate is which to use for this purpose so I will stick to my “business one” for now. Otherwise, that part is set.  Thanks!
From: Jimmy Hang<EMAIL_ADDRESS>Sent: Monday, March 16, 2020 9:34 AM
To: MicrosoftDocs/microsoft-365-community<EMAIL_ADDRESS>Cc: Ralph Rivas<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/microsoft-365-community] Explain PowerApps Licensing Scheme for Citizen Developers (#13)
on your computer, verify your git config by the way, otherwise your name might not be shown rite in the article, I forgot this with the earlier articles. ;)
verify your local config | git config user.email | if your git email is present you're good to go.. ;)
if not run this:
git config --global user.email "your<EMAIL_ADDRESS>make sure the email is the same as your github settings
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-community%2Fissues%2F13%23issuecomment-599570336&data=02|01||99ddf4745ee344d4cacd08d7c9b719d6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199660553043324&sdata=%2BDNELoHqSs%2BLKFPyKcmZTpDfyoIPLpJlDw82dYSn6Q4%3D&reserved=0, or unsubscribehttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB2OOTRVYHYB2DT5YSJG4ZLRHY2GLANCNFSM4IS53D5Q&data=02|01||99ddf4745ee344d4cacd08d7c9b719d6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199660553053318&sdata=MB5q8J2EpJlyg6gMlFobfMMlcbknlG81Pwu2%2BwrFhWs%3D&reserved=0.

I think I got it: https://github.com/MicrosoftDocs/microsoft-365-community/pull/119
From: Jimmy Hang<EMAIL_ADDRESS>Sent: Monday, March 16, 2020 9:34 AM
To: MicrosoftDocs/microsoft-365-community<EMAIL_ADDRESS>Cc: Ralph Rivas<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/microsoft-365-community] Explain PowerApps Licensing Scheme for Citizen Developers (#13)
on your computer, verify your git config by the way, otherwise your name might not be shown rite in the article, I forgot this with the earlier articles. ;)
verify your local config | git config user.email | if your git email is present you're good to go.. ;)
if not run this:
git config --global user.email "your<EMAIL_ADDRESS>make sure the email is the same as your github settings
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-community%2Fissues%2F13%23issuecomment-599570336&data=02|01||99ddf4745ee344d4cacd08d7c9b719d6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199660553043324&sdata=%2BDNELoHqSs%2BLKFPyKcmZTpDfyoIPLpJlDw82dYSn6Q4%3D&reserved=0, or unsubscribehttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB2OOTRVYHYB2DT5YSJG4ZLRHY2GLANCNFSM4IS53D5Q&data=02|01||99ddf4745ee344d4cacd08d7c9b719d6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199660553053318&sdata=MB5q8J2EpJlyg6gMlFobfMMlcbknlG81Pwu2%2BwrFhWs%3D&reserved=0.

I think I got it .. https://github.com/MicrosoftDocs/microsoft-365-community/pull/119
From: Marc D Anderson<EMAIL_ADDRESS>Sent: Monday, March 16, 2020 9:17 AM
To: MicrosoftDocs/microsoft-365-community<EMAIL_ADDRESS>Cc: Ralph Rivas<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/microsoft-365-community] Explain PowerApps Licensing Scheme for Citizen Developers (#13)
@bigpix2000https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbigpix2000&data=02|01||794c553ceea243e0c56108d7c9b4b96e|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199650343037499&sdata=xcZ9VMZn76oJWZvRWqv84%2Bd1uK8hCNmmXIoBxmJQDLM%3D&reserved=0 - I don't see a pull request. Do you need help getting it posted?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-community%2Fissues%2F13%23issuecomment-599560808&data=02|01||794c553ceea243e0c56108d7c9b4b96e|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199650343047496&sdata=Cblt3LT%2FEDqJjuV7sKmjJSDyWxGo%2BpokTeoFFhQIosc%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB2OOTXQUALCTYEYFD47RGLRHYYGTANCNFSM4IS53D5Q&data=02|01||794c553ceea243e0c56108d7c9b4b96e|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637199650343057493&sdata=RhhtclrconTrzA8RNSz08toRmzkJGsayoXgybxKED3k%3D&reserved=0.

First pass from @bigpix2000 here:
https://github.com/MicrosoftDocs/microsoft-365-community/blob/master/Community/powerplatformlicensingforcitizendeveloper.md

There’s been some debate elsewhere about the contents of this article. Let’s try to have a constructive discussion about potential improvements here.

As a quick note ... last I heard on the debate was not so much information being incorrect but rather how it affects potential usage and costs going forward.  I am thinking the article could use some "sample cases" to also compare the old versus new to underscore the differences?  I am trying not to make any judgments either.   If something is still unclear, then I definitely look forward to seeing that addressed. Thanks to all who are looking at this!

All quiet on the western front ... my virtual assistant is reminding me daily to follow up so this does not go too long sitting in a uncompleted state.  I know folks are busy with the regular day but if you anticipate participating in the discussion, perhaps just reply with a "here" for now and we can work through all our schedules more efficiently.  I have wherewithal to be directed so do not feel committed to any direct work by sounding off.  Thanks in advance!

Wanted to comment on actual realistic licensing of Flow, and this is where it gets quite technical.
The rules
While licensing talks of Standard and Premium, and premium are licensed per flow or per user.  In practice, Flow licensing should be considered according to usage, and in this case - how is the flow triggered.
Automated Flow
A flow that is triggered by some sort of webhook or polling event is called an Automated Trigger Flow, this includes SharePoint created/updated, Exchange email received.  When a flow is running with an automated trigger - it can only access the flow owner's connections, so it uses premium license on the Flow owner's account.  HTTP Request trigger also is considered an automated trigger.
Instant Flow
A flow that's triggered by the end user directly, is called an Instant Trigger Flow.  And it runs in the context of the current user, this includes triggers such as "Flow Button", "Power Apps Trigger" and "SharePoint for selected item".  When a new user first runs these flows - the dialog appears to ask the user to authenticate connections before running.  (this auth may be silent if pre-granted by administrator).  The flow runs in that user's context.
So licensing of Flow becomes:

Use Standard connectors in Office 365 licenses when you can.

If Automated Trigger - buy premium for the Flow Owner.  And watch number of runs in case we need to purchase additional API run capacity.  (this is potentially a couple of licenses only)

If Instant Trigger - buy premium for each user that will invoke this flow.  (this potentially scales out a lot)

Of special note - the most common Instant Trigger is the Power Apps trigger, but any Power App that calls a Power Apps Trigger must have premium license for the premium connector used in the Flow, and the Power Apps premium license for the end user includes premium flows used as part of that Power App.  (So it means in the scenario of Power App Trigger - additional purchases of flow licensing is not necessary, since it must be included in the Power Apps premium license).

Complications
Why is this all so hard - understand that Flow is LogicApps - which is consumption based, but it must bridge between the serverless, and other COG based, $/user systems like CDS.  Office 365 is also per-user based, but Office license is vastly simplified due to the Office Seeded License.  So here we are - premium Flow must be licensed accordingly per-user.
A simple discussion of flow licensing without practical examples that differentiates the invocation and thus the actual "hey where's the license for this run" tends to overblown flow licensing costs.  In reality, we should purchase flow license based on our environment needs.  because we only need a good handful of premium accounts to run the premium automated flows.
Simply: If 5000 people writes to a SharePoint list, and there's a SharePoint automated trigger that runs a premium flow, you only need 1 premium license on that flow.
Why buy premium
One premium flow license per month packs a lot more value than running multiple LogicApps that does the same thing.  Automated trigger check polling of SharePoint lists are free in Flow, but costs a small amount in LogicApps per trigger check.
There are other bigger reasons to get more premium flows - particularly, if using AI Builder - the bundle price may be appealing.  Or if high number of flow runs are used - we may hit API limit and need to purchase additional API capacity.  For best environment dev/test/production practices - the service accounts that the flows use should have premium license attached.
Another note is that some products have a per-user license, particularly CDS, so while we are technically able to use 1 premium license to write to CDS - this would be a multiplexing violation of the CDS license.  Other products does not have this requirement.
These triggered-based licensing rules are verified by many many discussions and clarifications with the product team owners, CVP and PMs directly, and is accurate as far as I know of 20/03/2020.

TLDR US$15/m

This is perfect and exactly helps with the article! To be sure I left out all the judgement and other bits like what folks should use which were part of my love session but seeing that same discussion here with scenarios certainly brings it home. A lot of this would replace the more (overly?) simplistic next steps section with a deep dive for practical discussion.  Now to see how to make that work. Thank you!

@sympmarc , I want to add @johnnliu as contributing author as I will be lifting some of this pieces wholesale into the updated article.  Do you have the mark down parameters handy so I can add them as part of my edits?  Thanks!

@bigpix2000 You can add @johnnliu at the bottom where you've got yourself listed as Principal Author. I'm not sure if we can have multiple authors up top in the YAML. @JoanneHendrickson?

Something like this I was thinking at the bottom?
Principal author: Ralph Rivas
Principal contributor: [John Lui](johns linked in here)
From: Marc D Anderson<EMAIL_ADDRESS>Sent: Tuesday, March 24, 2020 8:11 AM
To: MicrosoftDocs/microsoft-365-community<EMAIL_ADDRESS>Cc: Ralph Rivas<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/microsoft-365-community] Explain PowerApps Licensing Scheme for Citizen Developers (#13)
@bigpix2000https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbigpix2000&data=02|01||3839143d77d6486195d008d7cff4c97b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206522560253882&sdata=sAA8Sbm3XGHBPbyOV1Jobd0W39ABC5gyFdPrXDCgLBE%3D&reserved=0 You can add @johnnliuhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjohnnliu&data=02|01||3839143d77d6486195d008d7cff4c97b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206522560263887&sdata=Lg2s6UmwVNrajscm5Y1dXG7Wvm6b5Wk%2BTZPi0J7wIi4%3D&reserved=0 at the bottom where you've got yourself listed as Principal Author. I'm not sure if we can have multiple authors up top in the YAML. @JoanneHendricksonhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJoanneHendrickson&data=02|01||3839143d77d6486195d008d7cff4c97b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206522560273892&sdata=MCPBcmioAwFejmbo7qBN5%2Fwi8oW1YCuL7VMXJPcUgOw%3D&reserved=0?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-community%2Fissues%2F13%23issuecomment-603229208&data=02|01||3839143d77d6486195d008d7cff4c97b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206522560283903&sdata=7yOTEyO%2FuMEOHLT%2FAr4PLFG0WSHNhgSNpHzz2Rxv5fM%3D&reserved=0, or unsubscribehttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB2OOTQHFOZB2ESYPU36PKTRJCWN5ANCNFSM4IS53D5Q&data=02|01||3839143d77d6486195d008d7cff4c97b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206522560293914&sdata=9E9tiliac6iv5nF4zWXomydIIUl%2FuzYzLaTQrNJFJf4%3D&reserved=0.

Yup, that's what I meant.

@johnnliu ... what does COG refer to in your notes?  Cognitive?  Cost something?  Just checking as I am getting this in.  Thanks in advance!

The item I am unsure about is the definition of COG as I do not want to leave any acronym undefined before using it (at least once) ....  I am also thinking more examples but I also want to give credit to those who contribute them. thanks!  cc: @sympmarc  @johnnliu

grrr ... how did the one spelling error get through (maybe more than one :( )   ...  waiting for it to merge and I will clean up thanks

Yup, that's what I meant.

On that note, after you get the last piece in, I can do a PR and fix that .... Hopefully @johnnliu will chime in with his Linked in for the one spot as well as look at my Acronym question :)

I did merge your PR. You can issue multiple PRs that build on each other, I think. @johnnliu is on the other side of the planet (Sydney), so he might be sleeping. :)

That’s right … time flew by so missed his window …
Thanks!  Will make the mini fixes
From: Marc D Anderson<EMAIL_ADDRESS>Sent: Tuesday, March 24, 2020 12:44 PM
To: MicrosoftDocs/microsoft-365-community<EMAIL_ADDRESS>Cc: Ralph Rivas<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/microsoft-365-community] Explain PowerApps Licensing Scheme for Citizen Developers (#13)
I did merge your PR. You can issue multiple PRs that build on each other, I think. @johnnliuhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjohnnliu&data=02|01||158cefc0366b4309810f08d7d01ae84f|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206686286530902&sdata=XK683JQV%2FPcPkhrbnDYDvoSZfrcFGICdVep5JPYSvfQ%3D&reserved=0 is on the other side of the planet (Sydney), so he might be sleeping. :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-community%2Fissues%2F13%23issuecomment-603400757&data=02|01||158cefc0366b4309810f08d7d01ae84f|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206686286540883&sdata=URfPoTPwpJe86xKPiaQC%2FFq%2BNzkz%2F7KsQJGBzMlSlXI%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB2OOTQQQDRB3ICMMQVTUT3RJDWNFANCNFSM4IS53D5Q&data=02|01||158cefc0366b4309810f08d7d01ae84f|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206686286550864&sdata=4fDNyNI2jjfU9wssC3S%2FFkl2Y%2BhKDHkBSxeYc4DhkwA%3D&reserved=0.

Done …. Building is busy but should be there soon ….
From: Marc D Anderson<EMAIL_ADDRESS>Sent: Tuesday, March 24, 2020 12:44 PM
To: MicrosoftDocs/microsoft-365-community<EMAIL_ADDRESS>Cc: Ralph Rivas<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/microsoft-365-community] Explain PowerApps Licensing Scheme for Citizen Developers (#13)
I did merge your PR. You can issue multiple PRs that build on each other, I think. @johnnliuhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjohnnliu&data=02|01||158cefc0366b4309810f08d7d01ae84f|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206686286530902&sdata=XK683JQV%2FPcPkhrbnDYDvoSZfrcFGICdVep5JPYSvfQ%3D&reserved=0 is on the other side of the planet (Sydney), so he might be sleeping. :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-community%2Fissues%2F13%23issuecomment-603400757&data=02|01||158cefc0366b4309810f08d7d01ae84f|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206686286540883&sdata=URfPoTPwpJe86xKPiaQC%2FFq%2BNzkz%2F7KsQJGBzMlSlXI%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB2OOTQQQDRB3ICMMQVTUT3RJDWNFANCNFSM4IS53D5Q&data=02|01||158cefc0366b4309810f08d7d01ae84f|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637206686286550864&sdata=4fDNyNI2jjfU9wssC3S%2FFkl2Y%2BhKDHkBSxeYc4DhkwA%3D&reserved=0.

So how is it looking for folks following this thread?    Thoughts?

Thanks all who helped with this!!

@bigpix2000 - Sorry I haven't replied. I appreciate all your effort on this. If there are any issues with the content, the community shall speak!
I'll close this isses, since we have the article in place.


[WIP] Implement new UI

Fixes #5
Todo

[ ] Default component should include dash

@alexspeller apart from some minor pointers, what do you think? The next step IMO would either be adding tests or looking at the build process (using a custom resolver vs. actually 'building' the app and putting in an iframe)..

It looks really good - been thinking about the build process and building the app for real is probably the only real solution if we want to support a lot of stuff, i.e. addons that require native software to build (scss etc).

Agreed. So next major iteration is a full build + router support :-)


Strong mq probe

Add probe support for the strong-mq npm module.

We will do a full code review when we merge the adapter branch back into master.


502 Bad Gateway Error

@alexander0042 Looks like there is a server problem.
Logger: homeassistant.config_entries
Source: config_entries.py:1133
First occurred: 23:38:02 (2 occurrences)
Last logged: 23:39:10
Config entry 'PirateWeather' for pirateweather integration not ready yet: 502, message='Bad Gateway', url=URL('https://api.pirateweather.net/forecast/7cK7GnUK7Z93nZikmEBuVaU43ejP0I0WsosvwxFf/46.42938954957045,26.409193575382236?units=si'); Retrying in background

Apologies for this- in trying to improve the temperature min/max values(https://github.com/alexander0042/pirateweather/issues/5), I ended up introducing a new bug when it was almost, but not quite midnight! Corrected and should be working again now!

@alexander0042 Yes working now! No problem I just reported in case did go unnoticed 😊

Great! Happy it's working again, and let me know if you run into any other issues


[BUG] Arbitrum Bot Deposit successful but no visibility on the API and MyBots Page

BUG:  User deposited into the Aave yield chaser bot https://arbiscan.io/tx/0x6365a29f80593905f2f8fa3d68c237b465365dadc15d505cf6fbd1fb80e416c1
but the bot does not show up on the API And the  Bot lists show the old amounts.

https://github.com/VolumeFi/palomabot/pull/508Fixed with


Initial port of Poker to plain Java

Simple port of Poker to Java. Playable with Java 8+ with no external dependencies.

Thank you 🃏!


How to Implement ThemePicker for CAGradientLayer with property: _colors ?

Currently there is no common way to implement a picker for array

Example:


How to get the date time while dropping a file/how to give start date(our own date time) while dropping a file based on mouse move?

I would like to know,
How to give a custom or our own date time while dropping a file in Timeline ?
If we give Start date and End date , before dropping that file it is working fine. But i would like to drop a file based on mouse move.
In Timeline, dropped file is able move from one date time to another date time.
But I need to drop a file based on mouse move.
Please help me in this scenario.
Thanks in advance.

I think your question is more a question for the vis library and not the angular wrapper.


Model arguments for get_convnext_model.

Hi there.
May you provide the arguments for "get_convnext_model" function to produce similar models to the lists here:
https://github.com/facebookresearch/ConvNeXt#results-and-pre-trained-models
In particular, I need them to generate "convnext_base_1k_224" and "convnext_xlarge_21k_1k_224".

Refer here: https://github.com/sayakpaul/ConvNeXt-TF/blob/main/models/model_configs.py


Functionality to download attachment/file from messages using token

Enhancement/Question
TODO:
Functionality to download attachment/file in a message using the user token
Is there already any functionality to do this using the token we can download the file/attachment in a message?

If your app's bot user has permission to access a file, your app can download file data by accessing url_private_download etc. with Authorization: Bearer xoxb-*** header.
This SDK doesn't provide a handy method for downloading data but you can do that with any HTTP clients. This SDK depends on okhttp. Using the library may be quick.

I've added a code snippet demonstrating how to do that. Hope you find this helpful. https://github.com/slackapi/java-slack-sdk/commit/1712133988264cccc0c180c89d4cf2a76e0f30e7

@kumbhaj Is the above information helpful for you? Let me know if you have anything further to ask here. Otherwise, could you close this issue now?

Thank you. Yes, Please close it


Compact snapshots view

It would be nice if the snapshots command had an option to give a compact view of the snapshots. Currently, it lists all the directories passed to the backup command when the snapshot was made. When there is a dozen of these in each snapshot, the screen real estate is very quickly wasted. If there was a --compact option that listed just the first line, without the directory list, it would be much easier to scan what's available in the repository.

Good idea, I've just merged your PR.


[bugfix] Fix the incorrect conditional statement

Fix the problem that occurs when deleting "integrationConfig"
and re-creating it while the controller is still running.
Changes

Submitter Checklist

[ ] Docs included if needed
[ ] Tests included if needed
[x] Follows the good commit messages standard

/test


Intermittent Travis Build failures when connecting to clair database

Describe the bug
Travis builds are failing while connecting to clair database for vulnerability scan
To Reproduce
Any branch, PR or master build
Expected behavior
Build should run without any socket connection refused errors.
Server (if applicable, please complete the following information):
https://travis-ci.org/github/pegasystems/docker-pega-web-ready/builds/773888390
Additional context
This seems to be a known issue with clair. Use HOSTIP while starting the server.
https://github.com/arminc/clair-scanner/issues/63

Closing it as the build process is now converted to GitHub Action workflows.


Security - Implementation

Thanks for putting this online, I did try to implement this in my project, Sending JWT tokens as my Header.
for some reason, I am getting 403 forbidden error.  I am not sure, what I am doing wrong or if I am missing any configuration. I have put the project on git hub, If someone can point me what the issue is.
https://github.com/vivdso/SpringAuthentication
Please assist.

Please give some more information. Which request returns the 403?
Take a look at your WebSecurityConfig. There are some things missing that I have in my WebSecurityConfigurerAdapter. Perhaps you get a better understanding of how this demo works if you take a look at the video I linked in the Readme.

Sure,  I will look at it.
Any API call fails, I have two of them below is the API calls
http://localhost:8080/auth method post Content-Type appliction/json body:{"username":"user","password":"sample"} Response should be a jwt token
Try the autheticated url: http://localhost:8080/order
Header "Authorization":"{$jwtToken from previous step}"
Actual Result: :( Error : 403 forbidden, this should be fully authenticated and should let the user access this api.
Expected Result: "Hello here is my order"

Shouldn't the header be set to:
Authorization: Bearer {$jwtToken}

I'm not sure if this detail is important or not, but from my understanding of the specification, JWTs should be declared as Bearer tokens in the Authorization header.

I didn't find the need of the bearer scheme in any specification but it seems to me that it is the typical way to mark a bearer token. I will adapt it to the project with another ticket.

The current version did not work for me when trying to access it from another domain. It produced the following error:

Failed to load http://localhost:8080/auth: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8081' is therefore not allowed access.
I spent quite some time figuring out what to do here. I found a solution and have added this to WebSecurityConfig.java:
This then fixed it for me:
@Bean
   public CorsFilter corsFilter() {

       UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
       CorsConfiguration config = new CorsConfiguration();
       config.setAllowCredentials(true); // you USUALLY want this
       config.addAllowedOrigin("*");
       config.addAllowedHeader("*");
       config.addAllowedMethod("OPTIONS");
       config.addAllowedMethod("HEAD");
       config.addAllowedMethod("GET");
       config.addAllowedMethod("PUT");
       config.addAllowedMethod("POST");
       config.addAllowedMethod("DELETE");
       config.addAllowedMethod("PATCH");
       source.registerCorsConfiguration("/**", config);
       return new CorsFilter(source);
   }

Credit to: https://stackoverflow.com/questions/36809528/spring-boot-cors-filter-cors-preflight-channel-did-not-succeed
Thought I'd share as CORS issues seem to be pretty common all around.


compatibility

What is the compatibility level of defender-control with ReactOS(https://reactos.org/) (windows foss version)?

I haven't experimented with ReactOS before. Since it's made to be binary compatible with Windows programs, I'd imagine it doesn't even come with Windows Defender?


PER country page - Add PDF export

Old title
PER country page - EXPORT TO PDF button: Add a button and functionality to create a PDF of the visuals on the country page, in particular for the private one
User Story

As an authenticated user I should be able to export the PER Country page view (Preparedness tab) as a PDF

Functional Requirements

[ ] IFRCGo/go-api#1998
Frontend to create a new export page for PER Country Preparedness tab
Frontend to add a button to create a PDF export
Frontend to download the exported pdf

[ ] The x-axis labels of Total Benchmark Summary are missing in PDF export but it is visible in NS Preparedness page under Components by Area.

cc @udaynwa

[ ] The page break might cut the visualization. e.g. on page 6-7 : https://dsgofilestorage.blob.core.windows.net/api/pdf-export/PER Costa Rica-preparedness-Assessment (2024-03-26 15-33-05).pdf


Multiple http methods can be assigned to a resource.

Currently we can assign multiple http methods to a resource in ballerina. as follows :
`
import ballerina.net.http;
@http:configuration {basePath:"/echo"}
service<http> echo {

    @http:POST{}
    @http:Path {value:"/"}
    @http:GET {}
        resource echo (message m) {
        http:convertToResponse(m);
        reply m;
    }
}

`
But in reality having GET and POST on the same resource does not make sense as they are meant to serve different purposes. GET is get retrieving data which does not modify data. POST is for modifying the data.

Marking issue as invalid as a ballerina resource can be assigned to multiple http methods.


Reshape repository layout and naming

While we want to change the namespaces to be more OSS compliant, we need to go through two phases:

[ ] Change repository layout #116
[ ] Change namespaces and nugets name #117

cc @crntn @gboucher90 @adriancole


Pull upstream changes

Pulls upstream changes from https://github.com/crossplane/provider-template

The crossplane and crossplane-tools Go module upgrades are breaking the user/team referencing feature in the provider. We need to cancel this PR in favour of https://github.com/kaessert/provider-github/pull/22/commits/66f9342953b8d933b4321d82ef10494824046885 from https://github.com/kaessert/provider-github/pull/22. We'll address the mod upgrades later, in a separate PR.


Fix docstring of CLIP model

Summary:

Fix typo and missing description for layers
Test plan:

Fixes #{issue number}

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (2cbab1f) 75.61% compared to head (561f714) 75.61%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #523   +/-   ##
=======================================
  Coverage   75.61%   75.61%
=======================================
  Files         234      234
  Lines       16122    16122
=======================================
  Hits        12191    12191
  Misses       3931     3931

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


telegraf raid plugin

这个 PR 实现什么功能/修复什么问题:
feature: telegraf raid plugin

是否需要 backport 到之前的 release 分支:
release/3.4
/cc @swordqiu @zexi @zhaoxiangchun
/are host

Codecov Report

Merging #8325 into master will decrease coverage by 2.52%.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##           master   #8325      +/-   ##
=========================================
- Coverage    6.21%   3.69%   -2.53%
=========================================
  Files         759     303     -456
  Lines      117257   61998   -55259
=========================================
- Hits         7289    2289    -5000
+ Misses     109309   59551   -49758
+ Partials      659     158     -501

Flag
Coverage Δ

#aFlag
3.69% <0.00%> (-2.53%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/hostman/system_service/system_service.go
0.00% <0.00%> (ø)

pkg/hostman/system_service/telegraf.go
0.00% <0.00%> (ø)

pkg/util/qemuimg/consts.go

pkg/util/atexit/atexit.go

pkg/mcclient/options/cloudgroup.go

pkg/multicloud/aws/loadbalancerbackendgroup.go

pkg/keystone/models/user_option.go

pkg/multicloud/aws/keypair.go

pkg/util/qemuimg/init.go

pkg/mcclient/options/cloudpolicy.go

... and 446 more

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 95cd5d5...225f3b2. Read the comment docs.

/retest

/lgtm
/approve


Fix to links in the tutorial

Updated data modelling link in docs

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

Thanks!


antlr4-maven-plugin:4.12.0  produces Java sources with illegal unicode escapes under Windows if a package name begins with 'u'

Description
ANTLR 4.12.0 produces Java sources with illegal unicode escapes under Windows if a package name begins with 'u'
https://github.com/antlr/antlr4/issues/4128
Steps to Reproduce
On Windows 10 Pro, Command Line:
mvn clean install -DskipTests -Prelease -pl :ontop-mapping-core
Expected behavior: [What you expect to see]
Build success without errors
Actual behavior: [What actually happens]
Maven build errors:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project ontop-mapping-core: Compilation failure: Compilation failure:
[ERROR] /C:/dev/github/ontop/mapping/core/target/generated-sources/antlr4/it/unibz/inf/ontop/spec/mapping/parser/impl/TurtleOBDABaseVisitor.java:[1,23] illegal unicode escape
[ERROR] /C:/dev/github/ontop/mapping/core/target/generated-sources/antlr4/it/unibz/inf/ontop/spec/mapping/parser/impl/TurtleOBDALexer.java:[1,23] illegal unicode escape
[ERROR] /C:/dev/github/ontop/mapping/core/target/generated-sources/antlr4/it/unibz/inf/ontop/spec/mapping/parser/impl/TurtleOBDAParser.java:[1,23] illegal unicode escape
[ERROR] /C:/dev/github/ontop/mapping/core/target/generated-sources/antlr4/it/unibz/inf/ontop/spec/mapping/parser/impl/TurtleOBDAVisitor.java:[1,23] illegal unicode escape

Example Generated Sources:
// Generated from it\unibz\inf\ontop\spec\mapping\parser\impl\TurtleOBDA.g4 by ANTLR 4.12.0
package it.unibz.inf.ontop.spec.mapping.parser.impl;

Reproduces how often:
Always
Versions
Ontop: 5.1.0-SNAPSHOT (7/7/2023)
Windows: 10 Pro
Maven: 3.6.2
Java: 13.0.2
Additional Information
This can be resolved by downgrading the antr4-maven-plugin to 4.11.1
mvn clean install -DskipTests -Prelease -pl :ontop-mapping-core "-Dantlr4-maven-plugin.version=4.11.1"
Example Generated Sources:
// Generated from java-escape by ANTLR 4.11.1
package it.unibz.inf.ontop.spec.mapping.parser.impl;

The ANTLR4 issue indicates this will be fixed in ANTLR 4.13.1 (unreleased). It is still present in the ANTRL 4.13.0 release.

Hi Thomas, thanks for the detailed report of the issue.
I suggest waiting for the next version of ANTLR to be released (4.13.1 is still not out).


fix:support extension/customization of netty origin for ssl connections

The changes here will enable customization/extension of the Netty components. Another approach to address #735

@carl-mastrangelo @artgon could you please take a look at this?


Component idasen_desk_controller requires component esp32.

Hey, this is my configuration:
esphome:
  name: idasen
  platform: ESP32
  board: esp32dev

external_components:
  - source<EMAIL_ADDRESS>

esp32_ble_tracker:
ble_client:
  - mac_address: "00:00:00:00:00:00"
    id: idasen_desk

idasen_desk_controller:
  ble_client_id: idasen_desk
  only_up_down_command: false

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "..."

wifi:
  ssid: "..."
  password: "..."
  fast_connect: true

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Idasen Fallback Hotspot"
    password: "..."

captive_portal:

When validating the configuration, I get the following error:
INFO Reading configuration /config/esphome/idasen.yaml...
Failed config

idasen_desk_controller: [source /config/esphome/idasen.yaml:16]

  Component idasen_desk_controller requires component esp32.
  ble_client_id: idasen_desk
  only_up_down_command: False

Do you have any idea why that might be? Any help is appreciated, thanks :D

@joshuajeschek were you able to fix this issue? I have the exact same error, and the same config as yours which I followed from the setup instruction. Not sure where the issue is...

It works now, but I have no idea how i fixed it! I think i reinstalled it on the esp device at some point and maybe also reloaded home assistant...
But now I have another problem, the device won't connect to my desk. I always get code 133, which really helps with debugging (not)

Ok, got it fixed too. Noticed there was an update to my ESPHome, updated it to 2021.10.3 and don't get the validation error anymore. But now, yes I am getting the same error as yours, code 133 when trying to connect to my desk.

yeah, really weird. looks like it can't keep the connection up.
Have you also pressed the pairing button on the desk?For me, there is this error when I press the button (after it connected successfully):[W][idasen_desk_controller:104]: Error reading char at handle 26, status=5`
Do you get the same?

This issue has resolved itself, but I have run into a new issue, described in #42
@sud33p Do you have the same issue as I described there?


Write downloaded model files atomically

Avoiding scenarios where one processes may be reading a file that is being written by another one by only moving the file to the final location after it has been fully written.

@naktinis, does this PR solve a currently known problem? In particular, it would be great to know if it solves any of the many many open issues concerning NLTK download errors.

@ekaf this is an attempt to solve an issue we are having despite installing directly from develop branch (which already includes this unreleased fix: https://github.com/nltk/nltk/commit/69635b464f2adfa56e4f2ba2db7e2a72d11ac1ba).
The error we get almost every time is Error with downloaded zip file.
Our scenario is that we launch multiple processes simultaneously in an environment where there are no models downloaded yet.
So it appears the following sequence is quite likely in such circumstances (and my guess is that it's causing our error):

process A checks if the model is downloaded – it is not, so clears the file and starts the download
process B checks if the model is downloaded – it still is not, so clears the file and starts the download too
process A finishes the download
process A opens the model file – but process B is writing to it
process A tries reading the content of the model file and fails because it is not fully downloaded

I couldn't see any directly related issues currenlty reported, but if you have any that seem relevant, I'm happy to take a look. I can also report this issue separately to have it associated with this PR if that's helpful.

There have been many issues related to downloading and zip files.
Searching for "download" in issues yields this long list. Most are closed, but problems keep returning, so it would be really great if your solution fixed something already seen.
Otherwise, please open a new issue to describe your specific problem.

@ekaf I went through all open issues mentioning "download" and couldn't find anything obviously matching this, so I created an issue that includes a script to reproduce this: https://github.com/nltk/nltk/issues/3248.

Thanks @naktinis for the issue and the test script.  Your scenario seems plausible, because the NLTK downloader dates back to a time where running multiple parallel processes was less common than now.
But given the large numbers of users who have had problems with downloading NLTK data packages, it seems surprising that none of them had similar errors. This would mean that you are downloading in a different way from everybody else, and I wonder what that could be?
Hopefully, some users with download problems will try your solution, and see if it works for them.

Here's a completely untested suggestion by Copilot. The proposed lock seems reasonable, so given the severity of the problem, it might be worthwile to consider:
To prevent downloading multiple copies of the same file in parallel, you can use a lock mechanism. Here is a suggested modification to the nltk/downloader.py file:
import threading
download_locks = {}

class Downloader:
    # Other methods...

    def _download_package(self, info, download_dir, force):
        lock = download_locks.setdefault(info.id, threading.Lock())
        if not lock.acquire(blocking=False):
            yield ErrorMessage(info, f"Download of {info.id} is already in progress.")
            return

        try:
            yield StartPackageMessage(info)
            yield ProgressMessage(0)

            # Do we already have the current version?
            status = self.status(info, download_dir)
            if not force and status == self.INSTALLED:
                yield UpToDateMessage(info)
                yield ProgressMessage(100)
                yield FinishPackageMessage(info)
                return

            # Remove the package from our status cache
            self._status_cache.pop(info.id, None)

            # Check for (and remove) any old/stale version.
            filepath = os.path.join(download_dir, info.filename)
            if os.path.exists(filepath):
                if status == self.STALE:
                    yield StaleMessage(info)
                os.remove(filepath)

            # Ensure the download_dir exists
            os.makedirs(download_dir, exist_ok=True)
            os.makedirs(os.path.join(download_dir, info.subdir), exist_ok=True)

            # Download the file.  This will raise an IOError if the url
            # is not found.
            yield StartDownloadMessage(info)
            yield ProgressMessage(5)
            try:
                infile = urlopen(info.url)
                with open(filepath, "wb") as outfile:
                    num_blocks = max(1, info.size / (1024 * 16))
                    for block in itertools.count():
                        s = infile.read(1024 * 16)  # 16k blocks.
                        outfile.write(s)
                        if not s:
                            break
                        if block % 2 == 0:  # how often?
                            yield ProgressMessage(min(80, 5 + 75 * (block / num_blocks)))
                infile.close()
            except OSError as e:
                yield ErrorMessage(
                    info,
                    "Error downloading %r from <%s>:" "\n  %s" % (info.id, info.url, e),
                )
                return
            yield FinishDownloadMessage(info)
            yield ProgressMessage(80)

            # If it's a zipfile, uncompress it.
            if info.filename.endswith(".zip"):
                zipdir = os.path.join(download_dir, info.subdir)
                # Unzip if we're unzipping by default; *or* if it's already
                # been unzipped (presumably a previous version).
                if info.unzip or os.path.exists(os.path.join(zipdir, info.id)):
                    yield StartUnzipMessage(info)
                    for msg in _unzip_iter(filepath, zipdir, verbose=False):
                        # Somewhat of a hack, but we need a proper package reference
                        msg.package = info
                        yield msg
                    yield FinishUnzipMessage(info)

            yield FinishPackageMessage(info)
        finally:
            lock.release()
            del download_locks[info.id]

This code uses a dictionary of locks to ensure that each file is only downloaded once at a time, preventing duplicate parallel downloads.k

@naktinis, sorry for my now deleted suggestion by Copilot about a lock mechanism. It proved useless, and further dialog with Copilot was frustrating and a complete waste of time.

Once this logic is in place (ensuring atomic file moves), we could guarantee that the file in the final destination is written after complete download (and not some interrupdated half-download). Then we could have an if os.path.isfile(model_path) could give better guarantees that we don't need to retry the download.
The only theoretical issue would be if that complete download got corrupted in transit (network or disk errors), but then we could use the force=True or on this hopefully rare scenario simply clean up the model and retry.
Finally, if we want to avoid double downloads (if we start a service with multiple nltk processes that all try to download), we could introduce locks on the temporary file. We'd probably need some platform independent library like https://pypi.org/project/filelock/ (haven't tried this myself yet, only linux flock).

The real problem is to avoid multiple useless downloads of the same file, because script kids can use this vulnerability to launch a distributed attack on the download servers.
Writing files atomically makes the problem worse, because it would be preferable that these useless downloads fail. So I am completeletely opposed to your solution, and would personally reject it. Maybe other NLTK developers have a different viewpoint though.

What I tried to explain in my comment above is that atomic writing can go together with locking. It would work like this:

try to obtain a lock on /model-dir/model.tmp
if the lock can not be obtained, wait for the lock to expire (after we eventually get the lock, check if the final target already has the file - meaning another process properly downloaded it there)
if the lock can be obtained (assuming the final target does not exist yet), download to /model-dir/model.tmp
when the download finishes atomically move /model-dir/model.tmp to /model-dir/model

If for some reason thousands of concurrent workers are launched, step 2 should prevent simultaneous downloads.

Thanks @naktinis. Yes, I agree that once a working lock is in place to prevent useless multiple downloads, then writing files atomically could be a nice complement. But the first goal is to ensure that users only download any package once.
I have tried various approaches to locking, but none that worked across multiple Processes or threads.

Have you tried https://pypi.org/project/filelock/ yet?
Documentation:
https://py-filelock.readthedocs.io/en/latest/
Example (should work across processes; they even have a video demo in the documentation page):
from filelock import Timeout, FileLock

lock = FileLock("high_ground.txt.lock")
with lock:
    with open("high_ground.txt", "a") as f:
        f.write("You were the chosen one.")

Btw, I'm guessing it's fine to have the lock on the tmp file itself and we probably don't need an extra .lock file. As long as the tmp file name is shared across processes (and not uniquely generated by each process).

Thanks @naktinis, but I prefer not to add yet another dependency. Python already has an RLock mechanism that solves #3248,
When you only download each file once, there is no race condition. Then I'm not sure that writing files atomically has any utility.

Thanks @naktinis, but I prefer not to add yet another dependency. Python already has an RLock mechanism that solves #3248,
When you only download each file once, there is no race condition. Then I'm not sure that writing files atomically has any utility.

@naktinis, now #3327 uses a multiprocessing Manager dictionary of booleans to emulate locks. Would you consider that, to prevent your race conditions?

We had to stop using nltk in production. However, if the locking prevents failures with the test script here https://github.com/nltk/nltk/issues/3248 (assuming you can reproduce the failure with the code version before the fix), then it should be fine.

@naktinis, in the current NLTK version 3.9.1, the tokenizer no longer uses pickles, so the data package to download is now punkt_tab.
So your test script in #3248 first needs to be updated to download punkt_tab instead of punkt.
But even then, without a fix, race conditions cause a variable number of LookupErrors.
After PR #3327 however, there is no race condition because the package is only downloaded once.

Great! Then I guess the only other case is if the downloading processes are not launched with multiprocessing from the same parent process but independently from the operating system. But if this already solves a class of problems, then may be good to go.

Thanks @naktinis! Indeed, in case the parallel processes are launched directly from the OS, it would be safer to write the files atomically.  Or maybe some robust filelock can be implemented.


error: Helium API Error request error

helium-ledger-cli-v2.2.3-x86-64-macos % ./helium-ledger-cli pay xxxxxxxxx 1
Communicating with Ledger - follow prompts on screen
Ledger running Helium App v2.2.4

helium-ledger/2.2.3
error: Helium API Error request error

Balance check seems to work
v2.1.0 also fails with a error: Getting Fees or error: Helium API Error

API was down


Adds rsync access whitelist, and allows CIRA rsync access to PT on their sites

Adds a whitelist (via "host allow") to the rsyncd configurations for the NPAD slice. It also checks to see if the node being operated on is at one of the CIRA sites, and if so whitelists an IP prefix for them, giving access to the [paris-traceroute] module.
These same basic updates were made 8 or 9 months ago, but unfortunately they were done in a branch other than master and a new iupui_npad slice package built from that branch. In the meantime, we deployed other changes to this repo and built another slice package, using the master branch, and not knowing that the previous slice package was built from something other than master.  The effect of this was that the currently (and only partially deployed) iupui_npad slice package lost these changes which this PR aims to restore.
This PR fulfills the spirit of the previous changes, but does so in a slightly different manner.

LGTM.


Add Iterator\reduce

Maybe also Iterator\toArray(Iterator $iterator): Promise<array>.

Closing until there's an actual need for it.


Linker Error: Undefined symbol: protocol descriptor for ObjectMapper.BaseMappable

I'm getting the linker error below with ObjectMapper 3.5.2:
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Undefined symbol: protocol descriptor for ObjectMapper.BaseMappable
Undefined symbol: protocol descriptor for ObjectMapper.Mappable
Undefined symbol: ObjectMapper.<- infix(inout A?, ObjectMapper.Map) -> ()
Undefined symbol: ObjectMapper.Map.subscript.getter : (Swift.String) -> ObjectMapper.Map
Undefined symbol: ObjectMapper.<- infix(inout [A]?, ObjectMapper.Map) -> ()
I'm on Xcode 12 in Swift based application.  I also have a ObjC bridging header file for another framework.  If I remove said file the linker error doesn't go away.  I'm installing using cocoapods and have tried to remove other frameworks that might be interfering with no success.  I also can get a clean build with all the frameworks I need installed, the bridging file in place, by removing any classes I have referencing ObjectMapper.
My inclination is to start manipulating the Build Settings but wanted to see if anyone had this same issue. Any help is greatly appreciated.  Thanks.

I also encountered the same problem. Solve it by the following way: comment out ObjectMapper from pod.file and import it directly into the project. Compilation is successful!


detail 400 invalid request for all purposes

I think we should detail the 400 methods send back from django to dissociate :
Invalid mail adress
alias already taken
login already taken
this should be detail in the body i think

it was trash idea


Fix UI Worker page table header issue

What changes are proposed in this pull request?
Fixed an issue where Node Name header in Worker page was rendering per worker
Note: Replacing https://github.com/Alluxio/alluxio/pull/14898 with proper fix
Why are the changes needed?
See above

Does this PR introduce any user facing changes?
Yes, web UI Worker page table is fixed to prevent repeat Node Name headers from rendering.

known failure
Error: 7.894 [ERROR] alluxio.master.AlluxioMasterProcessTest.stopAfterStandbyTransition[1]  Time elapsed: 15.384 s  <<< FAILURE!

alluxio-bot, merge this please


Exception in target_temperature_message_received

Every 5 minutes I get the following error message in the HA log:
2024-09-13 12:13:12.508 ERROR (MainThread) [homeassistant.components.mqtt.client] Exception in target_temperature_message_received when handling msg on 'panasonic_heat_pump/main/Z1_Heat_Request_Temp': '0'
Traceback (most recent call last):
File "/config/custom_components/aquarea/climate.py", line 357, in target_temperature_message_received
if self._attr_min_temp != None and self._attr_max_temp != None:
^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 323, in __getattribute__
return super().__getattribute__(__name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 323, in __getattribute__
return super().__getattribute__(__name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'HeishaMonZoneClimate' object has no attribute '__attr_min_temp'. Did you mean: '_attr_min_temp'?

Using latest versions:

Home Assistant 2024.9.1
Integration 1.4.1

My Pana is set to external thermostat, so the provided climate entity cannot control the temperature.
Trying to change the temperature (which isn't possible when using external thermostat) results in:
2024-09-14 11:01:04.611 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [139878762276336] Provided temperature 0.0 is not valid. Accepted range is 7 to 35
2024-09-14 11:01:11.020 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [139878762276336] Unexpected exception
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 245, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2761, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2804, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 996, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1068, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 951, in async_service_temperature_set
await entity.async_set_temperature(**kwargs)
File "/config/custom_components/aquarea/climate.py", line 263, in async_set_temperature
raise Exception(f"Unknown climate mode: {self._mode}")
Exception: Unknown climate mode: ZoneTemperatureMode.NAN`

Current attributes of the climate entity are:
hvac_modes: heat, off
min_temp: 7
max_temp: 35
current_temperature: 16
temperature: 0
friendly_name: Aquarea Zone 1 climate
supported_features: 385

Hello,
thanks for reporting an issue.
I'm really puzzled by this report:

the version 1.4.1 of the integration is very old and does not fit with the stack trace (for instance custom_components/aquarea/climate.py file does not have 357 lines in this old version)
the stack trace itself refers to self._attr_min_temp (a single underscore before attr) which is what the current code has but the exception refers to self.__attr_min_temp (with double underscore) which I can't find anywhere in the code.

:thinking:

https://github.com/kamaradclimber/heishamon-homeassistant/pull/251 will fix the second issue by disabling temperature set when heatpump is in external thermostat mode.

Thanks for your quick response.
In HACS it shows I have 1.13.0, when I go to Settings -> Devices and Services -> HeishaMon, I see 1.4.1

Maybe a removing and reinstalling would be the best option.
I will check the new version and report back

I removed the intgration completely (aquarea folder in custom_components was gone) and reinstalled from scratch.
With the new version 1.13.1 the errors no longer appear in the logs!
The version number is however still 1.4.1 in the Settings page

Good catch, it seems the version of the integration there is taken from the manifest file while hacs uses the github release title.

For 2 days I haven't seen the error in the logs, but today I restarted HA, and somehow the same error has returned. The line is different now:
2024-09-16 16:43:20.238 ERROR (MainThread) [homeassistant.components.mqtt.client] Exception in target_temperature_message_received when handling msg on 'panasonic_heat_pump/main/Z1_Heat_Request_Temp': '0'
Traceback (most recent call last):
File "/config/custom_components/aquarea/climate.py", line 362, in target_temperature_message_received
if self._attr_min_temp != None and self._attr_max_temp != None:
^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 323, in __getattribute__
return super().__getattribute__(__name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 323, in __getattribute__
return super().__getattribute__(__name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'HeishaMonZoneClimate' object has no attribute '__attr_min_temp'. Did you mean: '_attr_min_temp'?

For now, I cannot reproduce which is very frustrating 😓

It looks very similar to https://github.com/home-assistant/core/issues/124932 and https://github.com/home-assistant/core/issues/118336. I'm reading those issues hoping there will be a hint.

My suspicion is that the (recent) updates in climate component which overloads the fetch of attributes is in cause here. I need to understand better how this works.

Ok I succeeded to reproduce :sweat_smile: .
It seems to happen on any access of an attribute defined on the ClimateEntity class (not attributes defined on the child class).

I think https://github.com/kamaradclimber/heishamon-homeassistant/releases/tag/1.13.3 will the situation.
The error was very confusing (this is a bug in HA I think) but the cause was simple.

I just installed the latest update. The error seems to be gone now!
Thanks for actively approaching this!


Fixed "Devlop" typo

@crpietschmann : Thanks for your contribution! The author, @shizn, has been notified to review your proposed change.

@crpietschmann 👍
#sign-off

@JennieHubbard: I'm sorry - only the author of this article, @shizn, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Adds hostGroup property to example dynakubes

Description

Adds the hostGroup property to the example Dynakube yamls since it is easier to find there than in the code base.
How can this be tested?
Only proof-reading is necessary, since there are no code changes.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 58.77%. Comparing base (0a3f2d2) to head (8d144d3).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3221   +/-   ##
=======================================
  Coverage   58.77%   58.77%
=======================================
  Files         326      326
  Lines       18172    18172
=======================================
  Hits        10680    10680
  Misses       6308     6308
  Partials     1184     1184

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


2316 refactor mocha tests to qunit

Removed mocha. Added Qunit. Refactored unit tests.

I went through the changes and there isn't anything from my side apart from what Marco's pointed out.
Although, I'm not sure if we were supposed to change test and classic-testapps as well, thought that just ESA package refactor is enough.


[darwin]: MacOS compatible build

This PR adds compatibility to build static FFmpeg builds right off running ./build.sh script and in same time doesn't affect Linux builds.
I also updated FFmpeg version to 4.0 and make build a bit more static with adding additional libraries to be built statically.

you are correct, I need to check OS before that, —skip-old-files is not
supported on darwins tar.
On 21 April 2018 at 14:03:35, zimbatm<EMAIL_ADDRESS>wrote:

@zimbatm commented on this pull request.
really nice work, thanks!
In fetchurl
https://github.com/zimbatm/ffmpeg-static/pull/74#discussion_r183208181:

@@ -104,10 +104,10 @@ if [ "$UNPACK" -ne 0 ]; then
target_dir=expand_path "$EXTRACT_DIR"
mkdir -p "$target_dir"
sh cd "$target_dir"

[ "$REPLACE" -ne 1 ] && tarargs="--skip-old-files" || tarargs=""

[ "$REPLACE" -ne 1 ] && tarargs=""

isn't this breaking the REPLACE feature?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zimbatm/ffmpeg-static/pull/74#pullrequestreview-114171073,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtntkOe1hiDUSj-2PWHPesGk-sut2WZks5tqyAXgaJpZM4TeP0S
.

okay, let me know once it's done and I will merge the PR

@zimbatm updated. please check again if it looks good to you.


Create customer order history lookup

A background process will calculate the average customer order value over the past 30 days and store it in a low-latency data store for quick access.
We need a service that takes the customer Id and uses it to retrieve the order value from that datastore.

Redis / Cassandra / Scylla ?
https://university.scylladb.com/courses/using-scylla-drivers/lessons/coding-with-java-part-1/


Edit Protocols docs with more context on: ParentId and ContextId

Diane...

contextId:

This is a tough one to express succinctly if it hasn't already been established that records within a protocol form a number of trees. Each contextId refers to one of those trees. When a new top-level "root" record is written, it starts a new tree. The contextId is recordId of the root record. All descendants of a given root record have the same contextId.
Personally, I would just assume the reader has some knowledge that dwn protocols form trees of records and that they learned this a previous page of documentation. If this isn't covered in our docs on protocols, we should update those.

parentId:
Also, I'm not sure how literal you mean to get with your example values. For recordIds, we're using CIDs, specifically CBOR + SHA256. I just used this test fixture to generate one randomly.

More context from Diane...
contextId is common across an entire tree. it’s determined by the root record of the tree
a child of the root will have parentId === root.recordId
=== contextId
so it happens for children of the root record
parentId, contextId, and recordId are all CIDs, so they always look similar


Detects day and year while month is missing.

Let's say we have a text: "23 2019", then dateparser will set the day to 23 and the year 2019 and the month to the reference month. If the reference date is 8th of July 2019 then for "23 2019" dateparser will parse "23/07/2019". I think it is not a correct behavior. It should ignore (or parse separately) 23 and detect "2019" only.

Related to #424


Ability to specify individual columns in Eloquent model's "guarded" property stopped working

Laravel Version: 7.29.3
PHP Version: 7.4.3
Database Driver & Version: MariaDB 10.3.10

Description:
This was already reported in https://github.com/laravel/framework/issues/34073 , https://github.com/laravel/framework/issues/35297 , and probably others, but these issues were closed without due consideration.
The problem is that the nature of the security patch as described in the published announcements is not consistent with the observed behavior, so please read this carefully and don't close it without considering the test that I've included.
From https://blog.laravel.com/security-release-laravel-61834-7232 (emphasis mine):

Any attributes containing table names that are not explicitly declared as fillable will be discarded.

Table names, not column names.

This security release will be a breaking change for applications that were relying on the undocumented table name stripping during mass assignment.

My application does not rely on the table name stripping during mass assignment. It relies only on the ability to specify individual columns in the protected $guarded property, which was broken in 7.24.0.
From https://blog.laravel.com/security-release-laravel-61835-7240 (emphasis mine):

Today's patch fixes this and other potential unexpected behaviors by comparing the column that is being updated with an actual list of database columns that exist on the database table. We retrieve this column list using Laravel's schema inspection facilities that already existed in the framework. Note that this will introduce one extra database query to retrieve the column listing when attempting to mass assign attributes to a model that is using the $guarded property.

This explanation makes it perfectly clear that the breakage was not intentional. To the contrary, it states explicitly that specifying individual columns in the protected $guarded property's array is precisely what will trigger the additional checks that were added in this patch.
However, observed behavior is now that when any column is specified as guarded, no column is fillable. Again, the observed breakage is inconsistent with the patch's stated purpose, and contradicts it explicitly in two respects.
To elaborate further, in laravel/framework versions < 7.24.0, it was possible to specify individual columns in a model's protected $guarded property, e.g.:
<?php

namespace App;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class UserGuarded extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $guarded = ['id'];
}

But https://github.com/laravel/framework/commit/897d107775737a958dbd0b2f3ea37877c7526371 appears to have broken that capability.
Steps To Reproduce:

Modify User model per snippet above, i.e., replace protected $fillable = ['name', 'email', 'password']; by protected $guarded = ['id'];.
Run the following test, which passes in laravel/framework 7.23.0 but fails in 7.24.0:

<?php
namespace Tests\Unit;

use App\User;
use PHPUnit\Framework\TestCase;

class MassAssignmentTest extends TestCase
{
    /**
     * @test
     */
    public function massAssignmentWorksWhenGuardedSpecified()
    {
        $model = new User(['email' => 'foo@bar.com']);

<EMAIL_ADDRESS>$model->email);
    }
}

This is definitely a breaking change for a much larger audience than appears to have been intended.

Thank you for taking a look so quickly; I appreciate it.
The test fails for me in Laravel 8, too. (I did in fact test it on Laravel 8 before I bothered posting, but I realize now that I forgot to update the Laravel version I provided; my apologies!)
What are you using for the protected $guarded property in the User model class when you test this?
The test only passes if I use protected $guarded = [], but not if I use protected $guarded = ['id']. That is the crux of the issue here.

I just setup the whole test again... works fine:

@cbj4074 I also tested with Laravel 8 and it indeed works.
But, there was a change in Laravel 8 on how unit tests are processed. Maybe that could be what is causing the issue when testing with Laravel 8.
First I just modified the User model and copied the test code to a unit test and got a failing test with a message related to the database connection.
Then I remembered Unit Tests no longer extends from Laravel's TestCase class by default, therefore some parts of the framework are not initialized/available for those tests.
Afterwards I tried with a Feature Test, where the framework is fully available and it worked.
Hope it helps.

@rodrigopedra That is exactly the case! Thank you for clarifying that!
Indeed, the test was failing with Error : Call to a member function connection() on null, and that's exactly why.
@taylorotwell Thanks again for double-checking my work and proving that this does in fact work correctly in Laravel 8.


DRAFT: Split tests into extrinsic, helper and utils.

Goal
The goal of this PR is split tests into different categories.
Closes #1211

Suggestion: why not create a testing module, like:
msa
|-> src
      |-> tests
            |-> mod.rs
            |-> extrinsic_tests.rs
            |-> helper_tests.rs
            |-> (etc...)

We are going to change the layout to be by functional area instead.


SwitchView for Activities i.e Task is not Working

I tried to navigate to Task Views from Activities grid view. But not able to do so, I get error as view with "Task" doesn't exists and View with "My Tasks" doesn't exists. Please find my code below:-
xrmBrowser.Navigation.OpenSubArea("Sales", "Activities");
xrmBrowser.ThinkTime(2000);
xrmBrowser.Grid.SwitchView("Task");
xrmBrowser.Grid.SwitchView("My Tasks");

@khushanki Can you please paste in the stack trace, error message?

Hi,
Please find below error and stack trace:-
System.InvalidOperationException : No view with the name 'Task' exists.'
Stack Trace:-
at Microsoft.Dynamics365.UIAutomation.Api.XrmGridPage.<>c__DisplayClass2_0.b__0(IWebDriver driver)
at Microsoft.Dynamics365.UIAutomation.Browser.DelegateBrowserCommand1.ExecuteCommand(IWebDriver driver, Object[] params)    at Microsoft.Dynamics365.UIAutomation.Browser.BrowserCommand1.Execute[T1,T2,T3,T4,T5,T6,T7,T8,T9](IWebDriver driver, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9)
at Microsoft.Dynamics365.UIAutomation.Browser.BrowserCommand1.Execute(IWebDriver driver)    at Microsoft.Dynamics365.UIAutomation.Browser.BrowserPage.Execute[TResult](BrowserCommandOptions options, Func2 delegate)
at Microsoft.Dynamics365.UIAutomation.Api.XrmGridPage.SwitchView(String viewName, Int32 thinkTime)
at Medline.Crm.QAAutomation.KeywordToMethod.Test() in D:\Git-SourceCode\Medline.Crm\Medline.Crm.QAAutomation\KeywordToMethod.cs:line 32
at Medline.Crm.QAAutomation.Program.Main(String[] args) in D:\Git-SourceCode\Medline.Crm\Medline.Crm.QAAutomation\Program.cs:line 40

Hi,
I manage to click Task--> My Tasks view using below code:-
xrmBrowser.Driver.FindElement(By.LinkText("My Activities")).SendKeys(Keys.Enter);
xrmBrowser.Driver.FindElement(By.LinkText("Task")).Click();
xrmBrowser.Driver.ClickndWait(By.LinkText("My Tasks"), new TimeSpan(0, 0, 4));
However let me know if any other method I can use like SwitchView .

Thanks for sharing @khushanki
I have added a feature request to the backlog to expand upon the SwitchView method and add capabilities for Activity entities.

Closing this as an item is on the backlog tracking this work. We'll update at a later time to confirm this work has been completed.
Thanks,
Tyler

Hi,
In order to this to work in the Activities window, you need to switch the view first. The activity page is construct in an iframe. The filter is in that iframe and you need to change the driver focus the iframe first then you can identify the elements.
Try below code:
            xrmBrowser.Driver.SwitchTo().Frame(xrmBrowser.Driver.FindElement(By.Id("contentIFrame0")));

            xrmBrowser.Driver.FindElement(By.LinkText("My Activities")).SendKeys(Keys.Enter);
            xrmBrowser.Driver.FindElement(By.LinkText("All Activities")).Click();
            xrmBrowser.Driver.ClickndWait(By.LinkText("All Activities Created in Current Year"), new TimeSpan(0, 0, 4));

Regards,
Hasi


Column Titles not appearing in IE11

I'm noticing that the column titles are blank in IE11 on the demo and in tables I've implemented for a personal project.

I'm never surprised when I hear stuff doesn't work in IE.
Here is the bug report for your issue:
https://connect.microsoft.com/IE/feedback/details/868842/ie-11-setting-css-opacity-on-a-table-row-doesnt-affect-the-background-color-of-that-row
Thanks for reporting this issue. A quick fix is on its way.

@thespiffyitalian I just pushed a quick fix in the release branch. Could you give it a go and report back please. Thanks.

Appears to be fixed! Thanks for the quick turnaround =)


Add retriggering runtime suspension

Description
Currently updating context with the same Active value as the one in instance.Parameters.ErsContext.Active in database results in skipping the update. However, instance.Parameters.ErsContext.Active is always updated if there is no error here:
https://github.com/kyma-project/control-plane/blob/b5e8b6e1163a47c6e819895af45bb3204d11df3c/components/kyma-environment-broker/internal/broker/instance_update.go#L69
Handle() method does not check, if the deprovisioning operation created underneath succeeded or failed in the process, and afterwards the instance is updated anyways which prevents from retriggering the failed suspension call when user tries updating context again (instance state in DB is Active: false and incoming call also contains Active: false parameter)
Changes proposed in this pull request:

Check if there is an existing temporary operation when Context.Active flag was not changed - if it exists and is in state failed, retrigger the deprovisioning process

Related issue(s)

/retest

/retest


backspace can't delete when editing php files

When I edit something.php and try to delete something using backspace,it give me the error like this:
"
zsh:1: command not found: phpm
Shell  has retuen 127
please return ..."
But I works fine when editing any other file.
I am using xterm but I could't reproduce this in Konsole.So I am not sure about what is the problem.

I got the same error. I guess you are using Xshell as the terminal tools. In this case, you should change the keyboard setting of Xshell.  Alt + p  ->  Terminal -> Keyboard -> Backspace Key Sequence, change it to "ASCII 127".

Not really, it's because the PIV plugin, it maps ctrl h to search phpm for function name under the cursor, remove the line and everything will be ok
发自我的 iPhone

在 2015年1月22日，下午10:21，nivren<EMAIL_ADDRESS>写道：
I got the same error. I guess you are using Xshell as the terminal tools. In this case, you should change the keyboard setting of Xshell. Alt + p -> Terminal -> Keyboard -> Backspace Key Sequence, change it to "ASCII 127".
—
Reply to this email directly or view it on GitHub.

thanks. So, where can I find this key mapping?
On Fri, Jan 23, 2015 at 4:03 AM, Frost Wong<EMAIL_ADDRESS>wrote:

Not really, it's because the PIV plugin, it maps ctrl h to search phpm for
function name under the cursor, remove the line and everything will be ok
发自我的 iPhone

在 2015年1月22日，下午10:21，nivren<EMAIL_ADDRESS>写道：
I got the same error. I guess you are using Xshell as the terminal
tools. In this case, you should change the keyboard setting of Xshell. Alt

p -> Terminal -> Keyboard -> Backspace Key Sequence, change it to "ASCII
127".

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/spf13/spf13-vim/issues/380#issuecomment-71171749.

PIV/ftplugin/php.vim
Comment line 109 out.
发自我的 iPhone

在 2015年1月25日，上午7:22，nivren<EMAIL_ADDRESS>写道：
thanks. So, where can I find this key mapping?
On Fri, Jan 23, 2015 at 4:03 AM, Frost Wong<EMAIL_ADDRESS>wrote:

Not really, it's because the PIV plugin, it maps ctrl h to search phpm for
function name under the cursor, remove the line and everything will be ok
发自我的 iPhone

在 2015年1月22日，下午10:21，nivren<EMAIL_ADDRESS>写道：
I got the same error. I guess you are using Xshell as the terminal
tools. In this case, you should change the keyboard setting of Xshell. Alt

p -> Terminal -> Keyboard -> Backspace Key Sequence, change it to "ASCII
127".

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/spf13/spf13-vim/issues/380#issuecomment-71171749.

—
Reply to this email directly or view it on GitHub.

I had similar problem with .php files in my Xterm. To resolve it please push "Ctrl+LeftMouseButton" in xterm window and then uncheck "Backarrow Key (BS/DEL)". Hope this will help!


[FEAT] - Greenhouse UI container

Priority
(Medium) I'm annoyed but I'll live
Description
Currently the ui container provided for greenhouse deployed with the helm charts serves an index.html file with a script tag importing the core greenhouse-ui javascript bundle from an external source.
We aim to provide a container that serves all bundles for the microfrontends the greenhouse core ui consists of from localhost and therefore has no external dependencies.
Necessary steps:

[ ] Move the greenhouse and the greenhouse-management app from https://github.com/sapcc/juno/tree/main to this repo
[ ] Introduce gh-actions to build the packages and ship them to the repository's package registry. The goal is to reuse a custom gh-action is to be published and maintained by the juno team for uniformity.
[ ] Provide a container image hosting the apps locally
[ ] Introduce a gh-action to build the UI container and ship it to the repository's container registry

Reference Issues
No response

Coordination of repository moving here:
https://github.com/sapcc/juno/issues/592


Rebuild Location Header

Comment if you are interested in working on this issue!
Requirements
Requirements are open to discussion.
TODO
References

https://eats.seesparkbox.com/refresh/2
#407
#413

Completed with #414


latest version not compatible with node 14

Update required can't install this with latest node

Fixed in Firetable CLI v1.5.1 https://github.com/FiretableProject/firetable-cli/issues/3


Multiple switch during one job does not happen

Hi,
thank your for this package that is saving me from wasting hours of Docker details learning for a slight change in my CI :+1:
I'm trying to build a downgraded script and I need to use 2 different PHP versions in one build (not parallel builds, no matrix).
I assumed this would work, but it does not:
            -   uses: shivammathur/setup-php@v2
                with:
                    php-version: 7.1
                    coverage: none

            # some operation check

            -   uses: shivammathur/setup-php@v2
                with:
                    php-version: 8.0
                    coverage: none

            # PHP 8 is expected here
            # but PHP 7.1 is given

How can I make it happen? Or is there silent implicit limit that uses the 1st PHP version only?
Thank you

Failing CI: https://github.com/rectorphp/rector/pull/5780/checks?check_run_id=2115424399
The GitHub Action workflow file: https://github.com/rectorphp/rector/pull/5780/files#diff-23292bd9e76fae269defd8417e54b807a8579772359ae91f16ae296c6829890a

It seems only one change happens:
// setup-php 7.3
php -v → 7.3

// setup-php 7.1
php -v → 7.1

// setup-php 8.0
php -v → 7.1

No idea how setup-php works, but maybe interesting to show $(which php) and contents of $PATH?

@TomasVotruba I will have a look once GitHub Actions is fixed. Currently not able to start test workflows.
https://www.githubstatus.com/incidents/s654n76c1bwr

@shivammathur Thanks! I know, I'm being stuck last 4 hours on that one :D

@TomasVotruba Fixed
Test workflow: https://github.com/shivammathur/test-setup-php/actions/runs/655965120/workflow

Thanks :+1:
Could you share commit with the fix? I'm curious what was the issue.
Testing: https://github.com/rectorphp/rector/pull/5870/files

Looking good:

The cache was overwriting alternatives configuration for pre-installed versions.
Commit: https://github.com/shivammathur/php-ubuntu/commit/1314452f2a2c8e69650f4f82259676ee54106a9a

I see, thanks for explaining :+1:  I just started using alternative locally, killer feature


CNV, STRs, somatic Var Rep Group concept needed?

CNVs, microsatellites and a variety of somatic variant representations have given rise to the notion of defining a variant grouping that is a set of variant instances (not necessarily equivalent) which can be used to for annotations, assertions, interpretations, evidence collection, etc...
In our modeling to date we have intentionally been focusing on the most atomic representations, rightfully so. However, with the advent of the copy number discussion, we have introduce the notion of providing a range for the quantity of copies for copy number gain variants.
All previous examples (afaik) have focused on defining a very specific instance of a variant (i.e. allele, haplotype, genotype).  We sort of got into this realm of a "set" or "group" of instances when discussion PGx haplotypes as defined by CPIC/PharmGKB, but we never really resolved the concern.
Question...
To focus on CNVs and micro-satellites for now, what does it mean to specify a range of copy numbers (i,e. from 5 to 20 -or- more than 47)?
Possible answer..
A CNV instance is a specific number of copies of a given region of a chromosome.  The region of the chromosome that has a non-negative number of copies, is the instance of the sequence. So, to specify a "range" of copies is essentially saying any one of the "instances" in this range belongs in this group.
For example,
If you wanted to specify that a given interpretation is valid for any copy between 4 and 10 of region 1000 to 2000 on chromosome 1 then you are saying that any specific copy instance between 4 copies and 10 copies would be covered by that interpretation.
Interpretation 1...
Variant Group : NC_00001.10:1000..2000 (4 to 10 copies)
Pathogenicity: Uncertain Significance
Interpretation 2...
Variant Group : NC_00001.10:1000..2000 (>10 copies)
Condition: Condition X
Pathogenicity: Pathogenic
Case 1 specific finding...
Variant found: NC_000001.10:1000..20000 (6 copies)
Result: interp 1 above matches and the assertion may potentially be used to inform the patient's results.
Case 2 specific finding...
Variant found: NC_000001.10:1000..2000 (20 copies)
Result: interp 2 above matches and the assertion may potentially be used to inform the patient's results.
Hopefully, this highlights the distinction between defining "variants" that are "sets" or "groups"  verses "instances" and the need to be able to do both in order to collect knowledge and associate it with actual findings.
This can also be applied to microsatellites, which are short tandem repeats that often get expressed as a range as well as in the HTT gene for Huntington's disease. see ClinVar NM_002111.6(HTT):c.52CAG(27_35).
Individual assay findings produce a specific count of the tandem repeats and then determine if the fall into the variant group defined by NM_002111.6(HTT):c.52CAG(27_35) or some other group that may have a different interpretation.
As we explore variant representations, let's determine if we need to be separating the notion of atomic, specific, instance representations from group or set representations and provide a clean separation, if so.

Also, bear in mind, that while this "group" concept may seem to be similar to genotype (or haplotype) it is different in that haplotype and genotype represent a "complete" set of variants that must all co-occur.  This concept is more of an "OR" than and "AND" of grouped variants.

@larrybabb I think this moves into the variant annotation area, by mixing cases the need of variant type representation (do we have a proper name for that?) with variant instance representation.
Maybe we should just separate the ways variant types / equivalencies are represented from the instance  == case... specific representation, into really different approaches?
So we would have:

representation of equivalent genomic variants (use: variant references, ClinVar, dbVar, ClinGen, VICC, BRCAx...)
representation of callset specific variants (use: object storage of variant calls from single samples)
queries against variant representation (Beacon, "Discovery search API", ...)

For instance:

the equivalent representation could define any deletion of one, or all, alleles of a gene as 2 instances of variant equivalence
a callset specific variant representation would specify a deletion as a class +/- numeric allele count (with boundaries fulfilling the condition of "gene is gone or fewer")
a query could bracket values which would represent anything hitting the gene (we do this in Beacon...) with a class "DEL" and/ot $lt copy number

Malachi Griffith added a summarization of distinct types of variants found in CiVIC in  Var Anno repo issue 12.

@mbaudis we will setup a call for this discussion as it may be too complex to fully separate all the concerns effectively in an issue thread.
But to respond to the three instances at the bottom of your comment above
I’m not sure I agree the following 2 kinds of variants as equivalent in bullet 1
A. Deletion of one allele of a gene
B. Deletion of all alleles of a gene
The relationship between these two is a subset superset relationship (I believe).
In any case the question I’m trying to answer is “How do we represent item B as a variant, when it appears to be a representation of a set of variants?”
The notion of a set or class of variants was recently spotlighted by Malachi on the Var Anno call as types of Var reps that would be needed to support the “subject” attribute of many of the somatic interp types.
I also see the similarity of this pattern in regards to using copy number ranges to define a set of cnvs which all share a common interp.
Finally I would say that I agree with your third bullet in regards to queries needing the ability to query Var class types and/or copy count quantities.
However we haven’t yet demonstrated how these kind of qualifying attributes will be bundled with variant concepts needed to build objects that can support the role of Var Anno “subjects”.

@larrybabb I tried to put too much in the sentence (bullet 1); my note was on the "any deletion of one", and the "any deletion of all" as two different types of equivalence.
In imprecise CNV reports (i.e. w/o phasing), the homozygous deletion would "self compose"
#####___________#####
#######_______#######
222221100000001122222

... since w/o full allelic reconstruction it would not be sure how the 0 comes about; could be
#####_________#######
#######_________#####
222221100000001122222

... and so would be reported as 3 different variants (11, 0000000, 11).
See example of array based data here.
But such a (widespread, simplistic) model does not cover the composition of multiple variants, just reports the outcome of this composition.
The problem is that we have to accommodate both; but maybe not necessarily in all scenarios. And maybe really thinking this through could help to reduce complexity for each of those implementations.


API can determine its concurrency using WEB_CONCURRENCY env var

As-is
PM2 always spins up 2 instances of rumors-api
To-be
PM2 will respect WEB_CONCURRENCY env var to determine its concurrency, which is consistent with cofacts/rumors-site.
This can be helpful if we want to scale up / down API servers on production server.

Coverage remained the same at 88.582% when pulling 784d6dcc70a4ed08f11c0f533a211c48163ec004 on web-concurrency into a9a68b9d1d5a3b75a32b021c8b799dd58c1fb01c on master.


Avoid alarm max volume issues by relative volume and/or choosing different stream

With 3.2.5 the audio stream can be chosen. For alarm stream can be chosen whether to use volume control of the audio stream or not, for notification stream and music stream using volume control of the audio stream is enforce. If volume control of audio stream is used MindBell's volume control is switched off and the volume is not maximized or reset at all.


Update cats-core to 2.0.0-RC1

Codecov Report

Merging #48 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #48   +/-   ##
=======================================
  Coverage   91.93%   91.93%
=======================================
  Files           6        6
  Lines         558      558
  Branches        4        4
=======================================
  Hits          513      513
  Misses         45       45

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 4d0736d...eed56d6. Read the comment docs.


Style changes for student dashboard page.

Changes to implement:

Fix hover over column headings.
Change the column headings.
Add an eye icon on the link to questions table.
Remove score label from scores column.

Fixed.


Installation instructions

This tutorial did not work for me on Linux. Instead I followed the instructions on the npmjs website for @itwin/desktop-viewer-react. I would recommend adding the npm or yarn command for installation of the @itwin/desktop-viewer-react package before the npx command as that's what made the difference on my system. Not sure if this is an issue for other platforms like Windows.

⚠ Do not edit this section. It is required for imodeljs.github.io ➟ GitHub issue linking

LINK: Developing-a-Desktop-Viewer---iTwin.js-link-to-docs
TAG: imodeljs-docs-question
SOURCE: https://www.itwinjs.org/learning/tutorials/develop-desktop-viewer/

Could you share the error you saw when you used the npx command?
I recommend uninstalling create-react-app, and reinstalling it again, then trying the npx command again.
npm uninstall -g create-react-app
npm install -g create-react-app

@aruniverse - Just tested your suggestion on a new VM. It worked! And now I can't get it to break again, even after uninstalling all global node packages and creating a new app. I'll take some time later to set up a fresh VM and send you the errors. Many thanks for the help.

Glad that worked, i'm guessing the real issue you saw stems from here, https://github.com/facebook/create-react-app/issues/10132#issue-749030789


Moving jupyter_chat into jupyterlab org

Context
The jupyter-chat repository is currently in jupyterlab-contrib organization: https://github.com/jupyterlab-contrib/jupyter-chat
This repository is a monorepo containing:

a front end package, to be used in a Jupyter extension or remix (npm package is chat-jupyter)
a chat extension based on chat-jupyter to build a chat using websocket (python package is jupyter_ws_chat and npm package is jupyter-ws-chat)
a chat extension based on chat-jupyter to build a collaborative chat using shared document (python package is jupyter_collaborative_chat and npm package is jupyter-collaborative-chat)

The front end package and the extension using websocket are mostly a reorganization of the chat used in jupyter-ai in a new repo (jupyter-ai is already in the jupyterlab org).
Problem
jupyter-ai would like to use the jupyter-collaborative-chat as a dependency, to avoid us (Jupyter developers) to maintain 2 chats.
It would be better for jupyter-ai to depend on a repo in an official Jupyter organization.
Proposed Solution

Include  jupyter-chat repository in the Jupyterlab organization.
Include the front end package in the Jupyter namespace of NPM, because it aims to be the front end for a chat in a Jupyter front end extension or remix. This package could be renamed @jupyter/chat.

cc. @SylvainCorlay @ellisonbg @Zsailer @JasonWeill

Thanks @brichet for proposing this :+1:

It would be better for jupyter-ai to depend on a repo in an official Jupyter organization.

Just to clarify the intent, is the "it would be better" because Jupyter AI is currently mostly maintained by a team at AWS, and this team can only contribute to repos under GitHub orgs that are owned by and governed by Jupyter? As per this comment: https://github.com/jupyterlab/frontends-team-compass/issues/172#issuecomment-1409743937

My team at AWS has permission to contribute to GitHub orgs that are owned by and governed by Jupyter and we don't have permission to contribute it to other open source projects, such as jupyterlab-contrib at this time (for those who may not be familiar, the jupyterlab-contrib org is not a Jupyter governed subproject). This type of constraint is fairly typical of US-based tech companies - I know we aren't alone on that.

Or for other reasons? Because technically speaking it's fine to depend on packages outside of the JupyterLab organization.

Confirming that constraint we have at AWS.
The other dimension is that this is more-or-less a refactor of Jupyter AI,
so makes sense to keep it in the same org.
On Fri, Apr 12, 2024 at 12:52 AM Nicolas Brichet @.***>
wrote:

Just to clarify the intent, is the "it would be better" because Jupyter AI
is currently mostly maintained by a team at AWS, and this team can only
contribute to repos under GitHub orgs that are owned by and governed by
Jupyter? As per this comment: #172 (comment)
https://github.com/jupyterlab/frontends-team-compass/issues/172#issuecomment-1409743937
Thanks @jtpio https://github.com/jtpio for the clarification, I forgot
to mention this point.
Indeed, the AWS team would like to contribute to the jupyter-chat
development, and needs it to be in a Jupyter governed subproject.
—
Reply to this email directly, view it on GitHub
https://github.com/jupyterlab/frontends-team-compass/issues/247#issuecomment-2051212015,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAGXUDZUT3VFKXKA52OWATY46HDVAVCNFSM6AAAAABF5B3YYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJRGIYTEMBRGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Brian E. Granger
Senior Principal Technologist, AWS AI/ML @.***)
On Leave - Professor of Physics and Data Science, Cal Poly
@ellisonbg on GitHub

cc @jupyterlab/jupyterlab-council for awareness

We discussed this on the JupyterLab/frontends call today and I proposed that we move this repo to JupyterLab org in one week time if there are no objections until then. I can help with making the move happen. @brichet volunteered to write an email to frontends council to ensure everyone had a chance to contribute or object. Out of habit we kept saying lab council but I think the email should go frontends council mailing list.

One week has passed since the last message.
We also discussed this again yesterday during the weekly meeting and there were no objections: https://github.com/jupyterlab/frontends-team-compass/issues/229#issuecomment-2075608665
So let's proceed with the move.

Thanks @jtpio.
I don't have authorization on either of the 2 organizations, so please proceed with the transfer.

The repo has been transferred: https://github.com/jupyterlab/jupyter-chat
I opened https://github.com/jupyterlab/jupyter-chat/issues/19 to list follow-up items.
Thanks all!