Users are hitting Gradle failures when upgrading Flutter to v1.12.13+hotfix.5

There are multiple reports of users hitting Gradle failures following the upgrade (#46807, #46753, #46790).
The root cause is that we've added platform specific plugin packages for web and macos with no android/ folders as dependencies of popular plugins (url_launcher, google_sign_in, video_player, firebase_auth, and firebase_core).
Flutter's Android build configuration used to assume that every plugin has a buildable android/ folder. We have landed https://github.com/flutter/flutter/pull/40640 https://github.com/flutter/flutter/pull/46282 to mitigate this problem however there are still 2 classes of issues:
Cached build artifact
It's not clear to me exactly what, but it seems like right after upgrade flutter, the build system still tried to look for the buildable android/ folder (e.g #46282 does not take immediate effect), and users have to delete some locally cached state before it takes affect. It's unclear to me what cached state exactly matters, some users report that deleting pubspec.lock and running flutter clean solved the issue, and some report that they had to clean their .pub-cache folder.
This is a nuisance for many users who upgrade flutter and try to build their existing app. We should better understand which cached state is causing the problem and figure out how to mitigate. @blasten @jonahwilliams do you have any insights?
The aar build strategy
Flutter has a fallback build strategy to mitigate AndroidX issues, if the Android build fails Flutter may try a secondary build strategy which involves building each plugin as AAR, and then building the app. This aar build strategy was not updated to support non-Android plugins, and is failing when the project has a non-Android plugin dependency.
Note that this scenario is expected to be less common, it will fail for applications where the initial build fails due to an AndroidX failure and also have a non-Android plugin dependency.
@blasten has sent out https://github.com/flutter/flutter/pull/46835 to mitigate that issue, however it's yet clear if that fix qualifies for a hotfix.
Temporary mitigation in plugins code
One temporary mitigation which should address both issues would be to add a no-op android/ folder to all plugins, until there's a new stable release that addresses both issues. I suggest we start adding these to packages of the plugins mentioned above as a temporary remedy. Once the issues above are solved on stable we can clean these up.

@amirh just to be clear so I understand what needs to be mitigated immediately, these are all the plugins affected, correct?

[ ] url_launcher
[ ] google_sign_in
[ ] video_player
[ ] firebase_auth
[ ] firebase_core

, but it seems like right after upgrade flutter, the build system still tried to look for the buildable android/ folder (e.g #46282 does not take immediate effect), and users have to delete some locally cached state before it takes affect.

Possible the gradle.daemon is still running the old gradle script. If we can reproduce it locally, we could test by manually killing the daemon and re-running

@mklim I updated the plug

@amirh just to be clear so I understand what needs to be mitigated immediately, these are all the plugins affected, correct?

Correct, I updated the list with the specific packages that need to be updated

@amirh Thanks. I think it would be a good idea to create sub issues for mitigating specific plugins so we can track who's fixing which one. I'll start with google_sign_in_web next.

I am having this issue too, may I suggest a port-mortem analysis on this?
I think the Flutter team is incredibly capable and experienced, but I can't help myself on thinking how could a major release be shipped without anyone seeing any impact on so many popular packages. Maybe a new test protocol for releases should be studied?
I don't intent on criticize anyone, I love your work from the bottom of my heart, I just like to take opportunities like this to improve and come out with a stronger and more robust product.

Good idea, I'll follow up with a post-mortem.

Important caveat for people that are working on the mitigations (@bparrishMines @ditman):
Like always, it's possible to introduce AndroidX failures in even the boilerplate plugin code. We should manually update any patches to avoid any references to androidx or support entirely in the non-op Android code. In this case the code should never be executed so we don't need to use either.
As a starting point you can create the Android template pretty easily with flutter create and then remove some support references in the source code from there.
$ cd /tmp
$ flutter create -t plugin -i objc -a java --no-androidx --org io.flutter.plugins  $plugin
$ cp -r $plugin/android path/to/$plugin

I am going crazy!!!, I have a broken app.
It's possible downgrade the sdk, I cloned 1.12.13.hotfix.3 from git, but flutter doctor, made the upgrade again!!!

@lacu I'm sorry, we're working to re-publish all affected plugins ASAP, will hopefully be done within a few hours (mainly waiting for CI right now). If you can't wait a few hours you should be able to temporarily pin the offending plugin's version (assuming you're not building for web or macos) to the version before the web/macos endorsement, don't forget to unpin once the workarounds are published.

This is a nuisance for many users who upgrade flutter and try to build their existing app. We should better understand which cached state is causing the problem and figure out how to mitigate.

@amirh is the case that a user was on dev (without #46282) and then switched to stable? or does this happen after a stable -> stable upgrade?

@blasten I don't know, asked on https://github.com/flutter/flutter/issues/46807#issuecomment-565181760
[from the volume of thumbs I'd imagine it's stable -> stable, but I may very well be wrong]

Status update: all flutter/plugins plugins listed above have been published with the workaround. firebase_core and firebase_auth are still waiting for CI.

https://github.com/flutter/flutter/issues/46807#issuecomment-565196488 - confirms that  stable->stable upgrades were affected

there is problems with flutter_map too? , I having this errors whe update to 1.12.13 hotfix 5
Error: The method 'NetworkImageWithRetry.load' has fewer positional arguments than those of overridden method 'ImageProvider.load'.
ImageStreamCompleter load(NetworkImageWithRetry key) {

@lacu that seems unrelated, see the note at the top of the readme for cached_network_image, seems like they recommend upgrading to 2.0.0-rc

The fix on firebase_core_web and firebase_auth_web are published. Please give it a try see if the issues are fixed.

after hours, the solution was downgrade to 1.9.1

Also have this issue with upgrade Stable 1.9.1 -> 1.12.13+hotfix.5

I don't know if this is related, but I was having crashes, so I updated to the latest crashlytics and auth versions, then I got more crashes, but with different messages, but the code was compiling and executing, even with the crash messages... Then after some builds the crashes just vanished.... I don't remember if I did something, I think they just changed to "using a deprecated API" message but were shown only once and now I don't get them.
But I am getting all my previous exceptions logged by crashlytics being dump in the console when I am building my app. It stops for a while and later it happens again, I don't know what's going on.

With the latest versions of the plugins mentioned above users should not be hitting these errors any more.
If you're still getting the errors please try to upgrade your packages by running flutter pub update in the application folder.
I'm removing the customer: blocker label but keeping the issue open to follow-up with a postmortem.
Please leave a comment if after upgrading you're still hitting Gradle errors like:
Could not determine the dependencies of task ':firebase_core:compileDebugAidl'.
> Could not resolve all task dependencies for configuration ':firebase_core:debugCompileClasspath'.
   > Could not resolve project :firebase_core_web.
     Required by:
         project :firebase_core
      > Unable to find a matching configuration of project :firebase_core_web:
          - None of the consumable configurations have attributes.

@amirh could you take a look if #46985 is related to this?

I lost a lot hours trying to fix the problems.
I made a downgrade to 1.9.1, and all run again.

@amirh could you take a look if #46985 is related to this?

Shouldn't be related (the current issue leads to Gradle build failures, #46985 doesn't seem to describe a Gradle failure).

Could you please forward it to anyone that could be related to this? I am not sure if its related to crashlytics, or the flutter tool or other part of the framework.

@feinstein let's keep this thread on-topic. If #46985 is a flutter bug that issue is the right place to discuss it. I'd suggest including a minimal code snippet that reproduces that other issue.

With the latest versions of the plugins mentioned above users should not be hitting these errors any more.
If you're still getting the errors please try to upgrade your packages by running flutter pub update in the application folder.
I'm removing the customer: blocker label but keeping the issue open to follow-up with a postmortem.
Please leave a comment if after upgrading you're still hitting Gradle errors like:
Could not determine the dependencies of task ':firebase_core:compileDebugAidl'.
> Could not resolve all task dependencies for configuration ':firebase_core:debugCompileClasspath'.
   > Could not resolve project :firebase_core_web.
     Required by:
         project :firebase_core
      > Unable to find a matching configuration of project :firebase_core_web:
          - None of the consumable configurations have attributes.

flutter pub update - doesn't exist ( error for console Could not find a subcommand named "update" for "flutter pub".)

In IntelliJ IDEA or Android Studio, go to Tools>Flutter>Flutter Packages Upgrade

I still receive errors, I cleaned my cache manually, I runed flutter clean and flutter pub cache repair, I upgraded package but it not helps.
Launching lib\main.dart on Android SDK built for x86 in debug mode... Running Gradle task 'assembleDebug'... I/flutter ( 2455): AsyncSnapshot<List<dynamic>>(ConnectionState.waiting, [], null) I/flutter ( 2455): AsyncSnapshot<List<dynamic>>(ConnectionState.active, [], null) I/flutter ( 2455): AsyncSnapshot<List<dynamic>>(ConnectionState.waiting, [], null) I/flutter ( 2455): {firstName: qwe, lastName: qwe, username: qwe, timestamp: Timestamp(seconds=1575231591, nanoseconds=478000000), photoUrl: photourl} I/flutter ( 2455): AsyncSnapshot<List<dynamic>>(ConnectionState.waiting, [], null) I/flutter ( 2455): AsyncSnapshot<List<dynamic>>(ConnectionState.active, [], null) I/flutter ( 2455): AsyncSnapshot<List<dynamic>>(ConnectionState.waiting, [], null) I/flutter ( 2455): AsyncSnapshot<List<dynamic>>(ConnectionState.waiting, [], null) I/flutter ( 2455): AsyncSnapshot<List<dynamic>>(ConnectionState.active, [], null) E/flutter ( 6230): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 6230): If you're running an application and need to access the binary messenger before runApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 6230): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 6230): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 6230): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 6230): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 6230): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 6230): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 6230): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 6230): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 6230): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 6230): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 6230): #9      main (package:example_application/main.dart:29:10) E/flutter ( 6230): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 6230): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 6230): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 6230): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 6230): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 6230): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 6230): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 6230): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 6230):  E/flutter ( 6407): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 6407): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 6407): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 6407): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 6407): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 6407): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 6407): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 6407): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 6407): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 6407): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 6407): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 6407): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 6407): #9      main (package:example_application/main.dart:29:10) E/flutter ( 6407): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 6407): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 6407): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 6407): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 6407): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 6407): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 6407): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 6407): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 6407):  E/flutter ( 6535): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 6535): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 6535): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 6535): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 6535): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 6535): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 6535): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 6535): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 6535): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 6535): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 6535): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 6535): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 6535): #9      main (package:example_application/main.dart:29:10) E/flutter ( 6535): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 6535): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 6535): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 6535): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 6535): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 6535): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 6535): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 6535): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 6535):  E/flutter ( 6654): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 6654): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 6654): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 6654): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 6654): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 6654): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 6654): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 6654): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 6654): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 6654): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 6654): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 6654): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 6654): #9      main (package:example_application/main.dart:29:10) E/flutter ( 6654): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 6654): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 6654): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 6654): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 6654): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 6654): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 6654): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 6654): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 6654):  E/flutter ( 6654): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 6654): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 6654): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 6654): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 6654): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 6654): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 6654): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 6654): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 6654): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 6654): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 6654): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 6654): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 6654): #9      main (package:example_application/main.dart:29:10) E/flutter ( 6654): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 6654): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 6654): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 6654): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 6654): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 6654): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 6654): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 6654): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 6654):  E/flutter ( 6840): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 6840): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 6840): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 6840): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 6840): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 6840): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 6840): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 6840): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 6840): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 6840): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 6840): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 6840): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 6840): #9      main (package:example_application/main.dart:29:10) E/flutter ( 6840): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 6840): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 6840): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 6840): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 6840): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 6840): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 6840): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 6840): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 6840):  E/flutter ( 7100): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 7100): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 7100): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 7100): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 7100): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 7100): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 7100): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 7100): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 7100): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 7100): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 7100): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 7100): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 7100): #9      main (package:example_application/main.dart:29:10) E/flutter ( 7100): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 7100): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 7100): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 7100): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 7100): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 7100): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 7100): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 7100): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 7100):  E/flutter ( 7240): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 7240): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 7240): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 7240): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 7240): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 7240): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 7240): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 7240): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 7240): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 7240): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 7240): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 7240): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 7240): #9      main (package:example_application/main.dart:29:10) E/flutter ( 7240): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 7240): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 7240): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 7240): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 7240): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 7240): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 7240): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 7240): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 7240):  E/flutter ( 7576): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 7576): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 7576): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain()method to initialize the binding. E/flutter ( 7576): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 7576): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 7576): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 7576): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 7576): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 7576): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 7576): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 7576): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 7576): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 7576): #9      main (package:example_application/main.dart:29:10) E/flutter ( 7576): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 7576): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 7576): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 7576): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 7576): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 7576): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 7576): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 7576): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 7576):  E/flutter ( 7772): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutter ( 7772): If you're running an application and need to access the binary messenger beforerunApp()has been called (for example, during plugin initialization), then you need to explicitly call theWidgetsFlutterBinding.ensureInitialized()first. E/flutter ( 7772): If you're running a test, you can call theTestWidgetsFlutterBinding.ensureInitialized()as the first line in your test'smain() method to initialize the binding. E/flutter ( 7772): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7) E/flutter ( 7772): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4) E/flutter ( 7772): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62) E/flutter ( 7772): #3      MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:368:5) E/flutter ( 7772): #4      new Firestore (package:cloud_firestore/src/firestore.dart:13:13) E/flutter ( 7772): #5      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:37) E/flutter ( 7772): #6      Firestore.instance (package:cloud_firestore/src/firestore.dart:39:26) E/flutter ( 7772): #7      new UserRepository (package:example_application/repository/user.dart:11:49) E/flutter ( 7772): #8      new ExampleApplicationApp (package:example_application/main.dart:33:42) E/flutter ( 7772): #9      main (package:example_application/main.dart:29:10) E/flutter ( 7772): #10     _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25) E/flutter ( 7772): #11     _rootRun (dart:async/zone.dart:1126:13) E/flutter ( 7772): #12     _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter ( 7772): #13     _runZoned (dart:async/zone.dart:1518:10) E/flutter ( 7772): #14     runZoned (dart:async/zone.dart:1502:12) E/flutter ( 7772): #15     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5) E/flutter ( 7772): #16     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19) E/flutter ( 7772): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12) E/flutter ( 7772):  registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection) registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection) registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection) Application finished.

flutter pub update - doesn't exist ( error for console Could not find a subcommand named "update" for "flutter pub".)

Sorry I meant flutter pub upgrade
@akarabach

I was able to reproduce the issue described in #46807. It's caused by a combination of issues.

Flutter apps have a hard-coded settings.gradle that imports plugins as subprojects. The current script doesn't account for a plugin that doesn't have an android directory.
Android Studio may create an android directory in a subproject if it doesn't have one. This is due to 1.
If your app isn't using AndroidX. We started showing a warning that asks users to open Android Studio and migrate to AndroidX.
Android Studio migrates the app to AndroidX, but it also creates an empty android directory.
f264d6c just skips plugins if they don't have an android/ directory.
now you get:

Could not determine the dependencies of task ':shared_preferences:compileReleaseAidl'.
> Could not resolve all task dependencies for configuration ':shared_preferences:releaseCompileClasspath'.
   > Could not resolve project :shared_preferences_macos.
     Required by:
         project :shared_preferences
      > Unable to find a matching configuration of project :shared_preferences_macos:
          - None of the consumable configurations have attributes.

cc @amirh

flutter pub update - doesn't exist ( error for console Could not find a subcommand named "update" for "flutter pub".)

Sorry I meant flutter pub upgrade
@akarabach

Doesnt help to me ;(

@akarabach The ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized seems unrelated to the current issue (your app does build).
If you believe it's a flutter bug please file a separate issue.
FWIW there was a breaking change that required the widgets binding to be initialized before using method channels, so it may be that your application is using a plugin before invoking runApp.

As a consequence, users that run flutter pub cache repair or deleted the .pub-cache directory got the the plugins from pub  again without the android/ directory. This is why that fixed the problem too.

Wipe data on android emulator helped me, maybe it would help someone else

my deadline is freaking tomorrow!!!!!!!! and then this crazy update comes up and breaks the app. why dont you people warn users before the update i am on the freaking stable channel for God sake.

1 - You can't warn for something that you don't know exists.
2 - Just roll back to the previous Flutter version and you will be fine.

how do i do that i may have already switched channel and done flutter upgrade over 10 times checking back and forth if all the channels have the same problem

I just want to add that I didn't update my Flutter or anything last week but my app was broken.  I couldn't get it to run or build it for Android.  I tried again this morning without updating or roll back or do anything and it is working again.
Flutter (Channel dev, v1.12.13, on Mac OS X 10.15.1 19B88, locale en-US)
• Flutter version 1.12.13
• Framework revision cf37c2cd07 (3 weeks ago), 2019-11-25 12:04:30 -0800
• Engine revision b6b54fd606
• Dart version 2.7.0

@alexdacoda try this: https://stackoverflow.com/a/49468364/1227166

Thanks its working now, sooner or later i will soon need to update, how to i know when all the issues have been fixed

This issue would be marked as closed, not as open, so you try it again and if it doesn't work you roll back your version one more time and open an issue to let the Flutter team know.

@alexdacoda as far as I know the issue has been resolved. If you're still hitting these Gradle errors after running flutter pub upgrade could you please share the error log? (if you could also share the dependency section of your pubspec.yaml that should provide even more insight). Thanks.

@amirh  the flutter plugin connectivity has the error yet.

@Icyoung can you please share the error you're seeing, and the connectivity entry from your local pubspec.lock ?

I ran flutter pub upgrade but i still have plugins that generate this error:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':devicelocale:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     C:\Users\Administrator\.gradle\caches\transforms-2\files-2.1\fb78fd57204adb81b79296ffb0fd6b51\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource android:attr/fontVariationSettings not found
     C:\Users\Administrator\.gradle\caches\transforms-2\files-2.1\fb78fd57204adb81b79296ffb0fd6b51\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource android:attr/ttcIndex not found.

The plugin device_apps could not be built due to the issue above.
pubspec.lock:
  device_apps:     dependency: "direct main"     description:       name: device_apps       url: "https://pub.dartlang.org"     source: hosted     version: "1.0.9"
The plugin firebase_messaging could not be built due to the issue above.
pubspec.lock:
  firebase_messaging:     dependency: "direct main"     description:       name: firebase_messaging       url: "https://pub.dartlang.org"     source: hosted     version: "6.0.9"

@sd-timaru this seems like a different issue, seems similar to: https://github.com/flutter/flutter/issues/46881

Postmortem is here: https://github.com/flutter/flutter/wiki/Postmortem:-Widespread-Gradle-failures-on-Flutter-v1.12.13-hotfix.5

Excellent postmortem, I just finished it right now and I wonder if there should be an additional build test for the Flutter CI, where a simple app that includes the top 25 packages should build successfully.
This would work as a safety net to ensure any flutter upgrades won't break the general workflow of the majority of apps.
Of course this would trigger on breaking changes, but could also serve as a double-checker for the breaking-changes docs, to see if all the build erros are documented there.
I just I am not sure if this will be really helpful as a "final line of defense" or if it will be a constant source of false alarms.

Thanks @feinstein .
Ensuring that Flutter changes are not breaking packages unintentionally is a great idea and will greatly improve the entire ecosystem. In fact that is the exact purpose of the flutter/tests test suite. This is a test suite that runs against all Flutter changes, and any package author can add their package and make it run on Flutter's CI. It's new and currently includes a very few packages, but I hope and expect to see it grow.
Note that flutter/tests wouldn't have helped to mitigate the current issue, as CI currently does not use Android Studio to run the tests. Also, all flutter/plugins and FirebaseExtended/FlutterFire packages runs CI against Flutter master, so all the affected plugins for the current issue were already running on CI with the offending changes (lack of Android Studio on CI was the reason the issue wasn't detected).

Perfect, thanks for the thorough explanation @amirh.


Add payload maximum size option

Motivation:
It seems that the size of payload default 100kb. To increase its size added parameter

Can you give an example of a use case where this is needed? I'm not sure why you would need to send a POST request to the server to need this change.

Can you give an example of a use case where this is needed? I'm not sure why you would need to send a POST request to the server to need this change.

I can not send a payload of more than 100 KB, I think this is a significant problem :)


Distance and Direction - Drop-down for different line types should be removed.

Widget
Distance and Direction
Bug or Enhancement
Bug: Widget doesn't support Great Elliptic or Loxodrome line types, but the Dropdown is still present. The drop-down should be removed.
Repo Steps or Enhancement details
Open distance and direction widget and navigate to the lines tab:

@Dbarnes1 can you verify when you have a moment?

@kgonzago verified, closing.


When Omkar tried to plug this in he was having errors - I realized that debugInfoEnabled was being set to false in adminUI so I pulled out the references to getting scope off the element.  I also read a bit more about the DND spec and its clear that only in firefox are you allowed to access the dragData in dragOver event handlers.  In all other browsers it is considered in protected mode and so dragover access of the dragData resolves to "".  it is only available in drop handlers.
Seems wrong - but thats the spec.
As a workaround I am just going to totally rely on the broadcasted currently dragging scope from the parent scope.

wow. thats some annoying spec right there.

You need to bump the bower.json version as well. It should match package.json.

Looks good. I changed the version from 1.5.0 back down to 1.4.1 to better conform with semver (unless I'm missing something, your commit didn't change the API at all?)


Create README

There is a readme with badges now, closing since this issue is vague about what readme changes are needed.


getmdl.io scrolling issue on anchor links - Chrome 46

While navigating getmdl.io, I'm not able to scroll when I click on an anchor link in Chrome 46. Instead, it will scroll for as long as I am moving the mouse wheel or holding the down arrow, but then it snaps back to the top of the anchor link. This only occurs on scrolling down, not up.
This behavior does not occur in Firefox 41.

At getmdl.io click on "Components"
Click on "Layout"
Click on the "Grid" anchor link
Try scrolling to content below the fold.

Screencast: http://screencast.com/t/pfAyGXLZ2sC
(specifically, I am currently running 46.0.2490.80)

Same issue as you, but in my case it's with the scroll up.
As soon as I reach the top of the page, I'm "teleported" on the anchor again :/

iirc this is an upstream bug in Chrome. Fixed in non-stable channels.

Actually, nothing changed since then (OS X 10.10.4, MDL version: 1.1.1)
You can see bug example here: http://vanburg.ru/works/#higgins
Broken in:

Chrome: Version 48.0.2564.103 (64-bit)
Opera: 	35.0.2066.37

Works in:

Safari 8.0.7 (10600.7.12)
Firefox 44

@vanburg I'm not seeing the problem on Chrome v50. So that just re-affirms it is an upstream issue that has been fixed and is waiting to be rolled out.

@Garbee well, I can't wait anymore. Chrome has a major market place, and I need that scrolling :)
Will move to Zurb Foundation 6 (anyway, after some experience of using MDL the only benefit I found is BEM it's using).

Chrome V49 should be stable in about a month if things go according to plan. That should have the fix already per previous testing.
There is nothing we can do to speed up a Chrome release occurring. There is also no work-around to this problem that we can roll out.

There is nothing we can do to speed up a Chrome release occurring. There is also no work-around to this problem that we can roll out.
@Garbee of course I understand that :)
Thanks for clearing situation with issue state for me!


⚠ GitLab Server has degraded performance

In 83bd989, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11750 ms

Resolved: GitLab Server performance has improved in f2a9698.


Extension for UICollectionViewCell / UITableViewCell with contentView

When working with this library when trying to put NibOwnerLoadable views into a UICollectionViewCell and UITableViewCell, I found that to get the correct view hierarchies, these extensions were required:
public extension NibOwnerLoadable where Self: UICollectionViewCell {
    func loadNibContent() {
        let layoutAttributes: [NSLayoutConstraint.Attribute] = [.top, .leading, .bottom, .trailing]
        for case let view as UIView in Self.nib.instantiate(withOwner: self, options: nil) {
            view.translatesAutoresizingMaskIntoConstraints = false
            contentView.addSubview(view)
            NSLayoutConstraint.activate(layoutAttributes.map { attribute in
                NSLayoutConstraint(
                    item: view, attribute: attribute,
                    relatedBy: .equal,
                    toItem: contentView, attribute: attribute,
                    multiplier: 1, constant: 0.0
                )
            })
        }
    }
}

public extension NibOwnerLoadable where Self: UITableViewCel {
    func loadNibContent() {
        let layoutAttributes: [NSLayoutConstraint.Attribute] = [.top, .leading, .bottom, .trailing]
        for case let view as UIView in Self.nib.instantiate(withOwner: self, options: nil) {
            view.translatesAutoresizingMaskIntoConstraints = false
            contentView.addSubview(view)
            NSLayoutConstraint.activate(layoutAttributes.map { attribute in
                NSLayoutConstraint(
                    item: view, attribute: attribute,
                    relatedBy: .equal,
                    toItem: contentView, attribute: attribute,
                    multiplier: 1, constant: 0.0
                )
            })
        }
    }
}

Note the change above from self to contentView. This works if the root view is a plain UIView object in the .xib (but doesn't if they're UICollectionViewCell or UITableViewCell). However, I'd love to be able to do something cleaner like:
protocol ContentViewNibLoadable {
    var contentView: UIView { get }
}

extension ContentViewNibLoadable where Self: NibOwnerLoadable {
    func loadNibContent() {
        ...
    }
}

extension UICollectionViewCell: ContentViewNibLoadable { }
extension UITableViewCell: ContentViewNibLoadable { }

but this doesn't resolve to the correct contentView property in the cell. Any ideas on how to make this more elegant?

Ok reading your description again maybe what you tried to do we loading a NibOwnerLoadable view, designed in it's own XIb, inside the contentView of your UICollectionViewCell?
If that's the case, why not create a generic GenericCell<T: NibLoadable>: UICollectionViewCell, Reusable in your code, whose implementation would just call T.loadNibContent() to instantiate the reusable content from its dedicated XIB, and add it as subview of self.contentView with all the constraints?

Ok reading your description again maybe what you tried to do we loading a NibOwnerLoadable view, designed in it's own XIB, inside the contentView of your UICollectionViewCell?

Yeah, sorry... I didn't exactly describe that before jumping into the questions.

why not create a generic GenericCell<T: NibLoadable>: UICollectionViewCell

The idea is that I've got a few different types of cell templates (5 of them) with swappable content inside each element of the cell (which happen to be other UIView that are NibOwnerLoadable) designed in XIBs. I want to keep those template and reusable views designed in IB if possible, which is why I don't think the generic cell strategy works in my case.
I'm also snapshot testing each type of cell and want to instantiate them programatically without dequeuing... ie: let cell = MyCustomCell(frame: CGRect(x: 0, y:0, width: 375, height: 80)), but also leveraging the automatic dequeuing and loading that UIKit provides when using them with a collection view in the app.

I realize that I'm trying to mix paradigms here and typically developers should choose one (programatic) or the other (XIBs), but I figured I'd give this a shot and see if it worked. So far so good, but am wondering there are any better approaches. I've always struggled to make this elegant and straightforward...
So what I have now works well and is designed like you suggested:

Load a file's owner XIB with connected outlets into a view outlet
Using the custom extensions above, dynamically attach that @IBOutlet UIView (which is  NibOwnerLoadable into the contentView property of the cell.

By the way - the project is open source, you might find it easier to check out what I'm doing with the NIBs and setup on this branch:
https://github.com/Block-Equity/stellar-ios-wallet/pull/200

Ah right more clear now ;)
Won't be able to look at the project from here as I'm on holiday with family and didn't bring my laptop, and browsing a big codebase just from the phone will be quite tough for me to see the big picture 😅
The way you describe your needs makes more sense now, but not sure if it would have it's place in the Reusable lib itself per se? I think if you create a generic-purpose UIView extension to fill the content with a subview, you'd be able to use such an extension in many use cases — I don't see why limit this to only contentView of cells after all — and not just for this.
Something like this (typed from my phone so sorry for any syntax error 😅):
extension UIView {
  func setFillView(_ view: UIView) {
    self.subviews.forEach { $0.removeFromSuperview() }
    self.addSubview(view)
    // And the code to add all the constraints
    // To make view snap left+right+top+bottom to self
  }
}

Then you'll have your content views, ready to snapshot-test, as standalone UIViews designed in their own XIB and NibOwnerLoadable, and when you want to incorporate them in a cell or swap the content of an existing cell to a different template, you'll just have to load that NibOwnerLoadable template view and set it as fill view:
cell.contentView.setFillView(MyTemplate2.loadFromNib())

Or of course you could instead specialize your extension for cells and make the implementation directly reference the cell's contentView… which end up being quite close to the solution you were preparing after all, right?

That makes sense too! I think that since the latter approach you mentioned seems to work nicely, I'm going to stick with that.
Happy holidays, and thank you for taking some time to jam on ideas for this! 🎉


XRC not opening shutter on first or second grid scan

On v1.1.0. See https://ispyb.diamond.ac.uk/dc/visit/cm37235-4/dcg/13008691
Acceptance Criteria

Fix it

Error here occured at 09:38 on 2/10/24. And again at 09:41

[Wed Oct  2 09:37:56<EMAIL_ADDRESS>BL03I-EA-SHTR-01:CTRL1.VAL Manual -> Auto
Scan starts running at 09:38:20 (Seen via archived BL03I-EA-SHTR-01:CTRL1)
[Wed Oct  2 09:38:37<EMAIL_ADDRESS>BL03I-EA-SHTR-01:CTRL1.VAL Auto -> Manual
Shutter doesnt open at all during scan (seen via archived BL03I-EA-SHTR-01:STA)

From this, issue is caused by setting the shutter back to manual mode before the gridscan is kicked off

OK, I think this is the problem:

The two inputs of the AND2 gate (which controls the fast shutter) are normally set to 30 (PC_GATE)
The two PV's are BL03I-EA-ZEBRA-01:AND2_INP1 and BL03I-EA-ZEBRA-01:AND2_INP2
After https://github.com/DiamondLightSource/mx-bluesky/pull/446/files, we set BL03I-EA-ZEBRA-01:AND2_INP1 to  TTLIN4 (which is the trigger sent from the motion controller), but we don't set BL03I-EA-ZEBRA-01:AND2_INP2.
This explains why rotations still worked - since INP2 is always set to PC_GATE, so only changing INP1 was enough

Should be solved by changing
def set_shutter_auto_input(zebra: Zebra, input: int, group="set_shutter_trigger"):
    """Set the input that the shutter uses when set to auto.

    For more details see the ZebraShutter device."""
    auto_shutter_control = zebra.logic_gates.and_gates[AUTO_SHUTTER_GATE]
    yield from bps.abs_set(
        auto_shutter_control.sources[AUTO_SHUTTER_INPUT], input, group
    )

to something like
def set_shutter_auto_input(zebra: Zebra, input: int, group="set_shutter_trigger"):
    """Set the input that the shutter uses when set to auto.

    For more details see the ZebraShutter device."""
    auto_shutter_control = zebra.logic_gates.and_gates[AUTO_SHUTTER_GATE]
    yield from bps.abs_set(
        auto_shutter_control.sources[AUTO_SHUTTER_INPUT_1], input, group
    )
 yield from bps.abs_set(
        auto_shutter_control.sources[AUTO_SHUTTER_INPUT_2], input, group
    )

Alternatively get the AND gates to disconnect from all but one source, and just change that one.
Also, we could try using the yaml save/load in ophyd-async to make sure the Zebra is restored to a known state

Hotfixed on i03's latest hyperion


Navigation Order in Root Expression

Dear @NSoiffer
We are customizing to have MathCAT read elements in a math expression while editing with a math editor.
We have an issue of navigation order between MathCAT and the editor for root like this: in navigation mode and moving to the right, MathCAT moves to read the content of the root first, then will be the root index like cube or fourth or square root. While, our math editor moves to the root index first, then will move to the root content.
May I know if we could make MathCAT to move to and speak the root index before to the root content when using right arrow?
This will help it speak correctly rather than in reversed wrong value.
Many thanks.

Yes, I believe this is possible by writing some rules that are specialized to mroot in vi/navigation.yaml. Between the holiday this week in the US and some other projects I'm working on, I don't think I'll get to it this week though.
Besides moving left/right, do you also want "zoom in" (down arrow) to land on the root index? This would mean that right moving right would then take you to the contents on the root.


Some questions about 1.14

Hello, I recently tried to use your script to generate a 1.14 World, but I found that there are no architectural and biome features. Can you share your .world file, or do you have any good suggestions?

Hey, worldpainter does not support the new map format of 1.14 at the moment. The only way to play this map is to load and populate it with 1.13 and then copy the map to 1.14 (you will still have missing features, like bamboo)


ScalaDocs improvement for utils Math, MixedVec

Adds recommended usage and examples to the Math utils (log2* and isPow2).
Slight improvement to documentation for MixedVec, primarily deduping method ScalaDoc into the object / class ScalaDoc, and clarifying wires / types.

Related issue: #411

Type of change: other enhancement

Impact: no functional change

Development Phase: implementation
Release Notes
Scaladocs for Math (log2*, isPow2) and MixedVec.

I was also supposed to write docs for Lookup, but I think we should have a discussion on whether to keep those in util, since I'm not sure if they're used, and they seem like very special-purpose constructs that might be better done by composing other functionality like PriorityMux and Vec.

Didn't we discuss putting docs in objects vs. methods during the beginning of the meeting (if that was changed later, then I probably missed it)? I think the reasoning was so that you don't have to expand the function defs when you navigate to the object page.

Yeah, put it into the objective and not the method if you have big examples. Take a look at how it comes out in the scaladoc.

Is there anything blocking review approval for this PR?

Poke?


Generify minidungeon feature

Looks like I forgot to add the new tags to toNbt(). Fixing that and some style things and adding some more comments atm


C#: Correct pool transitions

ScalesetOperations.SearchByPool and NodeOperations.SearchByPoolName will never return null. Instead, fetch the results into lists and check if they are empty or not.

Codecov Report

Merging #2462 (1c4b111) into main (9180215) will increase coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #2462      +/-   ##
==========================================
+ Coverage   24.97%   24.98%   +0.01%
==========================================
  Files         118      118
  Lines       12070    12065       -5
==========================================
+ Hits         3014     3015       +1
+ Misses       9056     9050       -6

Impacted Files
Coverage Δ

...ApiService/ApiService/onefuzzlib/PoolOperations.cs
39.56% <0.00%> (+2.65%)
:arrow_up:

...rc/ApiService/ApiService/onefuzzlib/ShrinkQueue.cs
0.00% <0.00%> (ø)

src/ApiService/ApiService/Log.cs
7.72% <0.00%> (+0.25%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


[DDP-11] v0.2 does not run

After pushing v0.2 to the prod server the app failed to be triggered. Investigate and fix.

The program is being triggered but is throwing an exception:
  File "/home/ubuntu/dropp/dropp.py", line 65, in <module>
    availability_list.append(get_availability(url))
  File "/home/ubuntu/dropp/dropp.py", line 27, in get_availability
    response = get(url)
  File "/home/ubuntu/.virtualenvs/dropp27/local/lib/python2.7/site-packages/requests/api.py", line 69, in get
    return request('get', url, params=params, **kwargs)
  File "/home/ubuntu/.virtualenvs/dropp27/local/lib/python2.7/site-packages/requests/api.py", line 50, in request
    response = session.request(method=method, url=url, **kwargs)
  File "/home/ubuntu/.virtualenvs/dropp27/local/lib/python2.7/site-packages/requests/sessions.py", line 451, in request
    prep = self.prepare_request(req)
  File "/home/ubuntu/.virtualenvs/dropp27/local/lib/python2.7/site-packages/requests/sessions.py", line 382, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/home/ubuntu/.virtualenvs/dropp27/local/lib/python2.7/site-packages/requests/models.py", line 304, in prepare
    self.prepare_url(url, params)
  File "/home/ubuntu/.virtualenvs/dropp27/local/lib/python2.7/site-packages/requests/models.py", line 362, in prepare_url
    to_native_string(url, 'utf8')))
requests.exceptions.MissingSchema: Invalid URL '': No schema supplied. Perhaps you meant http://?```

Likely it is caused by a wrong url in the in file. Will fetch the in file and try on my local machine.

The problem seems to have been caused by a blank line at the end of the in file, that was parsed as empty string and processed as a normal URL. I removed the blank line, and will wait until the next cycle to close the issue.

After removing the empty line the program started again.


monkeypatches driver for all cqlsh tests

Fixes a failing cqlsh test on trunk by using the same driver monkeypatching the cqlsh does in all cqlsh tests, not just the new copy tests.

+1 other than the docstrings

docstring quotes fixed. merging. Thanks for the review!


Implement puzzle command

Added feature for puzzle command, to execute run /puzzle for the bot

Looks good.


Different colors of print and message

Describe the bug
I am still trying to find out what the different colors means in the VS Code Debug Console, but I already noticed that print and message produce different colors. Is this intended? I do not see any semantic difference between the two.
To Reproduce

Your R code
print(1)
message(1)

Your Launch config
If applicable, the launch config that causes the bug. E.g.:
        {
            "type": "R-Debugger",
            "request": "launch",
            "name": "Debug R-File",
            "debugMode": "file",
            "workingDirectory": "${workspaceFolder}",
            "file": "${file}",
            "allowGlobalDebugging": true
        }

Expected behavior
Identical colors (I believe)

The specific colours are mostly controlled by VS Code, the extension has only indirect influence on the colours by using different "output channels":

Text that is sent as normal output to the debug console is blue. This is mostly text that is printed to R's stdout by e.g.  print() and cat().
Text that is sent as error output (i.e. "stderr") is shown red. This includes message() from you example, as well as error(), cat(..., file=stderr()) etc.
Text that is sent in a "structured" way is formatted by VS Code. This includes the result of evaluate-requests entered in the debug console and output produced by .vsc.str(). The colours are pretty much the same as in the variables window. Usually, numerical values will be shown green, strings orange, names of child variables purple, and everything else grey.

Note: The specific colours probably vary depending on the selected colour theme, the ones I described above are from Dark+

Oh my:

The default handler sends the message to the stderr() connection.

https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/message
Related: https://stackoverflow.com/questions/25306819/send-r-diagnostic-messages-to-stdout-instead-stderr
I did not know that. Thank you and sorry for the noise.


Removing entity crashes program

I am working on my projectile system. I am destroying projectiles after a timeout and on colliding with another object. I keep getting error messages and I suspect the flaw is within ecsy itself. Currently my code looks like this:
WeaponSystem.ts
 const projectile = this.world.createEntity()
          .addComponent(Object3d, {value: this.bulletMesh.clone()})
          .addComponent(Transform, {position, rotation})
          .addComponent(Physics, {velocity})
          .addComponent(SphereCollider, {isTrigger: true, radius: 0.1})
          .addComponent(DestroyOnCollision)
          .addComponent(Timeout, {
            timer: 500,
            addComponents: [Destroy]
          });

DestroySystem.ts
export class DestroySystem extends System {
  static queries: any = {
    entities: {
      components: [Destroy],
      listen: {
        added: true
      }
    },
    colliding: {
      components: [CollisionStart, DestroyOnCollision],
      listen: {
        added: true
      }
    }
  };

  execute() {
    this.queries.entities.added.forEach((entity: Entity) => {
      entity.remove();
    });

    this.queries.colliding.added.forEach((entity: Entity) => {
      entity.remove();
    });
  }
}

When I try this order of registering my systems:
this.world
      .registerSystem(DestroySystem)
      .registerSystem(CameraSystem)
      .registerSystem(RaycasterSystem)
      .registerSystem(Input)
      .registerSystem(PlayerInput)
      .registerSystem(TimeoutSystem)
      .registerSystem(WeaponSystem)
      .registerSystem(PhysicsSystem)
      .registerSystem(TransformSystem)
      .registerSystem(WebGlRendererSystem);

I get the following error:
Uncaught TypeError: Cannot read property 'value' of undefined
    at TransformSystem.updateTransform (app.bundle.js:69191)
    at app.bundle.js:69186
    at Array.forEach (<anonymous>)
    at TransformSystem.execute (app.bundle.js:69185)
    at SystemManager.executeSystem (app.bundle.js:375)
    at app.bundle.js:390
    at Array.forEach (<anonymous>)
    at SystemManager.execute (app.bundle.js:388)
    at World.execute (app.bundle.js:1441)
    at Game.run (app.bundle.js:68374)

Using the following queries in TransformSystem.ts
    this.queries.transforms.added.forEach((transformEntity: Entity) => {
        this.updateTransform(transformEntity);
    });

    this.queries.transforms.changed.forEach((transformEntity: Entity) => {
        this.updateTransform(transformEntity);
    });

When I put the DestroySystem all the way at the top like so:
this.world
      .registerSystem(DestroySystem)
      .registerSystem(CameraSystem)
      .registerSystem(RaycasterSystem)
      .registerSystem(Input)
      .registerSystem(PlayerInput)
      .registerSystem(TimeoutSystem)
      .registerSystem(WeaponSystem)
      .registerSystem(PhysicsSystem)
      .registerSystem(TransformSystem)
      .registerSystem(WebGlRendererSystem);

It appears to work (other than the rendering system rendering an already destroyed object) but after a couple of seconds of shooting I get:
Uncaught Error: Tried to remove entity not in list
    at EntityManager.removeEntity (app.bundle.js:1104)
    at Entity.remove (app.bundle.js:760)
    at app.bundle.js:68592
    at Array.forEach (<anonymous>)
    at DestroySystem.execute (app.bundle.js:68591)
    at SystemManager.executeSystem (app.bundle.js:375)
    at app.bundle.js:390
    at Array.forEach (<anonymous>)
    at SystemManager.execute (app.bundle.js:388)
    at World.execute (app.bundle.js:1441)

I hope this is enough information to discover the flaw, my source can be found here: https://github.com/nickyvanurk/3d-multiplayer-browser-shooter/tree/master/client/src

With the order you have initially DestroySystem > TransformSystem if you remove the component on  DestroySystem the entity will get removed and all its components too. As we are using by default deferred removal method, it will get disposed at the end of the frame.
But within the frame you could still access the removed components by calling: entity.getRemovedComponent(Object3D), or if you don't know if the component could be removed or not, you could do entity.getComponent(Object3D, true), note the true as the second parameter, indicating that it should look in the "alive" components as well as in the "dead (soon to be removed)" components, which I believe is your case in here https://github.com/nickyvanurk/3d-multiplayer-browser-shooter/blob/master/client/src/systems/transform-system.ts#L29

But the transform should not operate on removed entities/components as it is now right. This is my intention, once I flag an entity for removal it should not be operated on on the following systems but as you can see in my first error message, it does it anyway.

I am lost. Why do the queries match after DestroySystem? They should not match because the components were removed. They should match the removed query but I am not using it in the systems after DestroySystem.

They will show up on removed queries, as the components were removed so the query event matches in case you want to free resources or something. But they won't show up on the standard query results. So this.queries.myQuery.removed will get populated after DestroySystem is being executed with any component that matches it from the removed entity, while the this.queries.myQuery.results will not.
Can you setup a demo on your code so I can easily reproduce it and see where the problem could be happening?

Just to clarify the comment you mention. When I say will get removed and its components too I meant will get marked to be removed at the end of the frame as we are doing deferred removal both for entities and components

Yeah right, but I am not using those in TransformSystem, only the added and changed queries.

I just realized one issue, if you are removing entities or components within the list you are traversing, you are mutating it and you can't just use forEach. (re https://github.com/MozillaReality/ecsy/issues/163)
eg:
query = [1,2,3,4];
queryforEach(i => query.splice(query.indexOf(i), 1));
// query = [2,3]

you should traverse it in the inverse order:
for (i = results.length - 1; i > 0; i--) {
   results[i].remove()
}

I can't join on discord right now, but I'll prepare a logger that shows the steps you are going into so you can paste them here, and probably tomorrow we could talk if so.

Still getting the last error even with this loop :(

Tagging this as bug and I'll keep track of it. There is a concept of Disabled/Detached entities that could help coming to an agreement with this issue, will be discussed https://github.com/MozillaReality/ecsy/issues/180.

Awesome. I expected it to be a 'simple' fix tho, filtering the query entities in their alive state before returning it but it seems it's more complex than that? Do you have an estimation for when this bug would be resolved?

The problem is that there is not really a perfect answer to what to expect when you add and remove an entity within the same frame. Like in your case you would expect it to not appear on added but it could be other situations where you want to detect that that event had happened. for example having something like a key down/up within the same frame and you want to detect a clicked tagComponent, that would probably be ok to keep it in added.
Not sure about timing as we are going through many new updates in here, mainly I want to get the benchmarks #177 so we can measure how it could affect all this type of sensitive changes. But this issue is something we want to address as soon as possible so it will be top priority for us.

I understand. It would, to me, be most intuitive if the entity after explicitly typing entity.remove() would not exists on the added/changed queries in the systems that come after it but of course it was available for the systems that preceded it. I also think for most users this is the expected behavior. Currently I have to type if (entity.alive) ... in those added/changed queries which is something I shouldn't have to do because those queries are based on components and therefore there should be an entity (that's alive presumably) attached to is. My suggestion it to make entity.remove() work as expected and if you need the entities to still show up in the added/changed/removed queries the ecsy user could simply add a TagComponent like Destroy to the entity and handle the actual destruction later down the line in the DestroySystem (that's how I do it within my project, or at least wanted to). That way entities with components are always expected to be alive.
Appreciate all the work and communication!


Use oj if available instead ActiveSupport::JSON

Attempt for https://github.com/svenfuchs/i18n/issues/397
I would not say this is the final version. Plus I want to double check the Oj compatibility.
Plus I can imagine situation when oj is present, but you do not want it to be used for KeyValue store for compatibility reasons.

Patch looks fine to me! Thanks :)


[TW#28007] compilition fail if PROJECT_VER exceeds 32 bytes

In current master the application version is read in esp-idf/components/app_update/component.mk, line 14 to:
GET_PROJECT_VER := $(shell cd ${PROJECT_PATH} && git describe --always --tags --dirty || echo "Not found git repo")
compilation fails if GET_PROJECT_VER exceeds limit of 32 characters as defined in esp_image_format.h
If you truncate it to first 31 significant bytes compilations works
...
GET_PROJECT_VER := $(shell cd ${PROJECT_PATH} && git describe --always --tags --dirty || echo "Not found git repo")
due to limit in esp_app_desc_t for element version[32]
GET_PROJECT_VER := $(shell echo ${GET_PROJECT_VER}|cut -c1-31)
...
We encountered this issue on some special tags. Or you increase version field to 48 bytes
best regards
volker

Hi @vwitti ,
Thanks for reporting this. As it happens, a fix was just merged to master in our internal repo - 78487123bf80852f4ce11c788a3ee7f44b873833 . It should appear on GitHub in the next day or so.
Angus

Hi @vwitti ,
Thanks for reporting this. A fix was just merged to master in our internal repo. It should appear on GitHub in the next day or so.
Angus

Hi Angus,thank you very much .best regards and merry christmasvolkerAngus Gratton<EMAIL_ADDRESS>hat am 21. Dezember 2018 um 00:47 geschrieben:  Hi @vwitti ,Thanks for reporting this. A fix was just merged to master in our internal repo. It should appear on GitHub in the next day or so.Angus—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

This can probably be closed thanks to c0f5e58bdc5aa01c04168fc0998fd100445bf081?

Hi,this issue can be closed, as it seems to be resolved. thanksvolkerjimparis<EMAIL_ADDRESS>hat am 6. März 2019 um 04:26 geschrieben:  This can probably be closed thanks to c0f5e58?—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.


tf.Variable throws TypeError on conversion to typed numpy ndarray

The __array__() method is recognized by Numpy to allow objects to be conveniently converted to a Numpy ndarray.  This doesn't work consistently fortf.Variable because its definition of the method uses an incorrect signature that accepts no arguments (other than self): https://github.com/tensorflow/tensorflow/blob/569095ba3d5a57a95595d7db685b4bb748ca7337/tensorflow/python/ops/resource_variable_ops.py#L469
This breaks Numpy usage, which expects to be able to pass a dtype argument when converting to an explicitly typed array, as in np.array(tf.Variable(0), dtype=np.int64).  (The expected signature is documented a bit sparsely but can been seen here - scroll to "PyArray_FromArrayAttr" or by example of how ndarray itself defines its __array__ method here.)
Tested against the latest nightly and latest numpy:
numpy==1.19.5
tf-nightly==2.5.0.dev20210119

Expected behavior:
Converting tf.Variable with a dtype succeeds the same as tf.constant with a dtype, or tf.Variable without a dtype:
$ python -c 'import tensorflow as tf; import numpy as np; np.array(tf.constant(0), dtype=np.int32)'
$ python -c 'import tensorflow as tf; import numpy as np; np.array(tf.Variable(0))'
$

Actual behavior:
It raises a TypeError:
$ python -c 'import tensorflow as tf; import numpy as np; np.array(tf.Variable(0), dtype=np.int32)'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: __array__() takes 1 positional argument but 2 were given

Note that there are various other single-argument __array__(self) definitions within TF that should probably also be updated:

https://github.com/tensorflow/tensorflow/blob/5a1d7415893a2e27ee6084809820cc18d2183225/tensorflow/python/keras/engine/keras_tensor.py#L276
https://github.com/tensorflow/tensorflow/blob/0c3d87c81ed5d8ffb868b006036b6da6a0f73a1a/tensorflow/python/framework/ops.py#L852
https://github.com/tensorflow/tensorflow/blob/0c3d87c81ed5d8ffb868b006036b6da6a0f73a1a/tensorflow/python/framework/ops.py#L1030

On that note, I'm a bit confused why tf.constant(0) can be converted above because the EagerTensorBase.__array__() definition has the same problem as tf.Variable.  Indeed, this can be confirmed by trying to explicitly call it like this:
$ python -c 'import tensorflow as tf; import numpy as np; tf.constant(0).__array__(np.int32)'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: __array__() takes 1 positional argument but 2 were given

My best guess is that there's some other path through the "convert python object to numpy array" flowchart that is being taken, e.g. perhaps it's because EagerTensorBase implements __len__ while ResourceVariable does not and so the constant is interpreted as a sequence and gets converted via that path.  However, it'd still be best if __array__() was consistently defined with the dtype argument within TF code, even for types where that path isn't reachable in normal usage today.

Was able to reproduce the issue in TF 2.5. Please find the gist here.Thanks!

After testing various tensorflow versions, it looks like the buggy behavior was introduced between tensorflow version 2.3.2 (which does not have the bug) and version 2.4.0 (which does have the bug).

Hi @nfelt ! Issue is getting resolved in 2.8 . Can we move this issue to closed status now?

yes now that the issue is fixed in version 2.8, imho it's fine to close this issue. thank you

Ok @kaczmarj ! Closing this issue as it is resolved in 2.8 . Thanks!


Merge highscore.json with data.json

highscore.json contains highscores, while data.json currently contains achievement data. I intend to combine both of them so everything is tidier. But this will mean refactoring highscores code across the project to make it work. I've made a placeholder highscores data on data.json as an example.

Hi @R0merol, I'd like to work on this :)

Good luck 💯

Can you put data.json in .gitingore as well just like highscore.json so every time there's a fresh installation, everything resets?

I would also like to work on this.

@R0merol Hey, I've merged highscore.json and data.json into data.json. Also instead of the gitignore method I have made it so that when the game is run for the first time it creates a fresh data.json, was wondering if that is okay?

I have made it so that when the game is run for the first time it creates a fresh data.json

Yess, that's exactly what I'm going for. Do note that this issue is already assigned to @Aragorn-64, so you guys might wanna communicate on that

Hey @Aragorn-64 how far in are you into resolving this issue?

Hi @Lyeriff, I was a bit busy and had only gotten to reading and understanding the code base and what this problem needed. Did you already solve the issue?

@R0merol Can i still try and work on the issue? It would be a learning experience for me (as I was unfamiliar with .json and larger python projects)

@Aragorn-64 The issue has been resolved. I'm not sure if we could implement anything else regarding the data.json, but stay tuned because I might get more ideas for this!

Okay @R0merol


Global omitempty?

Thanks for creating this package, it's super simple and useful.
Do you know if it's possible to request an omitempty policy at a global / struct level without having to specify it for every field?
Thanks!

Hi @ak2344
Unfortunately there is no such feature. Think of it's like how encoding/json and others does it. They also don't provide any global flags. I'm not thinking to add something because there is little we can win from this. Thanks!


Fix the wrong organizational structure of the Cache directories when using Hadoop SDK

Config in core-site.xml is :
<property>
        <name>juicefs.juicefstest.cache-dir</name>
        <value>/ssd/juicefs-cache:/juicefs-cache1</value>
    </property>

When creating cache dirs, it only adds the key after the last dir:
ls cache dirs:
ssd/juicefs-cache/juicefstest/raw/
ssd/juicefs-cache1/juicefstest/eb22c013-ea4e-4a42-9c3f-3ade6a3d7d81/raw

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


How would i alter the style?

This might be a really dumb or nooby question.
But i would like to alter the style of the sidebar (darker color for expanded items)
How could i do something like this ?
Could it be possible to supply a custom class in the configuraton object ?
Thanks in advance for your time.

@DrNotThatEvil You can try https://www.npmjs.com/package/react-nav-bar it might be what you're looking for you can customize alot there.

Thanks. I already build a own slightly more basic sidebar based on another plugin.
Sorry i did not keep this issue up to date.


Remove Controlify

Original issue
#598
Why should it be in the modpack
For people who want to play minecraft java with a controller
Why shouldn't it be in the modpack
Does anybody ACTUALLY use this mod?
Additional details
No response
Confirm

[X] This mod removal request was written in good faith, taking into consideration why the mod was added in the first place. This is not a mod replacement request - for that purpose I should use the normal mod request form.

Currently removal will not be considered, as there are indeed target users for this.

Ok, that's fine


Css and js not loading when we use PathRemovePrefix

Hello Everyone , kindly help us to resolve the below issue  if someone faced this issue before.
My goal:
path based routing
https://yarphost:90/app1 => destination is app1 (hosted <IP_ADDRESS>)
https://yarphost:90/app2 =>  destination is app2(hosted <IP_ADDRESS>)
How currently works:
i am using path remove prefix  transform(to remove app1 or app2 from route url)
https://yarphost:90/app1 => https://app1host:5000/  (Works fine)
https://yarphost:90/app1/home => https://app1host:5000/home  (Works fine)
https://yarphost:90/app2 => https://app2host:5001/ (Works fine)
https://yarphost:90/app2/home => https://app2host:5001/home  (Works fine)
when comes to css and js
from DOM below requests are initiated after app rendered in browser
https://yarphost:90/app1style.css => getting 404
https://yarphost:90/app2style.css => getting 404
instead of pointing destination it tries to render it from Reverse proxy server host.
Any workaround for this, we dont want change any routing rules in our backend (its legacy application maintained by other vendors, our client is not ready to change the backend application)

@naveenkv66 so what is the key problem here?
Is it the missing path separator in app1syle.css? (should be app1/style.css)
Or is it something different?

Inspect the resulting html where it references the css files. It's likely using absolute paths like /app1style.css, which will always be relative to the host. It's easiest to fix in the application by changing it to relative paths like ./app1style.css or ../../app1style.css.
It's much harder to fix in the proxy layer. YARP does not directly support response content rewriting, though you can do it in middleware. You have to intercept the response body stream, decode it, parse it, edit it, and then forward it to the client. See https://github.com/microsoft/reverse-proxy/discussions/520

The easiest way to debug this is probably to hit F12 in your browser and switch to the tab that shows network traffic. That will then show which URLs are actually being requested by the browser.

Triage: No response, closing. If there is more info, feel free to reopen.

@naveenkv66 Did you solve the problem ? I am having similar problem. For js and css I am getting 404.


updated requirements.txt to use PILLOW (https://github.com/python-imagin...

...g/Pillow) as PIL = dead it seems.

Closing to get out of my list seeing as it's been 5 years 😂


[Topics] There are default values when user try to edit topic

Describe the bug
When user try to edit topic after creation there are defaults values in edit topic settings view
Set up
Local docker.
App version: Version:v0.3.3(38c4cf7)
Steps to Reproduce

Create topic (e.g. using API)
Go to newly created topic
Go to Edit Settings
Edit something (e.g. change Cleanup policy)
Save
Go to Edit settings again
Observe the view

Expected behavior
At Edit settings view should be current topic's values
Actual result
All setting are default

Almost all fields are not set according to the actual values but rather contain the widgets default value. I'm happy to take a look at this.


已升级到Tableau2018.3版本如何使用Ta

2019-03-04 08:48:42,874 [5] FATAL TabMon.Config.TabMonConfigReader - Could not initialize writer: Failed to establish a connection to 'localhost'.

Hello @tmac2100,
In order to investigate this issue I will need the following information.

Tableau Server version that you are trying to monitor.
TabMon version.
TabMon logs. Located here: \TabMon\Logs\TabMon.log.txt
The TabMon config file. Located here: \TabMon\Config\TabMon.config

Feel free to obfuscate any personal information in the logs or config file.
Thanks,
Dan

Hello,
I am going to close this issue due to inactivity. If this is still occurring, please send the requested info above and I will reopen this issue.
Thanks,
Dan


Fatal Crash - Updating Screen Event

Entire game crashes when trying to add more items from NEI to your Inventory than the player has space for (I.e giving 3 stacks when only have room for 2)
Running the DW20 FTB 1.7.10 pack, version 1.2.1
Full crash log here: http://pastebin.com/3WY2d7JK

Duplicate of #153


add model runner sections in docs

it ain't much, but it's an honest text 👨🌾

Is there a dedicated tensorflow runner? Could someone add this or point me to it?


Stack trace filenames are different when running from SBT

Cats Effect isn't strictly necessary for a minimization, but here it helps demonstrate how this issue affects published source maps.
// build.sbt
scalaVersion := "2.13.7"
scalaJSUseMainModuleInitializer := true
libraryDependencies += "org.typelevel" %%% "cats-effect" % "3.2.9"
enablePlugins(ScalaJSPlugin)

// project/plugins.sbt
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.7.1")

// src/main/scala/Example.scala
import cats.effect.{IO, IOApp}

object Example extends IOApp.Simple {
  override def run: IO[Unit] = IO.raiseError(new Throwable("Boom!"))
}

Running within sbt I get:
java.lang.Throwable: Boom!
    at $c_LExample$.run__Lcats_effect_IO (/workspace/example/target/scala-2.13/example-fastopt/file:/workspace/example/src/main/scala/Example.scala:4:46)
    at $f_Lcats_effect_IOApp__main__AT__V (/workspace/example/target/scala-2.13/example-fastopt/https:/raw.githubusercontent.com/typelevel/cats-effect/v3.2.9/core/js/src/main/scala/cats/effect/IOApp.scala:267:55)
    at $s_LExample__main__AT__V (/workspace/example/target/scala-2.13/example-fastopt/file:/workspace/example/src/main/scala/Example.scala:3:8)
    at /workspace/example/target/scala-2.13/example-fastopt/main.js:43393:1
    at /workspace/example/target/scala-2.13/example-fastopt/main.js:43394:4
    at Script.runInThisContext (node:vm:129:12)
    at Object.runInThisContext (node:vm:305:38)
    at [stdin]:8:25
    at Script.runInThisContext (node:vm:129:12)
    at Object.runInThisContext (node:vm:305:38)

Notice how the filenames are prepended with my workspace and also the URL has lost a slash. If I run directly with node --enable-source-maps I get:
<ref *1> /workspace/example/src/main/scala/Example.scala:4
  override def run: IO[Unit] = IO.raiseError(new Throwable("Boom!"))
                                             ^

java.lang.Throwable: Boom!
    at $c_LExample$.run__Lcats_effect_IO (/workspace/example/src/main/scala/Example.scala:4:46)
    at null.$f_Lcats_effect_IOApp__main__AT__V (https://raw.githubusercontent.com/typelevel/cats-effect/v3.2.9/core/js/src/main/scala/cats/effect/IOApp.scala:267:55)
    at null.$s_LExample__main__AT__V (/workspace/example/src/main/scala/Example.scala:3:8)
    at Object.<anonymous> (/workspace/example/target/scala-2.13/example-fastopt/main.js:43393:1)
    at Object.<anonymous> (/workspace/example/target/scala-2.13/example-fastopt/main.js:43394:4)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  jl_Throwable__f_s: 'Boom!',
  jl_Throwable__f_e: null,
  jl_Throwable__f_enableSuppression: true,
  jl_Throwable__f_writableStackTrace: true,
  jl_Throwable__f_stackTraceStateInternal: [Circular *1],
  jl_Throwable__f_stackTrace: null,
  jl_Throwable__f_suppressed: null
}

I did not know that Node.js had introduced their own --enable-source-maps. It might be useful to investigate if we can use it instead of source-map-support.
You can do so today even from sbt with
jsEnv := new org.scalajs.jsenv.nodejs.NodeJSEnv(
  org.scalajs.jsenv.nodejs.NodeJSEnv.Config()
    .withSourceMap(false).withArgs(List("--enable-source-maps")))

Oh, I didn't realize you were using something else? AFAIK --enable-source-maps still requires source-map-support to be installed.

Hmm, I tried your suggestion of .withSourceMap(false).withArgs(List("--enable-source-maps")) in https://github.com/typelevel/cats-effect/pull/2582 but it doesn't seem to work.

Note that inside NodeJSEnv we execute scripts using the vm module. So that might make the result different.

Thanks. Not sure if the native sourcemaps work with the vm module:

https://github.com/nodejs/node/issues/8042

They recommend using the V8 stack trace API to customize it, which I assume is what you might already be doing in NodeJSEnv?

Nope :) https://github.com/scala-js/scala-js-js-envs/blob/01b0e95fd55d8b941c574ec4b5225e39421d067a/nodejs-env/src/main/scala/org/scalajs/jsenv/nodejs/NodeJSEnv.scala#L104-L107

Hmm. Maybe require('source-map-support').install() is doing something magical 😆

It more feels like the path mangling / unmangling is broken. Maybe it assumes that we give it a relative path in fileName and then just concatenates things... :shrug:

Oh, for sure. I was disappointed that this workaround didn't work:
jsEnv := new org.scalajs.jsenv.nodejs.NodeJSEnv(
  org.scalajs.jsenv.nodejs.NodeJSEnv.Config()
    .withSourceMap(false).withArgs(List("--enable-source-maps")))

It might have to do with the VM thing.

I'm having a more detailed look at this. For starters, I'm going to transfer this to https://github.com/scala-js/scala-js-js-envs, because the issue is almost certainly there. Also, we need to test things there anyways :)


hope the vocabulary can be divided grade

I am Chinese
the eng_dict contain more than 100K words.
I am an English learner , shyly only know about 4K words.
I hope it can showed different color for 10000-20000  20000-30000  30000+++
then I can take more attention to learn 0-10000
after i improved my vocabularu to near 10000 , then i can take more attention to 10000-20000
the vocabulary list can refer COCA, SAT   GRE TOFFL  .......
otherwise, It is better If I can upload words lists by myself, 3 lists or 4 lists the can showed in different color.   It will very help for learner.
then, Your users can all over the earth. not only English native user. I think few native user want to improve vocabulary, cause I just do not to learn to improve my Chinese character.   but I must to improve my English vocabulary. my boss said  "better English, more mony."  that's a sad story.

Hi shermans,
I like that idea and I will try to implement it, but this changes are pretty complex and may require to change the internal model of the program. I also thought about something similar before =)

Hi mechatroner,
your works is helpful to me . thank you.
I use words-discoverer everyday.

I am really glad to hear that, shermans!
I know that extension is not perfect and I will continue development once I finish another project.

@shermans could use "Highlight This: finds and marks words"
https://chrome.google.com/webstore/detail/highlight-this-finds-and/fgmbnmjmbjenlhbefngfibmjkpbcljaj

Hi
I am also using your extension for learning English words, especially 10K frequent words.
It would be very helpful if the extension is able to highlight words for a given range.
For example, I want to highlight just word between 5k and 10k.
I think this can be done with a trivial change. It limits word below a given percent. It can be done by adding another limit for the upper bound.

I said the permanent solution.
But there is a temporary answer for users, too.
I downloaded the extension package and removed the words above 10k in the eng-dict.txt.
With this tiny adjustment, I control the range manually.


Persistent login isn't working

I think this is something to do with the Data Protection keys, in that it seems to happen when the app pool recycles.

Changing the app pool settings to load the user profile fixes this for now. See this link for details:
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?tabs=aspnetcore2x&view=aspnetcore-3.1#data-protection


Blog on SIG Node spotlight 2021

This is a blog on SIG Node spotlight capturing my conversations with Elana Hashman & Sergey Kanzhelev.

Hi @ehashman and @SergeyKanzhelev ,
Please review this blog PR as it's an interview with you about SIG Node.
Please add comments or suggestions if needed or give an /lgtm if this interview is ok and ready to publish as a blog.
Thank you!

/assign @ehashman @SergeyKanzhelev
suspect it will help if we actually get tagged on GitHub, I forgot about this :sweat_smile:

Blog team, is this looking good to merge? If it is, let's pick a publication date (we can push an extra commit to set that).

I'd suggest that we wait for the author to change up the introduction before we merge.

The author, @dewan-ahmed , is out until Sept 17.
@dewan-ahmed please take a look at @nate-double-u's comment and @ehashman's comment when you're back.

Thanks for the note @reylejano
I'll address the above comments via another commit by EOD on Sept22.

Hi @reylejano @sftim I addressed @nate-double-u's comment and @ehashman's comment. I also adjusted the date to Sept27, 2021 as a potential publication date.
Please let me know if you see any other fix required.

Thank you for the updates
Re-applying lgtm
/lgtm

Preview of blog: https://deploy-preview-29380--kubernetes-io-main-staging.netlify.app/blog/2021/09/27/sig-node-spotlight-2021/
@dewan-ahmed thank you for addressing the comments
/approve
/hold cancel


Improvements to addressSuggestion and Address

While searching for a google_places_flutter replacement, I noticed that this plugin already contains the ability to search for an address.
But somehow the address did not contain the street, and I couldn't make the search in German.
This small PR fixes both. It also adds the ability to use a custom separator between the Address elements in toString().

thnx for you contribution i will check it and merge it with next version


Minor bugfixes to MacOS deployment readme.

Update vsts-agent to 2.198.3
Remove rimraf of ~/vagrant/vcpkg-eg-mac
Add fetch and branch switch before running Install-Prerequisites.ps1 to make sure it's updated
Clarify "the fileshare" as ~/vagrant/share
Clarify that the date Setup-VagrantMachines.ps1 wants is the box version date.
Setup-VagrantMachines.ps1 parameter to be DevopsPat rather than Pat

https://dev.azure.com/vcpkg/public/_build/results?buildId=67295&view=results is a non-osx CI run
REGRESSION: fbthrift:x64-windows
PASSING, REMOVE FROM FAIL LIST: wangle:x64-windows
fbthrift depends on wangle so this isn't actually a regression (fbthrift not tested before)
https://dev.azure.com/vcpkg/public/_build/results?buildId=67312&view=logs&j=7b75bd19-17d3-53d4-00fd-23f1a49a8ba4&t=a23dba4e-3a62-59dc-a73c-a7222676d7a4&s=96ac2280-8cb4-5df5-99de-dd2da759617d is an osx CI run
REGRESSION: colmap:x64-osx I'm assuming is https://github.com/microsoft/vcpkg/pull/23047
As there are no regressions and this is a tool update, merging.


Waiting for network loads to be done before snapshotting

How does this feature work? It doesn't seem to work with our app. We don't make great use of the net indicator in the status bar - is this what determines network load status?

Yes, snapshot simply waits for the status bar loading indicator to disappear. You can implement your own solution right with your UI Automation script.