Handle Incoming Call When app is in background state

Hi,
First of all thanks a lot for the library which is very helpful. By following the documentation, I've managed to integrate Twilio voice call functionality in a react native app. Outgoing call working fine, also receiving incoming calls as well.
But when the app is in the background state or killed then if the device receives an incoming call it just opens the app's homepage without showing callkeep UI.  I'm not sure if that is the expected behavior that you've implemented. If so is there any event that exists where we can listen and get the data ex. caller phoneNumber and trigger the callkeep from the app.
I've tried these events CallInvite , CallRinging but these events don't; trigger when the app comes in the foreground state.
Note: I'm only working on the android platform at the moment

Hi, thanks for the support!
Indeed this is not the expected behavior, CallKeep UI should show up (even if app is awaken behind the hood).
What version of Android are you using? on which device?
Also what dependencies versions did you install?
I have updated all dependencies yesterday, and the example app works well on Android.
Here are the last dependencies versions of the example app:
  "dependencies": {
    "@react-native-firebase/app": "^10.0.0",
    "@react-native-firebase/messaging": "^10.0.0",
    "react": "16.13.1",
    "react-native": "0.63.3",
    "react-native-callkeep": "^4.0.1",
    "react-native-voip-push-notification": "^3.0.0"
  },

Migrating to CallKeep v4 (adds Android 11 support) also requires:

compileSdkVersion = 30 in build.gradle
android:foregroundServiceType="microphone" in AndroidManifest.xml
new arguments to init CallKeep

I thought about the fact that your app is awake but the CallKeep UI does not show.
Maybe it is simply a permission problem, did you allow your app to access phone app?

Hi, I've tested on android 7 emulators and real devices. In both cases, CallKeep UI doesn't show up when the app wake up from background/killed to foreground state
Here is the sdk version I'm using
 buildToolsVersion = "28.0.3"         minSdkVersion = 24         compileSdkVersion = 30         targetSdkVersion = 30         kotlinVersion = "1.3.72"
and all the required packages are up to date to the latest version. I've used the same param mentioned in your documentation to initiate the callkeep instance.
I think I've added all the required permission as well
<uses-permission             android:name="android.permission.BIND_TELECOM_CONNECTION_SERVICE"             tools:ignore="ProtectedPermissions" />     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />     <uses-permission android:name="android.permission.READ_PHONE_STATE" />     <uses-permission android:name="android.permission.CALL_PHONE" />     <uses-feature android:name="android.hardware.microphone" android:required="true" />     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />     <uses-permission android:name="android.permission.WAKE_LOCK" />     <uses-permission android:name="android.permission.READ_PHONE_STATE" />     <uses-permission android:name="android.permission.VIBRATE" />
But Call Ui doesn't show when the app comes into foreground. Though it works fine when the app is in the foreground.

In Android 10  app doesn't actually get open when the app is killed. it only just receives a notification that only shows the app name and nothing else.

I tested incoming calls with the example app.
Android 9 (Real device - Samsung G9)

app in foreground: OK
app in background: OK
app killed: OK

Android 10 (Emulator - Nexus 5X)

app in foreground: OK
app in background: OK
app killed: KO - nothing happens on the screen

Android 11 (Emulator - Pixel 4)

app in foreground: OK
app in background: OK
app killed: KO - nothing happens on the screen

In all cases, I could not reproduce your notification problem (receiving a notification without buttons to accept or decline).
I only have one real device (Samsung G9) and everything works with it. So I cannot tell if the killed state problem comes from emulating device or not.
Let's compare the logs. Here are the logs of that case:
Android 10 (Emulator - Nexus 5X)

app in foreground: OK
app in background: OK
app killed: KO - nothing happens on the screen

Can you compare with your logs to see if something shows up?

Thanks for sharing this project @MrHertal . On android 10 I also get this:
• app killed: KO - nothing happens on the screen
FCM does receive the notification and it does pass it through to TwilioPhone, but there's no UI at all on the lock screen. But in this case I don't get any UI notification at all; is your screenshot above from this ('app killed') case or is it the 'app in background' case?
When I first kill the app, it looks like some permissions are revoked (SYSTEM_ALERT_WINDOW and BIND_TELECOM_CONNECTION_SERVICE), followed a few seconds later by an error cannot create TelephonyManager from ComponentInfo. Could this be the cause of the issue?

<aside>
With a completely different example I've seen an empty UI notification that @skibrit describes, and I suspect it's something to do with the payload. I haven't seen the behaviour in this example.

=====
Killed the app:
=====

2020-12-10 11:08:25.524 2042-2065/? I/ActivityManager: Killing 11032:net.appworkshop.reactnativetwiliophone/u0a139 (adj 905): remove task
2020-12-10 11:08:25.624 2042-2142/? W/InputDispatcher: channel 'caab3ec net.appworkshop.reactnativetwiliophone/net.appworkshop.reactnativetwiliophone.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
2020-12-10 11:08:25.624 2042-2142/? E/InputDispatcher: channel 'caab3ec net.appworkshop.reactnativetwiliophone/net.appworkshop.reactnativetwiliophone.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
2020-12-10 11:08:25.629 2042-2060/? I/WindowManager: WIN DEATH: Window{caab3ec u0 net.appworkshop.reactnativetwiliophone/net.appworkshop.reactnativetwiliophone.MainActivity}
2020-12-10 11:08:25.629 2042-2060/? W/InputDispatcher: Attempted to unregister already unregistered input channel 'caab3ec net.appworkshop.reactnativetwiliophone/net.appworkshop.reactnativetwiliophone.MainActivity (server)'
====> 2020-12-10 11:08:51.634 2042-2083/? I/PackageManager: Un-granting permission android.permission.SYSTEM_ALERT_WINDOW from package net.appworkshop.reactnativetwiliophone (protectionLevel=1250 flags=0x38883e46)
====> 2020-12-10 11:08:51.634 2042-2083/? I/PackageManager: Un-granting permission android.permission.BIND_TELECOM_CONNECTION_SERVICE from package net.appworkshop.reactnativetwiliophone (protectionLevel=18 flags=0x38883e46)
====> 2020-12-10 11:08:56.507 2353-2353/? E/VvmPkgInstalledRcvr: cannot create TelephonyManager from ComponentInfo{net.appworkshop.reactnativetwiliophone/io.wazo.callkeep.VoiceConnectionService}, ***, UserHandle{0}

2020-12-10 11:09:16.917 2042-2083/? I/PackageManager: Un-granting permission android.permission.SYSTEM_ALERT_WINDOW from package net.appworkshop.reactnativetwiliophone (protectionLevel=1250 flags=0x38883e46)
2020-12-10 11:09:16.917 2042-2083/? I/PackageManager: Un-granting permission android.permission.BIND_TELECOM_CONNECTION_SERVICE from package net.appworkshop.reactnativetwiliophone (protectionLevel=18 flags=0x38883e46)
2020-12-10 11:09:19.454 2353-2353/? E/VvmPkgInstalledRcvr: cannot create TelephonyManager from ComponentInfo{net.appworkshop.reactnativetwiliophone/io.wazo.callkeep.VoiceConnectionService}, ***, UserHandle{0}

=====
Receiving a call (from killed state):
=====

2020-12-10 11:10:29.685 2042-2072/? I/ActivityManager: Start proc 16811:net.appworkshop.reactnativetwiliophone/u0a139 for broadcast {net.appworkshop.reactnativetwiliophone/io.invertase.firebase.messaging.ReactNativeFirebaseMessagingReceiver}
2020-12-10 11:10:29.692 16811-16811/? I/tivetwiliophon: Not late-enabling -Xcheck:jni (already on)
2020-12-10 11:10:29.790 16811-16811/? E/tivetwiliophon: Unknown bits set in runtime_flags: 0x8000
2020-12-10 11:10:29.791 16811-16811/? W/tivetwiliophon: Unexpected CPU variant for X86 using defaults: x86
2020-12-10 11:10:33.978 16811-16858/? W/tivetwiliophon: JNI critical lock held for 33.831ms on Thread[17,tid=16858,Runnable,Thread*=0xd1846a00,peer=0x12c79f98,"pool-4-thread-1"]
2020-12-10 11:10:34.032 16811-16811/? D/SoLoader: adding application source: com.facebook.soloader.DirectorySoSource[root = /data/app/net.appworkshop.reactnativetwiliophone-s3ceXwUvc8MsF1TciRIWKA==/lib/x86 flags = 0]
2020-12-10 11:10:34.034 16811-16811/? D/SoLoader: adding backup source from : com.facebook.soloader.ApkSoSource[root = /data/data/net.appworkshop.reactnativetwiliophone/lib-main flags = 1]
2020-12-10 11:10:34.035 16811-16811/? D/SoLoader: Preparing SO source: com.facebook.soloader.DirectorySoSource[root = /data/app/net.appworkshop.reactnativetwiliophone-s3ceXwUvc8MsF1TciRIWKA==/lib/x86 flags = 0]
2020-12-10 11:10:34.035 16811-16811/? D/SoLoader: Preparing SO source: com.facebook.soloader.ApkSoSource[root = /data/data/net.appworkshop.reactnativetwiliophone/lib-main flags = 1]
2020-12-10 11:10:34.578 16811-16811/? I/fb-UnpackingSoSource: dso store is up-to-date: /data/user/0/net.appworkshop.reactnativetwiliophone/lib-main
2020-12-10 11:10:34.590 16811-16811/? D/SoLoader: libjscexecutor.so not found on /data/data/net.appworkshop.reactnativetwiliophone/lib-main
2020-12-10 11:10:34.590 16811-16811/? D/SoLoader: libjscexecutor.so found on /data/app/net.appworkshop.reactnativetwiliophone-s3ceXwUvc8MsF1TciRIWKA==/lib/x86
2020-12-10 11:10:35.594 16811-16811/? W/tivetwiliophon: Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (greylist,core-platform-api, reflection, allowed)
2020-12-10 11:10:35.594 16811-16811/? W/tivetwiliophon: Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (greylist,core-platform-api, reflection, allowed)
2020-12-10 11:10:35.594 16811-16811/? W/tivetwiliophon: Accessing hidden method Ldalvik/system/CloseGuard;->warnIfOpen()V (greylist,core-platform-api, reflection, allowed)
2020-12-10 11:10:35.840 16811-16874/? D/SoLoader: libfbjni.so not found on /data/data/net.appworkshop.reactnativetwiliophone/lib-main
2020-12-10 11:10:35.840 16811-16874/? D/SoLoader: libfbjni.so found on /data/app/net.appworkshop.reactnativetwiliophone-s3ceXwUvc8MsF1TciRIWKA==/lib/x86
2020-12-10 11:10:35.841 16811-16874/? D/SoLoader: libflipper.so not found on /data/data/net.appworkshop.reactnativetwiliophone/lib-main
2020-12-10 11:10:35.841 16811-16874/? D/SoLoader: libflipper.so found on /data/app/net.appworkshop.reactnativetwiliophone-s3ceXwUvc8MsF1TciRIWKA==/lib/x86
2020-12-10 11:10:36.793 16811-16811/? W/tivetwiliophon: Accessing hidden field Landroid/view/View;->mKeyedTags:Landroid/util/SparseArray; (greylist, reflection, allowed)
2020-12-10 11:10:36.793 16811-16811/? W/tivetwiliophon: Accessing hidden field Landroid/view/View;->mListenerInfo:Landroid/view/View$ListenerInfo; (greylist, reflection, allowed)
2020-12-10 11:10:36.793 16811-16811/? W/tivetwiliophon: Accessing hidden field Landroid/view/View$ListenerInfo;->mOnClickListener:Landroid/view/View$OnClickListener; (greylist, reflection, allowed)
2020-12-10 11:10:36.981 16811-16811/? D/SoLoader: libreactnativejni.so not found on /data/data/net.appworkshop.reactnativetwiliophone/lib-main
2020-12-10 11:10:36.981 16811-16811/? D/SoLoader: libreactnativejni.so found on /data/app/net.appworkshop.reactnativetwiliophone-s3ceXwUvc8MsF1TciRIWKA==/lib/x86
2020-12-10 11:10:37.428 16811-16901/? W/tivetwiliophon: Accessing hidden method Landroid/os/WorkSource;->add(I)Z (greylist, reflection, allowed)
2020-12-10 11:10:37.428 16811-16901/? W/tivetwiliophon: Accessing hidden method Landroid/os/WorkSource;->add(ILjava/lang/String;)Z (greylist, reflection, allowed)
2020-12-10 11:10:37.428 16811-16901/? W/tivetwiliophon: Accessing hidden method Landroid/os/WorkSource;->size()I (greylist, reflection, allowed)
2020-12-10 11:10:37.428 16811-16901/? W/tivetwiliophon: Accessing hidden method Landroid/os/WorkSource;->get(I)I (greylist, reflection, allowed)
2020-12-10 11:10:37.428 16811-16901/? W/tivetwiliophon: Accessing hidden method Landroid/os/WorkSource;->getName(I)Ljava/lang/String; (greylist, reflection, allowed)
2020-12-10 11:10:39.344 16811-16908/? I/tivetwiliophon: The ClassLoaderContext is a special shared library.
2020-12-10 11:10:39.429 16811-16908/? I/tivetwiliophon: The ClassLoaderContext is a special shared library.
2020-12-10 11:10:40.728 16811-16907/? W/tivetwiliophon: JNI critical lock held for 33.610ms on Thread[40,tid=16907,Runnable,Thread*=0xbaa7ba00,peer=0x13480200,"mqt_js"]
2020-12-10 11:10:41.682 2042-2885/? I/ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10680000 pkg=net.appworkshop.reactnativetwiliophone cmp=net.appworkshop.reactnativetwiliophone/.MainActivity} from uid 10139
2020-12-10 11:10:41.683 2042-2885/? W/ActivityTaskManager: Background activity start [callingPackage: net.appworkshop.reactnativetwiliophone; callingUid: 10139; isCallingUidForeground: false; isCallingUidPersistentSystemProcess: false; realCallingUid: 10139; isRealCallingUidForeground: false; isRealCallingUidPersistentSystemProcess: false; originatingPendingIntent: null; isBgStartWhitelisted: false; intent: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10680000 pkg=net.appworkshop.reactnativetwiliophone cmp=net.appworkshop.reactnativetwiliophone/.MainActivity }; callerApp: ProcessRecord{f23fb7b 16811:net.appworkshop.reactnativetwiliophone/u0a139}]
2020-12-10 11:10:41.690 16811-16908/? I/TwilioPhone: Handling message
2020-12-10 11:10:41.691 16811-16908/? D/TwilioPhone: payload: =====
2020-12-10 11:10:41.692 16811-16908/? D/TwilioPhone: twi_message_id = "RUd72...<truncated>"
2020-12-10 11:10:41.692 16811-16908/? D/TwilioPhone: twi_to = "client:Larry"
2020-12-10 11:10:41.692 16811-16908/? D/TwilioPhone: twi_from = "client:quick_start1"
2020-12-10 11:10:41.692 16811-16908/? D/TwilioPhone: twi_account_sid = "AC77...<truncated>"
2020-12-10 11:10:41.692 16811-16908/? D/TwilioPhone: twi_call_sid = "CAdb...<truncated>"
2020-12-10 11:10:41.692 16811-16908/? D/TwilioPhone: twi_message_type = "twilio.voice.call"
2020-12-10 11:10:41.692 16811-16908/? D/TwilioPhone: twi_bridge_token = "eyJ6...<truncated>"
2020-12-10 11:10:43.179 16811-16908/? D/TwilioPhone: Call invite received

=====
2020-12-10 11:11:24.112 16811-16908/? D/TwilioPhone: Cancelled call invite received
=====

OK I figured out why the killed application doesn't display the incoming call UI. In TwilioPhoneModule.handleMessage() > MessageListener.onCallInvite( ), there's an attempt to send a CallInvite event to the react native context. The corresponding event listener in the react native app is never invoked, and that is what would display the incoming call UI. Exactly why it's not invoked I haven't yet figured out; I suspect the main activity is not being started.

Thanks @cunneen for investigating. The screenshot above was indeed taken with app in background (not killed).
I got some time today to work on this. I will try another approach for handling background/killed state on Android and will try to not use CallKeep backToForeground, but simply init CallKeep and register necessary listeners.
I will keep you updated.

@cunneen I managed to receive incoming calls when app is killed on Android 9, 10, 11
and released a fix: https://github.com/MrHertal/react-native-twilio-phone/releases/tag/v1.3.2
I invite you to test that new version :)
Problem was CallKeep backToForeground that could not wake up the app.
I replaced it with a headless initialization of CallKeep followed by event subscriptions.
@skibrit During my tests, I once received the notification without buttons to decline or accept.
I think the problem came from event listeners being attached multiple times. I have included a check to remove all listeners before adding them, so it should be good now. Just make sure to call initialize when a high order component is mounted, to avoid calling it multiple times (like on each render).
I close this issue for now. Tell me if the new version still does not work for you and I will reopen it.

Thanks @MrHertal . It'll be a few days before I can test your fix. I really appreciate your efforts.

@skibrit @MrHertal  your manifest settings (i dont know what exaclty of those) helped me to incomings call events, it should be on home page doc of this repo


Creating a single worker creates two workers

Hi,
I cannot create a single worker (for Sidekiq / Redis background jobs ).
➜  webscrap_master_service git:(master) ✗ flynn scale worker=1
scaling worker: 0=>1

15:30:07.868 ==> worker ip172300162-493b9fe52370413395d8548fc1527ffc starting
15:30:08.110 ==> worker ip172300162-8ed3124c9aa8492c91d3e575ef11cffd starting
15:30:08.259 ==> worker ip172300162-493b9fe52370413395d8548fc1527ffc up

scale completed in 478.673701ms

I need a single worker, not two. Because each of my jobs need to fetch a file which is located inside the hard drive of the current job that is not persisted across other nodes.
Debug info: https://gist.github.com/543c54ca5613c8d92bea
I have a cluster of three nodes.
Thanks you

This is #1182. It will be fixed by #1484.


Deployer recipe does not satisfy mittwald/api-client's API

When using the current state of the Deployer recipe, Deployer fails with
[mittwald]  ArgumentCountError  in IngressListIngressesRequest.php on line 61:
[mittwald]
[mittwald]   Too few arguments to function Mittwald\ApiClient\Generated\V2\Clients\Domain\IngressListIngresses\IngressListIngressesRequest::__construct(), 0 passed in /path/to/vendor/mittwald/deployer-recipes/src/Recipes/DomainRecipe.php on line 50 and exactly 2 expected

This is because mittwald/api-client mandatorily introduced pagination parameters in https://github.com/mittwald/api-client-php/blob/master/src/Generated/V2/Clients/Domain/IngressListIngresses/IngressListIngressesRequest.php#L61 although the API description mentions default values. I am unsure whether this is a bug in mittwald/api-client or happened intentionally in which case it is likely a bug in the recipe.

I think this is a bug in the auto-generation of the PHP client; limit and skip are defined as optional and have a default value, so they should not be a required constructor parameter for the IngressListIngressesRequest class. I'll investigate. 🕵

This was an issue with the (home-brewn) code-generation library that the generator uses under the hood and should be fixed with the next version of the mittwald/api-client library.

Fixed with the latest version of mittwald/api-client. Thanks for the report. ✅


Fix app http error 500 when deploying on newer version of appengine

Take 2.  Previous PR had some cruft associated with it, so try again
on a clean branch.
Previously, this worked, but something changed recently such that now
if the package name for your service is 'main', and it has a main()
function, it works fine locally on the dev appserver, but fails with
error 500 when deployed to GAE.
This issue seems to have some relevant info:
https://code.google.com/p/googleappengine/issues/detail?id=13227
Anyway, the solution is to name the package something other than
'main', then it works fine.
I first tried simply removing the main() function, which made the
deployed app work, but breaks 'goapp build'.
tl;dr: don't name your package 'main'.

@pmonkelban our policy is everything is reviewed, please take a look and "LGTM" if this looks ok to you then I'll merge it in.
I encountered this issue while trying to redeploy webhunt-dev.appspot.com with @speakerbug's CSS changes (so I could validate them), so suspect it'll fix any deployment issues you're having too...

LGTM


fix build on windows

The npm run build command failed on windows with the error below.
This is a windows pathing issue, solution as described here: https://github.com/jmcriffey/babel-istanbul/issues/70#issuecomment-238753515
><EMAIL_ADDRESS>karma C:\digipolis\prototypes\zoid-demo
> cross-env NODE_ENV=test babel-node --plugins=transform-es2015-modules-commonjs ./node_modules/.bin/karma start

C:\digipolis\prototypes\zoid-demo\node_modules\.bin\karma:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
          ^^^^^^^

SyntaxError: missing ) after argument list

Thanks for the fix!


Fix typo in warning about disjoint parts

Just noticed this typo - surprised I've never noticed before.!

Oh, so basically what's failing here is the fact that there's no test for the line of code I changed?

yes exactly


Odd interaction between PlugInstall and au BufDelete

I had the following in my .vimrc:
" exit vim when exiting last buffer
" stolen from
" http://vim.1045645.n5.nabble.com/buffer-list-count-td1200936.html
function! CountNonemptyBuffers()
    let cnt = 0
    for nr in range(1,bufnr("$"))
        if buflisted(nr) && ! empty(bufname(nr)) || ! empty(getbufvar(nr, '&buftype'))
            let cnt += 1
        endif
    endfor
    return cnt
endfunction
function! QuitIfLastBuffer()
    if CountNonemptyBuffers() == 1
        :q
    endif
endfunction
augroup closebuf
    autocmd BufDelete * :call QuitIfLastBuffer()
augroup END

I had previously discovered that this prevents Vim's directory-viewer from working (vim . causes Vim to flash onto the terminal window before closing immediately), but I haven't actually tried to figure out why. (I know very little about vimscript or the vim internals.)
It appears that this autocommand also prevents :PlugInstall from working: when I tried to run the command, Vim opened a new buffer with three empty lines and did nothing else.
While convenient, this autocommand isn't terribly important to me, so I've just disabled it for now. However, I'd be interested in knowing whether there's some way to fix this issue, either by fixing my autocommand or by modifying VimPlug's behavior.

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 23 2017 12:10:29)
Included patches: 1-197, 322, 377-378, 550
Modified by<EMAIL_ADDRESS>Compiled by<EMAIL_ADDRESS>Huge version with GTK2 GUI.
[ ] Enhancement
[ ] Feature Request
[x] Question

OS:

[x] All/Other
[ ] Linux
[ ] OS X
[ ] Windows

Vim:

[x] Terminal Vim
[x] GVim
[ ] Neovim (unknown)

I haven't looked closely into your code, but vim-plug seems to work fine with the autocmd for me. You might want to check if there are other settings that interfere with the way vim-plug works. Having said that, I don't think it's practically possible to make vim-plug compatible with any custom Vimscript code that does weird, unexpected things.

@junegunn Bizarre--removing that segment from my .vimrc fixes vim-plug, but using just that segment and my vim-plug stuff seems to work just fine, as you observe. So it looks like the autocommand must be interacting poorly with something else and vim-plug.


Failed to save 'httpd.conf': A system error occured (EACCES: permission denied, open

VSCode Version: 1.5.3 (1.5.3)
OS Version: EL Capitan

Steps to Reproduce:

In a terminal window type: open /etc/apache/httpd.conf (or a file owned by root)
make changes to the file and cmd+s to save.
Error appears on the title bar: Failed to save 'httpd.conf': A system error occured (EACCES: permission denied, open '/private/etc/apache2/httpd.conf')

I expect VS Code to ask for my password for authorization. Because if I do the same things with Atom, it opens an OSX native window asking for password. Can we have the same window asking for password instead of giving error?
Also, I noticed that this path /private/etc/apache2 (in the error bar) is different than what I typed.

Currently you should be able to run sudo code --user-data-dir <some temp folder>, this is to be improved in:

https://github.com/Microsoft/vscode/issues/1614
https://github.com/Microsoft/vscode/issues/3884
https://github.com/Microsoft/vscode/issues/5561


Lorem Ipsum Text Edit

Hi Kirk - did @andrewmowe ever catch you up to editing the jekyll instances for https://design.oaklandca.gov/ ?
I'd like to edit some copy and wondering if you're OK to handle.
On Homepage / Introduction:
Visual Identity
replace Lorem ipsum with:
How we convey a clear voice and visually unify our communications.
Pattern Portfolio
replace Lorem ipsum with:
Everything needed to build pages and services that look and feel like OaklandCA.gov.
On Visual Identity / Introduction
http://design.oaklandca.gov/0/visual-identity-intro/
replace The goal of the City of Oakland’s [...] with:
A simple system was devised to encourage clear and unified communications from the city government to its citizens. Using these elements correctly will, over time, help our efforts be more visible and better understood by all members of the community.

Hey @jalbertgagnier I've got the text updates pushed to the repo and inquired with @andrewmowe about deployment. I wasn't involved with the launch of the site.


entropy: rp2040: implement RP2040 entropy driver

Use get_rand_32() from Pico SDK for entropy

I'm no entropy expert, but I think the pico implementation is unsuitable as an entropy generator. It uses uninitialized RAM, the flash's unique ID, and the ROSC as sources of entropy.
Only the ROSC is truly a source of entropy, and the other two complicate the build.
I guess it was designed more as a random number generator than as a source of entropy for cryptographic functions.
I think the Zephyr implementation should be written without using the SDK, and use only the ROSC as a source of entropy.


404 Not Found: KDE.KDEConnect version <IP_ADDRESS>3

Already merged:
Close #27276
Closing a few PRs that have later versions in PRs:
Close #26939
Close #26849
Close #27092
Close #26521
Close #26860
Close #26947
Close #26979
Close #26325

Microsoft Reviewers: Open in CodeFlow

🤔

Ah, your branch is outdated, see https://github.com/microsoft/winget-pkgs/pull/27309.

Oh, I missed that, thank you.


Python 3 support

Are there any plans to migrate to/support python 3?

Looks like this works on Python 3.


Cleanup: Using global consistently

This PR cleans up the way we use global

run unit tests

Looks good 💯 ✨


Remove Try::Tiny dependency

Description
The creation of ensembl VM 99 exposed some issues with installing Try::Tiny with cpanm on perl 5.14.4 using plenv.
Try::Tiny has been already in use for a few releases with no issues, but added to the cpan file this release.
Using perl 5.26.1 fixes the problem, but given that the Try::Tiny dependency is used in only one module and is easily replaced with alternative methods it would perhaps be good to drop it.
Use case
See ENSCORESW-3303
Benefits
One less external perl module dependency.
VM build can happen in perl 5.14
Possible Drawbacks
Discourages future usage of Try::Tiny
Testing
Have you added/modified unit tests to test the changes?
no
If so, do the tests pass/fail?
Have you run the entire test suite and no regression was detected?
yes

Coverage decreased (-0.0005%) to 81.452% when pulling 3612501c10674dea26b86d5c2bb5d14c63e465a9 on feature/no_try_tiny into 593e9bc619c470616e1fb4a431c337f0d54fc38d on master.


Fix #105: generating an extra comma in explicit list of base classes

Chimera uses {{last}} in each template to indicate whether the parent map in a sequence is the last entry. However, this convention is not obeyed when parsing sequence in configuration YAML using wrapYAMLNode().
This PR fixes the issue by updating wrapYAMLNode() to take an optional flag whether to insert last: true entry for the last map entry in a sequence.
Fixes #105

This is looking much better -- but it seems like the markLast behavior should not be recursive, right?

I think it's necessary if we want to mark every last map element for all the nested map sequences.

Hmm.. should we just make a mangled name like __last and always mark the end of sequences?

Hmm.. should we just make a mangled name like __last and always mark the end of sequences?

Make sense to me since #105 is one case that caused by inconsistency.


/Bassboost not working

Describe the bug
Everytime I do /bassboost any level it doesnt work i keep getting ERROR: safeReply: Invalid Form Body
message_reference[REPLIES_UNKNOWN_MESSAGE]: Unknown message
To Reproduce
Steps to reproduce the behavior:/Bassboost
Expected behavior
Bassboost the music
Screenshots
If applicable, add screenshots to help explain your problem.
If possible

NodeJS version:16.11.0
Bot version: 5.1.0

Additional context
Add any other context about the problem here.

Cannot replicate this


Revert "Root iteration for every space (#990)"

This reverts commit 1b0b699744cbbe6293f9906d1c94737590068e15.
Creating this revert commit because of https://github.com/almighty/almighty-core/issues/1135

I think we can close this PR, afaik.


ICC rankings script added

Description
Scrapper added for retreiving the rankings of teams as well as players of all the format and types
Resolves: #514
Checklist

Before submitting this pull request, kindly verify that the ensuing checkpoints have been reached.

[x] Have you adhered to the repository's defined coding convention rules?
[x] Have you updated the 'documentation.md' file with the method/function documentation?
[x] Have you sent a message along with the result or response?
[x] Have you used the try-catch technique?
[x] Has the method/class been added to the documentation (md file)?

Screenshots

I certify that I have carried out the relevant checks and provided the requisite screenshot for validation by submitting this pull request.
I appreciate your contribution.

Great work @alwenpy !!
Do not forget to

Share your contribution on socials(twitter mainly), tag us and Clueless 🫂
Give this repository a star ✨
Follow Clueless Community on GitHub ✅

Sir this is a feature so level 2 or 3?

Updated it @alwenpy |

Thanks Alot sir.


Show a grey approve/pay button when all expenses on a report are held

Based on this internal Slack discussion, we've decided that the approve button should be grey when all expenses on a report are held. This new feature makes sense for a couple of reasons:

We already use this grey button pattern for Submit when a workspace has automatic scheduled submit settings
When all expenses on a report a held, then the report is not GBRed for the admin, and as a result there is no required action on their part.
Conversely, when a report has a mix of held and non-held expenses, we do show GBR for the admin because they can (and probably should) action on the expenses that can be actioned on.

As a result, let's do the following:

In the report thread, let's make the Approve or Pay buttons grey when all expenses on that report are held. Here's an example.

On the Search page, let's do the exact same thing, should a user end up seeing/finding this reports there instead.

I think this can be external

Feels right to me. Just minor update to making sure the search icon is still there and the system message is correct:

Will review this by tomorrow.

Thanks, it'd be good to get this one going as it's effecting production customers.

Yep, this is a good one!

@NJ-2020's proposal looks good to me.
🎀 👀 🎀  C+ reviewed.

@mananjadhav I think we want to make it gray if all expenses are on hold.

Okay I missed that part. In that case @bernhardoj's proposal is more correct as it points out about all held expenses. Sorry about that.
🎀 👀 🎀  C+ reviewed.

I think @JmillsExpensify might update his comment soon. We settled on a grey button if any transaction on a report is held.

Ohh 😶🌫  Well once @JmillsExpensify updates the comment we can choose one of the proposals.

Comment updated. Ready for proposal selection.

A bit confused with these two statements @JmillsExpensify. Can you please clarify what's the difference?

Apologies. I removed that first sentence for clarity.

Any questions on the updated comment?

@NJ-2020's proposal looks good to me.
🎀 👀 🎀 C+ reviewed.

@luacmartins With the updated comment here, we should use previous selected proposal.

@NJ-2020 can you please share the ETA on the PR?

I raised the PR with the fix for regression.

Payment summary:

$250 @mananjadhav via New Expensify
$250 @NJ-2020 via Upwork

Contributor has been paid, so all that remains is the BZ checklist.

Apologies, I was out sick, still getting back.
I think this would be more of a feature request than a bug. We're also reverting this in a separate issue so I think we don't need a regression test here.

@mananjadhav so you're saying that the correct payment summary is $125 each?

Yes @JmillsExpensify. The payout should be $125 each.

Updated above and processed the update via Upwork as well.

Thanks so much for the quick response!

@mananjadhav I'm going to close this for your part, though don't forget the BZ checklist before requesting payment.

I think this would be more of a feature request than a bug. We're also reverting this in a separate issue so I think we don't need a regression test here.

@JmillsExpensify Considering this is more towards a feature request and also being reverted, do we need a BZ checklist here?


Deserialize dataset containing struct of Vec?

HI! Thanks for your job on this nice crate to use HDF5 in Rust!
I want to read some HDF5 files in which a dataset contains this kind of data:
struct LidarData {
    stamp: i64,
    number_of_layers: i32,
    layers: Vec<LidarLayer>
}

struct LidarLayer {
    number_of_scans_in_layer: i32,
    scans: Vec<LidarScan>
}

struct LidarScan {
    angle: f32,
    distance: f32,
}

So the memory has this layout:

Is there a nice way to deserialize it with serde or do I have to read all the dataset as a Vec<u8> and then manually parse the binary blob (as I would have done in C++).
I am quite new to Rust so any pointers would be much appreciated.
Thanks in advance.

You can get up to LidarLayer with the H5Type  derive and changing types:
struct LidarData {
    stamp: i64,
    number_of_layers: i32,
    layers: Vec<LidarLayer>
}

#[repr(C)]
#[derive(Clone)]
#[derive(hdf5::H5Type)]
struct LidarLayer {
    number_of_scans_in_layer: i32,
    scans: hdf5::types::VarLenArray<LidarScan>,
}

#[repr(C)]
#[derive(Copy, Clone)]
#[derive(hdf5::H5Type)]
struct LidarScan {
    angle: f32,
    distance: f32,
}

Unfortunately VarLenArray requires the Copy trait, so we can't wrap LidarLayer using this.

Hi @magnusuMET
Thank you for your help.
Actually, I think that I should read all the dataset in Vec<u8> and then iterate on it in a loop, isn't it?
Do you know something like a QDataDteam in Rust that allows to read a f64 from a Vec<u8>?

Is the dataset delivered as one blob of binary data?

Actually, in my dataset the number of layers is always 1 so I can simplify the struct like that:
#[repr(C)]
#[derive(Clone)]
#[derive(hdf5::H5Type)]
struct LidarData {
    stamp: i64,
    number_of_layers: i32,
    number_of_scans_in_layer: i32,
    scans: hdf5::types::VarLenArray<LidarScan>,
}

#[repr(C)]
#[derive(Copy, Clone)]
#[derive(hdf5::H5Type)]
struct LidarScan {
    angle: f32,
    distance: f32,
}

fn main() {
    let file = hdf5::File::open("data.h5").unwrap();
    let lidar_dataset_path = "Lidar/Data";
    let lidar_dataset = file.dataset(lidar_dataset_path).unwrap();
    let lidar_data = lidar_dataset.read_raw::<LidarData>().unwrap();
}

But then when I try to read, I have the error:
no conversion paths found

Maybe, this is because the data is chunked?
Here is hdfview infos on the dataset:

Yes, it seems to be a binary blob, this is hdfview visualization of the data:

A byte parser with Nom would look something like the following (assuming little endian):
use nom::{
    combinator::map,
    multi::many_m_n,
    number::complete::{le_f32, le_i32, le_i64},
    sequence::tuple,
    IResult,
};

struct LidarData {
    stamp: i64,
    number_of_layers: i32,
    layers: Vec<LidarLayer>,
}

#[derive(Clone)]
struct LidarLayer {
    number_of_scans_in_layer: i32,
    scans: Vec<LidarScan>,
}

#[derive(Copy, Clone)]
struct LidarScan {
    angle: f32,
    distance: f32,
}

fn parse(s: &[u8]) -> LidarData {
    lidar_data(s).unwrap().1
}

fn lidar_data(s: &[u8]) -> IResult<&[u8], LidarData> {
    use std::convert::TryInto;
    let (s, stamp) = le_i64(s)?;
    let (s, number_of_layers) = le_i32(s)?;
    let num_layers = number_of_layers.try_into().unwrap();
    let (s, layers) = many_m_n(num_layers, num_layers, lidar_layer)(s)?;

    Ok((
        s,
        LidarData {
            stamp,
            number_of_layers,
            layers,
        },
    ))
}

fn lidar_layer(s: &[u8]) -> IResult<&[u8], LidarLayer> {
    use std::convert::TryInto;
    let (s, number_of_scans_in_layer) = le_i32(s)?;
    let num_scans = number_of_scans_in_layer.try_into().unwrap();
    let (s, scans) = many_m_n(num_scans, num_scans, lidar_scan)(s)?;

    Ok((
        s,
        LidarLayer {
            number_of_scans_in_layer,
            scans,
        },
    ))
}

fn lidar_scan(s: &[u8]) -> IResult<&[u8], LidarScan> {
    map(tuple((le_f32, le_f32)), |(angle, distance)| LidarScan {
        angle,
        distance,
    })(s)
}

fn main() {}

@magnusuMET Oh! Thanks a lot for all this code!
I will try it out.
During my research, I found Nom but it seemed difficult to so how to code such a parser.

Great!
With a main implemented like that, it works to read the first LidarData:
fn main()
{
    let file = hdf5::File::open("data.h5").unwrap();
    let lidar_dataset_path = "Lidar/Data";
    let lidar_dataset = file.dataset(lidar_dataset_path).unwrap();
    let lidar_raw = lidar_dataset.read_raw::<u8>().unwrap();
    let lidar_data = parse(&lidar_raw);
    println!("{:?}", lidar_data);
}

Now I have to find how to iterate to fill a Vec<LidarData> until all the dataset is read.
If you have any idea?
Maybe using the [as_reader()](https://aldanor.github.io/hdf5-rust/hdf5 /struct.Dataset.html#method.as_reader) I can get a EOF at the end?

If you have the entire dataset in memory you could change the parser to:
fn parse(s: &[u8]) -> Vec<LidarData> {
    nom::multi::many0(lidar_data)(s).unwrap().1
}

Oh! Great! Thanks!
Nom seems to be really powerful but the syntax is quite unusual for me.
Thanks a lot!
And just to know, if all the dataset is not in memory, what would be the approach? Using the streaming API of Nom instead of the complele?

Parser combinatorics are a bit of an odd concept, but provides very powerful abstractions!
I am honestly not sure what would be the best approach, I haven't played around with that situation. Changing to streaming would probably be a first step, and then some wrapper for reading more bytes until you have enough for a complete LidarData.

Hum ok, I see.
Anyway, for my use case, it is ok to load all the data in memory.
Thanks a lot for the help, it's amazing!

No problem, happy to help!


Dataset list page

Changes

Added Dataset List Page
Display ID, Name, Data Partner, Visibility and Creation Date. Allow filtering on Data Partner.
Link to list of Scan reports in a dataset
Add link to dataset detail page

Migrations
Screenshots

Checks
Important: please complete these before merging.

[ ] Run migrations, if any.
[ ] Update changelog.md, including migration instructions if any.
[ ] Run unit tests.

Please change the title from "Datasets" to "Dataset #<dataset_id>: ". I'm happy otherwise.


Move to GH actions and add auth step for docker

This PR moves the CI workflow to GH actions instead of Travis, besides adding the login step for docker in favor of closing #156.
Caveats

Travis used to run on ubuntu xenial (16.04). Taking this into account, with GHC 7.10.3, all build were passing correctly, but for the latest OS versions, it has issues that were solved in GHC versions >= 8, of course, there's a workaround for it, but for the sake of simplicity, that particular version is run in the old OS version too.

Hey guys @sestrella @juanpaucar this is ready for review now, the build is failing due to the lack of credentials for login with docker, but besides that all should be OK :+1:


Type null in OneOf

Hello,
It seems that recent versions do not support the null type for OpenAPI 3.0
We have upgraded from v0.13.1 to v0.13.5, and the following blocks are failing:
    QuestionAnswer:
      properties:
        slug:
          type: string
        value:
          oneOf:
            - type: number
            - type: string
            - type: boolean
            - type: null # use null here because nullable true does not work with TS generation
            - type: array
              items:
                type: string

Is there a way to fix this, or to snooze this rule (we use precommit hooks)?
Thanks

I upgraded the schema validator (https://github.com/santhosh-tekuri/jsonschema)
which rule is failing for you? you can always turn off rules (https://quobix.com/vacuum/rulesets/no-rules/)

Rule "oas3-schema" is failing. Ideally I wouldn't disable this rule as it checks quite a few things that we don't want to ignore. Is there a way to ignore a single line otherwise?

@JulesClaussen can you give it a try by putting "null" instead of null , yaml is not super clean on this usually as type must be a string so the "null" string  ... and not null value

@LasneF Yes I've seen that trick, but it still doesn't pass the rule

@JulesClaussen , @daveshanley , i looked a bit deeper
, reproducing it only on openapi 3.0.X  if you set the snippet below as 3.1.0 it goes well
according to the 3.0 specification your input is not correct , and should raise a error ... that it does it correctly
here is what the spec 3.0.X  tell us
"null is not supported as a type (see nullable for an alternative solution). Models are defined using the Schema Object, which is an extended subset of JSON Schema Specification Wright Draft 00."
option available :

move to 3.1
reorganize your file to leverage nullable : true

but can be messy
here is the snippet used
openapi: 3.1.0
info:
  title: this is the title
  description: this is the description
  license:
    name: nothing
    url: nowhere
  version: '1.0'
security: []
servers:
- url: https://api.server.test/v1
paths:
  "/test":
    post:
      summary: toto
      operationId: getTest
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/schema_a"
      responses:
        '200':
          description: testOK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/schema_a"
        '400':
          description: input issue
components:
  schemas:
    schema_a:
      type : object
      properties:
        slug:
          type: string
        value:
          oneOf:
            - type: number
            - type: string
            - type: boolean
            - type: null # use null here because nullable true does not work with TS generation
            - type: array
              items:
                type: string

Thanks @LasneF for the feedback!
Upgrading to 3.1 requires quite some testing on our end, so we'll get there but can't quickly.
It's funny that the documentation mentions that null isn't supported while it clearly is. Our schema works as is, and allow null values somehow
I think best solution is still to upgrade to 3.1. I guess there's no way to disable only this specific rule of oas3-schema?
Cheers,
Jules

There isn't any way to disable this in the oas3-schema rule, it's literally passing your spec through to a JSON Schema validation library (which is above - its accurate, if not a bit annoying), and the JSON schema of the version of OpenAPI you're using.
It's a 'tell me what you find with this and I will will report it back to the user' thing.
There isn't much I can do here. Going to mark as documentation and close for now.


[go_router] Make info of entire stack of routes accessible

Use case
Often times a stack of routes is more complex than simple sub-routes and can loop around indefinitely, for example if I go from a job screen to a client screen (the client the job was for), to another job screen (another job done for the client), and then to a client on that screen, and so on.
There's no current way that I'm aware of to access the entire stack information, so that I could for example display it on a navigation bar as say [ Job 12 > SomeClient > Job 17 > AnotherClient ] and tap on any one to pop all the way back to it.
Proposal
Expose the information of the whole current stack. Or maybe this needs to be a change to the sub-routes themselves? For example, a link from one sub-route to another that's declared higher up to allow for circular routing.

RouteMatchList is public now


Fails ungracefully when parsing youtube playlist with removed items

Fails ungracefully when parsing a youtube playlist with removed items (such as due to copyright)
Instead of removing the empty items or ignoring the invalid playlist it kills the server with a type error (can't concatenate str and NoneType)

Still a bug when the first video of the playlist produce an error


Fixed ClientSession initialization warning

This fixes an issue with ClientSession throwing a warning when feeding
an event loop into it when calling it from a normal function. This
should help silence annoying warnings for libraries that "lazy"
initializes ClientSession and properly closes the session and handles
it. Now those libraries would have no need for useless bug reports.

What do these changes do?

Fixes the warning when calling a ClientSession instance with an event loop that is passed to the class.
Are there changes in behavior for the user?

No, just adds more control over the ClientSession instance.
Related issue number

https://github.com/KeepSafe/aiohttp/pull/1468#issuecomment-269112177
Checklist

[x] I think the code is well written
[x] Unit tests for the changes exist
[x] Add yourself to CONTRIBUTORS.txt

The format is <Name> <Surname>.
Please keep alphabetical order, the file is sorted by names.

[x] Add a new entry to CHANGES.rst

Choose any open position to avoid merge conflicts with other PRs.
Add a link to the issue you are fixing (if any) using #issue_number format at the end of changelog message. Use Pull Request number if there are no issues for PR or PR covers the issue only partially.

@asvetlov There seems to be an issue with some tests on AppVeyor. However I know these should succeed.

Codecov Report

Merging #1572 into master will increase coverage by 0.03%.

@@            Coverage Diff             @@
##           master    #1572      +/-   ##
==========================================
+ Coverage   98.54%   98.57%   +0.03%
==========================================
  Files          32       30       -2
  Lines        7265     7107     -158
  Branches     1208     1181      -27
==========================================
- Hits         7159     7006     -153
+ Misses         61       60       -1
+ Partials       45       41       -4

Impacted Files
Coverage Δ

aiohttp/client.py
100% <100%> (ø)
:white_check_mark:

aiohttp/helpers.py
98.78% <ø> (-0.51%)
:x:

aiohttp/multipart.py
93.51% <ø> (-0.5%)
:x:

aiohttp/streams.py
98.6% <ø> (-0.23%)
:x:

aiohttp/web_urldispatcher.py
99.6% <ø> (-0.2%)
:x:

aiohttp/protocol.py
96.78% <ø> (-0.02%)
:x:

aiohttp/web.py
100% <ø> (ø)
:white_check_mark:

aiohttp/cookiejar.py
100% <ø> (ø)
:white_check_mark:

aiohttp/_ws_impl.py
100% <ø> (ø)
:white_check_mark:

... and 9 more

Continue to review full report at Codecov.

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

@fafhrd91 You been breaking the PR. kek
btw did you fix the problem with this on the first commit on this PR yet?

i do not understand you

Look at https://ci.appveyor.com/project/asvetlov/aiohttp/build/1.1.0a0.dev3847/job/9pxom9fkwakhiodo

last build is green

Yeah, travis works just AppVeyor sometimes fails on me for no reason at all..

Well only 1 way to find out if it is fixed or not on AppVeyor and that is to remake this PR like I did before.

@fafhrd91 turns out that it seems the test failure on AppVeyor seems to now be fixed.


Lyrics

Lyrics is not working, It just showing No Lyrics found for song.****

it provide only lyrics of some songs

When I started the bot it’s working fine but after sometimes like 4-5 hr later bot stop responding.  And  I checked my hosting it’s working properly. Also music takes so long to start sometimes..


Add support for multiple configuration

We have to add the support for multiple configurations, we can use command-line options:

--deploy-pipelines
--use-gpu
--deploy-inference

etc...

closed via https://github.com/kf5i/k3ai/pull/12


Feature request: jest library

This is less of an issues and more of a request. Currently writing up some jest tests in our project but ran into the global/window variable twemoji missing.
To circumvent this I downloaded the latest cdn code to a local file and immediately call it when setting up jest. This injects twemoji into the jsdom and I'm good to go.
A simple script such as ...
const https = require('https');
const fs = require('fs');

https
  .get('https://twemoji.maxcdn.com/v/latest/twemoji.min.js', res => {
    res.on('data', d => {
      const content = d.toString('utf8');

      fs.writeFileSync(
        'lib.js',
        `${content}\nwindow.twemoji = twemoji;`,
        'utf8',
      );
    });
  })
  .on('error', e => {
    console.error(e);
  });

Could be written in a thin library and published to npm in order to support jest testing. Let me know your thoughts, wouldn't mind setting it up if you wanted.
Would want to copy + paste any and all LICENSES etc.

https://github.com/icarus-sullivan/twemoji-jest


Fix issue 93 importing pages in subfolders

Fix for https://github.com/lucianopuccio/golem/issues/93

Merged, thanks @r-roos


[AutoPR network/resource-manager] Network november release --- DDoS policy customization

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4456

(message created by the CI based on PR content)

PR closed


Apache or Node server

Once deeplearnjs is fully exported to a website I assume it will work on any webserver not just a nodejs server. Is that correct?
Sorry, someone has to ask the silly questions.

I think I can answer this. Yes, just have the webserver serve the contents of the build folder after building. The homepage will be the .html file that is generated, which will call the bundle.js file that is also generated.

It's native environment is the browser, actually. Just recently was a PR added so that it can even run on node without blowing up: https://github.com/PAIR-code/deeplearnjs/pull/155

To expand on @jsphweid a little bit; it will run on any http-serving server. Ticket #155 refers more to running it headless on a NodeJS server entirely, without the need of a browser at all.
Whether you're sending out files through Apache, Nginx or Node (for example, Express), in any scenario the bundled deeplearn JS file gets sent to a client and all processing happens locally within their browser


Removed commented out 'crappy' code. Minor formatting examples.


Implement checking of "strong" password

Implement password requirements (1 symbol, 1 number, etc.) check in backend (sprind validation)
UI/UX => Prompt user if password is not strong enough

done


Complete semaphore implementation

The first pass was only a partial implementation, supporting only untimed semasleep calls, and no support for semawakeup.
A complete implementation also requires help from the scheduler, for example, to do timed sleeps.

Added in 688f46d4dbc9ca6cc38b9c5913dec47d45295a51.


Discussion Topic: Removing "starter" from top menu

I would like to discuss removing "starter" from the top menu of MP and moving to the "resources" tab. It takes up a lot of valuable space, and I believe the project is not moving forward.

Amelia and John voted to move it to Recourse. I am also a +1


Magic Mouse not working with Godot

Godot version
3.3.stable
System information
Macbook AIR, Apple Chip
Issue description
When I try to use Godot on my mac with my Apple Magic Mouse, I can't zoom in and it doesn't feel supported. Please add support for Apple Magic Mouse.
Steps to reproduce
Happens when using Apple Magic Mouse on Macbook
Minimal reproduction project
No response

Duplicate of https://github.com/godotengine/godot/issues/49873.


Stream Enrich: force jackson-databind to 2.9.3 for all projects

Related to #3744, we see a java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.node.ArrayNode.<init>(Lcom/fasterxml/jackson/databind/node/JsonNodeFactory;Ljava/util/List;) error at runtime when using R105 (which is equivalent to master at the time of writing).
Steps to reproduce:
git clone https://github.com/snowplow/snowplow
cd 3-enrich/stream-enrich
sbt "project kafka" assembly
# Run scala-stream-collector, stream-enrich

Try to send test event like http://collector-server/i?e=pv. Stream-enrich will be down with this error as well as the previous bug with Kinesis.

Scheduled into R109

it's already in 107: #3799

Cool - is it in the CHANGELOG?

I'm about to have a final review on the pr so I'll soon find out


Allow custom executor labels and annotations

@erikerlandson quick sign off and then we can merge?

LGTM. I'm convinced about the labels, but quick question on the annotations - do you have a use-case driving the setting of custom annotations?

The comments were addressed in the latest push. Regarding the need for custom annotations - we have some custom controllers that watch the API server for pods with given annotations, and perform actions to manage those pods accordingly.


Unable to collect calls of Weblogic 10.3.6

[ √] I have checked the FAQ, and issues and found no answer.
I'm trying pinpoint version 1.8.1, agent deployed in Weblogic version 10.3.6. At present, it is found that only SQL statements executed by Weblogic through JDBC can be collected, and calls between applications and other systems can not be collected. I wonder if Weblogic version 10.3.6 is not currently supported.

Hi @chengwei999
So you mean SQL statements and jdbc calls are showing up in the call stack, right?
I don't think the Weblogic plugin is the problem here then as you have SQLs and jdbc calls traced.
(The Weblogic plugin must have started a trace in order for the jdbc calls to be traced as well)
How are you calling other applications? Is there a thread switch before these calls are made?

I confirm that threads are executed synchronously, without switching。Is that the reason for calling other applications through web service，and the class is org.apache.axis.client.AxisClient

Ah okay, I think your external calls aren't getting traced because Pinpoint doesn't support Axis client.
It would be great if you could make a plugin for Axis and throw us a PR!

https://imgchr.com/i/e7CM2F from pinpoint
https://imgchr.com/i/e7CBKH from riverbed

Thank you, but I'm an operations engineer and can't write JAVA code. I hope you can support Axis soon


augment data package resources using annotated cleanNLP

This might be a nice complement to #1.
This issue will be closed when the code is added to https://github.com/STAT325-S24/HistoryAmherstCollege/tree/main/data-raw, the formatted data is added to https://github.com/STAT325-S24/HistoryAmherstCollege/tree/main/data, and the documentation is added to https://github.com/STAT325-S24/HistoryAmherstCollege/tree/main/R/data.R.

This obviously needs to wait for completion of #39

I did a second cut on this (with all of the chapters).
It still needs a refresh once the next set of data cleaning is done, so I'm leaving this open for now.

Close via https://github.com/STAT325-S24/HistoryAmherstCollege/commit/bfad5d3cbd8a2d7bfb362508c06efe397a40714c


promote update of spraproxy repo form staging to production

fixes https://issues.redhat.com/browse/PLNSRVCE-1602
Promote https://github.com/redhat-appstudio/infra-deployments/pull/3224 to production

/test appstudio-hac-e2e-tests

/hold for the image to be pushed on quay

/unhold

/test appstudio-e2e-tests-ocp-4-14

/lgtm
The same commit and tag are using in staging and the service in staging looks healthy.


Add inline docs and provide public exports

MR adds:

inline docs for typescript users
small code duplication
exports of frequently used objects

👍 Will make a release in the next few days.


Provide default local cache name for relaton

https://github.com/metanorma/metanorma-standoc/issues/62

I'm seeing that I've left out a default value of the local cache in Relaton, if not supplied explicitly in :local-cache: DIRECTORY NAME. Should we refuse to create a local cache if there is no directory name supplied, or should we use a default of "relaton"?

I think we can have a default and also a specialized value.

init_bib_caches(localname: nil) will not create a local cache. init_bib_caches(localname: "") will create a local cache, and name it relaton.


Limit num_predict to num_ctx

This limits the number of tokens generated to the context window size, allowing a maximum of two "context shifts" should the context window limit be passed. It will also provide a maximum token limit to stop any "runaway" prompts that occur from smaller models that continue to generate indefinitely (e.g. in JSON mode)
Ideally we have no context shifts: we only generate the number of tokens left in the context window after the prompt, but this felt like a simple change that would ease our way into this since chat prompts can get quite large and we'd have to change our prompt trimming strategy to leave enough space for longer responses.

related #2805


reecive_message_chain ... exactly() || twice() || () produces undefined method

I'm testing a piece of code in a rails controller like:
things.each do |thing|
  current_user.all_the_things.create(thing)
end

render json: {success: true}

I have a mock like:
allow_any_instance_of(User).to receive_message_chain('all_the_things.create').
  exactly(2).times.and_return(true)
# ... more setup
expect(response).to be_ok

When the spec is run, an exception is thrown:
undefined method 'exactly' for for #RSpec::Mocks::Matchers::ReceiveMessageChain:0x0000000afb3d08>
The same happens if exactly is replaced with twice or anything else defined in the documentation
I'm happy to provide a more concrete test case (and pull request), but before I get too deep into it I want to confirm that the behavior I'm expecting is rational.
According to the message chain docs, the receive_message_chain method should be a replacement for the receive message. My expectation is that the receive_message_chain message should be allowed to have the 'receive count' messages chained to them in the same way that receive does.
All that said, this whole approach feels a bit like a code smell, but I'm not confident of another approach. Law of Demeter would suggest not chaining current_user.all_the_things to create. However, it's good practice in rails to create relationships belonging to the user by sending messages to related objects through the original object (current_user in this case).
TL;DR: is the receive_message_chain behavior described above a bug or a feature?

It's by design. receive_message_chain isn't intended to support the full level of customization that you get with receive.
The docs could perhaps be improved to make that more clear -- want to open a PR to improve that?

yeah, happy to open a PR.
What is the intended support of receive_message_chain vs. receive ?
The more I noodle on the use case above, the more I think the 'receive count' messages make sense.

I was going to say that receive_message_chain is only intended to support configuration the response (via and_return, and_yield, etc) but it looks like we added support for with to #697.  We did that for stub_chain parity, but it's actually a bit confusing -- with specifies the expected arguments for one method call but receive_message_chain is about a chain of method calls so there's a bit of a semantic mis-match.  Looks like with applies only to the last message in the chain, which is kinda weird.  My guess is that stub_chain simply returned the last stub in the chain, allowing further customizations to be set on the last one as opposed to that being intentionally planned out originally.
Given the simplicity of the implementation of #697 it could make sense to add support for the constraints to receive_message_chain, although it's still kinda semantically weird in terms of one method call vs a chain of them.
@JonRowe, what do you think?

I think if stub_chain didn't support it then we don't add it for receive_messages, I only added with for parity's sake because it was easy (I'd have preferred not supporting it really)...

Is it fair to say the biggest issue is supporting with when chaining stub_chain or receive_message_chain? I definitely see that it creates ambiguity in which method the arguments are passed to (although there is a convention for it). It probably makes writing a code smell like that too easy.
On the other hand, it is a good practice to create objects owned by another object (current_user.bank_accounts for ex) using the method chain. Considering a world where the stub_chain or receive_message_chain does not support being able to chain other messages like with or twice, I think the alternative to the example code above would be:
things.each do |thing|
  att = AllTheThing.new(thing)
  att.user = current_user
  att.save
end

in order to create mocks that accept more than one expectation. There's nothing wrong with that code per se, but it does require changing the implementation code in order to satisfy the needs of the testing harness. That doesn't seem quite right.
If with is the message that is the most problematic then it probably makes sense to deprecate that specific method in a future version.
At any rate, I'm happy to submit a PR for a documentation update but it would be helpful to have more insight into the design decision.

The usage of stub_chain and receive_message_chain is considered a test smell, thus we try not to encourage their adoption by extending their feature set.

Agreed, but in the case of the current_user.bank_accounts the smell is just a smell and not a bad practice. Shouldn't the framework support the accepted practice? Otherwise, I totally agree that you wouldn't want to provide something that's too easy to create a bad practice

Well no, because we have a better solution (even solely from a test perspective) instead of using receive_message_chain to provide the end solution use it to provide the last but one and provide a normal instance_double for that last value.
In the case of a simple chain like current_user.bank_accounts you don't even need the chain at all, it would be better to stub current_user as an instance_double (of assumedly User) and then place expectations on that double directly, gaining not only the full expectation feature set, but also the benefits of verifying doubles.

things.each do |thing|
  att = AllTheThing.new(thing)
  att.user = current_user
  att.save
end

On its own, this code is fine.  However, once you're at a point where you have a need to substitute a test double for it, you run into the complexity of the interaction here.  This bit of code has to use 3 method calls (new, user= and save) when it could be one, simpler interface:
class AllTheThing
  def self.update_user(thing, user)
    att = AllTheThing.new(thing)
    att.user = user
    att.save
  end
end

things.each do |thing|
  AllTheThing.update_user(thing, current_user)
end

Now you've created a very simple seam (AllTheThing.update_user) which can be very simply mocked w/o the need to resort to receive_message_chain.  IMO, this makes the code better: you've reified a common use case into a first-class method that directly supports that use case with a simpler interface.
We're hesitant to extend the feature set of receive_message_chain because there's good design pressure that comes from a complex interaction in your implementation code forcing a complex use of your mocking tool.  You can, of course, mock this just fine w/o receive_message_chain:
alt = instance_double(AllTheThing)
expect(alt).to receive(:user=).with(current_user)
expect(alt).to receive(:save)
allow(AllTheThing).to receive(:new).with(thing).and_return(alt)

...but that rightfully makes you uncomfortable.  It's a complex interaction that you are encoding directly into your tests.  Mocking tools should exert design pressure towards simpler interfaces rather than simply encoding complex interactions in your tests.  Using receive_message_chain hides the complexity of the interaction (which can be OK in some cases, particularly when getting existing legacy code under test), but isn't generally a good idea.  Instead of looking to solve the complexity of mocking this interaction with an increased feature set from rspec-mocks, consider if there's a way you can improve the implementation by simplifying the interaction.  Usually there is.
Anyhow, I'm personally not opposed to extending the feature set of receive_message_chain, provided that:

The implementation is very simple -- none of the core team members actively use the feature and we don't want to be stuck supporting something complex we don't use.
There are no semantic ambiguities in the API
Someone else does the work and submits the PR (we have other things we care more about that we are working).

Does that help explain our position (or at least my position -- @JonRowe may feel different)?

Personally I'm still opposed to extending the feature set of this, I'd like us to one day deprecate it entirely.

I got caught up in other things this weekend, but I should be able to submit a doc update later this week. I think I've got my head around the design decision enough to do the PR. It likely won't be a profound PR, but the information in this thread is really helpful to understanding how to use receive_message_chain vs. double
Much appreciated and I hope it helps others

@brycemcd are you still interested in doing this? We love it when people help us with our documentation ^_^

@samphippen - it totally slipped my mind. I'm interested and I've blocked out some time to get it done by the end of the week.

Fixed by #984

@myronmarston do you consider using receive_message_chain to stub chained scopes on model as code-smell?

Yes.
Sent from my iPhone

On Dec 4, 2015, at 7:10 AM, Filip Bartuzi<EMAIL_ADDRESS>wrote:
@myronmarston do you consider using receive_message_chain to stub chained scopes on model as code-smell?
—
Reply to this email directly or view it on GitHub.

So how should I write expectation for scopes? Does the example below make any sense? I have the idea to add new spy for each chained scope and than expectation on it
let(:relation) { spy 'relation' }

before do
    expect(Model).to receive(:with_color).with('red') { relation }
   expect(relation).to receive(:with_shape).with(:triangle) { [instance_double('model')] }
end

it 'does cool things' do
   expect(subject).to eq ...
end

I've tried to connect scopes together (like scope :with_color_and_shape, ->(color,share) {  ... }) so I could just do expect(Model).to receive(:with_color_and_shape).with(color, shape) {} but I ended up with huge scope taking many arguments and calling bunch of smaller one which was hard to manage.

Remember that a "code smell" isn't a rule and for nearly every code smell, there's a situation for which the trade off to use the smelly code makes sense.  I don't have any good advice for rails because I'm not a rails user and haven't been since Rails 2.

@Bartuz the common rule of thumb would be to combine the scopes at the model level, but this isn't always going to to be pretty either as you've found out. The only real way to resolve this "smell" is to refactor your design to not need to reach in across so many scopes, but I appreciate that's sometimes not possible / desirable. As @myronmarston says there are sometimes exceptions to rules and as long as you can justify to your team you can decide this is such an exception :)


Add support for specifying Snakebite effective user

Adding a configuration option for specifying the effective_user parameter for the Snakebite clients.

LGTM

I'll make changes to the snakebite code myself today. So this must merge now (and everyone seems happy with it). :)

Thank you very much @RobCherry !


Escape keyboard functionality in TimePicker and DatePicker

Feature
Based on a comment on the Combined TimePicker PR:

Keyboard nav is missing esc key functionality but I'm not sure where we could add it as "opened" state is controlled by the user.

Both TimePicker and DatePicker are missing this functionality.
Examples
It could be done like in Dialog: have a property 'onClose' that takes a function that closes the component (and maybe the accompanying property 'closeOnEsc' also).
See Dialog.tsx and DialogMain.tsx for starting point.

TimePicker and DatePicker don't have a concept of opening/closing. The user is responsible for handling that by using it in their own popover component.
Some of our users already have questions about it (#999) so we should show an example of it on our documentation website both with our "internal" Popover (see sandbox) as well as with an external library (e.g. floating-ui).


Fix for #171: IE Support Issues

Made changes to some .html and .scss files to fix display issues when using My Thai Star on Internet Explorer.

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

Thank you for the heads up, i'll pay attention to it from now on. Is yarn used for all devon projects?

We recommend to use yarn in devonfw projects, but it is not mandatory. What it is really important is to use only one and the same one in both the development environment and the CICD pipelines.


Inlining support

Looks like a good start-- I'm going to merge this into start and then do touch-ups there.


feat: add early stopping to Trainer.train

This PR changes:

add an adaptation of this module for early stopping

I added gap functionality (check for difference between val loss and train loss)
other changes have to do with optional model saving, verbosity, status feedback messages, etc.

change model saving and naming logic of Trainer.train() method
improve docstrings & log info of Trainer.train() method
add a unit test for earlystopping module

Not sure how useful this unit test is...

closes #216

The unit test I created only tests the basic logic of the early stopper using dummy loss values without training anything.
Ideally we would also have a functional/integrated test to run on an actually trained model to check that losses are passed to and processed by EarlyStopper as intended? However, I am not sure how to implement this in a way that forces a training that will trigger the early stopping criteria in a controlled (and timely) manner.

The unit test I created only tests the basic logic of the early stopper using dummy loss values without training anything.
Ideally we would also have a functional/integrated test to run on an actually trained model to check that losses are passed to and processed by EarlyStopper as intended? However, I am not sure how to implement this in a way that forces a training that will trigger the early stopping criteria in a controlled (and timely) manner. Any idea how to do this?

The only thing that comes to my mind is to set up an "high" patience number with a very small dataset (like 20, 30, 50, depending on how fast the training remains) and then assess that the model saved is at least after the patience epoch number.


Flickering night mode toggler icon (Firefox Nightly - Android)

https://user-images.githubusercontent.com/28284434/146257593-c6ad662c-54f7-4fc5-9a3e-79178c10a2e2.mp4
As per the video, the toggler icon flickers at random in Firefox Nightly for Android.
Issue not present in chrome for Android.

Hi @pwindle,
Thank you for this feedback.
It is strange indeed. I'll do some tests.


make itemstack capabilities

These capabilities directly store their data in the itemstack nbt.
Description
The caps on itemstacks aren't synced in multiplayer, so we need to store and send them ourselves. For this we make use of the nbt data on the itemstack directly.
Fixes issue(s): #169
Todo

[ ] Replace strings in NBT with constants
[ ] Verify multiplayer worlds

Checklist:

[ ] My code follows the style guidelines of this project (.editorconfig, most IDEs will use this for you)
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

Once you've verified this works in multiplayer, feel free to merge. I'll do the NBT stuff in #165 :)


Emulator not working on windows / devcontainer

Have WSL2 and Docker Desktop installed
Originally I also could not get the firmware build to work either, but it seems selecting this option in VSCode fixes that:

(Something to do with symlinks apparently)
I seem to be able to build the emulator just fine
vscode ➜ /workspaces/hdzero-goggle/build_emu (main) $ cmake .. -DEMULATOR_BUILD=ON -DCMAKE_BUILD_TYPE=Debug
-- Configuring done
-- Generating done
-- Build files have been written to: /workspaces/hdzero-goggle/build_emu
vscode ➜ /workspaces/hdzero-goggle/build_emu (main) $ make -j `nproc`
[...]
[100%] Linking C executable HDZGOGGLE
[100%] Built target HDZGOGGLE

However, when I try to run the emulator executable, I get no window
vscode ➜ /workspaces/hdzero-goggle/build_emu (main) $ ./HDZGOGGLE
touch: cannot touch '/mnt/app/setting.ini': No such file or directory
[INFO][rtc.c:rtc_init:194] rtc_init has NOT detected a battery
[INFO][rtc.c:rtc_init:198] rtc_init updating both clocks via settings
[ERROR][i2c.c:iic_is_port_ready:39] Device 1:/dev/i2c-1 is not available [0=N/A,1=Right,2=Main,3=Left]
[ERROR][i2c.c:iic_is_port_ready:39] Device 2:/dev/i2c-2 is not available [0=N/A,1=Right,2=Main,3=Left]
[ERROR][i2c.c:iic_is_port_ready:39] Device 3:/dev/i2c-3 is not available [0=N/A,1=Right,2=Main,3=Left]
[INFO][mcp3021.c:aduc_read_voltage:60] Voltage ADC is mcp
[ERROR][mcp3021.c:mcp_read_voltage:31] mcp_read_voltage: open error.
[INFO][common.c:bmi2_interface_init:95] I2C Interface
[ERROR][common.c:bmi2_error_codes_print_result:159] Error [-2] : Communication failure error. It occurs due to read/write operation failure and also due to power failure during communication
[INFO][accel_gyro.c:init_bmi270:74] init_bmi270 done.
[ERROR][common.c:bmi2_error_codes_print_result:159] Error [-2] : Communication failure error. It occurs due to read/write operation failure and also due to power failure during communication
[ERROR][common.c:bmi2_error_codes_print_result:159] Error [-2] : Communication failure error. It occurs due to read/write operation failure and also due to power failure during communication
[ERROR][common.c:bmi2_error_codes_print_result:159] Error [-2] : Communication failure error. It occurs due to read/write operation failure and also due to power failure during communication
[ERROR][accel_gyro.c:enable_bmi270:91] [Error] BMI270 failed.
[INFO][fans.c:fans_top_setspeed:24] fans_top_setspeed: 4
error: XDG_RUNTIME_DIR not set in the environment.
error: XDG_RUNTIME_DIR not set in the environment.
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Scan Now
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Source
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Image Setting
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry OSD
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Power
[INFO][page_power.c:page_power_update_cell_count:50] cell_count:2
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Fans
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Record Option
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Auto Scan
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry ELRS
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry WiFi Module
sh: 1: /mnt/app/script/wlan_stop.sh: not found
Changing password for vscode.
Current password: passwd: Authentication token manipulation error
passwd: password unchanged
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Head Tracker
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Playback
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Storage
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Firmware
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Focus Chart
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Clock
[DEBUG][ui_main_menu.c:main_menu_create_entry:254] creating main menu entry Go Sleep!
[WARN][oled.c:OLED_Startup:246] OLED_Startup failed: Auto init is not ready...
[INFO][oled.c:OLED_Startup:269] OLED temp test: 0xD0 L = 0  0  0  0  0
[INFO][oled.c:OLED_Startup:270] OLED temp test: 0xD0 R = 0  0  0  0  0
[INFO][oled.c:OLED_Startup:300] OLED temp test modified: 0xD0 L = 0  0  0  0  0
[INFO][oled.c:OLED_Startup:301] OLED temp test modified: 0xD0 R = 0  0  0  0  0
sh: 1: dispw: not found
sh: 1: aww: not found
[INFO][oled.c:OLED_display:504] OLED: Display off
[INFO][oled.c:OLED_display:497] OLED: Display on
[INFO][osd.c:load_fc_osd_font_bmp:729] load_fc_osd_font_bmp: /mnt/extsd/resource/OSD/FC/BTFL_000.bmp...
[ERROR][osd.c:load_fc_osd_font:835]  failed!
[INFO][osd.c:load_fc_osd_font_bmp:729] load_fc_osd_font_bmp: /mnt/app/resource/OSD/FC/BTFL_000.bmp...
[ERROR][osd.c:load_fc_osd_font:835]  failed!
[INFO][osd.c:load_fc_osd_font_bmp:729] load_fc_osd_font_bmp: /mnt/app/resource/OSD/FC/BTFL_000.bmp...
[ERROR][osd.c:load_fc_osd_font:835]  failed!
[INFO][osd.c:load_fc_osd_font_bmp:729] load_fc_osd_font_bmp: /mnt/extsd/resource/OSD/FC/BTFL_FHD_000.bmp...
[ERROR][osd.c:load_fc_osd_font:835]  failed!
[INFO][osd.c:load_fc_osd_font_bmp:729] load_fc_osd_font_bmp: /mnt/app/resource/OSD/FC/BTFL_FHD_000.bmp...
[ERROR][osd.c:load_fc_osd_font:835]  failed!
[INFO][osd.c:load_fc_osd_font_bmp:729] load_fc_osd_font_bmp: /mnt/app/resource/OSD/FC/BTFL_FHD_000.bmp...
[ERROR][osd.c:load_fc_osd_font:835]  failed!
[INFO][ui_main_menu.c:menu_reinit:222] menu_reinit
[INFO][fans.c:fans_right_setspeed:38] fans_right_setspeed: 2
[INFO][fans.c:fans_left_setspeed:32] fans_left_setspeed: 2
[INFO][fans.c:fans_right_setspeed:38] fans_right_setspeed: 2
[INFO][fans.c:fans_left_setspeed:32] fans_left_setspeed: 2
[INFO][TP2825.c:TP2825_Set_Clamp:257] Clamp = 7f
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][nct75.c:nct_read_temperature:36] nct_read_temperature: [Top] side error.
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[INFO][dm6302.c:DM6302_init:1603] Init0 done
[ERROR][dm6302.c:DM6302_init:1613] Error: DM6302s have no response.
[INFO][hardware.c:HDZero_open:207] HDZero: open
[INFO][page_scannow.c:scan_channel:277] Scan channel0: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel1: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel2: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel3: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel4: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel5: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel6: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel7: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel8: valid:0, gain:61
[INFO][page_scannow.c:scan_channel:277] Scan channel9: valid:0, gain:61
[INFO][page_scannow.c:page_scannow_enter:364] scan return :-1
[INFO][ui_main_menu.c:submenu_exit:167] submenu_exit
[INFO][hardware.c:HDZero_Close:216] HDZero: close

I notice: error: XDG_RUNTIME_DIR not set in the environment.
Was asking around in Discord, and someone seemed to think that maybe X was just fundamentally broken.
He suggested trying an X application to see if it worked
vscode ➜ /workspaces/hdzero-goggle/build_emu (main) $ xeyes
bash: xeyes: command not found
vscode ➜ /workspaces/hdzero-goggle/build_emu (main) $ sudo apt-get install x11-apps
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libxaw7 libxft2 libxkbfile1 libxmu6 libxmuu1 libxpm4 xbitmaps
Suggested packages:
  mesa-utils
The following NEW packages will be installed:
  libxaw7 libxft2 libxkbfile1 libxmu6 libxmuu1 libxpm4 x11-apps xbitmaps
0 upgraded, 8 newly installed, 0 to remove and 6 not upgraded.
Need to get 1,144 kB of archives.
After this operation, 3,840 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxmuu1 amd64 2:1.1.3-3 [10.2 kB]
[...]
Processing triggers for man-db (2.10.2-1) ...
vscode ➜ /workspaces/hdzero-goggle/build_emu (main) $ xeyes
Error: Can't open display:

Edit: Starting to realize that I may be being a bit dumb...
Do I maybe need something running on my windows host that can render the X window?

Same, I couldt even build a fw with docker devcontainer on WIndows.
Ended up using WSL, it just a straight forward works, both building fw and running emulator.


feat(analytics): FRM Analytics

Type of Change

[ ] Bugfix
[x] New feature
[ ] Enhancement
[ ] Refactoring
[ ] Dependency updates
[ ] Documentation
[ ] CI/CD

Description

Added frm dashboard metrics and filters.
Filters based on:

frm_status
frm_name
frm_transaction_type

Metrics calculated:

frm_triggered_attempts
frm_blocked_rate

Additional Changes

[ ] This PR modifies the API contract
[ ] This PR modifies the database schema
[ ] This PR modifies application configuration/environment variables

Motivation and Context

Can get analytics insights based on frm
How did you test it?

Tested using local data by sending cURL requests through Postman.

Checklist

[ ] I formatted the code cargo +nightly fmt --all
[ ] I addressed lints thrown by cargo clippy
[ ] I reviewed the submitted code
[ ] I added unit tests for my changes where possible

all dimensions are null. Is the deserialization to the internal struct happening correctly?

Adding a curl req/ resp with some dimensions in groupByNames clause. It works as expected.
Link to comment: https://github.com/juspay/hyperswitch/pull/4880#issuecomment-2149343307

Also need to change config/deployments/env_specific.toml


PR: Enable/disable the Configuration per file action according to the current file run configuration (Run)

Description of Changes
That action was enabled for files without a run configuration, which was giving the same error as the one reported on issue #22607 when clicking on it.
Issue(s) Resolved
Part of #22607.
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: @ccordoba12

@meeseeksdev please backport to 6.x


configuration-mapping-fields component creation

Summary by CodeRabbit

New Features

Introduced a dynamic form for configuring mapping fields for expenses, including dropdown menus, validation, and the ability to add/remove fields dynamically.

Enhancements

Improved modularity by importing SharedModule in travelperk-shared.module.
Added ConfigurationMappingFieldsComponent to SharedModule for broader application use.

@coderabbitai review

@coderabbitai review

fixed the comments in https://github.com/fylein/fyle-integrations-app/pull/508


WFLY-7555 Upgrade Infinispan to 8.2.5.Final

WFLY-6906 Silence "ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated."
https://issues.jboss.org/browse/WFLY-7555
https://issues.jboss.org/browse/WFLY-6906

Grrrrr... hibernate-infinispan doesn't recognize the new MANUAL eviction strategy as being "disabled".


Error Connect Timed Out

Hey Guys, please ...
Could you help me ... I'm getting a timeout, follow the nexus server log ...
GithubOauthAuthenticatingRealm - doGetAuthenticationInfo for WagnerCarvalho
GithubOauthAuthenticatingRealm - Failed authentication
Connect to api.github.com:443 [api.github.com/<IP_ADDRESS>] failed: connect timed out
my file githuboauth.properties
github.api.url=https://api.github.com
github.principal.cache.ttl=PT1M
github.org=RAIADROGASIL,RD,TEST
request.timeout.connection-request=60
request.timeout.connect=60
request.timeout.socket=10
what am I doing wrong?

Hi, you probably ran into an GitHub issue (see https://www.githubstatus.com/incidents/5t09j5cly2sk).
The incident is resolved now, so you can try again.


Should ignore files that have no nodes

I have some less templates that get processed into CSS files but actually output nothing. This gets normalized away eventually when my build process concatenates the individual CSS templates. I have the bem linter processing each individual file, not the final concatenated output, which means sometimes it runs against empty files (eg. less templates that contain only mixins and are not output). This causes an error in the linter because firstNode is undefined. Should the linter just ignore any CSS without nodes?

Note as a workaround I can put a comment in any affected less templates and it gets through the build; but this will be in my final output, so I'd prefer not to do that.

I solved this in the build pipeline, with something like https://github.com/nahody/gulp-clip-empty-files

I believe this is fixed by cecd6fc046154dcb281bf2e290c691cd0e9e6c72


Add warning for apppackage, appactivity and appwaitpackages

This is just a suggestion.

I got feedback from some Appium users in Japan who faced wrong package/activity name.
We can see Bad component name: com.android.vending if we inserted a space in appActivity for example. For users, it's difficult to estimate the case.
I know the error message by adb command is a common thing for Android developers though. But in the case, users should take much time to dig into adb command world.
error: [MJSONWP] Encountered internal error running command: Error: Error occured while starting App. Original error: Error executing adbExec. Original error: 'Command '/Users/itonozomi/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am start -W -n 'com.android.vending /.AssetBrowserActivity' -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000' exited with code 255'; Stderr: 'Exception occurred while executing:
error: [MJSONWP] java.lang.IllegalArgumentException: Bad component name: com.android.vending
error: [MJSONWP] 	at android.content.Intent.parseCommandArgs(Intent.java:6417)

For Appium users, I'd like to try to show more helpful error message than simple adb command error message. I won't insert this kind of messages too much so only insert in initialising.I found it follows https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html . So, roughly, I've added warning messages using RegExp like the below.
What I did
So, what about adding warning message?
(This is warning message. So, if some illegal name happens, Appium should work leaving some warning messages.

thanks for the review!


Fix a few thing about the hubs tables

This PR:

fixes the pagination of the tables. For some reason, without explicitly listing jquery as an extension it stopped working and I suspect it wasn't working for a while
fix the stats table. It started showing once the write to the csv file had index set to true
turns True/False into checkboxes in the options table

Thank you @sgibson91! 🚀


Revamped the Educational Project

Title and Issue number
Revamp the Education Website completely #2707
Close #2707
Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[] I have created a helpful and easy to understand README.md

before
![image](https://github.com/pranjay-poddar/Dev-Geeks/assets/13386269

4/5a6972bf-819d-44a8-acfe-2674ebc95a4c)

Now

Please merge this PR @TusharKesarwani @pranjay-poddar @Saurabh-kumar09 @MohitGupta121

@TusharKesarwani Can you please merge this


I have some problem using the libraries

Hi, I'm trying the library for the first time and I followed the documentation in github and also on stackblitz.
I dunno why the create stage doesn't work on my code. I'm using Angular 16. This is my code:
import { BracketsManager } from 'brackets-manager';
import { dataset16, dataset2, dataset32, dataset4, dataset8 } from './datasets';
import { Dataset } from './interfaces/dataset.interface';
import { InMemoryDatabase } from 'brackets-memory-db'

const TOURNAMENT_ID = 15;

async function process(dataset: Dataset) {
  const storage = new InMemoryDatabase();
  const manager = new BracketsManager(storage);

  storage.setData({
    participant: dataset.roster.map((player) => ({
      ...player,
      tournament_id: TOURNAMENT_ID,
    })),
    stage: [],
    group: [],
    round: [],
    match: [],
    match_game: [],
  });

  console.log(storage);

  const stage = await manager.create.stage({
    tournamentId: TOURNAMENT_ID,
    name: 'test stage',
    type: dataset.type,
    seeding: dataset.roster.map(item=>item.name),
  });

  console.log("stage", stage);
  const data = await manager.get.stageData(stage.id);
  console.log("data", data);
  const match = await storage.select('match');
  console.log("match", match);
  const stages = data.stage;
  const matches = data.match;
  const matchGames = data.match_game;
  const participants = data.participant;

}

export function testDataset(){
  return process(dataset8);
}

At the moment the console log of stage has this value:
{
id: [], name: "Test stage", number: 1,
setting : {consolationFinal: false, matchesChildCount: 0, size: 8},
tournament_id: 15, type: "single_elimination"
}

But inside data console log, stage is an array with one element that is an empty array.
I also share my dataset:
export let dataset8: Dataset = {
  title: '8 competitor tournament',
  type: 'single_elimination',
  roster: [
    { id: 7, name: 'Seed 1' },
    { id: 55, name: 'Seed 2' },
    { id: 53, name: 'Seed 3' },
    { id: 523, name: 'Seed 4' },
    { id: 123, name: 'Seed 5' },
    { id: 353, name: 'Seed 6' },
    { id: 354, name: 'Seed 7' },
    { id: 355, name: 'Seed 8' },
  ],
};

I dunno what is wrong with the code

Can you double check you use the latest version of each package? The stackblitz demo is for sure outdated, and it may be related.
Your above example works as expected in the browser console in https://drarig29.github.io/brackets-docs/getting-started/.
You can get manager and storage like this:
const manager = window.bracketsManager
const storage = manager.storage

I checked the versions of the file:
        "brackets-manager": "^1.6.4",
        "brackets-memory-db": "^1.0.4",
        "brackets-model": "^1.5.0",
        "brackets-viewer": "^1.6.2",

Can the problem be I'm using the InMemoryDataset instead the "brackets-json-db"?

Ok, I did another test, I created an empty app and works properly, I have to check back my current application.

If anyone has already tried to integrate this library with fuse we will be very happy to hear your solutions!


Experimenting with benchmarking

Just an experiment.

/benchmark validation

/benchmark validation

/benchmark validation

/benchmark validation

The base commit has vanished.


Collectors note polish items

This PR fixes bugs related to collector's note functionality. In particular, it fixes two interrelated bugs related to the height of textarea elements not properly responding to user input.
Now, the collector's note textarea will 1. expand to meet its full height whenever text is added, 2. reduce to meet its new height whenever text is removed, and 3. take up the full height on a fresh page load.
https://user-images.githubusercontent.com/13339581/159140541-302778b3-add1-4ce4-a0a7-a16577a8d908.mov
Behind the scenes, this actually abstracts the height logic out of the collectors note component, and creates a new reusable component AutoResizingTextAreaWithCharCount. As the name implies, this resizes on its own based on inputs and can be used elsewhere as needed!
Preview link 🔗

@Robinnnnn both comments addressed 👍


fix: add disk limit to pb actors, fix dockerfiles

Changes

#1469  👈 (View in Graphite)
main

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


peek references : show line number

Sometimes we are working on programs that takes thousands of lines and with a LOT of references to a var
And it gets hard to identify where the var is called just by watching the line at the right of peek and it is also annoying to get thru all lines to check where it is called.
So, I request to show the line where the variable is called directly in the right panel like this
(excuse my poor paint skills)

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Collapse elements do not respect data attribute configurations when manually instantiated

If you manually instantiate a Collapse, than data attribute configuration (either data-bs-parent or data-bs-toggle) are not respected. They are completely ignored.
At glance it looks like _getConfig() does NOT spread Manipulator.getDataAttributes(element) like it does in other components _getConfig() (modal example) methods, or even the collapses own static collapseInterface().
Reduced test case
https://jsfiddle.net/owxdrvtf/3/

@RyanBerliner  thanks for pointing out this.
Take a look on #34220. I think it will resolve this issue

Yup, looks like that pr will address this issue. Thanks!


Implement Markdown on iOS

:bulb: Idea
As discussed on Matrix, it would be great is markdown could be implemented on iOS as the messages sent using markdown don't look great.
I understand that we don't currently have any iOS developer so in the meantime, it might perhaps be worth considering stripping out some things like ** markers and images which aren't recognised so we can at least have clean plain text?

:computer: Target components
iOS app

Looking forward to Markdown support on iOS! What about using an existing Kit like: https://github.com/chrisdhaan/CDMarkdownKit


fix: make global toggle checkbox less ambiguous

what will happen if I uncheck the box?

This PR is just a tiny tweak so the checkbox label says what it will do if it is checked.

[ ] Global toggle: Suspend all IPFS integrations

License: MIT
Signed-off-by: Oli Evans<EMAIL_ADDRESS>

I haven't pushed anything to transifex while it awaits your judgement @lidel

Ah yes, that's the one.


Can i fork this and use it for my own purposes

I want to fork it and update it to 1.19.2. Is this fine

I want to fork it and update it to 1.19.2. Is this fine

Yes it is totally fine !!! You can folk it and push a PR here or make your own mod version and you're free to publish it!!!

ok thx


Check travis fails

Motivation and Context

Checking travis build fails with failing test
What has changed

How to test?

Links

Travis script does not need changing, it's working as expected.


feature: advertise required feature bit for TLV onions

In this commit, we start to advertise the required feature bit for the
new modern TLV onion format. In a future change, we'll remove the logic
for being able to encode+encode the payload. For now, we still have
tests that exercise being able to use the new and old formats (as well
as both of them in a single route), so we'll continue to retain that
behavior for now.
Implements https://github.com/lightning/bolts/pull/962.

So instead, we might want to leave the feature bit as is, and modify the SendToRoute call to default to using the TLV payload: https://github.com/lightning/bolts/pull/962#issuecomment-1081045824

Made this PR to implement the change above: https://github.com/lightningnetwork/lnd/pull/6385

Moving this to 0.16 given that we're introducing behavior in 0.14.3 to stop allowing the legacy onions to be sent at all.


[FLINK-28532][table] Support full caching in lookup join runner using InputFormats as scan runtime provider

What is the purpose of the change
This pull request introduces support of lookup join using FullCachingLookupProvider that uses InputFormats for data loading.
Brief change log

Add LookupFullCache as an implementation of interface LookupCache, therefore full caching logic is located in the same place as partial caching logic (CachingLookupFunction)
There are 2 copies of full caches (old and new) at the process of reloading, so no blocking is required, but on the other hand, it requires twice more memory.
Reloading happens in another thread. If exception will be thrown from this thread, main thread will also stop.
If there are more than one InputSplit from InputFormat, reloading will be performed in parallel. Total number of threads for reloading = min(numOfSplit, numOfCores).

Verifying this change
This change added tests and can be verified as follows:

'org.apache.flink.table.planner.runtime.batch.sql.join.LookupJoinITCase' - Batch IT tests that should work the same way with full caching as with NONE and PARTIAL caching.
'org.apache.flink.table.planner.runtime.stream.sql.LookupJoinITCase' - Streaming IT tests that should work the same way with full caching as with NONE and PARTIAL caching.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (yes)
The runtime per-record code paths (performance sensitive): (yes)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (JavaDocs)

@PatrickRen Thanks for the review! Please look at latest commit where I addressed your comments

An instance of green CI: https://dev.azure.com/renqs/Apache Flink/_build/results?buildId=389&view=results