Trigger email extension stuck when using Gmail/Gsuite to send emails

Hi - not sure if this is the right place for support, but here goes...
My emails are stuck in 'PROCESSING' mode

i'm using gmail to send my mails, using smtp://me@gmail.com:password@smtp.gmail.com:465
what am i doing wrong?
thanks in advance

Hi @aq2 - Would you be able to check the Firebase Functions logs to see if any error is occurring?

okay thanks,
i'm just testing this with a simple button on my website that adds a document to my 'mail' collection
i press the button, see the new doc in the collection, but it stays at 'processing' - no errors shown in 'delivery' field - just says 'null' and 0 attempts
logs don't seem to give any obvious error messages, but it eventually times out
i'm not sure what you want to see...

@aq2 Hello :)
I don't see an "smtpConnectionUri" on your extension's configuration. Is it normal ?

@rphlmr It's omitted as it's a sensitive field.
I'll try this out myself using my own Gmail account as the SMTP provider. My initial thinking is that node-mailer is forever trying to connect to the SMTP server and eventually timeout the function.
@aq2 would you be able to try smtps:// rather than smtp://? The Gmail SMTP server requires SSL by the looks of it.

@Ehesp oh yes 🤦♂
If it can help @aq2 , I have this config (working):
smtps://me@mydomain.app:verycomplicatedpassword@my.smpt.provider:465

hi - thanks for your inputs,
I have managed to get it working using a different email provider, but am still unable to use with gmail, whether using http or https
I have heard that gmail are quite a large email company and i am surprised that i can't get the extension working with them.
@Ehesp did you manage to get gmail working?

Could you try setting the from address as your own email used for Gmail?

sorry, not quite sure what you mean
i've been  using the same email address in 'from' and smtp URI - ie my gmail address
or are you suggesting that i use gmail URI, but with a different from address - like 'send as'?

sorry - pressed the wrong button - didn't mean to close - whoops

That's ok then, I believe Gmail has restrictions around the from sender address having to be the same as the SMTP user.
Let me try and get Gmail sync'd up and I'll get back to you on whether I can get it working.

I have came across the same issue as the op. However, I tried with my gmail and it worked. (example@gmail.com). But I tried with a GSuite email<EMAIL_ADDRESS>and it did not work for that email. The delivery state is stuck on PROCESSING and the cloud function is timing out after one minute. Any suggestion is appreciated.
Thanks in advance.

I am also having this issue. I've also now tried it with a Yahoo mail account and the same thing happens.
My function config:

(NB, I've also tried with smtps using port 587. I've tried with the normal account password and with a generated app-specific password. I'm kind of tearing my hair out here, so any help from anyone who has overcome this with any decent email provider would be extremely welcome. Thanks!

I had the same issue - my challenge was that my email was a GSuite account and I needed to allow access from Less Secure Apps. I had to go into my GSuite account, Security allows Users to Set own Less Secure Apps. Then set it for my email.
It was a bit of a struggle but I hope that helps someone.

I couldn't do that with my initial email account as it has 2FA. However, I followed the various instructions for that, including an app-specific password and didn't have any joy. Then I set up another GMail account without 2FA and followed the allow-less-secure and recaptcha settings - still didn't work. It's the latter account that I have working fine, now, with my own cloud function. It's weird how this seems to work for some users and not for others.

I have the same problem with the GSuite account. I allowed access from Less Secure Apps but nothing. It doesn't work. I have also tried all possible combinations with port 587 and without it.

If it helps, what I did for GMAIL account:
smtps://namel@gmail.com:pass@smtp.gmail.com:465
and then a enable "Less secure app access"
https://myaccount.google.com/u/2/lesssecureapps
I didn't manage to use my GSuite account tho yet.

Thanks - and I'm glad you got it working. I've found that my custom cloud function does everything I need it to do, so I've moved on to other areas of functionality.

For all fighting with the correct connection URL, it might help to consult nodemailer documentation. https://nodemailer.com/smtp/
The extension just passes the connection URL as is to nodemailer. I stopped trying with gmail cause of 2FA. Testing can be better done with mailservices like sendgrid or mailgun. They have free plans and offer a SMTP gateway which one can use.

For all fighting with the correct connection URL, it might help to consult nodemailer documentation. https://nodemailer.com/smtp/
The extension just passes the connection URL as is to nodemailer. I stopped trying with gmail cause of 2FA. Testing can be better done with mailservices like sendgrid or mailgun. They have free plans and offer a SMTP gateway which one can use.

Isn't it the idea of the extension to handle this without extra impediments?

For those who are still struggling with GSuite emails for the Email Trigger Extension. I think I may have found a solution. As the OP says I was stuck at the PROCESSING state and nothing happened when I gave the smtps URI as smtps://username@customGSuiteDomain.tld:veryComplicatedPassword@smtp.gmail.com:465.
However when I used a password without any special characters it worked.
NB: The following settings were set for the GSuite email account.

https://www.google.com/settings/security/lesssecureapps Less secure apps: ON
https://accounts.google.com/DisplayUnlockCaptcha
(As suggested in firebase functions example)

I have the same problem with the GSuite account. I allowed access from Less Secure Apps but nothing. It doesn't work. I have also tried all possible combinations with port 587 and without it.

@ctwhome pls try this and find out whether it worked for you or not.

However when I used a password without any special characters it worked.

I URL encoded the special  characters in my password and that worked fine.
Have  it working  with

Less secure apps setting

SMTP Server
smtps://username@customGSuiteDomain.tld:veryComplicatedPassword%21%0A@smtp.gmail.com:465

NB. from email same as auth email although idk if that is necessary
@Niweera

@MatteoStohlman yeah, I did the same. It's working fine for me.

Hi guys, any update about this issue?

Have you checked encoding?
Had the same issue until I encoded the password - you can check it here: https://www.urlencoder.org/

Hi @shaisa, I had not only encoded the password but also change to a simple password, without special character.
I believe google functions has some problem to execute Nodemailer with a provider different than Google. When I try to send an email with my email provider anything works.
I have tried locally with Firebase Functions Emulator and in a vanilla Node.js. The code works fine in a vanilla node.js application but doesn't work with Firebase Function.

Mmmm.... You know what - I couldn't make the extension to work with my g-suite smtp-relay as well...
I guess gmail is the only one working right now. And the logs are worthless to understand why.
If only someone from google was here to help ;)...

I wouldn't recommend using GMail or G Suite to send email for an
application. They are designed to be personal / business email accounts,
not automated mass mailers. There are a variety of providers like SendGrid,
Mailgun, etc. that are designed more for the purpose and work well with the
extension. That being said, I'm not opposed to figuring out what's going on
here, but it's not at the top of our priority list at the moment.
On Mon, Dec 16, 2019, 5:37 AM shaisa<EMAIL_ADDRESS>wrote:

Mmmm.... You know what - I couldn't make the extension to work with my
g-suite smtp-relay as well...
I guess gmail is the only one working right now. And the logs are
worthless to understand why.
If only someone from google was here to help ;)...
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/firebase/extensions/issues/41?email_source=notifications&email_token=AAAAH7UPDW4HECZS6SYXOF3QY577ZA5CNFSM4JAGYQTKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG6XJAI#issuecomment-566064257,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAAH7RGYXNYNKKAXGQXJUDQY577ZANCNFSM4JAGYQTA
.

Of course - at least on my end this is not the case - this is a part of evaluating the extension in terms of usability and limitations (btw, not all use cases are for mass mailing so I wouldn't dismiss this issue because of that).
When something doesn't work without understanding why - it is a sign for me that there might be more "black holes" down the road and I take it into consideration before moving it to production.
Maybe it's a good idea to add a log when this error occurs in the extension or a known issue somewhere to notify people of this bug (/feature). Even a small "G Suite smtp-relay is not supported" message in the configuration GUI / CLI would do the job and save time for people trying it...

Hi! After all the services that firebase provides to create extremely fast, complex, realtime applications... Having to use a third party like sendgrid to handle emails seems odd to me. I mean, for an application sending emails to customers is fundamental, why is this not being part of the core functionalities of firebase? Maybe firebase hosting?

Hi, we are not planning to offer an email service within Firebase in the forseeable future.
It seems like the workaround in https://github.com/firebase/extensions/issues/41#issuecomment-554705606 is the best approach. Perhaps we can document this more clearly.

I don't think it's a gmail/gsuite specific issue. I am getting an indefinite PROCESSING status with Postmark. My smtp URI looks like smtp://abcdef-1234:abcdef-1234@smtp.postmarkapp.com:25. Postmark uses an api key with only hex characters and dashes so special characters doesn't seem like it would be the issue in my case. The password and username for postmark are the same.
I tried this smtp URI with nodemailer in a node repl locally and I was able to send an email successfully so it doesn't seem to be Postmark.
I previously was using SendGrid with this extension and I had emails working.
Complicating my debug data is I upgraded the extension from node 8 to node 10, but I'm not sure that has anything to do with seeing this issue since I never tried Postmark on node 8. Nor have I tried SendGrid on node 10. Trying to reactivate my SendGrid account to see if I can get that working again (they deactivated me without notice (I'm thinking due to low volume), which is what sent me on this goose chase in the first place).

Trying to debug the function. Upon the create of the initial document the cloud function updates attempts to 0 and state to PENDING. But what I see when observing the document in the firebase console is attempts are 0 and state is PROCESSING.
Looking at the switch statement for PENDING, it sets state to PROCESSING and then should call deliver().
https://github.com/firebase/extensions/blob/b9b4d6feb2d683b9241f7e999ba9efdd267805d5/firestore-send-email/functions/src/index.ts#L325-L337
However, if deliver() was called at all, why would attempts remain 0? My logs confirm that the "Attempting delivery..." message is not present either.
These observations match with earlier reports: The original post shows attempts 0 (https://github.com/firebase/extensions/issues/41#issue-506318313). and a later comment shows a log that does not have a "Attempting delivery..." message (https://github.com/firebase/extensions/issues/41#issuecomment-541691437).
Is there something with await admin.firestore().runTransaction where it might be hanging here? I see there is a comment in the code about issue https://github.com/firebase/extensions/issues/48. Not sure if the issues there are still causing issues with this firebase extension.

@Ehesp , do you want me to file a new bug? Node 10 simply won't send an email for me.

Also had this problem and removing the special characters from the password worked for me as well! Thanks 🙏🏽

I also had the same issue, trying to send with a gmail account (not G-Suite).
What worked:

Allow less secure apps on the gmail account - https://myaccount.google.com/lesssecureapps
URL encoding your password with https://www.urlencoder.org/ if it has special characters.

The above 2 steps did the trick.


New Result.flatMap operation

Description
Implement the following Result.flatMap operation for all platforms in the kotools.types.result package:
/**
 * Transforms the encapsulated value from [A] to [B] if this result is a success,
 * or returns the original exception if this result is a failure.
 */
inline fun <A, B> Result<A>.flatMap(transform: (A) -> Result<B>): Result<B> = TODO()

fun main(): Unit = Result.success("hello")
    .flatMap { Result.success(it + " world") }
    .let(::println) // Success(hello world)

Checklist

[ ] Implement.
[ ] Test.
[ ] Refactor.
[ ] Update Work in progress section in changelog.

Because those changes are not essential to users for now, we will not implement this issue for now.
If users really need this feature, then we will implement it.


Added getOverviewMap getter method in overviewmapcontrol.js

Please, see the Travis report and fix the issues raised.

Would anyone any core developer review and merge this PR, please ?  Thank you very much.

@bogdanvaduva I added one inline comment. Would be great if you could address that. Also, please sign a CLA so we can merge this

Ping @ahocevar

Thanks @bogdanvaduva.

Welcome


[bitsery] Update to 5.0.1

/azp run

There are no features of this port need to test.
@vicroms, this PR is ready to merge now.

Thanks for the update!


Add unique constraint to sources table - label column

Coverage remained the same at 60.765% when pulling e83699b6ae8dd46e74478f3bfde61ce1da46fd71 on castrapel:unq_sources_label into c6b679bb19108611a0e22d8dc9dc33a27bff8f1e on Netflix:master.


how to do while enter the positive button ,set the  dialog not dismiss

how to do while enter the positive button ,set the  dialog not dismiss

https://github.com/afollestad/material-dialogs/blob/master/README.md#callbacks


Pending Message on Server Start/Stop

Signed-off-by: Colin Grant<EMAIL_ADDRESS>This PR adds a temporary status message when the user gestures to start or stop the trace server.
To test:

Point your trace viewer executable and port preferences to good locations
Click Start trace server in the bottom left status bar.
See a message that indicates that server is starting.
... wait < 10 seconds
See a change indicating that the server has started
Kill the server, see the same message

Unhappy paths:

Point your preferences to a bad location (e.g. non-existent file, occupied port)
Try to start server
In <= 10 seconds you should see a failure message, and the display should revert to the previous state.

There is substantial overlap with #226, which supplies more exact error handling.

Thanks for this very useful addition!
Verified on Gitpod, works well.

Thanks for this very useful addition!
Verified on Gitpod, works well.

I think why it works on GitPod is because the scheduledPing() is setting the status bar correctly. If you'd like to reproduce the startup timeout uncomment out the scheduledPing() and change the initial state of the server as offline so that the start button is active. Pressing the start button will timeout and the error message will appear while the server is actually running.
BTW, on my laptop for some reason it takes longer for the scheduledPing() to kick in and that's why it happens even without removing the ping.

I think why it works on GitPod is because the scheduledPing() is setting the status bar correctly. If you'd like to reproduce the startup timeout uncomment out the scheduledPing() and change the initial state of the server as offline so that the start button is active. Pressing the start button will timeout and the error message will appear while the server is actually running.
BTW, on my laptop for some reason it takes longer for the scheduledPing() to kick in and that's why it happens even without removing the ping.

Hey @bhufmann, thanks for the feedback. It sounds like things are behaving quite a bit differently in your environment than they are in mine. Could you tell me a little more about your set up (OS and server executable in particular) so that I can try to reproduce what you're seeing?

Hey @bhufmann, thanks for the feedback. It sounds like things are behaving quite a bit differently in your environment than they are in mine. Could you tell me a little more about your set up (OS and server executable in particular) so that I can try to reproduce what you're seeing?

@bhufmann, one problem here is that defining 'success' in starting the process is not entirely straightforward. One server executable I'm using directs all output to stderr, so receiving stderr data may count as a success. On the other hand, if the trace compass server finds a bad Java environment, it emits an empty string to stderr, then shows a dialogue, and only exits once the user has interacted with the dialog. Since the problem you mentioned was that the backend was never resolving correctly, I'm inclined to let the the backend resolve prematurely if it detects any output, and then rely on the timeout to reject if the server never in fact registers as online. This should prevent the program from getting into a state where the frontend knows about a change (offline -> online) before the backend has signaled its status.

@bhufmann, one problem here is that defining 'success' in starting the process is not entirely straightforward. One server executable I'm using directs all output to stderr, so receiving stderr data may count as a success. On the other hand, if the trace compass server finds a bad Java environment, it emits an empty string to stderr, then shows a dialogue, and only exits once the user has interacted with the dialog. Since the problem you mentioned was that the backend was never resolving correctly, I'm inclined to let the the backend resolve prematurely if it detects any output, and then rely on the timeout to reject if the server never in fact registers as online. This should prevent the program from getting into a state where the frontend knows about a change (offline -> online) before the backend has signaled its status.

Hey @bhufmann, thanks for the feedback. It sounds like things are behaving quite a bit differently in your environment than they are in mine. Could you tell me a little more about your set up (OS and server executable in particular) so that I can try to reproduce what you're seeing?
@colin-grant-work yes, let's have chat. Ping me at work. Maybe include @ankusht-work since he is also looking at this.

Hey @bhufmann, thanks for the feedback. It sounds like things are behaving quite a bit differently in your environment than they are in mine. Could you tell me a little more about your set up (OS and server executable in particular) so that I can try to reproduce what you're seeing?
@colin-grant-work yes, let's have chat. Ping me at work. Maybe include @ankusht-work since he is also looking at this.

@colin-grant-work @bhufmann would it be worthwile to design the Trace Server to be easier to spawn and handle, as in standardizing its output and not showing dialogs that could block the startup? This way you would safely listen for stdout and/or stderr for the OK message, or listen for some error message or some exit code?

@colin-grant-work @bhufmann would it be worthwile to design the Trace Server to be easier to spawn and handle, as in standardizing its output and not showing dialogs that could block the startup? This way you would safely listen for stdout and/or stderr for the OK message, or listen for some error message or some exit code?

@colin-grant-work @bhufmann would it be worthwile to design the Trace Server to be easier to spawn and handle, as in standardizing its output and not showing dialogs that could block the startup? It could be set with a cli flag perhaps? This way you would safely listen for stdout and/or stderr for the OK message, or listen for some error message or some exit code?

@marechal-p Unfortunately, the Trace Compass server startup is not straight forward to change. The print-outs are actually not created by the Trace Compass code, it's coming from libraries that we use as well as in the error case where the server returns non-zero the process launcher does some error print-out as well before exiting. We can't disable them. Also, the case of a successful start of the server, the process doesn't exit doesn't help.
Having said that, I think we should investigate how the startup procedure of the server so that it's more predictable and the Theia extension hopefully can make use of a deterministic behavior.
I think this patch is already an improvement, because it gives visual feedback that something is starting (or stopping). I tested it in GitPod and my company internal environment and it works as described.
So, I suggest to merge it as is and improve on it in a subsequent activity.
Any thoughts?

@colin-grant-work @bhufmann would it be worthwile to design the Trace Server to be easier to spawn and handle, as in standardizing its output and not showing dialogs that could block the startup? It could be set with a cli flag perhaps? This way you would safely listen for stdout and/or stderr for the OK message, or listen for some error message or some exit code?

@marechal-p Unfortunately, the Trace Compass server startup is not straight forward to change. The print-outs are actually not created by the Trace Compass code, it's coming from libraries that we use as well as in the error case where the server returns non-zero the process launcher does some error print-out as well before exiting. We can't disable them. Also, the case of a successful start of the server, the process doesn't exit doesn't help.
Having said that, I think we should investigate how the startup procedure of the server so that it's more predictable and the Theia extension hopefully can make use of a deterministic behavior.
I think this patch is already an improvement, because it gives visual feedback that something is starting (or stopping). I tested it in GitPod and my company internal environment and it works as described.
So, I suggest to merge it as is and improve on it in a subsequent activity.
Any thoughts?

@bhufmann, one problem here is that defining 'success' in starting the process is not entirely straightforward. One server executable I'm using directs all output to stderr, so receiving stderr data may count as a success. On the other hand, if the trace compass server finds a bad Java environment, it emits an empty string to stderr, then shows a dialogue, and only exits once the user has interacted with the dialog. Since the problem you mentioned was that the backend was never resolving correctly, I'm inclined to let the the backend resolve prematurely if it detects any output, and then rely on the timeout to reject if the server never in fact registers as online. This should prevent the program from getting into a state where the frontend knows about a change (offline -> online) before the backend has signaled its status.

Sounds like a good compromise.

@bhufmann, one problem here is that defining 'success' in starting the process is not entirely straightforward. One server executable I'm using directs all output to stderr, so receiving stderr data may count as a success. On the other hand, if the trace compass server finds a bad Java environment, it emits an empty string to stderr, then shows a dialogue, and only exits once the user has interacted with the dialog. Since the problem you mentioned was that the backend was never resolving correctly, I'm inclined to let the the backend resolve prematurely if it detects any output, and then rely on the timeout to reject if the server never in fact registers as online. This should prevent the program from getting into a state where the frontend knows about a change (offline -> online) before the backend has signaled its status.

Sounds like a good compromise.


Not reporting a device as unavailable

I have a door contact that is currently unavailable because of low battery, however, Watchman is not reporting this device to be unavailable. Is Watchman limited to certain types of devices?

Hey @jake404, in order to be reported by watchman, your device (entity) ID should be referenced by one of your yaml configuration files. If that is true, what exactly ID is?

Ok, I misunderstood how Watchman looked at entities. I thought it looked at all entities, not just the ones referenced in the configuration files.


RemoveUnusedCode regression in v20180204

There seems to be an issue with the v20180204 Closure Compiler release where some code seems to be altered that shouldn't be. The previous v20180101 (and others) work without issue. The reported warnings seem to be identical and can be ignored.
This was reported by a shadow-cljs user but I managed to trace this down to the recent Closure release and reproduced it with just the distributed .jar files.
Originially this was discovered as part of a ClojureScript build which imported the quill npm package via react-quill, which stopped working when I released a new shadow-cljs version using v20180204.
Steps To Reproduce
Download necessary things
curl -O<EMAIL_ADDRESS>curl -O http://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20180204/closure-compiler-v20180204.jar
curl -O http://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20180101/closure-compiler-v20180101.jar

Compile with bad version
java -jar closure-compiler-v20180204.jar --js quill.js -O SIMPLE --js_output_file compiled.js

Open Browser

open index.html

Fails with Error (See Browser Console)
Uncaught TypeError: Cannot call a class as a function
    at e.a (compiled.js:102)
    at new e (compiled.js:229)
    at a.value (compiled.js:218)
    at new c (compiled.js:76)
    at index.html:4

Compile with good version
java -jar closure-compiler-v20180101.jar --js quill.js -O SIMPLE --js_output_file compiled.js

Reload browser and Error is gone.
Running git bisect traced down this issue to this commit:
6b807c063d42a463e3c32e5911c695a0976e2b67 is the first bad commit
commit 6b807c063d42a463e3c32e5911c695a0976e2b67
Author: bradfordcsmith<EMAIL_ADDRESS>Date:   Wed Jan 17 14:24:56 2018 -0800

    RemoveUnusedCode: remove `x instanceof UnusedName`

    -------------
    Created by MOE: https://github.com/google/moe
    MOE_MIGRATED_REVID=182269894

:040000 040000 d44ac3cdd98601b33b21192fada4fc0957a18efc ac0a44df4d8bee7350d32e3bbe4933a15f9d5151 M      src
:040000 040000 a6510a4aa77bde61508ea6c33fbdf6601f8b61e0 feb62fb9bd9b4cd4cea6f3b32ee552b293971c70 M      test

Were you able to determine what code was unexpectedly removed?

Compiling with source maps points me to line 1023 which is one of those babel generated class checks.
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

https://gist.github.com/thheller/7f43caf785f1846ef6d0cd05a7bcbabc#file-quill-js-L1023
which is called in the constructor a few lines later (1085).
  function Quill(container) {
    var _this2 = this;

    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

    _classCallCheck(this, Quill);

https://gist.github.com/thheller/7f43caf785f1846ef6d0cd05a7bcbabc#file-quill-js-L1085
Note that the gist is not original quill.js. It is the raw input generated by shadow-cljs when passing it to the closure compiler. Not that it matters since the error occurs without that.
I was not able to identify what code exactly was removed/changed.

Ok, there is the "instanceof".  I think I guess the chain of events:  "Constructor" is not used for anything but the "instanceof" check.  The logic added in the problematic change is trying to remove definitions only used for instanceof checks.  It incorrectly replaces the "instanceof" expression with "false".  The function is that inlined, and the rest of the constructor body removed.
Thanks for the details, this should be easy enough to back off when the definition of the variable isn't a known object.

Here's a simpler repro.
var C = function C() {
  if (!(this instanceof C)) {
    throw new Error('not an instance');
  }
}
use(new C());

RemoveUnusedCode is failing to recognize that the inner name C is aliased with the outer name C, so instances can get created that way.

fix sent for internal review


Allow for mid-circuit correction

M3 can mitigate mid-circuit measurements, provided that the results are not used until the end, e.g. no controlling gates based on the measured outcomes.  Those cases need per-shot correction.
I think we are already setup for this, but we need a new routine that looks for correctable mid-circuit measurements.  Something like a generic measurement_mapping to go with final_measurement_mapping?

This is actually a bit more difficult than I thought because one can duplicate physical qubit indices, which means that they cannot be used as keys in the mapping directly

This was done in #133


Performance  - Linting with Type Information

From https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/TYPED_LINTING.md

...by including parserOptions.project in your config, you are essentially asking TypeScript to do a build of your project before ESLint can do its linting. For small projects this takes a negligible amount of time (a few seconds); for large projects, it can take longer (30s or more).
Most of our users are fine with this, as they think the power of type-aware static analysis is worth it. Additionally, most users primarily consume lint errors via IDE plugins which, through some caching magic, do not suffer the same penalties. This means that generally they usually only run a complete lint before a push, or via their CI, where the extra time really doesn't matter.

Using eslint-config-xo-typescript with atom-linter-xo, Atom can hang and take upwards of 30 seconds to process a file when opening it.
It's pointed out by the linter-ui busy signal indicator History, which mentions  "XO: running on foo.ts (29s)"
I've opened this issue here as my initial thought was to have a way of disabling typed linting while using an editor. After reading the above link, a better solution might be to figure out what is causing Atom to hand while atom-linter-xo processes the file?

To fix this issue, and #108, it looks like atom-linter-xo would need to adopt a Task based approach. This is just based on me investigating how linter-eslint does it
I'd be interested in taking this on. My initial thoughts are..

I'm unsure if having the Task handle multiple lint/fix jobs at the same time is necessary?
If multiple concurrent jobs is useful, should multiple Task instances be used to manage the jobs, or should a single Task instance run all jobs in additional child processes? The second option is similar to how linter-eslint approaches it.
Are there any libraries that might help simplify any of this work? From what I understand child_process in electron is a little different to what's in node, so there might be compatibility issues there..

Am I overthinking this at all? 😅
In addition to this work, would you be open to PRs for updating dependencies, and adding TypeScript?

I'm unsure if having the Task handle multiple lint/fix jobs at the same time is necessary?

I think it could improve performance, but I'm not sure it's worth the added complexity and also it has to be limited to maybe 4-8 tasks. I think ESLint is planning on adding concurrent listing, so it might be worth just waiting on that.

I think we should just try using one Task for now and see how it goes.

would you be open to PRs for updating dependencies, and maybe revisit TypeScript?

Sure. Feel free to migrate to TypeScript if that would help you.

I think ESLint is planning on adding concurrent listing, so it might be worth just waiting on that.

Ok, single Task running individual jobs. Then when ESLint supports concurrency we can just take advantage of that 👍🏻

Sure. Feel free to migrate to TypeScript if that would help you.

I forgot I had already created #102 before leaving that comment, sorry! I think introducing the Task is enough new complexity..

I've got stuck trying to figure out how to handle the module syntax correctly.. There's a few pieces..

Currently there is some usage of a /** @babel */ comment, which atom uses to automatically transpile with an old version of Babel (v5, maybe v6?)
Some packages are also published as native ESM. So I can either use a previous version that still supports commonjs, or transpile those packages

To transpile native ESM packages, I'd probably need use either https://github.com/atom/atom-babel7-transpiler or https://github.com/smhxx/atom-ts-transpiler to handle any native ESM packages.

So I can either use a previous version that still supports commonjs, or transpile those packages

That would probably be the simplest solution for now.


Program freezing when open

Today My OpenTasks program started to freeze. When I open it, it shows me the main screen without any tasks and an unresponsive GUI until force close dialogue appears.
This begin to happen with me (Zenfone 2 with LineageOS) and another cellphone (Galaxy Edge 7) today.
We are using the F-Droid version, syncing with a Radicale local server + DAVDriod. All calendar + Tasks + Contacts permissions given
Logcat (logcat | grep org.dmfs.tasks):
`10-14 18:07:57.715  1827  2909 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.dmfs.tasks/.TaskListActivity (has extras)} from uid 10031 on display 0
10-14 18:07:57.794  1827  2866 I ActivityManager: Start proc 9942:org.dmfs.tasks/u0a134 for activity org.dmfs.tasks/.TaskListActivity
10-14 18:07:57.828  9942  9942 W System  : ClassLoader referenced unknown path: /mnt/expand/105d61fe-501b-44e2-b702-584cdb928802/app/org.dmfs.tasks-1/lib/x86
10-14 18:07:57.978  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:07:57.981  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: error inflating model for at.bitfire.davdroid
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: org.dmfs.tasks.model.ModelInflaterException: No model definition found for package at.bitfire.davdroid
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at org.dmfs.tasks.model.XmlModel.inflate(XmlModel.java:289)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at org.dmfs.tasks.model.Sources.getAccounts(Sources.java:180)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at org.dmfs.tasks.model.Sources.(Sources.java:142)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at org.dmfs.tasks.model.Sources.getInstance(Sources.java:84)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at org.dmfs.tasks.utils.AsyncModelLoader.doInBackground(AsyncModelLoader.java:73)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at org.dmfs.tasks.utils.AsyncModelLoader.doInBackground(AsyncModelLoader.java:36)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at android.os.AsyncTask$2.call(AsyncTask.java:305)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
10-14 18:07:58.010  9942  9962 E org.dmfs.tasks.model.Sources: 	at java.lang.Thread.run(Thread.java:761)
10-14 18:07:58.172  1827  1848 I ActivityManager: Displayed org.dmfs.tasks/.TaskListActivity: +428ms
10-14 18:08:28.097  9976  9992 I davdroid: [syncadapter.SyncAdapterService] org.dmfs.tasks sync of Account<EMAIL_ADDRESS>type=bitfire.at.davdroid} has been initiated
10-14 18:08:28.181  9942  9954 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:28.182  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:28.202  9942  9994 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:28.203  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:29.047  9942  9994 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:29.048  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:29.482  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:29.483  9942  9954 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:29.489  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:29.491  9976  9992 I davdroid: [syncadapter.SyncAdapterService] Sync for org.dmfs.tasks complete
10-14 18:08:32.992  9976 10001 I davdroid: [syncadapter.SyncAdapterService] org.dmfs.tasks sync of Account<EMAIL_ADDRESS>type=bitfire.at.davdroid} has been initiated
10-14 18:08:33.049  9942  9955 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:33.050  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:35.600  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:35.600  9942  9955 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:35.603  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:35.708  9942  9995 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:35.710  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:35.993  9942  9954 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:35.994  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.160  9942  9994 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.162  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.304  9942  9955 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.307  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.452  9942  9995 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.454  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.614  9942  9954 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.616  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.792  9942  9994 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:36.795  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:37.280  9942  9955 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:37.282  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:37.434  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:37.434  9942  9995 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:37.574  9942  9954 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:37.576  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:37.883  9942  9994 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:37.886  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.053  9942  9955 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.055  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.239  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.240  9942  9995 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.247  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.378  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.381  9942  9954 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.385  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.404  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.405  9942  9994 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:38.410  9976 10001 I davdroid: [syncadapter.SyncAdapterService] Sync for org.dmfs.tasks complete
10-14 18:08:38.414  9942  9959 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:08:58.167  1827  1841 W BroadcastQueue: Receiver during timeout: ResolveInfo{b95113e org.dmfs.tasks/.homescreen.TaskListWidgetProviderLarge m=0x308000}
10-14 18:09:00.274  1827  1841 E ActivityManager: ANR in org.dmfs.tasks
10-14 18:09:00.274  1827  1841 E ActivityManager: Reason: Broadcast of Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://org.dmfs.tasks flg=0x10 cmp=org.dmfs.tasks/.homescreen.TaskListWidgetProviderLarge }
10-14 18:09:00.274  1827  1841 E ActivityManager:  +0% 9942/org.dmfs.tasks: 0% user + 0% kernel
10-14 18:09:00.274  1827  1841 E ActivityManager:   98% 9942/org.dmfs.tasks: 98% user + 0% kernel / faults: 133 minor
10-14 18:09:00.274  1827  1841 E ActivityManager:     100% 9942/org.dmfs.tasks: 100% user + 0% kernel
10-14 18:09:03.868  1827  1842 W ActivityManager:   Force finishing activity org.dmfs.tasks/.TaskListActivity
10-14 18:09:03.876  1827  1842 I ActivityManager: Killing 9942:org.dmfs.tasks/u0a134 (adj 0): user request after error
10-14 18:09:03.937  1827  1922 W InputDispatcher: channel '873ce48 org.dmfs.tasks/org.dmfs.tasks.TaskListActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
10-14 18:09:03.937  1827  1922 E InputDispatcher: channel '873ce48 org.dmfs.tasks/org.dmfs.tasks.TaskListActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
10-14 18:09:03.965  1827  1838 I WindowManager: WIN DEATH: Window{873ce48 u0 org.dmfs.tasks/org.dmfs.tasks.TaskListActivity}
10-14 18:09:03.965  1827  1838 W InputDispatcher: Attempted to unregister already unregistered input channel '873ce48 org.dmfs.tasks/org.dmfs.tasks.TaskListActivity (server)'
10-14 18:09:03.986  1827  1841 I ActivityManager: Start proc 10014:org.dmfs.tasks/u0a134 for broadcast org.dmfs.tasks/.homescreen.TaskListWidgetProviderLarge
10-14 18:09:04.014 10014 10014 W System  : ClassLoader referenced unknown path: /mnt/expand/105d61fe-501b-44e2-b702-584cdb928802/app/org.dmfs.tasks-1/lib/x86
10-14 18:09:04.145 10014 10030 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
10-14 18:09:04.149 10014 10030 W ContentResolver: Failed to get type for: content://org.dmfs.tasks (Unsupported URI: content://org.dmfs.tasks)
`
Any help will be much appreciated

Update: same error with google play version.

It was a DAVdroid issue. Just updated DAVdroid and everything is running now


0.17.12 does not scroll the mais list macOS version

Expected behavior
I what see all items then I use to scroll and new items is shown
Actual behavior
Scroll does nothing
Information about the Issue
version 0.17.12 does not work
version 0.17.11 does
Steps to reproduce the behavior

Extract zip
Install on Application folder
Open app
Use it

Same problem scrolling Docker Hub search on 0.17.13
Information about the Issue
Can't scroll search results in 0.17.13 on Mac OS
Steps to reproduce the behavior

Click to add new container
Search for container.
If the results are more than the window, there are no scrollbars (or scrolling) to view overflow results.

I'm going to revert to 0.17.11
It would be nice to not have to do this (and abandoning Kitematic for Docker Desktop isn't an option since the feature set isn't there yet.

So I think I've found the problem, Kitematic is an Electron app, and there is an issue with the CSS.
This is an issue with other electron apps where the overflow is set to hidden, which this is. I've seen this in the source code.
Only thing is I'm not sure how to build an Electron app from the source code (yet).
For those fixing this, I'd start with changing /styles/container-home.less:
overflow: hidden;
to
overflow: auto;
Hope this helps someone.


Is there any possibility to display label right to left ?

Same as this image.

???

I have same problem too!!!(Right To Left Fonts)


Update version of scrypt to support macOS Mojave

More detail: https://github.com/pbhogan/scrypt/releases/tag/3.0.6

Duplicate of https://github.com/se3000/ruby-eth/pull/35


Make the entire Mirrorful dashboard Mobile-friendly

We should leverage Charka's responsive styles support: https://chakra-ui.com/docs/styled-system/responsive-styles
Everything should be mobile friendly and responsive.

@alexdanilowicz Can we break this down into smaller issues? I can start with the Onboarding flow.

@Pranav2612000 definitely. Starting with onboarding flow would be awesome, thanks for your interest. Want to put up a PR for that and then we can break up into smaller issues. Are you familiar with how Charka responsive styles? https://chakra-ui.com/docs/styled-system/responsive-styles
Appreciate your help!

@alexdanilowicz I believe the other parts of this issue are the:

[ ] Colors view
[ ] Typography view
[ ] Shadow view
[ ] Export Tokens view

I'm a bit familiar with Chakra's responsive styles. I'd like to help out with the first 3 views I've mentioned; if this issue is still open for sharing. 🙂

I'm familiar with Chakra's responsive styles. I'd like to help out with the views I've mentioned; if this issue is still open for sharing. 🙂

Sure it is. Thanks you for helping me @sonylomo
I'm working on the Onboarding flow, you can work on any of the other pages.

@sonylomo absolutely! Do you want to start with the sidebar?

Reopening as it was closed by mistake.


📅Weekly meeting (2019-09-23)

This is wg-outreach's regular weekly meeting with varying agenda, usually presented by wg-outreach members. Mostly meant for wg-outreach regulars, but open for anyone who'd like to contribute to AMP outreach.
Meeting date/time (UTC)
17:00 (10am PT)
Instructions for joining the meeting
Please join us on Google Meet with this link.
Agenda
Note: Add a comment on this issue to propose items for the agenda.

Nothing yet!

I delivered the first-ever talk at Google Devfest 19 at Ranchi, India which I think is the first AMP talk apart from the roadshow. So if possible can we retweet or promote it somehow for Indian user awareness and encourage more response.
https://twitter.com/amanintech/status/1175758658019323905?s=20

@Amanrazdan I canceled this week's meeting as I think the store wouldn't fill 30 mins of discussion, also because the answer is sadly that I don't think we'll be able to do that before we eventually move to a foundation, and the foundation can accept money for the project.
Regarding your tweet, I just liked it from my own account at least, great job!

Thanks @pbakaus


Empty networks evaluate as False

Got tripped up by this recently:
import starsim as ss
m = ss.Module()
n = ss.Network()

print(bool(m))
print(bool(n))

True
False

It's because networks have a defined __len__, which evaluates to 0, which then returns False. I guess this is ok? But it's a bit of a gotcha (it got me!). (Solution is to be sure to use if net is not None rather than if net, of course.)

Definitely something to document :).
Debate topic:  I think length of a network can be a bit ambiguous. It could be the number of nodes or the number of edges, right?  I was expecting number of nodes when I first played around with networks.

True, I think we went with edges since (a) a node with no edges has no effect, (b) many of our networks have all agents as nodes

Going to close this since an edgeless network kind of is "falsey".


form validation

Description
if a user enters numeric values at the place of the name it is accepted whereas it should just accept the character value only.
Screenshots

Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[X] I am a SWOC'24 contributor.

Code of Conduct

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

@Rakesh9100 please assign this issue to me.

i want to work on this under jwoc'24, can i get asssigned

Go ahead @Sanjana787

Hey @Rakesh9100 , can you assign me under JWOC.

Status of your PR @Sanjana787


[WIP] Dockerize

Here is a quick example of how I have dockerized a Symfony application in the past.
My approach tries to adhere to the best practices for each component. E.g. send all logs to stdout, use environment variables (from 12factor.net), use of docker-compose.override.yml, etc.
Again, please do not feel obligated to use any of this but feel free if it's something you find value in.
If you do approve of this approach, I can keep working on this PR and add documentation as well as any additional things you may want. I will also try and stay in the project Gitter if you want to communicate with me there.
/cc: @lynxluna @bepitulaz

Nice! This one is a lot better than my approach. My experience was mostly dealing with Go or Java apps. Admittedly, dockerising php is not as easy as I've thought. This one helps us immensely. I've learnt a lot by reading your commits.
My concern is only that the base images are based on debian, is it possible to shave size by switching into alpine linux? Not a very big deal, but I kinda leaning towards lightweight stuff.
I think this is the way we should go, @mathewpeterson has done a better approach than mine. +1 for this one. What say you, @bepitulaz ?

Hi @mathewpeterson @lynxluna,
I think  @mathewpeterson 's approach is better and also all the parameters have been moved to environment variables. I think we can go ahead by using this PR. Shall we merge it now or later?

@lynxluna, @bepitulaz Good to hear that you like this approach.  I can continue working on it.
@lynxluna Regarding alpine images: I do not have an alpine image as there is always at least one project that runs debian/ubuntu in my data center. And with how Docker/AUFS handles the filesystem (copy on write) there is no increase in storage once you have the image local.  My suggestion is that we use the current image and if there's enough support by it, we can work on getting an alpine image created.
@bepitulaz There are some more things that I would need to add, e.g. documentation and maybe a Makefile in order to steamline things for new folks. There is also an assumption made with the configuration with regards to how the networking works: It expects some additional third party docker containers to be running in order to route the request via dns. I am not really sure how to solve this properly besides just using ports instead of dns.

@mathewpeterson yes, let's go with the debian one and re-iterate later on. I would love to know how to setup the docker_public network. Is that just created using docker network or there're other configurations needed?

@lynxluna Like I said, I think there's work for me to remove this as a dependency. Currently, it uses this little project that I created a while ago: https://github.com/mathewpeterson/my-docker-environment


Adding EventHub creation to deployment script

The deployment script now has

Flag to deploy Eventhub
If true, will deploy Eventhub namespace and Eventhub
And store the policy connection string in Key Vault


Bangumi metadata provider (Chinese)

First of all, thanks for working on this wonderful project :)
Wonder if anyone is interested in metadata providers in Chinese. Bangumi is a good one. I did some poking and have something working for myself on Kavita (see screenshot for Full Metal Alchemist). Can tidy it up for a pull request if this seems valuable.

Looks good to me. If you don't mind I can take your changes and finish the provider


Reconnect policy does not work

The current config have a "Policy" option that allows to specify what should checked to decide if a new session should spawned or an old should reused:
## Policy - session allocation policy
# Type: enum [ "Default" | "UBD" | "UBI" | "UBC" | "UBDI" | "UBDC" ]
# Default: Xrdp:<User,BitPerPixel> and Xvnc:<User,BitPerPixel,DisplaySize>
# "UBD" session per <User,BitPerPixel,DisplaySize>
# "UBI" session per <User,BitPerPixel,IPAddr>
# "UBC" session per <User,BitPerPixel,Connection>
# "UBDI" session per <User,BitPerPixel,DisplaySize,IPAddr>
# "UBDC" session per <User,BitPerPixel,DisplaySize,Connection>

But the code at https://github.com/neutrinolabs/xrdp/blob/devel/sesman/session.c#L167 forgot to check if the SESMAN_CFG_SESS_POLICY_D flag is set or not. So it was not possible to select a policy that does not account the display size. This is a problem because most rdp clients can only resize through a reconnect.

What is your backend ? Xorg X11rdp or Xvnc ?
I've made some tests and the policy is correct when using Xorg backend  (tried to reconnect with different size, policy tested Default, UBD, UBDI) : when using a different size I reconnect to the same session

My backend is xorg.
I looked into it again and it seems that my testing setup was missing https://github.com/janLo/xrdp/commit/12092e809840f1d0ad106f7171b197248ef4c351. So the PR above seems to be void at this commit also fixes the bug.
On the other hand: why do you branch for the backend within the loop? You set the SESMAN_CFG_SESS_POLICY_D flag on all xvnc connections in https://github.com/janLo/xrdp/blob/12092e809840f1d0ad106f7171b197248ef4c351/sesman/session.c#L113 so it can be reduced to one if statement.

FYI, the problem was that my testing environment was originally on v0.8 and then switched to "master" instead of "devel" - where the commit 12092e809840f1d0ad106f7171b197248ef4c351 is not present.


[Q] how to decrease steps of x access for some experiments in chart

I want to decrease steps to 200 for x axis so all experiments have the same x axis value(steps)

You can click the "pencil" icon in the upper right of the chart when you hover over it.  That will open the edit modal.  From there you can set the "Max" value of the "X-Axis" property to 200.

thanks so much


token signature verification fails for ECDSA and jwks starting with java 15

The JWT token is not verified when using the key from jwks in the latest java version (or >=15.0.2), but it worked with older java versions (11, 13, 14).

Reproduction

Please run the attached java code jwt verification.zip
You need to serve the atached keys.json and update the url in the java sample.
When using an older java version (up to 14.0.2) it verifies the token using the key from the provided jwks.
When using java 17, it throws
Exception in thread "main" com.auth0.jwt.exceptions.SignatureVerificationException: The Token's Signature resulted invalid when verified using the Algorithm: SHA256withECDSA
at com.auth0.jwt.algorithms.ECDSAAlgorithm.verify(ECDSAAlgorithm.java:52)
at com.auth0.jwt.JWTVerifier.verify(JWTVerifier.java:299)
at com.auth0.jwt.JWTVerifier.verify(JWTVerifier.java:283)
at com.servoy.extensions.plugins.jwt.client.TestJWKS.verifyToken(TestJWKS.java:129)
at com.servoy.extensions.plugins.jwt.client.TestJWKS.main(TestJWKS.java:121)
Environment Windows 64-bit

Version of this library used: 3.18.1
Version of Java used: 17.0.1 (fails starting with java version 15.0.2)
Other modules/plugins/libraries that might be involved: jwks-rsa-java
Any other relevant information you think would be useful:
Verifying the token is successful with any java version I tried (from java 11 to java 17) when providing the public key (not via jwks), as demonstrated in the attached sample.
The public key obtained from jwks looks the same in any java version I tried, therefore I suspect that the issue is related to the token verification part and not to the public key.

I think this as well with 17.0.1

Do we know what the underlying exception that the JDK is throwing here? Did one of the string constants for the algorithm get renamed?

The sample code you shared seems to reproduce the issue. But seeing the changelogs for Java 15, though they have disabled support for certain curves in the EC algorithm, the key used in the sample seems to be supported.
I generated a new key pair and the issue is not reproducing in that.
{
    "kty": "EC",
    "d": "R-Xl0RKnGydQkC5CYRv-IQCTHSU_fcH8smkHmtWuHoM",
    "use": "sig",
    "crv": "P-256",
    "kid": "jfUXSPjX9HJfLgYhzSpL68CxRilx6Xrmy9CSOK7lRPs",
    "x": "EzYel6UO99KDYJbEwUscNAn2DcFsLd0Se5KvoMcjviw",
    "y": "XLQ3GYS5DwEuuhQ2zanVWGixBZ-D3-576vZVXFNxvdQ",
    "alg": "ES256"
}

Can you tell us how you generated the keys so that we can try and debug further?

Hello, I just used this site https://mkjwk.org/ to generate the keys and the jwks .. since that was only for testing purposes.

This is the one that I used in the sample,  if it helps:
{
"kty": "EC",
"d": "18HYhm2RcgS8OXbofnClTpFNnEQrSwpnKH6uBuL9pgA",
"use": "sig",
"crv": "P-256",
"kid": "3LNaPaJX93XTknKf0L_RGoZGM0BKaqtWdAzSQxP-FDg",
"x": "yb790G3aOB92lsoGfrhQratQBvA330pi8rMeorATe7c",
"y": "E1WCwNSDv2hp4Ttgu7HY0zbEPpcrHIMnP16XrtMQ69Q",
"alg": "ES256"
}
Public key: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyb790G3aOB92lsoGfrhQratQBvA3\n" +
"30pi8rMeorATe7cTVYLA1IO/aGnhO2C7sdjTNsQ+lyscgyc/Xpeu0xDr1A=="
Private key: "MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCDXwdiGbZFyBLw5duh+\n" +
"cKVOkU2cRCtLCmcofq4G4v2mAA=="

Thanks @meraedit I checked it out and looks like keys generated from the same site works for me in the same sample code. Can you try it again? Probably there was some issue while copying the code or you can check the configuration I have selected and verify whether it is the same you used.

e

The difference is that I selected SHA-256 instead of "Specify" for the Key ID

That shouldn't be an issue, I tested it with SHA as well, it is just a selector and it worked. Is the issue still reproducing for you if you generate new keys from the same website?

I generated another one and it doesn't work:

Public and Private Keypair
{
"kty": "EC",
"d": "vpdg7gNZ4qF7RaAvPJ87b1QQEWzCzRrN_4L9QQeeaM8",
"use": "sig",
"crv": "P-256",
"kid": "123",
"x": "b25UZzwkKpPK5FlPjAtqhlii6MkOnhxqXo9pK3Mfa6A",
"y": "z2lSXy6byzVdSExkqlsYLd8Lrzqw1rYEiEzWWOQ8rNI",
"alg": "ES256"
}
Private Key (X.509 PEM Format)
-----BEGIN PRIVATE KEY-----
MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCC+l2DuA1nioXtFoC88
nztvVBARbMLNGs3/gv1BB55ozw==
-----END PRIVATE KEY-----
Public Key (X.509 PEM Format)
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEb25UZzwkKpPK5FlPjAtqhlii6MkO
nhxqXo9pK3Mfa6DPaVJfLpvLNV1ITGSqWxgt3wuvOrDWtgSITNZY5Dys0g==
-----END PUBLIC KEY-----
-----BEGIN CERTIFICATE-----
MIIBDTCBtKADAgECAgYBfwxqNG0wCgYIKoZIzj0EAwIwDjEMMAoGA1UEAwwDMTIz
MB4XDTIyMDIxODEwMzkyMVoXDTIyMTIxNTEwMzkyMVowDjEMMAoGA1UEAwwDMTIz
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEb25UZzwkKpPK5FlPjAtqhlii6MkO
nhxqXo9pK3Mfa6DPaVJfLpvLNV1ITGSqWxgt3wuvOrDWtgSITNZY5Dys0jAKBggq
hkjOPQQDAgNIADBFAiEAjP7/STTMlzShep461Bh8Cv0rZ26xax+nKEDUTyVJb2QC
IA1e6w92PjqR2mxkefIQ59NMvH1MBO+Nurju3ZLSyQ9F
-----END CERTIFICATE-----

@meraedit I guess we figured the issue. You are choosing the option with a disabled curve type secp256k1. You can read it in this changelog for Java 15 - https://www.oracle.com/java/technologies/javase/15-relnote-issues.html#JDK-8237219
You can choose the option which doesn't mention the curve (1st option in the website) and it should work.
Since this is a change in JDK itself I guess we won't be able to support this now. I will close this issue for now but please feel free to reopen it if there is more doubts regarding this

Thank you for investigating the issue, it's good to know that some types of keys are not not supported by java anymore.
However, something is still unclear to me. I see there is a secp256k1 option for the curve on the site, but I selected P-256 as you can see in my screenshot.

I also see "crv": "P-256" for all the keys I pasted. Or is there something wrong with the site? Selecting P-256 and it actually generates something else?

I generate with
Curve - P-256
Key Use - Signature
Algorithm - ES256: ECDSA using P-256 and SHA-256
Which generates following values
JWK
{
    "kty": "EC",
    "d": "wUnTMCQ3g3l4gUrIP5ygaOBQPj5fPFeO7lf708sQAgU",
    "use": "sig",
    "crv": "P-256",
    "kid": "123",
    "x": "PQNy-oSvcVHzbyUC7lHUlrGf3AjRiWuFZwwkTjxCL14",
    "y": "FS8mxmVEZUx6J1QYGOwXcPj6_aeGkry_oSQCv4FKAzM",
    "alg": "ES256"
}

Private Key
-----BEGIN PRIVATE KEY-----
MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCDBSdMwJDeDeXiBSsg/
nKBo4FA+Pl88V47uV/vTyxACBQ==
-----END PRIVATE KEY-----

Public Key
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPQNy+oSvcVHzbyUC7lHUlrGf3AjR
iWuFZwwkTjxCL14VLybGZURlTHonVBgY7Bdw+Pr9p4aSvL+hJAK/gUoDMw==
-----END PUBLIC KEY-----

And for this, the sample code you shared seems to work. Can you try these values in your code?

I can confirm that the pair above works, thank you.
But I generated the one in the screenshot with the same Curve - P-256, Key Use - Signature, Algorithm - ES256: ECDSA using P-256 and SHA-256 and my sample fails. So I don't really know what is the difference then.

I am using JDK v15.0.2 and v.17.0.1 and it's the same behavior with openjdk v.17.0.1

@meraedit I guess the issue is with the website. Some keys generated doesn't seem to be working. Can you try with other algorithms or generate the keys using openssl in one of the supported curves?

Thank you, I will use openssl from now on.
RSA algo works, we only had problems with ECDSA and jwks. It is weird that ECDSA without jwks worked also.


updates docs for supported masking strategies and associated configs

Purpose
Update docs to reflect current supported masking strategies
Changes

Adds to masking_strategies.md. Screenshot of page for ease of review:

Checklist

[x] Applicable documentation updated (guides, quickstart, postman collections, tutorial, fidesdemo, database diagram
[x] Good unit test/integration test coverage

Ticket
Fixes #155

@seanpreston thanks for the comments! I've made those updates


Define database schema in models.py

Co-authored-by: Dongbo Hu<EMAIL_ADDRESS>

Prior work

@dhimmel Please feel free to close this PR. Thanks.

Please feel free to close this PR

I think you mean merge (:


[SPARK-47260][SQL] Assign name to error class _LEGACY_ERROR_TEMP_3250

What changes were proposed in this pull request?

This PR renames a few error classes related to usage of json to dataType errors:
_LEGACY_ERROR_TEMP_3250 => INVALID_JSON_DATA_TYPE
Because _LEGACY_ERROR_TEMP_3249 and _LEGACY_ERROR_TEMP_3251 are no longer found in error-classes.json, this PR only includes _LEGACY_ERROR_TEMP_3250.
Also, this PR changes tests in corresponding test suite to use checkError() method which checks the error class name, context, error message parameters, etc.
Why are the changes needed?

Proper error names and messages improve user experience with Spark SQL.
Does this PR introduce any user-facing change?

Yes, this PR changes user-facing error class and message.
How was this patch tested?

By running test cases from JsonFunctionsSuite and DataTypeSuite.
Was this patch authored or co-authored using generative AI tooling?

No

Thank you @wayneguow @LuciferYang
Merged to master

+1, LGTM


test_regressor.py and test_classifier.py occasionally taking forever and segfaulting

Describe the bug
tests/safeds/ml/classical/regression/test_regressor.py and tests/safeds/ml/classical/regression/test_classifier.py occasionally take very long. I usually just abort them after half a minute or so, then restart, which works fine most of the time.
When the test gets stuck and I don't abort manually, this happens after several minutes:
[...]
tests/safeds/ml/classical/regression/test_lasso_regression.py ....                                                                                [ 82%]
tests/safeds/ml/classical/regression/test_random_forest.py ...                                                                                [ 82%]
tests/safeds/ml/classical/regression/test_regressor.py ...................................................................Fatal Python error: Aborted

It goes on to print stacktraces for all threads, dumps a list of all imported python modules, and ends with a segmentation fault message.

For the test_regressor.py, I have observed the segfault 3 times within 10 attempts.
For test_classifier.py, it's rarer. Here, I have observed the segfault only one time so far.

To Reproduce
Run pytest a bunch of times. Don't abort when it seems to get stuck, but wait (even if it takes 5 minutes).
You'll probably get the "hang up" behaviour within 10 tries or so.
Setup:
OS: Linux
IDE: PyCharm
Python version: 3.10.6, inside poetry, inside venv
Poetry version: 1.4.2
pytest version: 7.3.1

Expected behavior
The tests should not get stuck. Check for possible endless loops or endless recursions.
If this cannot be prevented in any way, there should at least be a timeout / some way to gracefully end the test with somewhat useful error message.

Happened less often to me in the last week; still not sure what it's caused by.
Possibly some sort of memory limit was hit, triggering the OOM killer.

I could reproduce this:

Yes, it only happens when running pytest from the console.
Passing the test folder explicitely with pytest tests does work however.

I just got an "low memory" warning by PyCharm while running pytest. It suggested to increase the heap size to 2048 MB (was at 19XX).
That might be an indicator that memory consumption was indeed a problem.

Cannot reproduce this anymore.


BAU Move Sentry error handling into app error handler

Remove the ManagedError error design patter, favour moving capturing
exceptions into the app default error handler. This means that anything
that hasn't been handled further up the stack will eventually go to
Sentry unless it's filtered out by Sentry's rules (status code 4xx etc.)
This will need to happen in conjunction with team guidance on how to
capture Sentry exceptions where error are manually handled rather than
being passed down the middleware stack.

This was implemented in https://github.com/alphagov/pay-toolbox/pull/1104


Repo sync working branch

  Too many files - PR blocked
This public repo applies limits on the number of files that can be merged in a single pull request (PR):

Warning Warning message and ability to unblock PR using the Merge large pull request* label - 30
Block Block message and PR is blocked - 100

This pull request will change 112 files, which exceeds the block limit of 30. This PR will not be merged.
To merge this pull request
You must either reduce the number of files being changed to below the 100 file limit or split the changes into multiple PRs. PRs must not have more than 100 files and fewer than 30 files if possible.
To reject this pull request
If you want to abandon these changes and not merge this PR, click Close pull request at the bottom of this page to close it without merging. Work with your team to revert any changes that aren't correct.
* You must have write or triage access to this repo to add labels.


risk of .rtx.toml in project directory being leaked

So years ago I once accidentally leaked the aws creds for the Heroku CLI by doing npm publish in a directory with a direnv .envrc file inside of it, you can actually still see it in the old releases: https://www.npmjs.com/package/heroku-cli/v/6.1.0?activeTab=code
It took months for someone to actually find out this had happened and those creds were out in the open the whole time. It was a disaster and I was embarrassed. However, I think this is something that is likely to happen to a lot of people. At the time, npm publish didn't show the files that get packed which made this a lot harder to find.
However my concern isn't npm. My concern is anything that might want to package up an entire directory including dotfiles might also pick up the .rtx.toml which may contain sensitive data.
I think the best solution would be if the .rtx.toml could be outside of a project directory. However if you had a setup like ~/src/myproj, then if you put it into ~/src/.rtx.toml you can't have it be unique per project. I'm wondering if we could use an existing convention here (if anyone knows of one, I don't), or maybe we start one like ~/src/.securedot/myproj/.rtx.toml or something like that.
What do people think? Of course this would be optional and you could have an .rtx.toml file in the project (for non-sensitive data) and one in securedot.

I use a monorepo, so that would immediately cause some awkwardness, all projects would inherit the same configuration.
Similarly, I think it is nice if there is a default mechanism to have local overrides that should never be committed to source. Off the cuff suggestion, but if there were a .rtx.toml and optional .rtx_local.toml file, only the former would be committed. .rtx.toml would be the default configuration, but .rtx_local.toml would be source control ignored, making it more appropriate for secrets or other user specific configuration? Alternatively, .rtx.toml could have a key, similar to env_path, which references a supplemental configuration filename that could be stored at an explicit, non-committed location.

I use a monorepo, so that would immediately cause some awkwardness, all projects would inherit the same configuration.

No they wouldn't, but my example was bad so it might not have made sense what I was proposing. I wrote ~/src/.securedot/.rtx.toml, but I meant to put ~/src/.securedot/myproj/.rtx.toml. The point of this is a centralized directory higher than the project can optionally define rtx.tomls that don't conflict.
I also agree that a .rtx_local.toml file makes sense. I was actually thinking about this the other day though was thinking .local.rtx.toml to make it behave a bit like DNS. I like what dotenv-flow has done here and was thinking we could support something like this (loaded in order, so the lower ones override higher ones):
defaults.rtx.toml # intended to be committed to the project
.rtx.toml
.testing.rtx.toml # loaded if RTX_ENV=testing
.production.rtx.toml # loaded if RTX_ENV=production
.local.rtx.toml
.local.testing.rtx.toml # loaded if RTX_ENV=testing

Default .rtx.toml and a standardized local override would be sufficient for my purposes, but I like the optional generic mechanism to pull in a different one if required. However, I am less a fan of the variable loading order depending upon the filename, Would prefer the environment variable always takes priority, something like: .rtx.toml -> local override -> RTX_ENV.
To engage in a bit of bike-shedding...it would annoy me ever so slightly if the .rtx.toml and local override did not get sorted next together (ie .rtx.toml and .local.rtx.toml are unlikely to be listed next to each other). Obviously, a minor detail, but wanted to mention it.

Would prefer the environment variable always takes priority, something like: .rtx.toml -> local override -> RTX_ENV.
I actually just wanted to match dotenv-flow, but it looks like it works the way you described actually so that's fine.

it would annoy me ever so slightly if the .rtx.toml and local override did not get sorted next together (ie .rtx.toml and .local.rtx.toml are unlikely to be listed next to each other).

that's actually a good point. .rtx.local.toml, .rtx.production.toml, .rtx.production.local.toml might be better for that reason.

Looking more closely at the dotenv-flow priority list, I see what you mean. I do not care for that implicit .local override if it matches the RTX_ENV, but I can imagine someone benefiting from that use case. I could only hope that the default logging was noisy enough that it would indicate when the .local overrides were taking effect, but some could disagree.


fix a launch issue when the user has deleted the app

Fix a launch issue when the user has deleted the app (introduced in https://github.com/flutter/flutter/commit/5bce2fbdec781b4cd8d272cb1e89dc46461d1899). fix https://github.com/flutter/flutter/issues/2579
This makes all android launches slightly slower, but I couldn't find a quicker way to verify that the app is installed.

LGTM but I wonder if another way to approach this problem is to optimistically try to run the app and then catch the error if that fails and then use that as a signal to install the APK.

is to optimistically try to run the app and then catch the error if that fails and then use that as a signal to install the APK

makes sense. I'll land this as is; using the run-fail-install-run technique will be a good thing to keep in mind if we re-do the launch process for Q2

@devoncarew Can you file a bug to track that? (you can mark it with the "flutter 2.0" milestone to make it clear that it's not urgent)

Sure, done.


Rake Tasks Disabled

I'm currently getting the following error:
Rollbar is disabled for Rake tasks since your Rake version is under 0.9.x. Please upgrade to 0.9.x or higher.
I'm currently running rake (11.1.2) and ruby 2.3.1

Hi @TravisSperry, we'll take a look at this. Thanks

@TravisSperry can you add require 'rake' before Rollbar.configure? Confirm us this and we'll write a fix for this.

Confirmed. That works.

I am getting this error at the moment still, running on Rake 11.1.2. I get this issue when I run bundle exec sidekiq, and when launching rails console and it is happening because Rake is not loaded at either point. I believe that the rake.rb file in Rollbar should attempt to load Rollbar, and do nothing if it can't find it:
begin
  require 'rake'
rescue LoadError
end

This way, the constant will be loaded if Rake is present in the load path.

@radar you are right, we pushed this commit https://github.com/rollbar/rollbar-gem/commit/779c25170080b837682856ff2a80cd7a3ac19935 but we removed those require_dependency for some issues. But I think we need to add them again and fix those issues.
Let me work on this and I'll reach you ok?
Thanks!

Sounds good to me, thanks @jondeandres!

@TravisSperry did you just want to get rid of the warning or were you actually trying to use rake with rollbar without using rake ?

Just the warning.
Travis Sperry
<EMAIL_ADDRESS>
On Sep 15, 2016, at 12:33 PM, Michael Grosser<EMAIL_ADDRESS>wrote:
@TravisSperry https://github.com/TravisSperry did you just want to get rid of the warning or were you actually trying to use rake with rollbar without using rake ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/rollbar/rollbar-gem/issues/466#issuecomment-247380794, or mute the thread https://github.com/notifications/unsubscribe-auth/ADAMhxvHxrbQ6MfenYEnz5AxXtANy1Ucks5qqXN0gaJpZM4IbkR0.


Microsoft Shell Library files reuse the Microsoft Shell namespace, causing conflicts with the actual .NET shell implementation

The namespace in these files should be changed everywhere in these files to be MahApps.Metro.Windows.Shell.  Then in places where these class are used, the MahApps.Metor.Windows.Shell should be referenced.
The same applies to the use of the namespace Standard in all files in ./Standard/*.xaml.

we leave this as it is.


Add note about clang-format versions

After struggling with this, just wanted to pass along this hard-earned information for others.
Description
Updates README to hopefully save others pain in setting up clang-format for their projects.
Reviewer Checklist:

[ ] Read the pull request description
[ ] Perform a code review on GitHub
[ ] Confirm all CI checks pass and there are no build warnings
[ ] Pull, build, and run automated tests locally
[ ] Perform manual tests of the fix or feature locally
[ ] Add any review comments, if applicable
[ ] Submit review in GitHub as either

[ ] Request changes, or
[ ] Approve

[ ] Iterate with author until all changes are approved
[ ] If you are the last reviewer to approve, merge the pull request and delete the branch

Thanks, @tanaya-mankad ! Didn't actually know there was already discussion on this in the guidelines.md -- apologies for missing that.
I think the main issue was I hadn't seen guidelines and had installed clang-format 18 and couldn't figure out why things weren't working for me until I realized that even if you specify the clang-format version in your .clang-format file, it matters what version of the clang-format engine is doing the formatting and checking the formatting on the CI -- apparently since those versions were different there was slight differences in formatting behavior which caused the CI to fail. I'm not sure if that extra information needs to be added to the guidelines file or not as, had I actually followed your instructions, I wouldn't have had an issue ;-)

Let's move that critical info to the readme then! It's undoubtedly the right place for install dependencies. I'll make that change.

Shall I delete this PR at this point?

Sorry, i think it just got missed? I'll check today!

Done, thanks!


How do I map this onto ConfigMgr implementation?

When I implemented WDAG in group policy (using these docs) it worked like a dream, and I pulled the policy easily too. I setup via ConfigMgr and it hasn't worked right at all. Can ConfigMgr team do more detailed (including troubleshooting) rather than reference these docs that discuss group policy? It's clearly working differently.
I have tried wdagtool cleanup to reset my pc, but ConfigMgr is doing
could you add log file information regarding where ConfigMgr is recording what it is doing and applying policy?

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

ID: dfb9445a-681d-24b6-5241-4ebe311f5236
Version Independent ID: aea60f74-212c-e24e-f164-28a555bc1727
Content: Windows Defender Application Guard (Windows 10)
Content Source: windows/security/threat-protection/windows-defender-application-guard/wd-app-guard-overview.md
Product: w10
GitHub Login: @eross-msft
Microsoft Alias: lizross

@andreabichsel  I'm no longer on this team, I believe someone else has taken over these articles. I've sent an email to @Justinha so he can either forward this issue or work on it himself.

@TechsUK sorry for delay here. I don't see how to redirect your comment, so you might submit this feedback at the SCCM topic too: https://docs.microsoft.com/en-us/sccm/protect/deploy-use/create-deploy-application-guard-policy
If you are still having trouble, here are other options:

Post on Configuration Manager forums. These are moderated by our community MVPs who are very experienced, knowledgeable, and helpful.
Use Microsoft Support to search for the issue, or open a case with professional support.
Contact your Microsoft Premier team, such as a Premier Field Engineer or Technical Account Manager.


Increase key retrieval worker launch interval to hourly (EXPOSUREAPP-3455)

The worker for periodic key retrieval and submission should launch every hour, since we now download the hourly key packages.
The other changes remove the unnecessary indirection for determining the launch interval, and add a test that actually checks the created worker request instead of the constants.

Code looks nice. Testing on device.

please wait with merging some minutes (sent one question to d4ken about potential issue..)

all right, did not reach him yet. Feel free to merge,
Code looks good.

@d4rken
Hi Matthias, hope you're fine.
If you find 2 minutes, could you have a quick check at #1691, if hourly fetching DKs will mitigate/fix #1691 from 1.7.0 on?
Kind greetings, v.


Documentation: app gw autoscaling requirement

From what is written on https://github.com/Azure/application-gateway-kubernetes-ingress/blob/master/docs/install-existing.md one can get the impression that the ingress controller does not support autoscaling application gateways. Does this apply? I have verified that several ingress controller operations work as expected, even if autoscaling is enabled.
Current doc:
An existing Azure Application Gateway v2 with manual scaling configured (not set to AutoScale).

@landro Thank you for verifying that Ingress Controller works with Autoscale enabled.
I dug into this as well - we added this line to the documentation https://github.com/Azure/application-gateway-kubernetes-ingress/pull/82 at a time when an older version of the underlying SDK did not yet support Autoscale-enabled Application Gateways.  As you found out - this is no longer the case.
I will update the documentation momentarily.


splitchunks.cachegroups[react] has an unknown property 'automaticNameprefix'

Bug report

What is the current behavior?
Feedback a bug.
webpack --config webpack.proconfig.js
If the current behavior is a bug, please provide the steps to reproduce.
const splitChunks = {
    chunks: "all",
    minSize: 20000,
    minChunks: 1,
    maxAsyncRequests: 6,
    maxInitialRequests: 4,
    automaticNameDelimiter: "-",
    cacheGroups: {
        react: {
            automaticNameprefix: "react",
            test: /[\\/]node_modules[\\/](react|react-dom)/
        },
...

What is the expected behavior?
https://webpack.js.org/plugins/split-chunks-plugin/
splitChunks.automaticNamePrefix
string = ''
Sets the name prefix for created chunks.
In the API description, use automaticNameprefix in splitChunks.
But it failed, And I managed to use "name".

Other relevant information:
webpack version:  5.11
webpack-cli version:  4.3
Node.js version: 12.13
Operating System: win10
Additional tools:

For maintainers only:

[ ]  webpack-4
[ * ]  webpack-5
[ * ]  bug
[ ]  critical-bug
[ ]  enhancement
[ ]  documentation
[ ]  performance
[ ]  dependencies
[ ]  question


Hey

Please share a file

ok!

De: mthe396 @.>
Enviado: domingo, 25 de julho de 2021 19:15
Para: thehackingsage/hacktronian @.>
Cc: Subscribed @.***>
Assunto: [thehackingsage/hacktronian] Hey (#27)
Please share a file
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/thehackingsage/hacktronian/issues/27, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AITXMF7A5YARGTONODUIL4TTZRPG7ANCNFSM5A62FTSA.


Model endpoints (unmanaged): environment variables are not updated after updating the service

Package Name: azureml-core
Package Version: 1.38.0
Operating System: Windows 10
Python Version: 3.8

Describe the bug
I use Environment.environment_variables to provide values to our model services (deployed to AKS). The Environment is provided as part of the InferenceConfig. Sometimes I just want to change the value of one environment variable and updating the service. But after the service is updated, the environment is still the old one.
To Reproduce
Sorry, I don't have time now to provide a runnable example. I'll try to add it later.
Steps to reproduce the behavior:

Deploy a model to AKS setting env.environment_variables["MY_VAR"] = "0" and passing this env to InferenceConfig
Run service.update() by passing the same env but with `env.environment_variables["MY_VAR"] = "1".
Check the value of MY_VAR and see it's still "0".

In step 2, the environment can have the same or a different name. It can be registered or not. The result is the same. (This is not surprising since AFAIU, environment variables are not actually stored in the environment image, they are set in the deployment k8s configuration of the pods).
Expected behavior
After the update, MY_VAR value should be "1"

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Tables:0.12529527,Azure.Identity:0.10530589,ARM:0.053060047'

thanks for reaching out @janluke , I have tagged the issue and the service team should be able to help with it.

@azureml-github

FYI, I provided a minimal reproducible example to the support engineer who handled my support request some time ago. It can be found here: https://github.com/janluke/azureml-issue-23278.
I'm personally not interested on this issue any more, since I provide my environment variables injecting an .env file to the uploaded source code folder. I'd be interested again if you provided a sane way to provide secrets (see #23277).

@janluke v1 SDK is in maintenance only mode in favor of the v2 SDK being GA. Please file an issue for v2 SDK if your requests stand for v2.
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-migrate-from-v1


Updating Data Analysis Folder Files (Data Analysis Notebook)

I Updated  Data Analysis Folder Files (Data Analysis Notebook), please have a look and share your thoughts.

It is looking great. Great Work!
what do you think if we had the correlation map individually for each variables. like completion rate vs literacy rate.


DateTimeInterval#duration returns a wrong value

DateTimeInterval#duration returns a negative value when it is initialized with values.
This means DateTimeInterval#end is not equal to the init value.
(iOS10 DateInterval can return correct values.)

Thank you, it will be part of 4.1.8 release

I think we have a problem here, I think I've made a mistake; can you explain me why we can't have DateTimeInterval with negative values?

I've checked #480 and now think we can allow DateTimeInterval with negative values!
The most reason I made PR #468 is from the inconsistency of DateTimeInterval#end. Your 00f9403c199ddede99a29f889931ddff76e543b1 solves this inconsistency.
@malcommac

let startDate = "10:00"
let endDate = "12:00"

let dateDiff = startDate - endDate

>> raises Exception now in DateTimeInterval #67
>> precondition(end >= start, "Reverse intervals are not allowed")

why should it not be allowed to have a negative time interval ?!

@leviathan I've fixed that, there is not any valid reason to keep this condition. Now DateTimeInterval supports negative interval. See the commit above.


[kubitodev/cloudflared]Add resources

adds a resource block for configuring cpu/mem for the cloudflared container

Hey there, sorry for the delay, pull the latest changes and resolve the merge conflicts please.


Support null safety

This will solve issue #86

@jonataslaw please 🙏🏻 review this PR, we need null safety support.

Thanks for this pr.
lgtm


IPv6 and IPv4 Configuration on Installation

As a user of NGF with an IPv6 enabled Kubernetes cluster
I want the ability to enable IP versions for NGF on installation
So that I can enable IPv6 in NGF and use it within my cluster.
Acceptance

The user can configure NGF to use IPv4 and/or IPv6 on installation.
The installation documentation is updated to include IP version instructions.

Suggestion: simply create an NGINX port listener on both IP families and default that way.  Dual stack has been a thing for a decade.
Unless Gateway API is opinionated about the ip address space.
This is the simplest way to solve this problem.
This is how NIC approached this, and the only hitch we had was running on Pivotal Cloud Foundry (and one other similar platform) that disabled IPv6 at the node level and prevented the NIC container from having an IPv6 stack at all.

See https://github.com/nginxinc/kubernetes-ingress/pull/2576 and https://github.com/nginxinc/kubernetes-ingress/pull/3040 for NIC IPv6 support

Closed by https://github.com/nginxinc/nginx-gateway-fabric/pull/2190


Integrating with Express

I tried to make node-session work along with express:
var express = require('express')
var NodeSession = require('node-session');

var session = new NodeSession({secret: 'Q3UBzdH9GEfiRCTKbi5MTPyChpzXLsTD'});
var app = express()

app.use(function (req, res, next) {
    session.startSession(req, res, function() {})

    // count the views
    req.session.put('views', (req.session.get('views') || 0) + 1)

    next()
})

app.get('/', function (req, res, next) {
    res.send('you viewed this page ' + req.session.get('views') + ' times')
})

app.listen(3000, () => console.log('Example app listening on port 3000!'))

But data from session is not loaded and very time I see "you viewed this page 1 times".
Could you tell what is wrong or is it issue?

You are adding values to the session even before session is started.
Once you call the startSession method continue the rest of the operation inside it's callback.
ie., your code should be changed like below.
app.use(function (req, res, next) {
    session.startSession(req, res, function() {
        // count the views
        req.session.set('views', req.session.get('views', 0) + 1);

        next();
    });
})

Please refer this example https://github.com/quorrajs/NodeSession/blob/master/examples/express.js

Thank you for response, example is perfect!
BTW I think it should be mentioned that key should not contain characters like /, , *.


Investigate Django's assertNumQueries function

We have several places in our test codebase where we do asserts on the number of queries used by an operation, using queries_captured and self.assert_length.  Django 1.10 has a new assertNumQueries function that might be a cleaner way to do this.  We should try converting one test (e.g. test_home) to use it and see how we like it; if we do, we can convert the rest.
Broken out from #2564.

@zulipbot claim

@skapil are you working on it? If not, I would love to take it up.

@sinwar I am still working on it!

@zulipbot claim.

I think we don't need to convert every use; if assertNumQueries reads as cleaner in 80% of the cases, we can switch those and leave the rest on the old model.

The no. of queries differs when using assertNumQueries,
e.g
1.) test_home/test_home: 42 instead of 41
2.) test_home/test_num_queries_for_realm_admin: 39 instead of 37
3.) test_bots/test_json_users_with_bots: 3 instead of 4

I suspect what's going on there is that we have a query or two that happen before the block that we're capturing queries during (e.g. the self.login line?).  Does that seem plausible?
If so, it's possible that our current setup is better and we should just close this as wontfix.

Yep, that seems plausible.

OK, closing as wontfix, given that our existing framework is working pretty well for us.


Allow to fix random seed in config

Random initial state causes Dark Chambers to fail, depending on seed.

83d612e


add missing headers

This PR adds missing aarch64 headers:
	new file:   libc/include/aarch64-macos-gnu/__stddef_max_align_t.h
	new file:   libc/include/aarch64-macos-gnu/arm_neon.h
	new file:   libc/include/aarch64-macos-gnu/iso646.h
	new file:   libc/include/aarch64-macos-gnu/stdalign.h
	new file:   libc/include/aarch64-macos-gnu/stdarg.h
	new file:   libc/include/aarch64-macos-gnu/stdatomic.h
	new file:   libc/include/aarch64-macos-gnu/stdbool.h
	new file:   libc/include/aarch64-macos-gnu/stddef.h
	new file:   libc/include/aarch64-macos-gnu/stdnoreturn.h

These were excluded due to being clang headers, and the same MacOS SDK variants not being pulled in otherwise.
For example, this gives us stddef.h which is currently missing in all macos targets of Zig: https://github.com/ziglang/zig/issues/9447
Helps hexops/mach#3

I regenerated just now on my Intel mac / x86_64 as well and pushed a commit for that.


Can't publish widget

When trying to publish a simple widget from the VSCode extension, receive errors on transaction approval relating to gas and/or storage minimums.  E.g.
{"index":0,"kind":{"ExecutionError":"Smart contract panicked: The attached deposit is less than the minimum storage balance"}}
Not clear where/how to set the attached deposit or the amount that would be required.  The accounts I'm trying to publish to use a ledger if that provides any help.

I was publishing to an account that hadn't created a profile yet on near.org.  After connecting that account, I was able to publish.
When trying to publish to an existing account, I was getting an error relating to not attaching enough gas.  That account doesn't have any additional storage pre-purchased/allocated.
Also, when publishing and approving the transaction in Near Wallet, when it returns to VSCode, it leaves the NEAR Wallet on the approval page open.  Could confuse people if they return to their browser and see a transaction awaiting approval.  Not sure if approving again would cause another publish/didn't try, but would recommend closing/moving off that confirmation after the publish is successful.
Everything in the docs up to the publish instructions is good.  Recommend expanding the publish section to include any caveats about needing an account or storage/anything else in order to actually publish.
Great work on the extension btw.

It's an issue with some wallets apparently.I had a similar issue. I contacted metamask/binance directly and they had it resolved for me<EMAIL_ADDRESS>Send them a mail. They'll help you out.

hi @ALuhning, sorry for the delay, I am just now seeing this issue. Has it improved with the newer versions? we now try to automatically detect the necessary amount of NEAR to use in each transaction.
Please let me know if it is not fixed by simply re-opening this issue.


Example with images

Are there examples of the package being used to wrap images? For example if I wanted the following effect?

Thank you!

Have you tried using clip-path? https://github.com/phamfoo/figma-squircle?tab=readme-ov-file#usage


Sleep mode

Hello,
Thank you for this integration, it works like a charm. Do you think it will be possible to include the sleep mode feature to this integration later ?
Thanks.

Hi, it could be possible as there is a command for it, but I am not sure how it would fit in homeassistant, maybe using the preset modes https://developers.home-assistant.io/docs/core/entity/climate/#presets?
Is this how you would have a need for it?

Thanks @JD-c0de for contributing a change to make Sleep Mode available. The code is merged and I will prepare a release later today to publish to HACS.