Presence of a directory named example on project top level causes the flutter drive .. integration test to fail.

Issue description (tl;dr):
Presence of a directory named example on project top level causes the flutter drive .. integration test to fail.
The integration test which fails
  flutter drive --driver=test_driver/integration_test.dart --target=integration_test/screenshot_test.dart

is the screenshot test created exactly by following instructions in
https://github.com/flutter/flutter/tree/master/packages/integration_test#integration_test.
The full description of how the project was created and how the test was run is below.
The failure is very specific to the directory name example. The contents of the directory does not matter - just
the presence of such named directory. Directories with other names do not cause this issue.
This failure prevents library projects to contain a example app, which by convention should be in a directory
named example.
I created a project on Github  https://github.com/mzimmerm/screenshot
which can be used to fully duplicate the issue.
The project is a rudimentary Flutter example app created from command line,
with added files test_driver/integration_test.dart and integration_test/screenshot_test.dart
described in https://github.com/flutter/flutter/tree/master/packages/integration_test#integration_test.
To duplicate the issue
Install the duplication project from Github as follows:
On your local system, from the command line, run the following commands:
   cd ~/tmp # create if not exist
   git clone https://github.com/mzimmerm/screenshot.git
   cd screenshot
   # Note that the project top level does NOT contain a directory named `example`.

   # Clean and run the test (which creates a screenshot) from command line
   flutter clean
   flutter emulator --launch "Nexus_6_API_29_2" # Change the emulator name to one on your system
   sleep 25 # make sure the emulator starts fully

   # Run the added Flutter integration (drive) test which creates a screenshot of the app
   flutter drive --driver=test_driver/integration_test.dart --target=integration_test/screenshot_test.dart
   # Expected: screenshot-1.png is created in the project top level
   # Actual:   screenshot-1.png is created in the project top level

   # Remove the screenshot to ensure we continue from the same initial state
   rm screenshot-1.png
   # Exit the emulator to ensure we continue from the same initial state.

   # Now create an empty directory `example` which will cause the same test to fail

   mkdir example

   # Run the same test as above again
   # Clean and run the test (which creates a screenshot) from command line
   flutter clean
   flutter emulator --launch "Nexus_6_API_29_2" # Change the emulator name to one on your system
   sleep 25
   flutter drive --driver=test_driver/integration_test.dart --target=integration_test/screenshot_test.dart
   # Expected: screenshot-1.png is created in the project top level
   # Actual:   Build exception:

   #    ~/tmp/screenshot/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:19: error: package dev.flutter.plugins.integration_test does not exist
   #    flutterEngine.getPlugins().add(new dev.flutter.plugins.integration_test.IntegrationTestPlugin()); ^
   #    1 error
   #    FAILURE: Build failed with an exception.

   # Note: renaming `example` to `example1` or any other name makes the test to work again.

Supplemental information: The project https://github.com/mzimmerm/screenshot on Github was created as follows:
   cd ~/tmp
   flutter create --template=app screenshot
   # - Edited pubspec.yaml and added test, integration_test and flutter_test
   # - Added directory and file `integration_test/screenshot_test.dart`
   #   as described in https://github.com/flutter/flutter/tree/master/packages/integration_test#integration_test.
   #   (alternative in https://dev.to/mjablecnik/take-screenshot-during-flutter-integration-tests-435k is almost the same
   #   and also does not work)
   # - Added directory and file `test_driver/integration_test.dart`
   #   as described in https://github.com/flutter/flutter/tree/master/packages/integration_test#integration_test.
   #   (alternative in https://dev.to/mjablecnik/take-screenshot-during-flutter-integration-tests-435k is almost the same
   #   and also does not work)
   # - Added directory named `example1` for now
   # - Added project `screenshot` on Github
   #     `https://github.com/mzimmerm/screenshot`
   #

Supplemental information: The result of the first successful test
     Running "flutter pub get" in screenshot...                         819ms
     Running Gradle task 'assembleDebug'...                             24.1s
     ✓  Built build/app/outputs/flutter-apk/app-debug.apk.
     Installing build/app/outputs/flutter-apk/app.apk...                618ms
     D/EGL_emulation( 4947): eglMakeCurrent: 0xe2a38b00: ver 3 0 (tinfo 0xda90fc90)
     VMServiceFlutterDriver: Connecting to Flutter application at http://<IP_ADDRESS>:34567/i7VCyPBOS58=/
     VMServiceFlutterDriver: Isolate found with number:<PHONE_NUMBER>828315
     VMServiceFlutterDriver: Isolate is paused at start.
     VMServiceFlutterDriver: Attempting to resume isolate
     I/flutter ( 4947): 00:00 +0: screenshot
     VMServiceFlutterDriver: Connected to Flutter application.
     W/Gralloc3( 4947): allocator 3.x is not supported
     D/EGL_emulation( 4947): eglMakeCurrent: 0xda91a120: ver 3 0 (tinfo 0xda90fc10)
     D/EGL_emulation( 4947): eglMakeCurrent: 0xe2a38b00: ver 3 0 (tinfo 0xda90fc90)
     D/EGL_emulation( 4947): eglMakeCurrent: 0xe2a38b00: ver 3 0 (tinfo 0xda90fc90)
     D/EGL_emulation( 4947): eglCreateContext: 0xda91a7e0: maj 3 min 0 rcv 3
     D/EGL_emulation( 4947): eglMakeCurrent: 0xda91a7e0: ver 3 0 (tinfo 0xda90fc90)
     D/EGL_emulation( 4947): eglMakeCurrent: 0xe2a38b00: ver 3 0 (tinfo 0xda90fc90)
     D/EGL_emulation( 4947): eglMakeCurrent: 0xe2a38b00: ver 3 0 (tinfo 0xda90fc90)
     I/flutter ( 4947): 00:01 +1: (tearDownAll)
     W/mple.screensho( 4947): Accessing hidden method
     Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
     (greylist, linking, allowed)
     I/flutter ( 4947): 00:01 +2: All tests passed!
     All tests passed.

Supplemental information: The result of the failed test when directory example exists:
    Running "flutter pub get" in screenshot...                       1,864ms
     ~/tmp/screenshot/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:19: error: package dev.flutter.plugins.integration_test does not exist
           flutterEngine.getPlugins().add(new dev.flutter.plugins.integration_test.IntegrationTestPlugin());
                                                                                ^
     1 error

     FAILURE: Build failed with an exception.

     * What went wrong:
     Execution failed for task ':app:compileDebugJavaWithJavac'.
     > Compilation failed; see the compiler error output for details.

     * Try:
     Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

     * Get more help at https://help.gradle.org

     BUILD FAILED in 10s
     Running Gradle task 'assembleDebug'...                             10.5s
     Gradle task assembleDebug failed with exit code 1

Hi @mzimmerm thank you for filing this issue, I tested this on the latest stable and master channel and it is only reproducible on the stable channel.
I did not encounter the error when I reproduced this on the master channel, it seems to have been fixed. Please test again on the master channel.
I'll go ahead and close this now as it has been fixed. If you disagree, please write in the comments and I will reopen it.

logs

Running "flutter pub get" in screenshot...                       1,675ms
Running Gradle task 'assembleDebug'...
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Running Gradle task 'assembleDebug'...                           2,470ms
✓  Built build/app/outputs/flutter-apk/app-debug.apk.
Installing build/app/outputs/flutter-apk/app.apk...              1,083ms
VMServiceFlutterDriver: Connecting to Flutter application at http://<IP_ADDRESS>:52896/_IMioDH1c-M=/
VMServiceFlutterDriver: Isolate found with number:<PHONE_NUMBER>92171
VMServiceFlutterDriver: Isolate is paused at start.
VMServiceFlutterDriver: Attempting to resume isolate
I/flutter (15664): 00:00 +0: screenshot
VMServiceFlutterDriver: Connected to Flutter application.
W/Gralloc4(15664): allocator 3.x is not supported
I/flutter (15664): 00:02 +1: (tearDownAll)
I/flutter (15664): 00:02 +2: All tests passed!
All tests passed.

flutter doctor -v
[✓] Flutter (Channel stable, 2.8.1, on macOS 12.1 21C52 darwin-x64, locale en-US)
    • Flutter version 2.8.1 at /Users/flo/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 77d935af4d (4 days ago), 2021-12-16 08:37:33 -0800
    • Engine revision 890a5fca2e
    • Dart version 2.15.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/flo/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • 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 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile) • emulator-5554                        • android-x86    • Android 11 (API 30) (emulator)
    • iPhone 13 (mobile)      • EF1251D3-C9C4-475E-9F91-58CD010FDA48 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)         • macos                                • darwin-x64     • macOS 12.1 21C52 darwin-x64
    • Chrome (web)            • chrome                               • web-javascript • Google Chrome 93.0.4577.63

• No issues found!

[✓] Flutter (Channel master, 2.9.0-1.0.pre.129, on macOS 12.1 21C52 darwin-x64, locale en-US)
    • Flutter version 2.9.0-1.0.pre.129 at /Users/flo/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 6ba2f526a4 (2 days ago), 2021-12-17 18:09:14 -0800
    • Engine revision 1db3b8333f
    • Dart version 2.16.0 (build 2.16.0-120.0.dev)
    • DevTools version 2.9.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/flo/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • 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 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile) • emulator-5554                        • android-x86    • Android 11 (API 30) (emulator)
    • iPhone 13 (mobile)      • EF1251D3-C9C4-475E-9F91-58CD010FDA48 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)         • macos                                • darwin-x64     • macOS 12.1 21C52 darwin-x64
    • Chrome (web)            • chrome                               • web-javascript • Google Chrome 93.0.4577.63

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Thank you

@mamuseferha This is still failing on master (in fact it is failing on all channels). After you switched from stable where you duplicated the issue, to master, did you upgrade and clean? I am including the exact steps I did and the log with the failure on master (same failure as on stable), can you please try them in this order, thanks:
Steps to reproduce on master: (this assumes you still have the screenshot project checked out)
- [X] cd screenshot. **Make sure directory 'example' exists**. Renaming 'example' to 'example1' or any other name, the issue disappears
- [X] flutter channel master
  - [X] Exit emulator
  - [X] flutter upgrade
  - [X] flutter emulator --launch "Nexus_6_API_29_2"; sleep 20 # YOUR EMULATOR WILL DIFFER
  - [X] flutter clean; flutter pub upgrade; flutter pub get; flutter drive --driver=test_driver/integration_test.dart --target=integration_test/screenshot_test.dart
  - [X] *failed*

Failure logs
screenshot> flutter clean; flutter pub upgrade; flutter pub get; flutter drive --driver=test_driver/integration_test.dart --target=integration_test/screenshot_test.dart
Deleting build...                                                   21ms
Deleting .dart_tool...                                               2ms
Deleting .packages...                                                0ms
Resolving dependencies...
  _fe_analyzer_shared 31.0.0 (32.0.0 available)
  analyzer 2.8.0 (3.0.0 available)
  archive 3.1.6
  args 2.3.0
  async 2.8.2
  boolean_selector 2.1.0
  characters 1.2.0
  charcode 1.3.1
  cli_util 0.3.5
  clock 1.1.0
  collection 1.15.0
  convert 3.0.1
  coverage 1.0.3
  crypto 3.0.1
  cupertino_icons 1.0.4
  fake_async 1.2.0
  file 6.1.2
  flutter 0.0.0 from sdk flutter
  flutter_driver 0.0.0 from sdk flutter
  flutter_lints 1.0.4
  flutter_test 0.0.0 from sdk flutter
  frontend_server_client 2.1.2
  fuchsia_remote_debug_protocol 0.0.0 from sdk flutter
  glob 2.0.2
  http_multi_server 3.0.1
  http_parser 4.0.0
  integration_test 0.0.0 from sdk flutter
  io 1.0.3
  js 0.6.3
  lints 1.0.1
  logging 1.0.2
  matcher 0.12.11
> material_color_utilities 0.1.3 (was 0.1.2)
  meta 1.7.0
  mime 1.0.1
  node_preamble 2.0.1
  package_config 2.0.2
  path 1.8.0 (1.8.1 available)
  platform 3.1.0
  pool 1.5.0
  process 4.2.4
  pub_semver 2.1.0
  shelf 1.2.0
  shelf_packages_handler 3.0.0
  shelf_static 1.1.0
  shelf_web_socket 1.0.1
  sky_engine 0.0.99 from sdk flutter
  source_map_stack_trace 2.1.0
  source_maps 0.10.10
  source_span 1.8.1
  stack_trace 1.10.0
  stream_channel 2.1.0
  string_scanner 1.1.0
  sync_http 0.3.0
  term_glyph 1.2.0
  test 1.19.5 (1.20.0 available)
  test_api 0.4.8 (0.4.9 available)
  test_core 0.4.9 (0.4.10 available)
  typed_data 1.3.0
  vector_math 2.1.1
  vm_service 7.5.0 (8.1.0 available)
  watcher 1.0.1
  web_socket_channel 2.1.0
  webdriver 3.0.0
  webkit_inspection_protocol 1.0.0
  yaml 3.1.0
Downloading material_color_utilities 0.1.3...
Changed 1 dependency!
7 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Running "flutter pub get" in screenshot...                         791ms
Running "flutter pub get" in screenshot...                         783ms
/home/mzimmermann/dev/my-projects-source/public-on-github/screenshot/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:19: error: package dev.flutter.plugins.integration_test does not exist
      flutterEngine.getPlugins().add(new dev.flutter.plugins.integration_test.IntegrationTestPlugin());
                                                                             ^
1 error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 16s
Running Gradle task 'assembleDebug'...                             16.8s
Gradle task assembleDebug failed with exit code 1

@mzimmerm, running the command all at once seemed to do the trick. Issue is reproducible on master and stable channel

logs

flutter clean; flutter pub upgrade; flutter pub get; flutter drive --driver=test_driver/integration_test.dart --target=integration_test/screenshot_test.dart
Cleaning Xcode workspace...                                      2,889ms
Deleting build...                                                  125ms
Deleting .dart_tool...                                               5ms
Deleting .packages...                                                1ms
Deleting Generated.xcconfig...                                       0ms
Deleting flutter_export_environment.sh...                            0ms
Deleting .flutter-plugins-dependencies...                            0ms
Deleting .flutter-plugins...                                         0ms
Resolving dependencies...
  _fe_analyzer_shared 31.0.0 (32.0.0 available)
  analyzer 2.8.0 (3.0.0 available)
  archive 3.1.6
  args 2.3.0
  async 2.8.2
  boolean_selector 2.1.0
  characters 1.2.0
  charcode 1.3.1
  cli_util 0.3.5
  clock 1.1.0
  collection 1.15.0
  convert 3.0.1
  coverage 1.0.3 (1.0.4 available)
  crypto 3.0.1
  cupertino_icons 1.0.4
  fake_async 1.2.0
  file 6.1.2
  flutter 0.0.0 from sdk flutter
  flutter_driver 0.0.0 from sdk flutter
  flutter_lints 1.0.4
  flutter_test 0.0.0 from sdk flutter
  frontend_server_client 2.1.2
  fuchsia_remote_debug_protocol 0.0.0 from sdk flutter
  glob 2.0.2
  http_multi_server 3.0.1
  http_parser 4.0.0
  integration_test 0.0.0 from sdk flutter
  io 1.0.3
  js 0.6.3
  lints 1.0.1
  logging 1.0.2
  matcher 0.12.11
  material_color_utilities 0.1.3
  meta 1.7.0
  mime 1.0.1
  node_preamble 2.0.1
  package_config 2.0.2
  path 1.8.0 (1.8.1 available)
  platform 3.1.0
  pool 1.5.0
  process 4.2.4
  pub_semver 2.1.0
  shelf 1.2.0
  shelf_packages_handler 3.0.0
  shelf_static 1.1.0
  shelf_web_socket 1.0.1
  sky_engine 0.0.99 from sdk flutter
  source_map_stack_trace 2.1.0
  source_maps 0.10.10
  source_span 1.8.1
  stack_trace 1.10.0
  stream_channel 2.1.0
  string_scanner 1.1.0
  sync_http 0.3.0
  term_glyph 1.2.0
  test 1.19.5 (1.20.1 available)
  test_api 0.4.8 (0.4.9 available)
  test_core 0.4.9 (0.4.11 available)
  typed_data 1.3.0
  vector_math 2.1.1
  vm_service 7.5.0 (8.1.0 available)
  watcher 1.0.1
  web_socket_channel 2.1.0
  webdriver 3.0.0
  webkit_inspection_protocol 1.0.0
  yaml 3.1.0
No dependencies changed.
8 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Running "flutter pub get" in screenshot...                       1,616ms
Running "flutter pub get" in screenshot...                       1,962ms
Multiple devices found:
sdk gphone x86 (mobile) • emulator-5554                        • android-x86    • Android 11 (API 30) (emulator)
iPhone XR (mobile)      • 52310930-1602-4A61-BE82-9B18989453E0 • ios            •
com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
macOS (desktop)         • macos                                • darwin-x64     • macOS 12.1 21C52 darwin-x64
Chrome (web)            • chrome                               • web-javascript • Google Chrome 93.0.4577.63
[1]: sdk gphone x86 (emulator-5554)
[2]: iPhone XR (52310930-1602-4A61-BE82-9B18989453E0)
[3]: macOS (macos)
[4]: Chrome (chrome)
Please choose one (To quit, press "q/Q"): 1
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
/Users/flo/projects/oos/screenshot/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:19: error: package dev.flutter.plugins.integration_test does not exist
      flutterEngine.getPlugins().add(new dev.flutter.plugins.integration_test.IntegrationTestPlugin());
                                                                             ^
1 error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 14s
Running Gradle task 'assembleDebug'...                             15.4s
Gradle task assembleDebug failed with exit code 1

flutter doctor -v
[✓] Flutter (Channel stable, 2.8.1, on macOS 12.1 21C52 darwin-x64, locale en-US)
    • Flutter version 2.8.1 at /Users/flo/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 77d935af4d (4 days ago), 2021-12-16 08:37:33 -0800
    • Engine revision 890a5fca2e
    • Dart version 2.15.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/flo/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • 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 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile) • emulator-5554                        • android-x86    • Android 11 (API 30) (emulator)
    • iPhone 13 (mobile)      • EF1251D3-C9C4-475E-9F91-58CD010FDA48 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)         • macos                                • darwin-x64     • macOS 12.1 21C52 darwin-x64
    • Chrome (web)            • chrome                               • web-javascript • Google Chrome 93.0.4577.63

• No issues found!

[✓] Flutter (Channel master, 2.9.0-1.0.pre.144, on macOS 12.1 21C52 darwin-x64, locale en-US)
    • Flutter version 2.9.0-1.0.pre.144 at /Users/flo/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 07a36f07e3 (2 hours ago), 2021-12-21 01:09:07 -0500
    • Engine revision d3075cd085
    • Dart version 2.16.0 (build 2.16.0-123.0.dev)
    • DevTools version 2.9.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/flo/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • 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 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile) • emulator-5554                        • android-x86    • Android 11 (API 30)
      (emulator)
    • iPhone XR (mobile)      • 52310930-1602-4A61-BE82-9B18989453E0 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)         • macos                                • darwin-x64     • macOS 12.1 21C52 darwin-x64
    • Chrome (web)            • chrome                               • web-javascript • Google Chrome 93.0.4577.63

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Thank you

@mamuseferha Thanks for the follow up test and reopening.

This was a similar fix https://github.com/flutter/flutter/pull/76406

@christopherfujino Thanks for following up. Are you suggesting the fix #76406 may also fix this issue? There is an interesting comment in #76406:
Instead of using the existence of the example directory, explicitly check if the project is a plugin to tell whether to go down the app plugin injection path.
If there is some  behavior-changing check for existence of the example directory, that certainly sounds like a good candidate that is causing this issue. Can you point me where in the code this is (I actually tried to find it before reporting this item but failed) - I may be able to help debugging this.


[$250] The amout page is flickered when editing the amount

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.49-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @dukenv0307
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1729061814164789
Action Performed:

Submit an expense to a DM or a WS chat
Open the combine report or open the transaction thread report
Click on the amount to open the edit page

Expected Result:
The amount page isn't flickered
Actual Result:
The amount page is flickered
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Standalone
[x] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/e64c7650-820f-4cf7-a224-540fde2b55f3
https://github.com/user-attachments/assets/012ed762-b05a-483b-adb8-2f3b5229fe55

Add any screenshot/video evidence

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021848569049299479731
Upwork Job ID:<PHONE_NUMBER>299479731
Last Price Increase: 2024-10-29

Issue OwnerCurrent Issue Owner: @

Proposal
Please re-state the problem that we are trying to solve in this issue.
Amount field flickers on edit page, due to quick currency changes.
What is the root cause of that problem?
On the IOURequestStepAmount page, within the ReportUtils.getTransactionDetails function, we pass the transaction value. If isEditing is true, we use draftTransaction as the transaction value. However, when the page first loads, draftTransaction is undefined, causing getTransactionDetails to return null. In this case, we fall back to {currency: CONST.CURRENCY.USD}, which leads to the USD currency being displayed initially. On the second render, when draftTransaction is retrieved from Onyx, the correct original currency is shown. This results in the flickering effect where the amount switches from USD to the original currency.
What changes do you think we should make in order to solve the problem?
To Fix this, instead of just checking the isEditing condition before passing draftTransaction to getTransactionDetails, we should ensure that draftTransaction has a non empty value. This can be done by adding !isEmptyObject(draftTransaction) along with the isEditing check to avoid passing an empty object.
https://github.com/Expensify/App/blob/0b3569a4f68851c159ecaf06969a79cf73ff4041/src/pages/iou/request/step/IOURequestStepAmount.tsx#L88
const {currency: originalCurrency} = ReportUtils.getTransactionDetails(isEditing && !isEmptyObject(draftTransaction) ? draftTransaction : transaction) ?? {currency: CONST.CURRENCY.USD};

What alternative solutions did you explore? (Optional)

@nkdengineer Your last commit was 15 days ago on the branch, but this issue was opened just 15 minutes ago. How is that possible?
Also, I tested with useOnyx, and draftTransaction  value was undefined the first time

@jayeshmangwani I proposed this bug in another issue

I just realised the External label wasn't on here. @hoangzinh not sure if you want to swap this with @jayeshmangwani since they are already started on this - let us know!

@Christinadobrzyn does this also happen on hybrid app? If not, then I think we should close.

Based on this convo - https://github.com/Expensify/App/issues/50958#issuecomment-2431441735
Asking QA if we can test this on the Hybrid apps to see if they are also affected so we can determine if this should just be closed - https://expensify.slack.com/archives/C9YU7BX5M/p1729738244588529

Issue is not reproducible.
https://github.com/user-attachments/assets/e4315214-2722-4128-b649-3c284ef0f849

Reproducible on Hybrid App - Android
Build 9.0.53-0
https://github.com/user-attachments/assets/664b405f-e854-466f-ad32-cb9a35d0fdb2

Thanks, @izarutskaya. This is happening on the Hybrid App, so let's move forward with a fix. I think everything Hybrid App needs to go internal right now.
So adjusting the settings to make this Internal. Gonna try to find someone to pick this up and confirm if we need to fix internally.

Thanks, @izarutskaya. This is happening on the Hybrid App, so let's move forward with a fix. I think everything Hybrid App needs to go internal right now.
So adjusting the settings to make this Internal. Gonna try to find someone to pick this up and confirm if we need to fix it internally.
Asking the team if we can change this to external even though it's affecting Hybrid.
https://expensify.slack.com/archives/C06ML6X0W9L/p1729833606671219

@hoangzinh do you want to review these proposals and we'll see if any work to fix the Android version which will hopefully fix the Hybrid.

DMd @hoangzinh about the proposal review

it still has another bug, where the cursor position is not moved to the end

@hoangzinh I believe this issue will be handled in this Issue

@hoangzinh You can test by migrating this page to useOnyx and the bug will not happen.

You can see the video from the original PR that creates this logic here and the bug doesn't happen.

@hoangzinh I mean the flicker bug here doesn't happen.

But as I mentioned above https://github.com/Expensify/App/issues/50958#issuecomment-2446475373, this bug doesn't happen at the time the logic is created.

Got it. I also can reproduce this.

monitoring PR - https://github.com/Expensify/App/pull/51935

Prepping for payment
Payouts due:

[ ] Contributor: $250 @jayeshmangwani (paid in ND)
[ ] Reviewer: $250 @hoangzinh (paid in ND)

I'm not sure why @dukenv0307 is included in the payment summary  let me know if they need payment for anything too.
@hoangzinh or @jayeshmangwani can you let us know about a regression test? Thanks!

Thank you @hoangzinh! Payment day is tomorrow so we'll hold another day.

Okay payment day - payment summary here
@hoangzinh and @jayeshmangwani feel free to request payment in ND. thanks!

$250 approved for @jayeshmangwani


add tooltips to vscode workspaces plugin

Summary of the Pull Request
What is this about:
Add tooltip to vscode workspaces plugin for powertoys run
What is include in the PR:
Tooltips
How does someone test / validate:
Move the mouse over a result of vscode workspaces
Quality Checklist

[x] Linked issue: #3547
[x] Communication: I've discussed this with core contributors in the issue.
[x] Tests: Added/updated and all pass
[x] Installer: Added/updated and all pass
[x] Localization: All end user facing strings can be localized
[x] Docs: Added/ updated
[x] Binaries: Any new files are added to WXS / YML

[ ] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

@enricogior
Please review for 0.35. Unfortunately I have not time at the moment. Thank you.


Return Auth0 sub claim instead of random UUID

Try to get sub claim first and fallback to random UUID but not vice versa

Hi @pahanix !
The code is actually correct. MapNVLKeys is a variadic function - it tries to get first present value from keys provided.
But since variadic argument must be the last one in the function signature we had to put 'defaultValue' as a second argument.
So uuid.New() is a default value that is used when there are no values for 'sub' and 'email' fields

@absorbb you are correct! I'm sorry! I came to a wrong conclusion.


TraceServiceSettings.Builder not very idiomatic

I'm having to do this weird cast, which should be avoidable:
TraceServiceClient.create(
	((TraceServiceSettings.Builder) TraceServiceSettings.newBuilder()
	.setCredentialsProvider(
		StackdriverTraceAutoConfiguration.this.finalCredentialsProvider)
	.setExecutorProvider(executorProvider))
	.build())

Notice the (TraceServiceSettings.Builder) cast, because setExecutorProvider() is inherited from the abstract ClientSettings and should probably be overwritten to return a TraceServiceSettings.Builder.

What version of Java are you using?

Was using jdk1.8.0_121, though seeing the same thing with jdk1.8.0_151.

Also what version of gax are you using?

Apologies, user error. gax version was being set to 1.8.1 where it shouldn't.


Sample python code to process messages from rabbitmq

I am going over the keda scaling jobs documentation.

Could anyone please provide a sample code how this will be possible? I am not getting any clue on how I can poll only single message for processing. Will keda do it automatically and provide the message as the argument? or does the user have to write the logic to only poll single message from the queue?
Thank you in advance.

Hello @pyjads
You have to check the RabbitMQ SDK for the specific language to check how a single message can be read. KEDA doesn't peak any message from the queues, it just reads the queue metadata for getting the length, so the processing logic do need to stay in your workload side.


Remove TagAPI dependency

I don't believe that TagAPI is currently being used for anything on account of the Thief backstory not yet being accessible. It pops up in timings and spark profilers for lag cause, which is a severe issue on the server right now.
If it's possible, please remove the need for TagAPI so I can uninstall that plugin and see if that helps performance at all.
https://timings.aikar.co/dev/?id=c5d5f0cd8ed14c6a9bd0b821459c2301#timings
https://spark.lucko.me/tHSG2B8vMV

The no-tags branch, the one currently used in production, doesn't depend on TagAPI. That plugin can be uninstalled


Support {x:Null} or default in PropertyMatch style selector

Is your feature request related to a problem? Please describe.
There should be an easy way to check whether a property is null or default or defaultValue.
Describe the solution you'd like
Solution like [Background={x|Null}]
Describe alternatives you've considered
Additional context
Since TypeUtilities.TryConvert accepts nullable value, PropertySyntax.Value should also be nullable and we can define a special syntax to make a value represents null value.

A while ago I wanted this CSS-like syntax: https://github.com/AvaloniaUI/Avalonia/issues/4123
In general, we need different syntaxes for both "is set" and "is null". Something like bool/int property will never be null.


Add detect_clearsky

[x] Closes #19 .
[x] I am familiar with the contributing guidelines.
[x] Tests added.
[ ] Updates entries to docs/source/api.rst for API changes.
[ ] Adds descriptions to appropriate "what's new" file in docs/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
[x] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
[ ] Maintainer: Appropriate GitHub Labels and Milestone are assigned to the Pull Request and linked Issue.

Adds wrapper for pvlib.clearsky.detect_clearsky and sets thresholds appropriate for data with time intervals up to 15min.

OK with adding scipy to the dependencies?  The pvlib method uses a function from scipy.

I'm OK with it. Numpy and Pandas are already not the lightest, and conda/wheels make it easy enough to install now.

No concerns integrating it as is


Implement Error trait for cairo::Success

I will send a merge request for this one

And change it to cairo::Error with only the error cases, and convert to Result<T, cairo::Error> where current cairo::Status::Success maps to Ok and the other things to Err :)

I have a few questions:

I noticed a lot of ensure_status() which just get the status of  X and calls ensure_valid() which itself just checks if the Status is Success or not. I don't think it makes sense to keep any of those around any more, does it?
the ensure_status() is called at unexpected places sometimes, where we assume we will not have a Result<T, cairo::Error> at all, for example https://github.com/gtk-rs/cairo/blob/master/src/font/font_options.rs#L41. Does it make more sense to just convert to a Result<T, cairo::Error> there as well?
a bunch of cairo objects exposes a pub fn status(&self) -> Status, does it make sense to still expose that? it might be useful in some weird use cases but doesn't look right in Rust. We should probably remove that and just return a Result whenever something might fail.

My questions are not super clear, sorry for that :)

* I noticed a lot of `ensure_status()` which just get the status of  X and calls `ensure_valid()` which itself just checks if the `Status` is `Success` or not. I don't think it makes sense to keep any of those around any more, does it?

I guess those could still stay around as Result<(), cairo::Error>... not sure why they exist at all, shouldn't operations that cause things to fail return a Result instead? But that needs some more investigation so I would do the removal of those as a second step.

* the `ensure_status()` is called at unexpected places sometimes, where we assume we will not have a Result<T, cairo::Error> at all, for example https://github.com/gtk-rs/cairo/blob/master/src/font/font_options.rs#L41. Does it make more sense to just convert to a Result<T, cairo::Error> there as well?

I assume creating a FontOptions can fail? As is this is a bit useless, it should either not check it (-> it can't fail) or it should return a Result like you suggest.

* a bunch of cairo objects exposes a `pub fn status(&self) -> Status`, does it make sense to still expose that? it might be useful in some weird use cases but doesn't look right in Rust. We should probably remove that and just return a Result whenever something might fail.

I agree, but same as with the (public!) ensure_status() I think this needs some more research though, same as above.
Does this help?

I'm thinking of doing a first merge request and check the API for each method that might fail and remove the unneeded ensure_status() as a first step and then move the whole thing to use a cairo::Error where it make sense

Sounds like a plan. Thanks!


Callback methods for animations and objects

parallax objects are removed. callback methods should only aply on annimations and statics


Rework cli

This moves the functionality of bootstrap-cli.mjs file into a new cli folder and splits code into new files:

args.js: contains definitions for yargs, needed in handlers so I separated this into it's own file
constants.js: constants that are needed in multiple files (also central place to store all CLI relevant consts)
helpers.js: helpers for handlers, contains old loose functions from bootstrap-cli.mjs
handlers.js: contains all handlers for cli commands (create, build, etc)

bootstrap-cli.mjs now only contains basic yargs handling
This allows quartz functionality like quartz create and quartz build to be invoked directly without having to go through yargs commands

For your extension, is the plan to synthetically create an argv and pass that into a handler?

yes, that's currently the plan

lgtm, thanks!


gnvim: fix install phase with Rust with custom target

Motivation for this change
When building with cargo build --release --target <arch> ..., Rust installs the gnvim binary in ./taget/<arch>/release instead of ./target/release, which isn't taken into account by upstream's Makefile.
Normally, the project would have been compiled by using make build, but if I understood it correctly, the buildPhase is now overridden by the new hook system (https://github.com/NixOS/nixpkgs/pull/112804)
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Result of nixpkgs-review pr 115267 at ec5fb3cc run on x86_64-linux 1

2 packages failed to build:

gnvim
gnvim-unwrapped

@ofborg build gnvim

$ git worktree add /home/teto/.cache/nixpkgs-review/pr-115267/nixpkgs 7d15e227cf3b30cddd083370814b8d1a2f05ed49
Preparing worktree (detached HEAD 7d15e227cf3)
Updating files: 100% (24774/24774), done.
HEAD is now at 7d15e227cf3 Merge pull request #115232 from xantoz/nyxt-more-platforms
$ git merge --no-commit ec5fb3cce8c8827575a1f2315e3a43b5be55d23c
Automatic merge went well; stopped before committing as requested
$ nix --experimental-features nix-command build --no-link --keep-going --option build-use-sandbox relaxed -f /home/teto/.cache/nixpkgs-review/pr-115267/build.nix

Link to currently reviewing PR:
https://github.com/NixOS/nixpkgs/pull/115267

2 packages built:
gnvim gnvim-unwrapped

it took a while but build passes locally. Binary works.


Custom widgets showcase

This issue serves as showcase for user-contributed widgets.
Please include at least:

the name of your widget
a screenshot of your widget in action
a link to the repository where it can be found

Simple File Picker
Image Preview (default):

Video Preview (with Material Design Icons and rounding):

Functionality

Single click = highlight item
Double click = open folder / choose file
Editable location bar
Auto refresh
Manual refresh and parent folder button
Linux and windows support with drive letter selection for windows (I'll add a screenshot of this in a bit)

Usage
The main flow goes like this:

You create an instance of the FilePicker class when you need to open the file picker
You keep reusing that same instance over multiple frames (this is for persistence of selected items and to preserve on system resources)
Each frame you must call FilePicker.tick() to render the file picker and process events
You can check FilePicker.active to know if it is still open or not (bool)
FilePicker.selected tells you what file was chosen (absolute path string), if the user clicked cancel or the filepicker is still open it will be None
You can find a code snippet in the gist I linked below.

Source
You can find the code for this widget along with a usage example in this gist.
Btw thanks for this widget showcase thread, hope gists are fine too :D

Simple Rating Widget
Example:

Functionality

Familiar star rating design
Custom star count
Click on current value to reset to 0

Usage

Very similar to any other standard imgui widget:
Every frame call ratingwidget(...)
First argument is a label / id; it is not visible but it is used to identify the buttons, just like most other imgui widgets
Second argument is the current value
Third argument is the amount of stars that the widget has, it defaults to 5
You can add additional arguments, they will be passed to the underlying imgui.small_button() call

Note: you will need material design icons or another icon font configured!
Source
You can find the code for this widget along with a few usage examples in this gist.

Smooth scrolling and scroll multiplier
Example:

Functionality

Scroll multiplier
Smooth scrolling
Customizable smooth scrolling speed
Framerate independent

Usage

Scroll modifiers need to be applied before new_frame()
Just read the code below for the usage, it is quite straightforward!

Source
You can find the code for these modifiers in this gist.


box-sizing not supported in CSS highlighting

(Original issue 1083 created by jstitt on 2015-02-03T19:43:26.013974+00:00)
box-sizing is a well supported CSS property: http://caniuse.com/#search=box-sizing
But it is not highlighted:
http://pygments.org/demo/1212462/

(Original issue 1083 last updated on 2016-03-17T06:36:44.864069+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by birkenfeld on 2016-03-17T06:36:44.427676+00:00)
Merged in miikkas/pygments-cssimprovements (pull request #566)
Improve CSS lexer, fix #1130 and #1083
→ <<cset 2b4247690a2a>>

(Original comment by birkenfeld on 2016-03-17T06:36:44.790093+00:00)

Add the vendor prefixes (fixes #1130)
Add the functional notation keywords list
Update the color keyword list
Update the keyword value list
Update the CSS property list (fixes #1130, #1083)
Update the supported units
Change the token type for hexadecimal color values to Number.Hex
Refactor the module for easier future maintenance
Parse floating point and integer numbers separately
Some small fixes in tokenization

→ <<cset 3cb08a49b007>>

(Original comment by birkenfeld on 2016-03-17T06:36:44.858554+00:00)
Merged in miikkas/pygments-cssimprovements (pull request #566)
Improve CSS lexer, fix #1130 and #1083
→ <<cset 2b4247690a2a>>


Updated SkiaKeeper.c to fix "EntryPointNotFound" exceptions

Added some functions to SkiaKeeper.c to overcome "EntryPointNotFoundException"s

Thanks @gentledepp


Correctly use webhook listen address

The flag was not used previously. This made the webhook server default
to 9443 while the unset port field in the ValidatingWebhookConfiguration
defaults to 443. Hence the webhooks were never active.
This is a good thing to test once we've a suite that runs the operator in a cluster.

I believe they were active before the controller-runtime migration, but this looks like one of the things that fell through the cracks during that.

Ah, that makes sense.
The fail-open policy on the WH certainly makes this easy to miss. We should look into changing that down the line.


Add documentation for build.pull_request.* conditional variables

Added docs for this stuff before launch

Oh gosh, I didn't see this and opened #541

The words I used were https://github.com/buildkite/docs/pull/541/files#diff-c2833310700630c49ab3d816f7c4b5eeR124-R143 if you wanted! 🤷🏼♂


Partner Logo Usage Process and Requirements to showcase Automation

Identify a standard process and requirements for the usage of partner logo's in our assets particularly Video's, Demo's that are hosted on IBM YouTube channel for external consumption.

For third-party logo usage, we will use the following language and link in the production of video used for Tech Zone collection. "For any reference of a third-party logo usage in this video, please refer to the following link to understand the guidelines.
Link: Cloud Native Tool Kit


Upgraded all packages to ClientRuntime.Azure 2.1.0

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

It looks like you're working at Microsoft (destanko). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, or work for Microsoft Open Technologies, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;


Why CreateScheme::Create2 (and salt) needs to be provided in advance? Potential Inconsistency?

Currently there are two variants for CreateScheme in TxEnv but I can't understand why it has to be known in advance, especially considering the fact that the salt can't be predicted without executing code.
More serious consequence is the inconsistency here:
https://github.com/bluealloy/revm/blob/5c0cbda7e89c518be21e2ca4cd205020853f381f/crates/revm/src/context/inner_evm_context.rs#L265-L288
For any contract creation code using create2, the created_address address here could be wrong if the given scheme is the other one. However, this can be safely avoided by using the address returned by emulating CREATE or CREATE2. I don't see any reason to use scheme in advance because checking if the destination address is zero should be pretty enough.

Reproduction code: https://github.com/paradigmxyz/reth/issues/7086#issuecomment-1987273643

Created issue here: https://github.com/bluealloy/revm/issues/1182


Ensure all connections are closed using finally

Hello,
With some recent changes made that support various types of exceptions, including cancellation, it turned out that some connections were not being closed leading to a leak of connections.
The solution is to add a nested try...finally code block to ensure that connections are always closed for all possible exceptions.

Thanks for commit! I think that the change can be simplified just by padding post operationsMb ChannelInactive 4 spaces left, so it will be called regardless of exception

Simplified as you recommended. This has been re-tested and appears to behave the same under normal execution.

Thanks for commit! I think that the change can be simplified just by padding post operationsMb ChannelInactive 4 spaces left, so it will be called regardless of exception

Simplified as you recommended. This has been re-tested and appears to behave the same under normal execution.

I meant only 4 spaces left :) But you can leave it 8 spaces left, in that case can you please also remove post operationsMb ChannelInactive from line 819 since it will be called twice

I meant only 4 spaces left :) But you can leave it with 8 spaces left, in that case can you please also remove post operationsMb ChannelInactive from line 819 since it will be called twice

Good observation. Updated per your original suggestion to keep connection closing within the exception handling block. I prefer to leave the "else" behavior as is.

Fix released in https://www.nuget.org/packages/Pulsar.Client/2.15.2

Thank you


bug

version

pigar 0.9.0
python 2.7.3
os windows7

Starting generate requirements ...
Traceback (most recent call last):
  File "/usr/local/bin/pigar", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/pigar/__main__.py", line 261, in main
    Main()
  File "/usr/local/lib/python2.7/dist-packages/pigar/__main__.py", line 35, in __init__
    self.generate_reqs(save_path, project_path, ignores)
  File "/usr/local/lib/python2.7/dist-packages/pigar/__main__.py", line 102, in generate_reqs
    gr.generate_reqs()
  File "/usr/local/lib/python2.7/dist-packages/pigar/__main__.py", line 119, in generate_reqs
    reqs, try_imports, guess = self.extract_reqs()
  File "/usr/local/lib/python2.7/dist-packages/pigar/__main__.py", line 172, in extract_reqs
    self._project_path, self._ignores)
  File "/usr/local/lib/python2.7/dist-packages/pigar/reqs.py", line 60, in project_import_modules
    fmodules, try_ipts = file_import_modules(fake_path, f.read())
  File "/usr/local/lib/python2.7/dist-packages/pigar/reqs.py", line 79, in file_import_modules
    ic.visit(parsed)
  File "/usr/local/lib/python2.7/dist-packages/pigar/reqs.py", line 220, in visit
    getattr(self, method, lambda x: x)(node)
  File "/usr/local/lib/python2.7/dist-packages/pigar/reqs.py", line 153, in visit_Exec
    (node.body.elts[0].s, node.lineno + self._lineno))
AttributeError: 'Name' object has no attribute 's'

python --version?
Could you provide the minimal environment to reproduce it?


Benefits?

Type of issue
Missing information
Description
As an introductory overview this page/article fails the first rule of selling, by describing features but not benefits. As a techie, I generally prefer documentation to present the features and allow me to make my own mind up as to the benefits rather than being condescended to by marketing bods, but in this case I'll confess that a bit of condescension could be helpful.
Why would I wish to use this particular approach to orchestration and configuration as opposed to making my own choices from the full selection available on the Microsoft platform?
And what's that adjective "opinionated" referring to?
Page URL
https://learn.microsoft.com/en-gb/dotnet/aspire/get-started/aspire-overview
Content source URL
https://github.com/dotnet/docs-aspire/blob/main/docs/get-started/aspire-overview.md
Document Version Independent Id
1b7d0d68-ea99-ae77-0b30-0bafb0195096
Article author
IEvangelist

Hi @m-brooks,
Thank you for posting this issue and asking these questions.
All documentation on the Microsoft Learn Platform is intended to cover the features of products and services, this is not a marketing site. Our content is specifically designed to convey concepts, how-to, tutorials, and even API references, and we strive to avoid "selling" you on anything. I'm happy to add sections discussing the "Why .NET Aspire" and outline the potential perceived benefits.
As for the term "opinionated", it's used to describe the defaults, that are derived of real-world services and the benefits they've discovered from applying said defaults. Does that make sense?

For reference this is the marketing site https://dotnet.microsoft.com/en-us/apps/cloud 😄


Provide richer information from DatabaseError

This is part of the restructuring required to give a reasonable solution
to #360. In the case of PG, we hold onto the result pointer, and expose
all of the most commonly relevant fields that can be returned from
PQresultErrorField. Of the fields we've chosen to expose, only the
primary message is guaranteed to be present.
As per libpq's documentation, no assumptions can be made about when any
other fields will or will not be present, so they unconditionally return
an option, instead of exposing a separate API for different error types
where we expect certain fields to always be present.
This works out with SQLite pretty well as well, since SQLite doesn't
actually give any additional information beyond the error code and
"extended error code". I think it might be possible for us to improve
the error message by using sqlite3_errmsg instead of sqlite3_errstr,
but that needs further exploration. Either way, short of parsing the
error message, we won't be able to populate any of the other fields so
we continue to return a string.
This restructuring has the side effect of encoding the fix for the leak
resolved by #361 in the type system, which should help to ensure that
it causes no further problems in the future.

r? @diesel-rs/contributors

👍


[Install issue]: {"detail":"Not Found"} on localhost and api/v1 not working

What happened?
When I access localhost
{"detail":"Not Found"}
I think it should have another output right?
When I access http://localhost:8000/api/v1
Versions
I don't know how to check. Windows 11
Relevant log output
No response

@camarajordan, this is expected behavior. We don't expose anything at the root path (arguably, it can be redirected, but I don't think this gains us much)


Integration Test - Release - 2022/01/05 09:04:44

Auto create for integration test. IssueCommandFlow

#pri1

#pri2

Just type '#pri3'

#pri3

#assign PRMergerTest1

#assign NonAllowedUser

The following users don't have valid GitHub IDs, or are not collaborators on this repo: nonalloweduser

#reassign PRMergerTest2

#reassign NonAllowedUser

The following users don't have valid GitHub IDs, or are not collaborators on this repo: nonalloweduser

#please-close

#unassign PRMergerTest1

#unassign NonAllowedUser


Run go extension for separate routes only

Title: Is there an opportunity to run go extensions separately for different routes?
Description:
I'm starting to use Envoy as API GW for my project. I already have some services and now I want to organize routing via that all. Additionally I'd like to use some modules on go, but for separate groups of URLs. So, other URLs shouldn't be processed by modules.
The other issue I want to cover is that I have more than one module, and I don't want them all be executed per each configured route. Other words I want each route be able to configure the list of extensions be executed.
I use envoy.filters.network.http_connection_manager filter but I can't have them more than one in my config.
Is there any chance to solve that?
My config is below. Thanks!
static_resources:
  listeners:
    - name: listener_0
      address:
        socket_address:
          protocol: TCP
          address: <IP_ADDRESS>
          port_value: 10000
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                stat_prefix: ingress_http
                route_config:
                  name: local_route
                  virtual_hosts:
                    - name: backend
                      domains:
                        - "*"
                      routes:
                        - match:
                            prefix: "/hallo1"
                          route:
                            cluster: cluster1
#                            want my extension be executed here
                        - match:
                            prefix: "/hallo2"
                          route:
                            cluster: cluster2
#                            DON'T want my extension be executed here
                        - match:
                            prefix: "/"
                          route:
                            cluster: cluster1
                http_filters:
                  - name: envoy.filters.http.golang
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.golang.v3alpha.Config
                      library_id: mypluginid
                      library_path: "/etc/envoy/bin/envoy-gw.so"
                      plugin_name: simple
                      plugin_config:
                        "@type": type.googleapis.com/xds.type.v3.TypedStruct
                        value:
                          prefix_localreply_body: "Configured local reply from go"
                  - name: envoy.filters.http.router
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router

  clusters:
    - name: cluster1
      connect_timeout: 30s
      type: STATIC
      dns_lookup_family: V4_ONLY
      lb_policy: ROUND_ROBIN
      load_assignment:
        cluster_name: cluster1
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: "<IP_ADDRESS>"
                      port_value: 9091
    - name: cluster2
      connect_timeout: 30s
      type: STATIC
      dns_lookup_family: V4_ONLY
      lb_policy: ROUND_ROBIN
      load_assignment:
        cluster_name: cluster2
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: "<IP_ADDRESS>"
                      port_value: 9092

add @doujiang24 who is Envoy go expert

@alex-sorochkin
Golang filter enabled in the hcm.http_filters level, just like normal Envoy filters.
But it support route level configuration: https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/golang_filter#per-route-plugin-configuration
That means each route could have specified Golang filter configuration. This should be what you need.

Thanks for your reply, this helped )


Ad public API XML docs

Adds XML documentation for the public API to aid intellisense.
https://twitter.com/James_M_South/status/874283909009125376

Just to be annoying:
The <see cref="T"/> at line 160 will trigger a warning, since it doesn't know how to resolve T to a type. It should be <typeparamref name="T"/> instead.
https://github.com/umco/umbraco-vorto/pull/90/files#diff-e3939f24b4a5c08135ae25b1a6faf5d5R160
Otherwise good job on the XML documentation 👍  it's always a joy to have that for intellisense and similar.

@abjerner Good spot! That's it fixed now 👍

Double Yay!

Cheers bud. Sorry it took so long.
On 9 Nov 2017 11:55 pm, "James Jackson-South"<EMAIL_ADDRESS>wrote:

Double Yay!
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/umco/umbraco-vorto/pull/90#issuecomment-343330993,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAgLyYg0nAiAErF3ki-XZql8WOMnuYKAks5s05EMgaJpZM4N39ja
.


Create Windows CI with Github Actions

Example: https://github.com/trikset/trikRuntime/blob/master/.github/workflows/main.yml

Partially implemented in #1328, but still missing tests

Fixed in #1328


[REQUEST] Add list of Variables in 'KEY CHECK' BLOCK

Add something like this to OB2

@openbullet
914f62796e403a053f74caea9ac5cc39c6cbf908
c5c8c2752364ce0651dcd8490e2176c7f8c1dc2d

After adding STRING / Bool / Dictionary
input is 'data.SOURCE' by default, and after click on it, can't see list of all suggestions
i think it's better to remove this default value, because suggestions is there and can pick any easily
also better to remove input.DATA, data.STATUS and data.RAWSOURCE from suggestions to make it more clean

The fact is that the suggestions are shown in every variable field of every block, not just the keycheck block. So that's why I put all the values, also to let users know that they exist. I also don't like the suggestion of removing data.SOURCE as default, since it's what is used in 99% of cases.

@openbullet
Good!, so add data.Line.Data to suggestions too, it's useful, i use it in +30% of my configs

Alright I will add it


[chore][GraphQL] Declutter schemas

Description
Remove draft_target_schema.graphql and promote
current_progress_schema.graphql to be the canonical schema for the service -- move it to the top-level of the sui-graphql-rpc crate to make it easier to find. This is to avoid confusion about source of truth for the GraphQL schema.
Because the TS SDK references the schema at multiple GraphQL versions, we will need to cherry-pick this change to release branches when it lands.
Test plan
CI
Stack

#17543
#17692
#17693
#17696
#18287

Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

[ ] Protocol:
[ ] Nodes (Validators and Full nodes):
[ ] Indexer:
[ ] JSON-RPC:
[x] GraphQL: The schema file has been moved from crates/sui-graphql-rpc/schemas/current_progress_schema.graphql to crates/sui-graphql-rpc/schema.graphql.
[ ] CLI:
[ ] Rust SDK:

I figured it's time to graduate the GraphQL schema from having an "in-progress" schema to just having a schema.  Heads up @hayes-mysten as I think you are the one who's most likely to be affected by this change -- when I land this PR, I'll put up cherry-picks for all release branches to follow this structure, so that the TS SDK schema discovery script keeps working.


Split documentation build

🐞 Problem
Several notebooks are causing timeouts in the builds and had to be disabled (see for instance the conversation in https://github.com/poliastro/poliastro/pull/305 and https://github.com/poliastro/poliastro/pull/263). We should split the docs into its own build that is allowed to fail, so we can inspect failures without adding noise to the pull requests. There is some risk that we commit failing notebooks, but many of them make access to external resources that we cannot mock.

🎯 Goal
Reduce noise in pull requests.

💡 Possible solutions
Simplify the Travis and AppVeyor builds and split the docs building separately, either with a new step in Travis or in Read the Docs.

📋  Steps to solve the problem

Comment below about what you've started working on.
Add, commit, push your changes
Submit a pull request and add this in comments - Addresses #<put issue number here>
Ask for a review in comments section of pull request
Celebrate your contribution to this project 🎉

How can I test the .yml files locally? Any idea about that?

Not sure, what I do in this cases is configuring everything in my fork and do the tests there.

But I don't have CI's enabled in my fork :/
We have to buy TravisCI Right?

Travis CI is free for open source ;)

This should not be happening right? Is it a local problem because it is not able to find the path. This is Appveyor

Same thing I did in Travis it worked :/

Pull Request #323

This needs to be closed!


Support binary/buffer inputs and outputs

Example: multipart/form-data request content-type or application/pdf response content-type.
One way this might be implemented is a binary or buffer primitive type. This would translate to a Buffer in ECMAScript, byte[] in Java, or a []byte slice in golang.

Implemented in https://github.com/basketry/basketry/pull/70


Tangent Space Normals

Feature/enhancement description:

When using custom Geometry, currently there is only option to export Normals in Object Space, which doesn't work with deforming objects. A Tangent-space normals option will allow the object to be deformed, making it more broadly useful, and necessary for models like characters.

I don't think it's very clear what you are asking for here. I assume you mean baking normals from high density mesh to low density mesh? Otherwise tangent normals would simple be neutral.

Actually there's a problem that currently MM does not have baking from highpoly models to lowpoly. Which means that your normal map would have a solid color as there won't be any dfferences in normal directions.


Set top level permissions to GHA

(cherry picked from commit 490e06c01e29108846696af0f52c61d59cd7c844)
Set Token-Permissions for addressing OpenSSF warnings

Problems with the CI...?

Problems with the CI...?

CI scripts are old on master.
EOL ROS distros, non matching parameters on LibCI..
IMO let's ignore, rebuilding the current master will show the same


error packing and importing

Hi,
When i attempt to pack and import a solution to a new environment, it fails on import with the following error message:

The import file is invalid. XSD validation failed with the following error: 'The element 'Visualizations' has invalid child element 'savedqueries'. List of possible elements expected: 'visualization'.'. The validation failed at: '...row name="result" id="activityid"><IP_ADDRESS>< <<<<>>>> savedqueries>{BDF7D5A4-9048-E811-A94F-000D3AB9A89F}<

Is there an issue when packing views and charts?
I am able to transfer the solution fine using the solution transfer tool in XRMtoolbox.

This is an issue with the solutionpackager.
Until that is fixed... one (unsupported) workaround is to manually edit the elements in the Visualizations folder to get rid of the any invalid savedqueries root node(s), then pack the solution again, which should import fine.

This issue has been reported to MS by someone else.  Please upvote the ticket.
https://experience.dynamics.com/ideas/idea/?ideaid=a40045b9-794f-e811-bd6d-0003ff68b41d


[hid] Add onDeviceAdded and onDeviceRemoved events

Hey @reillyeon,
Before adding chrome.hid.getUserSelectedDevices, I thought it was better to add onDeviceAdded and onDeviceRemoved event listeners to the hid sample instead of polling.
BUG=#396

Thank you @reillyeon for the feedback.
I've removed the filters parameter.


Bring the modifications to cxx14

Hi guys,
This PR is somehow a following from this one, bringing the code back to cxx14.
So here is my proposal to bring the code to cxx14:

Extend std with byte, avoiding large changes on modification proposed by @kiplingw  here
Force CMakeLists.txt to compile CXX14 (When you decide to move to CXX17 chage it), I did this so we guarantee that the only compilable version will be on CXX14 and will be "clear" to the developers the current CXX version. Also it will be easier to see on PR's)

What you think @kiplingw and @dennisjenkins75?
Thanks

@dennisjenkins75 Is the CI not doing the checking or I am missing something?

Hi guys,
This PR is somehow a following from this one, bringing the code back to cxx14.
So here is my proposal to bring the code to cxx14:
* Extend std with byte, avoiding large changes on modification proposed by @kiplingw  [here](https://github.com/oktal/pistache/pull/725)

* Force CMakeLists.txt to compile CXX14 (When you decide to move to CXX17 chage it), I did this so we guarantee that the only compilable version will be on CXX14 and will be "clear" to the developers the current CXX version. Also it will be easier to see on PR's)

What you think @kiplingw and @dennisjenkins75?
Thanks

Personally I don't see any reason why we should backport to C++14. If we had a stable release that had been out for years, it might make more sense. But since what users we have are all using a development release in their projects, it doesn't make sense for them to ask for stability. Just my two cents.

Hi guys,
This PR is somehow a following from this one, bringing the code back to cxx14.
So here is my proposal to bring the code to cxx14:
* Extend std with byte, avoiding large changes on modification proposed by @kiplingw  [here](https://github.com/oktal/pistache/pull/725)

* Force CMakeLists.txt to compile CXX14 (When you decide to move to CXX17 chage it), I did this so we guarantee that the only compilable version will be on CXX14 and will be "clear" to the developers the current CXX version. Also it will be easier to see on PR's)

What you think @kiplingw and @dennisjenkins75?
Thanks

Personally I don't see any reason why we should backport to C++14. If we had a stable release that had been out for years, it might make more sense. But since what users we have are all using a development release in their projects, it doesn't make sense for them to ask for stability. Just my two cents.

I understand you point, but at least me, considered that the project would have a release for CXX14(actually, at first I though it would be CXX11) , as it was described in the documentation, and this one of the reason that I was able to use pistache. As you will not lose back-portability in C++, in my opinion, pin the development in CXX14 for now I see as a reasonable choice.


Add files via upload

@ParallaxOnline Pull request merged.
Please notice that free educational subscription for JetBrains tools is for students and teachers only, and is valid for using the tools for educational purpose only. If employees of Novalis Trust who are not students, nor teachers, also need a license for JetBrains tools, they can be eligible for an academic discount for the tools. They can get the discount by email to<EMAIL_ADDRESS>Thank you!


std::bad_alloc error

Hi,
I've been trying to run freebayes-parallel across many small regions (10000+) though I've been consistently getting this error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Error: signal 11:
freebayes[0x4af735]
/lib/x86_64-linux-gnu/libc.so.6(+0x36150)[0x2b41156da150]
freebayes[0x428b98]
freebayes[0x425d97]
freebayes[0x4473a1]
freebayes[0x448069]
freebayes[0x45756e]
freebayes[0x4587a4]
freebayes[0x458fa9]
freebayes[0x409246]
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

I'm running the analysis for 1281 bam files (~3tb) on a server using 30 cpus and 300gb of RAM.
The command I'm using to run it is
freebayes-parallel ref.fa.selected.regions 30 -f ref.fa -L list_of_1281_sorted_bams>output.vcf 2>output.err
Any help would be greatly appreciated! Thanks

When you submit this to your cluster, how much RAM do you request?
Exactly 300 GB on  single node?
That is ~250 MB per BAM file, but i'm not sure of the overhead within freebayes.

My bad, it's running on a single server and not a cluster, still 30 cpus and 300gb (exactly) of RAM.

I have recently made a new fork of freebayes that potentially has less memory overhead for these sorts of operations. It uses SeqLib instead of BamTools, which seems to use less memory. It works on my test cases of joint calling, but I haven't tried it with the freebayes-parallel script.
You may find it useful, and it would be helpful to me to see if it worked or if anything came up.
https://github.com/jwalabroad/freebayes

@jwalabroad has a pull request stuck in review. We're looking to merge it in as soon as possible!


Added ISC license

Please merge this pull request and release a new tarball so I can package this for fedora. Thank you.

Reformatted, rebased, and landed as e88cc40fabe7ecd3d79ef9b9740840832f33d565. Thanks!


Collisions in Element#getStringId()

Current implementation of Element#getStringId() is based on System.identityHashCode() which is not an identifier.
Consequences
Unreliable id:unique, and may crash modules that rely on getStringId().
Soution
Replace implementation with UUID.randomUUID().

fe1b135


Prototype setOption(s) for updating options

One reasonable use case would be LineUp's rendering options like stacked which have a nice animation as opposed to resetting the entire vis.

This will allow for a more general solution in place of the additions introduced in PR #81 (specifically, here).


Add blog for PersistentVolumeLastPhaseTransitionTime feature GA in v1.31

KEP: https://github.com/kubernetes/enhancements/issues/3762

/sig storage

Hey @RomanBednar , it's Matteo from the 1.31 Release comms team.
I'm reaching out with a reminder that the blog ready for review deadline is July 26, 2024.
Please let me know how we can help with content, review or anything else 😄

@mbianchidev you can:

let the author know if they can have an exception (this PR missed a deadline)
if so, assign a tentative publication date

Thanks @sftim !
So @RomanBednar we are ok with stretching the blog deadline for this one.
I'll mark it as ready for review and try to come up with a publication date ASAP.

Thanks @sftim !
So @RomanBednar we are ok with stretching the blog deadline for this one. I'll mark it as ready for review and try to come up with a publication date ASAP.

Currently the publication date is set to the 13th of August!

@mbianchidev Thank you, I've updated the date.

/unhold

/hold
OK to unhold once Kubernetes v1.31 has been released.

@sftim @tengqm Thank you for reviews, I've applied the suggestions and squashed everything.

hey @natalisucks, this one has been lgtm-ed before, now every comment should be addressed, can you help with labels? :eyes:

Thanks @sftim !
So @RomanBednar we are ok with stretching the blog deadline for this one. I'll mark it as ready for review and try to come up with a publication date ASAP.

Currently the publication date is set to the 13th of August!

That is after the date set for the release announcement. Seems wrong.

Thanks @sftim !
So @RomanBednar we are ok with stretching the blog deadline for this one. I'll mark it as ready for review and try to come up with a publication date ASAP.

Currently the publication date is set to the 13th of August!

That is after the date set for the release announcement. Seems wrong.

@RomanBednar the publication date should be August 14th.
cc: @mbianchidev

Let's pick a specific publication time; there are several articles due to go out on release day, and it's important that the earliest one out of the set is the release announcement.

Thanks @sftim !
So @RomanBednar we are ok with stretching the blog deadline for this one. I'll mark it as ready for review and try to come up with a publication date ASAP.

Currently the publication date is set to the 13th of August!

That is after the date set for the release announcement. Seems wrong.

@RomanBednar the publication date should be August 14th.
cc: @mbianchidev

I adjusted the board to reflect the change, it was set to the wrong date.
About setting a time let's pick one for the release blog and the ones going out the day of the release, for any other blog time is probably not-so-sensitive.

Thanks for the heads up, I've set the date to 2024-08-14.
cc @a-mccarthy @sftim @mbianchidev

Given this Slack thread re: specific time for the blog and the clarified items going out on release day, this looks good to me without a specific time
/approve

/lgtm
:stop_sign: Do not unhold or merge before Kubernetes v1.31 is released :stop_sign:

/unhold
Kubernetes v1.31 has been released.


[rendergraph] Add port.

Describe the pull request

What does your PR fix?
Fixes #23954

Which triplets are supported/not supported? Have you updated the CI baseline?
I've tested it with x64-windows, x64-windows-static, x64-linux and x64-osx.
The CI baseline has not been updated.

Does your PR follow the maintainer guide?

Yes

Thanks!


always supply NSLocationWhenInUseUsageDescription string in expo

What
After upgrading to react-native-vision-camera 4.0.0-beta.12 and uploading a build to the app store connect I received the following warning:

ITMS-90683: Missing purpose string in Info.plist - Your app’s code references one or more APIs that access sensitive user data, or the app has one or more entitlements that permit such access. The Info.plist file for the “*.app” bundle should contain a NSLocationWhenInUseUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

But I don't use the location at all
Changes
This PR removes the need of the user to explicitly mention they use location to supply a default NSLocationWhenInUseUsageDescription string
Tested on
Related issues

Hm, maybe we should make this even more optional. We don't want everybody to add location string to their app, do we? Does this do any harm?

Hm, maybe we should make this even more optional. We don't want everybody to add location string to their app, do we? Does this do any harm?

I would say it depends on whether VisionCamera by default stores location EXIF data for each picture that is taken. If the answer is yes, I would say that in that case supplying this string is in fact mandatory.
There was a similar issue in iOS (unrelated to VisionCamera) where viewing very specific images which contain EXIF data about contacts triggered a crash if the NSContacts usage description string was not provided in Info.plist. Probably in such cases iOS tries to request the contacts description in order to check if it can match up the contact data in the image with the information in the user's contacts app. In that sense, I would say the motivation behind the "need" for this string would be similar.

I think there's also a way to conditionally compile-out the location usage, I can look at that in a sec - can you help me with testing thoughg?

Are you on the Margelo Community Discord? Please ping me over there in the vision camera channel

I have this problem too and I think it would be great when this could be conditionally compiled out!

Hm, maybe we should make this even more optional. We don't want everybody to add location string to their app, do we? Does this do any harm?

I think an app should use as few permissions as possible. So it could do harm if the Apple Review Team doesn't like your app when you're app seems to use location services, but in reality it doesn't. If the review team is fine with it, I think it won't affect the app negative, however it might confuses other team members and it doesn't feel very clean.

See https://github.com/mrousavy/react-native-vision-camera/pull/2751

btw., is it enoughh to just compile out the CLLocationManager.requestAccess method, or do I also need to compile out stuff like CLLocationManager even though this code can never be reached?
Would be great if you could test that, as the first is pretty easy to do while the latter can be a bit hard to test.

Hello! Sorry I've been away, I was we a lot of stuff at work. On the weekend i can test that with no problem!

This has been fixed in #2751 and will be released in the next beta


Error when exporting function

System information:

Operating system Windows 10
DBeaver version <IP_ADDRESS>202200327

Connection specification:

Database Postgres 11

Describe the problem you're observing:
There is a problem when we generate script for a schema with a function that returns a table. ALTER FUNCTION and GRANT ALL strings are formed incorrectly (returned table fields including into function arguments list). An error occurs while running the script there is no such functions.
e. g.
CREATE OR REPLACE FUNCTION orderapi.getfqtycolor_tbl(idpgds numeric DEFAULT NULL::numeric,
         dpbegin date DEFAULT CURRENT_DATE, dpend date DEFAULT CURRENT_DATE)
     RETURNS TABLE(id numeric, scolor text, fqty_plan numeric, fqty_fromsap numeric, fqty_fact numeric,
          fqty_brak numeric, fqty_fromzadel numeric, fqty_tozadel numeric)

ALTER FUNCTION orderapi.getfqtycolor_tbl(in numeric, in date, in date, numeric, text, numeric,
     numeric, numeric, numeric, numeric, numeric) OWNER TO postgres; -- wrong function signature
GRANT ALL ON FUNCTION orderapi.getfqtycolor_tbl(in numeric, in date, in date, numeric, text,
     numeric, numeric, numeric, numeric, numeric, numeric) TO postgres; -- wrong function signature

Steps to reproduce, if exist:

create fucntion with arguments and TABLE as return value
export schema with created function into sql file
check lines with ALTER FUNCTION and GRANT ALL commands

Hello @ArchDemons
Thanks for the bug report

This affects DB Navigator right click -> Delete too, it won't work as the generated DDL is incorrect.

actual in DBeaver version  <IP_ADDRESS>203060510 also

Fixed.

verified


Further improve mongo's AssumeReadType

AssumeReadType does not recognize all shape preserving constructions yet - see https://github.com/quasar-analytics/quasar/pull/3240#issuecomment-350229794 so there are still guards left that can be elided. Investigate whether this can be improved further.

Have we considered changing the the type of the LP Read node in a per connector basis? Maybe whoever is working on this can use a few hours of their day to explore doing it through BackendModule.


Unicode character parsing

Per #539 there may be a continued problem in parsing unicode characters due to a dependency.
Per @vltr:  /中国 or even /jacaré would break on request.py, mostly because of httptools.parse_url that receives bytes and is unable to parse non-ascii chars. I'll need to dig deeper to see if this is a restraint in httptools itself or just in the Python bindings.

Just passing my eyes through Node's http-parser source code (base of httptools), I've seen in their tests that some level of unicode characters should be possible to use. So, the next step would be to test httptools itself - in a next chapter :wink:

I remembered there was a PR addressing this https://github.com/huge-success/sanic/pull/1081

@huge-success/sanic-release-managers add this to 18.12LTS milestone?

there is a unit test for verifying.

@yunstanford would this be a valid test?
from sanic.request import Request

uri = "/jacaré"

Request(
    url_bytes=uri.encode("utf-8"),
    headers={},
    version=None,
    method='GET',
    transport=None
)

The result:
$ python test-sanic-unicode.py
Traceback (most recent call last):
  File "test-sanic-unicode.py", line 10, in <module>
    transport=None
  File "/home/richard/.pyenv/versions/playground-3.7.0/lib/python3.7/site-packages/sanic/request.py", line 57, in __init__
    self._parsed_url = parse_url(url_bytes)
  File "httptools/parser/parser.pyx", line 468, in httptools.parser.parser.parse_url
httptools.parser.errors.HttpParserInvalidURLError: invalid url b'/jacar\xc3\xa9'

Test looks valid to me.
After dugging, it looks like that the issue still exists in the dependency. It actually seems to exist upstream from there in http-tools (see here, where they are still relying on RFC2616 for valid url characters - which are only latin-1). After digging, while RFC2616 was updated by RFC3986 and obsoleted by RFC7230, the latin-1 character sets (backreferenced to RFC3986) and percent encoding remain the only official valid characters for URIs.
So we have two problems, one of which I don't care about. i18n and non-latin-1 characters are still technically disallowed - don't care. W3C allows internationalization of domain names using non latin-1 characters, and so should we.
The second part is that our dependency chain DOES care. The http-tools parser will and does fail if it's trying to parse any portion of the schema that non-latin-1 encoded.  And I don't think we can fix this unless we eliminate the dependency, and I'm sure that's going to be a problem. So I do care about this issue.
I think there is a workaround though, but I think it will be costly: if the unicode characters are intercepted before parsing and translated to their %characters, that solves the url parsing. But we also have to do that for route registration. I'd like to get some more eyes on this issue to make sure I'm not crazy. @ahopkins @r0fls @seemethere @yunstanford

I'm also concerned because @vltr has a test that is clearly failing yet the test from #1081 passes

@sjsadowski for this simple script I made, using latin1 provides the same error:
from sanic.request import Request

uri = "/jacaré"

Request(
    url_bytes=uri.encode("latin1"),
    headers={},
    version=None,
    method='GET',
    transport=None
)

Result:
$ python test-sanic-unicode.py
Traceback (most recent call last):
  File "test-sanic-unicode.py", line 10, in <module>
    transport=None
  File "/home/richard/.pyenv/versions/playground-3.7.0/lib/python3.7/site-packages/sanic/request.py", line 57, in __init__
    self._parsed_url = parse_url(url_bytes)
  File "httptools/parser/parser.pyx", line 468, in httptools.parser.parser.parse_url
httptools.parser.errors.HttpParserInvalidURLError: invalid url b'/jacar\xe9'

httptools version:
$ pip freeze | grep httptools
httptools==0.0.11

But, even if I create a simple server:
from sanic import Sanic
from sanic.response import text

app = Sanic(__name__)

@app.route("/test/<hello>")
async def myroute(request, hello):
    return text("hello, {}!".format(hello))

if __name__ == '__main__':
    app.run(host="<IP_ADDRESS>", port=8000, workers=1)

It will raise (basically) the same error.
Server:
$ python test-sanic-unicode.py
[2018-09-28 10:28:54 -0300] [8411] [INFO] Goin' Fast @ http://<IP_ADDRESS>:8000
[2018-09-28 10:28:54 -0300] [8411] [INFO] Starting worker [8411]
[2018-09-28 10:29:05 -0300] [8411] [ERROR] Traceback (most recent call last):
  File "/home/richard/.pyenv/versions/playground-3.7.0/lib/python3.7/site-packages/sanic/server.py", line 216, in data_received
    self.parser.feed_data(data)
  File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data
httptools.parser.errors.HttpParserInvalidURLError: invalid URL

cURL:
$ curl -v http://<IP_ADDRESS>:8000/test/jacaré
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8000 (#0)
> GET /test/jacaré HTTP/1.1
> Host: <IP_ADDRESS>:8000
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Connection: close
< Content-Length: 18
< Content-Type: text/plain; charset=utf-8
<
* Closing connection 0
Error: Bad Request

I think the encoding is supposed to be 'latin-1' but either way é is not valid in RFC2616.

Oh. Sorry, my bad. I'll pay more attention to the RFC :grin:
Regarding the dash on latin-1, it works with or without:
>>> "é".encode("utf-8")
b'\xc3\xa9'

>>> "é".encode("utf8")
b'\xc3\xa9'

>>> "é".encode("latin1")
b'\xe9'

>>> "é".encode("latin-1")
b'\xe9'

Yeah it's just dumb. It's very outdated (1999 - almost 20 years) and even though it's been superseded twice, they haven't updated the "legal" characters for a URI.

We need to see if any updated RFC brings this question forward, since 2616 is obsoleted and updated.

@sjsadowski wow, almost at the same time (the comments). I'll take a look into these other RFCs just for precaution.

@vltr you want 3986 which is an update and 7230 which obsoletes 2616

Thanks, @sjsadowski, I'll read them carefully when I get some free time and will get back here with (or without) new conclusions :+1:

I have not had a full chance to review the issue.... but my first thought when I read the idea of catching non Latin characters and translating them would be the potential performance hit compared to the use case. I'll come back after the weekend with some more thoughts.

@ahopkins indeed, depending on how to address this issue. I would not want to address this inside Sanic because of the performance hit. If possible, I would like to address this on httptools because it seems to work on Node's http-parser (see here).

didn't get time to dig into this issue, will take a look when getting a chance.
If you guys've investigated and thought it's because of httptools, we can pull @1st1 in for discussion

Everyone, I did some more digging into this and things got a little more complicated. From the RFC 3986, see the topic "2.4. When to Encode or Decode".
From what I could understand:

For every non US-ASCII character (let's pick a simple example that I used a lot here, é) that is used, it should be encoded to its "percent-encoded octet", which in this example would be %C3%A9;
By doing this, httptools would correctly parse everything and all is good.

What happens:

Some clients (like cURL) doesn't encode anything prior to the request, it just sends the request "as is",  that would of course break inside Sanic for not being encoded properly first;
We can see that some other web frameworks can handle this kind of values, but the question is: are they doing it to "embrace the world" and make users happy, instead of properly handle the issue?

What can be done:

Nothing. Sanic is working strictly under the terms of the RFC, so if anything comes wrong, a bad request will be raised;
Half embrace the world [1]: try to encode these "strange chars" (using urllib.parse.quote) prior to send to httptools, adding some overhead;
Half embrace the world [2]: try do decode these "strange chars" (using urllib.parse.unquote) after what httptools provides us (if it not breaks); my personal opinion is that this should be considered (I can send /%C3%A9 and read /é); or
Full embrace the world: try to encode everything weird before and after, to get the whole world satisfied.

Thoughts?

I'd lean towards nothing. If a client is supposed to be % encoding non-ascii characters that are in the RFC2616 charmap, then bare unicode characters should not be parsed, and httptools/http-tools are doing the right thing.
So long as routes that have unicode characters in them are getting % encoded as well, we have done (what I think) are our jobs, as the routes will match the correct client encoding.

@sjsadowski that would be my opinion too. We can perhaps add a server option to unquote after httptools have returned correctly, but that's just an idea -- the developer can implement this as well. It may have some more trouble than expected because it needs to overwrite Request.__init__ and use the newer class in the application constructor if intended to be used with the Router, so perhaps this should be a matter of heavy documentation on the subject?

@vltr unless we get a chorus of 'no' I'm going to say we just need to document the hell out of it. A special section on unicode characters or something for handling unicode in Request.

@sjsadowski I completely agree with you.

Perhaps we can even provide some pre-built examples of extending the Request class to deal with all these questions - even though I personally think that these kind of parsing should be done inside the server, but anyway ...

I'm actually closing this per #1424

@sjsadowski I'm sorry, I really forgot to document some examples with the Request class. Please, leave it open and I'll create a PR for this in a couple of hours - I just have to revise what I have wrote in here already and etc. I'm really sorry.

@vltr no worries, just trying to do some house keeping!

@sjsadowski I know :wink: And I'm glad you're doing it because I'm so full of stuff to do that this went straight through my todo list and I completely forgot about.

@sjsadowski I made a mess in my mind here - I thought this was related to httptools on the Request object, but it is in fact in the HttpProtocol. It's better to close this or take the bumpy road: add optional (and configurable) hooks to the protocol, which might not even solve the issue :confused:

I'm going to close it. Solving the issue itself is going to require significant work and should be tracked separately - if we choose to take it on - and I think this issue number has run its course.


upgrade version

Update documentation version

any reason you closed it for upstream? https://github.com/seek-oss/docker-ecr-publish-buildkite-plugin/pull/30


Windows version?

Is it possible to get a windows port? The code looks to me like just javascript. That should work on windows aswell right? I could not find a good solution for windows like this one. I would be very happy if you could make a version for windows!

@BenAndDevelopment this is based on Electron and yes it should work on Windows too. However I dont think this is needed for Windows since most streaming apps work much nicer with Windows.. unless you need it for something really specific.

Well, I need exactly what your app does. A simple rtmp server with multiple instances. I couldn't find anything for windows that just works as nice as your solution.
Would you make a windows version? :)

Compiling the source as-is with electron-forge leads to a workable Windows version. Part of the pop-out window is obscured by the taskbar, but the stream URL and key are visible, and it works!
Assuming you have node/npm installed and a copy of the source code handy, open up PowerShell, navigate to the source directory, and run the following:
npx @electron-forge/cli import
npm run make

After that, within the source directory there will be an installer exe in the out\make\squirrel.windows\x64 subdirectory.

Works great on Windows. No issues here.
I cloned the source code and ran npm install & npm run dist. The output can be found in the dist folder.
@sallar You really should think about just releasing the Windows version parallel to the Mac one. I'm sure there are other tools for windows that do that, but yours is the first one I found, and it's so simple to use, it's perfect for my use-case. I love your simplistic UI.


Finish converting events to ScriptEvent format.

A fair few events, still need to be converted to ScriptEvent format, as some (such as on command (in <area>):) don't accept the cuboid name on it's own, but still require identifiers.

[x] Player Edits Book bad79fd
[ ] Player Clicks Block
[ ] Player Clicks in Inventory
[ ] Time Changes (in ) Not even sure if this one is possible as it isn't a normal event.

Smart Event is what we call the old system. Well what auf called them at least. Modern style is ScriptEvent

there's only a few old-style events left... would be good to update them but not super terrible that they're still old