🐛 [firebase_auth] Hangs in Android emulator, works everywhere else

Bug report
I use [firebase_auth] to sign in with email and password. It works on iOS and Android devices and in the iOS simulator. But it does not work in the Android emulator. It used to work and took half a minute or one minute to sign in. But a couple of weeks ago, it stopped working altogether. I went back to previous versions of firebase_core and firebase_auth, but no luck there.
I asked about this on Stack Overflow but got no answer.
Steps to reproduce
Steps to reproduce the behavior:

I start my app on an Android emulator.
I navigate to the sign-in page.
I provide a valid name and password.
My app calls FirebaseAuth.instance.signInWithEmailAndPassword().then((authResult) { ... }, onError: (error) { ... }).catchError((error) { ... } inside a try { ... } catch(e) { ... } block.
The app just hangs with the output below. I had it sitting there for more than ten minutes:

I/flutter (13424): [I] TIME: 2020-12-18T07:57:10.162872 SAuthenticationAdapter.signIn: about to sign in
I/flutter (13424): [I] TIME: 2020-12-18T07:57:10.169571 SAuthenticationAdapter._handleAuthenticationEvent: User is signed OUT: user=null
I/BiChannelGoogleApi(13424): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzao@8386adc
E/FirebaseCrashlytics(13424): Settings request failed.

Expected behavior
Any one of the exit points should be called - then, onError, catchError or catch. Here's the output when signing in successfully on an Android device:
I/flutter (16667): [I] TIME: 2020-12-18T08:17:39.784496 SAuthenticationAdapter.signIn: about to sign in
I/BiChannelGoogleApi(16667): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzao@364247f
I/flutter (16667): [I] TIME: 2020-12-18T08:17:39.793716 SAuthenticationAdapter._handleAuthenticationEvent: User is signed OUT: user=null
W/ds.mobile.yhig(16667): Accessing hidden method Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z (greylist, linking, allowed)
D/FirebaseAuth(16667): Notifying id token listeners about user ( m6tSwzrE7GhfktLEW25cYYRBxdI2 ).
D/FirebaseAuth(16667): Notifying auth state listeners about user ( m6tSwzrE7GhfktLEW25cYYRBxdI2 ).
I/flutter (16667): [I] TIME: 2020-12-18T08:17:40.613611 SAuthenticationManager._handleAuthenticationEvent: user is signed IN, updating Redux store: m6tSwzrE7GhfktLEW25cYYRBxdI2
I/flutter (16667): [I] TIME: 2020-12-18T08:17:40.645409 SAuthenticationAdapter.signIn: signed in: UserCredential(additionalUserInfo: AdditionalUserInfo(isNewUser: false, profile: {}, providerId: null, username: null), credential: null, user: User(displayName: null, email<EMAIL_ADDRESS>emailVerified: false, isAnonymous: false, metadata: UserMetadata(creationTime: 2020-05-26 09:33:35.335, lastSignInTime: 2020-12-18 08:17:38.150), phoneNumber: null, photoURL: null, providerData, [UserInfo(displayName: null, email<EMAIL_ADDRESS>phoneNumber: null, photoURL: null, providerId: password, uid: somebody@email.com)], refreshToken: , tenantId: null, uid: m6tSwzrE7GhfktLEW25cYYRBxdI2))
I/flutter (16667): [I] TIME: 2020-12-18T08:17:40.646062 SAuthenticationAdapter.signIn: sign-in result: feedback=true, user=User(displayName: null, email<EMAIL_ADDRESS>emailVerified: false, isAnonymous: false, metadata: UserMetadata(creationTime: 2020-05-26 09:33:35.335, lastSignInTime: 2020-12-18 08:17:38.150), phoneNumber: null, photoURL: null, providerData, [UserInfo(displayName: null, email<EMAIL_ADDRESS>phoneNumber: null, photoURL: null, providerId: password, uid: somebody@email.com)], refreshToken: , tenantId: null, uid: m6tSwzrE7GhfktLEW25cYYRBxdI2)

Additional context
Here's my code:
final _provider = FirebaseAuth.instance;

[...]

try {
  SUtil.instance.logger.i('SAuthenticationAdapter.signIn: about to sign in');
  await _provider.signInWithEmailAndPassword(email: userName, password: password).then((authResult) {
    SUtil.instance.logger.i('SAuthenticationAdapter.signIn: signed in: $authResult');
    final firebaseUser = authResult.user;
    feedback = firebaseUser != null && firebaseUser.uid.isNotEmpty;
    SUtil.instance.logger.i('SAuthenticationAdapter.signIn: sign-in result: feedback=$feedback, user=$firebaseUser');
  }, onError: (error) {
    SUtil.instance.logger.e('SAuthenticationAdapter.signIn: another error while signing in', error);
  }).catchError((error) {
    SUtil.instance.logger.e('SAuthenticationAdapter.signIn: error while signing in', error);
  });
} catch (e) {
  SUtil.instance.logger.e('SAuthenticationAdapter.signIn: exception while signing in with email and password', e);
}

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.7 19H114 darwin-x64, locale en-GB)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
[!] Android Studio (version 4.1)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] IntelliJ IDEA Ultimate Edition (version 2020.3)
[✓] VS Code (version 1.47.3)
[✓] Connected device (3 available)
    ! Error: a9z is not connected. Xcode will continue when a9z is connected. (code -13)
    ! Error: o5s is not connected. Xcode will continue when o5s is connected. (code -13)
    ! Error: aPz is not connected. Xcode will continue when aPz is connected. (code -13)

! Doctor found issues in 2 categories.

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.10.4
Flutter SDK 1.22.5
y_mobile 1.20.0+1

dependencies:
- badges 1.1.6 [flutter]
- cached_network_image 2.4.1 [flutter flutter_cache_manager octo_image]
- connectivity 2.0.2 [flutter meta connectivity_platform_interface connectivity_macos connectivity_for_web]
- cupertino_icons 1.0.0
- device_info 1.0.0 [flutter device_info_platform_interface]
- firebase_analytics 6.3.0 [meta flutter firebase_core firebase_analytics_web firebase_analytics_platform_interface]
- firebase_auth 0.18.4+1 [meta firebase_core firebase_core_platform_interface firebase_auth_platform_interface firebase_auth_web flutter]
- firebase_core 0.5.3 [firebase_core_platform_interface flutter quiver meta firebase_core_web]
- firebase_crashlytics 0.2.4 [flutter stack_trace firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface]
- firebase_performance 0.4.3 [flutter firebase_core]
- firebase_storage 5.2.0 [flutter firebase_core firebase_core_platform_interface firebase_storage_web firebase_storage_platform_interface quiver]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_bootstrap 1.0.1 [flutter]
- flutter_cupertino_settings 0.6.0 [flutter cupertino_icons]
- flutter_easyloading 2.2.1 [flutter flutter_spinkit]
- flutter_email_sender 4.0.0 [flutter]
- flutter_launcher_icons 0.8.1 [image args yaml path]
- flutter_markdown 0.5.1 [flutter markdown meta path]
- flutter_platform_widgets 0.72.0 [flutter]
- flutter_redux 0.7.0 [meta redux flutter]
- flutter_svg 0.19.1 [flutter meta path_drawing vector_math xml]
- font_awesome_flutter 8.11.0 [flutter]
- freezed_annotation 0.12.0 [collection json_annotation meta]
- google_fonts 1.1.1 [flutter http path_provider crypto pedantic]
- http 0.12.2 [http_parser path pedantic]
- image_cropper 1.3.1 [flutter]
- image_picker 0.6.7+17 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]
- intl 0.16.1 [path]
- json_serializable 3.5.1 [analyzer build build_config json_annotation meta path source_gen]
- logger_flutter 0.9.0 [flutter logger sensors]
- package_info 0.4.3+2 [flutter]
- path_provider 1.6.24 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows]
- photo_view 0.10.3 [flutter]
- random_string 2.1.0
- redux 4.0.0+3
- redux_persist 0.8.4 [redux synchronized meta]
- redux_persist_flutter 0.8.3 [flutter path_provider shared_preferences redux_persist]
- share 0.6.5+4 [meta mime flutter]
- url_launcher 5.7.10 [flutter url_launcher_platform_interface url_launcher_web url_launcher_linux url_launcher_macos url_launcher_windows]
- validators 2.0.1 [vin_decoder]

dev dependencies:
- build_runner 1.10.11 [args async build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style glob graphs http_multi_server io js logging meta mime path pedantic pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]
- freezed 0.12.6 [analyzer build build_config meta source_gen freezed_annotation]

transitive dependencies:
- _fe_analyzer_shared 14.0.0 [meta]
- analyzer 0.41.1 [_fe_analyzer_shared args cli_util collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- archive 2.0.13 [crypto args path]
- args 1.6.0
- async 2.5.0-nullsafety.1 [collection]
- basic_utils 2.7.0-rc.4 [http logging json_annotation pointycastle convert crypto]
- boolean_selector 2.1.0-nullsafety.1 [source_span string_scanner]
- build 1.5.2 [analyzer async convert crypto logging meta path glob]
- build_config 0.4.5 [checked_yaml json_annotation meta path pubspec_parse yaml]
- build_daemon 2.1.4 [built_collection built_value http_multi_server logging pedantic path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 1.4.4 [analyzer build crypto graphs logging meta path package_config pool pub_semver]
- build_runner_core 6.1.4 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pedantic pool timing watcher yaml]
- built_collection 4.3.2 [collection quiver]
- built_value 7.1.0 [built_collection collection fixnum quiver]
- characters 1.1.0-nullsafety.3
- charcode 1.2.0-nullsafety.1
- checked_yaml 1.0.4 [json_annotation source_span yaml]
- cli_util 0.2.0 [path]
- clock 1.1.0-nullsafety.1
- code_builder 3.5.0 [built_collection built_value collection matcher meta]
- collection 1.15.0-nullsafety.3
- connectivity_for_web 0.3.1+4 [connectivity_platform_interface flutter_web_plugins flutter]
- connectivity_macos 0.1.0+7 [flutter]
- connectivity_platform_interface 1.0.6 [flutter meta plugin_platform_interface]
- convert 2.1.1 [charcode typed_data]
- crypto 2.1.5 [collection convert typed_data]
- dart_style 1.3.10 [analyzer args path source_span]
- device_info_platform_interface 1.0.1 [flutter meta plugin_platform_interface]
- fake_async 1.2.0-nullsafety.1 [clock collection]
- ffi 0.1.3
- file 5.2.1 [intl meta path]
- firebase 7.3.3 [http http_parser js]
- firebase_analytics_platform_interface 1.0.3 [flutter meta]
- firebase_analytics_web 0.1.1 [flutter flutter_web_plugins firebase firebase_analytics_platform_interface meta]
- firebase_auth_platform_interface 2.1.4 [flutter meta firebase_core plugin_platform_interface]
- firebase_auth_web 0.3.2+3 [flutter flutter_web_plugins meta http_parser intl firebase_core firebase_core_web firebase_auth_platform_interface js]
- firebase_core_platform_interface 2.1.0 [flutter meta plugin_platform_interface quiver]
- firebase_core_web 0.2.1+1 [firebase_core_platform_interface flutter flutter_web_plugins meta js]
- firebase_crashlytics_platform_interface 1.1.4 [flutter meta collection firebase_core plugin_platform_interface]
- firebase_storage_platform_interface 1.0.2 [flutter meta collection firebase_core plugin_platform_interface]
- firebase_storage_web 0.1.1+1 [async crypto firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- fixnum 0.10.11
- flutter_blurhash 0.5.0 [flutter meta]
- flutter_cache_manager 2.0.0 [flutter path_provider uuid http path sqflite pedantic clock file rxdart]
- flutter_plugin_android_lifecycle 1.0.11 [flutter]
- flutter_spinkit 4.1.2+1 [flutter]
- flutter_web_plugins 0.0.0 [flutter characters collection meta typed_data vector_math]
- glob 1.2.0 [async collection node_io path pedantic string_scanner]
- graphs 0.2.0
- http_multi_server 2.2.0 [async]
- http_parser 3.1.4 [charcode collection source_span string_scanner typed_data]
- image 2.1.19 [archive xml meta]
- image_picker_platform_interface 1.1.1 [flutter meta http plugin_platform_interface]
- io 0.3.4 [charcode meta path string_scanner]
- js 0.6.2
- json_annotation 3.1.1
- logger 0.9.4
- logging 0.11.4
- markdown 3.0.0 [args charcode meta]
- matcher 0.12.10-nullsafety.1 [stack_trace]
- meta 1.3.0-nullsafety.3
- mime 0.9.7
- node_interop 1.2.1 [js]
- node_io 1.2.0 [file node_interop path]
- octo_image 0.3.0 [flutter flutter_blurhash]
- package_config 1.9.3 [path charcode]
- path 1.8.0-nullsafety.1
- path_drawing 0.4.1+1 [vector_math meta path_parsing flutter]
- path_parsing 0.1.4 [vector_math meta]
- path_provider_linux 0.0.1+2 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_macos 0.0.4+6 [flutter]
- path_provider_platform_interface 1.0.4 [flutter meta platform plugin_platform_interface]
- path_provider_windows 0.0.4+3 [path_provider_platform_interface meta path flutter ffi win32]
- pedantic 1.9.2 [meta]
- petitparser 3.1.0 [meta]
- platform 2.2.1
- plugin_platform_interface 1.0.3 [meta]
- pointycastle 2.0.0
- pool 1.4.0 [async stack_trace]
- process 3.0.13 [file intl meta path platform]
- pub_semver 1.4.4 [collection]
- pubspec_parse 0.1.7 [checked_yaml json_annotation pub_semver yaml]
- quiver 2.1.5 [matcher meta]
- rxdart 0.24.1
- sensors 0.4.2+6 [flutter]
- shared_preferences 0.5.12+4 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web shared_preferences_windows]
- shared_preferences_linux 0.0.2+4 [file flutter meta path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 0.0.1+11 [shared_preferences_platform_interface flutter]
- shared_preferences_platform_interface 1.0.4 [meta flutter]
- shared_preferences_web 0.1.2+7 [shared_preferences_platform_interface flutter flutter_web_plugins meta]
- shared_preferences_windows 0.0.1+3 [shared_preferences_platform_interface flutter ffi file meta path path_provider_platform_interface path_provider_windows]
- shelf 0.7.9 [async collection http_parser path stack_trace stream_channel]
- shelf_web_socket 0.2.3 [shelf web_socket_channel stream_channel]
- sky_engine 0.0.99
- source_gen 0.9.10 [analyzer async build dart_style glob meta path pedantic source_span]
- source_span 1.8.0-nullsafety.2 [charcode collection path term_glyph]
- sqflite 1.3.2+1 [flutter sqflite_common path]
- sqflite_common 1.0.2+1 [synchronized path meta]
- stack_trace 1.10.0-nullsafety.1 [path]
- stream_channel 2.1.0-nullsafety.1 [async]
- stream_transform 1.2.0
- string_scanner 1.1.0-nullsafety.1 [charcode source_span]
- synchronized 2.2.0+2
- term_glyph 1.2.0-nullsafety.1
- test_api 0.2.19-nullsafety.2 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timing 0.1.1+3 [json_annotation]
- typed_data 1.3.0-nullsafety.3 [collection]
- url_launcher_linux 0.0.1+4 [flutter]
- url_launcher_macos 0.0.1+9 [flutter]
- url_launcher_platform_interface 1.0.9 [flutter meta plugin_platform_interface]
- url_launcher_web 0.1.5+1 [url_launcher_platform_interface flutter flutter_web_plugins meta]
- url_launcher_windows 0.0.1+3 [flutter]
- uuid 2.2.2 [crypto convert]
- vector_math 2.1.0-nullsafety.3
- vin_decoder 0.1.3 [meta basic_utils http random_string]
- watcher 0.9.7+15 [async path pedantic]
- web_socket_channel 1.1.0 [async crypto stream_channel]
- win32 1.7.4 [ffi]
- xdg_directories 0.1.2 [meta path process]
- xml 4.5.1 [collection convert meta petitparser]
- yaml 2.2.1 [charcode collection string_scanner source_span]

Hi @ksilz
I'm not seeing this on the latest master 1.26.0-2.0.pre.84.

flutter doctor -v
[√] Flutter (Channel master, 1.26.0-2.0.pre.84, on Microsoft Windows [Version 10.0.19041.685], locale et-EE)
    • Flutter version 1.26.0-2.0.pre.84 at C:\Development\flutter_master
    • Framework revision cda1fae6b6 (5 hours ago), 2020-12-18 04:04:02 -0500
    • Engine revision 1be6f414e7
    • Dart version 2.12.0 (build 2.12.0-166.0.dev)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Users\marku\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.6953283\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.7.7)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.7.30621.155
    • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.6953283
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] IntelliJ IDEA Ultimate Edition (version 2020.3)
    • IntelliJ at C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\203.5981.155
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart

[√] Connected device (4 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)           • windows       • windows-x64    • Microsoft Windows [Version 10.0.19041.685]
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 87.0.4280.88
    • Edge (web)                  • edge          • web-javascript • Microsoft Edge 87.0.664.60

• No issues found!

Modified official example
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter_signin_button/flutter_signin_button.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:flutter/foundation.dart' show kIsWeb;

final FirebaseAuth _auth = FirebaseAuth.instance;

/// Entrypoint example for various sign-in flows with Firebase.
class SignInPage extends StatefulWidget {
  /// The page title.
  final String title = 'Sign In & Out';

  @override
  State<StatefulWidget> createState() => _SignInPageState();
}

class _SignInPageState extends State<SignInPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
        actions: <Widget>[
          Builder(builder: (BuildContext context) {
            return FlatButton(
              child: const Text('Sign out'),
              textColor: Theme.of(context).buttonColor,
              onPressed: () async {
                final User user = await _auth.currentUser;
                if (user == null) {
                  Scaffold.of(context).showSnackBar(const SnackBar(
                    content: Text('No one has signed in.'),
                  ));
                  return;
                }
                _signOut();
                final String uid = user.uid;
                Scaffold.of(context).showSnackBar(SnackBar(
                  content: Text(uid + ' has successfully signed out.'),
                ));
              },
            );
          })
        ],
      ),
      body: Builder(builder: (BuildContext context) {
        return ListView(
          padding: EdgeInsets.all(8),
          scrollDirection: Axis.vertical,
          children: <Widget>[
            _EmailPasswordForm(),
            _EmailLinkSignInSection(),
            _AnonymouslySignInSection(),
            _PhoneSignInSection(Scaffold.of(context)),
            _OtherProvidersSignInSection(),
          ],
        );
      }),
    );
  }

  // Example code for sign out.
  void _signOut() async {
    await _auth.signOut();
  }
}

class _EmailPasswordForm extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _EmailPasswordFormState();
}

class _EmailPasswordFormState extends State<_EmailPasswordForm> {
  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
  final TextEditingController _emailController = TextEditingController();
  final TextEditingController _passwordController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Form(
        key: _formKey,
        child: Card(
          child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Container(
                  child: const Text(
                    'Sign in with email and password',
                    style: TextStyle(fontWeight: FontWeight.bold),
                  ),
                  alignment: Alignment.center,
                ),
                TextFormField(
                  controller: _emailController,
                  decoration: const InputDecoration(labelText: 'Email'),
                  validator: (String value) {
                    if (value.isEmpty) return 'Please enter some text';
                    return null;
                  },
                ),
                TextFormField(
                  controller: _passwordController,
                  decoration: const InputDecoration(labelText: 'Password'),
                  validator: (String value) {
                    if (value.isEmpty) return 'Please enter some text';
                    return null;
                  },
                  obscureText: true,
                ),
                Container(
                  padding: const EdgeInsets.only(top: 16.0),
                  alignment: Alignment.center,
                  child: SignInButton(
                    Buttons.Email,
                    text: "Sign In",
                    onPressed: () async {
                      if (_formKey.currentState.validate()) {
                        _signInWithEmailAndPassword();
                      }
                    },
                  ),
                ),
              ],
            ),
          ),
        ));
  }

  @override
  void dispose() {
    _emailController.dispose();
    _passwordController.dispose();
    super.dispose();
  }

  // Example code of how to sign in with email and password.
  void _signInWithEmailAndPassword() async {
    try {
      final User user = (await _auth.signInWithEmailAndPassword(
        email: _emailController.text,
        password: _passwordController.text,
      ))
          .user;

      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("${user.email} signed in"),
      ));
    } catch (e) {
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Failed to sign in with Email & Password"),
      ));
    }
  }
}

class _EmailLinkSignInSection extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _EmailLinkSignInSectionState();
}

class _EmailLinkSignInSectionState extends State<_EmailLinkSignInSection> {
  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
  final TextEditingController _emailController = TextEditingController();

  String _userEmail;

  @override
  Widget build(BuildContext context) {
    return Form(
        key: _formKey,
        child: Card(
            child: Padding(
          padding: EdgeInsets.all(16),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              Container(
                child: Text('Test sign in with email and link',
                    style: TextStyle(fontWeight: FontWeight.bold)),
                alignment: Alignment.center,
              ),
              TextFormField(
                controller: _emailController,
                decoration: const InputDecoration(labelText: 'Email'),
                validator: (String value) {
                  if (value.isEmpty) return 'Please enter your email.';
                  return null;
                },
              ),
              Container(
                padding: const EdgeInsets.only(top: 16.0),
                alignment: Alignment.center,
                child: SignInButtonBuilder(
                  icon: Icons.insert_link,
                  text: "Sign In",
                  backgroundColor: Colors.blueGrey[700],
                  onPressed: () async {
                    await _signInWithEmailAndLink();
                  },
                ),
              ),
            ],
          ),
        )));
  }

  @override
  void dispose() {
    _emailController.dispose();
    super.dispose();
  }

  void _signInWithEmailAndLink() async {
    try {
      _userEmail = _emailController.text;
      await _auth.sendSignInLinkToEmail(
          email: _userEmail,
          actionCodeSettings: ActionCodeSettings(
            url:
                'https://react-native-firebase-testing.firebaseapp.com/emailSignin',
            handleCodeInApp: true,
            iOS: {
              'bundleId': 'io.flutter.plugins.firebaseAuthExample',
            },
            android: {
              'packageName': 'io.flutter.plugins.firebaseauthexample',
              'androidInstallIfNotAvailable': true,
              'androidMinimumVersion': "1",
            },
          ));

      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("An email has been sent to ${_userEmail}"),
      ));
    } catch (e) {
      print(e);
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Sending email failed"),
      ));
    }
  }
}

class _AnonymouslySignInSection extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _AnonymouslySignInSectionState();
}

class _AnonymouslySignInSectionState extends State<_AnonymouslySignInSection> {
  bool _success;
  String _userID;

  @override
  Widget build(BuildContext context) {
    return Card(
        child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Container(
                  child: const Text('Test sign in anonymously',
                      style: TextStyle(fontWeight: FontWeight.bold)),
                  alignment: Alignment.center,
                ),
                Container(
                  padding: const EdgeInsets.only(top: 16.0),
                  alignment: Alignment.center,
                  child: SignInButtonBuilder(
                    text: "Sign In",
                    icon: Icons.person_outline,
                    backgroundColor: Colors.deepPurple,
                    onPressed: () async {
                      _signInAnonymously();
                    },
                  ),
                ),
                Visibility(
                  visible: _success == null ? false : true,
                  child: Container(
                    alignment: Alignment.center,
                    padding: const EdgeInsets.symmetric(horizontal: 16),
                    child: Text(
                      _success == null
                          ? ''
                          : (_success
                              ? 'Successfully signed in, uid: ' + _userID
                              : 'Sign in failed'),
                      style: TextStyle(color: Colors.red),
                    ),
                  ),
                )
              ],
            )));
  }

  // Example code of how to sign in anonymously.
  void _signInAnonymously() async {
    try {
      final User user = (await _auth.signInAnonymously()).user;

      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Signed in Anonymously as user ${user.uid}"),
      ));
    } catch (e) {
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Failed to sign in Anonymously"),
      ));
    }
  }
}

class _PhoneSignInSection extends StatefulWidget {
  _PhoneSignInSection(this._scaffold);

  final ScaffoldState _scaffold;

  @override
  State<StatefulWidget> createState() => _PhoneSignInSectionState();
}

class _PhoneSignInSectionState extends State<_PhoneSignInSection> {
  final TextEditingController _phoneNumberController = TextEditingController();
  final TextEditingController _smsController = TextEditingController();

  String _message = '';
  String _verificationId;

  @override
  Widget build(BuildContext context) {
    if (kIsWeb) {
      return Card(
        child: Padding(
            padding: EdgeInsets.all(16),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Container(
                  padding: EdgeInsets.only(bottom: 16),
                  child: const Text('Test sign in with phone number',
                      style: TextStyle(fontWeight: FontWeight.bold)),
                  alignment: Alignment.center,
                ),
                Text(
                    "Sign In with Phone Number on Web is currently unsupported")
              ],
            )),
      );
    }
    return Card(
      child: Padding(
          padding: EdgeInsets.all(16),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              Container(
                child: const Text('Test sign in with phone number',
                    style: TextStyle(fontWeight: FontWeight.bold)),
                alignment: Alignment.center,
              ),
              TextFormField(
                controller: _phoneNumberController,
                decoration: const InputDecoration(
                    labelText: 'Phone number (+x xxx-xxx-xxxx)'),
                validator: (String value) {
                  if (value.isEmpty) {
                    return 'Phone number (+x xxx-xxx-xxxx)';
                  }
                  return null;
                },
              ),
              Container(
                padding: const EdgeInsets.symmetric(vertical: 16.0),
                alignment: Alignment.center,
                child: SignInButtonBuilder(
                  icon: Icons.contact_phone,
                  backgroundColor: Colors.deepOrangeAccent[700],
                  text: "Verify Number",
                  onPressed: () async {
                    _verifyPhoneNumber();
                  },
                ),
              ),
              TextField(
                controller: _smsController,
                decoration:
                    const InputDecoration(labelText: 'Verification code'),
              ),
              Container(
                padding: const EdgeInsets.only(top: 16.0),
                alignment: Alignment.center,
                child: SignInButtonBuilder(
                    icon: Icons.phone,
                    backgroundColor: Colors.deepOrangeAccent[400],
                    onPressed: () async {
                      _signInWithPhoneNumber();
                    },
                    text: 'Sign In'),
              ),
              Visibility(
                visible: _message == null ? false : true,
                child: Container(
                  alignment: Alignment.center,
                  padding: const EdgeInsets.symmetric(horizontal: 16),
                  child: Text(
                    _message,
                    style: TextStyle(color: Colors.red),
                  ),
                ),
              )
            ],
          )),
    );
  }

  // Example code of how to verify phone number
  void _verifyPhoneNumber() async {
    setState(() {
      _message = '';
    });

    PhoneVerificationCompleted verificationCompleted =
        (PhoneAuthCredential phoneAuthCredential) async {
      await _auth.signInWithCredential(phoneAuthCredential);
      widget._scaffold.showSnackBar(SnackBar(
        content: Text(
            "Phone number automatically verified and user signed in: ${phoneAuthCredential}"),
      ));
    };

    PhoneVerificationFailed verificationFailed =
        (FirebaseAuthException authException) {
      setState(() {
        _message =
            'Phone number verification failed. Code: ${authException.code}. Message: ${authException.message}';
      });
    };

    PhoneCodeSent codeSent =
        (String verificationId, [int forceResendingToken]) async {
      widget._scaffold.showSnackBar(const SnackBar(
        content: Text('Please check your phone for the verification code.'),
      ));
      _verificationId = verificationId;
    };

    PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout =
        (String verificationId) {
      _verificationId = verificationId;
    };

    try {
      await _auth.verifyPhoneNumber(
          phoneNumber: _phoneNumberController.text,
          timeout: const Duration(seconds: 5),
          verificationCompleted: verificationCompleted,
          verificationFailed: verificationFailed,
          codeSent: codeSent,
          codeAutoRetrievalTimeout: codeAutoRetrievalTimeout);
    } catch (e) {
      widget._scaffold.showSnackBar(SnackBar(
        content: Text("Failed to Verify Phone Number: ${e}"),
      ));
    }
  }

  // Example code of how to sign in with phone.
  void _signInWithPhoneNumber() async {
    try {
      final AuthCredential credential = PhoneAuthProvider.credential(
        verificationId: _verificationId,
        smsCode: _smsController.text,
      );
      final User user = (await _auth.signInWithCredential(credential)).user;

      widget._scaffold.showSnackBar(SnackBar(
        content: Text("Successfully signed in UID: ${user.uid}"),
      ));
    } catch (e) {
      print(e);
      widget._scaffold.showSnackBar(SnackBar(
        content: Text("Failed to sign in"),
      ));
    }
  }
}

class _OtherProvidersSignInSection extends StatefulWidget {
  _OtherProvidersSignInSection();

  @override
  State<StatefulWidget> createState() => _OtherProvidersSignInSectionState();
}

class _OtherProvidersSignInSectionState
    extends State<_OtherProvidersSignInSection> {
  final TextEditingController _tokenController = TextEditingController();
  final TextEditingController _tokenSecretController = TextEditingController();

  int _selection = 0;
  bool _showAuthSecretTextField = false;
  bool _showProviderTokenField = true;
  String _provider = 'GitHub';

  @override
  Widget build(BuildContext context) {
    return Card(
      child: Padding(
          padding: EdgeInsets.all(16),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              Container(
                child: const Text('Social Authentication',
                    style: TextStyle(fontWeight: FontWeight.bold)),
                alignment: Alignment.center,
              ),
              Container(
                padding: EdgeInsets.only(top: 16),
                child: kIsWeb
                    ? Text(
                        'When using Flutter Web, API keys are configured through the Firebase Console. The below providers demonstrate how this works')
                    : Text(
                        'We do not provide an API to obtain the token for below providers apart from Google '
                        'Please use a third party service to obtain token for other providers.'),
                alignment: Alignment.center,
              ),
              Container(
                padding: const EdgeInsets.only(top: 16.0),
                alignment: Alignment.center,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    ListTile(
                      title: Text('GitHub'),
                      leading: Radio<int>(
                        value: 0,
                        groupValue: _selection,
                        onChanged: _handleRadioButtonSelected,
                      ),
                    ),
                    Visibility(
                      visible: !kIsWeb,
                      child: ListTile(
                        title: Text('Facebook'),
                        leading: Radio<int>(
                          value: 1,
                          groupValue: _selection,
                          onChanged: _handleRadioButtonSelected,
                        ),
                      ),
                    ),
                    ListTile(
                      title: Text('Twitter'),
                      leading: Radio<int>(
                        value: 2,
                        groupValue: _selection,
                        onChanged: _handleRadioButtonSelected,
                      ),
                    ),
                    ListTile(
                      title: Text('Google'),
                      leading: Radio<int>(
                        value: 3,
                        groupValue: _selection,
                        onChanged: _handleRadioButtonSelected,
                      ),
                    ),
                  ],
                ),
              ),
              Visibility(
                visible: _showProviderTokenField && !kIsWeb,
                child: TextField(
                  controller: _tokenController,
                  decoration: const InputDecoration(
                      labelText: 'Enter provider\'s token'),
                ),
              ),
              Visibility(
                visible: _showAuthSecretTextField && !kIsWeb,
                child: TextField(
                  controller: _tokenSecretController,
                  decoration: const InputDecoration(
                      labelText: 'Enter provider\'s authTokenSecret'),
                ),
              ),
              Container(
                padding: const EdgeInsets.only(top: 16.0),
                alignment: Alignment.center,
                child: SignInButton(
                  _provider == "GitHub"
                      ? Buttons.GitHub
                      : (_provider == "Facebook"
                          ? Buttons.Facebook
                          : (_provider == "Twitter"
                              ? Buttons.Twitter
                              : Buttons.GoogleDark)),
                  text: "Sign In",
                  onPressed: () async {
                    _signInWithOtherProvider();
                  },
                ),
              ),
            ],
          )),
    );
  }

  void _handleRadioButtonSelected(int value) {
    setState(() {
      _selection = value;

      switch (_selection) {
        case 0:
          {
            _provider = "GitHub";
            _showAuthSecretTextField = false;
            _showProviderTokenField = true;
          }
          break;

        case 1:
          {
            _provider = "Facebook";
            _showAuthSecretTextField = false;
            _showProviderTokenField = true;
          }
          break;

        case 2:
          {
            _provider = "Twitter";
            _showAuthSecretTextField = true;
            _showProviderTokenField = true;
          }
          break;

        default:
          {
            _provider = "Google";
            _showAuthSecretTextField = false;
            _showProviderTokenField = false;
          }
      }
    });
  }

  void _signInWithOtherProvider() {
    switch (_selection) {
      case 0:
        _signInWithGithub();
        break;
      case 1:
        _signInWithFacebook();
        break;
      case 2:
        _signInWithTwitter();
        break;
      default:
        _signInWithGoogle();
    }
  }

  // Example code of how to sign in with Github.
  void _signInWithGithub() async {
    try {
      UserCredential userCredential;
      if (kIsWeb) {
        GithubAuthProvider githubProvider = GithubAuthProvider();
        userCredential = await _auth.signInWithPopup(githubProvider);
      } else {
        final AuthCredential credential = GithubAuthProvider.credential(
          _tokenController.text,
        );
        userCredential = await _auth.signInWithCredential(credential);
      }

      final user = userCredential.user;

      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Sign In ${user.uid} with GitHub"),
      ));
    } catch (e) {
      print(e);
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Failed to sign in with GitHub: ${e}"),
      ));
    }
  }

  // Example code of how to sign in with Facebook.
  void _signInWithFacebook() async {
    try {
      final AuthCredential credential = FacebookAuthProvider.credential(
        _tokenController.text,
      );
      final User user = (await _auth.signInWithCredential(credential)).user;

      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Sign In ${user.uid} with Facebook"),
      ));
    } catch (e) {
      print(e);
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Failed to sign in with Facebook: ${e}"),
      ));
    }
  }

  // Example code of how to sign in with Twitter.
  void _signInWithTwitter() async {
    try {
      UserCredential userCredential;

      if (kIsWeb) {
        TwitterAuthProvider twitterProvider = TwitterAuthProvider();
        await _auth.signInWithPopup(twitterProvider);
      } else {
        final AuthCredential credential = TwitterAuthProvider.credential(
            accessToken: _tokenController.text,
            secret: _tokenSecretController.text);
        userCredential = await _auth.signInWithCredential(credential);
      }

      final user = userCredential.user;

      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Sign In ${user.uid} with Twitter"),
      ));
    } catch (e) {
      print(e);
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Failed to sign in with Twitter: ${e}"),
      ));
    }
  }

  //Example code of how to sign in with Google.
  void _signInWithGoogle() async {
    try {
      UserCredential userCredential;

      if (kIsWeb) {
        GoogleAuthProvider googleProvider = GoogleAuthProvider();
        userCredential = await _auth.signInWithPopup(googleProvider);
      } else {
        final GoogleSignInAccount googleUser = await GoogleSignIn().signIn();
        final GoogleSignInAuthentication googleAuth =
            await googleUser.authentication;
        final GoogleAuthCredential googleAuthCredential =
            GoogleAuthProvider.credential(
          accessToken: googleAuth.accessToken,
          idToken: googleAuth.idToken,
        );
        userCredential = await _auth.signInWithCredential(googleAuthCredential);
      }

      final user = userCredential.user;
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Sign In ${user.uid} with Google"),
      ));
    } catch (e) {
      print(e);

      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Failed to sign in with Google: ${e}"),
      ));
    }
  }
}

Are you seeing the same issue when running this code?
Is anything logged to flutter run -v?
Thank you

Here's the output of flutter run -v from the the stable channel:
[  +33 ms] I/flutter (18593): [I] TIME: 2020-12-20T16:06:41.106326 SAuthenticationAdapter.signIn: about to sign in
[  +10 ms] I/flutter (18593): [I] TIME: 2020-12-20T16:06:41.116960 SAuthenticationAdapter._handleAuthenticationEvent: User is signed OUT: user=null
[  +45 ms] I/BiChannelGoogleApi(18593): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzao@5cdc34f
[  +65 ms] I/flutter (18593): [I] TIME: 2020-12-20T16:06:41.227398 CleanScaffold._buildLeadingWidget: called: onLeadingAction=Closure: () => dynamic from Function
'_goBack@1628349998':.
[        ] I/flutter (18593): [I] TIME: 2020-12-20T16:06:41.227942 CleanScaffold._buildTrailingAction: called: onTrailingAction=null
[ +148 ms] I/flutter (18593): [I] TIME: 2020-12-20T16:06:41.376862 CleanScaffold._buildLeadingWidget: called: onLeadingAction=Closure: () => dynamic from Function
'_goBack@1628349998':.
[        ] I/flutter (18593): [I] TIME: 2020-12-20T16:06:41.377602 CleanScaffold._buildTrailingAction: called: onTrailingAction=null
[   +5 ms] I/flutter (18593): [I] TIME: 2020-12-20T16:06:41.382836 CleanScaffold._buildLeadingWidget: called: onLeadingAction=null
[        ] I/flutter (18593): [I] TIME: 2020-12-20T16:06:41.383205 CleanScaffold._buildTrailingAction: called: onTrailingAction=null
[+49307 ms] I/Choreographer(18593): Skipped 34 frames!  The application may be doing too much work on its main thread.
[+5813 ms] E/FirebaseCrashlytics(18593): Settings request failed.
[+285015 ms] F/crash_dump32(21187): crash_dump.cpp:398] failed to get process threads: No such file or directory
[+123672 ms] I/Choreographer(18593): Skipped 33 frames!  The application may be doing too much work on its main thread.
[+131305 ms] F/crash_dump32(22791): crash_dump.cpp:398] failed to get process threads: No such file or directory

Here's the output of flutter run -v from the the master channel. It also hang:
[  +25 ms] I/flutter (26120): [I] TIME: 2020-12-20T16:25:07.741475 SAuthenticationAdapter.signIn: about to sign in
[   +6 ms] I/flutter (26120): [I] TIME: 2020-12-20T16:25:07.749597 SAuthenticationAdapter._handleAuthenticationEvent: User is signed OUT: user=null
[   +4 ms] I/BiChannelGoogleApi(26120): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzao@5cdc34f
[  +58 ms] I/flutter (26120): [I] TIME: 2020-12-20T16:25:07.812235 CleanScaffold._buildLeadingWidget: called: onLeadingAction=Closure: () => dynamic from Function
'_goBack@1637349998':.
[        ] I/flutter (26120): [I] TIME: 2020-12-20T16:25:07.814088 CleanScaffold._buildTrailingAction: called: onTrailingAction=null
[ +141 ms] I/flutter (26120): [I] TIME: 2020-12-20T16:25:07.956345 CleanScaffold._buildLeadingWidget: called: onLeadingAction=Closure: () => dynamic from Function
'_goBack@1637349998':.
[   +2 ms] I/flutter (26120): [I] TIME: 2020-12-20T16:25:07.956907 CleanScaffold._buildTrailingAction: called: onTrailingAction=null
[   +6 ms] I/flutter (26120): [I] TIME: 2020-12-20T16:25:07.961657 CleanScaffold._buildLeadingWidget: called: onLeadingAction=null
[        ] I/flutter (26120): [I] TIME: 2020-12-20T16:25:07.962082 CleanScaffold._buildTrailingAction: called: onTrailingAction=null
[+67697 ms] E/FirebaseCrashlytics(26120): Settings request failed.
[+42818 ms] F/crash_dump32(27112): crash_dump.cpp:398] failed to get process threads: No such file or directory
[+6013 ms] F/crash_dump32(27156): crash_dump.cpp:398] failed to get process threads: No such file or directory
[+529017 ms] F/crash_dump32(30528): crash_dump.cpp:398] failed to get process threads: No such file or directory

Do you see the issue when running the basic sample I provided as well?

I plugged in your sample code as an alternate way to sign in. And I could sign in on the Android emulator! I'll do some testing with devices and simulators to see

if it works on other devices, and
what's the difference to my code.

Your sample code worked everywhere. I got my code to work, too. I think the difference was that my code probably stored the FirebaseAuth.instance reference too early when Firebase wasn't fully set-up. Now I only store it once Firebase is set-up, and it works in the Android emulator.
Unfortunately, I couldn't reproduce the old error anymore when going checking out my old code. So maybe something else was at play here. Anyhow, my code works now, so I'm good!


use --no-install-recommends flag to apt-get in dockerfile to save space

By default, Ubuntu or Debian based "apt" or "apt-get" system installs recommended but not suggested packages .
By passing "--no-install-recommends" option, the user lets apt-get know not to consider recommended packages as a dependency to install.
This results in smaller downloads and installation of packages .
Refer to blog at Ubuntu Blog .
Signed-off-by: Pratik Raj<EMAIL_ADDRESS>

Dockerfiles are moving to an alpine based image.


Questions in VATDecoder

Thanks for your excellent work and kindly code releasing. When delving deep into your codes, I found the implementation of the VATDecoder seems problematic. In the get_r_adv function, adv_distance is calculated by the kl_div between logp_hat and pred. However, logp_hat is the log_softmax result while pred is the softmax result, which are not compatible. In my understanding, the implementation should be like the following:
with torch.no_grad():
logp = F.log_softmax(decoder(x_detached), dim=1)
for _ in range(it):
logp_hat = F.log_softmax(decoder(x_detached + xi*d), dim=1)
adv_distance = F.kl_div(logp_hat, logp, reduction='batchmean')
I wonder if my understanding correct. Waiting for your reply.

Hi @jfzhuang
Thank you for your intrest;
This is just with the kl_div implementation in pytorch, instead of passing the two probabilities, we need to pass log prob and prob.
Check out the docs: here


xcversion started to fail with latest falstane on Travis

Cleaning up installed gems...
Clean up complete
Updating installed gems
Updating fastlane
Fetching: xcodeproj-1.5.3.gem (100%)
Successfully installed xcodeproj-1.5.3
Fetching: tty-screen-0.6.3.gem (100%)
Successfully installed tty-screen-0.6.3
Fetching: commander-fastlane-4.4.5.gem (100%)
Successfully installed commander-fastlane-4.4.5
Fetching: declarative-0.0.10.gem (100%)
Successfully installed declarative-0.0.10
Fetching: declarative-option-0.1.0.gem (100%)
Successfully installed declarative-option-0.1.0
Fetching: representable-3.0.4.gem (100%)
Successfully installed representable-3.0.4
Fetching: mime-types-data-3.2016.0521.gem (100%)
Successfully installed mime-types-data-3.2016.0521
Fetching: mime-types-3.1.gem (100%)
Successfully installed mime-types-3.1
Fetching: google-api-client-0.13.6.gem (100%)
Successfully installed google-api-client-0.13.6
Fetching: fastlane-2.67.0.gem (100%)
Successfully installed fastlane-2.67.0
Gems updated: commander-fastlane declarative declarative-option fastlane google-api-client mime-types mime-types-data representable tty-screen xcodeproj
[10:03:24]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[10:03:27]: -------------------------------------------------
[10:03:27]: --- Step: Verifying required fastlane version ---
[10:03:27]: -------------------------------------------------
[10:03:27]: Your fastlane version 2.67.0 matches the minimum requirement of 2.35.0  ✅
[10:03:27]: -------------------
[10:03:27]: --- Step: is_ci ---
[10:03:27]: -------------------
[10:03:27]: -------------------
[10:03:27]: --- Step: is_ci ---
[10:03:27]: -------------------
[10:03:27]: -------------------
[10:03:27]: --- Step: is_ci ---
[10:03:27]: -------------------
[10:03:27]: ------------------------------
[10:03:27]: --- Step: default_platform ---
[10:03:27]: ------------------------------
[10:03:27]: Driving the lane 'ios travis_create_keychain' 🚀
[10:03:27]: ----------------------------------------
[10:03:27]: --- Step: Switch to ios prepare lane ---
[10:03:27]: ----------------------------------------
[10:03:27]: Cruising over to lane 'ios prepare' 🚖
[10:03:27]: -----------------------
[10:03:27]: --- Step: xcversion ---
[10:03:27]: -----------------------
[10:03:27]: Installing Ruby gem 'xcode-install'...
Fetching: xcode-install-2.3.1.gem (100%)
[10:03:41]: Successfully installed 'xcode-install'
[10:03:41]: Setting Xcode version to /Applications/Xcode.app for all build steps
[10:03:42]: ----------------------------------
[10:03:42]: --- Step: ensure_xcode_version ---
[10:03:42]: ----------------------------------
[10:03:42]: $ xcversion selected
[10:03:42]: ▸ /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:283:in `matching_specs': uninitialized constant Gem::BundlerVersionFinder (NameError)
[10:03:42]: ▸ Did you mean?  Gem::BundlerVersionFinder
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:302:in `to_specs'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2648:in `block in traverse'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `each'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `traverse'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1103:in `block in find_in_unresolved_tree'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `each'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `find_in_unresolved_tree'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:88:in `require'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:283:in `matching_specs'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:302:in `to_specs'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2648:in `block in traverse'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `each'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `traverse'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1103:in `block in find_in_unresolved_tree'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `each'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `find_in_unresolved_tree'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:88:in `require'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:239:in `finish_resolve'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:311:in `block in activate_bin_path'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:309:in `synchronize'
[10:03:42]: ▸ from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:309:in `activate_bin_path'
[10:03:42]: ▸ from /Users/travis/.rvm/gems/ruby-2.4.1/bin/xcversion:23:in `<main>'
+------------------+----------------------------+
|                 Lane Context                  |
+------------------+----------------------------+
| DEFAULT_PLATFORM | ios                        |
| PLATFORM_NAME    | ios                        |
| LANE_NAME        | ios travis_create_keychain |
+------------------+----------------------------+
[10:03:43]: Exit status of command 'xcversion selected' was 1 instead of 0.
/Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:283:in `matching_specs': uninitialized constant Gem::BundlerVersionFinder (NameError)
Did you mean?  Gem::BundlerVersionFinder
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:302:in `to_specs'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2648:in `block in traverse'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `each'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `traverse'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1103:in `block in find_in_unresolved_tree'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `each'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `find_in_unresolved_tree'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:88:in `require'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:283:in `matching_specs'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:302:in `to_specs'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2648:in `block in traverse'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `each'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `traverse'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1103:in `block in find_in_unresolved_tree'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `each'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `find_in_unresolved_tree'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:88:in `require'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:239:in `finish_resolve'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:311:in `block in activate_bin_path'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:309:in `synchronize'
	from /Users/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems.rb:309:in `activate_bin_path'
	from /Users/travis/.rvm/gems/ruby-2.4.1/bin/xcversion:23:in `<main>'
+------+-------------------------------------+-------------+
|                     fastlane summary                     |
+------+-------------------------------------+-------------+
| Step | Action                              | Time (in s) |
+------+-------------------------------------+-------------+
| 1    | Verifying required fastlane version | 0           |
| 2    | is_ci                               | 0           |
| 3    | is_ci                               | 0           |
| 4    | is_ci                               | 0           |
| 5    | default_platform                    | 0           |
| 6    | Switch to ios prepare lane          | 0           |
| 7    | xcversion                           | 14          |
| 💥    | ensure_xcode_version                | 0           |
+------+-------------------------------------+-------------+
[10:03:43]: fastlane finished with errors

can't get env from travis, but that's with fastlane 2.67.0 probably ruby conflict

I am getting a similar error when running watchbuild on my Mac.
$ watchbuild
/Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:283:in `matching_specs': uninitialized constant Gem::BundlerVersionFinder (NameError)
Did you mean?  Gem::BundlerVersionFinder
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:302:in `to_specs'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2648:in `block in traverse'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `each'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `traverse'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1103:in `block in find_in_unresolved_tree'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `each'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `find_in_unresolved_tree'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:88:in `require'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:283:in `matching_specs'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/dependency.rb:302:in `to_specs'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2648:in `block in traverse'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `each'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2646:in `traverse'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1103:in `block in find_in_unresolved_tree'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `each'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1102:in `find_in_unresolved_tree'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:88:in `require'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems.rb:241:in `finish_resolve'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems.rb:313:in `block in activate_bin_path'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems.rb:311:in `synchronize'
	from /Users/flo/.rbenv/versions/2.4.2/lib/ruby/site_ruby/2.4.0/rubygems.rb:311:in `activate_bin_path'
	from /Users/flo/.rbenv/versions/2.4.2/bin/watchbuild:23:in `<main>'


Add listStatuses, listComments, and getCommit API.

Cool! Please write some documentation and unit tests and I'll merge. Thanks!

I have no idea how to get tests to run and this has been open for over a year now. Feel free to close.

Okiedokes. Thanks for getting back to me, and apologies it took somebody so long to get back to you!


Add tool for automated bisection on solution stability

In GitLab by @sloede on Apr 14, 2020, 07:24
From time to time it is useful to twiddle with a parameter to figure out what its optimal setting is to just remain stable. Examples: CFL number for different time integration schemes, solution resolution, intensity of shock capturing etc.
Instead of figuring this out manually, it would be nice to automate this in an easy-to-use and robust way.
As a starting point for thoughts on an implementation:
Instead of starting Trixi with
Trixi.run("parameters.toml")

we add a new run-like method bisect, e.g., like this
Trixi.bisect("parameters.toml", :CFL, (0.4, 1.4), max_l2=1.0, max_linf=nothing, precision=0.01)

This should run Trixi multiple times with a bisection algorithm, using parameters.toml as the base configuration, always changing (= overriding) the value of CFL, which should range between 0.4 and 1.4, and optimize it with a precision of up to 2 decimal places. As a stability indicator, we define "unstable" as the L2 error being > 1.0, and we use no criterion on Linf.
Feel free to chime in if you have thoughts on a possible implementation or if you find other cases where such a feature might be interesting.

I don't think this issue is very relevant anymore, given that for many applications we have started using adaptive Runge-Kutta methods from OrdinaryDiffEq.jl, such as SSPRK43 or RDPK3SpFSAL49. Feel free to reopen once a more relevant motivation to have a feature like this pops up.


Is it possible to monitor specific row or cell?

Hello,
I have a case where I want to put trigger on specific cell value. For eg. a job will create through some user and those were specific user. After this, we need to fire trigger only after update of end time of the job. But we need to put trigger only on such type of jobs because there are other jobs as well who are in control of other automation software.

what is available is this:

https://github.com/christiandelbianco/monitor-table-change-with-sqltabledependency/wiki/Use-case:-Where-filter
https://github.com/christiandelbianco/monitor-table-change-with-sqltabledependency/wiki/Use-case:-Specify-for-which-properties-we-want-receive-notification-using-UpdateOfModel-T--mapper
https://github.com/christiandelbianco/monitor-table-change-with-sqltabledependency/wiki/Use-case:-Filter-notification-by-change-type


Add option to set label fonts

Issue #774
This adds an option to Label to configure which font it uses. It's a simple implementation using a KeyOrValue<&'static str>. While it's likely possible to adjust the system to not need the cumbersome &'static str (which also doesn't allow dynamic strings), I have neither the Rust experience nor the depth of understanding of the current system necessary to know how to do that elegantly.

@thecodewarrior I think this is on reasonable shape; would you like to rebase and address feedback and I can take another look?

@thecodewarrior ping on this? seems like it was very close to ready to go.

Everything should be ready to go. Were there any other changes that you wanted before you merged?


Patch to modify multiple records with a single call

It is stated that Patch can also be used to create or modify multiple records with a single call. Instead of passing a single base record, a table of base records can be provided in the second argument.
Can you please provide an example?
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5786697f-ee29-1b61-c59a-955086201d55
Version Independent ID: d2130620-9767-c72f-5bd7-8417e48cf65d
Content: Patch function - Power Apps
Content Source: powerapps-docs/maker/canvas-apps/functions/function-patch.md
Service: powerapps
GitHub Login: @gregli-msft
Microsoft Alias: gregli

Thank you for reaching out. You can use ClearCollect(mycol,Table( { Value: "1" }, { Value: "2" } )) and then Patch(mycol,mycol,Table({ Value: "3" }, { Value: "4" })  ) to change from initial 1 and 2 values to 3 and 4 using Patch().


No configuration file found and no entry configured via CLI option

I have some error found ---Any suggestion for solved issue
No configuration file found and no entry configured via CLI option.
When using the CLI you need to provide at least two arguments: entry and output.
A configuration file could be named 'webpack.config.js' in the current directory.
Use --help to display the CLI options.

Please submit support requests and questions to StackOverflow using the tag [webpack]. StackOverflow is better suited for this kind of support. The issue tracker is for bug reports and feature discussions. See also our CONTRIBUTING guidelines.


Improve the error messages return from data.json

Description:
Current error messages display the type values directly within the message, which is unconventional and not ideal. Returning values through error messages can lead to confusion and is generally not a recommended practice.
Payload binding failed: incompatible expected type 'xml<(lang.xml:Element|lang.xml:Comment| lang.xml:ProcessingInstruction|lang.xml:Text)>?' for value '{"id":"chamil","values":{"a":2,"b":45,"c":{"x":"mnb","y":"uio"}}}'|incompatible typedesc int? found for 'text/plain' mime type.

Describe your problem(s)
Describe your solution(s)
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

The error messages in the lang APIS (ex:- toJson, fromJsonWithType()) does not expose the values, but in the data.jsondata module contains error messages that expose the data to outside.

Since we are using this in the HTTP data-binding it can expose the entire payload to the users. This payload can have some fields containing credentials which can be added via a proxy server(this is not a 80% case). So it would be better if we don't expose the value.


Mixed version error from Joi.isSchema() for validation params set to "false" (nothing allowed).

Issue
Hapi 20 uses @hapi/validate internally, and for validation options set to false, it will use this as the schema:
Validator.object({}).allow(null)
Of course, its internal version will not match Joi's, and so we have a mixed version error from Joi.isSchema().
E.g.
response: {
  schema: false
}

Environment
npx envinfo --npmPackages '*hapi*' --binaries

Binaries:
Node: 14.16.1 - ~/.nvm/versions/node/v14.16.1/bin/node
npm: 6.14.12 - ~/.nvm/versions/node/v14.16.1/bin/npm
npmPackages:
hapi-swagger: ^14.5.1 => 14.5.1
Steps to Reproduce
Example route:
{
  method: 'GET',
  path: '/global',
  handler: (request, h) => {
    return null;
  },
  options: {
    tags: ['api'],
    response: {
      schema: false
    }
  }
}

Expected Behavior
The swagger documentation is generated normally.
Actual Behavior
This error is thrown when fetching swagger.json:
Error: Cannot mix different versions of joi schemas
    at new module.exports (~/[redacted]/node_modules/@hapi/hoek/lib/error.js:23:19)
    at module.exports (~/[redacted]/node_modules/@hapi/hoek/lib/assert.js:20:11)
    at Object.exports.isSchema (~/[redacted]/node_modules/joi/lib/common.js:132:5)
    at Object.utilities.isJoi (~/[redacted]/node_modules/hapi-swagger/lib/utilities.js:249:24)
    at module.exports.internals.properties.internals.properties.parseProperty (~/[redacted]/debugServer/node_modules/hapi-swagger/lib/properties.js:67:18)
    at module.exports.internals.responses.internals.responses.getResponse (~/[redacted]/node_modules/hapi-swagger/lib/responses.js:142:41)
    at module.exports.internals.responses.internals.responses.build (~/[redacted]/node_modules/hapi-swagger/lib/responses.js:52:29)
    at ~/[redacted]/node_modules/hapi-swagger/lib/paths.js:311:36
    at Array.forEach (<anonymous>)
    at module.exports.internals.paths.internals.paths.buildRoutes (~/[redacted]/node_modules/hapi-swagger/lib/paths.js:164:10)

Not really sure what the optimal solution is here. Could maybe catch this error and try Validator.isSchema in the catch?
Then again, Validator shouldn't be used directly by anything outside hapi internals...

The workaround is to explicitly set these to Joi.object({}).allow(null) so they use Joi (which is what Hapi 19 would generate) instead of false, but that isn't ideal, especially since the Hapi docs recommend false for this purpose...

Related https://github.com/hapijs/hapi/issues/4246


MM-14011 Store expanded URLs

Summary
This is the redux-part of issue #2507 on mattermost-moblie and pr #2538
Ticket Link
https://github.com/mattermost/mattermost-mobile/issues/2507
https://mattermost.atlassian.net/browse/MM-14011
Checklist

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit tests passed
[x] Ran make flow to ensure type checking passed
[x] Added or updated unit tests (required for all new features)

Test Information
This PR was tested on: Huawei P20 Lite, Android 8.0.0

@hmhealey While trying to set up the webapp, I found out that there's a small mistake in way I dispatch/reduce my events. The reducer doesn't actually save anything now. I'm looking at it now and it should be easy to fix, sorry about that.


Accept stdin from pipelines

This PR makes open and xdg-open accept pipelining.
In other words, commands below will work:
echo https://example.com | open

echo https://example.com https://example.net | xargs -n 1 xdg-open

Thanks for your contribution🙌


Update sql-database-copy.md

I purpose adding few lines to "To copy a SQL database you need the following:"
The document doesn't talk and the user permission required to be able to perform the DB copy task.

Hi @PatrickAlexander, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@PatrickAlexander
Thank you for your contribution! I'm sending this to the author for validation.
--Carolyn

@stevestein
Please check with PR and let me know whether to accept it.

@PatrickAlexander
Thanks for pointing this out. I'm incorporating your suggestion of required permissions into each of the 'Copy SQL Database' articles. The updated versions should appear online by the end of the week.

@PatrickAlexander
Thank you again for contributing. I'm closing this PR now.


Traceback parsing changes in 2.15.0 error on valid pycon code blocks

(Sorry, accidentally hit the submit shortcut before I was done writing it)
Unfortunately, the traceback parsing changes to fix #2226 and #2329 implemented in fe42aac (I can't seem to find the associated pull request) appears to result in Pygments treating certain valid code blocks as invalid, issuing a warning and failing Sphinx builds (with -W). In particular, this occurred on the following code block in the CPython's multiprocessing module docs:
.. note::

   Functionality within this package requires that the ``__main__`` module be
   importable by the children. This is covered in :ref:`multiprocessing-programming`
   however it is worth pointing out here. This means that some examples, such
   as the :class:`multiprocessing.pool.Pool` examples will not work in the
   interactive interpreter. For example::

      >>> from multiprocessing import Pool
      >>> p = Pool(5)
      >>> def f(x):
      ...     return x*x
      ...
      >>> with p:
      ...     p.map(f, [1,2,3])
      Process PoolWorker-1:
      Process PoolWorker-2:
      Process PoolWorker-3:
      Traceback (most recent call last):
      Traceback (most recent call last):
      Traceback (most recent call last):
      AttributeError: Can't get attribute 'f' on <module '__main__' (<class '_frozen_importlib.BuiltinImporter'>)>
      AttributeError: Can't get attribute 'f' on <module '__main__' (<class '_frozen_importlib.BuiltinImporter'>)>
      AttributeError: Can't get attribute 'f' on <module '__main__' (<class '_frozen_importlib.BuiltinImporter'>)>

that worked in 2.14.9, which when 2.15.0 was released suddenly broke the CPython Docs CI job with the error:
WARNING: Could not lex literal_block as "pycon". Highlighting skipped.

Here's a more minimal example that also doesn't parse:
Here's a code block::

   >>> print("\n".join(["Traceback (most recent call last):"] * 2))
   Traceback (most recent call last):
   Traceback (most recent call last):

This also occurs with an explicit pycon lexer specified:
Here's another code block:

.. code-block:: pycon

   >>> print("\n".join(["Traceback (most recent call last):"] * 2))
   Traceback (most recent call last):
   Traceback (most recent call last):

and also with arbitrary text after the traceback line:
Here's a code block::

   >>> print("\n".join(["Traceback (most recent call last):", "blah blah"])
   Traceback (most recent call last):
   blah blah

While this example parses:
Here's a code block::

   >>> print("\n".join(["Traceback (most recent call last):"] * 1))
   Traceback (most recent call last):

Here's an example of a failing run.

The direct dependencies are mostly pinned (https://github.com/python/cpython/blob/c3cd3d10788769558a4668e9e5cfff42fe377852/Doc/requirements.txt) but pygments is an indirect dependency, of Sphinx (https://github.com/sphinx-doc/sphinx/blob/2c83af0aab7080e0b78d4a16981eed878b2cac4c/pyproject.toml#L65).

Yeah, we definitely keep the direct deps pinned; this is just the first time we've seen this issue with the transitive deps and it wouldn't necessarily work cross platform if any of the transitive deps are conditional, and it also work would with other package managers like Conda. AFAIK this is the first time I can recall that we've seen this sort of breakage before from a non-direct dep. Also, the docs build server runs on a whole separate system (AFAIK) that I think is all pinned down, so not sure it would help the actual production builds right now anyway.

Thanks @birkenfeld & @jeanas for the quick fix! Looks like that at least fixes the error and restores syntax highlighting on the block. It does look a bit odd that all three Traceback lines are highlighted, but only the first AttributeError line is, but this is a pretty esoteric case....

Any idea when the next release containing this fix will be released? If its soon, we can skip backporting the change to the older security-only CPython branches and just wait for the new version to be released. A lockfile would be nice longer term, but unfortunately, its not quite as simple as just having our GH Actions jobs use it, as the actual production docs site and other docs formats are currently produced by a separately managed build server with its own maintainers, scripts and configuration that would need to be investigated, modified, tested and deployed.


Making favicon more user friendly.

#1077
@smaranjitghose
I downloaded a favicon from flaticon, and changed the current one.
I couldn't get to successfully clone locally, so I uploaded the files.
Please review.

@anushbhatia do you mean update the import code, to get the icon on the page? If so, I didn't change anything apart the image itself, so the filename is still the same, so the import code would be ok too.
Thank you.

Check the meta component code please

Also, before giving the PR, please  test the changes and attach a snapshot or clip of the same in the PR description.

To make PR more efficient and cleaner, I am going to close the PR, and make a new one.
Thank you


Cannot access Chat after wake up

Keybase GUI Version: 2.13.0-20181219142726+01e9fa19eb
I usually just put the PC to sleep rather than shut down. I am guessing this is the cause, but when I select "Show keybase" I get the keybase app displayed, I can see the chat groups and even access the menu, scrolling over the chat groups also highlights them but clicking on any of the chat groups does not work. The menu works where I have to go to quit app then restart. The app then works fine. This issue has been there for a while now that's why I finally got around to reporting it, can attach screenshots and desktop videos if requested

cc @mmaxim  who was looking into this on a windows machine in our office...

@dwaindibbley Can you do a keybase log send and mention the time you saw this happen? Thanks.

FYI this happens somewhat regularly for me.  I can't reproduce at will, but I could perform any testing if you'd like another data point.
My log ID is af693d7d3767cc2a98c0701c, as captured in the funky state:  Keybase Chat on Android was used as recent as minutes ago, but Chat on Windows showed last sent message as 6 days ago.
Ineffective fixes:

Close/reopen app
Killing Keybase processes from Windows Task Manager and relaunching

Effective workaround:

Reinstalling from MSI and selecting "Repair"

Keybase Chat on Android app seems to be unaffected by this issue.


Missing package.scala mentioned in README

README.md mentions a file src/main/scala/symsim/examples/concrete/breaking/package.scala which isn't present in the directory (or anywhere else, as far as I can see). This gives rise to some confusion on how to complete the setup.

on it


Windows build

Fix building for Windows and cleanup docker files.
See contrib/docker/forwindows/README.md file for instructions how to build the application.

I will check this out shortly!

thanks @gilmanov-ildar


DWC-Import broken?

I can't upload a csv file with the DwC-A Workbench.  It states file time not accepted. I am on Sandwich:
SANDBOX - build b786d3479 on 2021-05-27T23:04:52Z
I used to be able to upload CSV files.  What file format will it accept.  Can it provide guidance rather then just stating it won't accept csv file.

I changed the .tsv to .txt and I can import now

Explanation here can move to taxonworks_doc when we triage Question labels.


For applying changes run source ~/.bashrc or restart your shell.
$
```

Once I `source ~/.bashrc` I can finally use thefuck, without issues. But if I start a new shell session, I'm back to square one and need to `source ~/.bashrc` again.

 This article might be helpful.


Plugging and unplugging the network cable can increase the success rate of hole punching.

Testing environment:
iroh-net version: v0.27.0
server (Linux, Windows),
client (Windows).
client is a laptop that supports both Wi-Fi and Ethernet connections.
Result

When the client program starts, it's only connected to Wi-Fi. At this point, it can only use relay. I plug in the Ethernet cable, and after a while, it switches to direct connection. I then unplug the cable, and after a while, it switches back to relay.
The network change is Wi-Fi → Wi-Fi + Ethernet → Wi-Fi,
The connection state changes from relay → direct → relay.

When the client program starts, it's connected to both Wi-Fi and Ethernet. At this point, it can only use relay. I unplug the cable, and after a while, it switches to direct connection. I then plug in the cable again, and after a while, it switches back to relay.
The network change is Wi-Fi + Ethernet → Wi-Fi → Wi-Fi + Ethernet,
The connection state changes from relay → direct → relay.

For detailed steps, please refer to the attached log.
wif---wifi+eth---wifi.log
wifi+eth---wifi---wifi+eth.log

Anything to do with multiple network interfaces may be related to #2632


Add DELETE api support in Publisher REST API

Description:
provide the implementation for DELETE api in Publisher REST API.
With this REST api we have introduced a new scope apim:api_delete so that the access token has to be taken with this scope.
Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
APIM 3.0.0
Sample Request
curl -k -H "Authorization: Bearer 6b1fd4d0-eb22-31b4-a804-25a74de296fd" -H "Content-Type: application/json" -X DELETE  https://localhost:9443/api/am/publisher/v1.0/apis/e08b8f07-9c42-4541-9079-230ab1e7860e

Fixed with https://github.com/wso2/carbon-apimgt/pull/6259 and
https://github.com/wso2/carbon-apimgt/pull/6263/files


vsphere monitoring fail

 Issue by PeterGrace
Wednesday Oct 15, 2014 at 13:20 GMT
Originally opened as https://github.com/bosun-monitor/scollector/issues/81

interval.go:53: vsphere-lon-vm01.ds.stackexchange.com: vsphere: no UUID during connect

Matt - Yes,this is still happening. Tried with known good passwords, and known bad passwords. Both return the same error. I have tried on ESXi 5.5 u2 and ESXi 5.0 u3.
c:\scollector>scollector-windows-amd64.exe -v<EMAIL_ADDRESS>2015/03/05 10:17:05 info: main.go:236: OpenTSDB host: http://xxxxx:4242
2015/03/05 10:17:05 error: interval.go:53: vsphere-xxxxx.xxx.com: vsphere: no UUID
during connect
c:\scollector>scollector-windows-amd64.exe -version
scollector version<PHONE_NUMBER>0110 (1b01fb0a96425d225a00f8a741c8b7911f3ad953)

Met same issue with ESXi 5.5.
./scollector-linux-amd64 -f vsphere -p
...
2015/11/13 07:52:33 error: interval.go:62: vsphere-<IP_ADDRESS>: vsphere: no UUID during connect

Old issue, but has there been any movement on this?

@pvitty I think it is resolved in #1611 and is in RC1 already.
You can also check #1644, it is a enhanced performance counters support for ESX and VMs.

@simnv You are correct. I was using it wrong. I had it configured to point directly to an ESXi hypervisor rather than a vCenter instance. Perhaps an update to the documentation would be useful?


[Bug]: Playwright version needed changes without dependency versions having changed

Describe the bug
We have these storybook dependencies, and we are running storybook tests in our pipeline.
    "@storybook/addon-actions": "7.0.2",
    "@storybook/addon-coverage": "0.0.8",
    "@storybook/addon-docs": "7.0.2",
    "@storybook/addon-essentials": "7.0.2",
    "@storybook/addon-interactions": "7.0.2",
    "@storybook/addon-links": "7.0.2",
    "@storybook/jest": "0.1.0",
    "@storybook/react": "7.0.2",
    "@storybook/react-webpack5": "7.0.2",
    "@storybook/test-runner": "0.10.0",
    "@storybook/testing-library": "0.1.0",
    "storybook": "7.0.2",
    "storybook-addon-manual-mocks": "0.1.1",
    "storybook-addon-mock": "4.0.0",

We have a custom image that contains the following versions of playwright:
RUN npx<EMAIL_ADDRESS>install --with-deps msedge chromium
RUN npx<EMAIL_ADDRESS>install --with-deps --force msedge chromium
RUN npx<EMAIL_ADDRESS>install --with-deps --force msedge chromium
RUN npx<EMAIL_ADDRESS>install --with-deps --force msedge chromium

Everything was working normally until yesterday, when storybook started complaining that it doesnt have the playwright dependencies it needs: Error: Executable doesn't exist at /home/ciuser/.cache/ms-playwright/chromium-1117/chrome-linux/chrome
These are the ones we had:
du -hs ~/.cache/ms-playwright/*

461M	/home/ciuser/.cache/ms-playwright/chromium-1055
499M	/home/ciuser/.cache/ms-playwright/chromium-1097
509M	/home/ciuser/.cache/ms-playwright/chromium-1105
513M	/home/ciuser/.cache/ms-playwright/chromium-1112
5.6M	/home/ciuser/.cache/ms-playwright/ffmpeg-1008
5.6M	/home/ciuser/.cache/ms-playwright/ffmpeg-1009
221M	/home/ciuser/.cache/ms-playwright/firefox-1391
227M	/home/ciuser/.cache/ms-playwright/firefox-1438
234M	/home/ciuser/.cache/ms-playwright/firefox-1440
236M	/home/ciuser/.cache/ms-playwright/firefox-1447
247M	/home/ciuser/.cache/ms-playwright/webkit-1811
244M	/home/ciuser/.cache/ms-playwright/webkit-1967
248M	/home/ciuser/.cache/ms-playwright/webkit-1983
249M	/home/ciuser/.cache/ms-playwright/webkit-1992

We had to add this to our image to get it to work again: RUN npx<EMAIL_ADDRESS>install --with-deps --force msedge chromium.
It looks like you must have latest in one of your dependencies from playwright, which is not recommended at all. We would like to be able to have reproducible builds and pipelines, and right now this happens to us quiet often lately.
To Reproduce
This will be reproduced if you have an image with very specific versions of playwright, rather than having the latest installed.
System
Environment Info:

  System:
    OS: macOS 14.3
    CPU: (10) arm64 Apple M2 Pro
  Binaries:
    Node: 18.19.0 - ~/.nvm/versions/node/v18.19.0/bin/node
    Yarn: 1.22.22 - /opt/homebrew/bin/yarn
    npm: 10.2.3 - ~/.nvm/versions/node/v18.19.0/bin/npm
  Browsers:
    Chrome: 124.0.6367.208
    Edge: 124.0.2478.105
    Safari: 17.3

Additional context
No response

Hey there @sw-tracker, thanks for reporting this issue.
As you can see, the test-runner has a dependency range for Playwright that's quite low, ^1.14.0. It should conform with whatever you have installed in your lock file. You're the first person to report this kind of issue, and I'm not sure how to reproduce it. Could you maybe do a bit more investigation on your side? Thanks!

Thank you! You found the problem!
If you add ^ to a dependency (which in my opinion you should not do), this will allow the dependency to be updated to minor and patch updates.
We have seen playwright updates due to storybook like this: 1.32.3/1.41.2/1.42.1/1.43.1 and now the dependency is<EMAIL_ADDRESS>due to<EMAIL_ADDRESS>after executing npm ls --depth=2 on my project.
Playwright happens to change browser versions when it updates its version, even minor version updates. This means we have to install new versions of the browsers every time this happens due to your dependencies. We also use playwright for E2E testing, and we never have this problem with that dependency. In our projects we want to have reproducible builds as close as possible, which means we lock our dependency versions (which I think everyone should do).
Could you please lock your playwright dependency? (remove the ^)

I would also recommend that you create an .npmrc file and add save-exact = true to it. This will save you a lot of headaches in the future.

Hi there, we have locked the playwright version on our package.json. Thank you!

Could you please lock your playwright dependency? (remove the ^)
@sw-tracker unfortunately that would mean that anyone using the test-runner would have to install a specific version of playwright. The test-runner aims to be flexible so that you can use whatever version of playwright you'd like.  You can always use resolutions/overrides to make sure you get a specific version in your project though!


Empty lines do not break options sections.

There are several reasons why an options section can be split by an
empty line, among them are:

logically grouping;
aesthetic reasons.

Such style is used, for example, in man program.
An example:
Options:
  --before-empty-lines  An option before empty lines.

  --after-empty-lines   An option after empty lines.

It looks like the checks have failed because of python version. The tests are passed on my machine with Python 2.7.10. Should I add a support of older version of Python (at least 2.6.9, I presume)?
By the way, there was a deprecation note:

py26 installed: DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6,argparse==1.4.0,docopt==0.6.2,py==1.4.31,pytest==2.9.2

As far as I can see, support of Python 2.5 was dropped two years ago in 6879155f77855ea29977ccb96ad6bc09b55d567f. I'm not sure about plans to support 2.6.


navbar back icon very small (almost not visible)

I have a problem with the navbar back icon, it's very small, and i couldn't change it.

there is the difference between left icon generally and back icon
<NavBar
  back={back}
  ...
  left={
    <Icon
         name={back ? 'nav-left' : "menu-8"} family="ArgonExtra"
         size={14} onPress={this.handleLeftPress}
         color={iconColor || argonTheme.COLORS.WHITE}/>
        }
  {...props}
/>

I have tried to change icon size but the problem is in pages where back props included this left icon doesn't effect, seems like that the back props has its own icon and styles somewhere.

Hi @BechirAhmed ! Try to remove the back prop. Because of a bug with the <NavBar /> component you'd have to only specify the left prop. We will solve this as soon as possible.

Closed because we've merged the PR into the dev branch. Thank you!


Inline styles should not be applied in the middle of the word

Those https://github.com/withspectrum/draft-js-markdown-plugin/blob/master/src/constants.js#L5 regexp should take into account word delimiter to avoid applying styles in the middle of the word.
E.g.
this_is_the_file_name should not be converted in this[italic start]is[italic end]the[italic start]file[italic end]name

Yeah I tried figuring this out for a bit but couldn't—would love a PR improving this!


生产环境harbor登陆不上

问题描述：
测试环境安装／测试正常，
生产安装正常，测试环境连生产一直连不上（测试和生产有防火墙），端口（80/443）已开，telnet，ping，wget都是可以的；／etc/docker/daemon.json 已经加

页面添加复制目标主机报错日志
[ERROR] [transfer.go:383]: an error occurred while checking existence of blob sha256:eedd55ebc566c965995f23b2f55e8684cf42bf09e2a5b6dfa967300766c82433 of library/tomcat7:latest on http://<IP_ADDRESS>: Head http://<IP_ADDRESS>/v2/library/tomcat7/blobs/sha256:eedd55ebc566c965995f23b2f55e8684cf42bf09e2a5b6dfa967300766c82433: Get http://szdockerrepo01/service/token?scope=repository%3Alibrary%2Ftomcat7%3Apull&service=harbor-registry: dial tcp: lookup szdockerrepo01: Temporary failure in name resolution
2.docker login本地日志

Nov 21 10:11:01 registry dockerd: time="2017-11-21T10:11:01.898530657+08:00" level=info msg="Error logging in to v2 endpoint, trying next endpoint: Get https://<IP_ADDRESS>/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Nov 21 10:11:06 registry dockerd: time="2017-11-21T10:11:06.901786113+08:00" level=info msg="Error logging in to v2 endpoint, trying next endpoint: Get http://<IP_ADDRESS>/v2/: EOF"
Nov 21 10:11:11 registry dockerd: time="2017-11-21T10:11:11.904335979+08:00" level=info msg="Error logging in to v1 endpoint, trying next endpoint: Get https://<IP_ADDRESS>/v1/users/: unexpected EOF"
Nov 21 10:11:27 registry NetworkManager[740]:   (vethe71eb8d): failed to find device 20282 'vethe71eb8d' with udev
Nov 21 10:11:27 registry NetworkManager[740]:   (vethe71eb8d): new Veth device (carrier: OFF, driver: 'veth', ifindex: 20282)
Nov 21 10:11:27 registry kernel: br-83034399e866: port 2(vethef853ed) entered disabled state
Nov 21 10:11:27 registry kernel: br-83034399e866: port 2(vethef853ed) entered disabled state
Nov 21 10:11:27 registry kernel: device vethef853ed left promiscuous mode
Nov 21 10:11:27 registry kernel: br-83034399e866: port 2(vethef853ed) entered disabled state
Nov 21 10:11:27 registry NetworkManager[740]:   (vethef853ed): link disconnected
Nov 21 10:11:27 registry kernel: XFS (dm-6): Unmounting Filesystem
Nov 21 10:11:27 registry NetworkManager[740]:   (vethe71eb8d): failed to disable userspace IPv6LL address handling
Nov 21 10:11:27 registry NetworkManager[740]:   (br-83034399e866): bridge port vethef853ed was detached
Nov 21 10:11:27 registry NetworkManager[740]:   (vethef853ed): released from master br-83034399e866
Nov 21 10:11:27 registry NetworkManager[740]:   (vethef853ed): failed to disable userspace IPv6LL address handling
Nov 21 10:11:27 registry kernel: XFS (dm-6): Mounting V4 Filesystem
Nov 21 10:11:27 registry kernel: XFS (dm-6): Ending clean mount
Nov 21 10:11:27 registry kernel: device vethe9b5f18 entered promiscuous mode
Nov 21 10:11:27 registry kernel: IPv6: ADDRCONF(NETDEV_UP): vethe9b5f18: link is not ready
Nov 21 10:11:27 registry kernel: br-83034399e866: port 2(vethe9b5f18) entered forwarding state
Nov 21 10:11:27 registry kernel: br-83034399e866: port 2(vethe9b5f18) entered forwarding state
Nov 21 10:11:27 registry NetworkManager[740]:   (vethbca5142): failed to find device 20284 'vethbca5142' with udev
Nov 21 10:11:27 registry NetworkManager[740]:   (vethbca5142): new Veth device (carrier: OFF, driver: 'veth', ifindex: 20284)
Nov 21 10:11:27 registry NetworkManager[740]:   (vethe9b5f18): failed to find device 20285 'vethe9b5f18' with udev
Nov 21 10:11:27 registry NetworkManager[740]:   (vethe9b5f18): new Veth device (carrier: OFF, driver: 'veth', ifindex: 20285)
Nov 21 10:11:27 registry NetworkManager[740]:   (br-83034399e866): bridge port vethe9b5f18 was attached
Nov 21 10:11:27 registry NetworkManager[740]:   (vethe9b5f18): enslaved to br-83034399e866
Nov 21 10:11:28 registry NetworkManager[740]:   (vethbca5142): failed to disable userspace IPv6LL address handling
Nov 21 10:11:28 registry NetworkManager[740]:   (vethe9b5f18): link connected
Nov 21 10:11:28 registry kernel: IPv6: ADDRCONF(NETDEV_CHANGE): vethe9b5f18: link becomes ready
Nov 21 10:11:42 registry kernel: br-83034399e866: port 2(vethe9b5f18) entered forwarding state
Nov 21 10:12:01 registry dockerd: time="2017-11-21T10:12:01.912107627+08:00" level=info msg="Error logging in to v1 endpoint, trying next endpoint: Get http://<IP_ADDRESS>/v1/users/: EOF"
Nov 21 10:12:01 registry dockerd: time="2017-11-21T10:12:01.912199235+08:00" level=error msg="Handler for POST /v1.29/auth returned error: Get http://<IP_ADDRESS>/v1/users/: EOF"

Please make sure the hostname szdockerrepo01 can be resolved inside the container jobservice.

@YangShuailing does your issue remain?

replace “szdockerrepo01”with IP，and it does work，3Q


[Bug] Navigation link not working

Page link
https://kyverno.io/docs/writing-policies/cleanup/
Description
In the section that describes about giving additional permissions to the cleanup controller for removing resources, the link to Customizing Permissions is broken. It navigates to a localhost endpoint.

Expected behavior
I would expect this to be linked to the section in the website that describes Customizing Permissions.
Slack discussion
No response

Will be fixed by #913