iOS: Notification doesn't appear if my app is in foreground but works if it's in background

Using APNS Auth key instead of certificates.

React Native Project

xcode: 11.3.1

pods:

pod 'RNFirebase', :path => '../node_modules/react-native-firebase/ios'
pod 'Firebase/Analytics'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
Here's my AppDelegate:
//
//  AppDelegate.swift
//  QuestionPro
//
//  Created by Jignesh on 05/07/18.
//  Copyright © 2018 Facebook. All rights reserved.
//

import Foundation
import UIKit
import AVFoundation
import CoreLocation
import CoreMotion
import Firebase
import Siren
import UserNotifications
import FirebaseInstanceID

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
  let gcmMessageIDKey = "gcm.message_id"

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    FirebaseApp.configure()
    self.initializeFCM(application)
    return true
  }

  private func initializeFCM(_ application: UIApplication)
  {
      print("initializeFCM")

      if #available(iOS 10.0, *)
      {
          UNUserNotificationCenter.current().delegate = self
          UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (accepted, error) in
           !accepted ? print("Notification access denied.") : print("Notification access accepted.")
          }
      } else {
          let notificationTypes: UIUserNotificationType = [.alert,.badge, .sound]
          let settings = UIUserNotificationSettings(types: notificationTypes, categories: nil);
          application.registerUserNotificationSettings(settings);
      }
      Messaging.messaging().delegate = self
     application.registerForRemoteNotifications();
  }

  func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    print("DEVICE TOKEN = \(deviceToken)")
    Messaging.messaging().apnsToken = deviceToken
  }

  func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
    print(error)
  }

  func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
    if let messageID = userInfo[(gcmMessageIDKey as AnyObject) as! NSObject] {
        print("Message ID: \(messageID)")
    }
    print(userInfo)
  }

  func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
                   fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    if let messageID = userInfo[gcmMessageIDKey] {
      print("Message ID: \(messageID)")
    }
    print(userInfo)

    completionHandler(UIBackgroundFetchResult.newData)
  }

}

extension AppDelegate : MessagingDelegate {
  // [START refresh_token]
  func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
    print("Firebase registration token: \(fcmToken)")
    Messaging.messaging().shouldEstablishDirectChannel = true

    let dataDict:[String: String] = ["token": fcmToken]
    NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)
  }

  func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
    print("Received data message: \(remoteMessage.appData)")
  }
}

@available(iOS 10.0, *)
extension AppDelegate: UNUserNotificationCenterDelegate {

  // Receive displayed notifications for iOS 10 devices.
  func userNotificationCenter(_ center: UNUserNotificationCenter,
  willPresent notification: UNNotification,
  withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    let userInfo = notification.request.content.userInfo
    if let messageID = userInfo[gcmMessageIDKey] {
      print("Message ID: \(messageID)")
    }

    // Print full message.
    print(userInfo)

    // Change this to your preferred presentation option
    completionHandler([.alert, .badge, .sound])
  }

  func userNotificationCenter(_ center: UNUserNotificationCenter,
                              didReceive response: UNNotificationResponse,
                              withCompletionHandler completionHandler: @escaping () -> Void) {
    let userInfo = response.notification.request.content.userInfo
    // Print message ID.
    if let messageID = userInfo[gcmMessageIDKey] {
      print("Message ID: \(messageID)")
    }

    // Print full message.
    print(userInfo)

    completionHandler()
  }
}

Hey @Nehal-29 - which version of Firebase are you using? Copying your Podfile.lock would be helpful so we can determine if you're on the latest version or not.
Also, which iOS version are you testing on?

Tested on iPhone 6s OS: 12.4.2
`PODS:

boost-for-react-native (1.63.0)
BVLinearGradient (2.5.6):

React

Crashlytics (3.14.0):

Fabric (~> 1.10.2)

DoubleConversion (1.1.6)
Fabric (1.10.2)
Firebase/Analytics (5.15.0):

Firebase/Core

Firebase/Core (5.15.0):

Firebase/CoreOnly
FirebaseAnalytics (= 5.4.0)

Firebase/CoreOnly (5.15.0):

FirebaseCore (= 5.1.10)

Firebase/Messaging (5.15.0):

Firebase/CoreOnly
FirebaseMessaging (= 3.2.2)

Firebase/MLVision (5.15.0):

Firebase/CoreOnly
FirebaseMLVision (= 0.13.0)

Firebase/MLVisionFaceModel (5.15.0):

Firebase/CoreOnly
FirebaseMLVisionFaceModel (= 0.13.0)

FirebaseAnalytics (5.4.0):

FirebaseCore (~> 5.1)
FirebaseInstanceID (~> 3.3)
GoogleAppMeasurement (= 5.4.0)
GoogleUtilities/AppDelegateSwizzler (~> 5.2)
GoogleUtilities/MethodSwizzler (~> 5.2)
GoogleUtilities/Network (~> 5.2)
"GoogleUtilities/NSData+zlib (~> 5.2)"
nanopb (~> 0.3)

FirebaseAnalyticsInterop (1.5.0)
FirebaseCore (5.1.10):

GoogleUtilities/Logger (~> 5.2)

FirebaseInstanceID (3.3.0):

FirebaseCore (~> 5.1)
GoogleUtilities/Environment (~> 5.3)
GoogleUtilities/UserDefaults (~> 5.3)

FirebaseMessaging (3.2.2):

FirebaseAnalyticsInterop (~> 1.1)
FirebaseCore (~> 5.1)
FirebaseInstanceID (~> 3.0)
GoogleUtilities/Environment (~> 5.2)
GoogleUtilities/Reachability (~> 5.2)
Protobuf (~> 3.1)

FirebaseMLCommon (0.13.0):

FirebaseCore (~> 5.1)

FirebaseMLVision (0.13.0):

FirebaseCore (~> 5.1)
FirebaseMLCommon (~> 0.13)
GoogleAPIClientForREST/Core (~> 1.3)
GoogleAPIClientForREST/Vision (~> 1.3)
GoogleMobileVision/Detector (~> 1.4)

FirebaseMLVisionFaceModel (0.13.0):

GoogleMobileVision/FaceDetector (~> 1.4)

Folly (2<IP_ADDRESS>):

boost-for-react-native
DoubleConversion
Folly/Default (= 2<IP_ADDRESS>)
glog

Folly/Default (2<IP_ADDRESS>):

boost-for-react-native
DoubleConversion
glog

glog (0.3.5)
GoogleAPIClientForREST/Core (1.3.11):

GTMSessionFetcher (>= 1.1.7)

GoogleAPIClientForREST/Vision (1.3.11):

GoogleAPIClientForREST/Core
GTMSessionFetcher (>= 1.1.7)

GoogleAppMeasurement (5.4.0):

GoogleUtilities/AppDelegateSwizzler (~> 5.2)
GoogleUtilities/MethodSwizzler (~> 5.2)
GoogleUtilities/Network (~> 5.2)
"GoogleUtilities/NSData+zlib (~> 5.2)"
nanopb (~> 0.3)

GoogleMobileVision/Detector (1.6.0):

GoogleToolboxForMac/Logger (~> 2.1)
"GoogleToolboxForMac/NSData+zlib (~> 2.1)"
GTMSessionFetcher/Core (~> 1.1)
Protobuf (~> 3.1)

GoogleMobileVision/FaceDetector (1.6.0):

GoogleMobileVision/Detector (~> 1.6)

GoogleMobileVision/MVDataOutput (1.6.0):

GoogleMobileVision/Detector (~> 1.6)

GoogleToolboxForMac/Defines (2.2.2)
GoogleToolboxForMac/Logger (2.2.2):

GoogleToolboxForMac/Defines (= 2.2.2)

"GoogleToolboxForMac/NSData+zlib (2.2.2)":

GoogleToolboxForMac/Defines (= 2.2.2)

GoogleUtilities/AppDelegateSwizzler (5.8.0):

GoogleUtilities/Environment
GoogleUtilities/Logger
GoogleUtilities/Network

GoogleUtilities/Environment (5.8.0)
GoogleUtilities/Logger (5.8.0):

GoogleUtilities/Environment

GoogleUtilities/MethodSwizzler (5.8.0):

GoogleUtilities/Logger

GoogleUtilities/Network (5.8.0):

GoogleUtilities/Logger
"GoogleUtilities/NSData+zlib"
GoogleUtilities/Reachability

"GoogleUtilities/NSData+zlib (5.8.0)"
GoogleUtilities/Reachability (5.8.0):

GoogleUtilities/Logger

GoogleUtilities/UserDefaults (5.8.0):

GoogleUtilities/Logger

GTMSessionFetcher (1.3.1):

GTMSessionFetcher/Full (= 1.3.1)

GTMSessionFetcher/Core (1.3.1)
GTMSessionFetcher/Full (1.3.1):

GTMSessionFetcher/Core (= 1.3.1)

Interactable (0.1.10):

React

nanopb (0.3.9011):

nanopb/decode (= 0.3.9011)
nanopb/encode (= 0.3.9011)

nanopb/decode (0.3.9011)
nanopb/encode (0.3.9011)
Protobuf (3.11.4)
RCTRestart (0.0.13):

React

React (0.60.4):

React-Core (= 0.60.4)
React-DevSupport (= 0.60.4)
React-RCTActionSheet (= 0.60.4)
React-RCTAnimation (= 0.60.4)
React-RCTBlob (= 0.60.4)
React-RCTImage (= 0.60.4)
React-RCTLinking (= 0.60.4)
React-RCTNetwork (= 0.60.4)
React-RCTSettings (= 0.60.4)
React-RCTText (= 0.60.4)
React-RCTVibration (= 0.60.4)
React-RCTWebSocket (= 0.60.4)

React-ART (0.60.4):

React-Core (= 0.60.4)

React-Core (0.60.4):

Folly (= 2<IP_ADDRESS>)
React-cxxreact (= 0.60.4)
React-jsiexecutor (= 0.60.4)
yoga (= 0.60.4.React)

React-cxxreact (0.60.4):

boost-for-react-native (= 1.63.0)
DoubleConversion
Folly (= 2<IP_ADDRESS>)
glog
React-jsinspector (= 0.60.4)

React-DevSupport (0.60.4):

React-Core (= 0.60.4)
React-RCTWebSocket (= 0.60.4)

React-fishhook (0.60.4)
React-jsi (0.60.4):

boost-for-react-native (= 1.63.0)
DoubleConversion
Folly (= 2<IP_ADDRESS>)
glog
React-jsi/Default (= 0.60.4)

React-jsi/Default (0.60.4):

boost-for-react-native (= 1.63.0)
DoubleConversion
Folly (= 2<IP_ADDRESS>)
glog

React-jsiexecutor (0.60.4):

DoubleConversion
Folly (= 2<IP_ADDRESS>)
glog
React-cxxreact (= 0.60.4)
React-jsi (= 0.60.4)

React-jsinspector (0.60.4)
react-native-blur (0.8.0):

React

react-native-camera (3.18.0):

React
react-native-camera/RCT (= 3.18.0)
react-native-camera/RN (= 3.18.0)

react-native-camera/FaceDetectorMLKit (3.18.0):

Firebase/MLVision
Firebase/MLVisionFaceModel
React
react-native-camera/RCT
react-native-camera/RN

react-native-camera/RCT (3.18.0):

React

react-native-camera/RN (3.18.0):

React

react-native-geolocation (1.4.2):

React

react-native-netinfo (4.0.0):

React

react-native-orientation-locker (1.1.4):

React

react-native-voice (1.0.6):

React

react-native-webview (8.0.6):

React

React-RCTActionSheet (0.60.4):

React-Core (= 0.60.4)

React-RCTAnimation (0.60.4):

React-Core (= 0.60.4)

React-RCTBlob (0.60.4):

React-Core (= 0.60.4)
React-RCTNetwork (= 0.60.4)
React-RCTWebSocket (= 0.60.4)

React-RCTImage (0.60.4):

React-Core (= 0.60.4)
React-RCTNetwork (= 0.60.4)

React-RCTLinking (0.60.4):

React-Core (= 0.60.4)

React-RCTNetwork (0.60.4):

React-Core (= 0.60.4)

React-RCTSettings (0.60.4):

React-Core (= 0.60.4)

React-RCTText (0.60.4):

React-Core (= 0.60.4)

React-RCTVibration (0.60.4):

React-Core (= 0.60.4)

React-RCTWebSocket (0.60.4):

React-Core (= 0.60.4)
React-fishhook (= 0.60.4)

ReactNativePermissions (1.1.1):

React

rn-fetch-blob (0.11.2):

React-Core

RNCAsyncStorage (1.4.2):

React

RNCViewpager (1.1.7):

React

RNDeviceInfo (0.21.5):

React

RNFirebase (5.4.0):

Firebase/Core
React

RNGestureHandler (1.4.1):

React

RNI18n (2.0.15):

React

RNReanimated (1.3.0):

React

RNSVG (9.4.0):

React

RNVectorIcons (6.1.0):

React

Siren (4.2.2)
yoga (0.60.4.React)

DEPENDENCIES:

BVLinearGradient (from ../node_modules/react-native-linear-gradient)
Crashlytics (~> 3.14)
DoubleConversion (from ../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec)
Fabric (~> 1.10)
Firebase/Analytics
Firebase/Core
Firebase/Messaging
Firebase/MLVision
Firebase/MLVisionFaceModel
Folly (from ../node_modules/react-native/third-party-podspecs/Folly.podspec)
glog (from ../node_modules/react-native/third-party-podspecs/glog.podspec)
GoogleMobileVision/FaceDetector
GoogleMobileVision/MVDataOutput
Interactable (from ../node_modules/react-native-interactable)
RCTRestart (from ../node_modules/react-native-restart/ios)
React (from ../node_modules/react-native)
React-ART (from ../node_modules/react-native/Libraries/ART)
React-Core (from ../node_modules/react-native/React)
React-cxxreact (from ../node_modules/react-native/ReactCommon/cxxreact)
React-DevSupport (from ../node_modules/react-native/React)
React-fishhook (from ../node_modules/react-native/Libraries/fishhook)
React-jsi (from ../node_modules/react-native/ReactCommon/jsi)
React-jsiexecutor (from ../node_modules/react-native/ReactCommon/jsiexecutor)
React-jsinspector (from ../node_modules/react-native/ReactCommon/jsinspector)
"react-native-blur (from ../node_modules/@react-native-community/blur)"
react-native-camera (from ../node_modules/react-native-camera)
react-native-camera/FaceDetectorMLKit (from ../node_modules/react-native-camera)
"react-native-geolocation (from ../node_modules/@react-native-community/geolocation)"
"react-native-netinfo (from ../node_modules/@react-native-community/netinfo)"
react-native-orientation-locker (from ../node_modules/react-native-orientation-locker)
"react-native-voice (from ../node_modules/@react-native-community/voice)"
react-native-webview (from ../node_modules/react-native-webview)
React-RCTActionSheet (from ../node_modules/react-native/Libraries/ActionSheetIOS)
React-RCTAnimation (from ../node_modules/react-native/Libraries/NativeAnimation)
React-RCTBlob (from ../node_modules/react-native/Libraries/Blob)
React-RCTImage (from ../node_modules/react-native/Libraries/Image)
React-RCTLinking (from ../node_modules/react-native/Libraries/LinkingIOS)
React-RCTNetwork (from ../node_modules/react-native/Libraries/Network)
React-RCTSettings (from ../node_modules/react-native/Libraries/Settings)
React-RCTText (from ../node_modules/react-native/Libraries/Text)
React-RCTVibration (from ../node_modules/react-native/Libraries/Vibration)
React-RCTWebSocket (from ../node_modules/react-native/Libraries/WebSocket)
ReactNativePermissions (from ../node_modules/react-native-permissions)
rn-fetch-blob (from ../node_modules/rn-fetch-blob)
"RNCAsyncStorage (from ../node_modules/@react-native-community/async-storage)"
"RNCViewpager (from ../node_modules/@react-native-community/Viewpager)"
RNDeviceInfo (from ../node_modules/react-native-device-info)
RNFirebase (from ../node_modules/react-native-firebase/ios)
RNGestureHandler (from ../node_modules/react-native-gesture-handler)
RNI18n (from ../node_modules/react-native-i18n)
RNReanimated (from ../node_modules/react-native-reanimated)
RNSVG (from ../node_modules/react-native-svg)
RNVectorIcons (from ../node_modules/react-native-vector-icons)
Siren (from https://github.com/ArtSabintsev/Siren.git, branch swift4.2)
yoga (from ../node_modules/react-native/ReactCommon/yoga)

SPEC REPOS:
trunk:
- boost-for-react-native
- Crashlytics
- Fabric
- Firebase
- FirebaseAnalytics
- FirebaseAnalyticsInterop
- FirebaseCore
- FirebaseInstanceID
- FirebaseMessaging
- FirebaseMLCommon
- FirebaseMLVision
- FirebaseMLVisionFaceModel
- GoogleAPIClientForREST
- GoogleAppMeasurement
- GoogleMobileVision
- GoogleToolboxForMac
- GoogleUtilities
- GTMSessionFetcher
- nanopb
- Protobuf
EXTERNAL SOURCES:
BVLinearGradient:
:path: "../node_modules/react-native-linear-gradient"
DoubleConversion:
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
Interactable:
:path: "../node_modules/react-native-interactable"
RCTRestart:
:path: "../node_modules/react-native-restart/ios"
React:
:path: "../node_modules/react-native"
React-ART:
:path: "../node_modules/react-native/Libraries/ART"
React-Core:
:path: "../node_modules/react-native/React"
React-cxxreact:
:path: "../node_modules/react-native/ReactCommon/cxxreact"
React-DevSupport:
:path: "../node_modules/react-native/React"
React-fishhook:
:path: "../node_modules/react-native/Libraries/fishhook"
React-jsi:
:path: "../node_modules/react-native/ReactCommon/jsi"
React-jsiexecutor:
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
React-jsinspector:
:path: "../node_modules/react-native/ReactCommon/jsinspector"
react-native-blur:
:path: "../node_modules/@react-native-community/blur"
react-native-camera:
:path: "../node_modules/react-native-camera"
react-native-geolocation:
:path: "../node_modules/@react-native-community/geolocation"
react-native-netinfo:
:path: "../node_modules/@react-native-community/netinfo"
react-native-orientation-locker:
:path: "../node_modules/react-native-orientation-locker"
react-native-voice:
:path: "../node_modules/@react-native-community/voice"
react-native-webview:
:path: "../node_modules/react-native-webview"
React-RCTActionSheet:
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
React-RCTAnimation:
:path: "../node_modules/react-native/Libraries/NativeAnimation"
React-RCTBlob:
:path: "../node_modules/react-native/Libraries/Blob"
React-RCTImage:
:path: "../node_modules/react-native/Libraries/Image"
React-RCTLinking:
:path: "../node_modules/react-native/Libraries/LinkingIOS"
React-RCTNetwork:
:path: "../node_modules/react-native/Libraries/Network"
React-RCTSettings:
:path: "../node_modules/react-native/Libraries/Settings"
React-RCTText:
:path: "../node_modules/react-native/Libraries/Text"
React-RCTVibration:
:path: "../node_modules/react-native/Libraries/Vibration"
React-RCTWebSocket:
:path: "../node_modules/react-native/Libraries/WebSocket"
ReactNativePermissions:
:path: "../node_modules/react-native-permissions"
rn-fetch-blob:
:path: "../node_modules/rn-fetch-blob"
RNCAsyncStorage:
:path: "../node_modules/@react-native-community/async-storage"
RNCViewpager:
:path: "../node_modules/@react-native-community/Viewpager"
RNDeviceInfo:
:path: "../node_modules/react-native-device-info"
RNFirebase:
:path: "../node_modules/react-native-firebase/ios"
RNGestureHandler:
:path: "../node_modules/react-native-gesture-handler"
RNI18n:
:path: "../node_modules/react-native-i18n"
RNReanimated:
:path: "../node_modules/react-native-reanimated"
RNSVG:
:path: "../node_modules/react-native-svg"
RNVectorIcons:
:path: "../node_modules/react-native-vector-icons"
Siren:
:branch: swift4.2
:git: https://github.com/ArtSabintsev/Siren.git
yoga:
:path: "../node_modules/react-native/ReactCommon/yoga"
CHECKOUT OPTIONS:
Siren:
:commit: a3c7cfa26d686524bdb7cf0592310a836e53a97c
:git: https://github.com/ArtSabintsev/Siren.git
SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
Crashlytics: 540b7e5f5da5a042647227a5e3ac51d85eed06df
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
Firebase: 8bb9268bff82374f2cbaaabb143e725743c316ae
FirebaseAnalytics: c06f9d70577d79074214700a71fd5d39de5550fb
FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae
FirebaseCore: 35747502d9e8c6ee217385ad04446c7c2aaf9c5c
FirebaseInstanceID: e2fa4cb35ef5558c200f7f0ad8a53e212215f93e
FirebaseMessaging: b412996f6a09337d232bb3a6676ce4d1f353d024
FirebaseMLCommon: 5e1bc4c4aa1d12c1f6bc38b40d2d60e8e63466bb
FirebaseMLVision: eba288c56228b25d9be498861ad0b9f305e8ce5c
FirebaseMLVisionFaceModel: 8656827cbf7c899a2da4567f8c42e31d243d3000
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
glog: 1f3da668190260b06b429bb211bfbee5cd790c28
GoogleAPIClientForREST: 0f19a8280dfe6471f76016645d26eb5dae305101
GoogleAppMeasurement: 98b71f5e04142793729a5ef23e5b96651ff4b70f
GoogleMobileVision: 31cfb4319fd0c03d80105680abd9eae9da5e3b47
GoogleToolboxForMac: 800648f8b3127618c1b59c7f97684427630c5ea3
GoogleUtilities: 04fce34bcd5620c1ee76fb79172105c74a4df335
GTMSessionFetcher: cea130bbfe5a7edc8d06d3f0d17288c32ffe9925
Interactable: 4e2c73ed61aab5e1dc91800554a04cee79db477c
nanopb: 18003b5e52dab79db540fe93fe9579f399bd1ccd
Protobuf: 176220c526ad8bd09ab1fb40a978eac3fef665f7
RCTRestart: e8e3868a71dbec2cf8055fc2c0635db23c8c4479
React: ff7ee2ae5ee1c1d9ae2183b4111045b25294bb01
React-ART: 87b6e9d975551e6177c660dd212529f73ed03681
React-Core: 8e0ea421cae5609d2562850f98421b15030476fa
React-cxxreact:<PHONE_NUMBER>90151a7182a813311054e9772ba510
React-DevSupport: e9f10e6721e78e87622fc985db695c0c0168db8a
React-fishhook: 1f0e5b08449403fa75c3fb3881a0beefbada14af
React-jsi: 21d3153b1153fbf6510a92b6b11e33e725cb7432
React-jsiexecutor: 7549641e48bafae7bfee3f3ea19bf4901639c5de
React-jsinspector: 73f24a02fa684ed6a2b828ba116874a2191ded88
react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c
react-native-camera: 36536dd86a41261622967ccf3e19fb63d7dd09e3
react-native-geolocation: 79c743ad7a2e86617811ef23f49308824e92520c
react-native-netinfo: 1f944066b88481f1170bebf3196f1ed95620fb84
react-native-orientation-locker: c692698e9947f4415053b9d163a63422822d80c3
react-native-voice: a1fad94b687e004d888a4b21d00c8069eee2c174
react-native-webview: e11b5d7da61ac3acee13f3ae3184d417f773c5d5
React-RCTActionSheet: 9f71d7ae3e8fb10e08d162cbf14c621349dbfab3
React-RCTAnimation: 981d8c95b0e30918a9832ccac32af83562a27fae
React-RCTBlob: 21e73d1020a302a75fed30dbaee9f15287b80baa
React-RCTImage: c0bc6ac0926517b6fb7e4c279b04843113e99d1d
React-RCTLinking: 1af3f3c59114bed3deec0107c62e7efad0932ee5
React-RCTNetwork: 35df9de46e19cda5c56380be1a7759b9b8cb2fcd
React-RCTSettings: f580504c2cd1f44e25add10fb9ed3954f67f8ac5
React-RCTText: e0f224898b13af9aa036ea7cb3d438daa68c1044
React-RCTVibration: 0bea40cd51bd089bd591a8f74c86e91fdf2666c5
React-RCTWebSocket: 163873f4cdd5f1058a9483443404fc3801581cb6
ReactNativePermissions: 2e324bb3baf12702e3ec27f76c8ae1158fa69fc6
rn-fetch-blob: f525a73a78df9ed5d35e67ea65e79d53c15255bc
RNCAsyncStorage: 285698b8a4f219573174d99e863a78b93f389272
RNCViewpager: eff3ba6712d3aff9ea779ef1c99f78aa7cd36771
RNDeviceInfo: e7c5fcde13d40e161d8a27f6c5dc69c638936002
RNFirebase: 23f9e86efabd055d5d4178730f767694208b2f53
RNGestureHandler: 4cb47a93019c1a201df2644413a0a1569a51c8aa
RNI18n: e2f7e76389fcc6e84f2c8733ea89b92502351fd8
RNReanimated: 6abbbae2e5e72609d85aabd92a982a94566885f1
RNSVG: 9cb6e958c4b6a1f58185ac72a350b148947d6fed
RNVectorIcons: ac7bf6bfeafaf3ad34552cdc6eed6fb8c4b7c940
Siren: b636a49628049cb19af6fc28ac344cf36f2186f8
yoga: c2c050f6ae6e222534760cc82f559b89214b67e2
PODFILE CHECKSUM: ed1567ba805d1a09f61a7c4d83d996e01a4eb55c
COCOAPODS: 1.9.0
`

Thanks for the reply! Firebase 5.15.0 was released in December 2018 and there have been a significant number of fixes and changes since then - including a major version update. Can you please try updating to the latest Firebase version (6.18.0) and seeing if this is fixed for you?
If you can't update to the latest major version, updating to the latest 5.X version (5.20.2) may fix your issue, although if not we won't be able to debug much further since we're no longer making changes to major version 5.

@ryanwilson  Still no luck
I get this in console:
[Firebase/Messaging][I-FCM006000] Received message missing local start time, dropped.
2020-03-04 21:57:47.455496+0530 [3360:1805454] 6.18.0 - [Firebase/Analytics][I-ACS023051] Logging event: origin, name, params: fcm, notification_foreground (_nf), {
ga_event_origin (_o) = fcm;
ga_screen (_sn) = ScreenName;
ga_screen_class (_sc) = ScreenName;
ga_screen_id (_si) =<PHONE_NUMBER>658149244;
message_device_time (_ndt) = 0;
message_id (_nmid) =<PHONE_NUMBER>368450776;
message_time (_nmt) =<PHONE_NUMBER>;
}
updated versions:

Fabric (1.10.2)

Firebase/Analytics (6.18.0):

Firebase/Core

Firebase/Core (6.18.0):

Firebase/CoreOnly
FirebaseAnalytics (= 6.3.0)

Firebase/CoreOnly (6.18.0):

FirebaseCore (= 6.6.3)

Firebase/Messaging (6.18.0):

Firebase/CoreOnly
FirebaseMessaging (~> 4.3.0)

Firebase/MLVision (6.18.0):

Firebase/CoreOnly
FirebaseMLVision (~> 0.19.0)

Firebase/MLVisionFaceModel (6.18.0):

Firebase/CoreOnly
FirebaseMLVisionFaceModel (~> 0.19.0)

FirebaseAnalytics (6.3.0):

FirebaseCore (~> 6.6)
FirebaseInstallations (~> 1.1)
GoogleAppMeasurement (= 6.3.0)
GoogleUtilities/AppDelegateSwizzler (~> 6.0)
GoogleUtilities/MethodSwizzler (~> 6.0)
GoogleUtilities/Network (~> 6.0)
"GoogleUtilities/NSData+zlib (~> 6.0)"
nanopb (= 0.3.9011)

FirebaseAnalyticsInterop (1.5.0)
FirebaseCore (6.6.3):

FirebaseCoreDiagnostics (~> 1.2)
FirebaseCoreDiagnosticsInterop (~> 1.2)
GoogleUtilities/Environment (~> 6.5)
GoogleUtilities/Logger (~> 6.5)

FirebaseCoreDiagnostics (1.2.1):

FirebaseCoreDiagnosticsInterop (~> 1.2)
GoogleDataTransportCCTSupport (~> 1.3)
GoogleUtilities/Environment (~> 6.5)
GoogleUtilities/Logger (~> 6.5)
nanopb (~> 0.3.901)

FirebaseCoreDiagnosticsInterop (1.2.0)
FirebaseInstallations (1.1.0):

FirebaseCore (~> 6.6)
GoogleUtilities/UserDefaults (~> 6.5)
PromisesObjC (~> 1.2)

FirebaseInstanceID (4.3.2):

FirebaseCore (~> 6.6)
FirebaseInstallations (~> 1.0)
GoogleUtilities/Environment (~> 6.5)
GoogleUtilities/UserDefaults (~> 6.5)

FirebaseMessaging (4.3.0):

FirebaseAnalyticsInterop (~> 1.5)
FirebaseCore (~> 6.6)
FirebaseInstanceID (~> 4.3)
GoogleUtilities/AppDelegateSwizzler (~> 6.5)
GoogleUtilities/Environment (~> 6.5)
GoogleUtilities/Reachability (~> 6.5)
GoogleUtilities/UserDefaults (~> 6.5)
Protobuf (>= 3.9.2, ~> 3.9)

FirebaseMLCommon (0.19.0):

FirebaseCore (~> 6.3)
FirebaseInstanceID (~> 4.2)
GoogleToolboxForMac/Logger (~> 2.1)
"GoogleToolboxForMac/NSData+zlib (~> 2.1)"
"GoogleToolboxForMac/NSDictionary+URLArguments (~> 2.1)"
GoogleUtilities/UserDefaults (~> 6.0)
GTMSessionFetcher/Core (~> 1.1)
Protobuf (~> 3.5)

FirebaseMLVision (0.19.0):

FirebaseCore (~> 6.3)
FirebaseMLCommon (~> 0.19)
GoogleAPIClientForREST/Core (~> 1.3)
GoogleAPIClientForREST/Vision (~> 1.3)
GoogleToolboxForMac/Logger (~> 2.1)
"GoogleToolboxForMac/NSData+zlib (~> 2.1)"
GTMSessionFetcher/Core (~> 1.1)
Protobuf (~> 3.5)

FirebaseMLVisionFaceModel (0.19.0):

FirebaseMLVision (~> 0.19)

The console log suggests the message is being delivered to your app correctly, but isn't being handled. Can you share the full app logs to see if the notification handler callbacks are being invoked?

@morganchen12
These are the logs I'm getting after a test notification is sent from Firebase Cloud Messaging console.
Also none of my handlers are getting invoked to show alert.
(even though I'd set the delegate UNUserNotificationCenter.current().delegate = self)
[Firebase/Messaging][I-FCM006000] Received message missing local start time, dropped.
2020-03-05 10:53:08.399810+0530 ProjectName[3409:1893131] 6.18.0 - [Firebase/Messaging][I-FCM019005] FIRMessagingAnalytics: Sending event: _nf params: {
"_ndt" = 0;
"_nmid" =<PHONE_NUMBER>132180518;
"_nmt" =<PHONE_NUMBER>;
}
2020-03-05 10:53:08.411090+0530 ProjectName[3409:1893131] 6.18.0 - [Firebase/Messaging][I-FCM006000] Received message missing local start time, dropped.
2020-03-05 10:53:08.421623+0530 ProjectName[3409:1892953] 6.18.0 - [Firebase/Analytics][I-ACS023051] Logging event: origin, name, params: fcm, notification_foreground (_nf), {
ga_event_origin (_o) = fcm;
ga_screen (_sn) = ClassName;
ga_screen_class (_sc) = ClassName;
ga_screen_id (_si) = -2223802917329739768;
message_device_time (_ndt) = 0;
message_id (_nmid) =<PHONE_NUMBER>132180518;
message_time (_nmt) =<PHONE_NUMBER>;
}
2020-03-05 10:53:08.423906+0530 ProjectName[3409:1892953] 6.18.0 - [Firebase/Analytics][I-ACS023073] Debug mode is enabled. Marking event as debug and real-time. Event name, parameters: notification_foreground (_nf), {
ga_debug (_dbg) = 1;
ga_event_origin (_o) = fcm;
ga_realtime (_r) = 1;
ga_screen (_sn) = ClassName;
ga_screen_class (_sc) = ClassName;
ga_screen_id (_si) = -2223802917329739768;
message_device_time (_ndt) = 0;
message_id (_nmid) =<PHONE_NUMBER>132180518;
message_time (_nmt) =<PHONE_NUMBER>;
}
2020-03-05 10:53:09.111748+0530 ProjectName[3409:1892966] 6.18.0 - [Firebase/Analytics][I-ACS023072] Event logged. Event name, event params: notification_foreground (_nf), {
ga_debug (_dbg) = 1;
ga_event_origin (_o) = fcm;
ga_realtime (_r) = 1;
ga_screen (_sn) = ClassName;
ga_screen_class (_sc) = ClassName;
ga_screen_id (_si) = -2223802917329739768;
message_device_time (_ndt) = 0;
message_id (_nmid) =<PHONE_NUMBER>132180518;
message_time (_nmt) =<PHONE_NUMBER>;
}
2020-03-05 10:53:09.149355+0530 ProjectName[3409:1893317] 6.18.0 - [Firebase/Analytics][I-ACS002002] Measurement timer scheduled to fire in approx. (s): 0.2503160238265991
2020-03-05 10:53:09.483026+0530 ProjectName[3409:1893317] 6.18.0 - [Firebase/Analytics][I-ACS002001] Measurement timer fired
2020-03-05 10:53:09.484515+0530 ProjectName[3409:1893317] 6.18.0 - [Firebase/Analytics][I-ACS002003] Measurement timer canceled
2020-03-05 10:53:09.490896+0530 ProjectName[3409:1893317] 6.18.0 - [Firebase/Analytics][I-ACS023105] Event is not subject to real-time event count daily limit. Marking an event as real-time. Event name, parameters: notification_foreground (_nf), {
ga_debug (_dbg) = 1;
ga_event_origin (_o) = fcm;
ga_realtime (_r) = 1;
ga_screen (_sn) = ClassName;
ga_screen_class (_sc) = ClassName;
ga_screen_id (_si) = -2223802917329739768;
message_device_time (_ndt) = 0;
message_id (_nmid) =<PHONE_NUMBER>132180518;
message_time (_nmt) =<PHONE_NUMBER>;
}
2020-03-05 10:53:09.770383+0530 ProjectName[3409:1893317] 6.18.0 - [Firebase/Analytics][I-ACS012018] Saving bundle. size (bytes): 605
2020-03-05 10:53:09.771447+0530 ProjectName[3409:1893317] 6.18.0 - [Firebase/Analytics][I-ACS023116] Bundle added to the upload queue. BundleID, timestamp (ms): 66,<PHONE_NUMBER>399
2020-03-05 10:53:09.801915+0530 ProjectName[3409:1893131] 6.18.0 - [Firebase/Analytics][I-ACS023039] Measurement data sent to network. Timestamp (ms), data:<PHONE_NUMBER>801, <APMPBMeasurementBatch: 0x2836114c0>
2020-03-05 10:53:09.808679+0530 ProjectName[3409:1893131] 6.18.0 - [Firebase/Analytics][I-ACS900000] Uploading data. Host: https://app-measurement.com/a
2020-03-05 10:53:10.051850+0530 ProjectName[3409:1893131] 6.18.0 - [Firebase/Analytics][I-ACS901006] Received SSL challenge for host. Host: https://app-measurement.com/a
2020-03-05 10:53:10.255240+0530 ProjectName[3409:1892966] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C15.1:2][0x1039326d0] get output frames failed, state 8196
2020-03-05 10:53:10.256880+0530 ProjectName[3409:1892966] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C15.1:2][0x1039326d0] get output frames failed, state 8196
2020-03-05 10:53:10.258188+0530 ProjectName[3409:1892966] TIC Read Status [15:0x0]: 1:57
2020-03-05 10:53:10.258459+0530 ProjectName[3409:1892966] TIC Read Status [15:0x0]: 1:57
2020-03-05 10:53:10.262906+0530 ProjectName[3409:1892966] 6.18.0 - [Firebase/Analytics][I-ACS023044] Successful upload. Got network response. Code, size: 204, -1
2020-03-05 10:53:10.271490+0530 ProjectName[3409:1892966] 6.18.0 - [Firebase/Analytics][I-ACS002002] Measurement timer scheduled to fire in approx. (s): -0.8718920946121216
2020-03-05 10:53:10.422117+0530 ProjectName[3409:1893131] 6.18.0 - [Firebase/Analytics][I-ACS002003] Measurement timer canceled
2020-03-05 10:53:10.605347+0530 ProjectName[3409:1892966] 6.18.0 - [Firebase/Messaging][I-FCM005017] RMQ: Sending GtalkHeartbeatPing with outgoing stream Id: 6.
2020-03-05 10:53:10.607137+0530 ProjectName[3409:1892966] 6.18.0 - [Firebase/Messaging][I-FCM005023] Send msg: (null) type: 0 inStreamId: 6 outStreamId: 6
2020-03-05 10:53:10.885598+0530 ProjectName[3409:1892966] 6.18.0 - [Firebase/Messaging][I-FCM005015] RMQ: Receiving GtalkHeartbeatAck with incoming stream Id: 7.
2020-03-05 10:53:10.887618+0530 ProjectName[3409:1892966] 6.18.0 - [Firebase/Messaging][I-FCM005019] RMQ: Server last received stream Id: 6.

The analytics events being logged means your app is definitely receiving the notifications. To set up notification callbacks, don't forget to set the delegate property on UNUserNotificationCenter. Note that this property should be set before your app finishes launching.

I'd set my delegate property in application(didFinishLaunchingWithOptions) method.
I can't figure out what's going wrong.
For reference I'd shared my appDelegate above(in template) If you can have a look. @morganchen12

The reason is because you put all the foreground receiving handlers inside "extension: appDelegate" which I don't think it's how delegate should be handled.
Can you move them under class AppDelegate?

The extension looks ok and shouldn't cause any issues. Can you try scheduling a local notification and seeing if it triggers your UNUserNotificationCenterDelegate callback?

Another way is that can you try to follow the two delegates in class AppDelegate?
like:
class AppDelegate: UIResponder, UIApplicationDelegate, MessagingDelegate, UNUserNotificationCenterDelegate
I don't know what effect gonna happen when you assign your app delegate to MessagingDelegate and UNUserNotificationCenterDelegate without your class actually follow/extend them.

none of my delegates are getting called even tough I had set them.
UNUserNotificationDelegate

Are you able to reproduce this bug with the messaging quickstart?


Custom Endpoints

Is it possible to set a custom endpoint, for example, if trying to access an emulator?

The generated builder function has an optional field for server address, port, and grpc credentials (see https://github.com/GoogleCloudPlatform/google-cloud-node/blob/master/packages/pubsub/src/v1/publisher_api.js#L79). So,
var pubsubV1 = require('@google-cloud/pubsub').v1();
var publisherApi = pubsubV1.publisherApi({servicePath: 'localhost', port: 3000});
...

It'll connect to a different end point.

Looks perfect, sorry that I missed that. Thanks!


vulkan_layer: Remove the mirror swapchain workaround

Is this supported only by recent SteamVR versions or all?

Zarik's question was answered in discord


ComposeBox: More changes :)

Thanks, looks good! Merging.
(FTR on this thread: we revised the "Autofocus topic input box when available" logic a couple more times with in-person discussion, and then dropped the "ComposeBox [nfc]: Refactor getCanSelectTopic." because the helper was no longer getting reused.)


msbuild fails building vcpkg as 'NT\SYSTEM' (SysWOW64 issue)

Steps to reproduce
:: fetch vcpkg source
> git clone https://github.com/Microsoft/vcpkg.git
:: impersonate as service (needs pstools)
> psexec -i -s cmd.exe
:: try to bootstrap
> cd vcpkg && bootstrap-vcpkg
[...]

Building vcpkg.exe ...

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(314,5): error MSB4018: The "CL" task failed unexpectedly. [D:\nightly\vcpkg\toolsrc\vcpkglib\vcpkglib.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(314,5): error MSB4018: System.TypeInitializationException: The type initializer for 'Microsoft.Build.Utilities.FileTracker' threw an exception. ---> System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002) [D:\nightly\vcpkg\toolsrc\vcpkglib\vcpkglib.vcxproj]
https://github.com/Microsoft/vcpkg/issues/5248
[...]

Expected  behavior
Microsofts vcpkg.exe gets built
Actual behavior
Error MSB4018 stops the build
Environment data
> whoami
nt authority\system

I cross posted this issue to vcpkg since I don't know where the correct place to fix this resides:
https://github.com/Microsoft/vcpkg/issues/5248

Ok, if that's the case, I don't think there's much of anything MSBuild can do to help here--we can't control TEMP ourselves, and Windows has the bad behavior of putting it behind a wow32-redirected folder when running under local system.


Resolve Python undefined name hass_const

@feelepxyz import homeassistant.const as hass_const as discussed in #1376
Also related to #2892
https://github.com/home-assistant/core/blob/dev/setup.py#L7 -->
https://github.com/home-assistant/core/blob/dev/homeassistant/const.py#L7

This is a fixture that is deliberately broken, I don't think we'll want to "fix" it! We should probably only lint our native python helpers


"git" needed to run "make distclean"

Found another thing while looking at the buildlog at launchpad.
make -j1 distclean
make[1]: Entering directory '/home/buildd/work/tree/kivy-1.9.0-dev~testing0+201501231544-2558'
rm -rf doc/build
rm -rf build
rm -rf htmlcov
rm .coverage
rm: cannot remove '.coverage': No such file or directory
make[1]: [clean] Error 1 (ignored)
Makefile:72: recipe for target 'clean' failed
rm .noseids
rm: cannot remove '.noseids': No such file or directory
make[1]: [clean] Error 1 (ignored)
Makefile:72: recipe for target 'clean' failed
rm -rf kivy/tests/build
find kivy -iname '*.so' -exec rm {} \;
find kivy -iname '*.pyc' -exec rm {} \;
find kivy -iname '*.pyo' -exec rm {} \;
find . -iname '*.pyx' -exec sh -c 'echo `dirname {}`/`basename {} .pyx`.c' \; | xargs rm
rm: cannot remove './kivy/_event.c': No such file or directory
rm: cannot remove './kivy/graphics/tesselator.c': No such file or directory
rm: cannot remove './kivy/graphics/opengl_utils.c': No such file or directory
rm: cannot remove './kivy/graphics/vertex.c': No such file or directory
rm: cannot remove './kivy/graphics/vbo.c': No such file or directory
rm: cannot remove './kivy/graphics/fbo.c': No such file or directory
rm: cannot remove './kivy/graphics/context.c': No such file or directory
rm: cannot remove './kivy/graphics/buffer.c': No such file or directory
rm: cannot remove './kivy/graphics/gl_instructions.c': No such file or directory
rm: cannot remove './kivy/graphics/c_opengl_debug.c': No such file or directory
rm: cannot remove './kivy/graphics/instructions.c': No such file or directory
rm: cannot remove './kivy/graphics/shader.c': No such file or directory
rm: cannot remove './kivy/graphics/transformation.c': No such file or directory
rm: cannot remove './kivy/graphics/texture.c': No such file or directory
rm: cannot remove './kivy/graphics/svg.c': No such file or directory
rm: cannot remove './kivy/graphics/opengl.c': No such file or directory
rm: cannot remove './kivy/graphics/stencil_instructions.c': No such file or directory
rm: cannot remove './kivy/graphics/context_instructions.c': No such file or directory
rm: cannot remove './kivy/graphics/compiler.c': No such file or directory
rm: cannot remove './kivy/graphics/vertex_instructions.c': No such file or directory
rm: cannot remove './kivy/properties.c': No such file or directory
rm: cannot remove './kivy/lib/vidcore_lite/egl.c': No such file or directory
rm: cannot remove './kivy/lib/vidcore_lite/bcm.c': No such file or directory
rm: cannot remove './kivy/lib/gstplayer/_gstplayer.c': No such file or directory
rm: cannot remove './kivy/core/image/img_imageio.c': No such file or directory
rm: cannot remove './kivy/core/image/_img_sdl2.c': No such file or directory
rm: cannot remove './kivy/core/text/text_layout.c': No such file or directory
rm: cannot remove './kivy/core/text/_text_sdl2.c': No such file or directory
rm: cannot remove './kivy/core/text/text_sdlttf.c': No such file or directory
rm: cannot remove './kivy/core/clipboard/_clipboard_sdl2.c': No such file or directory
rm: cannot remove './kivy/core/window/window_x11.c': No such file or directory
rm: cannot remove './kivy/core/window/_window_sdl2.c': No such file or directory
rm: cannot remove './kivy/core/window/sdl.c': No such file or directory
rm: cannot remove './kivy/core/audio/audio_sdl.c': No such file or directory
rm: cannot remove './kivy/core/camera/camera_avfoundation.c': No such file or directory
make[1]: [clean] Error 123 (ignored)
make[1]: git: Command not found
make[1]: [distclean] Error 127 (ignored)
Makefile:72: recipe for target 'clean' failed
git clean -dxf -e debian
Makefile:84: recipe for target 'distclean' failed

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

Merged #2888


[10.x] Removes redundant exception throwing

In these following test methods, we are expecting AssertionFailedError exceptions to be thrown. But when the actual and expected value does not match, assertStatus method already throws ExpectationFailedException exception which extends the AssertionFailedError exception class. So according to Liskov Substitution Principle, we don't need to manually throw AssertionFailedError exceptions on our own.

Hi @taylorotwell, I was wondering if you could kindly provide me with some feedback on why the PR was closed. I do value your opinion and would like to understand any issues or concerns that you may have had with the changes that I proposed.


Cannot parse ABI with tuple[]

I am trying to use multicall smart contract (https://etherscan.io/address/0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696#code), but there is an issue when parsing the ABI with web3swift:
The tuple[] input parameter is parsed as an array of tuples, but there is a missing information about the tuple components which later prevents correct execution of the function...
the ABI: "[ { \"inputs\": [ { \"internalType\": \"bool\", \"name\": \"requireSuccess\", \"type\": \"bool\" }, { \"components\": [ {\"internalType\": \"address\", \"name\": \"target\", \"type\": \"address\" }, { \"internalType\": \"bytes\", \"name\": \"callData\", \"type\": \"bytes\" } ], \"internalType\": \"struct Multicall2.Call[]\", \"name\": \"calls\", \"type\": \"tuple[]\" } ], \"name\": \"tryAggregate\", \"outputs\": [ { \"components\": [ { \"internalType\": \"bool\", \"name\": \"success\", \"type\": \"bool\" }, { \"internalType\": \"bytes\", \"name\": \"returnData\", \"type\": \"bytes\" } ], \"internalType\": \"struct Multicall2.Result[]\", \"name\": \"returnData\", \"type\": \"tuple[]\" } ], \"stateMutability\": \"nonpayable\", \"type\": \"function\" } ]"

also, the method signatures are different to what js library produces when there are tuples involved
web3swift created method signature  tryAggregate(bool,tuple(address,bytes)[]) but it needs to be just tryAggregate(bool,(address,bytes)[]) to get the correct keccak hash

Can you create a basic smart contract with a tuple for us to test? If not I can try to create one and test.
What solidity version are you using to compile the contract?

Well that's good news!!


add default path for config file

currently a json config must be specified with -C and it does not look for like a gost.json file in the cwd am i correct in this?

i can get the file name from cwd.
have you give the right format json file ?
how about a absolute path like /path/to/config.json

@recall704
Took a look and what I wanted is achieved by this patch in cmd/gost/main.go
40c40
<       flag.StringVar(&configureFile, "C", "", "configure file")
---
>       flag.StringVar(&configureFile, "C", "gost.json", "configure file")
60c60
<       if flag.NFlag() == 0 || len(routes) == 0 {
---
>       if len(routes) == 0 {


Can't get list of accounts

On piccadilly testnet I cant check my account list when use "aut account list". Error - json.decoder.JSONDecodeError: Extra data: line 1 column 12 (char 11)
Keystore located here - .autonity/keystore
.autrc is:
[aut]
rpc_endpoint=https://rpc1.piccadilly.autonity.org/
keyfile = /root/.autonity/keystore/main.key

I can replicate this issue.
I have tried with the keystore path configured in .autrc, and by directly specifying it in the command using the --keystore or short form --s flags. I get the same error json.decoder.JSONDecodeError: Extra data: line 1 column 2 (char 1).
Interestingly, it works if I explicitly specify the default keystorepath of ~/.autonity/keystore explicitly
$ aut account list -s ~/.autonity/keystore
0x438CA0aB269d512d636736bDB340bA82e8140C02
0x1e084D9414ECa3Cbb2CE0d4cBF02801F3BA2002d
0x60513247d8C4CB4138A275706F9595BFB9E4d801
0x32725d1d116E07404b76A13419eD057aBb2B0FaC
0x199bEFeAfabED5Ad6EE9b80D0958196ecA54cF95
0x5DDA265Fa715499c81eB0F9bb3e4076a7E98c52c
0xff781909950fc2334B4F733772d5D7B0ff8eBF10

I have this problem even with aut account list -s /root/.autonity/keystore/
json.decoder.JSONDecodeError: Extra data: line 1 column 12 (char 11)

This should be fixed in https://github.com/autonity/aut/releases/tag/v0.3.0.dev4, please check.


KAFKA-2320; Test commit

The PR builder is now working as can be seen in https://github.com/apache/kafka/pull/80


Bug/Feature: Add createdAt to player objects from /matches

Until #145 is fixed, can you add the correct .attributes.createdAt to player objects returned on /matches? It mitigates the issue very well.

/matches returns:
{
      "type": "player",
      "id": "a8a040c2-793b-11e4-a5ea-06d90c28bf1a",
      "attributes": {
        "name": "Romgemsword",
        "shardId": "eu",
        "stats": {
          "elo_earned_season_4": 2553.7815992198925,
          "elo_earned_season_5": 2716.9113000212574,
          "elo_earned_season_6": 2796.250421574378,
          "elo_earned_season_7": 2728.79626554716,
          "karmaLevel": 2,
          "level": 30,
          "lifetimeGold": 7029.75,
          "lossStreak": 0,
          "played": 8448,
          "played_ranked": 3402,
          "skillTier": 26,
          "winStreak": 0,
          "wins": 3195,
          "xp": 175450
        },
        "titleId": "semc-vainglory"
      }
}

/players returns
    {
      "type": "player",
      "id": "a8a040c2-793b-11e4-a5ea-06d90c28bf1a",
      "attributes": {
        "createdAt": "2017-07-18T00:29:15Z",
        "name": "Romgemsword",
        "shardId": "eu",
        "stats": {
          "elo_earned_season_4": 2553.7815992198925,
          "elo_earned_season_5": 2716.9113000212574,
          "elo_earned_season_6": 2796.250421574378,
          "elo_earned_season_7": 2728.79626554716,
          "karmaLevel": 2,
          "level": 30,
          "lifetimeGold": 11197.75,
          "lossStreak": 0,
          "played": 8722,
          "played_ranked": 3676,
          "skillTier": 28,
          "winStreak": 0,
          "wins": 3404,
          "xp": 175450
        },
        "titleId": "semc-vainglory"
      },

We're planning to remove player.  It was only left as a convenience item.  We're not adding values to it.


Menu is not in visible window if window is not maximized

On a fresh boot, if you open ecode, it will open a fixed-size window that doesn't fill up the whole screen. If you click on the menu icon, the menu is not displayed in the visible window (part of it is outside of the visible window). You have to maximize the window to see the menu. Note: If you close ecode and open it again, it will remember the previous setting, and you can't observe this. You will have to reboot.

What's your screen resolution? Also can you share a screenshot?
ecode does some logic to get the initial resolution on its first boot, but it's not that crazy:

	const Sizei desiredRes( 1280, 720 );
	Sizei defWinSize( desiredRes.getWidth(), desiredRes.getHeight() );
	if ( displaySize.getWidth() > desiredRes.getWidth() &&
		 displaySize.getWidth() - desiredRes.getWidth() > 60 ) {
		defWinSize.setWidth( desiredRes.getWidth() );
	} else {
		defWinSize.setWidth( displaySize.getWidth() - 60 );
	}
	if ( displaySize.getHeight() > desiredRes.getHeight() &&
		 displaySize.getHeight() - desiredRes.getHeight() > 60 ) {
		defWinSize.setHeight( desiredRes.getHeight() );
	} else {
		defWinSize.setHeight( displaySize.getHeight() - 60 );
	}
	windowState.size.setWidth( iniState.getValueI( "window", "width", defWinSize.getWidth() ) );
	windowState.size.setHeight( iniState.getValueI( "window", "height", defWinSize.getHeight() ) );

It seems you assumed 16:9. My screen is 16:10.

That shouldn't matter, if the base desired size doesn't fit the coordinate it will take the display size width or height and subtract 60 pixels. I'm trying to think how this can fail and I don't see it.
Please can you answer the previous questions? That will help. Thanks

What's your screen resolution? Also can you share a screenshot?

What's your screen resolution?

1680x1050

Also can you share a screenshot?

Here you are:

Oh, I didn't get what you were saying. Menu doesn't fit a small screen resolution. As a first step I'll fix the incorrect positioning of the menu, it should be completely visible. Thanks

Latests changes should give you a menu that fits on the screen. "Window" submenu won't fix though, I'll clean up that later.


Load model from the correct path

The model was saved at the path model_checkpoints but it was getting loaded from the path saved_checkpoints.
saved_checkpoints does not exist.

Insignificant issue.


Feature: Offline Support

Hi, I have been using Ao for sometime now and its a great app. Though sometimes I feel that it should have offline mode also when laptop is not connected to internet. Is it possible?

Guess this can be closed, no? Microsoft added it, and I have the impression (from a very quick test) this works in Ao also.


🧐[问题] How to use pro-table in a standard CRA project?

🧐 I have add pro-table in a project, but the toolbar is missing any styles.
Is it possible to distribute the compiled CSS styles?
I prefer not to have to add ant-design-pro itself as I will not be using most of its features.  Also, I'd like to minimize the size of my work area. A brand new project started using pro-design complete template is a whopping 1.2G.
🚑

Seems solved by da6cbd53b2f5841332c62cb88363ef3f05f0b8eb.
Amazing. First 2 issues created by me are actually solved in master branch.

published


[docs][RequirementMachine] Change document class of research paper

I was compiling the RequirementMachine research paper on Papeeria.com because I have a slow internet connection and can't download the 4 GB TeX toolchain. It showed an error that scrreport.cls was not found. When I looked up the error on Google, I only saw instances of scrreprt, which is extremely close in spelling. After changing the class name, it subsequently compiled.
I request that @slavapestov be the person to review this PR.

I am ready for this to be reviewed.

@swift-ci Please smoke test and merge

I think Overleaf (https://www.overleaf.com) might be another option if you want to typeset this online.


chore(release): v0.3.8

Version bump in package.json for release v0.3.8

:tada: This PR is included in version 0.3.9 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Ignore an error with specific code and continue with test

🚀 Feature Proposal
Don't stop the test if an error with a specific code or message was thrown.
Motivation
I am using React. I am calling backend API to clean DB after each test. Before calling the API, I am aborting all unfinished fetch calls to avoid them modifying DB after it has been cleaned. Those unfinished fetch calls are remainings of the previous test. The aborting throws an error from all existing fetch calls which causes the test to fail.
Example
  beforeEach(async () => {
    jest.ignoreError({type: 'AbortError'});
    controller.abort();
    await cleanDB();
  });

Pitch

Sometimes errors are intentional like in my case

Hey @ErlanBazarov! Thanks for your feature proposal.
I'm not sure if I understand the use case. Could you give us an example that demonstrates more clearly why you think this should be a feature in Jest?
Try to also consider if there perhaps are things you could change around how you have designed the tests or how you do cleanup instead. If errors are as you say 'intentional' then they should still be handled (e.g. with a catch block). If they are not, Jest will and should fail.

@sigveio
Component.js
  componentDidMount(() => {
    const users = await fetch('http://localhost:1111/users', {method: 'GET'});
    this.setState(users);
  })

  render (
    go to another page
  )

test.js
 beforeEach(() => {
   // abort all remaining fetch calls here
   await cleanDB();
 })

 it('should correctly redirect', () => {
   render(Component);
   await clickGoToAnotherPageButton();
   // expect path to be /anotherPage here
 })

 it('should receive users', () => {
   await fillDbWithUsers();
   render(Component);
   // expect users to be on screen here
 })

This gives me an 'AbortError' error in the second test. I don't care about the first test anymore, so it is okay for me if the app related to the first test throws an error. However, I don't want my second test to fail
So, I want the app related to the first test to fail, but I don't want the test itself to fail.
'AbortError' is not expected to be in the actual app. It is part of testing. Therefore, I am not adding handles for this error in my app.

This gives me an 'AbortError' error in the second test. I don't care about the first test anymore, so it is okay for me if the app related to the first test throws an error. However, I don't want my second test to fail
So, I want the app related to the first test to fail, but I don't want the test itself to fail.

If something from one test affects another, that's generally a sign that something is wrong with your code/tests. It is most likely a sign that the first test finished prematurely. For example, to use await your functions should be async.

'AbortError' is not expected to be in the actual app.

That might be so, but generally speaking; in cases where an error is to be expected your test should still handle it (e.g. try/catch or promise .catch() in the test). Other than a failed assertion, Jest would only fail on uncaught errors. And that is, fundamentally, by design.


Screenshots are captured with a white background

I am attempting to capture a screenshot of a page with a transparent background, but the screenshot always has a white background.
I found Chromium issue #689349 and tried launching with --default-background-color=0 and also --default-background-color=00000000 but both failed to launch.

Since puppeteer is using the --remote-debugging-port option, it's probably getting the same error mentioned in Comment#19 on that Chromium issue.
Setting default background color is disabled when remote debugging is enabled.

Comment#20 says this:
If you use --remote-debugging-port, you'll have to set the color override yourself via your devtools client, using the DevTools command below. (The headless_shell can't do it for you, since there's only one simultaneous DevTools client connecion allowed.)

https://chromedevtools.github.io/devtools-protocol/tot/Emulation/#method-setDefaultBackgroundColorOverride

Looks like @meldron arrived at this conclusion in #341 a little while ago.

I verified that this works using this code:
const page = await browser.newPage();
page._emulationManager._client.send(
  'Emulation.setDefaultBackgroundColorOverride',
  { color: { r: 0, g: 0, b: 0, a: 0 } }
);

Glad it solved your problem!
But I am not incorrect that there is now public Emulation API?

There isn't a public Emulation API that I see. There is just lib/EmulationManager.js which is used internally by setViewport right now.

In my code sample above, page._emulationManager._client could just be page._client.

In 127f396 omitBackground can only be set for page.screenshot, so it will be sent every time you take a screenshot. Shouldn't it be possible to set it for page (browser.newPage()) or browser (puppeteer.launch) to avoid redundant calls?

Try here: Website Screenshot & Color Palette Bot


[PLugin] OpenTelemetry Tracer Plugin make request processing time increase

Hi everyone,
I using TrafficSrever branch: master - #828b7d3. I trying OpenTelemetry Tracer Plugin to manage tracer for system. When i use the plugin, it make request processing time increase.
When use plugin:

Don't use plugin:

Has anyone used this plugin yet?

How does your observability stack look like?
The plugin is sending a OTLP http request for sending the trace info to a backend. So if your backend is quite far away, it can take quite some time.
One alternative is this - https://opentelemetry.io/docs/collector/deployment/agent/
You can have the deployment of an agent/collector on the same host of your ATS. And you configure the plugin to send OTLP request to the agent/collector instead. That should be much faster. And then you let the agent/collector do its work to send the info to a real backend.

300+ms is still a lot.
I think we should try having the agent/collector in the local host.
I have not got the time to try the latest opentelemetry-cpp release. So I can't say if there is anything changed in the sdk that will cause this much latency.

@shukitchan Have you tried using opentelemetry without collector?

I think i found problem in the plugin. I change span processor from SimpleSpanProcessor to BatchSpanProcessor. This solved my problem.
@shukitchan Thank you very much!


Can't install on ubuntu 17.10

Hi, could you make it possible to install driver on ubuntu 17.10? Kernel version is: 4.13.
Once I try to install I get following error:
In function ‘memcpy’,
inlined from ‘rt_ioctl_iwaplist’ at /home/kasper/Pulpit/archer-t2u-ubuntu-installer/driver-files/os/linux/../../os/linux/sta_ioctl.c:696:2:
./include/linux/string.h:305:4: error: call to ‘__read_overflow2’ declared with attribute error: detected read beyond size of object passed as 2nd parameter
__read_overflow2();
^~~~~~~~~~~~~~~~~~
Thanks!
EDIT
I've fixed it, take a look at pull requests

Thanks a lot @kaszperro :D


subtitle for ZAP Chat 15

video: https://www.youtube.com/watch?v=s8DKKTTHsGM
Here are the subtitles for the new video.
There was a lot of crap in entry number 338 -> 341 and I'm not sure if it fits. Please take a closer look at this passage, thank you.

Thank you!

Many thanks! Will apply this asap...


DuplicatedTypeName exception raised for nested generics

Using nested generics causes an invalid DuplicatedTypeName exception to be raised when using the same type twice.
Minimal reproducible example
from typing import Generic, TypeVar

import strawberry

T = TypeVar("T")

@strawberry.type
class Wrapper(Generic[T]):
    value: T

@strawberry.type
class Query:
    a: Wrapper[Wrapper[int]]
    b: Wrapper[Wrapper[int]]

schema = strawberry.Schema(query=Query)

Exception
strawberry.exceptions.duplicated_type_name.DuplicatedTypeName:
Type IntWrapperWrapper is defined multiple times in the schema

System Information

Operating system: Ubuntu 22.04.1 LTS
Strawberry version: The check was first introduced in 0.144 and up until 0.159 it fails.

Any updates on this?

I'm also encountering this, is there any known workaround?


Prompted to Install Extension on Remote Host When it isn't Availabe

Does this issue occur when all extensions are disabled?: No, extension marketplace related issue

VS Code Version: 1.79.0
OS Version: Windows_NT x64 10.0.22621 (using remote container that is Alpine Linux x64 Bit)

Steps to Reproduce:

On windows machine install full VSCode client
On alpine container install VSCode CLI. Open tunnel on this machine using https://code.visualstudio.com/docs/remote/tunnels#_using-the-code-cli
Confirm that VS Code on windows machine is able to connect to VSCode CLI on alpine machine
Install an extension that is available on windows but NOT on alpine (example: IntelliCode for C# Dev Kit

Actual Outcome
You will see a message prompting you to install the extension in the remote extension host. If you click the button in the extension tab to install on the remote machine, you will then see an error message telling you that the extension is not available on that machine.

Expected Outcome:
It should be made clear when extensions will not be supported on the remote machine being used. For example, there could be a OS check before the prompt to install on remote machine is shown, and if the extension is not supported on that machine, a different message could be shown explaining why the extension is disabled.

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


please update to support bootstrap v4:

Now bootstrap has published v4 alpha which is great when building web app for modern browser.
Is it possible to update these snippets to support it?

+1 Many already using v4 in web apps. We use it even in production already because it has things that very useful, and is stable.
Or maybe better to have parallel snippet pack for v4. Because v4 final maybe some time away.

I'm not sure this could be part of the same project without conflicts. Do you guys have any recommendations or preference on handling BS3 and BS4 at the same time? I was thinking it might require a different extension in order to avoid conflicts. Either that, or the prefix for the snippets might need to be bs3- and bs4- or something like that. I'd love to hear some thoughts on how best to handle this.

Actually that is good question. Did not think it can be problem.
Your idea for prefix is the easy choice, but, when bs4 become the new standard, then peoples will complain "?why you use a prefix?".
So maybe new extension must be the choice.

Any update on this?

Just wondering if there are plans to update this for Boostrap 4 with it having been out already for a year and a half and in pre-release since 2016 as I can't think many people will be using this still for 3 as would have migrated to 4? This would be a useful addon if updated.

+1

You may use this fork for BS4 and VS 2017/2019
https://marketplace.visualstudio.com/items?itemName=RADKick.VSBootstrapSnippets&ssr=false#overview
https://github.com/radkick/vs-bootstrap-snippets

Hi, a new extension rewritten from the ground, which covers all the components of bootstrap 4 (+100 snippets) is now available, you can get it here:
https://marketplace.visualstudio.com/items?itemName=ouali-amar.bootstrap4vs
https://github.com/oufly/Bootstrap4vs


fix: fix i18n

Signed-off-by: moweiwei<EMAIL_ADDRESS>
What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

Codecov Report

Merging #159 (9f6782a) into master (8870027) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #159   +/-   ##
=======================================
  Coverage   46.95%   46.95%
=======================================
  Files           6        6
  Lines         558      558
  Branches      154      154
=======================================
  Hits          262      262
  Misses        231      231
  Partials       65       65

/cherrypick release-1.1


Azure Resource Graph Query Integration With Azure Monitor Alert

Does Azure monitor support creating alert based on Azure resource graph query result?
We have complicated logic to detect the non compliant resource, Azure resource graph query is the perfect fit for the query, but after resources are identified, we would like to send notification.
Please let me know if any product feature is available for this use case.
[Enter feedback here]

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

ID: 824e201e-3023-45c1-d14d-488e2584b9ef
Version Independent ID: fa14046b-ceb4-1368-2766-39e70c2088c2
Content: Overview of Azure Resource Graph - Azure Resource Graph
Content Source: articles/governance/resource-graph/overview.md
Service: resource-graph
GitHub Login: @DCtheGeek
Microsoft Alias: dacoulte

@Ronnie-personal You mention non-compliant resources.  Is that for Azure Policy non-compliance? If so, Azure Policy is now integrated with Azure Event Grid and you can subscribe to compliance state change events.  See Tutorial: Route policy state change events to Event Grid with Azure CLI for details.
There's no "trigger" event currently in Azure Resource Graph itself, but you could use something like a timer-based Azure Function or Logic App to run the query (likely using REST) and then to process those results and perform whatever actions you need. Since this is partially a feature ask, please see this potentially related item in UserVoice: is there any logic apps connector is available?.
Since this issue is a feature question and not a Doc issue, I'm going to close it. A good place to ask these types of questions is Microsoft Q&A to ask for guidance or UserVoice to request features or changes to the service.  Thanks for the question and hopefully the above helped!
I'm also tagging @bwren who owns content for Azure Monitor and might be able to answer if this will be possible from the Azure Monitor side in the future.
#assign:DCtheGeek
#label:"product-question"
#label:"assigned-to-author"
#label:"triaged"
#please-close


erlang: Fix build error on darwin

Motivation for this change
Erlang stopped building on Darwin as a result of https://github.com/NixOS/nixpkgs/pull/64458 (which bumped MACOSX_DEPLOYMENT_TARGET). This is because it was hardcoding 10.10 as the detected platform.
Fixes #66644
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Notify maintainers
cc @the-kenny @sjmackenzie @couchemar @gleber

Build succeeded. I don't have any good way to test erlang offhand, but I did run result/bin/erl and got a REPL. I haven't tested the other executables.

Looks good for me, but i have no MacOS to check

@GrahamcOfBorg build erlang


Support all Jest CLI Options

Type of issue
Feature request
Description
Should be able to run tests with any of the jest CLI options. It appears with fusion test --watch, the --watch flag is passed through, but others aren't.
I'm specifically looking for fusion test --onlyChanged to work.
Environment
<EMAIL_ADDRESS>

I don't think we will support all flags, but happy to whitelist flags as needed.


Support python 3.10

https://github.com/megvii-research/megfile/issues/116

Codecov Report

Merging #121 (7d4038f) into main (d7d2261) will decrease coverage by 0.53%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #121      +/-   ##
==========================================
- Coverage   90.69%   90.16%   -0.54%
==========================================
  Files          33       33
  Lines        3741     3741
==========================================
- Hits         3393     3373      -20
- Misses        348      368      +20

Impacted Files
Coverage Δ

megfile/pathlike.py
88.66% <100.00%> (ø)

megfile/lib/s3_buffered_writer.py
92.06% <0.00%> (-6.35%)
:arrow_down:

megfile/errors.py
85.31% <0.00%> (-3.39%)
:arrow_down:

megfile/lib/fnmatch.py
98.71% <0.00%> (-1.29%)
:arrow_down:

megfile/s3.py
90.72% <0.00%> (-0.64%)
:arrow_down:

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 d7d2261...7d4038f. Read the comment docs.


go/types: iota inside function in a ConstSpec is not accepted

https://play.golang.org/p/K0Vga-Y1fv reports an error, but the spec doesn't prohibit this code.
https://play.golang.org/p/MbPQO9FJku is accepted, and there is no reason why the former, with iota being declared in the universe block shouldn't also be accepted within the constant declaration.
See also #22344 .


WIP: Fix - Add Metrics support to OSO proxy

What does this PR do?
Support metrics URL along with API URL in OSO proxy.  Now, metrics URL also dynamically configured with traefik by OSIO provider. When any request arrived to OSO proxy, it will forward to api or metrics cluster.
Fix - https://github.com/openshiftio/openshift.io/issues/2342
Motivation
Direction towards removing all direct OSO call from OSIO UI.
More
OSIO provider integration test enhance to consider metrics url.
New component test added which test OSIO middleware without traefik.

Another PR created - https://github.com/fabric8-services/fabric8-oso-proxy/pull/16


Question: debugging in pycharm (or other arbitrary IDE)

Hello, so quick question. I have locust installed in a venv on python 3 (locustio==0.8a2). I've been building and testing a locust python script, but I'm trying to traverse some complicated json responses. In order to run a locust script, you have to run locust loadtest-file.py
Is it possible to attach a debugger while running a locust script?

not really an answer, but a few comments:

Is it possible to attach a debugger while running a locust script?
I've been building and testing a locust python script, but

a locustfile is a normal python file, so you can debug it directly without the rest of the framework.  It's easier to debugging a single Locust than a swarm.

I'm trying to traverse some complicated json responses.

add code so your Locust class gets created when locustfile is run as a script (not imported) ... you can usually do most develop against a single instance of Locust.

Took me a minute to get there so I figured I'd share:
I create a subclass of HttpLocust called WebsiteUser. To execute a single instance from the CLI, I added:
if __name__ == '__main__':
    x = WebsiteUser()
    x.run()

If I have a pdb breakpoint in one of my tasks, this triggers the breakpoint.

Here I managed to get Intellij Idea (Similar to PyCharm) to break while locust is running.

Turn on the gevent compatible option in the debugger
Run the locust executable as the script, (which locust)

This seems to work for me. Also, note that the remote debug suggestion above requires a paid version of PyCharm or its cousin of a plugin in IntelliJ. I think the steps I have above will work for PyCharm CE as well.

is there a similar tip for visual studio code ?

just to add to what @nelsonjchen has stated, for IntelliJ set the "Script path" to what which locust returns from the command line then set the "Parameters" to -f script_you_want_to_debug.py --host http://whatever.  you should be able hit breakpoints where you placed them in  script_you_want_to_debug.py

@ad34

is there a similar tip for visual studio code ?

This is what I put in my .vscode\launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Locust",
            "type": "python",
            "request": "launch",
            "module": "locust",
            "args": [
                "-f",
                "${file}",
            ],
            "gevent": true,
            "console": "integratedTerminal"
        }
    ]
}

You can parameters to the args array, if you want an headless experience, set user and hatche rate, the host, etc.

Debug doesn't work in locust >= 1.2.3
To enable debug add env variable:
GEVENT_SUPPORT=True

In locust-plugins you can find debug example:
https://github.com/SvenskaSpel/locust-plugins/blob/master/examples/debug_ex_advanced.py

I use Eclipse with Pydev. In Preferences->PyDev->Debug the 2nd to last option is "Gevent compatible debugging?".
Gevent has to do with the lightweight threading used by Locust ( greenlets ) and I am too ignorant to know much more than that. Once I clicked that, I was able to stop at a breakpoint in my code.
Thanks to all who provided the information and the person who wrote the Single User locust-plugin.

I was able to develop, run and debug using the "Library" mode.
https://docs.locust.io/en/stable/use-as-lib.html#full-example (added this to bottom of my tests and modified them)
recent PyCharm config allows for a checkbox to enable Gevent compatible debugging

Turn on the gevent compatible option in the debugger
Run the locust executable as the script, (which locust)

This seems to work for me. Also, note that the remote debug suggestion above requires a paid version of PyCharm or its cousin of a plugin in IntelliJ. I think the steps I have above will work for PyCharm CE as well.

Thanks, worked like a charm. Before I enabled this setting, the debugger would seem to "hang" and would never reach a breakpoint. For all those interested this is where you can enable the gevent compatible option in the debugger in PyCharm,


The "default" is not localized under Extension->C/C++ node in the setting (UI)

VSCode Version: VSCode 1.46.1

Steps to Reproduce:

Install VSCode
Install Language Extension Chinese(Simplified)
Open the Setting UI window
Search "Code folding" and expand the dropdown options

Expected:
The character "default" is localized

Verified via code review


integration_test?

In case Flutter Driver got deprecated, is there a plan to use Integration Test instead?
https://docs.flutter.dev/release/breaking-changes/flutter-driver-migration

Unfortunately it isn't possible at this stage.
See #16 and https://github.com/tim-smart/flutter-emulators-screenshots-demo/issues/5


MNT: migrate ruff config

This follows two changes in ruff's configuration:

ruff now properly detects our minimum supported Python version so it doesn't need an extra option
most rules have been moved to a ruff.lint section to clarify the distinction with ruff.format

rebased to refresh CI


Allow references to parent properties in org.zfsbootmenu:commandline

Any reference to %{parent} in org.zfsbootmenu:commandline will be replaced with the value of the same property on the parent filesystem (with parent references above recursively expanded), allowing easy specification of common options at a mutual parent of two BEs and overrides or additions of individual options per-BE. The value of %{parent} is always an empty string on a root filesystem.
This is not intended to be sophisticated, and %{parent} appearing within other words will be replaced regardless. The assumption is that %{parent} is unique enough and will not conflict with real KCL options, so dumb global replacement is sufficient.
Tested with the following setup:
# zfs list -o name,org.zfsbootmenu:commandline
NAME             ORG.ZFSBOOTMENU:COMMANDLINE
ztest            loglevel=4 spl_hostid=43b06f17 %{parent}
ztest/ROOT       %{parent} rw console=tty1 console=ttyS0
ztest/ROOT/void  %{parent} loglevel=7

The command-line as parsed by ZBM appears in the preview pane as
loglevel=4 spl_hostid=43b06f17  rw console=tty1 console=ttyS0 loglevel=7

which is the expected value. (Note the double space after the spl_hostid argument, from the space before the empty %{parent} on ztest and the space following the expanded %{parent} on ztest/ROOT.

Hrm, we have a problem here.
zfs set org.zfsbootmenu:commandline='ztest_arg' ztest
zfs set org.zfsbootmenu:commandline='%{parent} ztest_root_arg ztest_root_arg2' ztest/ROOT

will cause the property to be inherited as %{parent} ztest_root_arg ztest_root_arg2 on ztest/ROOT/bootenv. Then when we do the substitution, we get %{parent} ztest_root_arg ztest_root_arg2 again for the %{parent} value associated with ztest/ROOT, and then we add the value for ztest to get
ztest ztest_root_arg ztest_root_arg2 ztest_root_arg ztest_root_arg2

Repeated values are not guaranteed to be safe. (Add two ip= commands for dracut-crypt-ssh and watch your image fail to boot.)
I think the right fix here is to read the source of the org.zfsbootmenu:commandline property in addition to the value. If the value does not match %{parent}, nothing special must be done. Otherwise, if the property is inherited (from any parent), we can do one of two things:

Ignore the source of the inheritance, and just return the (interpolated) string for read_kcl_prop from the immediate parent. Recursively, this will work itself out, but it will touch every parent until it hits a filesystem where the property isn't inherited.
Scrape the inherited source value for the property in the desired filesystem, and jump right to that property. For example, when I dozfs set org.zfsbootmenu:dummyprop=myprop system
zfs get -H -o source,value org.zfsbootmenu:dummyprop system/home/ajh/music

the printed result isinherited from system	myprop

We know we can jump right up to system and skip the query for all the intermediate ancestors, but we increase the parsing complexity.

It's not clear what option is best, but I guess I favor Option 1.

I implemented Option 1 and believe it now behaves as expected with inheritance.


Remove basic Minuet implementation and support

With Symphony chat moving from Minuet to Electron and due to lack of api documentation it is not worth maintaining in the main branch.  This can be revisited at a later time if support should be provided.

The Minuet implementation had 100% coverage so removing it lowered total coverage.


Unable to install, 404 Not Found<EMAIL_ADDRESS>

I was unable to test the library, unable to find that http-timer module
After running npm install is-online
I get that 404 Not Found<EMAIL_ADDRESS>error

That's a problem with your system or npm setup. Try upgrading npm.
Support: https://npm.community/c/support


Only show parts for top three results

There is a requirement for only the top three search results to show parts, which is currently handled by search-api only returning parts for the top three results. However, this should really be a frontend concern, and shouldn't be handled by the backend returning different result data depending on what the position of a result is across all results.

Determine the result_number for each result in ResultSetPresenter and pass on to SearchResultPresenter (ideally this would use "rank" for better semantics but that's currently used by a debug parameter)
Determine in SearchResultPresenter whether or not to include parts in the presentation depending on the result number

See e.g. this query for parts being unaffected and continuing to show for top 3 results.


fixes a narrowing warning (treated as an error) affecting some platforms

Looks like https://github.com/KhronosGroup/OpenCL-CTS/pull/2063 has a "narrowing" warning that is now treated as an error and is hence causing CI builds to fail.
Applies the same fix as https://github.com/KhronosGroup/OpenCL-CTS/pull/2107 to fix this warning.

CC @shajder @ahesham-arm @coldav - I can't add you as reviewers, but you'll probably want this fix.

Non-controversial, merging immediately.


Document 1.2 features

New 1.2 features that need to be documented...

[x] #628
[x] #147
[x] #861
[x] #477
[x] #877
[x] #1078
[x] #1729
[x] #1887
[x] #1886
[x] #2019
[x] #2109
[x] #2031
[x] #1933

Tracking by #3030


AlienFX Monitor First Time Use Findings

Main Sensors panel:

a) Auto-expand the 4 columns
b) Double-click column divider does not auto-expand column to minimum required width to show all contained data

Allow selecting multiple rows and setting Show in Tray options.

When I switched to Use BIOS sensors, all  sensors were removed from panel. I tried Show Hidden checkbox, and saw what appeared to be the same 5 Windows sensors. If they ARE the same, then this is the wrong way to do this and it is covered in #4 below. If they are NOT the same, then #4 covers them as well.

Make Win/BIOS sensor check boxes Radio Buttons, so only one can be active at a time? If you continue to allow both, you need to demark which is which since the names are currently the same, and you should stop using the "hidden" functionality to "swap" sets.

I could find no function for Reset button.

Rename the label Sensor settings to "Selected Sensor Settings".

What is the purpose of the Then lower checkbox? I would think it is for removing the alarm if the value goes below some set value. The problem is that you do not provide a second value. I recommend showing a second value and label it "Reset at". If you do this, double the height of the Sensor Settings component and place Reset at check box and value box below the Alarm at ones.

An even BETTER way to handle the entire Sensor Settings functionality is to add ALL of this to the Sensors panel. Easy-peasy, lemon-squeezy!! Don't make people click all over the place back-and-forth.

OK, I remembered there was a Read Me! :-0 Now I see that you CAN have multiple sensors selected, and that they all show. This definitely means you need to somehow demark each shown sensor type. I recommend adding a column via #8's improved mechanism called Type and using values of W, B and A for Windows, BIOS and Alienware.

#2 above (select multiple rows) is now ESPECIALLY important since it seems that the Reset min/max button will reset ALL rows shown.
I recommend showing TWO bottons for Reset min/max - one for ALL  and one for Selected.

When I mimize the app, it disappears. It is not on my task bar, nor in the tray. It is still running though, via Process Explorer. When I started it up again via Start Menu, I now have two executables running. I think this is a definite no-no. Check for already running process and force the app window to display at its last location.
UPDATE: its seems that the first app running did not show in task bar or tray. The second one DID drop to the tray when I minimized it.

Running PerfMon, I see that you make these 5 registry calls every second. What is the purpose for this repeated set?

query key: HKLM
open: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
close: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
queryvalue: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\Disable Performance Counters
query key: HKLM
That's plenty for now. I have some real work to do! Kudo's and thanks again for your tooling for the Alienware community!!

This is a known bug, VERY hard to fix. I think i do it into next app re-factoring, i have other things i don't so happy about. For now, just minimize-restore app and it will be resized.
Ok, let me think.
Bug. List not in sync after it... Ok, let me check how it happened, i have this too.
No. They have different set of values. In fact, once-used sensors always remembered, just don't updated. Currently, BIOS have only powers and expose temps only if Alieware disabled (Alienware have wider temp set, including BIOS temp). Windows also have RAM load, GPU load, HDD load, network load.
It reset min/max for this sensor only.
Ok, it's more clear.
Direction. If not checked, alarm triggered, then value become higher than setting. If checked - then it becomes lower than setting.
No. It's hard to find sensors in this mess, as well as configure out is it active or not. So it should be 2 lists... But maybe i remove inactive by source from hidden.
Good point. Type can be useful, i'll add it.
THERE ARE two buttons - "Reset min/max" for all and "Reset" for current. First one also accessible from tray menu.
Some mystery. Tray icons (both app and tray sensors) are ALWAYS visible from app start, minimized or not. The only ways to have this situation are no tray available (but i handle this and add them then tray started), or Windows not allow adding icon (return error). I don't know how to handle the 2nd one (and it looks the same from code part).
Aye. Windows sensors use performance indicators. Seems like i need to stop/start collection if windows sensor's state altered. Thanks.

Here is next release beta - alienfx-mon.zip
It's A LOT of changes (i refactor internal structures as well, and change logic).
No more crazy names (but maybe you need to clear registry - i'll do it into final version), and most of other points fixed (except multiply selection).
Additionally, now both main and hidden list only show sensors from active sources.
Also, clearing sensor name update it to default (BIOS) name.
I add 2-letter code for sensor source/type, and this version also have sensor ID (for debug, i remove it later).

FOLLOW UP TO ORIGINAL FINDINGS:
1.1 How can it be a bug that you can't make the columns auto-expand or expand to fit on double-clicking a column divider, much less one that is "VERY hard to fix"?!? It is a simple windows control! :-) Use a different grid if the one you have doesn't easily allow that.
1.2 Since you are apparently going to rework the main panel in the next major release, consider adding in (multi-)column sorting. This too should be a standard windows control feature, and thus easy to implement. Some people may want to see things ordered by name, especially when they are using multiple sources.
4.1 This one is irrelevant since you are going to add a column to the main panel indicating which Source of sensor each row is.
7.1 That is quite obtuse. Here is a suggestion:

8.1 " It's hard to find sensors in this mess, as well as configure out is it active or not. ". That is EXACTLY why it needs to be changed!! I am REALLY REALLY pushing you to put all of the INFORMATION about each setting as columns in the main panel. Trust me, that is absolutely the best way to go. Actually EVERYTHING can easily go in the main panel grid. Decent grid controls are easy to program. The checkboxes for alarms can go in two columns: the first would simply be the Alarm value, and if the column contains a value then the alarm is On. The other column would contain the two checkboxes for When Above and When Below. You could put those into separate columns if you wanted, but either way make sure that the check boxes are mutually exclusive (thus radio buttons are a better design choice).
Let me know if you are interested in pursuing this and I can stub out the GUI if you like.
9.1 I am changing what this should be called. It should be Source, not Type. Type, to me, would be fan, temp, etc. Source is a much more descriptive word.
11.1 I think this may have been yet another artifact of DisplayFusion. I am currently running with that disabled, and when I minimize AlienMon, it goes to the tray as expected.
NEW FINDINGS

I had the app opened, not as admin, Windows as source, cpu load set to show in the tray. I then added Alienware as the source, and the app restarted with UAC prompt. When it was back up, I had TWO cpu load values showing in the tray. When I moved the mouse over them, one disappeared. I have seen other apps so similar things, so this may be a flaw in the tray management routines of windows.

1.1 It was - updates coming other way before. I rework this in latest release completely.
1.2 No, it's not so easy. Windows only provide events for it, but not complex implementation. I'll think about it.
7.1Occam's razor didn't allow me to make 2 checkboxes instead of 1. But i got it can be misunderstanded, so i think about a correct name for it.
8.1 It's funny. No, List Control is not easy to handle and buggy in many places (especially checkboxes). I have a lot of issues at alienfan-gui using it. However, i don't like to have so much columns - first it harder to read, second it's limit name width.
Yes, any suggestion about UI, even if will not implement, is appreciated. Just keep it mind it can only LOOKS easy, but really not so. In fact, Mon was a simple task - i just need a fast way to add sensor icons to tray. Maybe UI need the global re-design, including different concept.
9.1 It's name IS "Source". Type is useful to understand what is it, especially for Windows sensors. F.e. 55 is RAM load, CPU load or Temperature? Or power consume? Default names can not always explain it.
11.1 I meet this situation with alienfx-gui one time during Windows update restart. I made some countermeasures anyway, app should be reachable anyway!

Yes. Fixed yet.

Outdated now. Please open new issue if you find something else.


Misc visual fixes

Fixed various small issues:

Made TabView bottom border span the entire window width
Made ScrollBar inner thumb rounded again
Made SplitButton look more like the new add tab button
Adjusted rename box height (24px, like the official compact sizing height)
Adjusted caption button colors to match Windows 11
ColorPicker can now escape window bounds
Tweaked ColorPicker buttons

work in progress comparison shots:

Element
Before
After

Made TabView bottom border span the entire window width

Made ScrollBar inner thumb rounded again

Made SplitButton look more like the new add tab button

Adjusted rename box height (24px, like the official compact sizing height)

Adjusted caption button colors to match Windows 11
before
after

ColorPicker can now escape window bounds

Tweaked ColorPicker buttons
before
after

</table

Edgium:

notepad rejuv:

Terminal before:

Terminal after:

XCG windowing sample:

Okay so it totally looks like they changed the caption button colors on us. Cool.

 	TerminalApp.dll!winrt::impl::consume_Windows_UI_Xaml_Shapes_IShape<winrt::Windows::UI::Xaml::Shapes::Rectangle>::Fill() Line 201	C++
>	TerminalApp.dll!winrt::TerminalApp::implementation::ColorPickupFlyout::ColorButton_Click(const winrt::Windows::Foundation::IInspectable & sender, const winrt::Windows::UI::Xaml::RoutedEventArgs & __formal) Line 38	C++
 	[External Code]
 	TerminalApp.dll!winrt::impl::delegate<winrt::Windows::UI::Xaml::RoutedEventHandler,`winrt::TerminalApp::implementation::ColorPickupFlyoutT<winrt::TerminalApp::implementation::ColorPickupFlyout>::Connect'::`15'::<lambda_10>>::Invoke(void * sender, void * e) Line 4672	C++

    void ColorPickupFlyout::ColorButton_Click(IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const&)
    {
        auto button{ sender.as<Windows::UI::Xaml::Controls::Button>() };
        auto rectangle{ button.Content().as<Windows::UI::Xaml::Shapes::Rectangle>() };
        auto rectClr{ rectangle.Fill().as<Windows::UI::Xaml::Media::SolidColorBrush>() };
        _ColorSelectedHandlers(rectClr.Color());
        Hide();
    }

Well yep that'll do it

Color buttons now have a colored background and an overlay with the default button style, so that they change on hover/press.
Because they use the default colors, they'll look a bit different on light mode vs dark mode.
I think I should also update the buttons in Settings to work like this.

I think what makes the add tab button look squished is that it's really wide, and I'm not sure if I can customize the width without retemplating.

I think what makes the add tab button look squished is that it's really wide, and I'm not sure if I can customize the width without retemplating.

I think these changes look good and they align with our design guidelines (from what I can tell). I'm wondering if we just make the split button a bit taller to match the height of the tabs? That may help the squishiness.

Turns out there is actually a way to resize the buttons:

This matches the TabView button. Is this ok? Otherwise I'll revert the design.

This matches the TabView button. Is this ok?

Definitely. I think we're cool with that. I discussed more with the team and everyone else was cool with this sort of design. They definitely turned me around on it too ☺
With that fix to the new tab button, the only blocking bit would be to get that color picker crash sorted. Lemme see if I can't whip a diff up quick.

Okay, I think everything is fixed now.

Redesign the tab, although this does not conform to the current WinUI style, this will make the relationship between the highlighted tab, the title bar, and the content smoother.


Code is correct but won't pass

I've completed the first 2 stepts but i can't get pass the third one...if i change wordBlanks acordingly to the 3rd step it says that the 2nd one is not completed.
Challenge Word Blanks has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
https://postimg.org/image/cws0yldg5/
My code:

function wordBlanks(myNoun, myAdjective, myVerb, myAdverb) {
  var result = "";
  // Your code below this line
  myNoun = "dog";
  myAdjective = "big";
  myVerb = "ran";
  myAdverb = "quickly";

  result += "My "+ myAdjective +" "+ myNoun +" " + myVerb + " very " + myAdverb;

  // Your code above this line
  return result;
}

// Change the words here to test your function
wordBlanks("dog", "big", "ran", "quickly");

@MeHigh777 thanks for the issue but if you get stuck or have questions with a challenge in the future, please first ask questions to the Help Room. Hint: do not reassign your variables within the function. Make use of the function parameters being passed in. Happy coding!

Ooohhhh...haha...i get it now.
Thanks!
Much apreciated


Fix broken unit tests

Fixes: #2654.

@Parker77 - do you have time for a code review?

Sorry, @Parker77 - something else is going on.  Closing for now.


Repo sync for protected CLA branch

The pull request is created from main637828743234124634 to main to fix git push error for protected CLA branch

@ghogen : Thanks for your contribution! The author(s) have been notified to review your proposed change.


PIP bugs

PIP Report

Please reduce the font size of the Viral Aetiologies subheader in the key findings box
Please verify and update the status of laboratory results in the epi curve report according to the below:

pcr./flu_b_pcr = negative and pcr./h1n1_pcr = positive: Status = H1N1 (colour = red)
pcr./flu_b_pcr = negative and pcr./h3_pcr = positive: Status = H3 (colour = yellow)
pcr./flu_b_pcr = negative and pcr./flu_b_pcr = positive: Status = B (colour = blue)
pcr./flu_b_pcr = positive and pcr./flu_a_pcr = positive: Status = Mixed (colour = grey)
PIP Tab in Technical Site

Please verify and update the status in the alerts line list according to the above, so they will read: H1N1, H3, B or Mixed.

PIP Download

Please include Laboratory data in the Download function

Hi John,  types are currently determined according to the following columns and conditions...
                "Influenza A": {
                    "column": "pcr./flu_a_pcr",
                    "condition": "positive"
                },
                "H1": {
                    "column": "pcr./h1_pcr",
                    "condition": "positive"
                },
                "H3": {
                    "column": "pcr./h3_pcr",
                    "condition": "positive"
                },
                "H1N1": {
                    "column": "pcr./h1n1_pcr",
                    "condition": "positive"
                },
                "Influenza B": {
                    "column": "pcr./flu_b_pcr",
                    "condition": "positive"
                }
            } ```

Can you confirm that status = *A* should be:
pcr./flu_b_pcr = negative and pcr./flu_a_pcr = positive: Status = *A* (colour = *???*)

Also you say:
pcr./flu_b_pcr = negative and pcr./flu_b_pcr = positive: Status = *B* (colour = blue)

But I'm assuming this is an error because the value can be both positive and negative at the same time surely?

At the moment, I don't think we have the code to define link types based upon two different conditions, but I'm sure I can figure out the code needed to make that happen.

Thanks Jonathan - so we can remove Influenza A. Infact H1N1 and H3 are both subtypes of A and there is no A on its own.
For Influenza B, yes it was a mistake sorry:
pcr./flu_b_pcr = positive and pcr./flu_a_pcr = negative: Status = B (colour = blue)

By "include laboratory data in the download function" do you mean the "download raw data" part of the "download" page. I notice that "labs" is currently broken.

so that the lab results are included in the prepared "PIP" excel sheet that is downloaded by default (from the drop down list). what do you mean labs is broken?

There's something strange happening when selectding labs from the download raw data form. it's not updating the fields properly. I'll make an issue for it, but presumably it isn't a priority at the moment...
I see, so maybe if I add a column "laboratory results" to be filled with the "H1N1", "H3", "B" or "Mixed" if confirmed and "suspected" if not?

Can I just confirm that we are getting rid of H1 and just keeping H1N1 and H3?

Everything apart from the download data update should now be deployed.  Have a glance over it and let me know if something isn't right.

This should all be deployed now.


Multipart names may include single quote if double-quote enclosed

The parsing of multipart parts in Apache HTTP Server is quite permissive.  So much so that a serious issue was identified nearly 10 years ago whereby an attacker could use single quotes to bypass many rules by exploiting parsing differences between Apache and ModSecurity.
One reference to this is located here:
https://blog.ivanristic.com/2012/06/modsecurity-and-modsecurity-core-rule-set-multipart-bypasses.html
In response, ModSecurity was updated to always set the 'Invalid Quoting' flag if a single quote appears anywhere in the 'name' or 'filename' value of the Content-Disposition header of a multipart part ( https://github.com/SpiderLabs/ModSecurity/issues/460 ).
This has been a hindrance for some users, since a single quote character within such a name can be a perfectly legitimate use case.
There has always been a workaround:  to not use the standard check of MULTIPART_STRICT_ERROR that is included with modsecurity.conf-recommended, but instead use an equivalent check that excludes testing of MULTIPART_INVALID_QUOTING.  Not only is the workaround somewhat inconvenient, doing that also means abandoning testing for constructs like: name='abc', which is invalid.
I have carefully examined the Apache HTTP Server code at issue and determined that it is safe to loosen this restriction.  With this pull request, ModSecurity will no longer raise the 'Invalid Quoting' condition on encountering a single quote within the 'name' or 'filename' as long as the entire value is encapsulated in double quotes.
The following will no longer result in 'Invalid Quoting':
name="ab'cd"

The following will continue to result in 'Invalid Quoting':
name='abcd'
name=ab'cd

The equivalent change for ModSecurity v3 will follow.

Closing since it is no longer directly merge-able.  A replacement will appear momentarily.


Add alternative separators for element strings of the remaining functions in CellService

Hey,
In addition to #801 I added the alternative separators for the remaining functions to keep the interface consistent.
The rule and feeder checking functions have the possibility to pass an Iterator instead of a string. That could also make sense for the get_value function and would make string splitting obsolete. Maybe we could pass some kind of data structure that allows for the definition of multiple hierarchies too.
Best regards
Tobias

Thanks for the PR @tobiaskapser. I will merge it as it is now.
I agree it would be nice if the function could consume an Iterable of strings.
In that case, if a string is passed it would treat it as the special element string.
If any other type of iterable is passed the function could treat it accordingly.
As you already pointed out, a simple iterable couldn't be used to describe cells on multiple alternate hierarchies.
I wonder if perhaps we could accept an iterable of mdxpy.Member
[
  Member.of('d1', 'd1', 'e1'),
  Member.of('d2', 'h1', 'c4'),
  Member.of('d2', 'h2', 'c8'),
]