FirebaseApp.configure(options: options) not loads data when passing FirebaseOptions

Describe your environment

Xcode version: 8.3.3
Firebase SDK version: 4.1.1
Library version: 4.0.6
Firebase Product: core

Describe the problem
In my app, I have more targets and configurations which require more GoogleServices-Info.plists. I have them all downloaded from firebase console after registering new apps.
On app launch, I am trying to load FirebaseOptions from plist at file path via FirebaseOptions(contentsOfFile: plistPath). Finding plistPath via Bundle.main.path(forResource: plistName, ofType: "plist") (every plist have different name). Although path to plist is found and init is returning FirebaseOptions instance, returned instance is empty.
FirebaseApp.configure(options: options) is then complaining about not finding plist named GoogleService-Info.plist.
Steps to reproduce:
PlistName is different than GoogleService-Info.
guard let plistPath = Bundle.main.path(forResource: plistName, ofType: "plist") else {
    fatalError()
}

guard let options = FirebaseOptions(contentsOfFile: plistPath) else {
    fatalError()
}

FirebaseApp.configure(options: options)

The plist file must be named GoogleService-Info.plist.
If you have multiple, an option is to put them in different folders.

And is there any reason why it should be named exactly like that? The init(contentsOfFile:) could parse any plist, if given in a right path.

I don't think it must be named "Google-ServiceInfo.plist". Can you check whether the plist file is in the correct bundle or linked properly?
Can you double check with the code below?
[[NSDictionary dictionaryWithContentsOfFile:plistPath]

[[NSDictionary dictionaryWithContentsOfFile:plistPath] works properly. Now I noticed, that FirebaseOptions init works just fine, but FirebaseApp.configure(options: options) cannot handle the passing options and is trying to find "GoogleService-Info.plist" anyway.
So it is a different issue after all.

BTW this is console output after FirebaseApp.configure(options: options) call.
<Error> [Firebase/Core][I-COR000012] Could not locate configuration file: 'GoogleService-Info.plist'.
<Error> [Firebase/Analytics][I-ACS020006] Google App ID from GoogleService-Info.plist is empty. Please, define GOOGLE_APP_ID in GoogleService-Info.plist for Analytics to work reliably.
<Error> [Firebase/Analytics][I-ACS025020] Analytics requires Google App ID from GoogleService-Info.plist. Your data may be lost. Google App ID has been changed. Original, new ID: (nil), 1:625184029135:ios:f8b3e130939c8434

Currently, Firebase Analytics depends on the GoogleService-Info.plist file internally, so that's the issue you're seeing. It's something we're working on, I don't believe there's a workaround for you unfortunately.

@paulb777 I believe that this check is executed only when you are loading default plist, than it should be named "GoogleService-Info.plist"
@ryanwilson Ok, thank you for this insight :)

If it doesn't pass the Options from the plist, then the options is probably wrong. Did you rename the Google-ServiceInfo.plist that you downloaded from the Firebase dashboard? Did you see any logs in this init: https://github.com/firebase/firebase-ios-sdk/blob/master/Firebase/Core/FIROptions.m#L206

Sorry, I have just noticed the log @ashhanai gave us:
 [Firebase/Analytics][I-ACS025020] Analytics requires Google App ID from GoogleService-Info.plist. Your data may be lost. Google App ID has been changed. Original, new ID: (nil), 1:625184029135:ios:f8b3e130939c8434
So it looks like the GoogleService-Info.plist was parsed just fine. There is no problem with Firebase Core.
Now, Analytics has such error message because it requires a static plist file instead of run-time options. We deliberately output the message to let you know that there could be some events very early in the app life cycle that requires the Google App ID, so you potentially miss some data.
In conclusion, we recommend to have a static GoogleService-Info.plist file (https://firebase.google.com/docs/ios/setup)

Does that mean we can not use multi config files in our projects (each file for an environment)?

You can, you just may miss out on very early analytics info.

Closing due to inactivity.

please reopen this, its better to have different plist files than store same files in different folders

@useeless37 you can create FIRApp instances from different plist files. Analytics in particular uses one of a specific name to capture events very early on in the app lifecycle.

Please correct me if I am wrong, but for a project with multiple build configs (dev VS prod) and targets (say Pokemon Black VS White), each config / target has its own bundle ID and Google app ID, and thus we have to have different plists for each target.
For a project with single target and multiple configs (dev VS prod), we cannot put the GoogleService-Info.plist files into different folders for each config, because if there are multiple files with the same name for the same target, Xcode randomly picks one into the bundle without keeping the folder structure. I figured it out by unzipping the .ipa file and check out the bundle, seeing all resources files from different source folders got put into just one bundle folder.
So, putting GoogleService-Info.plist files into different folders won't solve the issue, and Firebase has to support loading config plist of different names.

According to the "Getting Started" guide at home page. https://firebase.google.com/docs/configure/#use_multiple_projects_in_your_application

If the builds are part of a single target, the best option is to give both configuration files unique names (e.g. GoogleService-Info-Free.plist and GoogleService-Info-Paid.plist).

But according to reply above from @ryanwilson , there is no workaround at this moment.
Please fix Google Analytics for Firebase uses runtime configuration.

There is a warning underneath that section of the Getting Started guide mentioning:

Warning: This approach can impact Analytics collection in some circumstances, see the reliable analytics section.

That being said, I agree that we should be fixing Analytics to ensure it can handle runtime configuration changes. We're going to work with the Analytics team to find an acceptable solution that hopefully won't risk the integrity of data coming from Analytics.

Little bit more insight on that one. I have project with Firebase and switching names in runtime using FirebaseOptions(contentsOfFile: filePath)
It was working well on Xcode 9.4.1, but after update to Xcode 10 I have an output
FirebaseOptions([Firebase/Analytics][I-ACS025020] Analytics requires Google App ID from GoogleService-Info.plist. Your data may be lost. Google App ID has been changed. Original, new ID:: filePath)
And debugview at firebase panel doesn't even see the device (simulator ¯_(ツ)_/¯)

I'd like to bump this, the issue seems to have been open a year ago.
We're also struggling with this, we might implement the build-script solution but imho this isn't a good solution at all.
Our goal is to be able to switch environment at runtime and even though the api looks like it's build for it
FirebaseApp.configure with multiple FIRApp instances, Analytics use a static approach.
The best case scenario I would love to see:
let application = FirebaseApp.configure(options:) -> FirApp
application.analytics.logEvent()

were the static helper would simply call
Analytics {

  static func logEvent() {
   FirebaseApp.defaultApp.analytics.logEvent()
  }

}

I understand their could be "lost" analytics, but that's just our responsibility to call configuration as soon as possible.

There could be an internal pool to store the events otherwise

Seems like Analytics is not the only module that does not support multiple GoogleService-Info.plistfiles. We use multiple targets, and name the file like this: GoogleService-Info-<target>.plist. This has worked fine for some time, but when we now tried to add DynamicLinks to our project, it insists on loading the API KEY from GoogleService-Info.plist (which doesn't exist), and completely ignore that we have initialised FIRApp with a custom name for the service file.

@lifely thanks for the update and the clear goal. It's still an ongoing discussion and I'll update with more as it progresses, thanks!
@forsen thanks for bringing that to our attention - looks like the line in question is https://github.com/firebase/firebase-ios-sdk/blob/c724f9d1e8c3d2f7a44b8959983e1ebaa3eaa5cb/Firebase/DynamicLinks/FDLURLComponents/FIRDynamicLinkComponentsKeyProvider.m#L29
This can and should be avoided, I'll file an issue for it separately.

Hello everyone,
We have had the same problem of Analytics not working when initializing FIR instances runtime. Is there any time frame that can be provided for the fix? We have also seen this problem on Android and will it be fixed for both platforms or just iOS?
Regards,
Bhavik

Any options of NOT using plist files?
They're not the most secure way of storing keys in an app and would prefer to not use em.

I'd just like to chime in that we are in the exact same position as others. I don't think we will be able to migrate our other apps from Fabric to Firebase until there is a resolution here.
We have currently implemented a method that configures Firebase at runtime based on the bundle ID detected at runtime, with multiple config plist files.
For us, losing early analytics is by far preferable to changing our entire environment architecture.
I'd also like to point out the following changes (within the last week) to the documentation:

On iOS, do not add GoogleService-Info.plist to your project if you are supplying different configuration at run time, as this can result in an apparent change of GOOGLE_APP_ID and result in lost Analytics.

We were using the default name for production, which made us lose all reporting for other environments. @ryanwilson the following solution for configuration is working for crash-reporting:
private func dynamicallyLoadFirebaseConfiguration() {
    let bundleId = Bundle.main.bundleIdentifier
    var configFilepath: String?
    switch bundleId {
    case Global.devId:
        configFilepath = Bundle.main.path(forResource: "GoogleService-Info-Dev", ofType: "plist")
    case Global.stagingId:
        configFilepath = Bundle.main.path(forResource: "GoogleService-Info-Staging", ofType: "plist")
    default:
        configFilepath = Bundle.main.path(forResource: "GoogleService-Info-Prod", ofType: "plist")
    }
    guard let config = FirebaseOptions(contentsOfFile: configFilepath!) else {
        assert(false, "Unable to load Firebase config file")
        return
    }
    FirebaseApp.configure(options: config)
}

Very similar issue here, where Analytics prevents us from switching configurations in runtime. Any progress on making Analytics accept dynamic configuration?

Same issue here, but I can live with losing some analytics. But what I wonder about are the messages shown after that (Xcode, iOS app):
[403:42882] 5.12.0 - [Firebase/Core][I-COR000012] Could not locate configuration file: 'GoogleService-Info.plist'.
[403:42882] 5.12.0 - [Firebase/Core][I-COR000012] Could not locate configuration file: 'GoogleService-Info.plist'.

for completeness:
        var options:FirebaseOptions!
...
            options = FirebaseOptions.init(contentsOfFile: Bundle.main.path(forResource: "GoogleService-Info-staging", ofType: "plist")!)
        FirebaseApp.configure(options: options)

When I step with my debugger over the last line, this gets printed in the console. options is not nil.
According to my podfile.lock Firebase/Core is 5.12.0.

In our case we need to use more than one analytics instances at same time. So waiting for customizing Analytics by different App instance too.

@ryanwilson, @paulb777  Is there any plan or timeline for fixing this issue? We are just couple of months away from google analytics service SDKs being sunset (https://support.google.com/firebase/answer/9167112?hl=en). Though as much as we would love to move to firebase, this issue at present is stopping us from completing the migration from google analytics to firebase. If this is not on a list of issues to be fixed, we will start looking for an alternative and migrating data to another service.

@ryanwilson @paulb777 Is there any update that you guys can provide? Or should we consider that this issue is not going to get fixed in time for google analytics sdk being sunset?

@ryanwilson  @paulb777 Should we assume that this is not going to be fixed?

This is a baffling omission in my opinion. The workaround I'm currently using is having a new Build Phase in my project that copies the appropriate file:
cp "${SRCROOT}/ProjectName/GoogleService-Info${BUNDLE_ID_SUFFIX}.plist" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleService-Info.plist"

where BUNDLE_ID_SUFFIX is a user defined variable that differs between build configs.
Hope this helps.

This is also an issue for us as we are having multiple stages (debug/beta/release). A naming scheme GoogleService-Info.${STAGE}.plist would be a lot easier to handle.
@andreamazz thanks for the workaround.

https://twitter.com/steipete/status/1249693487789944832 might help with workarounds.

I am trying to load firebase database but app just crashes(Without any error messages) then I tried to debug by putting print() logs in package methods like this.
static Future configure({
@required String name,
@required FirebaseOptions options,
}) async {
print("Firebase started1");
assert(name != null);
print("Firebase started2");
assert(name != defaultAppName);
print("Firebase started3");
assert(options != null);
print("Firebase started4");
assert(options.googleAppID != null);
print("Firebase started5");
final FirebaseApp existingApp = await FirebaseApp.appNamed(name);
print("Firebase started6");
if (existingApp != null) {
return existingApp;
}
print("Firebase started7");
await FirebaseCorePlatform.instance.configure(name, options);
print("Firebase started8");
return FirebaseApp(name: name);
}
The Output was till Firebase started7
I/flutter (17430): Firebase started1
I/flutter (17430): Firebase started2
I/flutter (17430): Firebase started3
I/flutter (17430): Firebase started4
I/flutter (17430): Firebase started5
I/flutter (17430): Firebase started6
I/flutter (17430): Firebase started7
Like this.
So FirebaseCorePlatform.instance.configure(name, options) this never returned anything.
But with the same code and using platform.isAndroid I successfully run app without crashing.
And the log goes till the end.
I/flutter (17430): Firebase started1
I/flutter (17430): Firebase started2
I/flutter (17430): Firebase started3
I/flutter (17430): Firebase started4
I/flutter (17430): Firebase started5
I/flutter (17430): Firebase started6
I/flutter (17430): Firebase started7
I/flutter (17430): Firebase started8
Like so.
I double checked all the parameters all are true still this happning only for iOS .IDK why.

Even I am getting this issue. But my context is I am building a macOS standalone process, a command line tool. I am trying to integrate crashlytics into it. I manage to fix all other issues with bundle identifier etc. But not able to run the script in build phases as per the documentation.
error: Could not get GOOGLE_APP_ID in Google Services file from build environment FirebaseCrashlytics/upload-symbols: FirebaseCrashlytics/upload-symbols: cannot execute binary file

I'm using the last version of Firebase and I'm initialising programmatically my configuration without the GoogleService-Info.plist. But now, I'm receiving an error in app initialising about this. Anybody knows how to fix that?

@arthurgivigir I fixed this issue with following changes to run script in Build Phases:
/path/to/pods/dir/FirebaseCrashlytics/upload-symbols -gsp /path/to/app/target/GoogleService-Info.plist -p ios /path/to/built_products_dir/target_name.dSYM/Contents/Resources/DWARF/target -val
If you are working on macOS app, then pass -p mac instead of -p ios. After this my dsym files uploading successfully.

@arthurgivigir I am also having same issue.
Did u find any solution ?

@arthurgivigir I am also having same issue.
Did u find any solution ?

I found a solution for myself.

I use only one target and a different .xcconfig files for each environment(dev/stage/prod). So, I store my GoogleService-Info.plist-s as below:

Note: GoogleService-Info.plist-s shouldn't be marked as a Target Membership in File Inspector.

Add to your .xcconfig files a path to GoogleService-Info.plist files:
Dev.xcconfig:
GOOGLESERVICE_INFO_PLIST = ${PROJECT_DIR}/TargetName/Resources/Firebase/dev/GoogleService-Info.plist
Stage.xcconfig:
GOOGLESERVICE_INFO_PLIST = ${PROJECT_DIR}/TargetName/Resources/Firebase/stage/GoogleService-Info.plist
...

Modify your project Info.plist:

Open Target Build Phases, tap + icon, New Run Script Phase and add the following script:

# Get a reference to the destination location for the GoogleService-Info.plist
PLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app

# Copy plist
echo "Using ${GOOGLESERVICE_INFO_PLIST}"
cp "${GOOGLESERVICE_INFO_PLIST}" "${PLIST_DESTINATION}"

Use FirebaseApp.configure() in application:didFinishLaunchingWithOptions:.

Done!

I just did log event successfully in Debug View at firebase console as following:
let options = FirebaseOptions(googleAppID: googleId, gcmSenderID: gcmId) options.apiKey = apiKey options.projectID = projectId options.bundleID = bundleId FirebaseApp.configure(options: options)
Then used Analytics.logEvent to send event with -FIRDebugEnabled and -FIRAnalyticsDebugEnabled in scheme args.
Every thing seems initialized and correctly configured even in Xcode logs, but FirebaseAnalytics logs tell something else 🙃 ?

[FirebaseAnalytics][I-ACS024000] Debug mode is on
[FirebaseAnalytics][I-ACS020006] Google App ID from GoogleService-Info.plist is empty. Please, define GOOGLE_APP_ID in GoogleService-Info.plist for Analytics to work reliably. See https://goo.gl/txkZbE
[FirebaseAnalytics][I-ACS025020] Analytics requires Google App ID from GoogleService-Info.plist. Your data may be lost. Google App ID has been changed. Original, new ID: (nil)
[FirebaseAnalytics][I-ACS023007] Analytics v.9.4.0 started
[FirebaseAnalytics][I-ACS029014] Successfully parsed a configuration.
[FirebaseAnalytics][I-ACS023016] Analytics is ready to receive events

I don't event have GoogleService-Info.plist in the project.

+1, seeing this issue for ages:
10.0.0 - [FirebaseAnalytics][I-ACS020006] Google App ID from GoogleService-Info.plist is empty. Please, define GOOGLE_APP_ID in GoogleService-Info.plist for Analytics to work reliably. See https://goo.gl/txkZbE
10.0.0 - [FirebaseAnalytics][I-ACS025020] Analytics requires Google App ID from GoogleService-Info.plist. Your data may be lost. Google App ID has been changed. Original, new ID: (nil), 1:767925875369:ios:62bc006ed59750a1

We use two different plist configurations within a single target just to toggle it in runtime between different stages – even in TestFlight where builds can be treated either as for a Sandbox project (for testers in TestFlight) or for a Production project (when the same build goes live to the App Store).
Pls give this a bit of prio to address it already. 🙏

Any update?

I want to bump this due to the performance aspect of this. Firebase initialization takes around 30 ms on iOS to initialize.
When passing options via constants this can be slashed almost to a half. Firebase is usually initialized in AppDelegate, which is critical for app start time. Reading and parsing XML plist files is very inefficient on the main thread.

Thanks @mkj-is Can you show the Instruments logs where you measured the slow plist reading and parsing?

My situation:
I don't want separate schemes/environments. I want to have a single target. I just want to be able to release any TestFlight build anytime I want. But I don't want my TestFlight builds to disrupt with my analytics. So I have to be able to choose a GoogleService-Info.plist file at runtime; just after my isDownloadedFromAppStore() check.
My setup:
I'm checking if the app is downloaded from the AppStore as follows:
func isDownloadedFromAppStore() -> Bool {
        if let appStoreReceiptURL = Bundle.main.appStoreReceiptURL,
            appStoreReceiptURL.lastPathComponent == "sandboxReceipt" {
            return false
        } else {
            #if DEBUG
            return false
            #else
            return true
            #endif
        }
    }

Then I choose a plist as follows:
func configureAllProducts(application: UIApplication) {
        if let options = getFirebaseOptions() {
            FirebaseApp.configure(options: options)
            configureFirebaseMessaging(application: application)
            configureFirebaseRemoteConfig()
        }
    }

    private func getFirebaseOptions() -> FirebaseOptions? {
        let filePath: String?
        if logSettings.isDownloadedFromAppStore() {
            filePath = Bundle.main.path(forResource: "GoogleService-Info-AppStore", ofType: "plist")
        } else {
            filePath = Bundle.main.path(forResource: "GoogleService-Info-Sandbox", ofType: "plist")
        }
        guard let filePath, let options = FirebaseOptions(contentsOfFile: filePath) else {
            ErrorLog("Couldn't load firebase config file")
            return nil
        }
        return options
    }

The issue:
So this setup should supposedly work. The issue was; I'm using Crashlytics as well and the build phase configuration for it throws an error about GOOGLE_APP_ID at build time.
If I remove the Crashlytics build phase; the error goes away. So obviously Crashlytics wants to know about the GoogleService-Info.plist file at build time. This is probably to allow the product to catch crashes that might occur before SDK initialization via config API.
The solution I'm testing now (seems to work so far):
I tried different ways to make Crashlytics to recognize my custom plist files but I had no luck. So I decided to fake it with a dummy plist file at build time. I don't care about seeing logs of crashes that might possibly occur prior to Firebase initialization anyway; it would be a pretty rare case.

The originally named plist file has a fake ID. My other two info plist files are filled with correct information.
I tried this setup and my Sandbox environment has successfully recognized Google Analytics and Crashlytics. Worse thing I'm expecting is that I won't be able to receive crashes before the SDK initialization which were configured at build time with a fake ID.

I think I have found a working solution to this.
Goal
I'm using TestFlight to let people test my app. They are messing with all the analytics so I wanted to send them a sandbox build. But then there's always a possibility of accidentally sending this sandbox TestFlight build to the AppStore.
So I wanted to keep a single scheme and come up with a setup where GoogleService plist file is decided in the runtime.
Setup
First I tried launching the app with 2 different GoogleService plist files (each has a custom name). I got a build time error indicating that it couldn't find the GOOGLE_APP_ID. Reason to this is not having the plist file with the original name (GoogleService-Info.plist).
I noticed that this build time error goes away if I remove the Crashlytics build phase. I'm guessing that Crashlytics needs to know about the GoogleService file at the build time so that it can be able to start listening for crashes before the actual SDK initializes. I don't care about this time gap between launch and SDK init so I decided to trick Crashlytics that GoogleService exists.
Here is my plist files:

This is the GoogleService-Info.plist with a fake ID.

Rest of my plist files are configured with correct data.
How it works
SDK starts with the fake file and switches to correct info plist file just before calling SDK initialization (configure api).
How I'm deciding which file to use at runtime
func isDownloadedFromAppStore() -> Bool {
    if let appStoreReceiptURL = Bundle.main.appStoreReceiptURL,
        appStoreReceiptURL.lastPathComponent == "sandboxReceipt" {
        return false
    } else {
        #if DEBUG
        return false
        #else
        return true
        #endif
    }
}

func configureAllProducts(application: UIApplication) {
    if let options = getFirebaseOptions() {
        FirebaseApp.configure(options: options)
        configureFirebaseMessaging(application: application)
        configureFirebaseRemoteConfig()
    }
}

private func getFirebaseOptions() -> FirebaseOptions? {
    let filePath: String?
    if logSettings.isDownloadedFromAppStore() {
        filePath = Bundle.main.path(forResource: "GoogleService-Info-AppStore", ofType: "plist")
    } else {
        filePath = Bundle.main.path(forResource: "GoogleService-Info-Sandbox", ofType: "plist")
    }
    guard let filePath, let options = FirebaseOptions(contentsOfFile: filePath) else {
        ErrorLog("Couldn't load firebase config file")
        return nil
    }
    return options
}

Conclusion
In my tests this has been working so far so good. I observed all the events and debug logs in my staging account. Push notifications are working without any problems as well.
One potential issue is; fake plist file in use in between app launch and SDK configure method might be corrupting events and crash logs which is fine for my case.

Any update?

@paulb777 We added telemetry to measure Firebase initialization (FirebaseApp.configure()) call in production, as we are focused on improving app start time as much as possible.

130 ms (90th percentile, tvOS – basically equal to slowest device, Apple TV HD)
33 ms (50th percentile, tvOS)
100 ms (90th percentile, iOS – our device composition has large amount of older devices)
56 ms (50th percentile, iOS)

We have these dependencies and we link Firebase statically. We are not leveraging many of these sub-dependencies. Most of them are transitive dependecies of FirebasePerformance or Crashlytics.

FirebaseABTesting (10.22.0)
FirebaseAnalytics (10.22.0)
FirebaseAnalytics/AdIdSupport (10.22.0)
FirebaseCore (10.22.0)
FirebaseCoreExtension (10.22.0)
FirebaseCoreInternal (10.22.0)
FirebaseCrashlytics (10.22.0)
FirebaseInstallations (10.22.0)
FirebaseMessaging (10.22.0)
FirebasePerformance (10.22.0)
FirebaseRemoteConfig (10.22.0)
FirebaseSessions (10.22.0)
GoogleAppMeasurement (10.22.0)
GoogleDataTransport (9.4.1)
GoogleUtilities (7.13.0)

I found a solution for myself.

I use only one target and a different .xcconfig files for each environment(dev/stage/prod). So, I store my GoogleService-Info.plist-s as below:

Note: GoogleService-Info.plist-s shouldn't be marked as a Target Membership in File Inspector.
Add to your .xcconfig files a path to GoogleService-Info.plist files:
Dev.xcconfig:
GOOGLESERVICE_INFO_PLIST = ${PROJECT_DIR}/TargetName/Resources/Firebase/dev/GoogleService-Info.plist
Stage.xcconfig:
GOOGLESERVICE_INFO_PLIST = ${PROJECT_DIR}/TargetName/Resources/Firebase/stage/GoogleService-Info.plist
...
Modify your project Info.plist:

Open Target Build Phases, tap + icon, New Run Script Phase and add the following script:

# Get a reference to the destination location for the GoogleService-Info.plist
PLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app

# Copy plist
echo "Using ${GOOGLESERVICE_INFO_PLIST}"
cp "${GOOGLESERVICE_INFO_PLIST}" "${PLIST_DESTINATION}"

Use FirebaseApp.configure() in application:didFinishLaunchingWithOptions:.

Done!

In case you got an error like that:
Sandbox: cp(84447) deny(1) file-read-data /Users/username/workdir/ProjectName/ProjectName/Resources/Firebase/dev/GoogleService-info.plist
you can set Target's Build Settings ENABLE_USER_SCRIPT_SANDBOXING value to No


fix: object getters returns snapshot undefined

Issue reported on Twitter: https://twitter.com/dai_shi/status/1333202394809700354

There seems to be a bug in handling object getters. If we return non-objects, it's not undefined.

It's working! https://codesandbox.io/s/user-todos-with-valtio-check-fix-g7nuu?file=/src/App.js
Thanks @dai-shi

Thanks for checking. I will merge and release.


Reduce timeout configuration for E2E tests

Description
As temporary solution, last year we increased the timeout of the waiting response for the E2E tests, giving the chance to solve the cause of the delay.
The vast majority of the errors are although covered in a very shorter time, still keeps the whole process too long.
Reduce timeout to default (2s) or a similar value, instead of current (60s).
To be solved after https://github.com/rancher/dashboard/issues/9040

Although in case of errors it avoids to wait between 2 to 3 times the normal time, overall it does not seems to reduce so much on an average of many errors:

Timeout 4s, run 59m 18s for admin, with a lot of errors (CI) (dashboard)
Current timeout 1min, run 1h 5m 46s for admin, only 1 flaky case which is kinda best scenario (CI) (dashboard)

In another attempt I tried to remove any fixed waiting time I crossed, although it did not produce very huge improvements as well: 51m 16s.
Given these circumstances, we may want to simply tackle down flaky tests issues and handle performances issues (mainly API responses).
We could reduce safely this timeout afterwards just for the flaky/errors sake.


API migrations for Elm 0.19-rc

This is a tentative list from the limited info about Elm 0.19

[ ] 🛑 remove elm install ordering workaround (blocked on Elm)
[x] add tests for non upgraded dependency
[x] remove elm-package.json when done
[x] add elm-lang/json if necessary
[ ] install test dependencies (blocked on elm-test)
[ ] add elm-lang/browser if necessary
[ ] for packages, move elm files to src/ (or warn)
[ ] move tests to tests/
[ ] update readme
for packages, warning if license is not in the whitelist
[ ] if more than 5 exposed modules, give warning (see upgrade docs)

js stuff

[x] elm-package.json -> elm.json  (See https://gist.github.com/eeue56/3aee215b53ecfd5b4de3cc13cb7b95ff via @eeue56 )
[ ] package renames

elm-format stuff

[x] Tuple constructors (,,) are gone
[x] Basics.(!) is gone
[x] Basics.flip is gone
[x] Basics.curry is gone
[x] Basics.uncurry is gone
[x] String escape sequences "\u{xxxx}"
[ ] large tuples are gone (should elm-format insert a warning comment?)
[ ] .program -> Browser.*
[ ] Json.parse returns Json.Error
[ ] name shadowing is not allowed
[ ] (maybe?) case on numbers becomes if/else?

Remaining items moved to #32


Changing user with an uppercase name gives 404 error

Steps:

Create a user with an uppercase name (it's important)
curl -XPOST -uadmin:admin -vk   'https://localhost:9200/graph/v1.0/users' -H 'accept: application/json'   --data-raw '{"onPremisesSamAccountName":"Bob","displayName":"bob bob","mail":"bob@bob.de","passwordProfile":{"password":"123"}}:'

try to change userName:
curl -XPATCH -uadmin:admin -vk   'https://localhost:9200/graph/v1.0/users/Bob' -H 'accept: application/json'   --data-raw '{"onPremisesSamAccountName":"newName"}'

Actual: 404 instead of 200 but user name was changed cc @rhafer

Closing this issue because a similar issues has been reported here. https://github.com/owncloud/ocis/issues/7044


[DOC]

Hello,
My development environment is Windows, and when I enter this command, I idf.py set-target esp32s3 and I get the following error
`-- Component directory D:/soft/iot-reference-esp32c3/components/esp-aws-iot/libraries/common does not contain a CMakeLists.txt file. No component will be added
-- Component directory D:/soft/iot-reference-esp32c3/components/esp-aws-iot does not contain a CMakeLists.txt file. No component will be added
CMake Error at D:/soft/espressif_1/esp-idf_5.0.3/frameworks/esp-idf-v5.0.3/tools/cmake/targets.cmake:81 (message):
Toolchain file
D:/soft/espressif_1/esp-idf_5.0.3/frameworks/esp-idf-v5.0.3/tools/cmake/toolchain-esp32c3
.cmake not found
Call Stack (most recent call first):
D:/soft/espressif_1/esp-idf_5.0.3/frameworks/esp-idf-v5.0.3/tools/cmake/project.cmake:413 (__target_set_toolchain)
CMakeLists.txt:8 (project)
-- Configuring incomplete, errors occurred!
CMake Warning:
Value of IDF_TARGET contained a newline; truncating
cmake failed with exit code 1, output of the command is in the D:\soft\iot-reference-esp32c3\build\log\idf_py_stderr_output_27284 and D:\soft\iot-reference-esp32c3\build\log\idf_py_stdout_output_27284
`

@IotSHCJC
Could you try running this on a Linux PC

You need to follow these instructions to setup ESP-IDF - https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/index.html.
Assuming that you followed manual installation, the IDF is installed in %userprofile%\esp\esp-idf directory. You need to run the export.bat(if you are using cmd.exe) or export.ps1 (if you are using power shell) from your command line. After that you should be able to use idf.py.

This issue is not reproducible at our end on the Windows machine with ESPIDF version v5.0.7, hence closing this. Feel free to reopen if you think otherwise.


builder: run filters in ufo lib.plist

Depends on https://github.com/googlefonts/fontmake/pull/874, https://github.com/googlefonts/ufo2ft/pull/604
Fixes https://github.com/googlefonts/fontmake/issues/872
cc @yanone @anthrotype

@yanone it's deliberately not a string, it's the Ellipsis object => https://docs.python.org/3.9/library/constants.html#Ellipsis
it's just a placeholder to say something was omitted and will be filled in later in the pipeline.

I don't think it is in this case. I think it's meant to be the Python equivalent of the command line --filter='...' you just added. So it should be a string.

Ah, OK. Well, Marc's code is right then.

FYI https://github.com/googlefonts/fontmake/releases/tag/v3.3.0

Thanks Cosimo, I'm rerunning the CI now and it's looking good!

should you not also bump the minimum required fontmake in setup.py?
https://github.com/googlefonts/gftools/blob/12a0e7f81ead117e2ad89819f0451b5db1cc4e93/setup.py#L95

Good catch.


Try caching the Docker image.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

Retry https://github.com/Homebrew/brew/pull/6380 with another solution.

About a 1 minute speedup, nice! Any chance you could do the same for Homebrew/homebrew-test-bot? Trying to keep their setup in sync.

I don't think it's needed, since the test-bot Dockerfile doesn't really do anything other than add a file.

Cool, thanks.


Remove license from documentation

@abookyun Mind also updating the documentation on https://github.com/caskroom/homebrew-cask?

Here I am. 😎 According to discussion here: https://github.com/caskroom/homebrew-cask/issues/17437 and https://github.com/caskroom/homebrew-cask/issues/16692. It's the second step of deprecating license stanza.

Sorry, I just saw the comments below https://github.com/Homebrew/brew/pull/1235 talking about steps of deprecating process, and I'm not quite sure now if this PR is still needed?

I'm not quite sure now if this PR is still needed?

Yes, it is still needed, as the documentation is now located only here and has been removed from Homebrew/brew.

@reitermarkus got it, thanks. I'll leave this PR here. 😎

Yeah, thanks @vitorgalvao


Improve support for path-only URLs.

Encountered while doing a substantial backend rewrite for v2.
Currently, parse_url doesn't do well with non-urlencoded URLs that are intended to have no host portion, as frequently used by HTTP Location headers:
>>> from urllib3.util.url import parse_url
>>> parse_url('/redirect?target=http://localhost:61020/')
Url(scheme='/redirect?target=http', auth=None, host='localhost', port=61020, path='/', query=None, fragment=None)

As you can see here, the :// in the URL confuses urllib3's URL handling logic, which means it ends up incorrectly assuming that the scheme is /redirect?target=http. This is causing problems in the v2 backend, which uses parse_url to attempt to isolate out the request URL to put into the HTTP/1.1 request.
Frustratingly, urlparse gets this right:
>>> from urllib.parse import urlparse
>>> urlparse('/redirect?target=http://localhost:61020/')
ParseResult(scheme='', netloc='', path='/redirect', params='', query='target=http://localhost:61020/', fragment='')

It would be good if parse_url could spot a URL that is path-only and handle it sensibly.
This is part of a larger problem, which is that parse_url and the Url class cannot be used to incrementally build up a URL target. This is required to emulate browser logic for redirects if that's a thing that we want to do: it needs to be possible to handle all URLs that could be returned in Location headers, including absolute, scheme-relative, absolute-path, and path-relative, but right now urllib3 can't really do that.
The larger issue doesn't block v2, but this does. It's probably something that @sigmavirus24 could give guidance on if someone wants to pick it up.

The reason urlparse handles this correctly is also the reason why rfc3986 gets it right:
>>> import rfc3986
>>> rfc3986.urlparse('/redirect?target=http://localhost:61020/')
ParseResult(scheme=None, userinfo=None, host=None, port=None, path=u'/redirect', query=u'target=http://localhost:61020/', fragment=None)

Our API is just slightly incompatible with the way parse_url in urllib3 already works. If we're comfortable breaking that for v2, we can just switch over to a more robust implementation. We still need support for a few things that parse_url has grown support for but those should be pretty easy and there are (I think) branches for that work on the repo.

I certainly have no problem with swapping to a more robust implementation. If you're open to making a patch against the v2 branch that swaps that in, that'd be really cool.


y291ga backup lost

I am trying yo restore a Yi Cam RFUSY44FDUTWEC230510 (y291ga) but I don't know where I left my backup file (facepalm...) Someone can help me? Thanks in advance...

Which partitions do you need?
Is mtdblock4 enough?

I found the pendrive with the backup this morning. Thanks!


Mac: Copy/Paste no longer works.

Something regressed, but it is not possible to select, copy and paste.

Fixed


[SP-5323] Backport of PPP-4447 - Use of vulnerable component - Tika Core 1.1x (8.3 Suite)

Merge Masters: @pentaho-lmartins  and @smmribeiro
Cherry-picks:

https://github.com/Pentaho/pentaho-kettle/commit/501494191976ae9e7c7824266a238844442f65ab

:x: Build failed in 58s
Build command:
mvn clean verify -B -e -Daudit -amd -pl plugins/pur/core

:exclamation: No tests found!
Errors:
Filtered log (click to expand)

script returned exit code 1

:information_source:  This is an automatic message


Tilesheet.drawTiles __bound position is incorrect when setting tile center and using no flag (on HTML5)

Before fix:

After fix:

The issue can be fixed by removing multiplication by tile size on lines https://github.com/openfl/openfl/blob/develop/openfl/display/Graphics.hx#L662 & https://github.com/openfl/openfl/blob/develop/openfl/display/Graphics.hx#L663.

Fixed by PR #1091


Render method now resolves to object with an unmount

Hi, I really like the library. My colleagues and I have started using it for a project, but I noticed what I think is small mistake.
The QDT render method calls ReactDOM.render to render the component to an DOM node, but nothing ever calls ReactDOM.unmountComponentAtNode, and there is no public API for doing so. All the components have the logic for unmounts implemented, but I don't believe any of their unmounts get called. This is evidenced by the fact that references to them remain within react dev tools even after any wrapper component gets destroyed. This represents a potential memory leak on the client, and an unnecessary allocation of resources on the server.
If you happen to be using React anyway you can call unmountComponentAtNode yourself on the element, but as the library bundles its own version of React (subject of another upcoming PR), there is no guarantee that it will be the same version of ReactDOM. The result in most cases are warnings about using multiple versions of React, and in future this could lead to breakages as React internals change over time.
This PR fixes the problem by having the promise for render resolve to an object with a unmount function. I have also taken to updating the documented examples for Angular and React, but I'm uncertain about the Angular one as I don't have much in the way of Angular experience.

Had a conversation with the library author offline ( @yianni-ververis ), and I was asked to provide some clarity about why this change is needed. Specifically why the componentWillUnmount within the individual component definitions are not sufficient.
So within a React application you can have one or more root nodes. A root node is created by calling ReactDOM.render and passing a component and a DOM element. You can do this multiple times and have any number of Root nodes. So while its often the case that React applications are monolithic with a single root node, this isn't at all a requirement. For example, this is what react dev tools look like when you point at Facebook:

When when the Qdt render method gets called what it creates is a React root node. Now to unmount a root node correctly, you need to call ReactDOM.componentWillUnmount as documented here: https://reactjs.org/docs/react-dom.html#unmountcomponentatnode
This ensures, as documented, that the node will "clean up its event handlers and state" before destroying the node. Destorying the node that the react root node sits in doesn't trigger any umount event. As of right now, Qdt does not call this ReactDOM method, and so none of the componentWillUnmount methods get called, and so nothing is safely cleaned up. componentWillUnmount only gets called when an unmount event occurs. Internally within a React application child components will get unmounted all the time due to router changes and other logic. However, the only way to safely unmount a Root node is by ReactDOM.unmountComponentAtNode.

I just noticed that the promise does already resolve via a React ref function. Previously I thought that there was no resolve. So what I've done is removed the ref and have the render method also resolve with a reference to the ReactDOM root node.
So this is now a breaking change, which I didn't realise before. Also, this is a pattern that is strongly discouraged by the ReactDOM docs as a "legacy pattern":
https://reactjs.org/docs/react-dom.html#render

sorry haven't had time to look at this too closely yet, been really busy. did talk with @yianni-ververis about what you already discussed with him, makes sense. thanks for the pr, will get to this early next week.

I'll be on Slack during UK hours, so ping me if you want to discuss it.

The are lint errors, can you pls fix?


Added manage collaborator modal

@kshiji Do not add functions with only console.log in it. Rectify collaborator spellings in id names.


extension not work in chrome with new update !!!

hi
chrome not work after update 9 May 2021 Version <IP_ADDRESS>
please help thanks

Any errors in console?

when we click to restore there is no response

It's not enough information to address your issue
Provide screenshots, a video or console output

hotkeys + restore in yellow not respone no result !
https://c.radikal.ru/c18/2105/09/37e48f741396.png

Can you send me your JSON for the page?

oh you right its work in other sites just mine :(
i give you to check but site is private
{"url":"https://private site/-/edit/","autoSubmit":false,"submitQuery":"","content":"{"id_promo":"test to github","id_no_imdb":"false","id_languages":["1"],"id_show_in_home":"true"}","name":785078654,"hotkey":""}


Can not  parse metadata by providing the metadata file.

I'm trying to use 'gdcParseMetadata()'  to parse metadata by providing the metadata file, but find that the format of the metadata file in GDC has been change recently.
So, I want to know how long the GDCRNATools can be updated.
Thanks!
`
##############################################################################
Error in vapply(seq_len(nSam), function(i) metadata[[i]]$cases[[1]]$samples[[1]]$submitter_id,  :
值的长度必需为1，
但FUN(X[[1]])结果的长度却是0
Calls: source ... withVisible -> eval -> eval -> gdcParseMetadata -> vapply
停止执行
`

@thy-chan Hi, could you please tell me the project you are trying to parse? Thanks

RNA-Seq files in TCGA-BRCA.  The format of the metadata file  has changed so that the GDCRNATools can't parse it.

@thy-chan Thank you so much for the reminder. I have just checked the JSON file in GDC and they do have changed the format. There's very little information in the file now, so I recommend that you can parse metadata use the automatic mode (eg., meta <- gdcParseMeta(project.id='TCGA-BRCA', data.type='RNAseq'), and then select the sample you'd like to use. Thanks

Yes, the information in the GDC's JSON file is reduced. I think the GDC extracts other information separately and puts it in other files, such as the Biospecimen and Sample sheet in the screenshot. Thanks

Parsing the metadata using the automatic mode for the TCGA-BRCA project does unfortunately not seem to work either:
> metaMatrix <- gdcParseMetadata(project.id='TCGA-BRCA', data.type='RNAseq')
Error in vapply(seq_len(nSam), function(i) null2naFun(metadata[[i]]$cases[[1]]$demographic$gender),  :
values must be type 'character',
but FUN(X[[297]]) result is type 'logical'

I got a same error when parsing TCGA-COAD metadata, here it is:

the command used:

HI, is this because of my internet problem?
or?
thank you very much

metaMatrix.MIR <- gdcParseMetadata(project.id = "TCGA-LUSC",

                               data.type  = "miRNAs")

Error in file(con, "r") : cannot open the connection
In addition: Warning message:
In file(con, "r") : InternetOpenUrl failed: '操作超时'


Slow extraction speed for Youtube video urls

[x] I'm asking a question
[x] I've looked through the README and FAQ for similar questions
[x] I've searched the bugtracker for similar questions including closed ones

Question
I'm using youtube-dl only to extract video urls from youtube, it's extremely slow (takes up to 30secs to extract the urls) for a while now. I've also checked the open issues, one was talking about that but the final conclusion was it won't be fixed and yt-dlp could be used. I agree yt-dlp is much faster (takes maybe 3sec to get a URL), any chance we can get such modifications used on yt-dlp also on youtube-dl?
yt-dlp is no alternative for me as I'm fixed to a system which still uses Python 2.7

Feel free to submit a PR that makes the extraction process faster.
What takes the time now is that YT makes the extractor execute some junk JavaScript to obtain media links that are not throttled, though I took ~6% off this in a recent mod.
The extractor could provide you with undecoded media links but then the download speed will be throttled instead. The current extraction process aims to get the widest combination of unthrottled formats. If a format that is seen in the browser isn't being offered by yt-dl, it seems to provoke complaints.
yt-dlp uses other tactics that are either impractical or beyond the interest/capability of any contributor:

allowing user control of the YT client for which links are retrieved
punting to PhantomJS or similar (but see PR #31187).

any option to prefer throttled links for extraction speed?

any option to prefer throttled links for extraction speed?

Not without modifying the code. Also, one part of the JS execution is required when YT sends an encoded media link (signature) to decode the signature, without which you have no media URL, throttled or otherwise.
As always, a full refund of 0 0-based monetary units is offered if you find the program unsatisfactory.

Okay, appreciate the response, thanks for closing the loop on this.
I will keep using the old verson of code, until someting major breaks that I am unable to understand how to manually patch because that part of the code changed so drastically among multiple files LOL. Then I will have to find time to update my SOC to be able to run modern versions of the code on Python 3 etc.

Recent yt-dl versions are running fine, though slowly, with Python 2.7.1 on a Broadcom 7405 SoC with 2xMIP4380 CPUs (oh, and invoking wget for each _request_webpage()). You just have to adjust expectations.

Recent yt-dl versions are running fine, though slowly, with Python 2.7.1 on a Broadcom 7405 SoC with 2xMIP4380 CPUs (oh, and invoking wget for each _request_webpage()). You just have to adjust expectations.

Currently using a legacy PogoPlug E02 SoC running Debian jessie :) Need to upgrade to some current Odroid or Pi

CPU: Marvell 88F6281
CPU Cores: 1
CPU MHz: 1200
Flash MB: 128
RAM MB: 256

So instead of <11 seconds for youtube_dl -g, it can take up to 2 minutes...so quite a big difference.
After grabbing all links from my yt watch playlist, forward links to pyLoad.

Recent yt-dl versions are running fine, though slowly, with Python 2.7.1 on a Broadcom 7405 SoC with 2xMIP4380 CPUs (oh, and invoking wget for each _request_webpage()). You just have to adjust expectations.

Well looks like the time has come....it was a good run.
Version 2021.12.17 :) no longer downloading (403)
python -m youtube_dl -v  https://www.youtube.com/watch?v=crnDkGUdoew
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'https://www.youtube.com/watch?v=crnDkGUdoew']
WARNING: Assuming --restrict-filenames since file system encoding cannot encode all characters. Set the LC_ALL environment variable to fix this.
[debug] Encodings: locale ANSI_X3.4-1968, fs ANSI_X3.4-1968, out ANSI_X3.4-1968, pref ANSI_X3.4-1968
[debug] youtube-dl version 2021.12.17
[debug] Python version 2.7.16 (CPython) - Linux-3.14.0-kirkwood-tld-1-armv5tel-with-debian-8.10
[debug] exe versions: ffmpeg 4.1.4-1, ffprobe 4.1.4-1
[debug] Proxy map: {}
[youtube] crnDkGUdoew: Downloading webpage
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on u'https://rr5---sn-8xgp1vo-p5qy.googlevideo.com/videoplayback?expire=1718503537&ei=EfRtZprqHZ2LkucPq4iggA8&ip=<IP_ADDRESS>&id=o-AM3HxxJOOm5Ve13igdogFDC7B84GzF1H3NiNc3ga2Yvn&itag=137&aitags=134%2C136%2C137%2C160&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=KB&mm=31%2C26&mn=sn-8xgp1vo-p5qy%2Csn-ab5l6nkd&ms=au%2Conr&mv=m&mvi=5&pl=18&initcwndbps=1111250&bui=AbKP-1P-XlxvEGAgw9c9nOLxvl0L1MW7_fKyxhf-bG6kdTsfgejTfqaDcx2RgNH9wcp2M5qM8R0m_RSG&spc=UWF9f2TkcOed3XvUROmKS8L34hfTstUwPV-IcAlM0I9URngKM3s8vcHmlgMi&vprv=1&svpuc=1&mime=video%2Fmp4&ns=3kshX-WwBaduvXJu2wKIW-4Q&rqh=1&gir=yes&clen=843238223&dur=1563.366&lmt=1718471588148623&mt=1718481655&fvip=5&keepalive=yes&c=WEB&sefc=1&txp=7209224&n=ubc0lAQ-fTeNojJB&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgAyYWfgDeNSuJk6zwKp2_I3fJWW9scii8oFV6aMp-D5MCICfSI0fCMCtIDzh59Mpl5r3et8LxH7qCvrRxik8cIilY&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AHlkHjAwRQIgFDmUYPolqFMl-anaT9e67R1pdDyL3zZtDAwR_LLmMMoCIQC6XqWFIvp1yr_jenzMuHBw-0CMf4jaiIV0909FK6mGcg%3D%3D'
ERROR: unable to download video data: HTTP Error 403: Forbidden
Traceback (most recent call last):
  File "/usr/lib/python2.7/youtube_dl/YoutubeDL.py", line 1970, in process_info
    partial_success = dl(fname, new_info)
  File "/usr/lib/python2.7/youtube_dl/YoutubeDL.py", line 1915, in dl
    return fd.download(name, info)
  File "/usr/lib/python2.7/youtube_dl/downloader/common.py", line 366, in download
    return self.real_download(filename, info_dict)
  File "/usr/lib/python2.7/youtube_dl/downloader/http.py", line 351, in real_download
    establish_connection()
  File "/usr/lib/python2.7/youtube_dl/downloader/http.py", line 116, in establish_connection
    raise err
HTTPError: HTTP Error 403: Forbidden

Use the nightly build (#30839, Known Issues) and report if that fails. The old release has probably not worked in many cases for several years.

Thanks yeah nightly build works, but then stopped working yesterday, but now looks like it's working again. Need to hurry up and set-up a faster SOC.

This broke 2021.12.17. The nightly build was working until YT player 590f65a6 and then started working again when that player was replaced by 84314bef.


Introspection warnings about validation errors of created schema

An introspected schema should ideally always be valid, because it represents an actual live database. But there are scenarios that don't make sense in a Prisma schema.
For example: two foreign keys that are exactly the same. Technically, we should put both foreign keys in the schema, so migrate can handle them properly. But we can't even represent that in the schema.
We should warn about these scenarios.

Putting this in the "Gaps" column because that makes some real existing databases not usable with Prisma.

Hi there,
As part of our effort to clean up our GitHub repo, we’re closing this issue to help focus on features and improvements that align with our focus areas and those of our community.
This issue was originally created for internal tracking purposes, but if you feel this is important to you, feel free to reopen the issue and get like-minded users to upvote as we will prioritize fixing issues based on community interest.
For more insight into our priorities and how we’re thinking about the future of Prisma, please see our blog post: https://www.prisma.io/blog/prisma-orm-manifesto.
Thank you for your understanding and support!


feat(log_path): Provide template driven log path

Reduce errors in log path creation by providing gomplate suitable for most uses

:tada: This PR is included in version 1.62.0-develop.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Use more specific exception types

This is half question, half feature request.
Is there a particular reason that the forPath() methods throw Exception? If not, I think it would be more useful to throw a more specific exception, e.g. CuratorException, ZooKeeperException or whatever.
In my application I have a lot of places where I mix ZK-related code and app-specific code and surround the whole thing with one try-catch, e.g. (using the standard Apache ZK client):
try {
    if (zk.exists(path, false) != null) {
        // deserialize the zNode's data, which could throw a MyDeserializationFailedException
    } else {
        // zNode should exist, but does not, so throw a MyDataNotFoundException
    }
} catch (KeeperException e) {
    throw new ZooKeeperIsBorkedException(e)
}

This way, I can handle the 3 different types of exception at a higher level, easily differentiating between the various error cases.
But with Curator, I have to either completely rewrite this code or add ugly rethrows like this:
try {
    if (curator.checkExists().forPath(path) != null) {
        // deserialize the zNode's data, which could throw a MyDeserializationFailedException
    } else {
        // zNode should exist, but does not, so throw a MyDataNotFoundException
    }
} catch (MyDeserializationFailedException | MyDataNotFoundException e) {
    throw e;
} catch (Exception e) {
    throw new ZooKeeperIsBorkedException(e)
}

Oh, forgot to say: apart from this niggling detail, Curator is an excellent library! Thanks for open-sourcing it.

Nice use of Java 7, BTW ;) I considered only using RuntimeException. If anything, I'd move to that instead.
All of the forPath() methods can generate ZK exceptions if there are problems with the cluster. There are also other internal and/or user problems that can happen. This makes for very ugly method signatures and confusing client usages. I wish ZK didn't throw exceptions for issues that are handle-able. Maybe I should've eliminated this in Curator.
In the end, though, it's personal preference. I choose to always use Exception as a style choice.

} catch (MyDeserializationFailedException | MyDataNotFoundException e) {
    throw e;
}

Can't you just do "throw" instead of "throw e"?

Thanks for the explanation.
I see your point, and since changing the signature of those methods would be quite a big breaking change for a lot of people, I'll close this issue.

Can't you just do "throw" instead of "throw e"?

No, I don't think you can do that, even in Java 7. I just tried it and Eclipse complained.


HUD/Canvas options: Buttons in virtual keyboard and confirmation boxes are not accessible.

Describe the Bug
There a couple of places in the HUD settings in Counters+ where the buttons aren't clickable.
When adding a canvas in the Counters+ options, I can only click on a couple of keys on both side of the virtual keyboard. Most buttons are not accessible (the example in the screenshot is the 'D'-button not being accessible):

When deleting a canvas, I'm unable to select the 'Yes' button on this confirmation box:

On a side note: I'm also guessing that it is not intended that the list of canvases is visible in front of the keyboard/confirmation box.

Adding onto this, sometimes I'm not able to exit the counters screen, like the button be clicked but it wont leave the Counters+ screen and I have to restart. Not every time, but often enough that its annoying


rive ? flare?

Hi, I'm one of rive users.
I'm wondering the compatibility of flare(flr) animation by new Rive runtime(rive-cpp).
Do you have any plan to support flare animation in this runtime?
There are a plenty of flare animation design resources in community and wondering if they are usable or not here.

Unfortunately the Rive format is fundamentally different from the Flare format and we currently we don't have plans to support both formats in a single runtime. However, there is a Flare C++ runtime implementation: https://github.com/2d-inc/flare_cpp

Unfortunately the Rive format is fundamentally different from the Flare format and we currently we don't have plans to support both formats in a single runtime. However, there is a Flare C++ runtime implementation: https://github.com/2d-inc/flare_cpp


Dependency is not satisfiable: python (>= 2.7.5-5~)

hello,
I'm trying to install python-requests on my Debian Wheezy from the .deb:
gdebi python-requests_2.4.3-6_all.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done
This package is uninstallable
Dependency is not satisfiable: python (>= 2.7.5-5~)
Well, is quite strange as with a "python -V" the output is: Python 2.7.7.
And I have already tried all of those chances: http://docs.python-requests.org/en/latest/user/install/#install
Any idea?

I'm afraid we can't support you with the .deb, because we don't build or maintain that package, @ralphbean does. I recommend raising a bug with debian if you're having trouble.
When you say you've tried the install methods on our website, which methods have you actually tried and how did they fail?

Thank you, I will contact Debian for that.
I've trued to download the tar.gz from GitHub: nothing
Then:
pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages
easy_install requests
Searching for requests
Best match: requests 2.6.0
Adding requests 2.6.0 to easy-install.pth file
Using /usr/local/lib/python2.7/dist-packages
Processing dependencies for requests
Finished processing dependencies for requests
With git clone and the tar.gz there is apparently no problem:
python setup.py install
/root/.pythonbrew/pythons/Python-2.7.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'extras_require'
warnings.warn(msg)
/root/.pythonbrew/pythons/Python-2.7.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
warnings.warn(msg)
/root/.pythonbrew/pythons/Python-2.7.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'include_package_data'
warnings.warn(msg)
/root/.pythonbrew/pythons/Python-2.7.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
warnings.warn(msg)
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/requests
copying requests/sessions.py -> build/lib/requests
copying requests/certs.py -> build/lib/requests
copying requests/api.py -> build/lib/requests
copying requests/structures.py -> build/lib/requests
copying requests/cookies.py -> build/lib/requests
copying requests/utils.py -> build/lib/requests
copying requests/status_codes.py -> build/lib/requests
copying requests/init.py -> build/lib/requests
copying requests/hooks.py -> build/lib/requests
copying requests/models.py -> build/lib/requests
copying requests/adapters.py -> build/lib/requests
copying requests/compat.py -> build/lib/requests
copying requests/exceptions.py -> build/lib/requests
copying requests/auth.py -> build/lib/requests
creating build/lib/requests/packages
copying requests/packages/init.py -> build/lib/requests/packages
creating build/lib/requests/packages/chardet
copying requests/packages/chardet/universaldetector.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/mbcharsetprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/langthaimodel.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/sjisprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/constants.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/gb2312prober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/latin1prober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/charsetgroupprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/mbcssm.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/init.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/euckrfreq.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/euctwprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/big5prober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/sbcharsetprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/langbulgarianmodel.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/escprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/jisfreq.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/eucjpprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/mbcsgroupprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/sbcsgroupprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/chardistribution.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/codingstatemachine.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/langhungarianmodel.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/gb2312freq.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/big5freq.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/euctwfreq.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/hebrewprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/jpcntx.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/compat.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/charsetprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/euckrprober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/escsm.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/langgreekmodel.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/chardetect.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/langcyrillicmodel.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/utf8prober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/cp949prober.py -> build/lib/requests/packages/chardet
copying requests/packages/chardet/langhebrewmodel.py -> build/lib/requests/packages/chardet
creating build/lib/requests/packages/urllib3
copying requests/packages/urllib3/request.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/init.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/collections.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/filepost.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/poolmanager.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/connectionpool.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/response.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/fields.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/exceptions.py -> build/lib/requests/packages/urllib3
copying requests/packages/urllib3/connection.py -> build/lib/requests/packages/urllib3
creating build/lib/requests/packages/urllib3/packages
copying requests/packages/urllib3/packages/six.py -> build/lib/requests/packages/urllib3/packages
copying requests/packages/urllib3/packages/init.py -> build/lib/requests/packages/urllib3/packages
copying requests/packages/urllib3/packages/ordered_dict.py -> build/lib/requests/packages/urllib3/packages
creating build/lib/requests/packages/urllib3/contrib
copying requests/packages/urllib3/contrib/init.py -> build/lib/requests/packages/urllib3/contrib
copying requests/packages/urllib3/contrib/pyopenssl.py -> build/lib/requests/packages/urllib3/contrib
copying requests/packages/urllib3/contrib/ntlmpool.py -> build/lib/requests/packages/urllib3/contrib
creating build/lib/requests/packages/urllib3/util
copying requests/packages/urllib3/util/ssl.py -> build/lib/requests/packages/urllib3/util
copying requests/packages/urllib3/util/request.py -> build/lib/requests/packages/urllib3/util
copying requests/packages/urllib3/util/init.py -> build/lib/requests/packages/urllib3/util
copying requests/packages/urllib3/util/timeout.py -> build/lib/requests/packages/urllib3/util
copying requests/packages/urllib3/util/response.py -> build/lib/requests/packages/urllib3/util
copying requests/packages/urllib3/util/retry.py -> build/lib/requests/packages/urllib3/util
copying requests/packages/urllib3/util/url.py -> build/lib/requests/packages/urllib3/util
copying requests/packages/urllib3/util/connection.py -> build/lib/requests/packages/urllib3/util
creating build/lib/requests/packages/urllib3/packages/ssl_match_hostname
copying requests/packages/urllib3/packages/ssl_match_hostname/init.py -> build/lib/requests/packages/urllib3/packages/ssl_match_hostname
copying requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py -> build/lib/requests/packages/urllib3/packages/ssl_match_hostname
copying requests/cacert.pem -> build/lib/requests
running install_lib
running install_egg_info
Removing /root/.pythonbrew/pythons/Python-2.7.7/lib/python2.7/site-packages/requests-2.6.0-py2.7.egg-info
Writing /root/.pythonbrew/pythons/Python-2.7.7/lib/python2.7/site-packages/requests-2.6.0-py2.7.egg-info
Thank you

I'm afraid we can't support you with the .deb, because we don't build or maintain that package, @ralphbean does.

Just a correction:  I do not support the debian redistribution, @eriol does.  I work on the .rpm packaging for Fedora and EPEL.  Regardless, thanks for the ping!

I think @lukasa meant to ping @eriol

Additionally, it's worth noting that the install appears to have gone just fine.

So actually this looks like @francesco1119 is using python brew to install things, which does not work (I would guess) with aptitude/dpkg. That would be your problem @francesco1119. You can't mix python brew with system packages. You should look for /usr/bin/python (or something like that) to determine:

If you have Python installed
What version of Python is installed.

Python is at the version 2.7.7.
So let's say I don't want to use .deb but "pip install requests". I launch the command the the terminal replay:
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages
Apparently looks ok, so I try to install pulseaudio-dlna_0.3.4_all.deb (that needs python-request) and the terminal says:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done
This package is uninstallable
Dependency is not satisfiable: python-requests (>= 2.2.1)
So it means that python-requests is installed but not the version I need. How to upgrade it?

@francesco1119 You're clearly in a whole world of dependency pain.
The reason pulseaudio can't satisfy its requests requirement is because there is no requests package installed, because apt-get ignores anything installed by pip. Your inability to install requests is a much bigger problem, and clearly your system requires real work to get into a good state again.

Hello, thanks for the ping for the Debian related stuff!
@francesco1119 I don't know python brew but it does not create a Debian package (for this you can use stdeb) so this is why when installing pulseaudio-dlna_0.3.4_all.deb you get that dependency is not satisfiable.
If you want to use pulseaudio-dlna_0.3.4_all.deb (it's not an official Debian package, did you package it by yourself?) the best thing to do is to backport requests from Jessie. Keep in mind that you have to backport python-urllib3 before backporting requests since, in Debian, requests uses the system-wide urllib3.
To backporting a package you can follow https://wiki.debian.org/SimpleBackportCreation
Otherwise you can use stdeb and package requests from PyPI (you don't need to follow Debian Policy for a package builded by yourself), and then install pulseaudio-dlna_0.3.4_all.deb. Or since you seems at ease with python brew, you can see if you can install pulseaudio-dlna using it.
HTH


Port Circles Benchmark to FOAM

FOAM seems slower than raw canvas for drawing a lot of circles.
http://codepen.io/kgr/pen/QEXdpr

Raw canvas version:
http://codepen.io/kgr/pen/RRXJVJ
FOAM version:
http://localhost:8000/src/com/google/foam/demos/bouncingballs/

FOAM version is much slower because of so many calls to valueGetter().  Have changed CView.paint() slightly to minimize number of getter calls.
Tried storing properties values in the object instead of instance_ but it didn't seem to help.
Tried storing default values in a prototype of instance_, but it was much much slower (7fps).
Created a FastCircle class which only supports x, y, and radius, and it's much faster, but it would be nice if we could find a way so that this wasn't required.


from PySide2 import QtWidgets, QtCore ImportError: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.15' not found (required by /usr/local/lib/python3.8/dist-packages/PySide2/libpyside2.abi3.so.5.15)

whenever i run your progress bar code. i get this error.
and if try to add round progress bar in my already developed code it cause same error.

I will check and let you know
On Thu, 7 Apr, 2022, 12:17 pm samannazz, @.***> wrote:

whenever i run your progress bar code. i get this error.
and if try to add round progress bar in my already developed code it cause
same error.
[image: image]
https://user-images.githubusercontent.com/89451747/162136852-89e4bcf1-97ba-417b-9cba-7b587b9783c6.png
—
Reply to this email directly, view it on GitHub
https://github.com/anjalp/PySide2extn/issues/2, or unsubscribe
https://github.com/notifications/unsubscribe-auth/APETXL5PKQPVVX5VX2TLM6TVD2AIPANCNFSM5SYJ2N2A
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I will check and let you know

Have you check? please let me know. please create any pyqt5 project and import PySide2extn. and see if it shows any error.

Solution:
This is usually because there are multiple versions of the QT shared libraries on the system which are incompatible with each other. For instance, if an application installed from apt required Qt5, ubuntu would store the QT shared libraries in:
/usr/lib/x86_64-linux-gnu/
Meanwhile, the PyPI installed PyQt5 stores QT shared libraries in:
/lib/python/site-packages/PyQt5/Qt5/lib
The easiest solution to the import error is to ensure that ubuntu only finds PyPI’s shared QT5 libraries by modifying the system environment variable LD_LIBRARY_PATH.


divmod is probably slower than needs be

we've got code for div which is "as fast as possible" and code for divmod which always runs 32 loops (it works bit by bit every time).
our div code doesn't directly compute the remainder, but once we've got the quotent we can multiply by the divisor and subtract that from the numerator to get the remainder. this is probably faster in most cases.

turns out our divmod is about as fast as i can be at its current size. there's faster versions, but they're all gonna be significantly more code.

https://github.com/Lokathor/arm7tdmi_aeabi/pull/21


feature: database update should run queries in an transaction

Feature request:
dotnet ef database update should really be run in an transaction.

It is--one transaction per migration.

(unless you use migrationBuilder.Sql("...", suppressTransaction: true);)


vscode.open command opens multiple copies of same document when uri fragments differ

VSCode Version: 1.9

Repo:
Using an extension, try opening the same file multiple times but using different hash fragments: file.js#L10, file.js#L20, file.js#L30
I believe i used the vscode.open command
Bug
We open a new document in each case instead of switching to an already open copy.
I also notice multiple entries for the same file in the quick open view:

This is a related issue to https://github.com/Microsoft/vscode/issues/12448

Into https://github.com/Microsoft/vscode/issues/12448


Raise min. required Ruby version

Is your feature request related to a problem? Please describe.
Currently, the minimum required Ruby version for Fluentd is 2.4, which reached EOL on 2020-03-31. The oldest Ruby version tested in CI runs is 2.7, which reached EOL on 2023-03-31. Supporting these versions not only endorses users to run outdated, potentially even vulnerable systems but also makes it difficult to use new language features (e.g. ractors).
Describe the solution you'd like
Drop support for Ruby 2.x or at least raise the min. required version to 2.7. In addition, the min. required version should not be based on arbitrary value, but instead, there should be a clear rule, like "Fluentd supports all maintained Ruby versions".
Describe alternatives you've considered
I don't think there is an alternative in the long run.
Additional context
Ruby version overview: https://www.ruby-lang.org/en/downloads/branches/

Thanks for your report!
The Fluent Package (we will change the name from td-agent), which we are about to release soon, will embed Ruby 3.
We also need to consider that min version in Fluentd itself.
https://github.com/fluent/fluentd/blob/d5685ada81ac89a35a79965f1e94bbe5952a5d3a/fluentd.gemspec#L19

I think this has been addressed with https://github.com/fluent/fluentd/pull/4288 so the issue could be closed.

Fixed in #4288
Thanks for your report!


Adds dedicated salvage spationaut role

About the PR
Adds a dedicated salvage spationaut (French - astronaut) role, tasked with running salvage operations. This will hopefully stop cargo techs from zerg rushing the salvage hardsuit and abandoning their department while still anchoring salvaging operations within the supply department and station more broadly, achieving a division of labour similar to that between shaft miners and techs in SS13 without the single-player lavaland experience.
All sprites are from /tg/station and no, they are totally not meant for some kind of shaft miner role. The role is currently not implemented on any maps to avoid mapping conflicts but the possibility is now here cartographers :wink:
Additionally adds;

salvage access and airlocks
salvage jumpsuit and boots - flavour items
salvage wardrobe - for those aforementioned items...
survival knife - a somewhat hard hitting knife to fend off space carp
salvage locker - has all of the salvage spationaut goodies such as hardsuits, toolbelts and such.

Screenshots

Changelog

:cl:

add: Reach to and then mine the stars with the new salvage spationaut role! Tasked with running salvage operations this exciting but not very new gameplay will be coming to a NanoTrasen station near you sometime soon.

not sure how i  feel about spationaut, the decided name iirc was just 'salvage technician' but if someone can come up with something better than either of those

So like an astronaut mime?

not sure how i feel about spationaut, the decided name iirc was just 'salvage technician' but if someone can come up with something better than either of those

I was originally going to go with technician but we already have a cargo technician in the same department, so to differentiate between them and avoid 'tech' meaning two things I went with this. I don't mind changing it if there's a consensus for something else.

what about:

Collectors
Scavengers

those sound a lot better and its directly related to the work

How about "Salvage Engineer"?
fits nicely with the real world "Demolition Engineer"

I'm not a huge fan of  (salvage?) collector it doesn't roll too well. Salvage scavenger could work but it does sound a bit unprofessional and a bit more a tool name then a role one.
As for engineer I think salvage is more akin to salvage ships then demolition work, thus astronaut is a parallel to the seaman of a salvage ship. I then went with spationaut because it was a bit better sounding and more unique - we're all astronauts here, etc. On a more practical level salvage engineer might come into conflict with station engineer as they're both going to be called engineers, probably not as big as an issue as tech/tech in the same department but something to keep in mind.

Surprised nobody's suggested just Salvager.
Seems like the obvious choice to me.

(Material) Recovery Technician/Specialist
Since the job is similar to recycling, then taking job titles from there seems appropriate. Material Recovery Facility (MRF) Operator is one of the actual recycling job titles so making it a spin on that seems like the way to go if you want a more professional name for the role.

(Material) Recovery Technician/Specialist
Since the job is similar to recycling, then taking job titles from there seems appropriate. Material Recovery Facility (MRF) Operator is one of the actual recycling job titles so making it a spin on that seems like the way to go if you want a more professional name for the role than salvage.

I think Material Recovery makes it a bit less obvious what the role is about (salvaging). I am open to perhaps Salvage Specialist or Salvage Operator if others like those titles.

Based on consulting, I've renamed the role to 'salvage specialist'.

specialist sounds fine to me


How to debug an equation

Hello guys,
I wanted to know if there is any way to debug the equation function . When computing my function and specifying it as a condition, no errors are thrown in the class declaration. No errors are thrown either when using problem.discretise_domain. However, I realize later that the function is buggy because I get this error using trainer.train() :
RuntimeError: Input points in ['D'] training are None. Please sample points in your problem by calling discretise_domain function before train in the provided locations.
I suppose that no points were generated because my conditions and my equation are badly declared. But I don't know where the errors are, because for some reason they are not thrown anywhere. My first guess was to run MyProblem.MyEquation(_input,_output) to do some debugging, but I cant't figure what parameters to use in the function. I also tried to replicate my equation function elsewhere (outside my class) and try to see what's wrong, and I could figure out some mistakes I made, but I thought that there was maybe a more efficient way to deal with this problem.  What do you guys do in this case ?
Thank you in advance !

Hello, @dario-coscia ! Thank you for your help! Your solutions helped me find a bug, but I still have some. This is mainly due because we want our neurol network output to be a tensor.
As i don't think PINA supports that (I think ?) we tried a workaround : we define our variables normally, and we create a LabelTensorgtensor = LabelTensor(torch.eye(4),['t', 'x', 'y','z'] and we do this : gtensor[0, 0] = output_.extract(['g00']) ... for each value of the tensor. I think it may create some problems, but we are slowly getting there.

Hi! If you want to train using a physics informed loss you need labeltensors for finding the variables to differentiate. The situation changes when you train in a supervised setting. There you just need input and output data, so it could also work with a standard torch tensor. You can achieve this by creating a new solver inheriting from the one you want to use, and just rewrite the forward call as
def forward(self,x):
    return self.neural_net.torchmodel(x)

By doing this you avoid any call to labeltensors in the output. Be aware tho, that you loose automatic differentiation because you do not have labels.


Stops replicating after a bit in 0.2 but works fine in 0.1

Description
Replicating a transform seems to stop randomly in the new 0.2 version.
We decided to try this out for the Bevy Jam 3, can see the bug demonstrated in our early prototype: https://github.com/paul-hansen/bevy-jam-3
Steps to replicate:
git clone https://github.com/paul-hansen/bevy-jam-3
cd bevy-jam-3
git checkout 1ed281e
cargo run -- server
cargo run -- client

Select the server window and use the wasd keys to move bevy icon. It works for a bit, but then randomly will stop replicating the position changes, no errors are logged and it never logs that the client disconnected.
Simply changing the bevy_replicon version back to 0.1.0 like we did in https://github.com/paul-hansen/bevy-jam-3/commit/8a679e23f0c67b2a28310302d467e5dbdda4209a makes it work fine again.
Off topic
Thanks for making this, the API looks really similar to what I've been thinking about making. Really excited to see where it goes!

Can confirm, am also running into this one.

Thanks for the report, It's probably caused by switch to Tick in #4. Looking into it now.

Fixed. In #4 we used SystemChangeTick on client to detect which diff is the last one. But it's wrong and there is a faster and cleaner way of doing it on Renet side.


Notebook 03, subscription_id needs double quotes

Since some subscription names have multiple words separated by spaces, it creates a problem when !az account set -s $subscription_id is executed, bash complains az: error: unrecognized arguments. This fixes the problem: !az account set -s "$subscription_id"

Same issue with this code : !dotenv set SUBSCRIPTION_ID $subscription_id, dotenv complains:Error: Got unexpected extra arguments. Use

realized this is subscription id not name.


Prime Factors

Useful script for decomposing a number into it's products.

Please add the terminal output and two test cases


Add NBD support

This would allow for example qcow2 support through qemu-nbd https://rwmj.wordpress.com/2019/10/03/how-to-edit-a-qcow2-file-from-c/
Code-Hex/vz does not have NBD support yet, so the needed bindings would have to be written first.
See https://developer.apple.com/videos/play/wwdc2023/10007/?time=421 for a short description of NBD in virtualization framework.

There is a Code-Hex/vz PR to add bindings for the NBD API: https://github.com/Code-Hex/vz/pull/156


Plugin Fails with 2023.2.0

Plugin fails with new release of Indigo.
Jan 25, 2024 at 10:48:52 AM
Enabling plugin "RainMachine2 1.0.0" using API v3.0
Starting plugin "RainMachine2 1.0.0" (pid 6956)
RainMachine2 Error              Error in plugin execution InitializeMain:
File "plugin.py", line 24, in
type: No module named 'aiohttp'

Fixed, ran "pip3 install regenmaschine"


zsh: command not found: slate

Problem
After installing node, npm and slate I keep getting zsh: command not found: slate in the terminal.
How to remedy this? On Mac OS X Sierra.

Hey @eheiser, did you include the -g flag when you ran npm install -g @shopify/slate?
 Can you make sure you included the -g flag and also check your /usr/local/bin/ directory for a slate bin?

doing ls /usr/local/bin/ I don't see a slate directory -
from the screenshot looks like it's being installed elsewhere

Yeah it looks like you've might multiple installs of node/npm. Ultimately, whatever path the slate command is being create in, needs to be included in the PATH of your .zshrc file.
Otherwise, if you're willing to restart and erase any installs of npm/node - NVM is a great Node version manager that lets you install and switch between versions really quickly.

Going to close this as I'm pretty sure it's not a Slate bug but something with your Node setup. Feel free to continue to post and I'll do the best I can to help you get things up and running.

just upgraded to slate 1.0 and upgraded my nvm version for it.
now my old theme's are broken with this this error

@sebbean Slate v1 is a major version release where there are many breaking changes. I suggest you read through the new docs in the Slate wiki for how to get up and running :)

@t-kelly yep i know all about the new one - excited to use it
i still have lots of themes running on the old one that i need to maintain.
I dont really know the flow to swapping between the two versions atm


.insert() does not return the proper type

Whenever I use a supabase.from('my_table').insert(/*...*/).select() the data object is of type any

Hi there,
I am using the supabase-v2 rc3 release, and for me, this is working fine. An example which works in my codebase:
// Create client with database types generated from supabase-cli
import type { Database } from<EMAIL_ADDRESS>const supabase = createClient<Database>(/* ... */)

const newEntries = [
  {
    path: '/',
    visitors_in_timerange: 0,
  }
]

const { data, error } = await supabase.from('analytics_livedata').insert(newEntries).select()
if (error) throw error

return data
/** ->returns correct type: {
  id: string;
  created_at: string;
  updated_at: string;
  path: string;
  visitors_in_timerange: number;
}[] */

It perfectly returns the right type (you of course have to include the Database types when calling createClient). It also errors if I do create an array of objects that doesn't match the schema.
Could you maybe share some insights or examples for your codebase?


[DOCS] plugins.md: removed trailing comma from code example (lines 78 and 133).

[DOCS] nit: removed trailing comma from code example (lines 78 and 133).

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Bug fix

What is the current behavior? (You can also link to an open issue here)
The example will lead to an error, "," not consistent 78 & 133

What is the new behavior (if this is a feature change)?
The example will work

Other information:

Hi, I unfortunately created a branch for each PR and I don't understand how "rebase" or "amend" for a commit in these branches. I search the documentation on the internet but I can't find the information I need. I managed to reverse what seems to be in my main branch but I can't find the concerned commits to change them :/

So you have your own Gekko repo that includes all your changes here:
https://github.com/bmarchesini/gekko
All changes for specific PRs are in different branches, see here:
https://github.com/bmarchesini/gekko/branches
Unfortunately you cannot do this on github.com itself you have to rebase by
first cloning your own repo to your computer and using git command line on
your computer. Here is a guide from the bitcoin repo:
https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md#squashing-commits
(after that guide be sure to upload your changes to github.com by doing
git push --force.
A more detailed guide on renaming commits (via a rebase, or via --amend) is
here: https://help.github.com/articles/changing-a-commit-message/
Keep in mind that all changes in a pull request on github are whatever is
on your own branch in your own repo. if you commit or change things in your
branch that will automatically update the pull request.
On Tue, Nov 6, 2018 at 5:10 PM bmarchesini<EMAIL_ADDRESS>wrote:

Hi, I unfortunately created a branch for each PR and I don't understand
how "rebase" or "amend" for a commit in these branches. I search the
documentation on the internet but I can't find the information I need. I
managed to reverse what seems to be in my main branch but I can't find the
concerned commits to change them :/
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/askmike/gekko/pull/2635#issuecomment-436181219, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7MD8Zjvt98P7Na6kuDb7XeBfId1OP0ks5usVIQgaJpZM4YOpb6
.

--
PGP key at keybase.io/mikevanrossum
https://keybase.io/mikevanrossum/key.asc

Hi, I think everything's fine, can you confirm that?

Perfect! Thanks :)


Update bitwise-operators.md

Fixes #6430

Changed the comment to use the "right" keyword - FYI https://help.github.com/articles/closing-issues-using-keywords/


Fixing path changes, case issues, and missing berlin data

Note that some of the links at natural earth evidently have moved. Also a number of the attributes have had their case changed.

Can you do a "Kernel ->Restart & Clear Output" on the notebooks 1-4? Because now the diff is a bit difficult to see

Closing as needs fixing

will do on the "Kernel ->Restart & Clear Output" on the notebooks 1-4?"

Notebooks are fine, the only real changes that have to made for things to run on my end are:
https://github.com/geopandas/scipy2018-geospatial-data/pull/4/commits/8752c926051a8ebd938efe4d91f53fd3f84bb521
and
https://github.com/geopandas/scipy2018-geospatial-data/pull/4/commits/c679b4e307f66dd64fadf10d3404adca32570757#diff-b7cb75ca59993a879e29bed8cd8469b8

There is already a berlin-neighbourhoods.geojson, the shapefile you added is something different?

Notebook 06 uses the shp file.

Let's just update the geojson with the median_price field and drop the two disconnected polys. We're not running the weights notebook, and I don't think it makes sense to build the shp then.
I can do this right now.

I've added my changes to @sjsrey, but my matplotlib rc is nonstandard, so coloring on some plots looks different.

OK, plots should look like standard mpl. sorry about that.

If you'd like, @sjsrey, git pull --rebase your sjr-add-gds-content branch and rerun 06,07,08 if you'd like to confirm the swap to a fixed & clean berlin-neighbourhoods.geojson has worked.


Cannot install GammaOS properly

Hello,
Thanks for the great work!
I have installed GammaOS but then walker into the bootloop issue. With your guide I managed to reload stock firmware (with fixed partitions?)
However when I tried to flash GammaOS again I went into the same bootloop problem. Is there a fix for this?
Gr
Frank Evers

Fixed


Example needed to print some internal values

Hello,
I would like to confirm that self-calibration is enabled/disabled as well as the ASC Initial Period and Standard Period.
I have tried a (naive) approach:
uint16_t ascEnabled;
scd4x.getAutomaticSelfCalibration(ascEnabled);
Serial.println(ascEnabled);

uint16_t ascInitialPeriod;
scd4x.getAutomaticSelfCalibrationInitialPeriod(ascInitialPeriod);
Serial.println(ascInitialPeriod);

But obviously this is not correct as I am getting weird outputs.
Would it be possible to write a small example ?
Thanks a lot

Hi @domotiquefacile
What weird outputs are you getting? Are you able to start measurements with the sensor?
Also did you check if you get an error back from the scd4x calls? (see https://github.com/Sensirion/arduino-i2c-scd4x/blob/master/examples/exampleUsage/exampleUsage.ino for how to read it out)

I always got the same magic value 42405, similar to that person here:
https://github.com/Sensirion/arduino-i2c-scd4x/issues/30#issuecomment-1878922692
Same value for getAutomaticSelfCalibration or
getAutomaticSelfCalibrationInitialPeriod or getAutomaticSelfCalibrationStandardPeriod.
Yes I successfully managed to set the value without error but wanted to confirm it by displaying it.
Can you perhaps write an example to display those values?
Thanks

Your code looks fine and should work.
What I would do is additionally read out the error values. Something like this:
    uint16_t ascEnabled;
    uint16_t error;
    char errorMessage[256];
    error = scd4x.getAutomaticSelfCalibration(ascEnabled);
    if (error) {
      Serial.print("Error while trying to execute getAutomaticSelfCalibration(): ");
      errorToString(error, errorMessage, 256);
      Serial.println(errorMessage);
    } else {
      Serial.print("ASC enabled: ");
      Serial.println(ascEnabled);
    }

Based on your return value of 42405 it might be that you are trying to read out the values while a measurement is running.
If you check the data sheet (https://sensirion.com/media/documents/48C4B7FB/64C134E7/Sensirion_SCD4x_Datasheet.pdf) you see in chapter 3.4 that you can't use these two commands during a measurement.
If you use the code above you would then see a corresponding error.
Can you check and confirm that you are executing the commands only when no measurement is running?

Oh thank you very much, that was indeed my mistake: I didn't notice that it will not work during measurements.
Now that I execute it outside measurements, it works fine.
Thanks again