SendVerificationCode method is returning Error Code: 16 in production for some users

Description
I'm using Firebase Auth in production. I have Firebase AppCheck enabled and enforced for Authentication.
A small percentage of my users on iOS are seeing the sdk error out with An internal error has occurred, print and inspect the error details for more information. when trying to request a verification code.
I went through our logs in Google Cloud and noticed that the google.cloud.identitytoolkit.v1.AuthenticationService.SendVerificationCode method is failing with error code 16 and message Error code: 16 for them. The logs don't provide any other indication of what error code 16 might be and my search of this error online plus in the firebase emulation tools has not resulted in any answers. Please see the full log with number, ip address, and project details redacted below:
{
  "insertId": "kjdxlhdp2nu",
  "jsonPayload": {
    "status": {
      "code": 16,
      "message": "Error code: 16"
    },
    "request": {
      "phoneNumber": "xxxxxxxxxxxxx",
      "@type": "type.googleapis.com/google.cloud.identitytoolkit.v1.SendVerificationCodeRequest"
    },
    "requestMetadata": {
      "callerIp": "xxxxxxxxxxxx",
      "callerSuppliedUserAgent": "FirebaseAuth.iOS/10.17.0 xxxxxxxxxxxx/7.27 iPhone/16.5.1 hw/iPhone12_3,gzip(gfe),gzip(gfe)"
    },
    "methodName": "google.cloud.identitytoolkit.v1.AuthenticationService.SendVerificationCode",
    "@type": "type.googleapis.com/google.cloud.identitytoolkit.logging.RequestLog",
    "serviceName": "identitytoolkit.googleapis.com"
  },
  "resource": {
    "type": "identitytoolkit_project",
    "labels": {
      "project_id": "xxxxxxxxxxx"
    }
  },
  "timestamp": "2023-11-15T23:25:18.518Z",
  "severity": "ERROR",
  "logName": "projects/xxxxxxxxxxxx/logs/identitytoolkit.googleapis.com%2Frequests",
  "receiveTimestamp": "2023-11-15T23:25:18.876791432Z"
}

As you can see, I am using the latest Firebase iOS SDK (10.17.0) and the user has the latest version of my app.
I doubt this is a clear cut misconfiguration on our side since the majority of users are able to sign in with no issue. I would like if Firebase team can decipher what error code 16 might mean and why the SDK is not providing a more useful error message.
Reproducing the issue
No response
Firebase SDK Version
10.17.0
Xcode Version
15.0
Installation Method
CocoaPods
Firebase Product(s)
App Check, Authentication
Targeted Platforms
iOS
Relevant Log Output
{
  "insertId": "kjdxlhdp2nu",
  "jsonPayload": {
    "status": {
      "code": 16,
      "message": "Error code: 16"
    },
    "request": {
      "phoneNumber": "xxxxxxxxxxxxx",
      "@type": "type.googleapis.com/google.cloud.identitytoolkit.v1.SendVerificationCodeRequest"
    },
    "requestMetadata": {
      "callerIp": "xxxxxxxxxxxx",
      "callerSuppliedUserAgent": "FirebaseAuth.iOS/10.17.0 xxxxxxxxxxxx/7.27 iPhone/16.5.1 hw/iPhone12_3,gzip(gfe),gzip(gfe)"
    },
    "methodName": "google.cloud.identitytoolkit.v1.AuthenticationService.SendVerificationCode",
    "@type": "type.googleapis.com/google.cloud.identitytoolkit.logging.RequestLog",
    "serviceName": "identitytoolkit.googleapis.com"
  },
  "resource": {
    "type": "identitytoolkit_project",
    "labels": {
      "project_id": "xxxxxxxxxxx"
    }
  },
  "timestamp": "2023-11-15T23:25:18.518Z",
  "severity": "ERROR",
  "logName": "projects/xxxxxxxxxxxx/logs/identitytoolkit.googleapis.com%2Frequests",
  "receiveTimestamp": "2023-11-15T23:25:18.876791432Z"
}

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet

Replace this line with the contents of your Package.resolved.

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
# Uncomment this line if you're using Swift
use_frameworks!

platform :ios, '13.0'

target 'XXXXXXXXX' do
    project 'XXXXXXXXX', 'Debug' => :debug, 'Debug.Staging' => :debug, 'Release' => :release, 'Release.Staging' => :release
    pod 'FirebaseMessaging'
    pod 'FirebaseAuth'
    pod 'FirebaseAnalytics'
    pod 'FirebaseAppCheck'
    pod 'FirebaseCrashlytics'
    pod 'FirebaseRemoteConfig'

end

When App Check is enabled, error code 16 indicates a request was rejected because the App Check token was missing or invalid. You can view a more granular breakdown of rejected requests in the App Check monitoring graph on Firebase Console. In this case App Check is working as expected and rejecting bad requests.
cc @weixifan, we should probably document this better since there's no online reference materials for this error code.

Closing this issue since it appears to be working as intended, but if you reproduce this error on a device with a valid token, please re-open the issue.

Thank you for the reply @morganchen12!
That was one of my guesses. I checked the monitoring graph and it looks like around 12% of production requests fail due to an invalid AppCheck token. It doesn't seem plausible to me that 12% of my customers are using jailbroken devices or using emulated environments. There has to be an issue with AppCheck token generation in firebase SDK to be causing this high percentage of failures. I expect the natural failure rate to be somewhere close to 1-2%.
I initially thought that https://github.com/firebase/firebase-ios-sdk/pull/11986 could be the culprit (I personally observed this issue on my device), but from my investigation and the log I included, it is clear that the customers are on 10.17.0 (with the fix merged in) and still facing this issue.
I am going to investigate more and try to produce this on a local device or obtain logs from a customer.

@minlite, can you file a support ticket? This way the Firebase team can look at your project directly to see if something's going wrong.

@minlite, can you file a support ticket? This way the Firebase team can look at your project directly to see if something's going wrong.

I have opened support case 10259958.

@minlite Can you inform us here what Firebase support said? We're trying to figure out this exact same thing over here..

@swftvsn Support initially denied that the issue is from Firebase. After I pointed out that 10% of our users as well as users from other production apps are seeing the same issue, they agreed to escalate issue to engineering. No updates after that.

Thank you for filing this issue.
To clarify, when viewing logs in Cloud Logging, you are looking at the errors experienced by your project's activities in an entire backend. These are not just App Check logs per se. In your case, the backend emitting this log entry is the Firebase Authentication backend, and that backend controls the exact error messages and error codes that are emitted.
I looked into this, and the Firebase Authentication backend uses error codes are the standard codes documented here. Error code 16 is UNAUTHENTICATED and it maps to HTTP 401 Unauthorized.
Because these log entries represent your project's activity in the backend, note that these errors may or may not be caused by App Check. Any call to SendVerificationCode that resulted in UNAUTHENTICATED would be logged in this way, regardless whether App Check was the component rejecting the request or not.
Note also that Firebase Authentication uses its own mandatory layer of abuse prevention (Play Integrity + reCAPTCHA fallback on Android, APNS + reCAPTCHA on iOS) in addition to a layer of optional protection by App Check that you opt into. Without further information from the backend or from the device itself, it's hard to say which component rejected the request here.
Finally, note that it is difficult to perfectly discern the actual false positive rate (that is, the true rate at which genuine clients are labelled as invalid). Were additional signals observed that would indicate that the invalid traffic was in fact legitimate traffic? In other words, how confident are we that these aren't largely from unwanted clients?
One thing you can do is to temporarily unenforce App Check, wait 15 minutes, and afterwards, any UNAUTHENTICATED (error code 16) errors you observe are not caused by App Check.
If after investigating, you have determined that App Check is the one rejecting these requests, the next step would be to investigate why your chosen attestation provider is rejecting your user's devices. It would be especially helpful if you can see the attestation provider error messages logged on-device. Since App Check does not maintain these attestation providers, reaching out directly to their support would be a good idea. However, App Check does maintain the handshake procedures with out-of-the-box-supported attestation providers in the App Check SDK, so if we can provide evidence that it is a problem there, we will definitely take a look.
Hope this helps.

Hi @weixifan,
Thank you for the detailed reply and taking the time to look into this issue. I can address a few of the points you brought up:
My investigation of this issue on our platform first began when our support team started getting emails from legitimate users who could not log onto our platform due to seeing "An internal error has occurred, print and inspect the error details for more information." My gut feeling immediately pointed towards an AppCheck issue. Initially I assumed these were requests either from users with older clients before AppCheck support was introduced or from users with tampered with devices, however closer inspection of the users' phone numbers and our logs indicated that they were on the latest version of our app, as well as the Firebase SDK. Additionally, we verified that the users emailing us were legitimate users with stock devices so we are pretty confident that the traffic from these devices should be accepted.

One thing you can do is to temporarily unenforce App Check, wait 15 minutes, and afterwards, any UNAUTHENTICATED (error code 16) errors you observe are not caused by App Check.

I went ahead and disabled App Check enforcement about a week ago, after which all the Error Code: 16 errors from our logs disappeared. This confirmed it is likely an issue with App Check or the Attestation provider.

If after investigating, you have determined that App Check is the one rejecting these requests, the next step would be to investigate why your chosen attestation provider is rejecting your user's devices. It would be especially helpful if you can see the attestation provider error messages logged on-device.

Is there a specific way you would recommend obtaining these logs from our devices of interest? Please let me know if the output of a specific function call would be beneficial to determining the root cause of the issue. Since these deices are all using iOS14+, the provider our app uses is FIRAppAttestProvider.
Thanks!

I just came across this as I was investigating why 4k+ of our users are getting error code 16 on iOS devices. Has there been any follow up?

@jostster I still have App Check disabled since we could not accept losing users on sign up due to this error.
I have continued to investigate this but have found no solution. It is clear though that App Check is the culprit, so it is either a bug from Apple in generating AppAttest tokens or from Google's backend verifying the token. The support case 10259958 is still pending.
I would appreciate it if you could update this issue if you happen to come across more info as far as user segment or commonalities.

And of course Apple and Google will both say "Works on my machine" so it sounds like we are left to either migrate off firebase or find the cause ourselves in the dark.
Did you submit an Apple Feedback yet?

Just an FYI from our logs it seems sporadic as some users can login / reset passwords fine, some get an invalid password then error code 16 then a few invalid passwords then an exceeded limit, then a few more error code 16's then some meta data responses for GetAccountInfo then more error code 16's.

And of course Apple and Google will both say "Works on my machine" so it sounds like we are left to either migrate off firebase or find the cause ourselves in the dark. Did you submit an Apple Feedback yet?

If enough people report the same issue here, I hope that we can get Google to take a closer look.
I have not submitted a radar yet since I have not been able to obtain a faulty AppAttest token yet. If I can do that, then it would probably help in debugging the issue

@weixifan Is it possible this PR is what is causing the issue? I noticed we are both on 10.17.0 and possibly this is causing an unintended side affect with the providers? Unfortunately I cannot reproduce this issue with my accounts so am not able to look at the debug logs.

@jostster I don't think so. I was facing this issue, at a much larger scale, even before 10.17.0. The PR you referenced actually fixed it for most of my users but not all.

Looking through our google cloud logs the error code 16's are mainly from SignInWithPassword method and not the SendVerificationCode method. So it seems this isn't isolated to SMS auth but multiple auth methods.

Do you use Firebase phone auth in your project? This error seems to be mainly caused by a failure in validating the authenticity of the request itself and should be the same for all sign in methods.

Do you use Firebase phone auth in your project? This error seems to be mainly caused by a failure in validating the authenticity of the request itself and should be common across all sign in methods.

We do not. We use SignInWithPassword and have MFA available with SMS verification codes but not signInWithPhone. I just posted that showing it doesn't seem to be specific to the SendVerificationCode but AppCheck as a whole.

Do you happen to be using ARCore in your apps? We recently fixed an issue in the App Check SDK (v19.1.0) where ARCore was attempting to initialize App check instead of your own project and later passing on invalid tokens
Release notes for 19.1.0

Do you happen to be using ARCore in your apps? We recently fixed an issue in the App Check SDK (v19.1.0) where ARCore was attempting to initialize App check instead of your own project and later passing on invalid tokens
Release notes for 19.1.0

Our project isn't using ARCore.

@jostster

Do you happen to be using ARCore in your apps? We recently fixed an issue in the App Check SDK (v19.1.0) where ARCore was attempting to initialize App check instead of your own project and later passing on invalid tokens
Release notes for 19.1.0

Our project isn't using ARCore.

And you have ran this on 19.1.0? Do you happen to have logs from a device that this failed on?

@nohe427 Our app also does't use ARCore. However that does raise the question of whether any other framework or library can conflict with AppCheck? Is there a way to check?

@minlite - I updated my comment above. It could be that other libraries that use Crashlytics or other firebase features which may cause App check to attempt to initialize with those projects instead of yours.
Having iOS logs from a failing device can help provide some insight into the issue.

@nohe427 I have updated to 10.19.1 and we will release it sometime next week. However, you mentioned that this will fix any other frameworks calling crashlytics (looks like that comment was removed), but looking at the PR it looks like it specifically only checks for ARCore which neither of us use.

@jostster We have plans to do a more general fix than the specific workaround implemented for ARCore, but haven't yet done so.
Does your app call FirebaseApp.configure() for more than one Firebase App or from any other dependent libraries?
cc: @ncooke3

@jostster We have plans to do a more general fix than the specific workaround implemented for ARCore, but haven't yet done so.
Does your app call FirebaseApp.configure() for more than one Firebase App or from any other dependent libraries?
cc: @ncooke3

Happy new year @paulb777 . I just did a search for FirebaseApp.configure() in our Workspace as well as our dependencies and it looks like aside from our single call in our AppDelegate, only Firebase modules are calling that like FIRMessaging, FirebaseCore, etc. I do also see that GoogleDataTransport seems to have this included as well.

Happy New Year @jostster. If that's the case, you're likely seeing a different issue than the one fixed in 10.19.1 and we'll likely need logs to make progress on diagnosis. https://stackoverflow.com/a/55356756/556617

Happy New Year @jostster. If that's the case, you're likely seeing a different issue than the one fixed in 10.19.1 and we'll likely need logs to make progress on diagnosis. https://stackoverflow.com/a/55356756/556617

Unfortunately our engineers are unable to replicate this, but will keep an eye out for if we are we will capture logs.

Hey folks. Has anyone ever got to the bottom of this?
We're facing the same problem, even the exact same 12% of requests failing.

@fmoura-ehab We did not, and unfortunately due to the ongoing reliability issues with Firebase Auth and AppCheck which keeps us from being able to stop the rampant SMS fraud costing us a sizable amount every month, we have begun a gradual migration away to Twilio.

Hi Folks. We are facing the same issue with 10% to 20% of our clients calls ending up with Error Code: 16.
The big issue for us is that it seems there is no workaround (except disabling AppCheck). Even uninstalling / installing the App from the App Store or TestFlight does not work. The concerned device are kind of stuck and cannot login anymore.
Our setup:

Firebase SDK 10.26 (AppCheck 10.19.1)
We use AppAttest as provider
We embed different GoogleService-Info.plist.[ENV].plist files in the iOS App. However, we load a single one at a time with .configure() from the AppDelegate depending on the selected ENV. The is no default GoogleService-Info.plist

Our AppDelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        let useEmulators = UserSettings.standard.environmentLevel == .local
        let filePath = Bundle.main.path(forResource: "GoogleService-Info.\(UserSettings.standard.environmentLevel.ext)", ofType: "plist")

        guard let filePath = filePath, let firebaseOptions = FirebaseOptions(contentsOfFile: filePath) else {
            assert(false, "Couldn't load config file")
            return false
        }

        if !useEmulators {
            #if DEBUG
            let providerFactory = AppCheckDebugProviderFactory()
            #else
            let providerFactory = FinanceAppCheckProviderFactory()
            #endif
            AppCheck.setAppCheckProviderFactory(providerFactory)
        }

        FirebaseApp.configure(options: firebaseOptions)
        Analytics.setAnalyticsCollectionEnabled(true)

        Loggers.firebase.debug("Loaded \(filePath)")
        Loggers.main.debug("\(ProcessInfo.processInfo.arguments)")

        UNUserNotificationCenter.current().delegate = self
        application.registerForRemoteNotifications()
        Messaging.messaging().delegate = self
        Auth.auth().useAppLanguage()

        if useEmulators {
            Loggers.firebase.debug("Using Emulators")
            // Auth Emulator
            Auth.auth().useEmulator(withHost:"localhost", port: 9099)
            // Firestore Emulator
            let settings = Firestore.firestore().settings
            settings.host = "localhost:8080"
            settings.cacheSettings = MemoryCacheSettings()
            settings.isSSLEnabled = false
            Firestore.firestore().settings = settings
            // Storage Emulator
            Storage.storage().useEmulator(withHost:"localhost", port: 9199)
            // Functions Emulator
            Functions.functions().useEmulator(withHost: "localhost", port: 5001)
        } else {
            Loggers.firebase.debug("Using Live Instance")
        }

        return true
    }

How can we help to progress on that issue ?

Hi everyone, since this issue was last updated, several App Check fixes have been released. These include better state handling for App Attest to avoid unrecoverable reassertion failures and the elimination of network request caching (to prevent re-use of expired artifacts during online/offline use).
To get the latest fixes:

If you're using SwiftPM or CocoaPods, update your package dependencies in Xcode or via pod update and look for AppCheckCore 11.2.0 in your project's  dependency graph. Note that this library is a dependency of FirebaseAppCheck.
If you are using zip or carthage, using the latest minor version, Firebase 11.4.0, will ensure you're using the latest AppCheckCore dependency.

For those that are using the latest version, is this issue still occurring for app instances released with the latest AppCheckCore?

Hi @ncooke3, Thank you for the update. We haven't had a chance to test this out yet but can test in the upcoming week and report back.


Fix infinite loop issue

This addresses GH #481
I don't know how well this will work on Windows, if at all.  Something like http://msdn.microsoft.com/en-us/library/aa364953.aspx might provide useful for platform compatability.

Up

@fabioperez What does "Up" mean?

@hoelzro Have you done any performance testing on this?  I fear what two stat calls will do.


Improve and add more content

We want to the best quality content on the site. This includes the descriptions of features. all the images across the site and even the capitalization and punctuation of the text. We also want text to be readable and easy to understand. We would appreciate any contributions from text we can use in places like the discord bot page, simple grammar fixes, CSS changes to improve readability, and anything else you can provide.

Can u grant me permission to make changes pls bro?

You can fork this repository, make changes, and make a pull request


Integrate with WebPConvert Cloud Service

https://github.com/rosell-dk/webp-convert-cloud-service

n1

Unit tests has been added in f99ae55


Missing DeleteApplicationOC in ApplicationClient

The on_complete field seems to be missing in the add_method_call of the delete decorator.

thank you! will merge once CI finishes


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-2.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 806

Questions ?
Please refer to the Backport tool documentation


Add secrets UI to the tree view

Added:

Secrets UI
Ability to toggle show and hide on a secret

More support for adding, delete, and editing in follow-up PRs

@danegsta do you have any concerns about this from a security perspective?

Good question and thanks for bringing this up for a general discussion.  I'm always a little bit concerned about showing secrets, but I don't have any obvious vulnerabilities that I'm considering, so I'm not sure how to quantify the actual risk here and would love to hear other people's opinions on a best path forward.
From what I've seen so far, the portal does something similar, though it's in a browser environment so has a different set of risks than VS Code.

We do something similar for app settings as well across the extensions and this follows a similar format, though maybe not as high profile as secrets.
I'd be open to just removing the ability to view the secrets directly though if we want to mitigate any potential risk altogether.  By the same token, if we go this route I would probably avoid allowing the user the ability to copy the secret value directly.   Otherwise, I think we'd still be able to perform the rest of the operations normally.  Would love to hear other opinions here before we make any further decisions.

Update:  Removed the ability to show the secret values


Add missing bitwise ops: xor, unary not (~), and shifts

It's unlikely we add this to Bazel.
There are a few extensions in this repository that are not Bazel (e.g. lambdas, nested functions, floating point numbers). Bitwise operators could be added in a similar way, behind a flag, is we believe they are important enough.

I have added the new -bitwiseops flag to enable new ops only if it's set.
Thanks @laurentlb for the suggestion.

Thanks Hittorp, the change looks very clean, though I've only given it a first pass so far. The only minor things that stand out are:

the spec should describe the semantics of the new operators
also, the incompatibilities section should describe how the language differs from the Bazel implementation (new tokens, etc)
a test case should cover the 1<<toobig case, and any new errors.

Regarding the question of whether this change to the language is a good idea: bitwise operations are a fundamental primitive operation on 2's-complement integers and have been supported in hardware by every ALU since the IBM 704 in the mid-1950s. They are crucial to interpreting bitfields such as appear in UNIX file modes and many other domains that one might wish to use a configuration language. The syntax, semantics, and implementation are obvious and uncontroversial, and follow Python, and the implementation imposes no cost on those that do not need the feature. So, I support adding them to Skylark. However, if the Bazel team does not wish to add support in their implementation, then the logic must live behind a dialect flag, as you have it in this change.

Hi Alan, I have changed spec.md as you requested and put 1<<toobig test to int.sky. Previous commits were amended.
After that the Travis CI is failed by some reason on Go:master with:

FAIL: ExampleThread_Load_parallelCycle (0.00s)
got:
cannot load a.sky: cannot load c.sky: cannot load b.sky: cycle in load graph
cannot load b.sky: cycle in load graph
want:
cannot load a.sky: cannot load c.sky: cycle in load graph
cannot load b.sky: cannot load a.sky: cannot load c.sky: cycle in load graph

Could you please suggest what's happening? Go:1.9.x build looks good and also my local 'go test' too. I have not touched the load() implementation.

Thanks Hittorp, don't worry about the test, it's been flaky for a long
while and I haven't gotten around to fixing it.
I can't log in to GitHub at this minute because of a 2-factor problem, so
we'll have to use e-mail:

typo: "This features" -> "These features"
please add the << and >> operators to the precedence table under "Binary
operators"
please add and explain << etc in the Arithmetic operations section
the existing & and | operators are bitwise ops on integers and also set
operations on sets.
Could you add a similar check to the resolver to disallow & and | unless
the -bitwise option is specified?
(This check is imperfect because & and | are also set operations, but
since the check operates on the syntax, we can only check for operators. I
don't really want to add a dynamic dialect check.)
don't forget to update the comment at AllowBitwiseOps.
The three resolver error message "support xor and shift bitwise
operations" can all be just "support bitwise operations"
I notice I failed to add &= and |= when I added & and |.  If you're
feeling diligent, you could add them too.
in the interp switch case syntax.LTLT, syntax.GTGT, let's just call
AsInt32 and add a negative check.  I don't think we need AsUint32 for a
single call.
also there: use an 'else' block to emphasize the symmetry:
if op == syntax.LTLT {
return x.Lsh(y), nil
} else {
return x.Rsh(y), nil
}
^ should have higher precedence than |, following Python. Please update
parser and spec, and test.

Many thanks again.
On 8 August 2018 at 08:27, Hittorp<EMAIL_ADDRESS>wrote:

Hi Alan, I have changed spec.md as you requested and put 1<<toobig test to
int.sky. Previous commits were amended.
After that the Travis CI is failed by some reason on Go:master with:
FAIL: ExampleThread_Load_parallelCycle (0.00s)
got:
cannot load a.sky: cannot load c.sky: cannot load b.sky: cycle in load
graph
cannot load b.sky: cycle in load graph
want:
cannot load a.sky: cannot load c.sky: cycle in load graph
cannot load b.sky: cannot load a.sky: cannot load c.sky: cycle in load
graph
Could you please suggest what's happening? Go:1.9.x build looks good and
also my local 'go test' too. I have not touched the load() implementation.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/skylark/pull/117#issuecomment-411387353, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AICt9D2cthNZ7yI2j7_ptqrZ4GRMMNqCks5uOtkngaJpZM4Vh-Lh
.

One last thing: we should probably issue a dynamic error on x << y where y
is too large, to avoid eating all available memory.
The Go compiler's constant computation reports "shift count too large: %d"
unless y < 512, so let's do that too.
On 8 August 2018 at 10:13, Alan Donovan<EMAIL_ADDRESS>wrote:

Thanks Hittorp, don't worry about the test, it's been flaky for a long
while and I haven't gotten around to fixing it.
I can't log in to GitHub at this minute because of a 2-factor problem, so
we'll have to use e-mail:

typo: "This features" -> "These features"
please add the << and >> operators to the precedence table under "Binary
operators"
please add and explain << etc in the Arithmetic operations section
the existing & and | operators are bitwise ops on integers and also set
operations on sets.
Could you add a similar check to the resolver to disallow & and | unless
the -bitwise option is specified?
(This check is imperfect because & and | are also set operations, but
since the check operates on the syntax, we can only check for operators. I
don't really want to add a dynamic dialect check.)
don't forget to update the comment at AllowBitwiseOps.
The three resolver error message "support xor and shift bitwise
operations" can all be just "support bitwise operations"
I notice I failed to add &= and |= when I added & and |.  If you're
feeling diligent, you could add them too.
in the interp switch case syntax.LTLT, syntax.GTGT, let's just call
AsInt32 and add a negative check.  I don't think we need AsUint32 for a
single call.
also there: use an 'else' block to emphasize the symmetry:
if op == syntax.LTLT {
return x.Lsh(y), nil
} else {
return x.Rsh(y), nil
}
^ should have higher precedence than |, following Python. Please update
parser and spec, and test.

Many thanks again.
On 8 August 2018 at 08:27, Hittorp<EMAIL_ADDRESS>wrote:

Hi Alan, I have changed spec.md as you requested and put 1<<toobig test
to int.sky. Previous commits were amended.
After that the Travis CI is failed by some reason on Go:master with:
FAIL: ExampleThread_Load_parallelCycle (0.00s)
got:
cannot load a.sky: cannot load c.sky: cannot load b.sky: cycle in load
graph
cannot load b.sky: cycle in load graph
want:
cannot load a.sky: cannot load c.sky: cycle in load graph
cannot load b.sky: cannot load a.sky: cannot load c.sky: cycle in load
graph
Could you please suggest what's happening? Go:1.9.x build looks good and
also my local 'go test' too. I have not touched the load() implementation.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/skylark/pull/117#issuecomment-411387353, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AICt9D2cthNZ7yI2j7_ptqrZ4GRMMNqCks5uOtkngaJpZM4Vh-Lh
.

Just curious: what are you using Skylark for?

Many thanks!  Do send more details about your project when you can.


Set name in services module

It should use name 'name', not 'actionName': https://github.com/kubernetes/perf-tests/blob/master/clusterloader2/testing/load/config.yaml#L181
/assign @mm4tt

Nice catch. I wonder why my differ hasn't caught this, let me check...
/lgtm

Nice catch. I wonder why my differ hasn't caught this, let me check...
/lgtm

/test pull-perf-tests-clusterloader2-kubemark

/test pull-perf-tests-clusterloader2-kubemark

Ok, there was a bug in my differ. I fixed it. It it worked correctly the diff would be:
Diff is:
70c70
<     replicaspernamespace: 149
---
>     replicaspernamespace: 12
92c92
<   name: <no value>
---
>   name: Creating SVCs
913c913
<   name: <no value>
---
>   name: Deleting SVCs

Looks like I made another mistake, I increased the number of medium services

Ok, there was a bug in my differ. I fixed it. It it worked correctly the diff would be:
Diff is:
70c70
<     replicaspernamespace: 149
---
>     replicaspernamespace: 12
92c92
<   name: <no value>
---
>   name: Creating SVCs
913c913
<   name: <no value>
---
>   name: Deleting SVCs

Looks like I made another mistake, I increased the number of medium services

Fixed. PTAL

Fixed. PTAL

/lgtm
/unhold
Thanks!

/lgtm
/unhold
Thanks!


Remove event param passed to native dialog methods

Hi,
in all the latest specs and docs I could find, the .showModal() method does not accept any param.
The .close() method does not accept an event param but a returnValue: string.
Also the ternary was dubious: event instanceof Event ? void 0 : event.
NB: discovered while creating this library Flow definitions: https://github.com/flow-typed/flow-typed/pull/2756

Hey Pascal. :)

in all the latest specs and docs I could find, the .showModal() method does not accept any param.

I found back this commit from when I introduced the code, which links to this specification, which states:

If the showModal() method was invoked with an argument, set up the position of subject, using that argument as the anchor. Otherwise, set the dialog to the centered alignment mode.

Interestingly enough, the argument from this method is expected to be a MouseEvent, from what I understand from the specifications, so the ternary is in the wrong order somehow.

The .close() method does not accept an event param but a returnValue: string.
Also the ternary was dubious: event instanceof Event ? void 0 : event.

This is precisely why there is this ternary. If the received value is an event, do not pass it to the native API methods as they do not expect an Event but a number and a string respectively.

1. HTMLDialogElement.showModal()
Looks like that parameter is not implemeted by UA, and is not in a stable mood.
For instance it's not mentionned here: https://html.spec.whatwg.org/multipage/interactive-elements.html#dom-dialog-showmodal
But let's say we still want to be able to pass the event to it.
let dialog = new A11yDialog('foo');

button.addEventListener(evt => {
  dialog.showModal(evt);
});

dialog.on('show', (el, evt) => {
  console.log(evt);
  // -> Event
});

We are good, except for the ternary, which should rather be inverted:
event instanceof Event ? event :  void 0
2. HTMLDialogElement.close()

Closes the dialog. An optional DOMString may be passed as an argument, updating the returnValue of the the dialog.

So we need to be able to pass as string to the native method.
let dialog = new A11yDialog('foo');

button.addEventListener(() => {
  dialog.close('bar');
});

dialog.on('close', (el, evt) => {
  console.log(evt);
  // -> 'bar'
});

Works, the string is passed to the native method, but not quite what we could expect for the on listener, or at least we need to update the documentation.
let dialog = new A11yDialog('foo');

button.addEventListener(evt => {
  dialog.close(evt);
});

dialog.on('close', (el, evt) => {
  console.log(evt);
  // -> Event...
});

For some reasons I want to use the lib event forwarding feature, but still be able to pass a string to the native .close() method. How to?

Hey Pascal,

For some reasons I want to use the lib event forwarding feature, but still be able to pass a string to the native .close() method. How to?

At this stage, this doesn’t seem to be possible out of the box.
I must say I’m a little confused as to what would be the best way to approach this, serving the most common use cases.
On one hand, having the event is quite a common practice for event listeners, and it’s handy as it contains tons of information. On the other hand, the native implementation has this weird string return value for close, that we should probably support but that makes everything a bit clunky.

Hello! 👋  Soooo… Still not sure what to do with this to be honest. 😅

Still not sure what to do with this to be honest.

Maybe .close() this MR?
:drum:

Badummm tsss!


fix(postgres): escape array literal values containing backslash

Fixes #4796.

Not sure whether the new title would be more descriptive...
It seems to be some weird bug specific to single backslash, as orm.em.create(User, { options: ['\\\\'] }); or orm.em.create(User, { options: ['\\test'] }); worked perfectly iirc when I was trying to debug my code.


Adding traceId/spanId to accesslogs and applogs

I've been following the various opentracing/jaeger/zipkin java client repos looking for some guidance on the cleanest way to get traceId/spanId into the logs. There has been some discussion in various places on this topic but nothing definitive and no code anywhere (unless I look in the brave implementation)
At present we are running our application inside a tomcat container, deployed as a war.
I've got basic span/trace forwarding working however I'd also like to enrich both our access logs and application logs so that these can also be used for diagnosis.
For application logs we are using logback and so my assumption is the cleanest way to manage this would be to write the relevant information into MDC and use logback native patterns to include the relevant fields.
For tomcat access logs, I would assume I would need to update the values into either the request or response context and use AccessLogValve patterns to pick this up.
However, I'm unsure of the best place to populate these. Should I write this functionality as an additional filter, or extend one of the existing classes? Is there any prior art I have missed that would make this easier?

Hi, as the IDs are not exposed by the OT API you have to cast the context to the current impl to get them.
This will change in https://github.com/opentracing/opentracing-java/issues/314.
I am closing this as it is not related to jax-rs. Feel free to continue the discussion.


Design a system to allow a user to customize app build lifecycle.

Today when we have to build a service (e.g. during the soon to be added package) we use the language of the service to inform what command we run.
For example, for a dotnet service, we run dotnet publish -c Release --output <an-intermediate-path-that-azd-creates> to build a release version of their application into a temporary folder.
We make similar decisions for the user in other app specific gestures like restore.
For all these cases, we should allow the user to override this behavior on a per service basis.
One possible approach is adding something to azure.yaml for a service like this:
services:
  api:
    language: dotnet
    host: appservice
    package: dotnet build -c Release /p:SomePropertyThatIsVeryImportantToMeForMyApp=true --output ${AZD_PUBLISH_ROOT}

In the above, a user can provide whatever command they want (and we provide a way to flow some AZD specific information, like where the output of the build should go, via substitutions like ${AZD_PUBLISH_ROOT}).
This would give the user full control over what is happening for cases where our defaults are wrong for their scenario.
When we do this, we should think about how this relates to a "none" language (or the concept of using azd to manage a service where azd does not have intrinsic knowledge of the toolchain (e.g. golang, today)

@ellismg I think this falls into the general extensibility bucket. Happy to keep this open but related this item to #810!

Another example is when trying pass environment variables at build time for docker (specially useful for static/frontend apps)
Ex:
frontend:
        project: "src/frontend"
        host: containerapp
        language: ts
        dist: build
        docker:
            path: Dockerfile
            buildArgs:
                - REACT_APP_BACKEND_URL=<Taken from environment variable>
                - REACT_APP_BACKEND_PORT=<Taken from environment variable>


Acc on target

Hi, I have some questions about my results.
Is that right the discriminator_acc is growing increasingly not decreasing?
This is from adda.
EPOCH:001, discriminator_loss:0.2972, discriminator_accuracy:0.8953
EPOCH:002, discriminator_loss:0.0260, discriminator_accuracy:0.9923
EPOCH:003, discriminator_loss:0.0119, discriminator_accuracy:0.9966
EPOCH:004, discriminator_loss:0.0097, discriminator_accuracy:0.9970
EPOCH:005, discriminator_loss:0.0054, discriminator_accuracy:0.9985

In case of revgrad, original repo don`t use pre-trained classifer (source.pt)
but you adapt source.pt. Is there no difference between them?

when i am  running  wdgrl.py, there is a error"the following arguments are required: MODEL_FILE", canyou help me. this is my email<EMAIL_ADDRESS>


Add robustness to directory change dependency

pkc line 401
./pkc nuke
pkc nuke must be run from the micro-PKC directory. Aborting...
aqua-PKC as a new repository name needs to be fully working. Currently basic operations like nuke are failing.

IMPORTANT: The path variable is not robust and does not work in 'Windows Subsystem for Linux'
We need to fix this too.


error while loading shared libraries: libpcre.so.3

I just checked through the closed issues as well and the ReadMe one more time. However if I get it right, in order to testdrive I would just need to clone the repo and spin up the demo_compose.
Used a fresh debian VM. Got error.
warp-warp-demo-wsgi-1   | uwsgi: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory

What am I missing?

I don't know why, but my collegue had the same trouble and he did that :
docker compose -f demo_compose.yaml up --force-recreate --build -d warp-demo-wsgi

Did not work for me. There seems to be a change in the Dockerfile at the beginning of the year, which I do not understand why it was made. However building it on a naked machine does not work anymore.
Quick fix from a collegue, simply install libpcre3 again on the running image not only the build image.
So if you were running an building this thing bevor 2023 you DO NOT have any problems. If you are getting started fresh in 2023 you most likely will have this problem.

For informations:

I build warp two weeks ago on linux (ubuntu) and I didn't have a problem
my collegue tried on his windows11 machine and got this problem.

If that could help!

I can not check that as I am running Ubuntu on the Laptop and in the VM I used for testing is Debian. I added on a fresh VM the above mentioned lines in the Dockerfile after line 41. I would rather have a few MB more and working than not :)

I assume that it is not a problem anymore and can be closed. Let me know if it is not.


[camera] Add flag to explicitly interpret nullable CameraController orientations

Fixes regressions caused by https://github.com/flutter/plugins/pull/6870. cc @christopherfujino
Adds flag to opt into explicitly interpreting nullable device orientations in the CameraValue in the copyWith method to allow for the clearing of those orientations.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[x] I signed the CLA.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
[x] I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Upon reading this, this actually seems like a legitimate use of the Optional type, since there are actually four possible states of the method parameter:

The caller wants the field to be true
The caller wants the field to be false
The caller wants the field to be null, or no lock
The caller wants the field to default to the previous state

Do I have this right? And if so, maybe what would be most clear would be to have the .copyWith() method take an enum value, like:
enum LockedCaptureOrientation {
  true,
  false,
  none,
  default,
}

class CameraValue {

  ...

  CameraValue copyWith(
    ...
    LockedCaptureOrientation desiredLockedCaptureOrientation,
    ...
  ) {
    final bool? nextLockedCaptureOrientation;
    switch (desiredLockedCaptureOrientation) {
      case LockedCaptureOrientation.true:
        nextLockedCaptureOrientation = true;
        break;
      case LockedCaptureOrientation.false:
        nextLockedCaptureOrientation = false;
        break;
      case LockedCaptureOrientation.none:
        nextLockedCaptureOrientation = null;
        break;
      case LockedCaptureOrientation.default:
        nextLockedCaptureOrientation = lockedCaptureOrientation;
        break;
    }

    return CameraValue(
      ...
      lockedCaptureOrientation: nextLockedCaptureOrientation,
      ...
    );
  }
}

@christopherfujino I agree that using Optional did make sense upon reflection. I also like the idea of an enum, but I think that using an enum like you did for each nullable orientation could get confusing.
What do you think about creating a different DeviceOrientation-like enum that is essentially the same as DeviceOrientation and maps to it but has an additional value of none that is a valid value for the nullable orientations. For example:

enum DeviceOrientationCode {
  portraitUp,
  ...
  none,
}

extension DeviceOrientationCodeExtension on DeviceOrientation {
  DeviceOrientation? getDeviceOrientation {
    switch (this) {
      case DeviceOrientationCode.portraitUp:
        return DeviceOrientation.portraitUp;
      ...
      case DeviceOrientationCode.none:
        return null;
    }
  }
}

I considered this before, but it did feel a bit redundant to wrap the existing enum only to add one value, but this may be a cleaner solution.

Oops, sorry I didn't respond to this.

@christopherfujino I agree that using Optional did make sense upon reflection. I also like the idea of an enum, but I think that using an enum like you did for each nullable orientation could get confusing.
What do you think about creating a different DeviceOrientation-like enum that is essentially the same as DeviceOrientation and maps to it but has an additional value of none that is a valid value for the nullable orientations. For example:
enum DeviceOrientationCode {
  portraitUp,
  ...
  none,
}

extension DeviceOrientationCodeExtension on DeviceOrientation {
  DeviceOrientation? getDeviceOrientation {
    switch (this) {
      case DeviceOrientationCode.portraitUp:
        return DeviceOrientation.portraitUp;
      ...
      case DeviceOrientationCode.none:
        return null;
    }
  }
}

Not sure I fully understand this--how would callers represent when they want whatever was the previous state? Or am I misunderstanding?

Another option is to just copy paste the code for Optional, it's not much: https://github.com/google/quiver-dart/blob/master/lib/src/core/optional.dart

@christopherfujino I think I may have read your initial proposal incorrectly, and maybe that's where the confusion is coming from?
The fields impacted by this are all DeviceOrientations, so my solution was essentially saying that users would DeviceOrientationExtension instead of DeviceOrientation where DeviceOrientationExtension is the same as DeviceOrientation, with an extra value to specify none/null. Thus, a user would not specify anything in copyWith() to keep the value the same, but would specify DeviceOrientationExtension.none, for instance, to intend for the value of one of the respective field to be cleared, if that makes sense. Also, DeviceOrientationExtension.none would be the default value for all of the fields.
I think that using the Optional code may be a good middle ground, though, since that would avoid the redundant enum and what I think would be a breaking change.

@hellohuanlin @christopherfujino I added back the Optional type. I put the code within the camera_controller.dart files themselves -- let me know what you think. I was considering putting it in the platform interface because I feel it would make more sense organizationally there, but then I believe this would have to be a breaking change.

@christopherfujino ping on review for this!


Use relative paths for build artifacts and sources

This PR reduces the usage of BUILD_DIR env var in favor of relative paths to build artifacts and sources.
It was required to also change the build directory when using the docker flow from ORFS directory to bazel build directory (the same as in local flow) to keep the consistency between the flows in order to use relative paths.
This was tested in the following configurations:

docker flow build in bazel-orfs
local flow build in bazel-orfs
docker flow build in megaboom
local flow build in megaboom
docker flow build in megaboom with bazel-orfs dependency specified through local_path_override
local flow build in megaboom with bazel-orfs dependency specified through local_path_override

I still see lots of absolute paths being used when I run the _make script generated:
bazel build L1MetadataArray_test_floorplan_make
bazel-bin/L1MetadataArray_test_floorplan_make do-floorplan
[deleted output]
[INFO ODB-0227] LEF file: /home/oyvind/OpenROAD-flow-scripts/flow/platforms/asap7/lef/asap7_tech_1x_201209.lef, created 24 layers, 9 vias

I still see lots of absolute paths being used when I run the _make script generated:
bazel build L1MetadataArray_test_floorplan_make
bazel-bin/L1MetadataArray_test_floorplan_make do-floorplan
[deleted output]
[INFO ODB-0227] LEF file: /home/oyvind/OpenROAD-flow-scripts/flow/platforms/asap7/lef/asap7_tech_1x_201209.lef, created 24 layers, 9 vias

Yes, those are absolute paths but this is the ORFS thing. See: https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/be4b5b5473b4d7c2a54812d5405d043d14b9a057/flow/platforms/asap7/config.mk#L9.
PLATFORM_DIR depends on the FLOW_HOME variable which must point ORFS/flow directory (as in https://github.com/The-OpenROAD-Project/bazel-orfs/pull/31). I think it shouldn't be a problem in make issue scenario.
Reproducing the build should be unaffected because the person working on the issue will have FLOW_HOME and PLATFORM_DIR specific to his/her configuration.
When it comes to everything that comes from bazel-orfs: LEFs and other build artifacts, as well as e.g. verilog sources no longer use absolute paths. You can see that in e.g. config files:
L1MetadataArray_test_synth_config.mk
# Stage synth config
export SYNTH_HIERARCHICAL=1
export VERILOG_FILES=rtl/L1MetadataArray.sv
export SDC_FILE_CLOCK_PERIOD=results/asap7/L1MetadataArray/test/clock_period.txt
export ADDITIONAL_LIBS=bazel-out/k8-fastbuild/bin/results/asap7/tag_array_64x184/base/tag_array_64x184.lib

L1MetadataArray_test_floorplan_config.mk
# Stage floorplan config
export CORE_UTILIZATION=3
export RTLMP_FLOW=True
export CORE_MARGIN=2
export SDC_FILE=./constraints-top.sdc
export CORE_MARGIN=4
export PDN_TCL=${PLATFORM_DIR}/openRoad/pdn/BLOCKS_grid_strategy.tcl
export IO_CONSTRAINTS=./io.tcl
export MACROS=tag_array_64x184
export ADDITIONAL_LEFS=bazel-out/k8-fastbuild/bin/results/asap7/tag_array_64x184/base/tag_array_64x184.lef
export ADDITIONAL_LIBS=bazel-out/k8-fastbuild/bin/results/asap7/tag_array_64x184/base/tag_array_64x184.lib

Here is another way to reproduce problems with absolute paths.
OBJECTS_DIR should not contain an absolute path:
oyvind@famine:~/bazel-orfs$ bazel-bin/L1MetadataArray_test_floorplan_make print-OBJECTS_DIR
[deleted]
OBJECTS_DIR = /home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test

Another case where this causes problems, run:
bazel-bin/L1MetadataArray_test_floorplan_make floorplan_issue

There should be no absolute paths here:
$ grep home vars-L1MetadataArray-asap7-test.sh
export OBJECTS_DIR="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test"
export RTLMP_RPT_DIR="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/rtlmp"
export LOG_DIR="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/logs/asap7/L1MetadataArray/test"
export SDC_FILE_CLOCK_PERIOD="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/results/asap7/L1MetadataArray/test/clock_period.txt"
export RESULTS_DIR="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/results/asap7/L1MetadataArray/test"
export REPORTS_DIR="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/reports/asap7/L1MetadataArray/test"
export DONT_USE_SC_LIB="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/lib/merged.lib"
export SYNTH_STOP_MODULE_SCRIPT="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/mark_hier_stop_modules.tcl"
export DESIGN_DIR="/home/oyvind/.cache/bazel/_bazel_oyvind/6e078b44989a9ce1500a63165a20fd2a/execroot/_main/bazel-out/k8-fastbuild/bin/"
export DONT_USE_LIBS=" /home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/lib/asap7sc7p5t_AO_RVT_FF_nldm_211120.lib  /home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/lib/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib  /home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/lib/asap7sc7p5t_OA_RVT_FF_nldm_211120.lib  /home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/lib/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib /home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/lib/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib /home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/lib/tag_array_64x184.lib"
export GDS_FINAL_FILE="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/results/asap7/L1MetadataArray/test/6_final.gds"
export GDS_MERGED_FILE="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/results/asap7/L1MetadataArray/test/6_1_merged.gds"
export RTLMP_BLOCKAGE_FILE="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test/rtlmp/partition.txt.blockage"
export WORK_HOME_READ="/home/oyvind/bazel-orfs/bazel-out/k8-fastbuild/bin"

Here is an example of how make issue should replace references to the ORFS folder, so there should be no need for absolute paths:
export FLOW_HOME=${FLOW_HOME:-$(pwd)}
export RCX_RULES="${FLOW_HOME}/platforms/asap7/rcx_patterns.rules"

Oh, I see that now, thanks for pointing out. We will look into this

Oh, I see that now, thanks for pointing out. We will look into this

This helps, but is not sufficient:
$ git diff
diff --git a/orfs b/orfs
index 258aef8..b76a6b3 100755
--- a/orfs
+++ b/orfs
@@ -16,7 +16,8 @@ else
     export BUILD_DIR=$WORKSPACE
 fi

-export WORK_HOME=$BUILD_DIR/$RULEDIR
+PWD_PHYSICAL=$(pwd -P)
+export WORK_HOME=$(echo $BUILD_DIR/$RULEDIR | sed "s|^$PWD_PHYSICAL|.|" | sed 's|^./||')

 # Make bazel-bin writable
 chmod -R +w $WORK_HOME

No absolute path:
oyvind@famine:~/bazel-orfs$ bazel-bin/L1MetadataArray_test_floorplan_make print-OBJECTS_DIR
[deleted]
OBJECTS_DIR = bazel-out/k8-fastbuild/bin/objects/asap7/L1MetadataArray/test

Still an absolute path:
oyvind@famine:~/bazel-orfs$ bazel-bin/L1MetadataArray_test_floorplan_make print-DESIGN_CONFIG
[deleted]
DESIGN_CONFIG = /home/oyvind/.cache/bazel/_bazel_oyvind/6e078b44989a9ce1500a63165a20fd2a/execroot/_main/bazel-out/k8-fastbuild/bin/L1MetadataArray_test_config.mk

We reworked the flow. Currently there is only one env var with absolute path which is SYNTH_ARGS that is to be fixed in https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/1976.
With the following changes we were able to drop the bash runfiles library dependency and remove the template script used for generating make scripts. The organization of the rules is now a little bit simpler.
It would be good to have this PR merged first to serve as a new baseline for the further rework according to your comments from https://github.com/The-OpenROAD-Project/bazel-orfs/pull/27.


Modify versions accordingly

Changed CuDNN and Tensorflow version to match the actual versions.

Thanks for the contribution! I'll merge momentarily. But I'm just wondering on this..
mv /tmp/tensorflow_pkg/tensorflow-1.2.1-cp35-cp35m-linux_aarch64.whl
Would you be able to tell me what is "cp35m"? What does that suffix "m" mean?
Thanks a lot!


Dotnet global tool support

Cake v0.30 introduced an ability to run scripts via dotnet cake (https://cakebuild.net/blog/#global-tool) without the need of build.ps1.
Cake VS Code extension currently has cool auto-discover functionality but it works only with build.ps.
Is there are any plans to support global dotnet tool in this scenario?

This would be nice.  I can no longer use this extension because FIPS compliance prevents using the build.ps1 bootstrapper.

@gep13 Is this a duplicate of #376?

@pascalberger yes, I think there are several overlapping issues here.  Let's go ahead and close this one out, in favour of the others that are actively being worked on.


Hardware requirements for 7B 100k

Hi, thanks for the great work!
Do you have some information on the hardware requirements for 7B 100k models, for inference?
I checked previous closed issues, but there was no info about 7B models.
Thanks!

Hi,
I have not tested the minimal requirements for inference. For training, the minimal requirement is a 80GB 8x A100 GPUs machine.
Regards,
Yukang Chen


Remap skip controls

Using the arrow keys to skip videos goes against the well-established use of the arrow keys for advancing the video.  It should be remapped to a different key, or a button could be made

When you enter the scope of the video(having clicked it), the keys should still act as skips on the video without changing the video, but when you're not in the scope of the video, it will change the video. The alternative is you press the arrow keys and it does nothing, if you havent yet clicked the video.


device-write-bps not work on centos7

docker version:
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:
 OS/Arch:      linux/amd64

docker info:
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 2
Server Version: 1.12.1
Storage Driver: devicemapper
 Pool Name: docker-8:1-1079793984-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 2.243 GB
 Data Space Total: 107.4 GB
 Data Space Available: 105.1 GB
 Metadata Space Used: 2.916 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.145 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-327.36.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.607 GiB
Name: localhost.localdomain
ID: SROX:A4WL:TNGQ:UYVR:QXIQ:3QH2:VJWS:ZIR2:OHEU:RRZX:6KJK:U7N3
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
 <IP_ADDRESS>/8

df -h

/dev/mapper/docker-8:1-1079793984-59c9aa2a592e83b75593fc6259d4a835342cb3ec5e0dc53eaedbf10a962e7ab7   10G  340M  9.7G   4% /
tmpfs                                                                                1.9G     0  1.9G   0% /dev
tmpfs                                                                                1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                                                                                792G  169G  624G  22% /etc/hosts
shm                                                                                64M     0   64M   0% /dev/shm

docker run -it --rm --device-write-bps /dev/sda:2mb centos
time dd if=/dev/zero of=test.out bs=1M count=100 oflag=direct

100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.149562 s, 701 MB/s

real	0m0.152s
user	0m0.001s
sys	0m0.021s

But this work on my ubuntu machine, any idea? I guess it's about the Storage Driver.

This is just a guess, but it seems you're using /dev/sda2 instead of the name that appears in df -h.

When I change /dev/sda to
docker run -it --rm --device-write-bps /dev/sda1:2mb centos

or
docker run -it --rm --device-write-bps /dev/sda2:2mb centos

I got

docker: Error response from daemon: oci runtime error: process_linux.go:291: setting cgroup config for ready process caused "failed to write 8:1 2097152 to blkio.throttle.write_bps_device: write /sys/fs/cgroup/blkio/docker/8ab8386521c200524b11ca6f28c9fa4b56eeef9ab185080e4655040ee89b1e35/blkio.throttle.write_bps_device: invalid argument".

Any updates here? I can reproduce this.

check this out https://stackoverflow.com/questions/36145817/how-to-limit-io-speed-in-docker-and-share-file-with-system-in-the-same-time

@Windsooon Do you mean the second answer?
find the device name belongs to the container you wanna limit.

docker inspect your_container_id | grep DeviceName
Than get something like

 "DeviceName": "docker-8:3-331888-ef7d6d85f9bda07ba4c5eb3b6f4b903fcb72554c223d9e467ab7df74917bc31c"
Second

df -h
then you will get something like

/dev/dm-2        10G  416M  9.6G    5% /var/lib/docker/devicemapper/mnt/584688469e65ec95e5618f7a16692294219a1be90537659b0888e35225bb5721
shm              64M     0   64M    0% /var/lib/docker/containers/863b665d8587cf37eeab2ec82e72b879ffbee8cca65bb816e991108fc290545f/shm
/dev/dm-1        10G  223M  9.8G    3% /var/lib/docker/devicemapper/mnt/ab182292ebe8febe945783b84a1340232855c17ede23bc94ffc3eaecfa12e3d2
shm              64M     0   64M    0% /var/lib/docker/containers/c4262a88cd77a91cbe83e4132bccb52573b550cb3db6194f9a55d31d7a001449/shm
/dev/dm-4        10G  573M  9.5G    6% /var/lib/docker/devicemapper/mnt/8b422f5b431d5927940952a5f1f6486efe0771c555c8989cfcd5b62bc85d4ede
/dev/dm-3        10G  778M  9.3G    8% /var/lib/docker/devicemapper/mnt/fd9ff8355bd57a7808294fed7dccec10aba74faf494aa53c23ef5bb1cb561c5f
/dev/dm-5        10G  808M  9.3G    8% /var/lib/docker/devicemapper/mnt/1efe06cb650ab88dc0530220e26ff0809f6af6c8cc368f8f5f8f4ec2e8719a7b
the number of dm-x depends on how many containers you are running.find the dm-x that match your container device name number.

Then you can just did what @stambata said:

$ docker run -it --rm --device-write-bps /dev/dm-x:50mb centos /bin/bash

I know we have to limit the dm device, but it's created when we created the container, how could know the device name in docker run?

The problem you're having is because you need to specify the raw device; try using sda instead of sda1;
$ docker run -it --rm --device-write-bps /dev/sda:2mb centos
[root@7c4400fd3964 /]# time dd if=/dev/zero of=test.out bs=1M count=100 oflag=direct
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 76.1675 s, 1.4 MB/s

real	1m16.173s
user	0m0.000s
sys	0m0.052s

@thaJeztah I think the point is devicemapper, the recommanded way to use devicemapper is to use with direct LVM, according to discussion from: https://www.redhat.com/archives/dm-devel/2016-February/msg00185.html, looks like blkio cgroups doesn't work well with LVM.

@thaJeztah  We tried /dev/sda and /dev/sda1  but still not working as I said before. I also have the similar question as @hqhq, Any possible to know which /dev/dm-x container will use when create the container?

@hqhq, Yes, I also have the same question as you. what I did if rebuild the container after the first build.


Results are cached by babel, so future runs use an old version of the graphql

We've been running into this issue where we have to delete the babel cache or our code (in particular, jest tests) runs with an outdated version of the imported graphql.  Have you seen this before?  Any idea who better to report this to or how to get to the bottom of it?

The Install section of the README covers this. I’m not sure why this is the case. It’s a known behavior in other babel plugins and I don’t believe there’s anything I can do at the plugin level to address it aside from making a note in the README. Did the method I described in the README not work for you? One person in the thread I linked to said they had to remove ~/.babel.json instead of the node_modules/.cache/babel-loader folder.

As far as who else to report this to, it's in Babel's domain, but the maintainer of Babel was included in the discussion I linked to so he's already aware of the situation.

Yea I know. No worries. It will change someday. Thanks for contributing this plugin.

I was pondering whether it would work better if the plug-in pretended the graphql was a sort of js dialect and outputted a js file instead of inlining the graphql into the file that imported it.  What do you think?


Improve ESLint setup and fix linting errors

Motivation and Context

Not all JavaScript files were linted
ESLint dependencies were outdated

Description

Lints all build-related JavaScript files
Updates ESLint dependencies
Fixes all resulting linting errors

Nice change! Linting is awesome.


Immutable store implementation with selectors

Here is the immutable store implementation with selectors for #5 .  I've synced with dev and resolved all conflicts.  I removed totalPages from the store and moved that logic to the selectTotalPages selector.  totalPages will now only be recalculated if its upstream input of total or pageSize changes.

Awesome!  I'll have a look at this later today or tomorrow.  I think your logic about totalPages makes sense.  Thanks again for bringing your immutable expertise to the project.

Old comment from the original PR:

The reducer initializes the immutable store (see fromJS on the DEFAULT_STATE) and uses immutable operations to return new modified copies of state. I did not attempt to deal with the nested object state fields (results, aggregations) and left them as simple key/value fields. This should probably be changed once the structure of the nested objects settles down. The reselect library is used to create performant selectors that populate the container props from the state.

Even though the tests pass, I had some runtime errors when I actually ran the application and the client gets an API response. (So one problem is that the tests need to add this scenario).  Were you able to run the application locally?  I know you previously mentioned some python dep issues.
The initial state works, but once there is an API response, these fields get set to plain js objects, rather than immutable objects, which causes an error in the selectors.  I think the issue is with the nested lists.  I was able to solve the problem locally by wrapping the arguments in places like
https://github.com/FlyBase/agr_prototype/blob/master/src/js_src/reducers/searchReducer.js#L33  with toJS()
Does that make sense?  Is there another way to handle that.

OK, I've got my dev environment up and was able to fix the problem.  I'm using fromJS() to fix it, which works, but it is a bit of a sledgehammer approach.  I'd prefer to use the scalpels that ImmutableJS offers (update, merge, etc.), but that requires a better understanding of how you all envision using the aggregations and results and their final structure.

awesome, works for me, too.  For now, I think the sledgehammer is fine.  The structure of aggs and results is what we use now at sgd, but I'm guessing these things might change and pre optimizing might not make sense.


Rebuild journal to work with an unwritable disk when it is full

#746
Rebuild the journal directly on  journalFile when the disk is full and journalFileTmp becomes unwritable.
From my understanding, this will allow rebuildJournal() to work when the disk is full because the original content of journalFile will be overridden. Doing it on other files such as journalFileBackup will not work because it is usually already without content and does not contribute significantly to the occupied disk space.

Unfortunately we’re in the process of rewriting this entire class. I don’t think this is a good time to make changes to DiskLruCache, particularly changes that are potentially risky.

@swankjesse Ok! Then I shall close this then. I should have asked for more details before embarking on a bug fix


[Feature] Add Mesmerizing Loader

Description
Add the mesmerizing loader in loader section. For reference the video is attached below
https://github.com/Rakesh9100/Beautiify/assets/142529986/d100c02d-01bc-4526-92b7-822a1f5efb66
Screenshots
No response
Checklist

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

Code of Conduct

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

Pls complete your previous assigned issue first @DiwareNamrata23

please assign this issue as previous one is completed @Rakesh9100


Add remote connection detection

Is your feature request related to a problem? Please describe.
Sometimes people use our apps in a remote environment through a remote session (e.g. RDP). We would like to detect and warn users when they do.
Describe the solution you'd like
Simply a flag to detect if you are running the application in a remote session.
Describe alternatives you've considered
None
Additional context
Windows provides this flag using GetSystemMetric syscall with SM_REMOTESESSION.
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getsystemmetrics
Flag: SM_REMOTESESSION

@DanielMcAssey as far as I have seen in my investigation, this is only possible by writing an C++ extension. I currently do not plan to do that, this would a more complex installing process for some users. Fo Linux machines I found an easy solution but not for windows. If you have further suggestions, please post it here.

Maybe a Powershell solution?
https://stackoverflow.com/a/28678312/1032384

@DanielMcAssey @AdrianoCahete ... just added this to osInfo(). Version 5.3.0 just released.


Build Task support for YAML

The YAML Task Assistant interface in Azure DevOps allows you to select the PowerApp Build Tools. However, it looks like those tasks will not actually run when you trigger the pipeline. As per the docs @ https://github.com/microsoft/PowerApps-Samples/tree/master/azure/build-tools , recreating the same build process with the Classic editor seems to run fine.
Can we call this out in the docs, as YAML is now the default pipeline interface is Azure DevOps? Or do we have a timeline for YAML support?

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

ID: 0e92c215-b337-b864-3fee-b9542e4e30c8
Version Independent ID: 8f26538c-5863-6746-8c2c-ee4438165da4
Content: Build tools tasks - PowerApps
Content Source: powerapps-docs/developer/common-data-service/build-tools-tasks.md
Service: powerapps
GitHub Login: @mikkelsen2000
Microsoft Alias: pemikkel

@DavidLHannah Did you check the latest Power Platform Build tools task. Your comment on this matter is from nearly 2 years ago.
Cc: @mikkelsen2000

@DavidLHannah Thanks for your feedback. We are closing this issue because we are either unable to find relevant information or reproduce this. If you're still experiencing the issue described here, please reopen or create a new issue.

@DavidLHannah Did you check the latest Power Platform Build tools task. Your comment on this matter is from nearly 2 years ago.
Cc: @mikkelsen2000

Yes, the latest tools solve this issue. Thanks!


Ignore implicit_dynamic_parameter in generated code

Done and looking for feedback on

Resolved #557 by ignoring specific warning in json_serializable generated code
Updated example generated code
Added implicit-dynamic: false to example to demo, let me know if this should be removed

Need advisement

Updating tests. I have fixed 1 test out of ~40 that fail because the expected output is no longer correct. I'm happy to update them (see the one I updated), but I am wondering if we would prefer to do a contains check instead of an exact match check (which would make all these tests pass without having to update the expected outputs). Or if the inner test code should strip out the warning before comparing. May want to consider future lints we need to disable (NNDB as one example, other Strong Mode stuff, etc)

I don’t see it as a blocker. The ignore comment only gets added once in the file no matter how many classes you annotate in the file.
That issue would improve the implementation, but tons of libraries add this to generated output as is.

See https://github.com/dart-lang/json_serializable/pull/608


Add possiblity to make env vars optional

Make it possible to add a field required: false in the cantara.config.js file, to signal that this env var should be added when availble, but that no error should be thrown if not.
Update the cantara-simple-starter's core-api package and make RANDOM_IMAGE_API_KEY optional there, otherwise it can't be build, although this env is only needed during testing.

This showuld allow us to define variables in the .env.development but leave them undefined in the .env.production.
Additionally we should consider removing the fallback behaviour completely, because to me it seems a bit counter intuitive, or only fall back to a .env (without stage) file.

Yea that's true, the fallback behaviour should be removed, causes a lot of confusion. +1


What possibilities of EasyHook?

Hello.
I began to study technologies of hook recently, for this purpose viewed several libraries.
EasyHook seemed to me clear and easily set, but I had a question: on how many its functionality is high?
I would like to make some check of safety for files. I.e. the user opens the file and before its direct opening something somewhere is checked, and then actually opening with the necessary parameters. I would like to make it through global Hook on CreateFile (). And so question: whether I will be able to make something similar by means of your library?

Yes you can inject into other processes and hook.
Using easyhook as a global solution may be a little difficult without using a driver - but you can do it depending on your exact requirements (I.e do u need to have hook in place before files are opened at all?). A file system filter driver is more suited to a global file auditing solution / custom access controls / whatever

Hello. Thank you that answered my question.
It seems to me that to write the driver of file system it will be complicated for me now.
And you can set some example where Hook will be set global?

@13013a  you have to enumerate all processes, and keep doing so and inject into them all.

I meant property "GlobalThreadACL",I wanted to look how to use it. I correctly understood that with its help it is possible to do hook on all processes directly?

@13013a no, the thread acl is about an internal thread safety mechanism of EasyHook.
The example projects are the best place to start, just remember you may need to use the build.bat to build all the EasyHook variations required for them to run easily. Or create a new project and install the NuGet package.

built.bat does nothing (perhaps it somehow on another should be launched, not simply to open?).
I collected everything through start of EasyHook.sln with the subsequent compilation, is compiled without errors.
After that I launched FileMone.exe from the "build" folder, but after input of PID of process gives a heap of errors (the module isn't found, etc.).
If I not correctly collect something, prompt please.

@13013a if you rebuilt the entire solution for both 32- and 64-bit it should be working for you. FileMon relies on the FileMonInject project also.

So, in lieu of a file system driver, is "enumerate all processes" still the best option today for using this?

If it's security based you will need to create a file filter driver, it also does not use hooking at all.
Otherwise if the timing is not critical, enumerate processes, or even possibly look at using SetWindowsHookEx with a global, although that requires some dll exports (possible with C# if you use the dllexport nuget, but is more suited to native dlls) - it also might not work for all processes.

So is there a preset function or interface that allows me to hook into all file operations of a selected process?
Also, I"m assuming I can launch programs and hook into them immediately with this at least?

@rjamesnw
No re all file operations, you need to write hook handlers for each API method you want to deal with and then install them.
You can use EasyHook's CreateAndInject to launch and immediately hook an application before it has done anything. You could perhaps hook CreateProcess and then replace with calls to CreateAndInject also, but not sure how well that will work.

Interesting though, might be a good compromise if it works. ;)


adding back in module info for clients

Adding API module info back into docs (noting that this brings up the old warnings when you build docs)

I think this has actually be separately completed by https://github.com/Infleqtion/client-superstaq/pull/1030

Not a huge issue but I had left this open before because I hadn't yet figured out why these semicolons were in the docs - do we care about them?

Not a huge issue but I had left this open before because I hadn't yet figured out why these semicolons (between Parameters and Returns here) were in the docs - do we care about them?

Ah yeah, these colons have been bugging me for ages and I can't work it out! I'm wondering if there is something in our css that is causing a bug somewhere

Update: I have located the source of the random colons in the html. Sphinx is currently generating html like:

Returns:

However, removing the  tag:

Returns

Removes the spurious comma, while keeping the single comma after Return.
Next step is to work out how we can stop sphinx adding the  tags.


Google's Free Certifications Page | To Upsikill By Google's Free Certifications & Courses | UI for Issue #188

I want to add a new dedicated webpage that provides a curated list of free certifications and courses offered by Google. This page will serve as a resource for users interested in enhancing their skills through Google’s offerings.

Page Layout: Follow the existing website theme and layout, ensuring a consistent design.

List of Courses & Certifications: Display a comprehensive list of Google’s free certifications and courses. Each entry should include:

Course/Certification Name

Brief Description

Direct Link to the course/certification

Course Duration (if available)

Certification Availability (if applicable)

Filters & Search: Add basic filtering options (e.g., by category, duration, difficulty level) and a search bar to improve usability.

Responsive Design: Ensure the page is fully responsive on all devices, including desktop, tablet, and mobile.

Ref #188

Hi please merge the 3 issues then I'll assign

Hi please merge the previous 3 issues you're assigned then I'll be able to assign these

okay sir

Hi please merge the previous 3 issues you're assigned then I'll be able to assign these

I have raised PRs, please assign now

assigned! And Ive merged your prs


uv: 0.1.24 -> 0.1.31

Description of changes
Updated the package after https://github.com/NixOS/nixpkgs/pull/298340, which adds a new rustc release, had been merged.
Drafted because I missed that the new rustc was merged into staging and hasn't hit master at time of writing https://nixpk.gs/pr-tracker.html?pr=298340
Would fix https://github.com/NixOS/nixpkgs/issues/301179

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Closing in favor of https://github.com/NixOS/nixpkgs/pull/305322, because it contains a more recent version.


Some packages will not listed by winget upgrade, even upgrade packages are available in winget repository

Brief description of your issue
Certain packages that are installed on a device will not be handled (or not handled correctly) via Winget upgrade
This might also affect other packages. In this case the source and target installers are MSI so there is no confusion about different installers.
winget list shows the packages and their installer IDs. (see environment)
Steps to reproduce

have outdated versions of C++ Redist 2005, 2008, 2010, 2012, 2013 or 2015-2019 installed
run winget upgrade
notice these packages are not listed that upgrades are available e.g. 2015-2019 14.28.x to 14.29.30037 or other combinations

Expected behavior
winget upgrade should list available upgrades for these packages
Actual behavior
winget upgrade does not list upgrades for these packages
Environment
Windows Package Manager v1.0.11451
Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.
Windows: Windows.Desktop v10.0.21390.1
Paket: Microsoft.DesktopAppInstaller v1.11.11451.0
Windows 10 Insider Dev 21390
Any other software?
Upgraded the packages manually via winget install
result:
PS C:\WINDOWS\system32> winget list c++
Name                                                               ID                                     Version
Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.61030       {33d1fd90-4274-48a1-9bc1-97e33d9c2d6f} 11.0.61030.0
Microsoft Visual C++ 2015-2019 Redistributable (x64) - 14.29.30037 {4b2f3795-f407-415e-88d5-8c8ab322909d} 14.29.30037.0
Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.61030       {ca67548a-5ebe-413a-b50c-4b9ceb6d66c6} 11.0.61030.0
Microsoft Visual C++ 2015-2019 Redistributable (x86) - 14.29.30037 {dfea0fad-88b2-4a1f-8536-3f8f9391f4ef} 14.29.30037.0

@Karl-WE we're looking into these. This is one of those areas where the matching is quite challenging. We're looking at an "UpgradeCode" that hopefully will help with these specific packages and many other .MSI installers.

https://github.com/microsoft/winget-cli/issues/1073#issuecomment-921870634

In my case Winget lists these packages after execution "winget upgrade", but it does not work correctly.
I had "C++ 2015-2019 Redistributable (x86)" version 14.30 and "C++ 2015-2019 Redistributable (x64)" version 14.29 installed back when 14.30 was latest version (version numbers are totally random). Winget incorrectly lists that x86 package is outdated and tries to update it instead of x64 version in winget command. Fixed this by manually specifying x64 package in winget command. Noticed this on both of my machines at the different times.

Hello, just had the very same problem on version winget v1.2.10271.
I have the following outdate packages (version 11.0.60610)  :

Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.60610   {a1909659-0a08-4554-8af1-2175904903a1}              11.0.60610.1
Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.60610   {95716cce-fc71-413f-8ad5-56c2892d4b3a}              11.0.60610.1

And I should be offered (version 11.0.61030.0) :

Microsoft Visual C++ 2012 Redistributable (x64) Microsoft.VC++2012Redist-x64 11.0.61030.0 winget
Microsoft Visual C++ 2012 Redistributable (x86) Microsoft.VC++2012Redist-x86 11.0.61030.0 winget

But winget upgrade does not show any update for those packages.
Thank you.

I believe we've got enough of the work in place with Windows Package Manager 1.3 Release Candidate to resolve these issues.
Some work will need to be done on the manifests to add the correct data for Windows Apps & Features in the manifest.

The Visual C++ Redistributable manifests have been updated with the appsAndFeatures data to help with matching in the registry. They have also been split into two packages by architecture to help.

@Karl-WE We just released WinGet 1.4 today. I wanted to follow up and see if this Issue is still actively causing trouble or not.

Hi Demitrius, I would need to install older C++ distributions to test this. I expect 1.4 is found in the official releases. There are some other quirks I have documented in my backlog to repro and report. Will let you know how this is going about C++.

I still sometimes see the behaviour that packages won't upgrade or not being listed, other packages than listed in this PR. I am collecting repros on this. Quite hard to track.

Yes, they are. This is one of the areas where MSIX based installations tend to shine. MSI's aren't terrible since they have a "3010 ERROR_SUCCESS_REBOOT_REQUIRED", but lots of .exe installers pull in other dependencies. It's often the case that those other dependencies are runtimes that need to be rebooted in order to apply.

[Policy] Command-Upgrade

We've been working on the side-by-side scenarios. You could try the latest release and enable the experimental feature on:

https://github.com/microsoft/winget-cli/releases/tag/v1.8.924-preview

Please provide feedback at:

https://github.com/microsoft/winget-cli/discussions/4281

Hello @denelon, checking my OP it was about MS C++ redist, where one usually do not want side by side versions. I am not sure if the reported issue, from long ago is still something that happen.
If you are not seeing similar that upgrades are not installed even though upgrade version exist, then I believe this PR is worth a closure.


Interop with nodemon --exec and ncc run

Nodemon sends the SIGUSR2 signal when a watched file changes, which can be handled in your app to gracefully shutdown.
Since NCC does not listen for SIGUSR2, it will error:
Error: Application at src/index.js is already running or didn't cleanup after previous run.To manually clear the last runbuild, try running "rm -rf /tmp/d41d8cd98f00b204e9800998ecf8427e".
[nodemon] app crashed - waiting for file changes before starting...

In #228, listeners for SIGINT and SIGTERM were added. I'd like to add a listener for SIGUSR2 as well (I've tested this locally and it resolves the issue).
Note that ncc run --watch won't work for me because ps.kill() will send a SIGTERM signal to my app, which will cause the process to exit, which stops NCC.
Minimal Reproducible Example
Copy the following files, run npm install, and then npm run start:ncc. While the app is running, make a change to src/index.js and observe the results.
Run npm run start:nodemon and make a change to observe the desired result.
package.json
{
  "private": true,
  "scripts": {
    "start:ncc": "nodemon --exec \"ncc run\" src/index.js",
    "start:nodemon": "nodemon src/index.js"
  },
  "dependencies": {
    "express": "^4"
  },
  "devDependencies": {
    "@zeit/ncc": "^0",
    "nodemon": "^1"
  }
}

src/index.js
const express = require('express');
const http = require('http');

const app = express();

app.get('/', (req, res) => res.status(200).json({
  message: http.STATUS_CODES[200],
  statusCode: 200,
}));

const server = http.createServer(app);

['SIGINT', 'SIGTERM', 'SIGUSR2'].forEach((signal) => {
  process.on(signal, () => {
    console.log('Shutting down...');
    server.close(() => {
      process.exit(0);
    });
  });
});

server.listen({ host: 'localhost', port: 8080 }, () => {
  console.log('Listening on http://localhost:8080...');
});

Sounds good @guybedford. For now, Nodemon works for me. --watch would be a nice to have, but not a show-stopper.


Padding between context menu strip items allows the menu to close without action when clicked.

REF: https://discord.com/channels/531175899588984842/599270434642460753/850336968675164170

Upon further review, this may be an issue just with the subclassed context menu strips found in the pathing module.


Unable to log in to XMPP client with LDAP auth

I'm on latest master of both lets-chat and lets-chat-ldap. This is my XMPP and LDAP config:
xmpp:
  enable: true
  debug:
    handled: true
    unhandled: true
  port: 5222
  host: chat.company.com

auth:
  providers: [ldap]
  ldap:
    connect_settings:
      url: ldap://ldap.company.com:389
    bind_options:
      bindDN: <a user's dn>
      bindCredentials: <the user's password>
    search:
      base: ou=something,o=company.com
      opts:
        scope: sub
        filter: (mail={{username}})
    field_mappings:
      uid: uid
      username: shortName
      firstName: givenName
      lastName: sn
      displayName: givenName
      email: mail

I can login successfully on the web app using my LDAP creds.
I try to login using Pidgin with:

Protocol:  XMPP
Username:  (my uid)
Domain:  (same domain as in XMPP config)
Port:  5222
Connect server:  (same domain as in XMPP config)

I get a prompt to Enter password for (uid)@(domain)
I enter my LDAP password, but login fails

Nothing appears in the logs, despite setting XMPP debug on. Am I missing anything?

@necramirez the problem is that the search filter is not compatible with how the XMPP works. Change it to the following:
(uid={{username}})

This will allow you to:

login to the web interface using your UID (instead of mail)
login to XMPP with<EMAIL_ADDRESS>

That's too bad.  I don't want to use UIDs to login, because our company directory uses serial numbers for UID, it would just feel so unnatural.
Just curious about why "the search filter is not compatible with how the XMPP works":  Does it not support the special characters in an email address ("@", ".")?

Just confirmed it. "@" does not work.
Given the<EMAIL_ADDRESS>format, if I pass use my email address as username, Pidgin itself breaks the "myemail<EMAIL_ADDRESS>string into:

username = "myemail"
domain =<EMAIL_ADDRESS>
So I tried to URL-encode my email address into "myemail%40mycompany.com", and passport-ldapauth simply passes it directly to the LDAP directory. It's passport-ldapauth that does not support email addresses as XMPP usernames.
I added this
  username = decodeURIComponent(username);

at https://github.com/vesse/passport-ldapauth/blob/master/lib/passport-ldapauth/strategy.js#L139 in my local install (lets-chat/node_modules/lets-chat-ldap/node_modules/passport-ldapauth/lib/passport-ldapauth/strategy.js) in order to test my hunch, and I can now login via Pidgin!

@necramirez I think we can come up with a better solution. If I create a branch for this, would you be willing to test it? I think we may be able to have it so you can use your email as your username, but you'll need to specify chat.company.com as the XMPP server.

but you'll need to specify chat.company.com as the XMPP server.

How is that different from how it is now? :p
But, yeah, I'm willing to test.

Could you try this branch: https://github.com/sdelements/lets-chat/tree/fix/380_xmpp_email_login
Example
If:

your company's email domain is: @company.com
your Let's Chat host is<EMAIL_ADDRESS>
Configure XMPP like:
xmpp:
  username: email
  host: company.com

Then, login with:
Username: @company.com
XMPP Server: chat.company.com

I'm testing on my local machine, with this XMPP config:
xmpp:
  enable: true
  debug:
    handled: true
    unhandled: true
  port: 5222
  username: email
  host: localhost

My Pidgin account setup is, assuming my email is<EMAIL_ADDRESS>* Protocol: XMPP
* Username: my_email # (first part of the email, before "@")
* Domain: my.company.com # (second part of the email, after the "@")
* Connect port: 5222
* Connect server: localhost

I can now login!
However, Pidgin is stuck connecting. This also appears in the console log:
<iq type="get" id="purplece599842" to="my.company.com" xmlns:stream="http://etherx.jabber.org/streams"<EMAIL_ADDRESS>xmlns="http://jabber.org/protocol/disco#items"/></iq>

I reverted to my hack (with decodeURIComponent() in passport-ldapauth) and I can login, and get this in the console log:
<iq type="get" id="purple50a6b7c1" to="localhost" xmlns:stream="http://etherx.jabber.org/streams" from="nikerwin%40sg.ibm.com@localhost/aa65ac584a2ec8ae92752307d9ab81cc"><query xmlns="http://jabber.org/protocol/disco#items"/></iq>
<iq type="result" id="purple50a6b7c1" to="nikerwin%40sg.ibm.com@localhost/aa65ac584a2ec8ae92752307d9ab81cc" from="localhost"><query xmlns="http://jabber.org/protocol/disco#items"><item jid="conference.localhost" name="Let's Chat Conference Service"/></query></iq>

So now I understand when you said, "you'll need to specify chat.company.com as the XMPP server", as that's what's used in <iq ... to="...">. I really need my chat server's domain to be the same as the email address' domain. Which won't work for us. :-(

@necramirez the xmpp.host setting was supposed to be set to your email domain, not localhost. As follows:
xmpp:
  enable: true
  debug:
    handled: true
    unhandled: true
  port: 5222
  username: email
  host: my.company.com

Just tested that, and it works!  I think this is a useful option.  It'll be safe to merge this, I think.
Though, honestly, it still won't work in our case, since we have geography-based subdomains<EMAIL_ADDRESS>then<EMAIL_ADDRESS>etc.  That means, I can only configure Let's Chat XMPP for only one country.
In any case, thanks for thinking about this.  :-)

@necramirez thanks for the update! I won't merge that fix right away, instead I'll take some time to think whether there's a better way to handle your use-case.

IMO, I think that the fix should really be with passport-ldapauth,
especially now that the author is already considering decodeURIComponent as
an option. Once that's actually done there, then lets-chat only needs to
make use of that option.

@necramirez can you try the latest code again? I think it might work for your scenario - with the multiple email domains. This time I changed the value of xmpp.username should be "full" instead of "email", so your configuration would be like:
xmpp:
  enable: true
  debug:
    handled: true
    unhandled: true
  port: 5222
  username: full
  host: my.company.com

It works! Yey! :-D

Is there a list of supported XMPP features? I see that sending files is disabled.

@necramirez yeah, sending files hasn't been implemented yet. It's basically just the ability to join rooms, and send/receive messages.
You can try the develop branch - that has additional XMPP features, including: friends list and 1-to-1 messaging.

@sibartlett do we track the list of XMPP Extension Protocols (XEP) that we support ?

@geoffwhittington No we don't, that's something we could start doing though. We'd also have to note that we don't support the full specification for each XMPP extension - we support just enough for most/our needs.

Thanks!


How can I get the full, human readable content of exceptions?

How can I get the full, human readable content of exceptions?
I've read Optimizing programs targeting CoreRT and modified my .csprog file accordingly:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
    <Platforms>AnyCPU;x64</Platforms>
  </PropertyGroup>

  <PropertyGroup>
	<RootAllApplicationAssemblies>true</RootAllApplicationAssemblies>
	<IlcGenerateCompleteTypeMetadata>true</IlcGenerateCompleteTypeMetadata>
	<IlcGenerateStackTraceData>true</IlcGenerateStackTraceData>
	<IlcDisableUnhandledExceptionExperience>false</IlcDisableUnhandledExceptionExperience>
  </PropertyGroup>

  <ItemGroup>
    <!-- removed for brevity-->
  </ItemGroup>
</Project>

However, this made no difference.
If I debug my program in VS 2019, when it throws an exception, the only information I can see is (preserving the spelling):

Unhandled exception at 0x00007FF639FDB254 in AvaloniaCoreRTDemo.exe: 0xE31F4059. occurred

If I run the app in the console, it silently crashes and nothing is written to the console.
How can I get the full exception contents?

Here's a little bit on debugging CoreRT apps in VS: https://github.com/dotnet/corert/blob/master/Documentation/using-corert/debugging-corert.md
If you want to see the stack trace in the console, change the <OutputType> property in your csproj to Exe. The WinExe doesn't get a console the runtime could dump stuff into.

Awesome! this really helped me. Much appreciated your help.


Fix logic for cleaning voucher start/end datetimes.

Using all() with a list is problematic because all items in the list will be evaluated before passing to all(), and we can't do the > check unless both the datetimes are non-null.
Fixes #3619.

Fixed in #3632.


Create Rook CockroachDB Cluster CRDs and controllers

Part of #862
What problem are you facing?
stack-rook needs the ability to create Rook CockroachDB Cluster objects in a target Kubernetes cluster where the Rook operators are installed.
How could Crossplane help solve your problem?
Because a user should be able to dynamically provision a Rook CockroachDB cluster, the following custom resources are required:

CockroachDB Cluster
CockroachDB ClusterClass

The following controllers are required to reconcile these resources:

Claim controller that watches PostgreSQLInstance claims
Managed resource controller for managing Cluster resources

Fixed in https://github.com/crossplaneio/stack-rook/pull/1