icici bank iMobile Pay not launching fully

Hi,
I m using Pixel 6 and 7 with GOS running on it. however I am able to install and use all banking apps except imobile Pay by ICICI bank. It launches initially and then goes to white screen. it wont reach/go for login screen.
Any help please? I have done all compatibility mode and clearing t storage and allowing storage scope.
if you are not able to understand my problem; please try installing it on your device. Dont worry it is not harmful app. It is genuine bank ICICI.
FYI: I have installed it via play store with google play services running in sandboxed as suggested by GOS.
Any help is much appreciated. I think somewhere we need to do something to make it work. only you guys help me here..

You need to provide logs or we're unable to tell you why it's not working.

if you could help me how can I get the log for this from my phone then I can provide the logs

Yes I found the way to get logs, can u suggest - is it face to share logs here?

If you cut it down to the relevant part, yes, since you can check for yourself that no apps logged sensitive data in that portion of the logs.

this is app - icici.bank.imobile
when I tried to upload it is only 25MB allowed.the log I have got it 43.9 MB. Would it possible for you to install on your mobile as it is not harmful and try once. just launch and the app freezes. If you want from me then let me know how I can get only that particular app log

@hjangadi

43.9 MB

No one is going to look through 43.9 mb of logs for you! That is an insane amount of data to ask anyone to look through.

If you cut it down to the relevant part

You may have to learn how to get the section of that log that is specific to this. If you want someone's help with this, asking someone who has a million and one things on their plate already may not work out.

If you want from me then let me know how I can get only that particular app log

Do you have native code debugging enabled by the way? I only read that you had done the compatibility mode, which was the per-app exploit protection mode being enabled? Is that what you meant?
It could just be that that bank's app is simply not going to work either.

@hjangadi

how I can get only that particular app log

Find a way to reproduce the issue.

Prepare for reproduction
adb logcat -c to clear previous logs
Reproduce the issue
In a timely manner to avoid unnecessary logs: adb logcat -d > issue.log to dump the logs in a file named issue.log

Yes I have tried this as well. it is really strange how same app works fine on calysOS why not GOS. No prob I will to cut unwanted ad send u required log.

@hjangadi

how I can get only that particular app log

Reproduce the issue.

Prepare for reproduction
adb logcat -c to clear previous logs
Reproduce the issue
In a timely manner to avoid unnecessary logs: adb logcat -d > issue.log to dump the logs in a file named issue.log

thanks for these steps.. Now I got proper log. Please see issue.log attached here
issue_icici.bank.imobile.log

hope you guys provide me the solution, I would be really really happy if you make it work on GOS.

@hjangadi Stop promoting that OS here and elsewhere.

Turn on the per-app exploit protection compatibility mode for this app as a starting point and make sure you haven't disabled the OS native debugging toggle in Settings. Make sure the app has the Network permission.

yes I tried this enabling per app exploit but no luck. have you got any clue from the log attached here?

@hjangadi
This might be the log entry that's relevant:
11-03 15:30:37.080  1483  1530 I ActivityManager: Start proc 20769:com.csam.icici.bank.imobile/u0a135 for next-top-activity {com.csam.icici.bank.imobile/com.csam.icici.bank.imobile.IMOBILE}
11-03 15:30:37.083 20769 20769 W Zygote  : Can't access app profile directory: /data_mirror/cur_profiles/0/com.csam.icici.bank.imobile
11-03 15:30:37.129   520  2298 E SurfaceFlinger: Only WindowManager is allowed to use eEarlyWakeup[Start|End] flags
11-03 15:30:37.541  1483  1704 W ServiceManager: Waited one second for android.hardware.biometrics.face.IFace/default (is service started? are binder threads started and available?)
11-03 15:30:37.541   453   453 I servicemanager: Since 'android.hardware.biometrics.face.IFace/default' could not be found, trying to start it as a lazy AIDL service
11-03 15:30:37.543   453 20812 W libc    : Unable to set property "ctl.interface_start" to "aidl/android.hardware.biometrics.face.IFace/default": error code: 0x20
11-03 15:30:37.543   453 20812 I servicemanager: Tried to start aidl service android.hardware.biometrics.face.IFace/default as a lazy service, but was unable to. Usually this happens when a service is not installed, but if the service is intended to be used as a lazy service, then it may be configured incorrectly.
11-03 15:30:37.605   520  2433 E SurfaceFlinger: Only WindowManager is allowed to use eEarlyWakeup[Start|End] flags
11-03 15:30:37.782 17952 17952 D BoundBrokerSvc: onBind: Intent { act=com.google.android.gms.measurement.START pkg=com.google.android.gms }
11-03 15:30:37.782 17952 17952 D BoundBrokerSvc: Loading bound service for intent: Intent { act=com.google.android.gms.measurement.START pkg=com.google.android.gms }
11-03 15:30:37.788 17952 17952 D BoundBrokerSvc: onBind: Intent { act=com.google.firebase.auth.api.gms.service.START pkg=com.google.android.gms }
11-03 15:30:37.788 17952 17952 D BoundBrokerSvc: Loading bound service for intent: Intent { act=com.google.firebase.auth.api.gms.service.START pkg=com.google.android.gms }
11-03 15:30:37.789  2608  2608 D BoundBrokerSvc: onBind: Intent { act=com.google.android.gms.gmscompliance.service.START dat=chimera-action: cmp=com.google.android.gms/.chimera.PersistentBoundBrokerService }
11-03 15:30:37.789  2608  2608 D BoundBrokerSvc: Loading bound service for intent: Intent { act=com.google.android.gms.gmscompliance.service.START dat=chimera-action: cmp=com.google.android.gms/.chimera.PersistentBoundBrokerService }
11-03 15:30:37.828  1483  4370 D CompatibilityChangeReporter: Compat change id reported: 161145287; UID 10135; state: DISABLED
11-03 15:30:37.897  1483  4370 D CoreBackPreview: Window{f724e94 u0 com.csam.icici.bank.imobile/com.csam.icici.bank.imobile.IMOBILE}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@11c22fb, mPriority=0}
11-03 15:30:37.916  1483 10603 D CompatibilityChangeReporter: Compat change id reported: 194532703; UID 10135; state: DISABLED
11-03 15:30:37.989  1483  1527 D CompatibilityChangeReporter: Compat change id reported: 135634846; UID 99027; state: DISABLED
11-03 15:30:37.989  1483  1527 D CompatibilityChangeReporter: Compat change id reported: 177438394; UID 99027; state: DISABLED
11-03 15:30:37.989  1483  1527 D CompatibilityChangeReporter: Compat change id reported: 135772972; UID 99027; state: DISABLED
11-03 15:30:37.989  1483  1527 D CompatibilityChangeReporter: Compat change id reported: 135754954; UID 99027; state: ENABLED
11-03 15:30:37.990  1483  1530 D CompatibilityChangeReporter: Compat change id reported: 143937733; UID 10135; state: ENABLED
11-03 15:30:38.011  1893  1893 D Zygote  : Forked child process 20900
11-03 15:30:38.013 20900 20900 E libc    : SetHeapTaggingLevel: re-enabling tagging after it was disabled is not supported
11-03 15:30:38.016  1483  1530 I ActivityManager: Start proc 20900:app.vanadium.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0/u0i27 for  {com.csam.icici.bank.imobile/org.chromium.content.app.SandboxedProcessService0:0}
11-03 15:30:38.019 20900 20900 E ocessService0:0: Not starting debugger since process cannot load the jdwp agent.
11-03 15:30:38.030  1483 10603 D ConnectivityService: requestNetwork for uid/pid:10135/20769 activeRequest: null callbackRequest: 876 [NetworkRequest [ REQUEST id=877, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ]] callback flags: 0 order:<PHONE_NUMBER>
11-03 15:30:38.032  1483  1661 D ConnectivityService: NetReassign [877 : null → 110]
11-03 15:30:38.037  1483  1653 D WifiNetworkFactory: got request NetworkRequest [ REQUEST id=877, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ]
11-03 15:30:38.037  1483  1653 D UntrustedWifiNetworkFactory: got request NetworkRequest [ REQUEST id=877, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ]
11-03 15:30:38.037  1483  1653 D OemPaidWifiNetworkFactory: got request NetworkRequest [ REQUEST id=877, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ]
11-03 15:30:38.038  1483  1653 D MultiInternetWifiNetworkFactory: got request NetworkRequest [ REQUEST id=877, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ]
11-03 15:30:38.038  1483  1661 D ConnectivityService: NetReassign [no changes]
11-03 15:30:38.095 20900 20900 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 99027 <<<<<<
11-03 15:30:38.098 20900 20900 I AndroidRuntime: Using default boot image
11-03 15:30:38.098 20900 20900 I AndroidRuntime: Leaving lock profiling enabled
11-03 15:30:38.099 20900 20900 W libc    : Access denied finding property "odsign.verification.success"
11-03 15:30:38.101 20900 20900 E cutils-trace: Error opening trace file: No such file or directory (2)
11-03 15:30:38.103 20900 20900 W app.vanadium.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0: ART APEX data files are untrusted.
11-03 15:30:38.174  1483 10520 D CoreBackPreview: Window{f6d402f u0 com.csam.icici.bank.imobile/com.csam.icici.bank.imobile.IMOBILE}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@297b04b, mPriority=0}
11-03 15:30:38.206   454   454 I hwservicemanager: getTransport: Cannot find entry android.hardware.graphics.allocator@4.0::IAllocator/default in either framework or device VINTF manifest.
11-03 15:30:38.208   453   453 I servicemanager: Found android.hardware.graphics.allocator.IAllocator/default in device VINTF manifest.
11-03 15:30:38.216 20900 20900 D app.vanadium.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0: Time zone APEX ICU file found: /apex/com.android.tzdata/etc/icu/icu_tzdata.dat
11-03 15:30:38.216 20900 20900 D app.vanadium.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0: I18n APEX ICU file found: /apex/com.android.i18n/etc/icu/icudt70l.dat
11-03 15:30:38.227  3312  3920 I System.out: Caught a exception encoding the public key: com.android.apksig.internal.asn1.Asn1DecodingException: Failed to parse ess.a
11-03 15:30:38.228  3312  3920 W System.err: com.android.apksig.internal.asn1.Asn1DecodingException: Failed to parse ess.a

And the crash entry:
11-03 15:31:02.444  1483  1521 I ActivityManager: Killing 20769:com.csam.icici.bank.imobile/u0a135 (adj 250): remove task
11-03 15:31:02.445  1483  1521 I ActivityManager: Killing 20900:app.vanadium.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0/u0a135i27 (adj 100): remove task
11-03 15:31:02.467  1483  1531 I libprocessgroup: Successfully killed process cgroup uid 10135 pid 20769 in 21ms
11-03 15:31:02.587  1483  1704 W ServiceManager: Waited one second for android.hardware.biometrics.face.IFace/default (is service started? are binder threads started and available?)
11-03 15:31:02.588   453   453 I servicemanager: Since 'android.hardware.biometrics.face.IFace/default' could not be found, trying to start it as a lazy AIDL service
11-03 15:31:02.590   453 21325 W libc    : Unable to set property "ctl.interface_start" to "aidl/android.hardware.biometrics.face.IFace/default": error code: 0x20
11-03 15:31:02.590   453 21325 I servicemanager: Tried to start aidl service android.hardware.biometrics.face.IFace/default as a lazy service, but was unable to. Usually this happens when a service is not installed, but if the service is intended to be used as a lazy service, then it may be configured incorrectly.
11-03 15:31:02.605  1483 15212 W ActivityManager: Scheduling restart of crashed service com.csam.icici.bank.imobile/org.chromium.content.app.SandboxedProcessService0:0 in 1000ms for connection
11-03 15:31:02.608  1893  1893 I Zygote  : Process 20900 exited due to signal 9 (Killed)
11-03 15:31:02.627  1483  1536 E system_server: Cannot read thread CPU times for PID 1483
11-03 15:31:02.687  1483  1531 I libprocessgroup: Successfully killed process cgroup uid 99027 pid 20900 in 0ms
11-03 15:31:02.741  2263  2263 D b/223498680: LRV onStateTransitionComplete setFreezeVisibility=false, finalState=Normal
11-03 15:31:02.744   520  1615 E SurfaceFlinger: Only WindowManager is allowed to use eEarlyWakeup[Start|End] flags
11-03 15:31:02.796  1483  2468 D ConnectivityService: ConnectivityService NetworkRequestInfo binderDied(uid/pid:10135/20769, [NetworkRequest [ LISTEN id=879, [ Transports: CELLULAR|WIFI|VPN Capabilities: NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ]], android.os.BinderProxy@bb0d660)
11-03 15:31:02.797  1483  4370 D ConnectivityService: ConnectivityService NetworkRequestInfo binderDied(uid/pid:10135/20769, [NetworkRequest [ REQUEST id=877, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ]], android.os.BinderProxy@9dcb719)
11-03 15:31:02.797  1483  2468 D ConnectivityService: ConnectivityService NetworkRequestInfo binderDied(uid/pid:10135/20769, [NetworkRequest [ LISTEN id=878, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ]], android.os.BinderProxy@919c3de)
11-03 15:31:02.798  1483  1661 D ConnectivityService: releasing NetworkRequest [ REQUEST id=877, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 10135 RequestorUid: 10135 RequestorPkg: com.csam.icici.bank.imobile UnderlyingNetworks: Null] ] (release request)
11-03 15:31:02.798   669   669 W libprocessgroup: Failed to apply NoResetUclampGrp task profile: No such process
11-03 15:31:02.798   669   669 W powerhal-libperfmgr: Failed to set NoResetUclampGrp task profile for tid:20953
11-03 15:31:02.798   669   669 W libprocessgroup: Failed to apply NoResetUclampGrp task profile: No such process
11-03 15:31:02.798   669   669 W powerhal-libperfmgr: Failed to set NoResetUclampGrp task profile for tid:20954
11-03 15:31:02.798   669   669 W libprocessgroup: Failed to apply NoResetUclampGrp task profile: No such process
11-03 15:31:02.799   669   669 W powerhal-libperfmgr: Failed to set NoResetUclampGrp task profile for tid:20855
11-03 15:31:02.799   669   669 W powerhal-libperfmgr: sched_setattr failed for thread 20953, err=3
11-03 15:31:02.799   669   669 W powerhal-libperfmgr: sched_setattr failed for thread 20954, err=3
11-03 15:31:02.799   669   669 W powerhal-libperfmgr: sched_setattr failed for thread 20855, err=3
11-03 15:31:02.799  1483  4370 I WindowManager: WIN DEATH: Window{f6d402f u0 com.csam.icici.bank.imobile/com.csam.icici.bank.imobile.IMOBILE}
11-03 15:31:02.799  1483  4370 W InputManager-JNI: Input channel object 'f6d402f com.csam.icici.bank.imobile/com.csam.icici.bank.imobile.IMOBILE (client)' was disposed without first being removed with the input manager!
11-03 15:31:02.801   974   974 I Zygote  : Process 20769 exited due to signal 9 (Killed)
11-03 15:31:02.803  1483 10520 W ActivityManager: Scheduling restart of crashed service com.csam.icici.bank.imobile/androidx.work.impl.background.systemjob.SystemJobService in 1000ms for connection
11-03 15:31:02.804   520   520 E BpTransactionCompletedListener: Failed to transact (-32)
11-03 15:31:02.805 17952 17952 D BoundBrokerSvc: onUnbind: Intent { act=com.google.firebase.auth.api.gms.service.START pkg=com.google.android.gms }
11-03 15:31:02.807 17952 17952 D BoundBrokerSvc: onUnbind: Intent { act=com.google.android.gms.measurement.START pkg=com.google.android.gms }
11-03 15:31:02.811  1483  1521 W ActivityManager: setHasOverlayUi called on unknown pid: 20769

Though, I am not certain, and perhaps could very well be wrong.
However, my intentions are simply to help as 17k lines of in a log file is still to large.

...cut it down to the relevant part

I am not expert which one to cut here. I would only see my searching work "imobile". hope that helps to find the issue.
However few error I see are
11-03 15:30:37.036  1625  1636 I native  : I0000 00:00:1667489437.035872    1636 tf_lite_classifier.cc:383] Event stream classified as kNone
11-03 15:30:37.041  1483 15226 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.csam.icici.bank.imobile/.IMOBILE bnds=[33,171][308,624]} from uid 10099
11-03 15:30:37.042  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 194480991; UID 10135; state: ENABLED
11-03 15:30:37.045  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 174042980; UID 10135; state: DISABLED
11-03 15:30:37.045  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 184838306; UID 10135; state: DISABLED
11-03 15:30:37.046  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 185004937; UID 10135; state: DISABLED
11-03 15:30:37.046  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 181136395; UID 10135; state: DISABLED
11-03 15:30:37.046  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 174042936; UID 10135; state: DISABLED
11-03 15:30:37.047  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 197654537; UID 10135; state: DISABLED
11-03 15:30:37.047  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 205907456; UID 10135; state: DISABLED
11-03 15:30:37.051  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 194833441; UID 10135; state: DISABLED
11-03 15:30:37.054  1483 15226 D CompatibilityChangeReporter: Compat change id reported: 168419799; UID 10135; state: DISABLED
11-03 15:30:37.055  1483  1521 D CompatibilityChangeReporter: Compat change id reported: 135634846; UID 10135; state: DISABLED
11-03 15:30:37.055  1483  1521 D CompatibilityChangeReporter: Compat change id reported: 177438394; UID 10135; state: DISABLED
11-03 15:30:37.055  1483  1521 D CompatibilityChangeReporter: Compat change id reported: 135772972; UID 10135; state: DISABLED
11-03 15:30:37.055  1483  1521 D CompatibilityChangeReporter: Compat change id reported: 135754954; UID 10135; state: ENABLED
11-03 15:30:37.055  1483 10603 D CoreBackPreview: Window{b63ccc2 u0 Splash Screen com.csam.icici.bank.imobile}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@9ac6509, mPriority=0}
11-03 15:30:37.055  1483  1530 D CompatibilityChangeReporter: Compat change id reported: 143937733; UID 10135; state: ENABLED
11-03 15:30:37.071   894   894 I WifiHAL : In GetLinkStatsCommand::handleResponse
11-03 15:30:37.075   974   974 D Zygote  : Forked child process 20769
11-03 15:30:37.080  1483  1530 I ActivityManager: Start proc 20769:com.csam.icici.bank.imobile/u0a135 for next-top-activity {com.csam.icici.bank.imobile/com.csam.icici.bank.imobile.IMOBILE}
11-03 15:30:37.083 20769 20769 W Zygote  : Can't access app profile directory: /data_mirror/cur_profiles/0/com.csam.icici.bank.imobile
11-03 15:30:37.129   520  2298 E SurfaceFlinger: Only WindowManager is allowed to use eEarlyWakeup[Start|End] flags
11-03 15:30:38.099 20900 20900 W libc    : Access denied finding property "odsign.verification.success"
11-03 15:30:38.101 20900 20900 E cutils-trace: Error opening trace file: No such file or directory (2)
11-03 15:30:38.103 20900 20900 W app.vanadium.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0: ART APEX data files are untrusted.
11-03 15:30:38.174  1483 10520 D CoreBackPreview: Window{f6d402f u0 com.csam.icici.bank.imobile/com.csam.icici.bank.imobile.IMOBILE}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@297b04b, mPriority=0}
11-03 15:30:38.206   454   454 I hwservicemanager: getTransport: Cannot find entry android.hardware.graphics.allocator@4.0::IAllocator/default in either framework or device VINTF manifest.
11-03 15:30:38.208   453   453 I servicemanager: Found android.hardware.graphics.allocator.IAllocator/default in device VINTF manifest.
11-03 15:30:38.216 20900 20900 D app.vanadium.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0: Time zone APEX ICU file found: /apex/com.android.tzdata/etc/icu/icu_tzdata.dat
11-03 15:30:38.216 20900 20900 D app.vanadium.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0: I18n APEX ICU file found: /apex/com.android.i18n/etc/icu/icudt70l.dat
11-03 15:30:38.227  3312  3920 I System.out: Caught a exception encoding the public key: com.android.apksig.internal.asn1.Asn1DecodingException: Failed to parse ess.a
11-03 15:30:38.228  3312  3920 W System.err: com.android.apksig.internal.asn1.Asn1DecodingException: Failed to parse ess.a


fails to compile on linux x11 godot editor

I get this error:

modules/creaturegodot/gason/gason.h:137:12: error: 'nullptr' was not declared in this scope
In file included from modules/creaturegodot/creaturegodot.h:7:0,
from modules/creaturegodot/register_types.cpp:5:
modules/creaturegodot/CreatureModule.h:242:40: error: expected ')' before '<' token
CreatureManager(std::shared_ptrCreatureModule::Creature target_creatu
^
modules/creaturegodot/CreatureModule.h:251:32: error: 'std::shared_ptr' has not been declared
void AddAnimation(std::shared_ptrCreatureModule::CreatureAnimation an
^
modules/creaturegodot/CreatureModule.h:251:42: error: expected ',' or '...' before '<' token
void AddAnimation(std::shared_ptrCreatureModule::CreatureAnimation an
^
modules/creaturegodot/CreatureModule.h:268:14: error: 'unordered_map' in namespace 'std' does not name a template type
std::unordered_map<std::string, std::shared_ptr<CreatureModule::Creatur
^
modules/creaturegodot/CreatureModule.h:327:44: error: 'std::function' has not been declared
void SetBonesOverrideCallback(std::function<void (std::unordered_map<st
^
modules/creaturegodot/CreatureModule.h:327:52: error: expected ',' or '...' before '<' token
void SetBonesOverrideCallback(std::function<void (std::unordered_map<st
^
modules/creaturegodot/CreatureModule.h:378:32: error: 'std::unordered_map' has not been declared
void AlterBonesByAnchor(std::unordered_map<std::string, meshBone *>& bones_ma
^
modules/creaturegodot/CreatureModule.h:378:45: error: expected ',' or '...' before '<' token
void AlterBonesByAnchor(std::unordered_map<std::string, meshBone *>& bones_ma
^
modules/creaturegodot/CreatureModule.h:380:14: error: 'unordered_map' in namespace 'std' does not name a template type
std::unordered_map<std::string, std::shared_ptr<CreatureModule::Creatur
^
modules/creaturegodot/CreatureModule.h:381:14: error: 'shared_ptr' in namespace 'std' does not name a template type
std::shared_ptrCreatureModule::Creature target_creature;
^
modules/creaturegodot/CreatureModule.h:390:8: error: 'unordered_map' in namespace 'std' does not name a template type
std::unordered_map<std::string, float> active_blend_run_times;
^
modules/creaturegodot/CreatureModule.h:400:14: error: 'function' in namespace 'std' does not name a template type
std::function<void (std::unordered_map<std::string, meshBone *>&) > bon
^
In file included from modules/creaturegodot/register_types.cpp:5:0:
modules/creaturegodot/creaturegodot.h:28:10: error: 'shared_ptr' in namespace 'std' does not name a template type
std::shared_ptrCreatureModule::CreatureManager manager;
^
scons: *** [modules/creaturegodot/register_types.x11.tools.64.o] Error 1
scons: building terminated because of errors.

You need a C++11 compiler to build the module. Your C++ compiler looks outdated and doesn't support the C++11 standard.

this
http://codeforces.com/blog/entry/15667
says I need gcc-4.7 g++-4.7
and I need to run it with -std=c++11
How do I pass that argument to the scons script?

Hello,
This is more of a scons/compiler specific question.
You might want to take a look here:
http://stackoverflow.com/questions/13179316/how-to-tell-scons-to-use-the-c11-standard

so do I have to add this line somewhere in the sconstruct file?

env=Environment(CPPPATH='/usr/include/boost/',
CPPDEFINES=[],
LIBS=[],
CXXFLAGS="-std=c++0x"
)

I have no idea where to add it

No that is the incorrect line.
Look at this one instead:
http://stackoverflow.com/questions/31232955/using-scons-to-compile-c-file-with-std-c11-flag
Also please read this doc too:
https://bitbucket.org/scons/scons/wiki/SConsCrashCourse

the scons script doesnt even have an env= line.
It is more complicated because it builds to different targets

Sorry but I am in the middle of fixing some other bugs right now. I can definitely look at the issue for you when I get the cycles. However, this really is more of a general Godot Engine or even scons question. You might want to ask in the general Godot Engine forums how to setup your compiler for C++11 support. Cheers

@kestrelm forwarded the question to godot's issue tracker.
Thank you kindly for the help so far!
I will try to get it compiled and test the example files that you have provided.

While you are at it, if you really want to use Godot it will help you a lot if you learn a bit about the scons build system since that's how they build their engine. In the future if you want to use some other feature you will also know what to do. Cheers

So far I am mostly interested in learning gdscript. :) But I might give it a try later on.

I might be able to get it to compile with
scons p=x11 CCFLAGS="-std=c++11"
will give it a try a bit later :)

it still fails to build it with that!
One godot user actually had a suggestion for your code:

You don't need to enable it for the whole build, just for your module on
the SCsub, something like this:
module_sources=['file1.cpp', 'file2.cpp']
env_mymodule = env.Clone()
env_mymodule.Append(CXXFLAGS=['--enable-c++11', '-D_SOME_MODULE_DEFINE'])
env_mymodule.add_source_files(env.modules_sources, module_sources)
That will add the compiler flags only to your sources and not to the rest
of the build. Keep in mind that not all compilers use the same flags
obviously (maybe there's a scons option to enable c++11 that is more
portable), the point is whatever you do to that environment won't affect
the rest of the build (which means if you enable or disable the module it
won't trigger a recompile of all the sources, only the ones specifically
affected by your module)

We found a solution. In order to get it to compile on godot editor, you need to change your SCsub file.
It will work with this in the SCsub file:
# SCsub
Import('env')

env_module = env.Clone()
env_module.Append(CPPDEFINES=['_USE_MATH_DEFINES'])
env_module.Append(CPPPATH='#modules/creaturegodot') # Added to find headers
env_module.Append(CPPPATH='#modules/creaturegodot/glm')
env_module.Append(CPPPATH='#modules/creaturegodot/gason')
env_module.Append(CXXFLAGS=['-std=c++11'])
env_module.add_source_files(env.modules_sources,"*.cpp") # just add all cpp files to the build

it should also improve the module build for windows and mac users - as the c++ flag is restricted only to the module.

If you keep the c++11 flag only to your module, you shouldn't have a
problem with the rest of the headers of the engine..

You could commit that change to master and test it if you like :)
Hope this helps improve the module and helps other users!

I just updated the build scons file. Actually this probably only applies to linux, both mac and windows compilers are already C++11 compliant so that flag is not required.

seems to work like a charm. I will test it with the other example files


Manually sync missing check constraints

https://dluhcdigital.atlassian.net/browse/FPASF-573
Change description
We recently noticed that a number of check constraints present in our Python models were never actually present in alembic migrations, so missing from our actual database - oops :(
Let's get these into our DB ASAP so that we actually have the protection from invalid data that we expect.

[ ] Unit tests and other appropriate tests added or updated
[ ] README and other documentation has been updated / added (if needed)
[ ] Commit messages are meaningful and follow good commit message guidelines (e.g. "FS-XXXX: Add margin to nav items preventing overlapping of logo")

How to test
If manual testing is needed, give suggested testing steps
Screenshots of UI changes (if applicable)

I have manually checked prod and there are no violations


optimize: optimize serialization/deserialization of protocol codec

[ ] I have registered the PR changes.

Ⅰ. Describe what this PR did
optimize serialization/deserialization of protocol codec
Ⅱ. Does this pull request fix one issue?

fixes #6267
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report
Attention: 6 lines in your changes are missing coverage. Please review.

Comparison is base (b852a6c) 52.35% compared to head (1e9be90) 52.42%.

:exclamation: Current head 1e9be90 differs from pull request most recent head 4d8925f. Consider uploading reports for the commit 4d8925f to get more accurate results

Additional details and impacted files

@@             Coverage Diff              @@
##                2.x    #6357      +/-   ##
============================================
+ Coverage     52.35%   52.42%   +0.06%
- Complexity     5215     5221       +6
============================================
  Files           920      920
  Lines         31942    31936       -6
  Branches       3815     3810       -5
============================================
+ Hits          16724    16741      +17
+ Misses        13570    13549      -21
+ Partials       1648     1646       -2

Files
Coverage Δ

.../apache/seata/core/protocol/ProtocolConstants.java
100.00% <100.00%> (ø)

...che/seata/core/rpc/netty/v1/ProtocolV1Decoder.java
61.81% <25.00%> (-3.64%)
:arrow_down:

...seata/core/serializer/SerializerServiceLoader.java
52.63% <76.92%> (+52.63%)
:arrow_up:

... and 4 files with indirect coverage changes


add_link improvment

This PR improves the add_links function.
With this change, we use multiple dispatch instead of checking n_constraints in add_links function. This leads to a more reliable behavior of add_links function. For example, the original function throws an error when constants is given as a single-entry array.
Also, we allow using sparse matrix for links.

Codecov Report

Merging #12 (92645d3) into main (9f54e60) will increase coverage by 1.23%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #12      +/-   ##
==========================================
+ Coverage   82.09%   83.33%   +1.23%
==========================================
  Files           6        6
  Lines         363      360       -3
==========================================
+ Hits          298      300       +2
+ Misses         65       60       -5

Impacted Files
Coverage Δ

src/BlockNLPModels.jl
100.00% <100.00%> (+12.19%)
:arrow_up:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Support git diftool -d, AKA Git directory diff

When VS Code is set as the difftool for Git, make it work nicely with git difftool -d, AKA a directory diff. VS Code doesn't know how to handle that scenario well ATM.

I think now that the multi-diff editor exists, this feature could potentially be implemented by treating a directory given to --diff like a list of files for the multi-diff editor.
This would be straightforward for files which exist in both directories. For a complete implementation of a directory diff one would obviously need to handle moved files as well, which is trickier. Maybe ignoring moves and just showing a diff to an empty file in that case would be enough for a start.
From looking around the code a bit (I am not familiar with the code base), it seems like this feature could go somewhere around here. When pathsToEditors discovers that the paths are directories, read the list of files in those directories and give them to openResources, which can then create a IResourceMultiDiffEditorInput for opening the multi-diff editor.
Would such an implementation be acceptable as a contribution?

I agree with @dpward's opinion that closing all of the existing issues is overzealous, though I could see some being closed as duplicates.
git difftool --dir-diff {lhs} {rhs} is the most common way I use git difftool these days. I've eagerly awaited this functionality in VSCode. It is a delightful feature in Araxis Merge and currently the only reason I prefer it over VSCode for diff.
I also agree with @saierd's recommendation to support this with the multi diff editor. It looks like a great solution and would hit the bar for replacing competing tools in my workflow.
@saierd, I'm curious if you tried implementing your suggestion. While it may not be a goal or golden path for the VSCode team, it looks like the normal course of iteration may have sleepwalked close to a viable solution to this request. I'm hopeful that you've discovered a path forward that folks can agree on. I'd be new to VSCode development but willing to provide development bandwidth here if there is anything I can do to help move this along.


[Feature Request] Switch to disable uPnP discovery

Please can a switch be added to disable uPnP discovery and port mapping?
My use case is that I have a /29 block of IP addresses (x.y.z.88-95). My router base address is x.y.z.90 and I have allocated Sia x.y.z.91 using a 1-to-1 NAT function. In the router, uPnP mappings take precedence over 1-to-1 NAT so siad discovers its external IP as x.y.z.90 and not x.y.z.91. Turning off uPnP in the router is a global setting. I have had to resort to blocking incoming TCP:1900 (uPnP discovery) from the Sia LAN IP to disable the uPnP discovery from Sia, but it would be much better if siad had a switch to stop it.

Seems reasonable to me. The current behavior is to fallback to querying myexternalip.com; is that the behavior you want? I'm wondering if we should add a --hostname=<IP_ADDRESS> flag instead of a --disable-upnp flag. 🤔

The current fallback for me works correctly when I block the server from accessing the router's uPnP. From the gateway.log on startup:
2021/09/26 08:05:36.099168 log.go:29: STARTUP: Commit hash 985b664c9
2021/09/26 08:05:36.099194 gateway.go:404: INFO: gateway created, started logging
2021/09/26 08:06:19.890910 ip.go:97: ip successfully discovered using peers: <IP_ADDRESS>
2021/09/26 08:06:19.891071 upnp.go:135: INFO: our address is <IP_ADDRESS>:9981
2021/09/26 08:06:20.453897 upnp.go:234: INFO: successfully forwarded port 9981
2021/09/26 08:06:22.879531 ip.go:97: ip successfully discovered using peers: <IP_ADDRESS>
2021/09/26 08:36:40.937262 ip.go:97: ip successfully discovered using peers: <IP_ADDRESS>
2021/09/26 09:07:18.797680 ip.go:97: ip successfully discovered using peers: <IP_ADDRESS>

A --hostname= switch may have its drawbacks if you are behind a router with a dynamic IP.

True. Let's go with a --upnp flag, true by default.


Package does not exist

Hi everyone. Congratulations for an excellent kernel!
When using
%maven org.jgroups:jgroups:4.1.6.Final
I get
|   import org.jgroups.JChannel;
package org.jgroups does not exist
If I try to debug the download of the module, it seems that it is downloaded and it exists in
~/.ivy2/cache/org.jgroups/jgroups/bundles/jgroups-4.1.6.Final.jar
Am I missing something?
Cheers,

Hi @xiptos, thanks for the report. I fear this is another case of #60 where the guava artifact was also not being picked up by the resolver as a jar that should be added to the classpath due to it being typed as a bundle instead of jar. This is a bug on our side which needs fixing.
Until I can get around to fixing, if you don't mind switching to the pom loader which handles this case properly. The following must go in its own cell:
%%loadFromPOM
<dependency>
  <groupId>org.jgroups</groupId>
  <artifactId>jgroups</artifactId>
  <version>4.1.6.Final</version>
</dependency>

Thanks!

Thank you, @SpencerPark. Using loadFromPOM solved it, indeed.
Cheers!


Urls with accents are not processed correctly in RestructuredText format

Code
Transform from ReStructuredText to HTML.withMessageLevel(Warning) fromDirectory "dir" toDirectory "dir/html/"
Input
https://en.wikivoyage.org/wiki/Capurganá

Result in Laika

https://en.wikivoyage.org/wiki/Capurganá

Note the final a with an accent doesnt get included in the url
Result in Pandoc - just to check

https://en.wikivoyage.org/wiki/Capurganá

Note it doesnt get processed as a URL at all
Expected Result

https://en.wikivoyage.org/wiki/Capurganá

I'm afraid your expectation is not correct. Laika uses the corresponding RFC grammar for parsing URIs and unicode characters are not allowed in it and should be percent-encoded (e.g, %20).
For embedded URLs Laika simply stops when encountering the first non-URL character (in this case á). It might be better to try to implement the Pandoc behaviour instead, but that would require defining a list of accepted separator characters at the end of a URL (maybe anything that is not a character).

The Pandoc behaviour is now implemented in master.


[Bug] AutoIT Script Editor requires VCRedist

Hi
One sciTE (AoutIT Script Editor) installed via
https://scoop.sh/#/apps?q=autoit&s=0&d=1&o=true
cant run in Windows11
because of missing vcredist
https://www.autoitscript.com/trac/autoit/ticket/3798#comment:12
https://www.autoitscript.com/forum/topic/207914-i-cant-open-sciteexe/
After manual installation of all three vcredist, it works.
Probably someone should improove autoit installlation script for AutoIT

AutoIt is a fairly popular app, but no one reported this issue before.
I assume this is an upstream problem. That is, AutoIt used to have those required DLLs bundled, but they removed them in latest versions.
I just added those VCRedist packages to suggest, so that at least users have hint on how to fix the missing DLLs.


Broken cross-compilation

The release workflow seems to miss some dependencies to be able to cross-compile to e.g. freebsd.

Hello!
As stated here, I managed to craft some binary that are not affected anymore by the sqlite3 driver missing. I'd be happy to make a PR but I won't be able to produce binaries for all the platforms currently released.
As of now, the only ones that are 100% working are linux x64, linux arm and (probably) darwin x64.
Would doing an initial PR to build for these 3 platform work for you and then we will build up on it and eventually reach working binaries for other platforms (linux 32, win 32/64, freebsd, etc...)?

@Kwbmm thank you so much for your work on this! I'd love a PR!

@Kwbmm I noticed the release pipeline now returns the following: release failed after 0.08s error=git tag v1.1.2 was not made against commit b2bbba1f491eaae2c1b13edc9298252fbaf4e7c1
https://github.com/hazcod/enpass-cli/runs/2163531155?check_suite_focus=true

Yup, I forgot to create the new tag in the release workflow. Will fix that

1.2.0 is up! https://github.com/hazcod/enpass-cli/releases/tag/v1.2.0


Pdf should render inline code & unicode symbols

Inline code should be more like this

Some unicode symbols aren't getting rendered properly

Here is markdown on github for a comparison:

For 2. it seems there are only three missing unicode symbols, here is a list:
Missing character: There is no ➤ (U+27A4) in font DejaVuSerif:mode=node;script
Missing character: There is no 🎉 (U+1F389) in font DejaVuSerif:mode=node;scri
Missing character: There is no 💀 (U+1F480) in font DejaVuSerif:mode=node;scri
Missing character: There is no 💀 (U+1F480) in font DejaVuSansMono:mode=node;s
Missing character: There is no 🎉 (U+1F389) in font DejaVuSansMono/I:mode=node
Missing character: There is no 💀 (U+1F480) in font DejaVuSansMono:mode=node;s

(Obtained with cat out.log | grep "There is no" | uniq after compiling the .tex file.)
Two alternative ideas to solve this:

use \DeclareUnicodeCharacter{27A4}{{\ensuremath{\Rightarrow}}} and images for the emoji?
add even more sed replacements in the pandoc command here


Disable windows build - not supported in arktos

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:
/kind api-change
/kind bug
/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it: This disable building arktos for windows platform. It is not supported in arktos, and our implementation of vertical scaling does not support it as well. This enables make release to successfully work.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/approve

/approve

/lgtm

/lgtm


Feature/search functionality

Description
DESCRIBE YOUR PULL REQUEST'S CHANGES AND REFERENCE THE FEATURE/USERSTORY/BUG IT'S REALATED TO.  REPLACE THIS TEXT.
Type

[x] This is a bugfix.
[x] This is a new feature.
[ ] This is part of a feature.

Organization

[x] Have you linked this pull request to a Trello card?
[x] Have you named the branch in the format of feature/describe_feature_or_change OR bug/describe_bug_this_is_fixing

Review

[x] Is this a work in progress?
[x] Is this ready to be reviewed?
[x] Have you added two reviewers to this pull request?

 As a pet owner, I want to be able to search for groomers.

 create a feed of cards for each groomer

 create a search bar

 add place for user to select that groomer (button?) which will re-direct pet owner to Groomer's profile

 search by location - zip code/city, state


[docs] DateTimePicker API prop description doesn't fit in view

In https://mui.com/api/date-time-picker/ the props listing is missing description since names and default values are so wide that they push description off to empty space (except one pixel that is still visible)

Hey @aketzu, thanks for opening this issue. However, it's a duplicate of #29062. I just opened a PR with an initial work for resolving the issue, it's a work in progress. Feel free to chime in and help out. Closing this one for now.

Tried searching for duplicates but apparently that ticket doesn't mention DateTimePicker at all. Only visible in the screenshot.

It is the same problem, though. It's not something specific to the DateTime component but rather general to every table that happpens to have a large string in some cell, pushing the last column way to the right, making it not visible.


add mandatory documents for legal_entity owner

Coverage remained the same at 90.226% when pulling 461c5e6fba551718441355f03e8e1f186fd519c4 on owner_documents into e202fa3930c8db55519818aaab430a8bbc7c76de on develop.


Aura no longer applied to friendlies after the last update

Describe the bug
Something in the last update broke auras and they are no longer applied to tokens within range.  This was tested in SW5e using "Aura of Presence", effectively a paladin aura the same as in D&D5e.
To Reproduce
Steps to reproduce the behavior:

No changes to aura configuration, stopped working in the last update.

With minimal experience with SW5e and minimal time, Im not going to look into what the issue is here. If you can check the debug settings, error logs etc and provide those I can take a more indepth look


I have a request,please.

Do you have an api documentation for this project?It is too hard to use your api,but your project is  espacially good ,i really need it very much.

I was able to find everything I needed to know by looking at the unit tests or just the classes, it's rather easy to grasp.
You could also create the javadoc from source on your own, usually with a maven build which will get you source and even javadoc automatically

thanks,read classes indeed useful.we should not be lazy.


Handle Rate limiting from August APIs

Problem
With 3 locks, I got rate limited (429 error) within minutes of setup (was trying to setup 2 duplicate child bridges with the same account so 6 locks in total). I also have to restart the bridge if discovery fails at startup. Had to wait nearly an hour for August to unblock my IP to try again.
If August blocks an IP, they don't allow even the first validation SMS to go out..
Solution
Perhaps we can disable any unnecessary API calls, or delay status updates? Present homebridge-august settings are at 360 seconds refresh interval.
Alternatives

Retry calls after a few minutes
Handle these errors more gracefully with a notification on HomeBridge / ios?

Additional context
I get these errors when the IP is ratelimited.
FetchError: Status 429 (undefined): undefined
FetchError: Status 429 (undefined): undefined
[13/04/2023, 12:30:56] [August] Discover Devices: TypeError: Cannot convert undefined or null to object

@gopi-ar Are you able to submit a PR? I was thinking of removing the refresh or setting it to  refresh once a day

I have seven locks, and I get rate-limited during initial status query. Looking at the debug log, it appears to successfully pull status for six of the locks, and then gets rate-limited when it tries to pull the seventh.

Another idea: the log currently shows "FetchError: Status 429 (undefined): undefined" when August rate-limits a connection. Maybe make it read something like, "FetchError: Status 429 (Too Many Requests): The August server has rate-limited the connection. Email<EMAIL_ADDRESS>to inform them that they are breaking things."

@jlg89 If you want to submit a PR, I will approve.

@jlg89 If you want to submit a PR, I will approve.

I do various kinds of coding, and I would love to be able to submit a PR...but I haven't dug into this stuff, and reading through the code for this plugin I haven't even found where I'd start implementing what I've proposed, much less the exact syntax. In this case I'm the annoying guy who comes up with ideas, and every now and then one of them might actually be useful.
There are a number of August plugins for homebridge, but this one is hands-down the best, and I have to think that the reason for that is that you did the coding.
If it would help, I can certainly contribute some funding toward this, knowing that financial compensation, though appreciated, is generally not an incentive. Time is the thing that's at a premium for everyone, there's just not enough of it. I'm not against learning how to fish, but if you don't have time to code it yourself, you sure don't have time to teach me how to code it. :P

FWIW, I'm in the process of running this up the support flagpole at August. I finally managed to get past frontline support and escalated to the development team. Fingers crossed that they'll get back to me. I realize I may be an edge case given the number of locks at this facility, but I hope they will see the value in supporting an edge case.

Update: Since the august-api module isn't officially supported by August, but SmartThings integration is, I decided to try that route. Turns out the SmartThings integration uses the same API (login & get a code), and my seven-lock setup breaks SmartThings integration too...but now August has to help, because they officially support SmartThings. I have both August and SmartThings tech support chasing down this issue, and I've let the SmartThings folks know that the problem is almost certainly with August's servers.
I'm hopeful that this will force August to relax their rate-limiting across the board, which would fix the august-api issue as well as the SmartThings issue. But they could also whitelist the SmartThings servers and/or apply different rate-limiting parameters for SmartThings, which wouldn't help august-api. Keep your fingers crossed.

It took the SmartThings system several days to fully connect to all seven locks, but they seem to be working at this point. I haven't heard boo from SmartThings support, and August support just kept telling me that it's a SmartThings issue. I'm hoping to be able to have some dialogue with the SmartThings second-tier support folks, try to find out if they were in fact seeing 429 errors, maybe get some insight on how their system handles that...but I'm not holding my breath.
So, at the moment, if you have more than five August locks at a location, you will probably have to use the SmartThings integration, then use  https://github.com/iklein99/homebridge-smartthings (instead of homebridge-august) to pull them into homebridge.

Just an update. I went back and forth with August support and SmartThings support for weeks.
What I got from August Support:

The problem is with your device.
No, the problem is with the SmartThings app.
No, the problem is with the SmartThings system.
Well, maybe the problem is with the August servers, but SmartThings support has to contact someone at August to figure it out.

SmartThings Support said:
_Our Tier 2 Support have sought assistance directly from our Tier 3 and based on their investigation, they found out on the backend cloud logs that August is returning a StateRefreshRequest failed response. The details on this error state August Home returned an empty response.
They are recommending to reach out to August Home to investigate why the state refresh response is failing._
When I forwarded that question to August Support, that's when they said that SmartThings Tier 2/3 should contact their August Support liaison directly. And that's where things stand at this point.

Maybe helpful: https://github.com/donavanbecker/homebridge-august/issues/21#issuecomment-1650404683


If a note element is inspected, startMove is called and the interval never clears, necessitating a page reload.

Fixed this by adding a 'contextmenu' event listener on window and doing a check in stopInterval() before e.preventDefault()


Event Attendance

In conjunction with the event score can we also get either a slider bar or a dropdown menu to keep track of attendance. We can talk details at a later date if and how it will affect the overall scores.

This might be easier if we have the user link their TS UUID to the site. then all the events team needs to do is press a button to do the attendance cheek. Then allow us to double check the check before counting toward the event score.

I think a roll call on a simple google doc would be better than storing the attendance on the actual website. We can't expect everyone to link their UUID and theres no real point in storing that archaically.


haxelib server is case sensitive, but haxelib changes case

See https://github.com/haxiomic/console.hx/issues/7
The haxelib client fails to upgrade a haxelib package with a capital letter – the haxelib client tries to download the package with a lowercase but the server will only serve the file if the casing is correct
The client requests the file console,hx-0,2,12.zip but it fails because file on the server is Console,hx-0,2,12.zip
Would it be possible to disable case-sensitivity on the haxelib file server?
I don't seem to be able to change the casing of the library now it has been submitted, so it's stuck as Console.hx

Related: https://github.com/HaxeFoundation/haxelib/issues/392#issuecomment-518290028

I can't figure out why is it capitalized on the server.
haxelib.json always had lowercased name. Did you maybe upload a zip archive with the file name "Console.hx.zip"?

@RealyUniqueName yeah, when I first uploaded it’s likely I used Console.hx.zip but since then I’ve only used lowercase

Hey @RealyUniqueName, what's the situation with this bug now after your change? Am I safe to push an update to Console.hx or is there a separate server change that needs to be done first?

I don't remember any details, but looking at the change server does not need any updates.

Thanks for all your investigations @tobil4sk! This is very comprehensive and helpful
To me ideally libs are just handle case insensitive all the time

Another problem has emerged: what capitalisation should the library flag have? (the -D console.hx in the case of Console.hx). Currently it depends on the capitalisation of the library name with the -lib flag. We either need to check the haxelib.json (which potentially doesn't exist, which is allowed currently) to use the official library capitalisation or we need to specify that it should be in lowercase.

The local client issues are not relevant to the server, so I moved those details to a separate issue: #529

Very good point, thanks for flagging up


Fix apparent under-spawning of remoteHaulers

Some remotes seem to get no remoteHaulers for hundreds of ticks

Fixed! Was under-spawning at 66.666666% lol


Change subprocess.check_output option for bytes/string mismatch

# `luigi.contrib.sge.py` line 321
...

    def _track_job(self):
        while True:
            # Sleep for a little bit
            time.sleep(self.poll_time)

            # See what the job's up to
            # ASSUMPTION
            qstat_out = subprocess.check_output(['qstat'])
            sge_status = _parse_qstat_state(qstat_out, self.job_id)
...

In luigi.contrib.sge.py line 321, text=True option have to be given in subprocess.check_output(['qstat']) because _parse_qstat_state function only allow string type.
The current code always raise TypeError in _parse_qstat_state when running _track_job method.
If there is no reason qstat_out variable should be bytes type, I believe it is ideal to change subprocess.check_output(['qstat']) to subprocess.check_output(['qstat'], text=True).

Wait, I found that this bug was already discussed and even given a pull request 6 years ago (#2480).
I think it doesn't seem to be well maintained for some reason.
I'll close the issue if it doesn't get fixed for a while.


PPO agent throws exception when using exploration

I'm seeing PPO agents throwing exceptions when I try to use OU exploration noise. This occurs both with TensorForce built from latest commit cee7873 and 4.3 from PyPI.
Minimal example based on tutorial script:
import numpy as np
from tensorforce.agents import PPOAgent
from tensorforce.execution import Runner
from tensorforce.contrib.openai_gym import OpenAIGym

# Create an OpenAIgym environment
env = OpenAIGym('LunarLanderContinuous-v2', visualize=False)

# Network as list of layers
network_spec = [
    dict(type='dense', size=32, activation='tanh'),
    dict(type='dense', size=32, activation='tanh')
]

exploration = dict(
    type='ornstein_uhlenbeck',
    sigma=0.3,
    mu=0.0,
    theta=0.15
)

agent = PPOAgent(
    states=env.states,
    actions=env.actions,
    network=network_spec,
    actions_exploration=exploration,
)

# Create the runner
runner = Runner(agent=agent, environment=env)

# Callback function printing episode statistics
def episode_finished(r):
    print("Finished episode {ep} after {ts} timesteps (reward: {reward})".format(ep=r.episode, ts=r.episode_timestep,
                                                                                reward=r.episode_rewards[-1]))
    return True

# Start learning
runner.run(episodes=3000, max_episode_timesteps=200, episode_finished=episode_finished)
runner.close()

# Print statistics
print("Learning finished. Total episodes: {ep}. Average reward of last 100 episodes: {ar}.".format(
    ep=runner.episode,
    ar=np.mean(runner.episode_rewards[-100:]))
)

The exception thrown (see below) looks an awful lot like issue #399 for DDPG in continuous action spaces, possibly they have a similar cause? @AlexKuhnle you recently fixed the DDPG issue... I don't suppose this might be a quick and easy fix for you? I looked around the PG model classes to find where shapes were set to attempt my own fix, but no dice. I would dearly like to try some exploration to improve results before a deadline I have approaching! :)
Traceback (most recent call last):
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1322, in _do_call
    return fn(*args)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1307, in _run_fn
    options, feed_dict, fetch_list, target_list, run_metadata)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1409, in _call_tf_sessionrun
    run_metadata)
tensorflow.python.framework.errors_impl.UnimplementedError: sliced l-value shape [1,2] does not match r-value shape [2,2]. Automatic broadcasting not yet implemented.
	 [[Node: ppo/cond_1/ppo/cond_1/strided_slice_2/_assign = StridedSliceAssign[Index=DT_INT32, T=DT_FLOAT, _class=["loc:@ppo/initialize/action-action"], begin_mask=0, ellipsis_mask=0, end_mask=0, new_axis_mask=0, shrink_axis_mask=0, _device="/job:localhost/replica:0/task:0/device:CPU:0"](ppo/cond_1/ppo/cond_1/strided_slice_2/_assign/Switch, ppo/cond_1/strided_slice_2/stack, ppo/cond_1/strided_slice_2/stack_1, ppo/cond_1/strided_slice_2/stack_2, ppo/cond_1/ppo/cond_1/strided_slice_2/_assign/Switch_1)]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/gordon/dev/aircraft-rl/tests/test_init_ppo_agent.py", line 48, in <module>
    runner.run(episodes=3000, max_episode_timesteps=200, episode_finished=episode_finished)
  File "/home/gordon/dev/tensorforce/tensorforce/execution/runner.py", line 102, in run
    action = self.agent.act(states=state, deterministic=deterministic)
  File "/home/gordon/dev/tensorforce/tensorforce/agents/agent.py", line 148, in act
    independent=independent
  File "/home/gordon/dev/tensorforce/tensorforce/models/model.py", line 1413, in act
    fetch_list = self.monitored_session.run(fetches=fetches, feed_dict=feed_dict)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 567, in run
    run_metadata=run_metadata)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 1134, in run
    raise six.reraise(*original_exc_info)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/six.py", line 693, in reraise
    raise value
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 1119, in run
    return self._sess.run(*args, **kwargs)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 1191, in run
    run_metadata=run_metadata)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 971, in run
    return self._sess.run(*args, **kwargs)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 900, in run
    run_metadata_ptr)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1135, in _run
    feed_dict_tensor, options, run_metadata)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1316, in _do_run
    run_metadata)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1335, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.UnimplementedError: sliced l-value shape [1,2] does not match r-value shape [2,2]. Automatic broadcasting not yet implemented.
	 [[Node: ppo/cond_1/ppo/cond_1/strided_slice_2/_assign = StridedSliceAssign[Index=DT_INT32, T=DT_FLOAT, _class=["loc:@ppo/initialize/action-action"], begin_mask=0, ellipsis_mask=0, end_mask=0, new_axis_mask=0, shrink_axis_mask=0, _device="/job:localhost/replica:0/task:0/device:CPU:0"](ppo/cond_1/ppo/cond_1/strided_slice_2/_assign/Switch, ppo/cond_1/strided_slice_2/stack, ppo/cond_1/strided_slice_2/stack_1, ppo/cond_1/strided_slice_2/stack_2, ppo/cond_1/ppo/cond_1/strided_slice_2/_assign/Switch_1)]]

Caused by op 'ppo/cond_1/ppo/cond_1/strided_slice_2/_assign', defined at:
  File "/home/gordon/dev/aircraft-rl/tests/test_init_ppo_agent.py", line 31, in <module>
    actions_exploration=exploration,
  File "/home/gordon/dev/tensorforce/tensorforce/agents/ppo_agent.py", line 155, in __init__
    entropy_regularization=entropy_regularization
  File "/home/gordon/dev/tensorforce/tensorforce/agents/learning_agent.py", line 141, in __init__
    batching_capacity=batching_capacity
  File "/home/gordon/dev/tensorforce/tensorforce/agents/agent.py", line 80, in __init__
    self.model = self.initialize_model()
  File "/home/gordon/dev/tensorforce/tensorforce/agents/ppo_agent.py", line 183, in initialize_model
    likelihood_ratio_clipping=self.likelihood_ratio_clipping
  File "/home/gordon/dev/tensorforce/tensorforce/models/pg_prob_ratio_model.py", line 88, in __init__
    gae_lambda=gae_lambda
  File "/home/gordon/dev/tensorforce/tensorforce/models/pg_model.py", line 98, in __init__
    requires_deterministic=False
  File "/home/gordon/dev/tensorforce/tensorforce/models/distribution_model.py", line 90, in __init__
    discount=discount
  File "/home/gordon/dev/tensorforce/tensorforce/models/memory_model.py", line 114, in __init__
    reward_preprocessing=reward_preprocessing
  File "/home/gordon/dev/tensorforce/tensorforce/models/model.py", line 218, in __init__
    self.setup()
  File "/home/gordon/dev/tensorforce/tensorforce/models/model.py", line 293, in setup
    independent=independent
  File "/home/gordon/dev/tensorforce/tensorforce/models/memory_model.py", line 605, in create_operations
    independent=independent
  File "/home/gordon/dev/tensorforce/tensorforce/models/model.py", line 1214, in create_operations
    independent=independent
  File "/home/gordon/dev/tensorforce/tensorforce/models/model.py", line 1114, in create_act_operations
    false_fn=normal_act
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 432, in new_func
    return func(*args, **kwargs)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2072, in cond
    orig_res_f, res_f = context_f.BuildCondBranch(false_fn)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1913, in BuildCondBranch
    original_result = fn()
  File "/home/gordon/dev/tensorforce/tensorforce/models/model.py", line 1093, in normal_act
    value=self.actions_output[name]
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/ops/state_ops.py", line 284, in assign
    return ref.assign(value, name=name)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py", line 786, in assign
    shrink_axis_mask=shrink_axis_mask)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/ops/variables.py", line 693, in _strided_slice_assign
    shrink_axis_mask=shrink_axis_mask)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py", line 8267, in strided_slice_assign
    shrink_axis_mask=shrink_axis_mask, name=name)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
    op_def=op_def)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3392, in create_op
    op_def=op_def)
  File "/home/gordon/dev/aircraft-rl/venv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1718, in __init__
    self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access

UnimplementedError (see above for traceback): sliced l-value shape [1,2] does not match r-value shape [2,2]. Automatic broadcasting not yet implemented.
	 [[Node: ppo/cond_1/ppo/cond_1/strided_slice_2/_assign = StridedSliceAssign[Index=DT_INT32, T=DT_FLOAT, _class=["loc:@ppo/initialize/action-action"], begin_mask=0, ellipsis_mask=0, end_mask=0, new_axis_mask=0, shrink_axis_mask=0, _device="/job:localhost/replica:0/task:0/device:CPU:0"](ppo/cond_1/ppo/cond_1/strided_slice_2/_assign/Switch, ppo/cond_1/strided_slice_2/stack, ppo/cond_1/strided_slice_2/stack_1, ppo/cond_1/strided_slice_2/stack_2, ppo/cond_1/ppo/cond_1/strided_slice_2/_assign/Switch_1)]]

The latest commit should fix this issue. The shape handling for exploration was actually in general quite problematic / inconsistent.

Confirmed working, thanks again!


Tests for process variables are added

Related to https://github.com/Activiti/Activiti/issues/2465

@salaboy
I can' t really test everything locally, because very often, in most cases I have:
21:10:29.554 [main] DEBUG org.springframework.test.context.cache - Spring test ApplicationContext cache statistics: [DefaultContextCache@5dfe23e8 size = 3, maxSize = 32, parentContextCount = 0, hitCount = 9, missCount = 3]
21:10:29.608 [main] DEBUG net.thucydides.core.steps.StepInterceptor - STARTING STEP: RuntimeLifecycleActions.checkServicesHealth - authenticateUser
[AuthenticationService#authenticate] ---> POST http://activiti-keycloak.jx-staging.<IP_ADDRESS>.nip.io/auth/realms/activiti/protocol/openid-connect/token HTTP/1.1
[AuthenticationService#authenticate] Content-Type: application/x-www-form-urlencoded; charset=UTF-8
[AuthenticationService#authenticate] Content-Length: 74
[AuthenticationService#authenticate]
[AuthenticationService#authenticate] client_id=activiti&grant_type=password&username=testuser&password=password
[AuthenticationService#authenticate] ---> END HTTP (74-byte body)
[AuthenticationService#authenticate] <--- ERROR SocketTimeoutException: connect timed out (10041ms)
[AuthenticationService#authenticate] java.net.SocketTimeoutException: connect timed out

@CTI777 we will test that in the cluster.. it seems that that environment is down for some reason


Corrected grammar in the login screen

Grammar correction
Fixes #1783
Description (required)
Fixes #1783
Changed the phrase "Login to your account" to "Log in to your account" in the login screen.
Tests performed (required)
Tested on device Motorola Moto G(5) (Android 7.0, API 24), with build variant betaDebug.
Screenshots showing what changed (optional)
https://drive.google.com/open?id=0B1FTrr-5uV6WWEtfbVdrUXk5bWpFVi1GMkNBVzQxQnRZQ25n

Codecov Report

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

@@          Coverage Diff           @@
##           master   #1788   +/-   ##
======================================
  Coverage    3.63%   3.63%
======================================
  Files         182     182
  Lines        9158    9158
  Branches      796     796
======================================
  Hits          333     333
  Misses       8803    8803
  Partials       22      22

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 9118733...136945d. Read the comment docs.

Thanks!


Select: hide clear icon when value is null

Please make sure these boxes are checked before submitting your PR, thank you!
Fixes #11451

[ ] Make sure you follow Element's contributing guide (中文 | English | Español).
[ ] Make sure you are merging your commits to dev branch.
[ ] Add some descriptions and refer relative issues for you PR.

Can you please fix it for el-input as well?


Add hola mundo as a comment

🤖💭❓ Codegen has a follow-up question: • View logs ↗
To add the comment hola mundo as requested, could you please specify the project, file, and the exact location (preferably the line number) within the file where the comment should be inserted? Also, kindly confirm the programming language being used, as the syntax for comments varies among languages. For example, Python uses #, JavaScript uses //, Java uses // or /* for longer comments, etc.
⬇ 💬 'Quote reply' to this comment below
Click the three dots in the top right -> quote reply, then Codegen will continue solving!

add it to final.py in the top of the file


GoShimmer nodes awareness program (A)

Goal Title
Priority: (A)
Strengthen the GoShimmer network by inviting other members to set up GoShimmer nodes.
Key results

[ ] Define the strategy

[ ] Create a collection of guides, tools and other materials

[ ] Have 100 nodes running

Team
GoShimmer - IOTA Experience Team
Contributors
X-Team members
IOTA Foundation member
@antonionardella  - Antonio Nardella -<EMAIL_ADDRESS>Additional Information

IOTA Blog Post
Documentation
Repository

Governance
Please use the following emoji reactions in this post to indicate:
:+1: - Participating
:heavy_plus_sign: - Add my vote

GoShimmer awareness program set up will be published in the following document:
https://hackmd.io/@IOTA-X-TEAM/SJHZ5CB5L

I've created a testing branch for ubuntu 20.04 on the RPI4 of @nuriel77's playbook.
There is actually a bug in pip and virtualenv that blocks the use of ansible with ubuntu 20.04.
@nuriel77 fixed this in the hornet-playbook.
Will apply this fix to my testing branch.


I can't add python-dotenv in Dockerfile

I'm trying to add python-dotenv in the dockerfile but the package is not been installed.
I added these code below in the dockerfile and when I run pip freeze in the container bash I can't observe python-dotenv package.
&& pip install python-dotenv \
A part of pip freeze result
pyrsistent==0.15.5
pysftp==0.2.9
python-daemon==2.1.2
python-dateutil==2.8.1
python-editor==1.0.4
python3-openid==3.1.0
pytz==2019.3
pytzdata==2019.3
PyYAML==5.1.2
redis==3.2.0

@thiagop7 could you share the entire Dockerfile?


Full run of plugin unit tests gives different result than single-test runs.

For clarification, only tests that rely upon classes being loaded via plugin.xml are affected.
Repro:

Load up the intellij-haxe plugin project.
Run->Haxe tests.  Note output.
In the project window, right click on a test, such as testSrc/com.intellij.plugins.haxe/lang/parser/declarations/ImportDeclarationTest.  Select "Run ImportDeclarationTest" (or an appropriate name).  Note different output.

Analysis:
The issue is that the plugin.xml file is NOT read when a single test suite is run.  The symptom is that single-instance runs give text comparison failures when inspecting PsiElements.  The HaxeAstFactory is loaded via the plugin.xml (in src/META-INF/) when a full test suite is run. Its role is to instantiate AST/PSI entries of the JavaPsiToken type (sub-class of PsiElement).  When a single suite is run, the HaxeAstFactory is NOT loaded, thus using a default AstFactory which creates PsiElement types.
NOTE: This has always been the case.  However, the HaxeAstFactory and the default factory both created PsiElement objects, so the text comparison (using toString() output) was identical.  However, the fact that plugin.xml wasn't being properly loaded went undetected.
This could be bandaged over by creating a "HaxePsiElement" object deriving from JavaPsiElement, and overriding toString(), but that just hides the error, and really is not an acceptable solution.
The proper fix is to figure out why the UsefulTestCase object loads plugin.xml when run from the top level, but not from sub-levels, and why an error isn't issued when plugin.xml is missing.
TIR: STB-7738

Fixed.


[6.x] Throw exception on empty collection

When someone passes an empty collection of notifiables to the assertSentTo or assertNotSentTo methods of a NotificationFake then the test will be marked as risky because no assertions were made. It seems to me that if you want to perform the assertion that you'd always want to make sure that you're passing at least one notifiable. Throwing an exception on an empty collection will make it more obvious why the test isn't run.
Fixes https://github.com/laravel/framework/issues/31459

maybe PHPUnit::assertNotCount(0, $notifiable, 'No notifiable given.'); would be nicer

@SjorsO you don't want to mark these as failing tests. This should indicate that the provided data for the test to run is incorrect.


#311 - fix nullpointer

fixes #311

Current coverage is 41.75%

Merging #319 into master will increase coverage by +0.03% as of 5bd0d6c

@@            master    #319   diff @@
======================================
  Files          121     121
  Stmts         2490    2493     +3
  Branches       207     208     +1
  Methods          0       0
======================================
+ Hit           1039    1041     +2
- Partial         39      40     +1
  Missed        1412    1412

Review entire Coverage Diff as of 5bd0d6c

Powered by Codecov. Updated on successful CI builds.


Cannot find module '@napi-rs/canvas-android-arm-eabi'

Used:
$ yarn add @napi-rs/canvas-android-arm-eabi
yarn add v1.22.19
[1/4] Resolving packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@napi-rs%2fcanvas-android-arm-eabi: Not found".
info If you think this is a bug, please open a bug report with the information provided in "/data/data/com.termux/files/home/cs/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Error:
/data/data/com.termux/files/home/cs/node_modules/@napi-rs/canvas/js-binding.js:216
    throw loadError
    ^

Error: Cannot find module '@napi-rs/canvas-android-arm-eabi'

@spelsinx it doesn't support android armv7 at this moment

:(


[Suggestion] Make ValidationError public

Bench.Net 0.9.6,  BenchmarkDotNet.Validators.ValidationError is declared as internal.
As a result, custom validators had to reimplement the IValidationError to report validation errors.

There was no need for the interface, sorry for that. I have removed it and make the class public.

@adamsitnik

There was no need for the interface, sorry for that. I have removed it.

Will not be better to maintain same style across all messages (validation errors, analyser warnings etc)?
As for me all of them should be either an interface or a class.

@ig-sinicyn Sure. I plan some refactoring for what is public/internal for next version, will take care of this too.


move chunks-pin endpoints from debugapi to api

This PR moves chunks-pin endpoints from debugapi to api as per #669.
fixes #669

Is there a master list of changes like this that break existing (debug) API users?  My app was using /chunks-pin/{address} and all of a sudden it's getting back the following:
{
"message": "Not Found",
"code": 404
}
A search through the closed pull requests found this, but most mere mortals might not be so lucky...

@ldeffenb I am sorry for this change to cause trouble and your suggestion is very good. We should have this type of documentation and also it would be even more useful in this case to have a deprecation error instead of just not found. I think that this will be even more import when we pass the beta stage of development. Maybe we should version the debugapi as well as the main api.


Firebase.update failed: First argument contains an invalid key ($key) in path /$key. Keys must be non-empty strings and can't contain ".", "#", "$",

  upDateMeetUp(meetup: Meetup): Observable < any > | Promise < any > | any {
    console.log(meetup.$key);
    return this.meetups.update(meetup.$key, meetup);
  }

I don't know what cause this as key and path are right.

I konw why..... I didn't remove the $key..

@jerry-i , Please can u explain by removing the $key. Thanks

delete (meetup.$key)

Do you mean you did not delete $key in meetup? WHy is this needed?

me too :(

@jerry-i @BernardMarieOnzo I see only one reason: there is $key property in the firebase db in each item of the list. So, what should firebase do when somebody is trying to update $key prop? This can be the reason.

only because the second param will overwrite all prop but just not this $key, $key is just firebase index.

Oh I just re-read the error message:

Keys must be non-empty strings and can't contain ".", "#", "$"

I just realized that this is about keys of object which I pass as 2-nd argument =) I accidently thought that it is about key which I pass as 1st argument.

const $key = obj.$key
delete obj.$key
update($key, object)

Ye ye. I understand how to delete prop :) :+1:
I just surprised that I understood error message wrong.

const $key = obj.$key
delete obj.$key
update($key, object)
I do not understand, please help.

@johnjiea What do you not understand?
You have err in your code:
const $key = obj.$key
delete obj.$key
update($key, object); // <--- update($key, obj);

@jerry-i thanks it worked for me.


icholy/digest auth failed where curl --digest succeeds

As the title states, the icholy/digest auth fails where a curl --digest command succeeds.
The curl command with login removed:
curl -v -X PUT -H 'X-CSRF: x' -H "Accept: application/json" --data 'value=true' --digest 'http://***:***@<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state/'

Here is the Authorization header from curl's second, successful request with username and response removed:
Authorization: Digest username="*****", realm="DLI LPC92601002528", nonce="G/QIGjhJANuvwqcO", uri="/restapi/relay/outlets/=0,1,2/state/", cnonce="NjUxNzA5ZDQ0OGI1NDRlNzFmYTRiYTllNzJlMDdlYjM=", nc=00000001, qop=auth, response="************", opaque="MyhQh+WfWI37Ou00", algorithm="MD5"

Now with icholy/digest, using the README example to set username and password:
client := &http.Client{
		Transport: &digest.Transport{
			Username:      "*********",
			Password:      "**********",
		},
	}
	req, err := http.NewRequest(http.MethodPut,
		"http://<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state",
                  strings.NewReader("value=true"))
	if err != nil { return }
	req.Header.Add("Accept", "application/json")
	req.Header["X-CSRF"] = []string{"x"}
	res, _ := client.Do(req)
	fmt.Println(res)

And here is the request from the digest.Transport's second request to the server with the digest username and response removed:
&{PUT http://<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state HTTP/1.1 1 1 map[Accept:[application/json] Authorization:[Digest username="**********", realm="DLI LPC92601002528", nonce="mn+ExiOvWOnZuwHN", uri="/restapi/relay/outlets/=0,1,2/state", response=***************", algorithm=MD5, cnonce="6d00de0791f29f8c509d218b83680979", opque="MOJIFcQn52wT0EYX", qop=auth, nc=00000001] X-CSRF:[x]] {0xc000282060} 0x123ef80 10 [] false <IP_ADDRESS> map[] map[] <nil> map[]   <nil> <nil> <nil> 0xc0000ba008}}

This request gives a 401 response with a new Www-Authenticate header.
To rule out the request body being the issue, the same curl above with garbage --data still authenticates with a 207 response.
Please let me know if there is any more information I can provide. I will update this as I explore the issue.
Edit: here is an example 401 response from the server via curl:
< HTTP/1.1 401 Unauthorized
< X-Content-Type-Options: nosniff
< Connection: close
< Vary: origin, accept, prefer
< Cache-Control: max-age=0, private, must-revalidate
< Content-Security-Policy: frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'
< X-Frame-Options: sameorigin
< Accept-Ranges: dli-depth
< WWW-Authenticate: Digest algorithm="MD5", opaque="mNLjyiEsUhWpGkNB", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="3U07AmOG2+OW9XOq"
< Content-Type: application/json

and the same via golang:
 &{401 Unauthorized 401 HTTP/1.1 1 1 map[Accept-Ranges:[dli-depth] Cache-Control:[max-age=0, private, must-revalidate] Content-Security-Policy:[frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'] Content-Type:[application/json] Vary:[origin, accept, prefer] Www-Authenticate:[Digest algorithm="MD5", opaque="MOJIFcQn52wT0EYX", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="mn+ExiOvWOnZuwHN"] X-Content-Type-Options:[nosniff] X-Frame-Options:[sameorigin]] 0xc000024080 -1 [] true false map[] 0xc0000f0100 <nil>}

I suspect this endpoint requires auth-int QOP (quality of protection) for PUT/POST requests which this package doesn't implement. The challenge you posted advertises that it supports both auth and auth-int (this parameter: qop="auth,auth-int"). So the library chooses to use auth.
WWW-Authenticate: Digest algorithm="MD5", opaque="mNLjyiEsUhWpGkNB", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="3U07AmOG2+OW9XOq"

You can check which QOP curl is using by looking at the request headers in wireshark or a similar tool. I'm reading the docs and I don't see an explicit requirement for auth-int, but that doesn't really mean anything. They're technically not RFC compliant by not accepting auth qop if they the challenge advertises support for it. Let me know what you find out.

I suspect this endpoint requires auth-int QOP (quality of protection) for PUT/POST requests which this package doesn't implement. The challenge you posted advertises that it supports both auth and auth-int (this parameter: qop="auth,auth-int"). So the library chooses to use auth.
WWW-Authenticate: Digest algorithm="MD5", opaque="mNLjyiEsUhWpGkNB", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="3U07AmOG2+OW9XOq"

You can check which QOP curl is using by looking at the request headers in wireshark or a similar tool. I'm reading the docs and I don't see an explicit requirement for auth-int, but that doesn't really mean anything. They're technically not RFC compliant by not accepting auth qop if they the challenge advertises support for it. Let me know what you find out.

Thanks for the quick reply! And you found the DLI docs!
I did notice curl has qop="auth" in the Authorization header. From rfc2617, this means curl is applying the "auth" level of quality of protection, so I assumed auth was acceptable.

Thanks for the quick reply! And you found the DLI docs!
I did notice curl has qop="auth" in the Authorization header. From rfc2617, this means curl is applying the "auth" level of quality of protection, so I assumed auth was acceptable.

I used tcpdump to get the HTTP headers. Here is the output:
Host: <IP_ADDRESS>
Authorization: Digest username="eric", realm="DLI LPC92601002528", nonce="TWGyyYf2UHIYkXBN", uri="/restapi/relay/outlets/=0,1,2/state/", cnonce="YzExYzc1ZWFhYzJiNGYwNDVhODJiZGQzZDY1YWM3NTM=", nc=00000001, qop=auth, response="7f21a1a50722d6f63dbee07a585d5fcb", opaque="bSVu23yCdV7mrPqM", algorithm="MD5"
User-Agent: curl/7.54.0
X-CSRF: x
Accept: application/json
Content-Length: 11
Content-Type: application/x-www-form-urlencoded

value=false

I did notice the content is urlencoded. I'll be looking into this now

I used tcpdump to get the HTTP headers. Here is the output:
Host: <IP_ADDRESS>
Authorization: Digest username="eric", realm="DLI LPC92601002528", nonce="TWGyyYf2UHIYkXBN", uri="/restapi/relay/outlets/=0,1,2/state/", cnonce="YzExYzc1ZWFhYzJiNGYwNDVhODJiZGQzZDY1YWM3NTM=", nc=00000001, qop=auth, response="7f21a1a50722d6f63dbee07a585d5fcb", opaque="bSVu23yCdV7mrPqM", algorithm="MD5"
User-Agent: curl/7.54.0
X-CSRF: x
Accept: application/json
Content-Length: 11
Content-Type: application/x-www-form-urlencoded

value=false

I did notice the content is urlencoded. I'll be looking into this now

@elwhite321 in that case, this sounds like a bug on my end. Would you be able to give me an unredacted exchange (pcap or plaintext) of the request/response headers curl successfully authenticates with? I imagine you can temporarily switch the username/password for the endpoint.

@elwhite321 in that case, this sounds like a bug on my end. Would you be able to give me an unredacted exchange (pcap or plaintext) of the request/response headers curl successfully authenticates with? I imagine you can temporarily switch the username/password for the endpoint.

Yes, no problem!
Here is the curl command:
curl -v -X PUT -H 'X-CSRF: x' -H "Accept: application/json" --data 'value=false' --digest 'http://icholy:digest@<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state/'
And the full output:
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#0)
* Server auth using Digest with user 'icholy'
> PUT /restapi/relay/outlets/=0,1,2/state/ HTTP/1.1
> Host: <IP_ADDRESS>
> User-Agent: curl/7.54.0
> X-CSRF: x
> Accept: application/json
> Content-Length: 0
> Content-Type: application/x-www-form-urlencoded
>
< HTTP/1.1 401 Unauthorized
< X-Content-Type-Options: nosniff
< Connection: close
< Vary: origin, accept, prefer
< Cache-Control: max-age=0, private, must-revalidate
< Content-Security-Policy: frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'
< X-Frame-Options: sameorigin
< Accept-Ranges: dli-depth
< WWW-Authenticate: Digest algorithm="MD5", opaque="wRtIEgb/X9z7XXAT", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="NZAeQHhoCNifFjFa"
< Content-Type: application/json
<
* Closing connection 0
* Issue another request to this URL: 'http://icholy:digest@<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state/'
* Hostname <IP_ADDRESS> was found in DNS cache
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#1)
* Server auth using Digest with user 'icholy'
> PUT /restapi/relay/outlets/=0,1,2/state/ HTTP/1.1
> Host: <IP_ADDRESS>
> Authorization: Digest username="icholy", realm="DLI LPC92601002528", nonce="NZAeQHhoCNifFjFa", uri="/restapi/relay/outlets/=0,1,2/state/", cnonce="MzI1MWE0MDI1MzEyOWQ2M2U1YjM1OGZiNWMwZWNiYjA=", nc=00000001, qop=auth, response="9e0d2169b41cbb504a58995e08b10eb1", opaque="wRtIEgb/X9z7XXAT", algorithm="MD5"
> User-Agent: curl/7.54.0
> X-CSRF: x
> Accept: application/json
> Content-Length: 11
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 11 out of 11 bytes
< HTTP/1.1 207 Responses from multiple resources follow
< X-Content-Type-Options: nosniff
< Connection: close
< Vary: origin, accept, prefer
< Cache-Control: max-age=0, private, must-revalidate
< Link: </restapi/relay/outlets/0/state/>; rel="item"
< Link: </restapi/relay/outlets/1/state/>; rel="item"
< Link: </restapi/relay/outlets/2/state/>; rel="item"
< Content-Security-Policy: frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'
< X-Frame-Options: sameorigin
< Accept-Ranges: dli-depth
<
* Closing connection 1

I updated my golang code to reflect as well:
client := &http.Client{
		Transport: &digest.Transport{
			Username:      "icholy",
			Password:      "digest",
		},
	}
	req, err := http.NewRequest(http.MethodPut,
		"http://<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state?value=true", strings.NewReader("value=true"))
	if err != nil { return }
	req.Header.Add("Accept", "application/json")
	req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
	req.Header["X-CSRF"] = []string{"x"}
	res, _ := client.Do(req)
	fmt.Println(res)

The first RoundTrip from the Transport, request and then response:
 &{PUT http://<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state?value=true HTTP/1.1 1 1
map[Accept:[application/json] Content-Type:[application/x-www-form-urlencoded] X-CSRF:[x]]
{0xc00012a2e0} 0x123ef80 10 [] false <IP_ADDRESS> map[] map[] <nil> map[]   <nil> <nil> <nil> 0xc000136008}

 &{401 Unauthorized 401 HTTP/1.1 1 1 map[Accept-Ranges:[dli-depth] Cache-Control:[max-age=0, private, must-revalidate] Content-Security-Policy:[frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'] Content-Type:[application/json] Vary:[origin, accept, prefer]
Www-Authenticate:[Digest algorithm="MD5", opaque="YVjDroJeBJTjdrh/", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="jiviS2HZ+nV2E6yN"] X-Content-Type-Options:[nosniff] X-Frame-Options:[sameorigin]] 0xc00021c040 -1 [] true false map[] 0xc00016e100 <nil>}

And finally the second trip:
&{PUT http://<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state?value=true HTTP/1.1 1 1 map[Accept:[application/json] Authorization:[Digest username="icholy", realm="DLI LPC92601002528", nonce="jiviS2HZ+nV2E6yN", uri="/restapi/relay/outlets/=0,1,2/state?value=true", response="23c561a1e31a475a02ad4d49c84d840c", algorithm=MD5, cnonce="98bf1788977409f4900290f52bb4fe8a", opque="YVjDroJeBJTjdrh/", qop=auth, nc=00000001] Content-Type:[application/x-www-form-urlencoded] X-CSRF:[x]] {0xc0000aa0e0} 0x123ef80 10 [] false <IP_ADDRESS> map[] map[] <nil> map[]   <nil> <nil> <nil> 0xc000136008}

 &{401 Unauthorized 401 HTTP/1.1 1 1 map[Accept-Ranges:[dli-depth] Cache-Control:[max-age=0, private, must-revalidate] Content-Security-Policy:[frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'] Content-Type:[application/json] Vary:[origin, accept, prefer] Www-Authenticate:[Digest algorithm="MD5", opaque="3yIG+X8Mi/8wOL9m", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="P64iOB3eNNOHJVjS"] X-Content-Type-Options:[nosniff] X-Frame-Options:[sameorigin]] 0xc0000980c0 -1 [] true false map[] 0xc0000c4000 <nil>}

Yes, no problem!
Here is the curl command:
curl -v -X PUT -H 'X-CSRF: x' -H "Accept: application/json" --data 'value=false' --digest 'http://icholy:digest@<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state/'
And the full output:
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#0)
* Server auth using Digest with user 'icholy'
> PUT /restapi/relay/outlets/=0,1,2/state/ HTTP/1.1
> Host: <IP_ADDRESS>
> User-Agent: curl/7.54.0
> X-CSRF: x
> Accept: application/json
> Content-Length: 0
> Content-Type: application/x-www-form-urlencoded
>
< HTTP/1.1 401 Unauthorized
< X-Content-Type-Options: nosniff
< Connection: close
< Vary: origin, accept, prefer
< Cache-Control: max-age=0, private, must-revalidate
< Content-Security-Policy: frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'
< X-Frame-Options: sameorigin
< Accept-Ranges: dli-depth
< WWW-Authenticate: Digest algorithm="MD5", opaque="wRtIEgb/X9z7XXAT", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="NZAeQHhoCNifFjFa"
< Content-Type: application/json
<
* Closing connection 0
* Issue another request to this URL: 'http://icholy:digest@<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state/'
* Hostname <IP_ADDRESS> was found in DNS cache
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#1)
* Server auth using Digest with user 'icholy'
> PUT /restapi/relay/outlets/=0,1,2/state/ HTTP/1.1
> Host: <IP_ADDRESS>
> Authorization: Digest username="icholy", realm="DLI LPC92601002528", nonce="NZAeQHhoCNifFjFa", uri="/restapi/relay/outlets/=0,1,2/state/", cnonce="MzI1MWE0MDI1MzEyOWQ2M2U1YjM1OGZiNWMwZWNiYjA=", nc=00000001, qop=auth, response="9e0d2169b41cbb504a58995e08b10eb1", opaque="wRtIEgb/X9z7XXAT", algorithm="MD5"
> User-Agent: curl/7.54.0
> X-CSRF: x
> Accept: application/json
> Content-Length: 11
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 11 out of 11 bytes
< HTTP/1.1 207 Responses from multiple resources follow
< X-Content-Type-Options: nosniff
< Connection: close
< Vary: origin, accept, prefer
< Cache-Control: max-age=0, private, must-revalidate
< Link: </restapi/relay/outlets/0/state/>; rel="item"
< Link: </restapi/relay/outlets/1/state/>; rel="item"
< Link: </restapi/relay/outlets/2/state/>; rel="item"
< Content-Security-Policy: frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'
< X-Frame-Options: sameorigin
< Accept-Ranges: dli-depth
<
* Closing connection 1

I updated my golang code to reflect as well:
client := &http.Client{
		Transport: &digest.Transport{
			Username:      "icholy",
			Password:      "digest",
		},
	}
	req, err := http.NewRequest(http.MethodPut,
		"http://<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state?value=true", strings.NewReader("value=true"))
	if err != nil { return }
	req.Header.Add("Accept", "application/json")
	req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
	req.Header["X-CSRF"] = []string{"x"}
	res, _ := client.Do(req)
	fmt.Println(res)

The first RoundTrip from the Transport, request and then response:
 &{PUT http://<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state?value=true HTTP/1.1 1 1
map[Accept:[application/json] Content-Type:[application/x-www-form-urlencoded] X-CSRF:[x]]
{0xc00012a2e0} 0x123ef80 10 [] false <IP_ADDRESS> map[] map[] <nil> map[]   <nil> <nil> <nil> 0xc000136008}

 &{401 Unauthorized 401 HTTP/1.1 1 1 map[Accept-Ranges:[dli-depth] Cache-Control:[max-age=0, private, must-revalidate] Content-Security-Policy:[frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'] Content-Type:[application/json] Vary:[origin, accept, prefer]
Www-Authenticate:[Digest algorithm="MD5", opaque="YVjDroJeBJTjdrh/", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="jiviS2HZ+nV2E6yN"] X-Content-Type-Options:[nosniff] X-Frame-Options:[sameorigin]] 0xc00021c040 -1 [] true false map[] 0xc00016e100 <nil>}

And finally the second trip:
&{PUT http://<IP_ADDRESS>/restapi/relay/outlets/=0,1,2/state?value=true HTTP/1.1 1 1 map[Accept:[application/json] Authorization:[Digest username="icholy", realm="DLI LPC92601002528", nonce="jiviS2HZ+nV2E6yN", uri="/restapi/relay/outlets/=0,1,2/state?value=true", response="23c561a1e31a475a02ad4d49c84d840c", algorithm=MD5, cnonce="98bf1788977409f4900290f52bb4fe8a", opque="YVjDroJeBJTjdrh/", qop=auth, nc=00000001] Content-Type:[application/x-www-form-urlencoded] X-CSRF:[x]] {0xc0000aa0e0} 0x123ef80 10 [] false <IP_ADDRESS> map[] map[] <nil> map[]   <nil> <nil> <nil> 0xc000136008}

 &{401 Unauthorized 401 HTTP/1.1 1 1 map[Accept-Ranges:[dli-depth] Cache-Control:[max-age=0, private, must-revalidate] Content-Security-Policy:[frame-ancestors 'self';default-src 'self';media-src 'none';img-src 'self' data:;object-src 'none'] Content-Type:[application/json] Vary:[origin, accept, prefer] Www-Authenticate:[Digest algorithm="MD5", opaque="3yIG+X8Mi/8wOL9m", qop="auth,auth-int", realm="DLI LPC92601002528", nonce="P64iOB3eNNOHJVjS"] X-Content-Type-Options:[nosniff] X-Frame-Options:[sameorigin]] 0xc0000980c0 -1 [] true false map[] 0xc0000c4000 <nil>}

I wrote a test comparing the curl credentials against my code's credentials for the same challenge. Strange thing is, it passes.
https://github.com/icholy/digest/blob/8897bb982d819008dba9a9c544d7a179ee4ff23a/digest_test.go#L106-L124
The only difference I can see is the order of the parameters in the formatted version:
# curl
Digest username="icholy", realm="DLI LPC92601002528", nonce="NZAeQHhoCNifFjFa", uri="/restapi/relay/outlets/=0,1,2/state/", cnonce="MzI1MWE0MDI1MzEyOWQ2M2U1YjM1OGZiNWMwZWNiYjA=", nc=00000001, qop=auth, response="9e0d2169b41cbb504a58995e08b10eb1", opaque="wRtIEgb/X9z7XXAT", algorithm="MD5"
# icholy/digest
Digest username="icholy", realm="DLI LPC92601002528", nonce="NZAeQHhoCNifFjFa", uri="/restapi/relay/outlets/=0,1,2/state/", response="9e0d2169b41cbb504a58995e08b10eb1", algorithm=MD5, cnonce="MzI1MWE0MDI1MzEyOWQ2M2U1YjM1OGZiNWMwZWNiYjA=", opque="wRtIEgb/X9z7XXAT", qop=auth, nc=00000001

Perhaps the DLI server's digest implementation is dependent on curls specific parameter ordering. To test this, I've altered the credential formatting in the issue2 branch

I wrote a test comparing the curl credentials against my code's credentials for the same challenge. Strange thing is, it passes.
https://github.com/icholy/digest/blob/8897bb982d819008dba9a9c544d7a179ee4ff23a/digest_test.go#L106-L124
The only difference I can see is the order of the parameters in the formatted version:
# curl
Digest username="icholy", realm="DLI LPC92601002528", nonce="NZAeQHhoCNifFjFa", uri="/restapi/relay/outlets/=0,1,2/state/", cnonce="MzI1MWE0MDI1MzEyOWQ2M2U1YjM1OGZiNWMwZWNiYjA=", nc=00000001, qop=auth, response="9e0d2169b41cbb504a58995e08b10eb1", opaque="wRtIEgb/X9z7XXAT", algorithm="MD5"
# icholy/digest
Digest username="icholy", realm="DLI LPC92601002528", nonce="NZAeQHhoCNifFjFa", uri="/restapi/relay/outlets/=0,1,2/state/", response="9e0d2169b41cbb504a58995e08b10eb1", algorithm=MD5, cnonce="MzI1MWE0MDI1MzEyOWQ2M2U1YjM1OGZiNWMwZWNiYjA=", opque="wRtIEgb/X9z7XXAT", qop=auth, nc=00000001

Perhaps the DLI server's digest implementation is dependent on curls specific parameter ordering. To test this, I've altered the credential formatting in the issue2 branch

Found the problem: https://github.com/icholy/digest/commit/88bd65c5a0aab9dfabd9c005e582d057368fd0e3 I tagged a new v0.1.9 release.

Found the problem: https://github.com/icholy/digest/commit/88bd65c5a0aab9dfabd9c005e582d057368fd0e3 I tagged a new v0.1.9 release.

I can't believe I didn't catch this problem. Thank you for the help! It is working properly now.

I can't believe I didn't catch this problem. Thank you for the help! It is working properly now.

Please let me know if you would ever like a hand with this project!

Please let me know if you would ever like a hand with this project!

Lol I feel the same way.

Lol I feel the same way.


how to add billing address upon checkout

hi, need help. How to add billing address upon checkout

Hello @peteroleeman
As of today, Shopify GraphQL only accepts the shippingAddress while checking out.
So, if your store needs the billing address too, you can make them required in the CheckoutPage of the Shopify itself.

i see, thank you    在 2024年1月9日 星期二 下午03:11:58 [GMT+8]， Sujan @.***> 寫道：
Hello @peteroleeman
As of today, Shopify GraphQL only accepts the shippingAddress while checking out.
So, if your store needs the billing address too, you can make them required in the CheckoutPage of the Shopify itself.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>