Close stale pr

Close pull-request that have not been modified in a while

I like the idea, but I feel like a 30 and 60 day warning would be nice...

OK I've updated the pull-request.
I have not implemented the warning yet, but will think about it.
I fixed:

Comments that may not be chronologically sorted
Hopefully, errors detected by verify_all.sh
I've renamed PR to Review to use the same words as the github api documentation

I'll merge but I think we should update the comment a little.  Just re-opening will get it immediately re-closed...
I think we should say how long it has been idle and we should say that adding a comment will restart the clock.
Can we also restart the clock on git push?  I'm not sure what we have available there...

Please feel free to wait before you merge that PR. There is no rush :-)
You have very good points, I'll try to see if they can be addressed

OK, I think this can be improved by tracking events.
Here is what we can do based on the data in events:

reset the timer if the pull-request has been updated (new head commit id)
reset the timer when the pull-request is reopened

And also:

Change the comment to be more explicit ("Closing PR because no action in X days")
Remove this comment whenever the pull-request is reopened

And I also figured out a way to add warnings, we'll talk about that later

OK Just updated and added warning and label to 'keep-open'. Also added mechanism to remove stale comments... I have not tested the part that removes the comment (because we don't have such comments ...) so I'm kind of unsure about the regex.
Here is the output of a --dry-run --once run:
I0509 16:32:35.927334   20663 github.go:1365] Commenting "This PR hasn't been active in 69 days. Will be closed in 20 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 13216
I0509 16:32:39.945247   20663 github.go:1365] Commenting "This PR hasn't been active in 83 days. Will be closed in 6 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 15385
I0509 16:32:40.784415   20663 github.go:1365] Commenting "This PR hasn't been active in 80 days. Will be closed in 9 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 15927
I0509 16:32:42.662823   20663 github.go:1365] Commenting "This PR hasn't been active in 54 days. Will be closed in 35 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 16146
I0509 16:32:43.604546   20663 github.go:1365] Commenting "This PR hasn't been active in 42 days. Will be closed in 47 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 16933
I0509 16:32:46.272063   20663 github.go:1365] Commenting "This PR hasn't been active in 82 days. Will be closed in 7 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 17085
I0509 16:32:46.972465   20663 github.go:1365] Commenting "This PR hasn't been active in 40 days. Will be closed in 49 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 17305
I0509 16:32:47.851478   20663 github.go:1365] Commenting "This PR hasn't been active in 108 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 17393
I0509 16:32:47.851529   20663 github.go:1146] Closing PR# 17393
I0509 16:32:48.546276   20663 github.go:1365] Commenting "This PR hasn't been active in 40 days. Will be closed in 49 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 17543
I0509 16:32:50.365445   20663 github.go:1365] Commenting "This PR hasn't been active in 34 days. Will be closed in 55 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 17688
I0509 16:32:51.967198   20663 github.go:1365] Commenting "This PR hasn't been active in 77 days. Will be closed in 12 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 17893
I0509 16:32:52.440090   20663 github.go:1365] Commenting "This PR hasn't been active in 95 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 17926
I0509 16:32:52.440139   20663 github.go:1146] Closing PR# 17926
I0509 16:32:55.258515   20663 github.go:1365] Commenting "This PR hasn't been active in 63 days. Will be closed in 26 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 18308
I0509 16:32:59.108488   20663 github.go:1365] Commenting "This PR hasn't been active in 111 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19256
I0509 16:32:59.108540   20663 github.go:1146] Closing PR# 19256
I0509 16:33:00.123129   20663 github.go:1365] Commenting "This PR hasn't been active in 124 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19283
I0509 16:33:00.123160   20663 github.go:1146] Closing PR# 19283
I0509 16:33:01.793335   20663 github.go:1365] Commenting "This PR hasn't been active in 121 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19442
I0509 16:33:01.793379   20663 github.go:1146] Closing PR# 19442
I0509 16:33:02.369373   20663 github.go:1365] Commenting "This PR hasn't been active in 80 days. Will be closed in 9 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19445
I0509 16:33:03.525708   20663 github.go:1365] Commenting "This PR hasn't been active in 37 days. Will be closed in 52 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19473
I0509 16:33:04.061525   20663 github.go:1365] Commenting "This PR hasn't been active in 96 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19485
I0509 16:33:04.061577   20663 github.go:1146] Closing PR# 19485
I0509 16:33:05.287798   20663 github.go:1365] Commenting "This PR hasn't been active in 110 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19534
I0509 16:33:05.287850   20663 github.go:1146] Closing PR# 19534
I0509 16:33:05.900072   20663 github.go:1365] Commenting "This PR hasn't been active in 56 days. Will be closed in 33 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19606
I0509 16:33:06.423984   20663 github.go:1365] Commenting "This PR hasn't been active in 69 days. Will be closed in 20 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19625
I0509 16:33:06.933489   20663 github.go:1365] Commenting "This PR hasn't been active in 68 days. Will be closed in 21 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19706
I0509 16:33:07.492733   20663 github.go:1365] Commenting "This PR hasn't been active in 94 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19708
I0509 16:33:07.492788   20663 github.go:1146] Closing PR# 19708
I0509 16:33:07.952850   20663 github.go:1365] Commenting "This PR hasn't been active in 115 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19710
I0509 16:33:07.952898   20663 github.go:1146] Closing PR# 19710
I0509 16:33:08.918394   20663 github.go:1365] Commenting "This PR hasn't been active in 95 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19763
I0509 16:33:08.918447   20663 github.go:1146] Closing PR# 19763
I0509 16:33:09.440517   20663 github.go:1365] Commenting "This PR hasn't been active in 74 days. Will be closed in 15 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19804
I0509 16:33:10.612886   20663 github.go:1365] Commenting "This PR hasn't been active in 81 days. Will be closed in 8 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19872
I0509 16:33:11.126119   20663 github.go:1365] Commenting "This PR hasn't been active in 90 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 19919
I0509 16:33:11.126173   20663 github.go:1146] Closing PR# 19919
I0509 16:33:12.444373   20663 github.go:1365] Commenting "This PR hasn't been active in 55 days. Will be closed in 34 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19951
I0509 16:33:12.941828   20663 github.go:1365] Commenting "This PR hasn't been active in 56 days. Will be closed in 33 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 19996
I0509 16:33:13.972335   20663 github.go:1365] Commenting "This PR hasn't been active in 88 days. Will be closed in 1 day.\n\nYou can add 'keep-open' label to prevent this from happening." in 20043
I0509 16:33:14.772747   20663 github.go:1365] Commenting "This PR hasn't been active in 68 days. Will be closed in 21 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 20054
I0509 16:33:15.277833   20663 github.go:1365] Commenting "This PR hasn't been active in 87 days. Will be closed in 2 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 20110
I0509 16:33:17.351331   20663 github.go:1365] Commenting "This PR hasn't been active in 82 days. Will be closed in 7 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 20203
I0509 16:33:18.555708   20663 github.go:1365] Commenting "This PR hasn't been active in 52 days. Will be closed in 37 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 20273
I0509 16:33:19.035371   20663 github.go:1365] Commenting "This PR hasn't been active in 94 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 20321
I0509 16:33:19.035402   20663 github.go:1146] Closing PR# 20321
I0509 16:33:20.272762   20663 github.go:1365] Commenting "This PR hasn't been active in 54 days. Will be closed in 35 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 20384
I0509 16:33:20.810173   20663 github.go:1365] Commenting "This PR hasn't been active in 94 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 20442
I0509 16:33:20.810220   20663 github.go:1146] Closing PR# 20442
I0509 16:33:21.282675   20663 github.go:1365] Commenting "This PR hasn't been active in 97 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 20465
I0509 16:33:21.282723   20663 github.go:1146] Closing PR# 20465
I0509 16:33:21.764517   20663 github.go:1365] Commenting "This PR hasn't been active in 94 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 20468
I0509 16:33:21.764566   20663 github.go:1146] Closing PR# 20468
I0509 16:33:23.397327   20663 github.go:1365] Commenting "This PR hasn't been active in 90 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 20666
I0509 16:33:23.397360   20663 github.go:1146] Closing PR# 20666
I0509 16:33:24.860673   20663 github.go:1365] Commenting "This PR hasn't been active in 94 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 20691
I0509 16:33:24.860706   20663 github.go:1146] Closing PR# 20691
I0509 16:33:27.198679   20663 github.go:1365] Commenting "This PR hasn't been active in 74 days. Will be closed in 15 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 20713
I0509 16:33:27.665970   20663 github.go:1365] Commenting "This PR hasn't been active in 94 days. Feel free to reopen.\n\nYou can add 'keep-open' label to prevent this from happening again." in 20749
I0509 16:33:27.666021   20663 github.go:1146] Closing PR# 20749
I0509 16:33:28.165488   20663 github.go:1365] Commenting "This PR hasn't been active in 88 days. Will be closed in 1 day.\n\nYou can add 'keep-open' label to prevent this from happening." in 20854
I0509 16:33:29.824347   20663 github.go:1365] Commenting "This PR hasn't been active in 53 days. Will be closed in 36 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 20918
I0509 16:33:32.327759   20663 github.go:1365] Commenting "This PR hasn't been active in 77 days. Will be closed in 12 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21137
I0509 16:33:33.293212   20663 github.go:1365] Commenting "This PR hasn't been active in 82 days. Will be closed in 7 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21202
I0509 16:33:35.558870   20663 github.go:1365] Commenting "This PR hasn't been active in 68 days. Will be closed in 21 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21263
I0509 16:33:36.510837   20663 github.go:1365] Commenting "This PR hasn't been active in 82 days. Will be closed in 7 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21280
I0509 16:33:36.997620   20663 github.go:1365] Commenting "This PR hasn't been active in 40 days. Will be closed in 49 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21281
I0509 16:33:38.011999   20663 github.go:1365] Commenting "This PR hasn't been active in 73 days. Will be closed in 16 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21328
I0509 16:33:38.489033   20663 github.go:1365] Commenting "This PR hasn't been active in 58 days. Will be closed in 31 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21366
I0509 16:33:39.150746   20663 github.go:1365] Commenting "This PR hasn't been active in 66 days. Will be closed in 23 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21373
I0509 16:33:42.073794   20663 github.go:1365] Commenting "This PR hasn't been active in 80 days. Will be closed in 9 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21527
I0509 16:33:42.571325   20663 github.go:1365] Commenting "This PR hasn't been active in 54 days. Will be closed in 35 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21553
I0509 16:33:46.073862   20663 github.go:1365] Commenting "This PR hasn't been active in 73 days. Will be closed in 16 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21879
I0509 16:33:46.589716   20663 github.go:1365] Commenting "This PR hasn't been active in 70 days. Will be closed in 19 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21888
I0509 16:33:47.048295   20663 github.go:1365] Commenting "This PR hasn't been active in 74 days. Will be closed in 15 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21942
I0509 16:33:48.471000   20663 github.go:1365] Commenting "This PR hasn't been active in 70 days. Will be closed in 19 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 21979
I0509 16:33:48.960820   20663 github.go:1365] Commenting "This PR hasn't been active in 70 days. Will be closed in 19 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22010
I0509 16:33:49.455406   20663 github.go:1365] Commenting "This PR hasn't been active in 57 days. Will be closed in 32 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22031
I0509 16:33:49.988932   20663 github.go:1365] Commenting "This PR hasn't been active in 46 days. Will be closed in 43 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22040
I0509 16:33:50.987792   20663 github.go:1365] Commenting "This PR hasn't been active in 70 days. Will be closed in 19 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22079
I0509 16:33:51.476127   20663 github.go:1365] Commenting "This PR hasn't been active in 49 days. Will be closed in 40 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22131
I0509 16:33:52.007854   20663 github.go:1365] Commenting "This PR hasn't been active in 48 days. Will be closed in 41 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22216
I0509 16:33:55.852716   20663 github.go:1365] Commenting "This PR hasn't been active in 67 days. Will be closed in 22 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22468
I0509 16:33:56.324712   20663 github.go:1365] Commenting "This PR hasn't been active in 62 days. Will be closed in 27 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22478
I0509 16:33:56.829328   20663 github.go:1365] Commenting "This PR hasn't been active in 39 days. Will be closed in 50 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22488
I0509 16:33:58.619141   20663 github.go:1365] Commenting "This PR hasn't been active in 65 days. Will be closed in 24 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22565
I0509 16:33:59.113020   20663 github.go:1365] Commenting "This PR hasn't been active in 31 days. Will be closed in 58 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22568
I0509 16:34:01.651126   20663 github.go:1365] Commenting "This PR hasn't been active in 61 days. Will be closed in 28 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22737
I0509 16:34:02.144003   20663 github.go:1365] Commenting "This PR hasn't been active in 33 days. Will be closed in 56 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22763
I0509 16:34:05.130096   20663 github.go:1365] Commenting "This PR hasn't been active in 59 days. Will be closed in 30 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22832
I0509 16:34:05.930335   20663 github.go:1365] Commenting "This PR hasn't been active in 37 days. Will be closed in 52 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 22857
I0509 16:34:08.083919   20663 github.go:1365] Commenting "This PR hasn't been active in 54 days. Will be closed in 35 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23074
I0509 16:34:09.077548   20663 github.go:1365] Commenting "This PR hasn't been active in 48 days. Will be closed in 41 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23095
I0509 16:34:09.545615   20663 github.go:1365] Commenting "This PR hasn't been active in 53 days. Will be closed in 36 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23119
I0509 16:34:12.072224   20663 github.go:1365] Commenting "This PR hasn't been active in 42 days. Will be closed in 47 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23254
I0509 16:34:13.572308   20663 github.go:1365] Commenting "This PR hasn't been active in 40 days. Will be closed in 49 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23306
I0509 16:34:14.689895   20663 github.go:1365] Commenting "This PR hasn't been active in 35 days. Will be closed in 54 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23344
I0509 16:34:15.150043   20663 github.go:1365] Commenting "This PR hasn't been active in 37 days. Will be closed in 52 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23362
I0509 16:34:15.632976   20663 github.go:1365] Commenting "This PR hasn't been active in 47 days. Will be closed in 42 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23382
I0509 16:34:16.152773   20663 github.go:1365] Commenting "This PR hasn't been active in 34 days. Will be closed in 55 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23400
I0509 16:34:18.335668   20663 github.go:1365] Commenting "This PR hasn't been active in 45 days. Will be closed in 44 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23489
I0509 16:34:19.379432   20663 github.go:1365] Commenting "This PR hasn't been active in 40 days. Will be closed in 49 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23498
I0509 16:34:19.859162   20663 github.go:1365] Commenting "This PR hasn't been active in 42 days. Will be closed in 47 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23502
I0509 16:34:20.402449   20663 github.go:1365] Commenting "This PR hasn't been active in 44 days. Will be closed in 45 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23513
I0509 16:34:20.942304   20663 github.go:1365] Commenting "This PR hasn't been active in 31 days. Will be closed in 58 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23521
I0509 16:34:21.410883   20663 github.go:1365] Commenting "This PR hasn't been active in 38 days. Will be closed in 51 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23565
I0509 16:34:27.391261   20663 github.go:1365] Commenting "This PR hasn't been active in 34 days. Will be closed in 55 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23733
I0509 16:34:29.446221   20663 github.go:1365] Commenting "This PR hasn't been active in 35 days. Will be closed in 54 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23775
I0509 16:34:29.935931   20663 github.go:1365] Commenting "This PR hasn't been active in 37 days. Will be closed in 52 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23785
I0509 16:34:30.408351   20663 github.go:1365] Commenting "This PR hasn't been active in 32 days. Will be closed in 57 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23788
I0509 16:34:31.816314   20663 github.go:1365] Commenting "This PR hasn't been active in 35 days. Will be closed in 54 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23810
I0509 16:34:33.268087   20663 github.go:1365] Commenting "This PR hasn't been active in 35 days. Will be closed in 54 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23830
I0509 16:34:34.239408   20663 github.go:1365] Commenting "This PR hasn't been active in 30 days. Will be closed in 59 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23846
I0509 16:34:35.400725   20663 github.go:1365] Commenting "This PR hasn't been active in 34 days. Will be closed in 55 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23866
I0509 16:34:35.885952   20663 github.go:1365] Commenting "This PR hasn't been active in 34 days. Will be closed in 55 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23867
I0509 16:34:37.362788   20663 github.go:1365] Commenting "This PR hasn't been active in 31 days. Will be closed in 58 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23919
I0509 16:34:39.675846   20663 github.go:1365] Commenting "This PR hasn't been active in 32 days. Will be closed in 57 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 23980
I0509 16:34:42.263044   20663 github.go:1365] Commenting "This PR hasn't been active in 31 days. Will be closed in 58 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 24021
I0509 16:34:45.317790   20663 github.go:1365] Commenting "This PR hasn't been active in 31 days. Will be closed in 58 days.\n\nYou can add 'keep-open' label to prevent this from happening." in 24074

Also, I can't track push events unfortunately. I couldn't find a way to do it by looking at Github API. So I contacted Github directly and they said it can't be done. We would have to listen to a webhook and store that locally.

Please see:
https://github.com/kubernetes/kubernetes/issues/24844
cc @fejta

@bgrant0607, We plan to implement these features/big picture, and this PR will certainly get refactored in the future to follow that goal.
For now, this pull-request is mostly a way for me to get familiar with the project.
We may decide to wait for the entire project to move forward and not merge this PR. I would be fine either way. I think it doesn't hurt to merge this (as soon as unit-tests are ready) and make smaller iterations.

Please explicitly @-notify the author and assignee in the PR comment. I filter all github notifications that don't notify me explicitly. Additionally, PR authors who don't have write access won't be able to add the label. What would count as sufficient activity to keep the PR open for a while longer, without a label?

Yes, I will add that. Ideally, in the future, it'd be nice to notify the person that "blocks" the pull-request.
Commenting on the PR is good enough to keep it open for another 90 days.

I think I'd rather not do the 'label' at all.  Just tell me people to make a comment to keep it alive...

@eparis, Yeah, it really depends on the staleness time.
If we use 3 months, we definitely don't need the label. But @ixdy suggested closing pull-requests after 2 weeks of inactivity, and then the label would make sense.
In my opinion, we should start with three months (probably without the label) and then try to get that smaller and smaller as we can. We would literally close one third of the pull-request right now if we used 2 weeks.
I'll remove the label thing.

Rather than threatening to close, I think there would be more value to aggressively prod PRs with what specifically is blocking them.

Our documentation says we close pull requests after 2 weeks, though clearly we don't follow that (yet).

@bgrant0607 agree with the long term concept.
But, threatening to close is both 'easy' from a coding automation PoV, and will hopefully cause the PR author to harass the right person to get it unstuck. It also solves the problem of actually dead PRs where no amount of automation can unstick it.
i think we need to do a better job automating moving things forward, but that doesn't make this a bad step in my mind.

@eparis @ixdy I don't oppose threatening to close. I just don't think it's the first priority.

What does "Can one of the admins verify this patch?" mean?

Added the issue to the PR description

ref #869

Should we reconsider merging this PR? (if we do, I'll rebase as needed and take another look).
While I agree with @bgrant0607 that it's not first priority. It is there, and it wouldn't hurt to merge (and some people are actually.

@eparis Can you please merge when tests are green? Thanks

@apelisse Please document the behavior.
https://github.com/kubernetes/kubernetes/blob/master/docs/devel/automation.md

@bgrant0607 Excellent idea, will do in a seperate pr (obviously)

Saw the doc PR. We can reevaluate the label approach later. Merging.


Image not display correctly

Hello,
There are some issue while displaying image ImageHandler, like some images not display because of wait time we set, some image takes times to load
so can we use Picasso instead? if yes then how we can use that?

An implementation for lazy loading of bitmap into span is implemented in this project.
https://github.com/anggastudio/DynamicImageGetter


Update instructions to install lab extensions

The JupyterLab extensions can be installed using a single jupyter labextension install command, which will result in a single build being triggered.

Hey @jtpio! I tried your command but still faced with issue - https://github.com/QuantStack/ipycytoscape/issues/22

Thanks for fixing it @jtpio 🌸


GCP HTTP2 health checks not imported correctly

(On d8e13fac.) The HCL generated for an HTTP2 health check looks like this:
resource "google_compute_health_check" "...name..." {
  check_interval_sec  = "5"
  healthy_threshold   = "2"
  name                = "...name..."
  project             = "...project..."
  timeout_sec         = "5"
  unhealthy_threshold = "2"
}

It's missing the http2_health_check section.

What version of google provider you use? http2_health_check look inserted in 3.0

2.11; I guess it's too old. But then I'm surprised that I got the object at all, instead of an incomplete one.


refactors argumentlists to not allocate on the stack

deposits the value list in this structure on the stack (listing from top to bottom)
[orderedArgVal1]
...
[orderedArgValO]
[namedArgName1]
[namedArgValue1]
...
[namedArgNameN]
[namedArgValueN]

the count of both ordered and named args is written to the bytecode after the opcode. if an arglist is used (which we dont know the counts of on compiletime), the values (-2, 1) are written to the bytecode. (the exact values were used because when piped into the grow/shrinkstack logic, they resolve to a stacksize change of 0)
when an arglist is used, the list ontop of the stack will be resolved into dreamprocargs.
unsure about the shrink/growstack statements since i havent done that yet but i think i used them correctly

I'm not sure if this actually provides much of an optimization, if any. The bulk of PushArguments comes from allocating the structures within DreamProcArguments itself, not from pushing it onto the stack (particularly since pushing to the stack is cheap; we can predict its maximum size and it's already pooled).
A more worthwhile optimization would need to reduce the allocations of the OrderedArguments List and NamedArguments Dictionary. Object-pooling those two or even DreamProcArguments itself would likely see a huge benefit.

I'm closing this due to the reasons mentioned above.


BunnyMock::Queue#pop api does not match Bunny::Queue#pop

I see that BunnyMock::Queue#pop returns a hash with :message and :options keys:
xchg.publish("Hello, everybody!", :routing_key => 'test1')

message = q.pop
message[:message]    # => 'Hello, everybody!'
message[:options]    # => { routing_key: 'test1' }

However Bunny::Queue#pop returns a 3 element array:
xchg.publish("Hello, everybody!", :routing_key => 'test1')

delivery_info, properties, payload = q.pop

I assume that this was to make popping messages off of queues in specs a lot cleaner.  However, it makes BunnyMock only really able to help test the publishing of messages.  Any code that attempts to use Bunny to read messages from queues would not be able to use BunnyMock.new as a replacement for Bunny.new.
Ideally the APIs would match, however changing it would break anyone using the current behavior. I propose creating some sort of config option (e.g. BunnyMock.use_bunny_queue_pop_api = true) that could default to the current behavior.  The README could clearly show how to use the two options.
Thoughts?  Let me know if I'm misunderstanding something.
I'll put together a PR if you're open to the idea.

Yeah, this is leftover from when this was a personal use thing before I made it into a gem - because I didn't like the 3 element array style...probably not a good idea in hind sight lol. The apis should definitely match - so it can be used as a drop in replacement.
I think your idea is a good one, but we should add a deprecation notice to it - ie. if they keep using the current behavior they will know it will be phased out in a later version and be only available as the Bunny api behavior.

@podung - see 1d2e57c
I took your idea and implemented it - along with adding a ton more stuff to match Bunny such as GetResponse and MessageProperties implementations and passing options and blocks to Queue#pop

Awesome.  I haven't had a chance to look at this thoroughly yet, but thanks for being open to moving in this direction.


Feature Request: Support for Glue *_crawler functions

At present, the glue *_crawler functions are not covered.
Have a use case where it would be very useful to have the start_crawler function available/mocked.
Raising ticket, but if I get the chance this week, will take a stab at implementing this and raising a PR.

A PR is always welcome, @mwoods-familiaris! Let us know if you need any help.


MRTK Roadmap update for 2.6

Overview
Updated roadmap to reflect MRTK 2.6 plans.
Verification

This optional section is a place where you can detail the specific type of verification
you want from reviewers. For example, if you want reviewers to checkout the PR locally
and validate the functionality of specific scenarios, provide instructions
on the specific scenarios and what you want verified.
If there are specific areas of concern or question feel free to highlight them here so
that reviewers can watch out for those issues.
As a reviewer, it is possible to check out this change locally by using the following
commands (substituting {PR_ID} with the ID of this pull request):
git fetch origin pull/{PR_ID}/head:name_of_local_branch
git checkout name_of_local_branch

@keveleigh, I added an additional comment about Unity tech branch support based on a convo with @wiwei.


Minimal example of the UINotificationService and SnackbarProvider

Dear OHIF team,
I'm trying to re-use the OHIF React UI components to build a web-app with the same looks and feel as the viewer, but got stuck on using the SnackbarProvider (React is returning a rather difficult to debug 'Invalid hook call').  As an example, see the TypeScript file attached. Would it be possible to provide a minimal working example showing how to use the UINotificationService and SnackbarProvider in a minimalistic React app? Thanks!
Kind regards,
Edwin
import React from 'react'

// @ohif/ui requires regeneratorRuntime to be globally defined.
import 'regenerator-runtime/runtime.js'
import {ErrorBoundary, SnackbarProvider} from '@ohif/ui'
import {CommandsManager, ServicesManager, ExtensionManager, UINotificationService} from '@ohif/core'

let AppContext = React.createContext({})
const CONTEXTS = {
    DEFAULT: 'DEFAULT'
}
const useAppContext = () => React.useContext(AppContext)
const api = {contexts: CONTEXTS, hooks: {useAppContext}}
const getAppState = () => {return {}}
const getActiveContexts = () => ['DEFAULT']
const commandsManager = new CommandsManager({getAppState: getAppState, getActiveContexts: getActiveContexts})
const servicesManager = new ServicesManager()

export class App extends React.Component<any, any> {
    public extensionManager: ExtensionManager

    constructor(props) {
        super(props)
        servicesManager['registerServices']([UINotificationService])
        this.extensionManager = new ExtensionManager({commandsManager, servicesManager, api})
    }

    render() {
        const {UINotificationService} = servicesManager.services

        return (
            <div>
                <ErrorBoundary context="App">
                    <SnackbarProvider service={UINotificationService}>
                        Hello from the app!
                    </SnackbarProvider>
                </ErrorBoundary>
            </div>
        )
    }
}

In react js  there is no any error generated , after I've changed your type-script to react js as shown below,
`import React, { Component } from 'react';
// @ohif/ui requires regeneratorRuntime to be globally defined.
import 'regenerator-runtime/runtime.js';
import { ErrorBoundary, SnackbarProvider } from '@ohif/ui';
import {
CommandsManager,
ServicesManager,
ExtensionManager,
UINotificationService,
} from '@ohif/core';
let AppContext = React.createContext({});
const CONTEXTS = {
DEFAULT: 'DEFAULT',
};
const useAppContext = () => React.useContext(AppContext);
const api = { contexts: CONTEXTS, hooks: { useAppContext } };
const getAppState = () => {
return {};
};
const getActiveContexts = () => ['DEFAULT'];
const commandsManager = new CommandsManager({
getAppState: getAppState,
getActiveContexts: getActiveContexts,
});
const servicesManager = new ServicesManager();
export class App extends Component {
extensionManager;
constructor(props) {
super(props);
servicesManager'registerServices';
this.extensionManager = new ExtensionManager({
commandsManager,
servicesManager,
api,
});
}
render() {
const { UINotificationService } = servicesManager.services;
return (

Hello from the app!

);
}
}
export default App;
`

After changing the type-script to react js as attached above, there is no error in my end!

Hi @sagni-amsalu ,
Thank you so much for checking this! At least it's good to know that it should work like this. I'll give it a try with plain JavaScript too. It smells like some kind of configuration issue.

Hopefully this is what you are looking for  https://docs.ohif.org/platform/services/ui/ui-notification-service


feat: global security

Describe the PR
Add support global @Security tag. If need to disable security for an operation, an empty security tag is used.
Relation issue
#1453
Additional context

@nameoffnv Thanks for your contribution!


COMP: added missing HDF5 symbol mangling

Building my own app against both vtk master and itk master results in link errors because both the libraries fail to mangle these 7 symbols.

All 7 of these symbols were removed by PR2832.

Yeah, it's hard to catch them all, because you really need to build all combinations of Debug + Release + Mac + UNIX + Window as some symbols exist only conditionally.

PR2832 generated a new set of mangled symbols from a blank slate. Perhaps we should merge the previous manglings with the new manglings (and also merge the VTK identified manglings too).  It probably does not hurt to have a superset of required manglings.

It probably does not hurt to have a superset of required manglings.

Well, it sorta does, because it means you don't actually know how to generate the manglings from scratch and are declaring defeat. :)


Sign Up existing accounts

When registering account, the existing name and email should notify the user that this name and email is already registered.

Can you explain the scenario further, define the steps to reproduce, expected result and actual results


Problem with sorting property and outlooknavbar (ThemedControls)

Hi,
I use in one of my projects the outlooknavbar. If I use bin2text and then text2bin, the overflowpanel is always collapsed and the defined Panels are not shown correctly.
I looked at the code of foxbin2prg and found out that I can make it function correctly by disabling l_PropSort_Enabled.
The problem is caused by the init order of the child objects in the outlooknavbar. The splitter object has to be added before the panes object, but the sort destroys this.
For properties I can change the sorting order, but not for the objects.
Wrong Order:
ADD OBJECT 'Themedoutlooknavbar' AS themedoutlooknavbar WITH ;
		Comment = "<NORESIZE>", ;
		displayshrinkbutton = .T., ;
...
		overflowpanel.HelpContextID = 201010, ;
		overflowpanel.Left = 0, ;
...
		Panel.HelpContextID = 201010, ;
		Panel.Left = 0, ;
...
		panelvertical.Anchor = 5, ;
		panelvertical.Enabled = .F., ;
...
		panes.Anchor = 15, ;
		panes.ErasePage = .T., ;
...
		panes.Pane1.Caption = "Adressen", ;
		panes.Pane1.HelpContextID = 201010, ;
...
		panes.Pane2.Caption = "Kontakte", ;
		panes.Pane2.HelpContextID = 201010, ;
...
		panes.Pane3.Caption = "Auftragsbearbeitung", ;
		panes.Pane3.HelpContextID = 201010, ;
...
		panes.Pane4.Caption = "Kartendarstellung", ;
		panes.Pane4.HelpContextID = 201410, ;
...
		panes.Top = 28, ;
		panes.Width = 198, ;
		shrinkbutton.HelpContextID = 201010, ;
		shrinkbutton.Name = "shrinkbutton", ;
		Splitter.HelpContextID = 201010, ;
		Splitter.imgBackground.Name = "imgBackground", ;
...
		Title.HelpContextID = 201010, ;
		Title.imgBackground.Name = "imgBackground", ;
...
		*< END OBJECT: ClassLib="..\lib\themedcontrols.vcx" BaseClass="container" />

Correct order:
	ADD OBJECT 'Themedoutlooknavbar' AS themedoutlooknavbar WITH ;
		Comment = "<NORESIZE>", ;
		displayshrinkbutton = .T., ;
...
		panelvertical.Anchor = 5, ;
		panelvertical.Enabled = .F., ;
...
		Title.HelpContextID = 201010, ;
		Title.imgBackground.Name = "imgBackground", ;
...
		overflowpanel.HelpContextID = 201010, ;
		overflowpanel.Left = 0, ;
...
		shrinkbutton.HelpContextID = 201010, ;
		shrinkbutton.Name = "shrinkbutton", ;
		Panel.HelpContextID = 201010, ;
		Panel.Left = 0, ;
...
		Splitter.HelpContextID = 201010, ;
		Splitter.imgBackground.Name = "imgBackground", ;
...
		panes.Anchor = 15, ;
		panes.ErasePage = .T., ;
...
		panes.Pane1.Caption = "Adressen", ;
		panes.Pane1.HelpContextID = 201010, ;
...
		panes.Pane2.Caption = "Kontakte", ;
		panes.Pane2.HelpContextID = 201010, ;
...
		panes.Pane3.Caption = "Auftragsbearbeitung", ;
		panes.Pane3.HelpContextID = 201010, ;
...
		panes.Pane4.Caption = "Kartendarstellung", ;
		panes.Pane4.HelpContextID = 201410, ;
...
		panes.Top = 28, ;
		panes.Width = 198, ;
...
		*< END OBJECT: ClassLib="..\lib\themedcontrols.vcx" BaseClass="container" />

Best regards
JochenKauz

Hi Jochen:
I must see this very carefuly, because taking out the sort can produce a lot of differences in many parts of the classes, depending what you use.
I will take a deep look to find a solution and will make a comment here when I have it.
Thanks for reporting!

Hi Fernando,
thanks for your support!
I know that this is a tricky thing, cause not sorting would produce in other circumstances different result in diffs.
I have 2 ideas after looking in the code:

splitting the array to make a difference between properties and objects. Then sort all properties of the objects in the order the objects appear. This would not be failsafe, I think.
splitting the array to make a difference between properties and objects. Implement a similar process for objects, like for the properties. If nothing is defined in a special file, alphabetical order is used, but it is possible to define exceptions, best it would be in a cfg in the directory processed. This would give a user the chance to define custom sort orders if needed in every directory. ThemedControls would be not an exception, cause they really depends on init sequence.
If I could help, please give me a message.

Hi Jochen,
Very thanks for your ideas!
I think that a compromise solution can be done using the option 1 you suggest, but with some more object/property processing.
The thing is this:
a) Objects must appear in the same order as the do in the original source
b) Properties must appear (in text) alphabetically ordered to not cause "differences" when diffing with previous modifications
Changing the order from actual (sorted) object names to original order probabli will cause many differences, but even this case can be improved if at least all objects with the same name are grouped.
In example, you can have a binary file which code is saved in a way in which objects appear in a specific order, but ungrouped, like this:

	ADD OBJECT 'Themedoutlooknavbar' AS themedoutlooknavbar WITH ;
		Comment = "", ;
		displayshrinkbutton = .T., ;
		panelvertical.Enabled = .F., ;
		Title.imgBackground.Name = "imgBackground", ;
		overflowpanel.HelpContextID = 201010, ;
		overflowpanel.Left = 0, ;
		panelvertical.Anchor = 5, ;
		shrinkbutton.HelpContextID = 201010, ;
		Panel.HelpContextID = 201010, ;
		Panel.Left = 0, ;
		Splitter.HelpContextID = 201010, ;
		Title.HelpContextID = 201010, ;
		Splitter.imgBackground.Name = "imgBackground", ;
		panes.Anchor = 15, ;
		shrinkbutton.Name = "shrinkbutton", ;
		panes.ErasePage = .T., ;
		panes.Pane1.HelpContextID = 201010, ;
		panes.Pane2.HelpContextID = 201010, ;
		panes.Pane3.Caption = "Auftragsbearbeitung", ;
		panes.Pane2.Caption = "Kontakte", ;
		panes.Pane3.HelpContextID = 201010, ;
		panes.Pane4.Caption = "Kartendarstellung", ;
		panes.Pane1.Caption = "Adressen", ;
		panes.Pane4.HelpContextID = 201410, ;
		panes.Top = 28, ;
		panes.Width = 198, ;
		*< END OBJECT: ClassLib="..\lib\themedcontrols.vcx" BaseClass="container" />

I can't do the full alphabetical order because of the error you reported, but I can group the same objects together and sort their properties alpabetically, so they appear this way when in text form:

	ADD OBJECT 'Themedoutlooknavbar' AS themedoutlooknavbar WITH ;
		Comment = "", ;
		displayshrinkbutton = .T., ;
		panelvertical.Anchor = 5, ;
		panelvertical.Enabled = .F., ;
		Title.HelpContextID = 201010, ;
		Title.imgBackground.Name = "imgBackground", ;
		overflowpanel.HelpContextID = 201010, ;
		overflowpanel.Left = 0, ;
		shrinkbutton.HelpContextID = 201010, ;
		shrinkbutton.Name = "shrinkbutton", ;
		Panel.HelpContextID = 201010, ;
		Panel.Left = 0, ;
		Splitter.HelpContextID = 201010, ;
		Splitter.imgBackground.Name = "imgBackground", ;
		panes.Anchor = 15, ;
		panes.ErasePage = .T., ;
		panes.Pane1.Caption = "Adressen", ;
		panes.Pane1.HelpContextID = 201010, ;
		panes.Pane2.Caption = "Kontakte", ;
		panes.Pane2.HelpContextID = 201010, ;
		panes.Pane3.Caption = "Auftragsbearbeitung", ;
		panes.Pane3.HelpContextID = 201010, ;
		panes.Pane4.Caption = "Kartendarstellung", ;
		panes.Pane4.HelpContextID = 201410, ;
		panes.Top = 28, ;
		panes.Width = 198, ;
		*< END OBJECT: ClassLib="..\lib\themedcontrols.vcx" BaseClass="container" />

This order coincidentally is like you posted, but I have some other code examples I that have the disorder I shown in the 1st example, because VFP do not always keep things ordered and clean.
Finally, when assembling the binary again from text, then a special property order must applied because inside the VCX/SCX, VFP native properties can't be alphabetically ordered, and have a specific order, because if not, then Strange Things happen.
So the hard part on this grouping (maintaining the original order) is that must be done on objectName basis, from first to last level of nesting:
a) Taking note on the original order of objects of level 1 (panelvertical, Title, overflowpanel, etc) then grouping together all of the same name
b) Doing the same in level 2 (..,3,etc) when there is a level 2 (..,3,etc) (Pane1, Pane2, Pane3, etc) then grouping together all of the same name at this level
c) Sorting the properties alphabetically, but keeping the previous object ordering
...I think it's a lot of work, but the aim of the text version of the files is not only allow reassembling the binary, but allow easy diffing too, with minimal to no changes for just saving a file.
VFP sometimes change the order of many things when saving, even if you don't change anything. That's why ordering is important too.
I will think about some options to do this, because this reordering can be complicated.
Thanks.-

Hi Jochen!
I've been thinking on this, did some testing and I'm going with your option #1, because keeping the original object order is the most conservative option, inevitably causes some differences with existent generated TX2, but I think it is the safest.
At the end differences will occur only the first time.
I keep doing some testing, but meanwile I'd upload the modified version, so you can take a look and see if it works for you, if you like.
This is the development branch with foxbin2prg.prg and foxbin2prg.exe:
https://github.com/fdbozzo/foxbin2prg/tree/master-v<IP_ADDRESS>
If you find some trouble, please, drop me a line.
Thanks!

Hi Fernando,
I will give it a try today and make a comment how it works.
Many, many thanks for your work!
Best regards
JochenKauz

Hi Fernando,
did a first test and it seems to work really good. Will do further testing today and check other forms and classes. I will do a complete checkin of my project with text only files into my gitea and then checkout with regenerating all binaries.
I'll give a comment about succes.
Cheers!

Hi,
did further testing and it seems to work. I translated our project with 560 scx, 60 vcx and 350 frx to text, put it into gitea and checked it out with regenerating all binaries. I checked the critical forms and classes and all seems to work, a build to exe compiled without error.
Only thing I discovered was a conversion error for a dbf (type 8). But I think it is only a problem of our use of a memo field storing not wellformed text (encrypted text) into it. I can solve this by adding it as a binary to gitea.
Great job and many, many thanks!
Cheers
JochenKauz


[BUG] pip install does not work on colab

Describe the bug
cant install using pip install robustnessgym in google colab
To Reproduce
!pip install robustnessgym returns the following error:
ERROR: Could not find a version that satisfies the requirement robustnessgym (from versions: none)
ERROR: No matching distribution found for robustnessgym
System Information

google colab

Hi, robustnessgym is only pip installable with Python 3.8+ and unfortunately Colab doesn't support Python 3.8 natively yet. Workarounds to use Colab with Python 3.8 for this can be found online.


Filter symbols in outline & breadcrumbs, keep tree structure in Symbols View @

Allow filtering symbols in outline view and editor breadcrumbs with a textbox.

In the pallet search @ keep the document tree instead of lists (in js/ts nesting symbols is possible with same name in different scopes  and with a list one can't distinguish that). If not possible add the full symbol path under the symbol

3. While in Symbols view (ctrl-shift-o) @ allow ctrl key to hide the symbols palette while still cycling thru the items with the arrow keys. This will allow user to have the highlighted symbol corresponding code not covered by the palette.

Do you know that Ctrl/Cmd+Alt+F can be used in the breadcrumb list and in the Outline view?

Do you know that Ctrl/Cmd+Alt+F can be used in the breadcrumb list and in the Outline view?

Thanks! While filtering works in the outline view it dose not work in the breadcrumbs in a usable way (the default is not to filter by search and not to expand tree nodes where matching items are found).
The feature is too hidden for it's value I'd still be happy to have a visible search box.


How to use this code for loading pdf urls?

Hi
Does the code need base64 transformation for loading pdf urls?
I do not understand really what you do in copyAssets and why?

same question here


when I run SGC，an error occurred as follows：

RuntimeError: cublas runtime error : the GPU program failed to execute at /opt/conda/conda-bld/pytorch_1556653145446/work/aten/src/THC/THCBlas.cu:259
How can I solve this problem？

Hi @yyl424525,
I believe this is related to your pytorch installation.
Here is a similar issue. https://github.com/pytorch/pytorch/issues/17334
Because this is not related to our code, I'm closing it now.
If you have other questions regarding our code, please feel free to reach out to us again.
Best,
Felix


Add template editor

This PR will add a template editor to the dev tools in the app.
This will allow users to test their templates before they use them. As this is MVP, you're not able to define your own values yet, just query the HA state.

looks fine!

This is really cool!


Lab 5 map() codecrunch error

It seems like I'm not able to use the .get() method of Optionals here. Is it because I have to ensure that the Optional does not return an empty? What other ways can I implement this?
<U> Log<U> map(Function<? super T, ? extends U> mapper) {
        return Log.<U>of(Optional.<T>of(this.value).map(mapper).get(), this.log);
    }

Your log class should have access to this.value. So you can just do U newU = mapper.apply(this.value);
Then after that return Log.of(newU), this.log);

^ agree i did not use Optional for my map method and it works

yeap your not allowed to use optional's get method

if u use the optionals get method, code crunch will ban u. try not to relay too much on optionals

i used the .apply() method from the Function interface which might help, not sure if its banned tho

You can just use a .orElse("") or a placeholder instead of get, has the same functionality.


can not use imap with SSL

i had setup nginx and php.
after install and login into admin panel on setting 'gmail' domain.
i got test fail on imap or smtp.
turn log's switch On in application.ini, then i found _data_63ba5802d3bac4d3fdbd410b245d4ee9/default/logs/log-2014-02-24.txt shows SSL isn't supported
[06:39:15.012] REQUEST[NOTE]: POST: <IP_ADDRESS>/webmail/index.php?/Ajax/0/
[06:39:15.013] INFO[DATA]: [PHP:5.5.9][RL:<IP_ADDRESS>2][DATE:24.02.14]
[06:39:15.017] AJAX[NOTE]: Action: DoAdminDomainTest
[06:39:15.018] POST[DATA]: {"IncHost":"imap.gmail.com","IncPort":"993","IncSecure":"1","OutHost":"smtp.gmail.com","OutPort":"465","OutSecure":"1","OutAuth":"1","Action":"AdminDomainTest","XToken":""}
[06:39:15.027] IMAP[ERROR]: exception 'MailSo\Net\Exceptions\SocketUnsuppoterdSecureConnectionException' with message 'SSL isn't supported' in /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/MailSo/Net/NetClient.php:192
Stack trace:
#0 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/MailSo/Imap/ImapClient.php(141): MailSo\Net\NetClient->Connect('imap.gmail.com', 993, 1)
#1 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/RainLoop/Actions.php(2327): MailSo\Imap\ImapClient->Connect('imap.gmail.com', 993, 1)
#2 [internal function]: RainLoop\Actions->DoAdminDomainTest()
#3 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/RainLoop/ServiceActions.php(157): call_user_func(Array)
#4 [internal function]: RainLoop\ServiceActions->ServiceAjax()
#5 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/RainLoop/Service.php(164): call_user_func(Array)
#6 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/handle.php(41): RainLoop\Service->Handle()
#7 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/index.php(148): include('/srv/http/webma...')
#8 /srv/http/webmail/index.php(21): include('/srv/http/webma...')
#9 {main}
[06:39:15.028] SMTP[ERROR]: exception 'MailSo\Net\Exceptions\SocketUnsuppoterdSecureConnectionException' with message 'SSL isn't supported' in /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/MailSo/Net/NetClient.php:192
Stack trace:
#0 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/MailSo/Smtp/SmtpClient.php(156): MailSo\Net\NetClient->Connect('smtp.gmail.com', 465, 1)
#1 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/RainLoop/Actions.php(2343): MailSo\Smtp\SmtpClient->Connect('smtp.gmail.com', 465, '<IP_ADDRESS>', 1)
#2 [internal function]: RainLoop\Actions->DoAdminDomainTest()
#3 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/RainLoop/ServiceActions.php(157): call_user_func(Array)
#4 [internal function]: RainLoop\ServiceActions->ServiceAjax()
#5 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/libraries/RainLoop/Service.php(164): call_user_func(Array)
#6 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/app/handle.php(41): RainLoop\Service->Handle()
#7 /srv/http/webmail/rainloop/v/<IP_ADDRESS>2/index.php(148): include('/srv/http/webma...')
#8 /srv/http/webmail/index.php(21): include('/srv/http/webma...')
#9 {main}
[06:39:15.029] AJAX[DATA]: {"Action":"AdminDomainTest","Result":{"Imap":false,"Smtp":false},"Time":30}
[06:39:15.029] INFO[MEMORY]: Memory peak usage: 3.5MB

I use HHVM and i've got also this issue. Does it work with HHVM?


Multus on RKE

I installed Multus on a cluster created using RKE and configured it with the flannel CNI.
I used the default network CIDR in RKE which configures the DNS server IP as <IP_ADDRESS> and the cluster network as <IP_ADDRESS>/16. Because they are in different CIDRs, when I add a macvlan interface to a pod with a default route, multus only routes <IP_ADDRESS>/16 via eth0, so the pod cant access the DNS server IP.
Is there a way to add a route to eth0 to the <IP_ADDRESS> IP ?

I think that you can use the route override CNI for just this!
https://github.com/redhat-nfvpe/cni-route-override


python37Packages.azure-storage-blob: 12.6.0 -> 12.7.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python37Packages.azure-storage-blob is: "Client library for Microsoft Azure Storage services containing the blob service APIs"
meta.homepage for python37Packages.azure-storage-blob is: "https://github.com/Azure/azure-sdk-for-python"
meta.changelog for python37Packages.azure-storage-blob is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 12.7.0 with grep in /nix/store/yy5v29ycj4ndpsjga33lwaka0kmhcf9c-python3.7-azure-storage-blob-12.7.0

directory tree listing: https://gist.github.com/67859014c5289c8f1d89bd47d96b50e3

du listing: https://gist.github.com/30de3f9349485e339b433047d6a87225

Rebuild report (if merged into master) (click to expand)

39 total rebuild path(s)

12 package rebuild(s)

9 x86_64-linux rebuild(s)
9 i686-linux rebuild(s)
12 x86_64-darwin rebuild(s)
9 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
appdaemon
azure-cli
dvc-with-remotes
python37Packages.azure-storage-blob
python37Packages.snowflake-connector-python
python37Packages.snowflake-sqlalchemy
python38Packages.azure-storage-blob
python38Packages.snowflake-connector-python
python38Packages.snowflake-sqlalchemy
python39Packages.azure-storage-blob
python39Packages.snowflake-connector-python
python39Packages.snowflake-sqlalchemy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/yy5v29ycj4ndpsjga33lwaka0kmhcf9c-python3.7-azure-storage-blob-12.7.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python37Packages.azure-storage-blob https://github.com/r-ryantm/nixpkgs/archive/b8f2c86475b4b84e1b73a7d95d9e7e00ca5bd83a.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/yy5v29ycj4ndpsjga33lwaka0kmhcf9c-python3.7-azure-storage-blob-12.7.0
ls -la /nix/store/yy5v29ycj4ndpsjga33lwaka0kmhcf9c-python3.7-azure-storage-blob-12.7.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

8 packages failed to build:

appdaemon
azure-cli
dvc-with-remotes
python37Packages.snowflake-connector-python
python37Packages.snowflake-sqlalchemy
python38Packages.azure-storage-blob
python38Packages.snowflake-connector-python
python38Packages.snowflake-sqlalchemy

1 package built:

python37Packages.azure-storage-blob

Maintainer pings
cc @cmcdragonkai @mwilsoncoding for testing.

already bumped in another PR

already bumped in another PR


[ChannelTabs] Request: Lock tabs

Is your feature request related to a problem? Please describe.
To prevent accidentally closing tabs that we want to always be there.
Describe the solution you'd like
A way to "Lock" the tab that would stop it from being closed until it's unlocked.
Maybe if possible a way to stop it from navigating away from that specific DM/channel/server.
Describe alternatives you've considered
none
Additional context
none

Sounds like a good feature. The lock would be easy but preventing navigation could maybe be hard to implement.

Sounds like a good feature. The lock would be easy but preventing navigation could maybe be hard to implement.

Yah the "prevent navigation" is def the "if it's possible that'd be cool addition to the idea" but I know it'd be tricky if not possibly not doable.

Sounds like a good feature. The lock would be easy but preventing navigation could maybe be hard to implement.

Yah the "prevent navigation" is def the "if it's possible that'd be cool addition to the idea" but I know it'd be tricky if not possibly not doable.

yes. Not familiar with BetterDiscord API, but it would need an event listener which would trigger on url change to change the url to the previous one.
That would be easier than preventing links to navigate.


Make porter agent job retries configurable

Right now we have job retries disabled while developing but it's a core part of k8s and it should be turned on by default. Let's pick a reasonable default to add to the AgentConfig and then allow people to customize how porter retries the agent action jobs.

I tried to enable job retries through using the default BackoffLimit on the Job spec as well as setting the RestartPolicy to OnFailure on the PodSpec created by AgentAction job.
A failed AgentAction job was able to retry by restarting the failed pod up to the back off limit before the AgentAction job is considered as Failed. However, the issue I ran into is that all failed pods are deleted after the backoff limit is reached.
I found a good explanation on this here: https://github.com/kubernetes/kubernetes/issues/74848#issuecomment-971487582
Basically if a Job is marked as failure, the pod has to be deleted when RestartPolicy is set to OnFailure to prevent the pod keeps restarting. Is this an acceptable default behavior that we want?

We could keep the RestartPolicy on the pod as Never and have the AgentAction job doing retry by creating new pod and leave the failed ones alone.

I've had good success with that in other projects I have worked on. 👍

The default retry limit is 6 on a job, maybe we can set it to 3 to reduce the amount of resource consumption?

Let's keep the default but allow people to change the retry limit on the AgentConfig.


Update readme to gcc 10 for installing on MacOS

Just updating the README file to use the current version of gcc to compile code.

Thanks for the change and sorry for the long delay!


New Theme : Hugo Lime

Theme submission
Before submitting a theme please make sure you've read the README.md. It describes in detail what information are needed and which requirements have to be fulfilled for the submission. The check list below can help you.
https://github.com/uicardiodev/hugo-lime
I made sure that...

[x] the repository contains a good README.md describing my theme
[x] an open source license has been added to LICENSE.md
[x] all metadata have been added to theme.toml
[x] screenshots have been added in the images/ folder with the required dimensions
[x] in case I'm using a customized demo via the exampleSite folder that
[x] https://example.com is set as base url in exampleSite/config.{toml, yaml, json} to avoid the abuse of unused domains
[x] the site's content is as neutral as possible (contains no ads etc.) and reflects the features of my theme
[x] I tested my theme against the gohugoio/HugoBasicExample
[x] I've checked the developer tools' console in my browser for error messages
[x] in case my theme is using Hugo Pipes features like toCSS and PostCSS that I have committed the /resources directory with all generated assets, for my theme to work in the basic version of Hugo

Feel free to ask questions. We're glad to help.

Hello @heyarviind,
thank you for submitting another beautiful theme to us :+1:
I've tested your theme with the build script for the Hugo theme site that also generates a demo for the theme. When you make use of the exampleSite folder please make sure that

you add a content folder inside exampleSite. Even if your theme is a one-page theme and doesn't make use of content files Hugo expects a content folder under all circumstances. You can make the content folder trackable by adding a empty dummy file like exampleSite/content/.gitkeep
you provide a config file in the exampleSite folder. Once you make use of exampleSite you have to provide all necessary files for a working Hugo site yourself as Hugo doesn't fall back to the default setup

Hey @digitalcraftsman,
Sorry for the mistakes, I've resolved the issues. Please have a look at the repo again
Cheers

While having another looking at your theme I noticed that you're making us of Hugo's SCSS generation feature. Currently, the extended version of Hugo, which includes the SCSS generator, isn't supported by our hoster netlify.com. They're using a tool to fetch the latest Hugo release, but it can't distinguish between the normal Hugo version and the extended version of Hugo.
A pull request to fix this problem has already been submitted. But it can take some time once Netlify also updates their build image that is used for the generation deployments.
According to this comment a possible workaround is to let Git track the resources/_gen/assets folder.

@digitalcraftsman I can compile and use the CSS for the demo if you say?

For now you've to compile the CSS files yourself and add resources/_gen/assets that contains the generated to the Git repository. Because the extended version of Hugo isn't available during the build of the theme site Hugo is unable to compile the SCSS files on it's own.

@digitalcraftsman I can't find the resource folder after generating the demo, can you please describe briefly?

@digitalcraftsman I've added compiled CSS, please let me know if there is anything to be corrected

@heyarviind You need to commit the /resources/ directory along with all of its contents for the theme's demo to be generated on the website, not the /assets/ directory that contains the uncompliled SCSS.
Also please review the updated README
Please do the above and let me know.
Thanks.

@onedrawingperday I tried build script but something was not working on my end, so I've added resource folder and changed files as you've mentioned. Please have a look

@heyarviind
First of all please delete the .DS_Store files that are under every folder below the newly commited /resources/ directory. Also add this file in a .gitignore file. This file contains metadata from your Mac and it's not a good idea to have it visible in public.
Then please review the Hugo Theme's updated README Common Permalink Issues because your demo is affected.
You need to use .RelPermalink for Hugo Pipes Assets.
Please do the above and let me know.

@onedrawingperday Sorry for the .DS_Store issue again, I've deleted all the .DS_Store files.
I've also replaced .Permalink to .RelPermalink. Hope this time things work fine :)

@heyarviind Thanks for making the changes. All is good with your theme now and there are no more errors on my end.
However I am not sure about what is the practice for the BUY NOW button that you have included in your header and also about the extra features of the PRO VERSION of your theme, that are mentioned in the README. The license of the free version of your theme is the standard MIT.
So I am tagging @digitalcraftsman and @bep to offer their opinion about the promotion of the PRO VERSION of your theme.
Also here is the link of your theme's repo to make it easier for them to see it for themselves:
https://github.com/uicardiodev/hugo-lime

@onedrawingperday I develop free and pro version of the themes, so I am just submitting the free version to Hugo. I think adding little about pro version in the description has no harm. After all, it encourages me to develop more and professional looking themes for Hugo

@heyarviind
Sure, but this is not my call.
I tagged the others to have a look at your theme's README about the features of the PRO VERSION as well as the BUY NOW button.
If @bep and @digitalcraftsman are fine your theme can be added as is. If they request changes about the promotion, they will let you know.

@heyarviind
Also I want to note that in your previous theme submission that I also reviewed the promotion of the PRO version was more subtle and you only mentioned it in the README. There is no BUY NOW button in the Demo.
https://themes.gohugo.io/hugo-sodium-theme/

Hello @heyarviind,
your theme's demo is working fine. Regarding the promotion of a paid version I would refer to a similar discussion for Themefisher themes (e.g. navigator, airspace), especially this comment by Bjørn Erik.
The MIT license is standard license and commonly. For me the README is formulated neutral. You're listing the differences between the free and pro version of the theme and linking to the pro version in a non-instrusive manner. Hence it should be (IMO) in accordance to Bjørn Erik's linked comment from above.
However, I'm not sure about the "Buy now" button in the README. This sounds like the theme isn't free which stands in contrast to the MIT license. A more neutral version could be "Show pro version". However, I would like to hear @bep's opinion as well for a final decision.
/ping @bep

I agree with you @digitalcraftsman  -- "buy now" is hinting that this is a "try, then buy" kind of program. Which is fine, but not here.

@digitalcraftsman @bep I agree with you guys, "Buy Now" hints that this theme is not free but if I replace it with "upgrade to pro" it would make more sense.
@bep so for the final word, should I rename the button or remove the button?

@digitalcraftsman @onedrawingperday @bep I've removed "buy now" button from the demo, please have a look. I don't think there is any other issue left with this theme

Now, I'm fine with this decision and your theme in general. What about you @bep?

Looks good.

Your theme should appear soon on Hugo's theme site. Next, I'll promote your theme on Hugo's official Twitter account.


Blade Components Highlighting

Could be great to have an highlight on <x-> elements, in order to differenciate them from html elements !

Hello Julien, I have not used PHP for a while now, great to see that the extension is still being helpful, could you provides some screencaps/snippets of the mentioned special elements?
Thanks!

Hi ! It is Laravel Blade related stuff, you can find an exemple here.
Laravel Blade components start with <x-, i hoped your highlighting extension could provide some specific colors to it.
It can be self closing like so: <x-component/> or opened closed like html tags: <x-component></x-component>
It can contain slots: <x-component><x-slot></x-slot></x-component>

Hi Julien,
Honestly saying I had no clue of what modifications I did to create this extension, and I currently doesn't have much time to do some revisit and tests,
Maybe you could try using onecentlin's extension in the meanwhile, her is much more maintained and based on the test files, <x-component/> is supported.

Ok, thank you for your time and advice !


nvim_replace_termcodes missing return

I noticed that nvim_replace_termcodes is missing a return statement. This causes some errors when I try to pass the escaped value to the function, it considers it nil instead of string

The relevant docs :help nvim_replace_termcodes don't mention a return value, so lua-dev won't generate the emmy lua return annotation

Ah, ok, that makes sense. Thanks.


fix needDrain emitting to match the amount of pauses

Trying to work out a test for this, which I will hopefully push soon

what is currently happening? the way you phrased it it sounds like it's emitting too many pauses not not enough drains. it should not emit another pause unless it's emitted drain since the last pause.
As a regular expression: /(PD)*/
if it's emitting PPPD that is a too many pauses,
PPPDDD has the same number of pauses and drains, but is not valid.

I was able to simulate the problem I had in my code with a test, that I just added, the change fixes that. I hope that code explains better what issue I am trying to solve.

it would help if you describe the problem? it's harder to interpret code than text

it would help if you describe the problem? it's harder to interpret code than text

Of course.
Given a src readable stream and a dest writable stream, which are src.pipe(dest) together, the following happens

If src receives false from a write call it moves into a paused state, increasing an awaitDrain counter and pause itself. (https://github.com/nodejs/node/blob/master/lib/_stream_readable.js#L555-L568)
Once 'drain' is emitted from dest, it will check the awaitDrain counter, and decrement it. If it is at 0 it will resume it self. (https://github.com/nodejs/node/blob/master/lib/_stream_readable.js#L619-L623)
On every 'data' event from src it tries to call write on dest, independent of the state of src. (https://github.com/nodejs/node/blob/master/lib/_stream_readable.js#L551-L552)

The above behaviour results in what you mentioned of pausing multiple times one after another, without 'drain' in between. Because there is a counter, which checks how often writes returned false, dest needs to emit the exact same amount of 'drain' events to makes src return into flowing mode.
With the current code where I put the needDrain = false into the nextTick call, this does not happen, as those write() === false calls in between are not tracked properly.
The best solution I could come up with was to move the needDrain = false out, such that it is process synchronously, triggering in the next round a new 'drain' event, corresponding to the write call that returned false.

Thanks! Now I understand.
When I learnt nodestreams, it worked the way I described! emitting lots of drain events will still work correctly with old streams. unfortunately they can't describe the state of a node stream with a finite state machine now! you have to have a stack-based automaton.
but if node uses a counter here, I think we should use a counter too, even if we emit drain inside a loop

as I think about this more, I realize that actually that change in node streams would not be backwards compatible with older node streams. I think we better figure out what is really going on here

for reference, this is the commit that introduced that feature https://github.com/nodejs/node/commit/0f8de5e1f96a07fa6de837378d29ac5f2719ec60

Found the original referenced issue with discussion: https://github.com/nodejs/node-v0.x-archive/issues/5860

I realize that actually that change in node streams would not be backwards compatible with older node streams

What exactly do you think break compat here, and to which streams version?
In your blog on the history of streams you write

The version of streams now in contemporary node@5 is considered streams3. it’s a significant refactor from streams2, but, is still backwards compatible.

do you think this is not true anymore, or just the implementation in here?

I'm a bit confused by this drain counter thing. Although, maybe ... it would make sense if it's for when you pipe a stream to multiple destinations?
I'm gonna study your test code and figure out what is going on there

oh, now I see it. this is a big no-no https://github.com/pull-stream/pull-stream-to-stream/commit/d5b8ffdf45a769cfb93895b5be8cd5a120d5f7a0#diff-168726dbe96b3ce427e7fedce31bb0bcR68
the problem here is that you have emitted the event, then updated the state, but it should be the other way around. You must be very careful with this, because the anything (sync) can happen during the event listener, including triggering other events. In this case, you emit the drain event, which triggers more writes, etc, but the stream still thinks it's no longer needing to drain, when actually, it may have reentered the needDrain state. if you just shift the needDrain = false before the emit, then your test passes.

@dominictarr rebased based on your changes and passes all my integration tests :)

cool, merging!

@dominictarr I think you published without pushing to github :)

Hey! Just to confirm, has this been merged? Seems that there is a new version on npm, but the last commit in github master is from 6 days ago

yes, sorry - I just forgot which branch I was on.

merged into 1.3.2

Thank you 🙂


Document the INITSYSTEM / ENTRYPOINT incompatibility in https://docs.resin.io/learn/develop/dockerfile/#init-system

ENTRYPOINTs are not compatible with balena devices with INITSYSTEM enabled, and this is entirely non-obvious. Make the documentation say that explicitly.
 Front conversations

Need to investigate this further, if it works now or not. Before adding a fix for it.


GL_SELECT

Is i possible to select a 3d  object (a cube for example) using GL_SELECT mode?

Hello @dmalves,
GL_SELECT method for object picking is very old and deprecated in newer OpenGL versions. It could even be possible that some new graphic cards don't support that functionality at all. So, that functionality is not available in raylib and won't be added using GL_SELECT.
A newer picking method is being developed but, unfortunately, it's not working yet. You can see the related issue https://github.com/raysan5/raylib/issues/35


Cannot preview Implicit Grant Flow diagram

Description:
I found a link out in following page.
https://docs.wso2.com/display/AM210/Implicit+Grant
But other grant flow diagram is linked to a diagram in identity server documentation with following description.
'The grant type is further explained with the use of a sequence diagram here.'
Therefore , it should link to implicit grant page like other grant flow diagram, right?
I assume that what we should do is adding above description and linking to
https://docs.wso2.com/display/IS530/Implicit+Grant.

Thanks
Suggested Labels:
doc
Affected Product Version:
APIM 1.1.0 to 2.6.0

We have checked repeatedly and ensured that the diagram is viewable. Please clear your browser cache and check again.
Do reach out to us if anything else needs to be done!


chore: Remove moonrepo/setup-rust in favor of dtolnay/rust-toolchain

Closing: cargo binstall cargo-codspeed takes several minutes. No bueno.


Add support for global products in Resources Map

A globe icon with "Global Products" name is available, to let you see your global products (Products that do not have specific regions).
You can use it like a regular region (Hover the icon to see the tooltip with the total cost, click on the icon to see more details).

I added an invisible circle upon the globe icon, since I got issues when trying to fill continent with white. It works on my side, let me know if you still have issues with this.


question, help request

hi
I used BlazorWorker and having some of bugs
for example I have bugs on load assemblys which are a lot of and I shouldn't list that in code
and also if I list that then webworker cant find that because the file not exist
other problem is performance issue when return huge of data, for example 10 mega bytes byte array waiting much time
so I decided to make other webworker for my project because of different approach and different vision of this project
however now I have few problem in load assembly and interrupt a method via JavaScript
my question is how can I load the app in web worker and is any document exist for read?
also I read this file which generated for webworker but this have extra things which I don't understand
self.onmessage = function () {
    const initConf = JSON.parse('{"appRoot":"http://localhost:59244","DependentAssemblyFilenames":["BlazorWorker.WorkerCore.dll","netstandard.dll","mscorlib.dll","System.dll","System.Core.dll","System.Buffers.dll","System.Collections.dll","System.Configuration.dll","System.Console.dll","System.Diagnostics.Debug.dll","System.Diagnostics.DiagnosticSource.dll","System.Diagnostics.StackTrace.dll","System.Diagnostics.TraceSource.dll","System.Dynamic.Runtime.dll","System.Globalization.Calendars.dll","System.Globalization.Extensions.dll","System.Globalization.dll","System.Linq.Expressions.dll","System.Linq.Queryable.dll","System.Linq.dll","System.Memory.dll","System.Numerics.Vectors.dll","System.Numerics.dll","System.ObjectModel.dll","System.Private.CoreLib.dll","System.Private.Runtime.InteropServices.JavaScript.dll","System.Private.Uri.dll","System.Private.Xml.Linq.dll","System.Private.Xml.dll","System.Reflection.DispatchProxy.dll","System.Reflection.Extensions.dll","System.Reflection.Metadata.dll","System.Reflection.Primitives.dll","System.Reflection.TypeExtensions.dll","System.Reflection.dll","System.Runtime.Extensions.dll","System.Runtime.Handles.dll","System.Runtime.InteropServices.RuntimeInformation.dll","System.Runtime.InteropServices.dll","System.Runtime.Intrinsics.dll","System.Runtime.Loader.dll","System.Runtime.Numerics.dll","System.Runtime.dll","System.Threading.Tasks.dll","System.Threading.Thread.dll","System.Threading.dll","BlazorWorker.WorkerBackgroundService.dll","Newtonsoft.Json.dll","System.Xml.dll","Serialize.Linq.dll","System.Data.dll","System.Runtime.CompilerServices.Unsafe.dll","System.Runtime.Serialization.dll","System.Threading.Tasks.Extensions.dll","System.Xml.ReaderWriter.dll","System.Text.RegularExpressions.dll","System.Collections.Concurrent.dll","System.ComponentModel.Primitives.dll","System.ComponentModel.TypeConverter.dll","System.ComponentModel.dll","System.Collections.Immutable.dll","System.Collections.NonGeneric.dll","System.Collections.Specialized.dll","System.Data.Common.dll","System.Data.DataSetExtensions.dll","System.Reflection.Emit.ILGeneration.dll","System.Reflection.Emit.Lightweight.dll","System.Private.DataContractSerialization.dll","System.Runtime.Serialization.Formatters.dll","System.Runtime.Serialization.Json.dll","System.Runtime.Serialization.Primitives.dll","System.Runtime.Serialization.Xml.dll","System.Text.Encoding.CodePages.dll","System.Text.Encoding.Extensions.dll","System.Text.Encoding.dll","Monsajem_incs.dll","BlazorApp_NetCore.dll","System.CodeDom"],"deploy_prefix":"_framework","MessageEndPoint":"[BlazorWorker.WorkerCore]BlazorWorker.WorkerCore.MessageService:OnMessage","InitEndPoint":"[BlazorWorker.WorkerBackgroundService]BlazorWorker.WorkerBackgroundService.WorkerInstanceManager:Init","wasmRoot":"_framework","blazorBoot":"_framework/blazor.boot.json","debug":false}');
    const nonExistingDlls = [];
    let blazorBootManifest = {
        resources: { assembly: { 'AssemblyName.dll': 'sha256-<sha256>' } }
    };
    const onReady = () => {
        const messageHandler =
            Module.mono_bind_static_method(initConf.MessageEndPoint);
        // Future messages goes directly to the message handler
        self.onmessage = msg => {
            messageHandler(msg.data);
        };

        if (!initConf.InitEndPoint) {
            return;
        }

        try {
            Module.mono_call_static_method(initConf.InitEndPoint, []);
        } catch (e) {
            console.error(`Init method ${initConf.InitEndPoint} failed`, e);
            throw e;
        }
    };

    const onError = (err) => {
        console.error(err);
    };

    function asyncLoad(url, reponseType) {
        return new Promise((resolve, reject) => {
            const xhr = new XMLHttpRequest();
            const arrayBufferType = 'arraybuffer';
            xhr.open('GET', url, /* async: */ true);
            xhr.responseType = reponseType || arrayBufferType;
            xhr.onload = function xhr_onload() {
                if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
                    if (this.responseType === arrayBufferType) {
                        const asm = new Uint8Array(xhr.response);
                        resolve(asm);
                    } else {
                        resolve(xhr.response);
                    }
                } else {
                    reject(xhr);
                }
            };
            xhr.onerror = reject;
            xhr.send(undefined);
        });
    }

    var config = {};
    var Module = {};

    const wasmBinaryFile = `${initConf.appRoot}/${initConf.wasmRoot}/dotnet.wasm`;
    const suppressMessages = ['DEBUGGING ENABLED'];
    const appBinDirName = 'appBinDir';

    Module.print = line => (suppressMessages.indexOf(line) < 0 && console.log(`WASM-WORKER: ${line}`));

    Module.printErr = line => {
        console.error(`WASM-WORKER: ${line}`);
        showErrorNotification();
    };
    Module.preRun = [];
    Module.postRun = [];
    Module.preloadPlugins = [];

    Module.locateFile = fileName => {
        switch (fileName) {
            case 'dotnet.wasm': return wasmBinaryFile;
            default: return fileName;
        }
    };

    Module.preRun.push(() => {
        const mono_wasm_add_assembly = Module.cwrap('mono_wasm_add_assembly', null, [
            'string',
            'number',
            'number',
        ]);

        mono_string_get_utf8 = Module.cwrap('mono_wasm_string_get_utf8', 'number', ['number']);

        MONO.loaded_files = [];
        var baseUrl = `${initConf.appRoot}/${initConf.deploy_prefix}`;

        initConf.DependentAssemblyFilenames.forEach(url => {

            if (!blazorBootManifest.resources.assembly.hasOwnProperty(url)) {
                //Do not attempt to load a dll which is not present anyway
                nonExistingDlls.push(url);
                return;
            }

            const runDependencyId = `blazor:${url}`;
            addRunDependency(runDependencyId);

            asyncLoad(baseUrl + '/' + url).then(
                data => {
                    const heapAddress = Module._malloc(data.length);
                    const heapMemory = new Uint8Array(Module.HEAPU8.buffer, heapAddress, data.length);
                    heapMemory.set(data);
                    mono_wasm_add_assembly(url, heapAddress, data.length);
                    MONO.loaded_files.push(url);
                    removeRunDependency(runDependencyId);
                },
                errorInfo => {
                    const isPdb404 = errorInfo instanceof XMLHttpRequest
                        && errorInfo.status === 404
                        && url.match(/\.pdb$/);
                    if (!isPdb404) {
                        onError(errorInfo);
                    }
                    removeRunDependency(runDependencyId);
                }
            );
        });
    });

    Module.postRun.push(() => {
        MONO.mono_wasm_setenv('MONO_URI_DOTNETRELATIVEORABSOLUTE', 'true');
        const load_runtime = Module.cwrap('mono_wasm_load_runtime', null, ['string', 'number']);
        load_runtime(appBinDirName, 0);
        MONO.mono_wasm_runtime_is_ready = true;
        onReady();
        if (initConf.debug && nonExistingDlls.length > 0) {
            console.warn(`BlazorWorker: Module.postRun: ${nonExistingDlls.length} assemblies was specified as a dependency for the worker but was not present in the bootloader. This may be normal if trimmming is used. To remove this warning, either configure the linker not to trim the specified assemblies if they were removed in error, or conditionally remove the specified dependencies for builds that uses trimming. If trimming is not used, make sure that the assembly is included in the build.`, nonExistingDlls);
        }
    });

    config.file_list = [];

    global = globalThis;
    self.Module = Module;

    //TODO: This call could/should be session cached. But will the built-in blazor fetch service worker override
    // (PWA et al) do this already if configured ?
    asyncLoad(`${initConf.appRoot}/${initConf.blazorBoot}`, 'json')
        .then(blazorboot => {
            blazorBootManifest = blazorboot;
            let dotnetjsfilename = '';
            const runttimeSection = blazorboot.resources.runtime;
            for (var p in runttimeSection) {
                if (Object.prototype.hasOwnProperty.call(runttimeSection, p) && p.endsWith('.js')) {
                    dotnetjsfilename = p;
                }
            }

            if (dotnetjsfilename === '') {
                throw 'BlazorWorker: Unable to locate dotnetjs file in blazor boot config.';
            }

            self.importScripts(`${initConf.appRoot}/${initConf.wasmRoot}/${dotnetjsfilename}`);

        }, errorInfo => onError(errorInfo));
}()

closed as founded a way
your code helped me to known how interact whit mono WASM, thanks.


New Content Update Request: New Partner Adyen

Link where content currently exists
https://techqueria.org/supporters/
Updates you'd like to make
Please add the image under Silver Sponsors.
Any additional context?
This was requested because they're a new partner.

I will update the sponsors

I will update the sponsors

opened a new pr for this - https://github.com/techqueria/website/pull/834

opened a new pr for this - https://github.com/techqueria/website/pull/834


plumb through Fd in setattr

this allows us to distinguish between truncate vs ftruncate

Would you mind rebasing this on the current master branch please? We fixed the travis config in the meantime.

rebased

Thanks!


fix: Profile - No error after uploading corrupted jpg for avatar, console error shows up.

Details

Fixed Issues
$ https://github.com/Expensify/App/issues/48707
PROPOSAL: https://github.com/Expensify/App/issues/48707#issuecomment-2334012944
Tests

Go to Account settings > Profile
Click on the avatar > Upload photo
Upload a corrupted jpg file (attached below)
Verify error message is shown below the Avatar

[x] Verify that no errors appear in the JS console

Offline tests

Go to Account settings > Profile
Click on the avatar > Upload photo
Upload a corrupted jpg file (attached below)
Verify error message is shown below the Avatar

QA Steps

Go to Account settings > Profile
Click on the avatar > Upload photo
Upload a corrupted jpg file (attached below)
Verify error message is shown below the Avatar

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/e0de57be-ee6b-4801-abfe-63706d2126c4

Android: mWeb Chrome
https://github.com/user-attachments/assets/6fbc185d-9de7-4c08-84d6-b09c351b87f3

iOS: Native
https://github.com/user-attachments/assets/97ac1cf0-a4d3-4ba5-bbe1-eb37ff0e975d

iOS: mWeb Safari
https://github.com/user-attachments/assets/2464ca5e-5015-4663-9d02-08ec18db2f15

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/72eb3910-ded0-4d37-bd99-a2e1cc65f005

MacOS: Desktop
https://github.com/user-attachments/assets/24b1295d-bc19-4b87-88d9-13b3064b209e

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


[authn] add NewUnsafeGrpcAuthenticator

Follow-up to https://github.com/grafana/authlib/pull/81
This PR adds NewUnsafeGrpcAuthenticator constructor, which uses of the NewUnsafeIDTokenVerifier and NewUnsafeAccessTokenVerifier.
This is meant to be used in Unified Storage for in-process mode.

Yes we can either do it like this or just make NewGrpcAuthenticator accept verifies. That we have to option to reuse one verifier in multiple places if we need.

@kalleep, I went for this approach because it is more explicit (i.e. you know what it means when you decide to use NewUnsafeGrpcAuthenticator), it's unlikely we'll need to support external verifiers, and the only existing use case for the unsafe verifiers is currently for unistor in-proc mode.
The alternative that I like is to pass the verifier as an option, and use a default if it's not set.
I actually don't have a strong preference, so if you think the latter is better suited long-term, I'll update the implementation. WDYT?

Thanks both, will merge as is, and we can iterate.


get scan button key down event

Hello Darry,
I was wondering how to modify your module in order to obtain the time in which the scan button is pressed.
This because I need to know how much time has passed between scanning start and scanning result  (barcode data). Could I override some kind of Class to retrieve starting time?
Thank you,
Francesca

Hi, do you mean the physical trigger key or do you have a soft button on your UI that invokes DataWedgeIntents.ACTION_SOFTSCANTRIGGER?  For the physical trigger, you might be able to use something like https://github.com/kevinejohn/react-native-keyevent to detect it.  If the trigger is not detected then you may need to remap it using something like the technique described at http://www.darryncampbell.co.uk/2017/07/07/controlling-datawedge-via-key-presses/.

Thank you Darry,
but I'd like to do that in your module, not in the react component. Something like:
@Override
    public void onKeyDown(int keyCode, KeyEvent event) {
        if( keyCode === KeyEvent.KEYCODE_BUTTON_L1) {
                SCAN_START = Calendar.getInstance().getTimeInMillis();
        }
    }

But obviously it doesn't work.
Thank you so much

I'm not sure why it doesn't work, maybe take a look at that other plugin I referenced as they are doing something in onKeyDown.  Feel free to modify my module, it is released under MIT so there should be no licensing concerns.


[pytket-braket] Add @property decorator to BraketBackend.device

Fixes #102.
This matches the definition of .device in other Backend classes.

Just need to fix the call to device() in test_ionq.


Feature Request: Add Strava authentication as a new auth provider

Strava is the main social network for sports. So it makes really sense to implement the Strava authentication as a new authentication provider. This will enable pocketbase to be a also really good backend for sports apps.
I already created a PR for that. Please see #1443

Merged in master.


Bump Golang to 1.19.5

Signed-off-by: Arnaud Meukam<EMAIL_ADDRESS>

cc @BenTheElder @dims

/lgtm

Anything in here that would warrant updating prod?