svelte-kit preview throws "Cannot destructure property 'cancelable' of 'undefined' as it is undefined" during dispatch custom event call.

Describe the bug
while dispatching a custom event, following error gets thrown.
index-e29e855b.js:304 Uncaught TypeError: Cannot destructure property 'cancelable' of 'undefined' as it is undefined.
    at index-e29e855b.js:304:27
    at HTMLButtonElement.decrease (index.svelte-50532f6b.js:84:5)

This happens only when I run svelte-kit build && svelte-kit preview. Its little baffling because svelte source code correctly defines default parameter to the third parameter. However, on build, the default value gets stripped out. I tried with non-minified build also and see the same result.
Workaround: Currently a simple workaround is to pass an empty third parameter to dispatch method.
Reproduction
https://stackblitz.com/edit/sveltejs-kit-template-default-9twecw?file=src/lib/Counter.svelte
On the console, cancel the svelte-kit dev process and then start npm run build && npm run preview command.
When - or + button is clicked, a custom dispatch event is called. ideally it should print the show the current count in the parent component. However, on my browser, above error is thrown.
Logs
index-e29e855b.js:304 Uncaught TypeError: Cannot destructure property 'cancelable' of 'undefined' as it is undefined.
    at index-e29e855b.js:304:27
    at HTMLButtonElement.decrease (index.svelte-50532f6b.js:84:5)

System Info
System:
    OS: macOS 12.3.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 75.91 MB / 32.00 GB
    Shell: 3.4.1 - /opt/homebrew/bin/fish
  Binaries:
    Node: 18.1.0 - ~/Library/Caches/fnm_multishells/69089_1652879820227/bin/node
    Yarn: 1.22.15 - ~/Library/Caches/fnm_multishells/69089_1652879820227/bin/yarn
    npm: 8.8.0 - ~/Library/Caches/fnm_multishells/69089_1652879820227/bin/npm
  Browsers:
    Chrome: 101.0.4951.64
    Chrome Canary: 104.0.5069.0
    Firefox: 99.0
    Firefox Developer Edition: 101.0
    Safari: 15.4
  npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.43
    @sveltejs/kit: next => 1.0.0-next.335
    svelte: ^3.48.0 => 3.48.0

Severity
annoyance
Additional Information
I thought of raising it in this repo, since the issue is happening during the svelte-kit build.

Thank you! I've just spent several hours debugging my code.
I fould that the issue starts with SVELTE version 3.48.0. Everything works just fine with version up to 3.47.0.
I have my suspicion that it might have something to do with this feature:

Allow creating cancelable custom events with createEventDispatcher (https://github.com/sveltejs/svelte/issues/4623)

Weird. I wonder whether we're running into a Rollup/Terser/esbuild optimization bug? The unoptimized code in createEventDispatcher does look like it would avoid this, as you noted.

It looks like a regression in Rollup 2.74.0, specifically https://github.com/rollup/rollup/pull/4498. I've created an issue there to track it: https://github.com/rollup/rollup/issues/4507

Having the same problem. Spent a couple of hours trying to understand what's going on but couldn't until I saw this issue. It's actually making some libraries not work in my case.


[camera] Reply already submitted [io.flutter.embedding.engine.dart.DartMessenger$Reply.reply]

Bug
A permission request was made from the Camera package and the "reply" seems to cause a crash sometimes.
I have several permission to ask in my application at app start but only this one cause the crash sometimes.
Steps to Reproduce
Unfortunately it happened only 2 times in my Android app so i have no idea about any pattern but i don't think this should crash anyway...
Expected results: The application should not crash.
Actual results:  The application crashes.

Logs
The crash is the following :
Caused by java.lang.IllegalStateException: Reply already submitted
       at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:155)
       at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:238)
       at io.flutter.plugins.camera.MethodCallHandlerImpl.instantiateCamera(MethodCallHandlerImpl.java:372)
       at io.flutter.plugins.camera.MethodCallHandlerImpl.lambda$onMethodCall$0$MethodCallHandlerImpl(MethodCallHandlerImpl.java:77)
       at io.flutter.plugins.camera.-$$Lambda$MethodCallHandlerImpl$kQOHgMggqzdMNqkzF-YukQrdRi8.onResult(:6)
       at io.flutter.plugins.camera.CameraPermissions.lambda$requestPermissions$0$CameraPermissions(CameraPermissions.java:42)
       at io.flutter.plugins.camera.-$$Lambda$CameraPermissions$IhmZy8WSUCwcg_h9O1MddE1ucIA.onResult(:4)
       at io.flutter.plugins.camera.CameraPermissions$CameraRequestPermissionsListener.onRequestPermissionsResult(CameraPermissions.java:97)
       at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:712)
       at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:412)
       at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onRequestPermissionsResult(FlutterActivityAndFragmentDelegate.java:627)
       at io.flutter.embedding.android.FlutterActivity.onRequestPermissionsResult(FlutterActivity.java:648)
       at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:8463)
       at android.app.Activity.dispatchActivityResult(Activity.java:8313)
       at android.app.ActivityThread.deliverResults(ActivityThread.java:5176)
       at android.app.ActivityThread.handleSendResult(ActivityThread.java:5224)
       at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:151)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:111)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2213)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:238)
       at android.app.ActivityThread.main(ActivityThread.java:7864)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:512)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:998)

[✓] Flutter (Channel stable, 2.2.3, on macOS 11.5.2 20G95 darwin-x64, locale fr-FR)
    • Flutter version 2.2.3 at /Users/foxtom/Desktop/flutter
    • Framework revision f4abaa0735 (7 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/foxtom/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at<EMAIL_ADDRESS>    • Java version OpenJDK Runtime Environment (build 1.8.0_282-bre_2021_01_20_16_06-b00)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.2

[✓] 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
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] Connected device (3 available)
    • CPH1931 (mobile) • ee9b32b5 • android-arm64  • Android 10 (API 29)
    • macOS (desktop)  • macos    • darwin-x64     • macOS 11.5.2 20G95 darwin-x64
    • Chrome (web)     • chrome   • web-javascript • Google Chrome 92.0.4515.159

! Doctor found issues in 1 category.

Hi @Tom3652
Thanks for filling the issue, this looks related to https://github.com/flutter/flutter/issues/76299

I have upgraded to flutter 2.5.0 and it seems to be fixed as i have now this error :
W/Activity( 9808): Can request only one set of permissions at a time
E/MethodChannel#plugins.flutter.io/camera( 9808): Failed to handle method call
E/MethodChannel#plugins.flutter.io/camera( 9808): java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.plugins.camera.CameraPermissions$CameraRequestPermissionsListener.onRequestPermissionsResult(CameraPermissions.java:92)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:713)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:412)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onRequestPermissionsResult(FlutterActivityAndFragmentDelegate.java:699)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.embedding.android.FlutterActivity.onRequestPermissionsResult(FlutterActivity.java:675)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at android.app.Activity.requestPermissions(Activity.java:5211)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at androidx.core.app.ActivityCompat.requestPermissions(ActivityCompat.java:516)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.plugins.camera.CameraPermissions.requestPermissions(CameraPermissions.java:45)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.plugins.camera.MethodCallHandlerImpl.onMethodCall(MethodCallHandlerImpl.java:78)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:84)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:865)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at android.os.MessageQueue.next(MessageQueue.java:336)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at android.os.Looper.loop(Looper.java:184)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at android.app.ActivityThread.main(ActivityThread.java:7864)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:512)
E/MethodChannel#plugins.flutter.io/camera( 9808): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:998)

That doesn't crash the app anymore for now ! :)
And it's true i am requesting several permissions without taking care of the order at app start...

Unfortunately not fixed in 2.5.0, i got the error again today along with the above.
Just writing to update compared to my last comment's first sentence.

This issue happens only for the first time when we open the application after fresh install and open the camera to capture the image. We can check this by clearing the app's data as well. It will throw an error.

This issue happens only for the first time when we open the application after fresh install and open the camera to capture the image. We can check this by clearing the app's data as well. It will throw an error.

I'm not sure if mine is the same issue, but it's definitely similar. It crashes with 100% reliability when using the camera in-app. Using the regular camera app and then just pointing the app to the picture does not cause any crash so it's something to do with the camera and not the image. Partial exception message follows:

FATAL EXCEPTION: main
Process: com.invoiceninja.app, PID: 11769
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=69, result=0, data=null} to activity {com.invoiceninja.app/com.invoiceninja.app.MainActivity}: java.lang.IllegalStateException: Reply already submitted
at android.app.ActivityThread.deliverResults(ActivityThread.java:5013)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5054)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7664)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.IllegalStateException: Reply already submitted
at io.flutter.embedding.engine.f.e$g.a(DartMessenger.java:4)
at i.a.c.a.k$a$a.a(MethodChannel.java:1)
at m.a.a.a.a.b.a(ImageCropperDelegate.java:6)
at io.flutter.embedding.engine.d$c.g(FlutterEngineConnectionRegistry.java:2)
at io.flutter.embedding.engine.d.a(FlutterEngineConnectionRegistry.java:3)
at io.flutter.embedding.android.g.o(FlutterActivityAndFragmentDelegate.java:4)
at io.flutter.embedding.android.k.H0(FlutterFragment.java:2)
at io.flutter.embedding.android.l.onActivityResult(FlutterFragmentActivity.java:2)
at android.app.Activity.dispatchActivityResult(Activity.java:8304)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5006)
... 11 more

#117623 I guess the root causes are the same.


[indexer] add MatchNone struct filter to get_owned_objects

Description
Describe the changes or additions included in this PR.
Test Plan
How did you test the new or updated feature?

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] protocol change
[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

looks great other than warnings and merge conflicts.

@gegaowp Please take a look at this one #14799, which does the same thing but with to_canonical_string changes, and thus no merge conflicts. I'm keeping this PR in case we want a version that works agains the (current) db that doesn't have canonical string changes.

looking now, I made a read branch https://github.com/MystenLabs/sui/tree/v2-read-branch and deployed it to the testing reader, feel free to close this one.


Include submissionDate and submitterName from Submissions table

These metadata fields are available in the Submissions table from the OData field. They're not listed in the fields endpoint which only includes fields from the form definition but you can count on them being there for each Submission.

Thanks for pointing this out! Should be all taken care of now 😄

Thanks for pointing this out! Should be all taken care of now 😄

Woohoo!

Woohoo!


Use relative time while computing the background

I run into an issue with background estimation, which I tracked down to using untriggered TTE. The root of the issue was that I did not subtract the trigger time or some other form of t0 close to the time range of the data. In my case, this caused the times to be of the order ~1e8. When you fit it with a polynomial of order e.g. 2, differences in the coefficients of order ~1e-16 start to matter, and this is already within floating point precision.
These plots correspond to the same data, the only difference is subtracting t0 before the background calculation.

Although this can be solved on the user side by always subtracting t0, I instead add this fix to the background calculation itself. I think this is less error prone, and will save time to other users that are puzzled like I was from this unexpected behavior.
I also modified the function interpolate() so that the user can still input the regular times. All other methods use the relative time, but these start with _, so presumably the user shouldn't access them anyway.
This is only for the binned Polynomial background fit. The same fix might also be needed for unbinned classes and for other binned classes in the future.

TZERO should be handled by the data class. This way the floating point significant digits will be uniform throughout the life of the data object and all of the various analysis performed.
I recommend this to be handled uniformly by the library with the defaults being tzero = tstart for non-triggered data.

This issue remains open until the fix is implemented in the data classes.


Added functional tests

Codecov Report

Merging #53 into master will increase coverage by 20.43%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master      #53       +/-   ##
===========================================
+ Coverage   25.54%   45.98%   +20.43%
===========================================
  Files          14       14
  Lines         274      274
===========================================
+ Hits           70      126       +56
+ Misses        204      148       -56

Impacted Files
Coverage Δ

lib/kite/core.rb
92.85% <0%> (+14.28%)
:arrow_up:

lib/kite/base.rb
100% <0%> (+25%)
:arrow_up:

lib/kite/cloud.rb
100% <0%> (+30.76%)
:arrow_up:

lib/kite/helpers.rb
94.59% <0%> (+43.24%)
:arrow_up:

lib/kite/generate.rb
91.66% <0%> (+54.16%)
:arrow_up:

lib/kite/render.rb
92.85% <0%> (+71.42%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d4d761b...ee1fc0b. Read the comment docs.


Fix javadoc link to include module name

This PR fixes logback AsyncAppender javadoc link in the documentation.
Fixes https://github.com/apache/pekko/issues/1291

Thanks @c00ler, Do you know if the website for logback has been migrated or if it was mistake changed due to a certain iteration? I created an issue but haven't received any reply. The slf4j under the same domain doesn't have a similar URL path.

Thanks @c00ler, Do you know if the website for logback has been migrated or if it was mistake changed due to a certain iteration? I created an issue but haven't received any reply. The slf4j under the same domain doesn't have a similar URL path.

@Roiocam I believe that the new url is an intentional and permanent change. The url is pointing to the latest javadoc that corresponds to version 1.5.x of logback. The latest version is using java modules (see module-info.java). The module name ch.qos.logback.classic just happens to be the same as the package and this is why in the url it looks like a duplicate, but its different. It looks like that logback 1.5.x is using Java 21 toolchain to create javadoc and the new javadoc layout includes information about modules. I've checked javadocs for older logback versions and the latest version that uses the old layout (without modules) is 1.3.14 (latest version from 1.3.x branch).


[MacOS] Error when running pod install

Steps to Reproduce
This issue occurs when adding MacOS to an existing project.

Execute flutter create .
Run flutter run -d macos

Logs
➜ flutter run -d macos
Launching lib/main.dart on macOS in debug mode...
Running pod install...                                           1,287ms
CocoaPods' output:
↳
      Preparing

    Analyzing dependencies

    Inspecting targets to integrate
      Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

    Fetching external sources
    -> Fetching podspec for `FlutterMacOS` from `Flutter/ephemeral/.symlinks/flutter/darwin-x64`
    -> Fetching podspec for `<project_name>` from `Flutter/ephemeral/.symlinks/plugins/<project_name>/macos`
    [!] No podspec found for `<project_name>` in `Flutter/ephemeral/.symlinks/plugins/<project_name>/macos`

    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/external_sources/path_source.rb:14:in `block in fetch'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:64:in `section'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/external_sources/path_source.rb:11:in `fetch'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:989:in `fetch_external_source'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:968:in `block (2 levels) in fetch_external_sources'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:967:in `each'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:967:in `block in fetch_external_sources'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:64:in `section'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:966:in `fetch_external_sources'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:117:in `analyze'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:414:in `analyze'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:239:in `block in resolve_dependencies'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:64:in `section'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:238:in `resolve_dependencies'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:160:in `install!'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/command/install.rb:52:in `run'
    /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/lib/cocoapods/command.rb:52:in `run'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/gems/cocoapods-1.10.0/bin/pod:55:in `<top (required)>'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/bin/pod:23:in `load'
    /usr/local/Cellar/cocoapods/1.10.0/libexec/bin/pod:23:in `<main>'

Error output from CocoaPods:
↳
    Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1

Flutter Doctor
➜ flutter doctor -v
[✓] Flutter (Channel dev, 1.24.0-1.0.pre, on macOS 11.0 20A5395g darwin-x64, locale en-TT)
    • Flutter version 1.24.0-1.0.pre at /usr/local/Caskroom/flutter/latest/flutter
    • Framework revision 12bea61c29 (8 days ago), 2020-10-14 15:57:04 -0700
    • Engine revision 069b3cf8f0
    • Dart version 2.11.0 (build 2.11.0-218.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/nash/Library/Android/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /Users/nash/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.10.0

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

[✓] Android Studio (version 4.1)
    • 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 1.8.0_242-release-1644-b3-6222593)

[✓] Android Studio (version 4.0)
    • Android Studio at /Users/nash/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6626763/Android Studio.app/Contents
    • Flutter plugin version 48.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Ultimate Edition (version 2020.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin installed
    • Dart plugin version 202.7319.5

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

[✓] Connected device (3 available)
    • macOS (desktop)  • macos      • darwin-x64     • macOS 11.0 20A5395g darwin-x64
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome 86.0.4240.111

• No issues found!

-> Fetching podspec for `<project_name>` from `Flutter/ephemeral/.symlinks/plugins/<project_name>/macos`

[!] No podspec found for <project_name> in Flutter/ephemeral/.symlinks/plugins/<project_name>/macos

That's a very unusual name for a plugin. Did you accidentally put in a placeholder somewhere in place of a real plugin name?
Please provide your pubspec.yaml, and if that's a real plugin, its podspec (because if it is a plugin, it appears to be malformed).

No, the project name is under NDA so I replaced the name with <project_name> as a placeholder :)
On 22 Oct 2020, 9:21 PM -0400, stuartmorgan<EMAIL_ADDRESS>wrote:

-> Fetching podspec for <project_name> from Flutter/ephemeral/.symlinks/plugins/<project_name>/macos
[!] No podspec found for <project_name> in Flutter/ephemeral/.symlinks/plugins/<project_name>/macos
That's a very unusual name for a plugin. Did you accidentally put in a placeholder somewhere in place of a real plugin name?
Please provide your pubspec.yaml, and if that's a real plugin, its podspec (because if it is a plugin, it appears to be malformed).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hey @Nash0x7E2
I was able to add, compile and run macos support for an existing project without any issues. I am on latest dev.

log
dhs@Dhss-MacBook-Pro macdesk % flutter create .
Recreating project ....
Running "flutter pub get" in macdesk...                            989ms
Wrote 3 files.

All done!
[✓] Flutter: is fully installed. (Channel dev, 1.24.0-1.0.pre, on Mac OS X
    10.15.4 19E2269 darwin-x64, locale en-IN)
[✓] Android toolchain - develop for Android devices: is fully installed.
    (Android SDK version 30.0.0)
[✓] Xcode - develop for iOS and macOS: is fully installed.
Building macOS application...
Waiting for macOS to report its views...                             6ms
Syncing files to device macOS...                                    61ms

flutter doctor -v
[✓] Flutter (Channel dev, 1.24.0-1.0.pre, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-IN)
    • Flutter version 1.24.0-1.0.pre at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 12bea61c29 (8 days ago), 2020-10-14 15:57:04 -0700
    • Engine revision 069b3cf8f0
    • Dart version 2.11.0 (build 2.11.0-218.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • CocoaPods version 1.9.3

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

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (4 available)
    • SM A260G (mobile) • 5200763ebcfa861f • android-arm    • Android 8.1.0 (API
      27)
    • macOS (desktop)   • macos            • darwin-x64     • Mac OS X 10.15.4
      19E2269 darwin-x64
    • Web Server (web)  • web-server       • web-javascript • Flutter Tools
    • Chrome (web)      • chrome           • web-javascript • Google Chrome
      86.0.4240.111

• No issues found!

Can you provide pubspec.yaml and a minimal code sample of your existing project for which you are trying to add macos support ?

No, the project name is under NDA so I replaced the name with <project_name> as a placeholder :)

Well, as I said, the error message is telling you that the plugin is malformed; the podspec is either missing or invalid (e.g., named incorrectly). It's impossible for anyone without access to the plugin to figure out what exactly is wrong with it.
Closing since this is an issue in a third-party plugin, not in Flutter.

Thank you for the point in the right direction! I was able to fix this after modifying the podspec.

I write a plugin and faced the same issue, and I found that I need to create macos directory in main plugin directory of federated plugin using flutter create .
Maybe other platform like linux, windows need too.

I need to create macos directory in main plugin directory of federated plugin

If your plugin is federated, only the macOS implementation package needs a macos directory. If you found that you had to add one to the app-facing plugin, even though that's not where the macOS implementation lives, something was wrong with your plugin metadata.
That doesn't sound related to this issue though.

@stuartmorgan Thanks 👍, my mistake, I create both macos in main plugin directory and macOS implementation plugin directory, and I mixed them.
You are right, I should delete macos in main plugin directory.


module api formatting fixes

Minor typos and formatting fixes for Module API.
@madjam @piiswrong @mli Please review and merge.

Are you sure this would render better?

I built it locally and checked. Looks good.

ok. Could you put a space after every #

@piiswrong Done.


Resampling: support different coverage for target and source

Hello everyone,
I have a need to resample (xarray) grids, and through this thread found this neat package, which does most of what I need!
However, for my use case, the source and target grids don't line up exactly most of the time. So I had a look through the source, and it seemed fairly straightforward to implement, by offsetting the x and y based on the origins of the source and target grids. They just need some spatial reference information.
I've chosen to represent that information via an Affine transform, since it's consistent with rasterio, while not super intuitive, at least it's "correct"  from an algebra point of view. This also matches nicely with the transform metadata that xarray.open_rasterio() returns.
It looks like you already had a very similar idea with the geocs? I've gone ahead to send this pull request since I feel it's easier to discuss that way. (For example, it really needs a few more tests.)
It should also work for both positive and negative dx and/or dy, provided they have the same sign in the source and target.
For now, I've implemented it just for the downsampling, since I still have a question regarding the upsampling that I'll post in the issues shortly.

Hi @Huite, again thanks for this. Unfortunately, my time is currently very limited, I promise to review next week, stay tuned!

No worries, I can empathize with your time being limited!


ImageProgressive.swift:121 Crash

Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

[x] I have read the wiki page and cheat sheet, but there is no information I need.
[x] I have searched in existing issues, but did not find a same one.
[x] I want to report a problem instead of asking a question. It'd better to use kingfisher tag in Stack Overflow to ask a question.

Issue Description
We're using Kingfisher 7.10.2 via Carthage.
When loading multiple images using Swift concurrency, sometimes we see a crash originating from ImageProgressive.swift:121
What
We have this code:
Task {
  let images = await withTaskGroup(of: [UUID: UIImage].self) { group in
      var results = [UUID: UIImage]()

      for entry in imageTemplates { // `imageTemplates` is of type `[(uuid: UUID, url: URL)]`
          group.addTask {
              await withCheckedContinuation { continuation in
                  KingfisherManager.shared.retrieveImage(
                      with: .network(entry.url),
                      options: kingfisherHeadersOptions, // some headers so we can load images from our CDN
                      progressBlock: nil,
                      downloadTaskUpdated: nil
                  ) { [weak self] result in
                      guard let self else {
                          return
                      }
                      switch result {
                      case let .success(imageResult):
                          continuation.resume(returning: [entry.uuid: imageResult])
                      case let .failure(error):
                          // Handle error
                      }
                  }
              }
          }
      }

      for await dict in group {
          results.merge(dict) { $1 }
      }

      return results
  }

  // Do something with `images`
}

Our aim is to concurrently load multiple images and keep the ordering in a given array. The code works almost always. Sometimes we see the loading fail due to various reasons but that's not the topic of this issue.
We see a crash originating from this part of the code. It looks like this:

This looks like #1449 but that issue is quite old, Swift Concurrency wasn't available back then. Perhaps it's somewhat related?
Reproduce
Unfortunately we are not able to reproduce the issue.

@b-onc  i don't know if it will work try this code
Task {
let images = await withTaskGroup(of: [UUID: UIImage?].self) { group in
var results = UUID: UIImage?
    for entry in imageTemplates { // Assuming `imageTemplates` is of type `[(uuid: UUID, url: URL)]`
        group.addTask {
            do {
                return try await withCheckedThrowingContinuation { continuation in
                    KingfisherManager.shared.retrieveImage(
                        with: .network(entry.url),
                        options: kingfisherHeadersOptions, // Headers for CDN
                        progressBlock: nil,
                        downloadTaskUpdated: nil
                    ) { result in
                        switch result {
                        case .success(let imageResult):
                            continuation.resume(returning: [entry.uuid: imageResult.image])
                        case .failure(let error):
                            print("Error loading image: \(error)")
                            continuation.resume(returning: [entry.uuid: nil]) // Consider how you want to handle errors.
                        }
                    }
                }
            } catch {
                print("Encountered error: \(error)")
                return [entry.uuid: nil] // Or handle differently as needed.
            }
        }
    }

    for await dict in group {
        results.merge(dict) { $1 }
    }

    return results.compactMapValues { $0 } // Remove nil values if they are not needed.
}

// Do something with `images`

}

Task {
let images = await withTaskGroup(of: [UUID: UIImage?].self) { group in
var results = UUID: UIImage?
    for entry in imageTemplates { // Assuming `imageTemplates` is of type `[(uuid: UUID, url: URL)]`
        group.addTask {
            do {
                return try await withCheckedThrowingContinuation { continuation in
                    KingfisherManager.shared.retrieveImage(
                        with: .network(entry.url),
                        options: kingfisherHeadersOptions, // Headers for CDN
                        progressBlock: nil,
                        downloadTaskUpdated: nil
                    ) { result in
                        switch result {
                        case .success(let imageResult):
                            continuation.resume(returning: [entry.uuid: imageResult.image])
                        case .failure(let error):
                            print("Error loading image: \(error)")
                            continuation.resume(returning: [entry.uuid: nil]) // Consider how you want to handle errors.
                        }
                    }
                }
            } catch {
                print("Encountered error: \(error)")
                return [entry.uuid: nil] // Or handle differently as needed.
            }
        }
    }

    for await dict in group {
        results.merge(dict) { $1 }
    }

    return results.compactMapValues { $0 } // Remove nil values if they are not needed.
}

// Do something with `images`

}
@b-onc  try this i don't know if it will work

We don't have a problem with error handling


chore: correct typos docs

I reviewed the entire repository, no more typos found in docs.
Hope this helps streamline the project!
Best regards,
Bilogweb3

@afck check pls , thanks !


Preventing mobs from spawning.

I've narrowed down a mob spawning glitch that prevents mobs from spawning to the Multiverse-Core plugin. You can see the post I had here: http://forums.bukkit.org/threads/the-bukkit-consulting-firm-solving-all-your-bukkit-related-challenges.33670/page-86. It explains the problem.

I still need help.

Having the same issue as well.


Use chrono instead of time.

The crate time does not build on Rust 1.80 for versions smaller than 0.3.36: https://github.com/time-rs/time/issues/681
Apart from the fact that I do not like packages stopping to build when updating the compiler, updating time to 0.3.36 would require raising MSRV to 1.67, which I do not like.
I found that the chrono crate has a lower MSRV, it works fine on all compiler versions I tried, and using it is considerably simpler for my use case, so this PR replaces time with chrono.
A small side effect of this is that jaq outputs fractional seconds with 6 digits instead of 9 before.

Apart from the fact that I do not like packages stopping to build when updating the compiler

This is not the fault of time.

updating time to 0.3.36 would require raising MSRV to 1.67, which I do not like.

Why do you need an MSRV that is more than 18 months old? Very few crates have policies that extend that far back (with chrono not having a policy at all, mind you).

Apart from the fact that I do not like packages stopping to build when updating the compiler

This is not the fault of time.

I'm sorry, I was indeed under the impression that this was the fault of time. Rereading your post (https://github.com/time-rs/time/issues/681#issuecomment-2143130755), I see that this does not seem to be the case after all. I hope that you accept my apology.
Still, I do not understand how adding a new trait implementation to the standard library could break your code. I thought that Rust's coherence rules prevent such breakage? If you can enlighten me on this point, I would be very interested.

updating time to 0.3.36 would require raising MSRV to 1.67, which I do not like.

Why do you need an MSRV that is more than 18 months old? Very few crates have policies that extend that far back (with chrono not having a policy at all, mind you).

A colleague of mine who was not into Rust at that time once tried to install one of my Rust programs on Debian and failed because his system-installed compiler was too old. I just checked now, and the rustc shipped with stable Debian is 1.63. So I'm trying to preserve MSRV as long as it is not too much effort.

Still, I do not understand how adding a new trait implementation to the standard library could break your code. I thought that Rust's coherence rules prevent such breakage? If you can enlighten me on this point, I would be very interested.

Essentially, the code I had written relied on the fact that the return type of .into() could be inferred. Type inference is something explicitly permitted as breakage. With the addition of IntoIterator for Box<[T]>, this was no longer the case. This specific instance of breakage was caught months ago, which is why a patch was merged and released in April.

A colleague of mine who was not into Rust at that time once tried to install one of my Rust programs on Debian and failed because his system-installed compiler was too old.

I honestly don't understand why they even bother shipping a version so old (it was released two full years ago). rustup is always the recommended way to do anything related to Rust, in my opinion.

I honestly don't understand why they even bother shipping a version so old (it was released two full years ago). rustup is always the recommended way to do anything related to Rust, in my opinion.

I also use rustup, but from my own experience with people who are just trying Rust, the majority first tries to install a Rust toolchain using their package manager. And that's only one case of people that I know about who might be stuck with an older Rust toolchain. There might be others. Keeping MSRV low means to cater to the needs of these.

Essentially, the code I had written relied on the fact that the return type of .into() could be inferred. Type inference is something explicitly permitted as breakage. With the addition of IntoIterator for Box<[T]>, this was no longer the case. This specific instance of breakage was caught months ago, which is why a patch was merged and released in April.

Thanks for your explanation, @jhpratt!


Move sidebar toggle out of the top menu

This really doesn't belong here.

I think this is a bit more obvious.


Fix infinite loop in asm with 3 colons and a variable

This fixes an infinite compile loop when doing asm("" ::: ""(var)). The until @token.type == :")" loop never gets exited.

Thanks @r00ster91 . Beware of using asm too much 😸


Add mysql support

Continues https://github.com/elixir-lang/ecto/pull/383
TODO

[x] Update documentation
[x] Add missing ddl_exists for indexes
[ ] Raise on unsupported types and clauses

[ ] returning (needed?)
[ ] concurrently (needed?)
[x] array (done)

[x] Fix the ALTER TABLE syntax
[x] Fix casting
[ ] Add unit tests for the unsupported clauses and types

[ ] returning
[ ] concurrently
[x] array

[ ] Make the missing integration tests pass (Depends on https://github.com/liveforeverx/mariaex/issues/10)

[ ] lock
[ ] migration
[ ] repo
[ ] type
[ ] preload
[ ] sql_escape
[ ] transaction

[x] Remove the remove :ok -> {:ok, %{}} on the query function. (Depends on https://github.com/liveforeverx/mariaex/issues/14)

obs

MySQL doesn't have support to UUID type, so it will use BINARY(16) instead
MySQL doesn't support DDL transactions
This PR is work in progress. I will update as I get more stuff done :)

@josevalim thanks for helping :heart:

Great job! I have added some comments!

@josevalim, just updated the PR with some of your suggestion. Also I updated the SQL syntax to use the ? as the query parameter. See: https://github.com/liveforeverx/mariaex/commit/b3e4b53c64c838aa7cfd2f78826d6f87f721f7f2
Now I'm stuck when running the integration tests. The only thing I could track is that it stop working right after the first insert clause.
ecto (add-mysql-support) $ MIX_ENV=mysql mix test
** (EXIT from #PID<0.47.0>) {:ecto, :no_connection}

I'll try to take a look on it tomorrow. Thanks!

@laurocaetano I think this is a timeout issue described here:
https://github.com/liveforeverx/mariaex/issues/11
I will send a pull request to mariaex soon. :)

It is not a timeout issue. Basically Mariaex is unable to encode datetime parameters and it is failing hard because of that. It can only encode integers, floats and nulls for now: You could try adding new parameters here:
https://github.com/liveforeverx/mariaex/blob/master/lib/mariaex/messages.ex#L222-L229
You will need to look for MySQL manuals on how to encode them. Ping me if you'd would like to do one of those together!

@josevalim thanks for the feedback. I haven't had the time to take a look on these issues, but I will spend some time later today. Thanks :)

:cake: :heart:


Refactor expression compiler

Codecov Report

Merging #932 (eb99d39) into main (4d73746) will decrease coverage by 0.00%.
The diff coverage is 93.54%.

@@            Coverage Diff             @@
##             main     #932      +/-   ##
==========================================
- Coverage   84.29%   84.29%   -0.01%
==========================================
  Files         387      387
  Lines       40862    40852      -10
==========================================
- Hits        34446    34436      -10
  Misses       6416     6416

Impacted Files
Coverage Δ

lib/hir-mir/src/expression_compiler.rs
74.00% <93.54%> (-0.18%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4d73746...eb99d39. Read the comment docs.


The actual behavior differs from the doc (IP address used)

Let me check the IP address used to communicate with the backend pool.
According to this doc, If the backend pool contains an internally resolvable FQDN or a private IP address, the application gateway routes the request to the backend server by using its instance private IP addresses.
Also, another article says like this, "Application Gateway uses one private IP address per instance, plus another private IP address if a private front-end IP is configured."
But, it seems that App GW uses IP addresses over the number of instances in my env.
An overview of my environment
[Clients]---[Public IP]---[App GW (1 instance)]---[Internal Azure Load Balancer]---[NGINX on AKS pods]
Configuration
% az network application-gateway show -g my-rg -n agw-demoapp -o json --query '{sku:sku, autoscaleConfiguration:autoscaleConfiguration, publicIpAddress:frontendIpConfigurations[].publicIpAddress, privateIpAddress:frontendIpConfigurations[].privateIpAddress, backendAddresses:backendAddressPools[].backendAddresses, subnetId:gatewayIpConfigurations[].subnet.id}'
{
  "autoscaleConfiguration": null,
  "backendAddresses": [
    [
      {
        "fqdn": null,
        "ipAddress": "<IP_ADDRESS>"
      }
    ]
  ],
  "privateIpAddress": [],
  "publicIpAddress": [
    {
      "id": "/subscriptions/my-sub/resourceGroups/my-rg/providers/Microsoft.Network/publicIPAddresses/pip-demoapp",
      "resourceGroup": "my-rg"
    }
  ],
  "sku": {
    "capacity": 1,
    "name": "Standard_v2",
    "tier": "Standard_v2"
  },
  "subnetId": [
    "/subscriptions/my-sub/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/vnet-default/subnets/subnet-appgw"
  ]
}

% az network  vnet subnet show --ids "/subscriptions/my-sub/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/vnet-default/subnets/subnet-appgw" -o json --query '{addressPrefix:addressPrefix}'
{
  "addressPrefix": "<IP_ADDRESS>/20"
}

Logs of NGINX
<IP_ADDRESS> - - [10/Jun/2021:23:20:00 +0000] "GET /api/info HTTP/1.1" 200 360 "https://mysite/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.41" 787 0.000 [podinfo-podinfo-http] [] <IP_ADDRESS>:9898 360 0.000 200 2434d53c921a18088ab4bbff201b0dd5
<IP_ADDRESS> - - [10/Jun/2021:23:20:00 +0000] "GET /api/info HTTP/1.1" 200 360 "https://mysite/" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 EdgiOS/46.3.20 Mobile/15E148 Safari/605.1.15" 606 0.002 [podinfo-podinfo-http] [] <IP_ADDRESS>:9898 360 0.000 200 d794207b12804a4383f4506f6bb14783
<IP_ADDRESS> - - [10/Jun/2021:23:20:03 +0000] "GET /api/info HTTP/1.1" 200 360 "https://mysite/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.41" 787 0.001 [podinfo-podinfo-http] [] <IP_ADDRESS>:9898 360 0.000 200 24e581c4174d1ae4713ca31fbe3964c4
<IP_ADDRESS> - - [10/Jun/2021:23:20:03 +0000] "GET /api/info HTTP/1.1" 200 360 "https://mysite/" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 EdgiOS/46.3.20 Mobile/15E148 Safari/605.1.15" 606 0.002 [podinfo-podinfo-http] [] <IP_ADDRESS>:9898 360 0.004 200 03f51a6c4fa9241cd87de3e3bcafd1a7

The number of App GW instances is 1. But it seems coming from 2 IP addresses (<IP_ADDRESS> and <IP_ADDRESS>).  Is this the correct behavior? Is it consistent with the document?

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

ID: 0373061e-623f-f6ca-7d42-e32ea0299c66
Version Independent ID: 20930963-7740-a05e-8743-2210404675da
Content: How an application gateway works
Content Source: articles/application-gateway/how-application-gateway-works.md
Service: application-gateway
GitHub Login: @abshamsft
Microsoft Alias: absha

@ToruMakabe Thank you for your query . We will investigate and update the thread.

@ToruMakabe Azure Application Gateway V2 SKU is always deployed in a way that will maintain high availability (requiring 2 instances), even if the instance count is manually configured to 1. This is stated (indirectly) on the Application Gateway V2 SKU autoscaling & high availability section.

@TravisCragg-MSFT Thanks. I got the background. The followings are my requests to the doc.

Specifying capacity as "1" to be invalid. This may be a service specification but should be documented directly as it is confusing.
It seems we cannot get the actual number of instances from Azure Management API or CLI. Should we get it from Azure Monitor Metrics when we need it?  If so, it is useful to state this way in the doc.
This page contains very important information related to App GW v2, not only Autoscaling and Zone-redundant, but also capacity, pricing, and more. Perhaps many users look at the title and decide that they don't have to look at this page. Could you please match the title of this page with the content?

@ToruMakabe Thank you for outlining what to add to the docs! I have assigned the issue to the content author to evaluate and update as appropriate.

v2 overview and autoscaling info split out.
#please-close


Gracefully handle keyboard and mouse interaction

So far, we have been using default browser behavior with keyboard focus and mouse interaction. When using a mouse after interacting with a keyboard, some browsers blur focus, others do not.  For those that do not, the sim is susceptible to multi-input issues.  Scenery should manage this so that behavior is platform consistent and we have confidence that interaction with a mouse and a keyboard at the same time does not cause problems.
There are notes in the IDRC meeting on 11/10/2017 on how focus should be handled in these cases:

Focus highlight should go away, but active element should be tracked so that when keyboard interaction is resumed, the next/previous element can be focused when pressing “tab”.

The above commit is a stab at this. When we receive a down event, we look at the pointer's trail and determine if it has accessible content. If it does, we go back up the trail looking for the first focusable node. This node is stored, and will receive keyboard navigation if tab navigation is resumed after this interaction. I gave it a test in Chrome, Safari, and FF. @zepumph would you mind reviewing? In particular, I am wondering  if there is a better place for the changes made to Input.downEvent.

@phet-steele just notified me that in Firefox, clicking in the view when an element has focus and then pressing tab will  focus the next focusable element, not the element that had focus on click.

@jessegreenberg, regarding

pressing tab will focus the next focusable element, not the element that had focus on click

This is the correct default browser behaviour. The Tab key moves focus to the next focusable item.
If focus is placed virtually on an element in the PDOM  when there is a input.downevent, pressing the Tab key would by default place the focus highlight on the next focusable item in the sim.

Just to clarify, that is also true after focus highlight disappears?

@jessegreenberg, on a typical content-based website where the focus outline is always indicated, a mouse click on an interactive element would not make the focus highlight disappear. General focus (created either by a click, a pointer, a touch event, or the keyboard (e.g., Tab key or screen reader command)) would just indicate where focus actually is when on an interactive element.
Our situation is different in two ways:

We have a very strong pink focus highlight to follow and indicate focus changes made with the keyboard, and even sometimes to indicate different stages of keyboard interaction (i.e. grabbed/released).
Our actual keyboard focusable interactive items in the PDOM are off to the side, making it impossible to click on them directly with a mouse.

If mouse interactions have no visual focus style associated with them, then it seems we have by design or by accident made mouse interactions remove any previously set visual focus made with a keyboard interaction.
I'm not sure what the issue is:

Is the issue that FF is working differently than the other browsers?
Is the issue that switching between mouse and keyboard events is visually not intuitive?
Or are you asking if visual focus should be placed on the element that had focus when keyboard action is resumed with a Tab key interaction (after a mouse interaction made the focus highlight disappear) rather than placing the visual focus on the next focusable item?

@jessegreenberg, have we gathered any articles or resources about this issue?
I have been reading a few, so I'm just going to post a few here so we have them. I'm not entirely sure what the best step is for us.

Jeremy Fields: https://www.viget.com/articles/managing-focus-styles-without-breaking-accessibility

first created track focus: https://github.com/ten1seven/track-focus
then created what input?: https://github.com/ten1seven/what-input

The above techniques are built on the idea of watch for

the mousedown and keydown events and saves which event happened and when it happened as data attributes. The script then watches for the focusin and focusout events and uses the last device used to add a style to the element receiving focus.

There is some code about managing focus by Rob Dobson that might be useful? Not sure, though.

https://gist.github.com/robdodson/7aabd62083d0bf66b20c431249379981

There are several articles about not removing focus outlines in general. I'm not sure the apply to interactive sims.

Thanks @terracoda this is really helpful information. The question I am wondering about is the last item in your list.

Or are you asking if visual focus should be placed on the element that had focus when keyboard action is resumed with a Tab key interaction (after a mouse interaction made the focus highlight disappear) rather than placing the visual focus on the next focusable item?

Right now, when tab navigation resumes we are placing focus on the last item that was clicked with a mouse (if it was focusable), though it is not working yet in FF.

@jessegreenberg, I think, in our case, it is reasonable to place the focus highlight (upon restarting keyboard navigation) on the last thing that was clicked on with a mouse (if it was focusable). In most of our cases there are not a huge number of things that are focusable, and without magnification all content is generally above the fold and in view.
It might be easier, however, to get it working consistently using the next focusable item as the restarting point.

@jonathanolson and I found that navigating through items with the keyboard, and then clicking, restarted the tab order.

@jessegreenberg I was thinking about implementing some sort of function that will keep track any time something is blurred as a result of a non interactive element being focused (like the document body when you click on a background node). Then somehow when you keyboard navigate next, that it would remember your previous placement. Do you know if this is possible? Am I on the right track?

@zepumph that could be one way to go. Right now the behavior is such that

If you click on something focusable, focus is restored on that element after pressing "tab"
If you click anywhere else, focus will start at the beginning of the document next time you press tab.

Recommendation in https://github.com/phetsims/scenery/issues/713#issuecomment-392984154 sounds possible. I think we check with @terracoda and @emily-phet about the best behavior.

Thanks, yes, looks like there is some weird stuff goin on with the green balloon right now. Moving to an issue in BASE.

@jessegreenberg, in a previous comment https://github.com/phetsims/scenery/issues/713#issuecomment-349665460, I said something incorrect or at least miss-leading. I said:

on a typical content-based website where the focus outline is always indicated, a mouse click on an interactive element would not make the focus highlight disappear.

Keyboard focus style would and does disappear if a user clicks on an element outside of the one that has focus. Clicking on the same interactive element, or on another interactive element would normally result in a switch to an active style. If the design is done well, that active style meshes nicely with the focus style.
If you look at the Keyboard Accessibility  article on WebAIM and switch between using the Tab key and the mouse, keyboard focus highlights will disappear when clicking on the page, and pressing the Tab key after making a click moves focus to the next focusable item from where the click was made.
It sounds like @zepumph's solution would do something like that, or that your previous solution was doing something similar. However, your previous solution went to the last item that had focus, rather than the next focusable item.
Personally, I think placing focus on the next item makes more sense than the last item that had focus, at least for screen reader users. A user could click on something, hear where they are in the PDOM and then press Tab thinking they will go forward in the document.

Is what @zepumph describing similar to what was described in Jeremy Field's article,

watch the body for the mousedown and keydown events and save which event happened and when it happened as data attributes [or in some PhET way]. ... [T]hen watch for the focusin and focusout events and use the last device used [keyboard or mouse?] to [decide whether to add a [focus] style to the element [in the PDOM] receiving focus [and the pink focus style on its corresponding visual node].

[Bracketed text by me]

@jessegreenberg and @zepumph, I am sure you are already thinking about this, or at least @jessegreenberg is, but when we make the PDOM touch accessible, the PDOM will also be mouse click accessible, and focus highlights may become more graceful from that alignment.

@zepumph, what you describe in https://github.com/phetsims/scenery/issues/713#issuecomment-392984154, is what we need. It is a way of remembering the previous placement (of the mouse), then I think it makes sense to go to the next focusable item from where the user clicked.
Do you have an idea of how long this would take?

I do not! I want to sum up all of the above comments as best I can to make sure that we are on the same page.

It is not good to come with our own "best practice" similar to lots of things in a11y, there is a method that users expect, and we should adhere to that.
In general web dev:

when you click on a focusable item, the focus doesn't go away (nor the highlight)
when you click somewhere random, and then tab navigate, it goes to the next focusable item from where you clicked.

We currently aren't keeping the focus highlight when you click on a sim, but we are keeping track if you click on a focusable item, such that tab nav starts from there.
@terracoda you are recommending that we implement something where we keep track of where we click, and then go the the "next focusable item" from that pointer (if it clicked on a non focusable item), but I'm unsure how that would work. in the html it is all just one svg, so it is hard to map what focusable item is next after an x,y mouse click somewhere in the scene graph.
Further more, there is no heiristic that we could apply to this problem that couldn't be broken by manipulating the focus order. Like if we tried to say (the focusable items in the top left are first, and in the bottom right are last). For example, it could be beneficial for the last item in the focusable to be in the top of the sim, in which case how do we map a mouse click location to what to focus next?
I'm starting to think that our current algorithm is closer to the general web dev guidelines than anything we have spoken about implementing. If you have a screen reader on, and you click somewhere in the svg that isn't focusable, then it will say in document body or something like that, and the focus will start at the first focusable element in that document's body. Isn't that what you were recommending in here @terracoda?

Personally, I think placing focus on the next item makes more sense than the last item that had focus, at least for screen reader users. A user could click on something, hear where they are in the PDOM and then press Tab thinking they will go forward in the document.

I will add that I think our sim's focusing is pretty similar to what I see in simple forms, when I click away and then tab, it goes to the first item (even if I click in between the email and message boxes: https://jsfiddle.net/api/mdn/

@zepumph, I'll just add to comment

In general web dev:

when you click on a focusable item, the focus style does go away (I mentioned I was wrong above)**. It usually changes to an active style.
when you click somewhere random, and then Tab navigate, it goes to the next focusable item from where you clicked. I think that is the ideal situation.

In general, keyboard focus is not handled well by default.
Imagine you are filling out a long web form and you use the keyboard out of need - the mouse is difficult for you. You are near the end, and you relunctantly use your mouse on a datepicker because you think it will be easier. You miss and click on something unclickable. You then press the Tab key to refind your focus and it takes you to the top of the form.
Is the top of the form, the best place for you to be?
Note our sims are short (all visible when not maginified), so it is less of an issue for us, and I realize we have a strange case, a hidden PDOM. I am not sure what is possible, but I liked what you were saying in https://github.com/phetsims/scenery/issues/713#issuecomment-392984154

I have heard surprise comments from blind users, like, "Oh, my focus went to the top." And even, "Oh cool, my focus went to the Play Area."
Both focus changes were unexpected, but had different impacts on different users. Unfortunately, I don't know what caused the change in focus. These are comments from two of my last 5 interviews.

That's cool and good to know! In general it would be nice to know what was causing the behavior (that they liked or didn't), as I'm unsure about what users expect in this department. We can talk about this more at the dev meeting if it is important.

@zepumph, when I click and then tab in that sample form in https://github.com/phetsims/scenery/issues/713#issuecomment-393309425, focus goes to the next form element from where I clicked. I am using Firefox.

I see that too now! On both chrome and firefox. I like the idea of striving for this, but again I think it would potentially be difficult to come up with a good solution for scenery.

I agree, and I think this might resolve itself once we dive into touch access.

I'm adding the "on hold" label to this until we're able to dig more deeply into holistically handling alternating mouse/keyboard use.

Unassigning myself for now.

We may continue this work in the issue referenced above. I reviewed comments and the thinking is in-line with the behavior we decided on in that issue. Closing this issue because to pick it up in the more recent one and to avoid a mega thread.


Adding optional SLA definitions with the Spec

Related to #51
We have identified in the market a need for measuring and enforcement SLA in APIs. Specially, API vendors would benefit from an standard import of SLA metrics to measure and track importing them along with the OpenAPI definition in an standard way.
In this line, we have started a R&D project by Icinetic and the University of Seville at Spain to work on: "Extension on OpenAPI for the definition of Service Level Agreements (SLA)".
The project is looking forward to:

Setup a basic and optional profile extension to describe a set of plan prices over APIs, Quota enforcement policies, constraints, etc.
This information can (always optionally) decorate the OpenAPI spec inline on in a side file/resource linked from the main spec.
Third party tools like Hivepod: can generate both: Swagger spec, service implementation, and SLA policy + SLA enforcement code, data repository to store the metrics and tools for analysis
Third party tools like API Management tools can use this SLA info also to measure and track the level of compliant with respect this SLA specified.
The ISA Research Group in the University of Seville is looking forward to provide tools for validation, creation and verification of SLAs for free.
We will provide a reference implementation showing the full scenario: from sample Microservice being measured, using a data store to gather metrics and an analysis tool to visualize the SLA grade of compliance.
Eventually, we would love to contribute to OAI (next version) with an open source extension for SLA definition.

Looking forward for early feedback and to join forces with OAI wanting to support an extension for this in an standardized way.

Thanks for the information. We've explicitly chose to exclude support for 2.0, though there are a few ideas to be taken into account for the next version. We'll take your work under consideration.

I'm currently working on adding SLA definitions to our swagger definition and would be very interested in taking that and turning it into prometheus alerting definition. Happy to test-drive whatever you come up with.

Excellent @discordianfish ! Anyone interested write me an email to pjmolina (at) icinetic.com and I will share with you our initial draft material.

Parent issue #560

@discordianfish @pjmolina if you have examples of how this would look, please feel free to share it.

Seems like a great use of an x-extension, and if that gets traction, it should be considered in a future version.

@webron I can't see anything related to this in the 3.0 spec. Will this still be addressed with custom extensions?

@jcarres-mdsol It won't be addressed in 3.0 directly or indirectly, we didn't get a chance to discuss it.

Thank you for the response. Then I'll go for an extension.
Thanks for replying so fast

any progress?

Hi @vtolstov
Yes: working on it here: https://github.com/isa-group/SLA4OAI-TC/blob/master/specs/index.md
Feel free to join or add yout ideas to push it forward.

@pjmolina hi! thanks for answer. I'm try to solve problem from other side - i have go micro framework that based on proto generates handlers for client and server. And our analytics team want to specify timeout for handlers based on SLA and understanding how much time needs each handler to process. And based on this proto i'm generate swagger/openapi spec to publish


Proposal: RequiredValidator "not" setting

Adding a simple $not boolean property to RequiredValidator would inverse the check to only pass validation when the attribute is empty. Same principle as is already used with RegularExpressionValidator::$not
This is useful when doing conditional validation where you do not want an attribute to be set under certain conditions.

Would you please provide an example?

Sure thing.
In your model:
public function rules() {
    return [
        ['thing', 'required'],
        ['thing', 'in',
            'range' => ['car', 'bicycle', 'boat'],
        ],
        ['wheel_size', 'required',
            'not' => true,
            'when' => function($model) {
                return $model->thing == 'boat';
            },
            'message' => "Boats have no wheels, silly!",
        ],
    ];
}

Now you can still do this
(new MyModel([
    'thing'  => 'car',
]))->validate();

(new MyModel([
    'thing'  => 'car',
    'wheel_size' => 10,
]))->validate();

(new MyModel([
    'thing'  => 'boat',
]))->validate();

But you will get stopped by validation if you try to do this:
(new MyModel([
    'thing'  => 'boat',
    'wheel_size' => 10,
]))->validate();

Would you like to help with a pull request (code + tests)?


New impeller GLES tests are failing on monorepo

The  GLES impeller tests enabled by https://github.com/flutter/engine/pull/49701 are failing on the monorepo builder running framework tests.
This PR is causing many failures on monorepo, and is causing the framework tests time to go from less than 60 minutes to over 90 minutes, and causing builds to time out.
The first failing build is https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/flutter-linux-framework-tests/1879/overview
The common cause of the failures is:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following _Exception was thrown running a test:
Exception: Asset 'shaders/ink_sparkle.frag' does not contain appropriate runtime stage data for
current backend (Vulkan).
Found stages: SkSL

When the exception was thrown, this was the stack:
#0      new FragmentProgram._fromAsset (dart:ui/painting.dart:4446:7)
#1      FragmentProgram.fromAsset.<anonymous closure> (dart:ui/painting.dart:4473:55)

Are there additional build targets or artifacts that are needed to run these tests, or should they be disabled on these builders and are accidentally being run?
Are these tests expected to add this much additional runtime to the framework tests?
@bdero @whesse

This is currently breaking our monorepo builds, which makes it impossible for us to find SDK changes that will break Flutter engine or framework early, before they are rolled into engine.

The likely cause of these failures is that some vulcan impeller artifacts are not being built and uploaded by the monorepo linux-host-debug builder. I need some help knowing what these are, and what targets to build to get them.
I see that the engine CI linux-host-engine config (https://github.com/flutter/engine/blob/main/ci/builders/linux_host_engine.json) has a host_debug_impeller_vulcan builder that monorepo does not have, but that builder does not upload any artifacts. So that builder doesn't seem to be the cause of the problem.
We need to converge the monorepo CI and engine CI configuration files, so both of them build and upload the same artifacts, but hopefully we can find and fix this problem before tackling that big task.
The monorepo linux-host config is at https://dart.googlesource.com/monorepo/+/refs/heads/main/ci/builders/host_linux.json
and lists all the build targets and artifact uploads of the monorepo builders, so the missing impeller artifacts would be something missing from there.
The breaking tests are being run in a checkout of Flutter framework, which fetches the engine artifacts built by the monorepo builders by using a custom FLUTTER_STORAGE_BASE_URL and engine.version.  So the artifacts are missing from that storage location.
Are these part of sky_engine.zip? That is uploaded by an android builder, not the linux_host builder.
The key may be to find which artifact is supposed to contain the missing
Asset 'shaders/ink_sparkle.frag'
for vulcan, and what target is supposed to build this. I have no context to figure this out, so could use some help.

The problem was completely different: A new framework tests subshard was added in bringup mode, that included failing tests.
Monorepo will be fixed to run the subshards separately, and skip the new impeller shard while it is failing.
Shard is added in https://github.com/flutter/flutter/pull/141341
The title and description of the issue are changed to reflect this new information.

@whesse I'm assigning this to you based on my understanding that you are fixing it, but if you need help/want me to disable the tests I'm happy to take over.

This issue can be closed - the impeller subshard is now not running on monorepo while it is being brought up on Flutter CI.


gizmo drawn incorrectly at direction (-1, 0, 0)

Hello!
When entering the following code, incorrect result appears
vgm::Vec3 dir(-1, 0, 0);
ImGui::gizmo3D("Direction", dir);

It means, I wanna (-1, 0, 0), but get (1, 0, 0).

Hi @koala999cn, and sorry for the (very!) late reply.
I tried your example, but the problem does not happen.
On picture, below, there is my debug session (tested with both gcc 14.2.1 and clang 18.1. 8):

A value (1.0, 0.0, 0.0) can happen/be returmed only if the length of "dir" < FLT_EPSILON: and this would not be the case!
Below the code relative, used to avoid a division by ZERO
        float len = length(dir);

        if(len<1.0 && len>= FLT_EPSILON) { normalize(dir); len = 1.0; }
        else if(len< FLT_EPSILON) { dir = vec3(1.f, 0.f, 0.f); len = 1.0; }

        q = angleAxis(acosf(dir.x/len), normalize(vec3(FLT_EPSILON, -dir.z, dir.y)));

On the basis of this I can assume that dir is initialized to (0.0, 0.0, 0.0) instead of (1.0, 0.0, 0.0)
For this reason, please, tell me more about your C/C++ compiler (brand, version and used compiler flags)  and your OS


Tensorflow directml crashes my python session

Hi,
I've recently purchased a 6900 xt GPU which I would like to use with tensorflow.  I followed the installation guide on  https://docs.microsoft.com/en-us/windows/win32/direct3d12/gpu-tensorflow-windows which worked but the issue I have now is that whenever I try to use tensorflow it closes my python environment.
I've attached an image to show what I mean. I can import tensorflow fine and it shows me that I have version 1.15.5 available. The problem is when I want to check if my GPU is available I get two messages and then it crashes me out of my python environment.
Does anybody know how to solve this issue and what is going on?
Thank you in advance!

Here is my dxdiag file,
DxDiag.txt

I haven't seen a "crash" like this. Usually python will have a stack trace if an exception is thrown or something goes wrong.

Does this only happen when you call tf.test.is_gpu_available()?
Are you able to run other scripts successfully, like adding two tensors?
Your dxdiag appears to show two AMD Radeon RX 6900 XT entries -- do you have two of these cards connected?

I haven't seen a "crash" like this. Usually python will have a stack trace if an exception is thrown or something goes wrong.

Does this only happen when you call tf.test.is_gpu_available()?
Are you able to run other scripts successfully, like adding two tensors?
Your dxdiag appears to show two AMD Radeon RX 6900 XT entries -- do you have two of these cards connected?

Hi,
Thank you for your reply! So this happens when I call any tensorflow operation. Perhaps running this with Python 3.7 in PyCharm may give you some more info (see pictures below). I have 1 GPU that's connected to two monitors, I did try removing one on the off chance that it was causing the issue but that did not help.

Thanks! The fact that you see the DLL loads successfully but you don't see any graphics card info printed means something is most likely going wrong when enumerating DirectX adapters. We're going to poke around a bit to see what might cause this. We may need to add more instrumentation to the runtime to diagnose this, but hopefully we can figure it out without asking you to test a new version of TF.

Hey mate,
Thanks again for the reply! Do you think a Windows reinstall or some sort of DirectX repair could help? I haven't cleaned my system in years, God knows how I messed around with it :P

That is... surprising!
I'm glad this fixed your issue, but I'm also slightly worried because this failed in a path that really shouldn't fail. Is there anything unusual you may have done to your Windows installation that you can think of? For example, replacing any DX libraries with custom versions for a game or something?
Either way I'm glad you can run things now. :)

Nothing I can think of. I didn't do a clean install for years so it could have been any number of things! But I will keep you posted if I think of anything :)

This issue is a year old and more of a Tensorflow issue anyway. So closing.


Roll Flutter Engine from fd41747c23a9 to d0cda2b27daf (1 revision)

https://github.com/flutter/engine/compare/fd41747c23a9...d0cda2b27daf
2024-12-07<EMAIL_ADDRESS>Roll Dart SDK from 838ed940b056 to c7e47c6c5df6 (1 revision) (flutter/engine#57038)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC bdero<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Option to start peek with no connection?

Setup scripts usually manages everything. So they end up creating their own connections and delete the initial one. The net effect is that the initial one never gets used and simply deleted. So maybe we should just provide an option to start the session with no connection?

This is implemented with 9089e5f27b9a631ad5ff5c542beb84d5bb524f2f


[KBM] Remap Key to Mouse Click

Be nice if keyboard keys could be re-assigned to mouse keys.  E.g. I like to use F1 to send a mouse left mouse click.

If we make this, we should look that is also works in the opposite direction.
https://github.com/microsoft/PowerToys/issues/11578#issuecomment-853149117 by @Jay-o-Way

Please, yes!

So in PowerToys present state (or version 0.45.0) one cannot use a modifier key combined with left click? I agree this would be great to have. Would this be difficult to develop? I have someone that might be willing to pay someone to do this.

I still don't understand what the use case is. You still need a mouse to move the cursor, so why not click it? Or use Windows mouse keys?

Accessibility comes to mind.

My use case was to have a modifier key to allow the mouse buttons to do more than simply left/right click.

There are input devices that don't have buttons, and I was actually just now looking for utilities that would let me do clicks using the keyboard.

In theory it should have worked.. left click is supposedly VK 01, but trying that key remap does nothing at the current time.

In theory it should have worked.. left click is supposedly VK 01, but trying that key remap does nothing at the current time.

Yeah, googled and found this list http://www.kbdedit.com/manual/low_level_vk_list.html which has the following note:

**) "mouse button" quasi VK codes are generated by Windows when user clicks left/middle/right/X1/X2 mouse buttons. KbdEdit allows these codes to be assigned to physical keys, but such mappings make no sense: pressing a key with VK_LBUTTON assigned to it will NOT make Windows act as if physical mouse button was pressed.

The page https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes does not have any similar notes.

Indeed, this would be extremely useful in combination with eye tracking - especially in AR etc. Any progress on this please?

Not something currently on our roadmap

Yes, please to this, and the reverse (mapping mouse to keyboard). I'd love to be able to map Ctrl+MouseWheelUp/Down to VolumeUp/Down. etc.

well lets put it on your roadmap

Is this on your roadmap now? The laptop people without a mouse could really benefit from not breaking their touchpads.

@Hood-Legend Not yet, but community pull requests are welcome. :D

I've been trying to enable this capability for a while, and got pretty close with a simple "rebind.ahk" script + program, but it just wasn't robust enough.  The main goal is to abolish the mouse and emulate a "vi" style custom workflow for any application of your choosing.  We are all spending way too much time in front of computers these days, and the strain on wrist is a serious health risk -- I have 5 different ergonomic mice that I constantly switch between -- then again, I run a global CAD navigation team in the semiconductor industry.

plz so i can speed run pvz

https://docs.microsoft.com/en-us/answers/questions/255509/send-mouse-wheel-click-properly-sendinput-mouseeve.html
This is how to send it

please make this a thing. I use a program where i have to use the middle mouse button and there isn't one on a laptop, if i can rebind a key to that button i dont need to bring a mouse with me.

FYI this functionality is implemented in my project. It's a more advanced version of Keyboard Manager. No fancy GUI though; it uses text based configuration.

Maybe late than ever, i tryd powertoys to help me turn ctrl-c into a numpad5 click, numpad5 is easy to turn into a mouseclick with windows itself. But apperently powertoys turns ctr-c into a normal 5! instead of a real numpad5 press which is a mouse click if you enable mousekeys on in windows.

Ok so I discovered you can remap a key to "scroll lock" (you can also choose zoom options) which effectively is the middle mouse button! I can't find work arounds for the left and right click unfortunately.

I'm looking to remap ALT (right) and/or CTRL (right) to mouse click left, tried remapping to VK1 but this doesn't work.
My use case:
I'm using a laptop with the trackpad and the left mouse button on the trackpad has always been difficult to press, and has gotten worse over time, it's a poorly made/designed trackpad (the buttons at least). Remapping to said keys would allow me to use the trackpad with index finger or thumb, and left click with middle finger, ring finger, or pinky finger.
Like the user above I would use mouse keys but the numpad 5 key is too far away to use the trackpad and tap the numpad 5 key at the same time. I would use this feature constantly if it were available. Seeing that the VK keys are options in the drop-down I was hopeful this would work.

Have y'all tried AutoHotkey yet?

Have y'all tried AutoHotkey yet?
The fact that the VK for left-click doesn't work is mentioned earlier.

Ya I read that too, I was just adding in my use case.
I'd prefer not to use autohotkey. I have tried it, thanks.

These are different

I agree it would be nice - if the laptop's trackpad or otherwise isn't working.
If one has problems with the hands, clicking the mouse itself isn't always great. My own solution was to just use the trackpad instead.
I tried to bind Numpad5 in PowerToys but it did not work together with mousekeys as expected. It would be good to both have this in PowerToys and for PowerToys to be integrated in W11 for it's most popular use cases.

Dear Microsoft/Powertoys,
First and foremost, thank you so much for providing your customers with
such high-quality essential tools for everyday life.  I work for a software
company in the semiconductor industry, in which CAD navigation is an
everyday mantra for my nimble fingers.  I would love nothing more to enable
my space bar as the RightClick mouse button since every other function in a
workflow involves clicking on something.  I can navigate seamlessly around
databases, files, features, however when it comes to the click -
carpal-tunnel seems like Christmas morning.
Please do it. I'll pay for it -- twice.
Long Live MSFT,
-Arpan
On Wed, Apr 5, 2023 at 4:14 AM wUEZRs @.***> wrote:

I agree it would be nice - if the laptop's trackpad or otherwise isn't
working.
If one has problems with the hands, clicking the mouse itself isn't always
great. My own solution was to just use the trackpad instead.
I tried to bind Numpad5 in PowerToys but it did not work together with
mousekeys as expected. It would be good to both have this in PowerToys and
for PowerToys to be integrated in W11 for it's most popular use cases.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/3364#issuecomment-1497316120,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKP74R7VJUPCV63BB7OX3DLW7VHZNANCNFSM4NGJHLXQ
.
You are receiving this because you commented.Message ID:
@.***>

Guys, one work around for now is:
you can just map your desired key to shift + F10 which is the shortcut for right click via keyboard.
map it to whatever key you want and there you have it, right click via  keyboard.

Guys, one work around for now is:
you can just map your desired key to shift + F10 which is the shortcut for right click via keyboard. map it to whatever key you want and there you have it, right click via keyboard.

This doesn't work for right clicking links, buttons, pictures, etc. The 'shift + F10' right-click doesn't select what is under the cursor.

Guys, one work around for now is:
you can just map your desired key to shift + F10 which is the shortcut for right click via keyboard. map it to whatever key you want and there you have it, right click via keyboard.

did you mean the context menu button (left side of the right ctrl key?)

I am so sorry. I meant LeftClick, not RightClick. Is it possible to map the
primary LeftClick function?
Thanks,
Arpan
On Sat, Apr 22, 2023 at 10:56 PM gocs @.***> wrote:

Guys, one work around for now is:
you can just map your desired key to shift + F10 which is the shortcut
for right click via keyboard. map it to whatever key you want and there you
have it, right click via keyboard.
did you mean the context menu button (left side of the right ctrl key?)
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/3364#issuecomment-1518952548,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKP74R5ZZNEZPXMSTKN5CWTXCS775ANCNFSM4NGJHLXQ
.
You are receiving this because you commented.Message ID:
@.***>

Or use Windows mouse keys?
- @ Jay-o-Way at https://github.com/microsoft/PowerToys/issues/3364#issuecomment-964437748

i was thinking same. this issue seems to be like "allow customising windows mouse keys"

I still don't understand what the use case is. You still need a mouse to move the cursor, so why not click it? Or use Windows mouse keys?

Easiest use case - when connecting from android to windows through any remote desktop software(for example steam link or something else) it's often that right mouse button on android is just doing "back" on windows, acting as escape key I think. So that's one of the ideas where such remapping could make sense.

This still isn't done? And we're still trying to understand use cases?
Please understand that navigating semiconductor CAD layouts to critical
defect locations and then being able to click with spacebar to either query
a polygon, annotate a net, create a marker, highlight a trace, the list of
features goes on that currently require having to go back to the mouse -
unintentionally losing my XY precision and then dragging my arm over to a
freaking icon that doesn't have a shortcut and even if it did it wouldn't
be as clutch as a simple god damn click on the spacebar.. I'll just ask
chat gpt ...or bard now. no msft get credit or debit
[image: image.png]
On Fri, Jan 19, 2024 at 1:56 AM Wojciech Ślawski @.***>
wrote:

I still don't understand what the use case is. You still need a mouse to
move the cursor, so why not click it? Or use Windows mouse keys?
Easiest use case - when connecting from android to windows through any
remote desktop software(for example steam link or something else) it's
often that right mouse button on android is just doing "back" on windows,
acting as escape key I think. So that's one of the ideas where such
remapping could make sense.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/3364#issuecomment-1900093257,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKP74R27247SKO762KYHA2TYPI7LBAVCNFSM4NGJHLX2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJQGAYDSMZSGU3Q
.
You are receiving this because you commented.Message ID:
@.***>

My interest in it is because I was originally looking at a trackball that doesn't have buttons, only the ball. My regular keyboard only has 1 button above the number row, and that's already mapped to a single F-key.
So in the use-case of a trackball with no buttons, it would only work if mapping could be assigned to either foot pedals or usb extra-keys block like some gamers have or just F-keys on a standard 104 layout.

Who cares, Apple Silicon is the only way forward...
On Sat, Feb 3, 2024 at 2:53 PM Sunspark-007 @.***>
wrote:

My interest in it is because I was originally looking at a trackball that
doesn't have buttons, only the ball. My regular keyboard only has 1 button
above the number row, and that's already mapped to a single F-key.
So in the use-case of a trackball with no buttons, it would only work if
mapping could be assigned to either foot pedals or usb extra-keys block
like some gamers have or just F-keys on a standard 104 layout.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/3364#issuecomment-1925477228,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKP74R6VHQKJII7NKTPQQWTYR25VNAVCNFSM4NGJHLX2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJSGU2DONZSGI4A
.
You are receiving this because you commented.Message ID:
@.***>

I would like to remap ctrl + plus/minus to ctrl + scroll for apps that do not support it.
I would also like to remap ctrl + left click and others to kb shortcuts

Please, i would love to be able to switch desktops without taking my hand off the mouse. ctrl+win+left/right arrow keys is too much work for a high paced environment, i want to switch it to ctrl + side buttons on my mouse.

There is a fantastic C# application called KeyCur that I've been using for years, with the latest changes made over 10 years ago, but it still works on the latest Windows: https://github.com/shuhan/KeyCur.
This allows me to remap mouse buttons to keyboard keys. All other alternatives like AutoHotKey and similar tools either were hard to configure or had lots of disadvantages, such as causing an inability to drag items when a keyboard button is being held or glitching in some other ways.
Furthermore, KeyCur has an "Activation Key" function which allows me to easily switch states between normal and mouse-mapped keyboard. The only disadvantage of KeyCur is its inability to operate on "Run as Admin" window prompts, however it does work on windows that run as administrator if KeyCur itself runs as admin.
Possibly the functionality or some code in the repo above can help in writing a feature everyone requests in this issue.
KeyCur binaries and screenshot: https://github.com/shuhan/KeyCur/issues/1"

It would be great to have Middle Mouse Click Paste functionality like Ubuntu's GNOME Tweaks offers

Person with physical disabiity here.
This feature is a world changer for me, regading working with my laptop.
Currently I use my own code, which I couldn't right-click or drag-and-drop without.
4 years discussion for such basc and helpful feature is someting I can not understand.
Thanks.

This is insane that the mouse left and right click can't just be remapped, I have issues in my hands, shoulder, and arms. The only way I can comfortably use my laptop is to lay my hand flat, control the mouse with the central button and have 2 keys around it remapped. This shouldn't have to be explained, just make the feature.

I would love this to be true in the near future.

+1. plz make the feature! 🙂

+1 for mouse control via keyboard feature. For multi-device mouse/keyboard combos, this may be a good feature to allow quick switch to another device and briefly use mouse through keyboard. One possible solution is to enable mouse from keyboard using shortcuts like LCtrl+LShift+S+X and then use RCtrl for mouse left-click, RShift for mouse right-click and arrow keys for movements. This will greatly enhance productivity with multi-device keyboards. The current Windows settings for Mouse Keys are not very helpful.


compatibility with html-webpack-plugin

This doesn't seem to work with html-webpack-plugin so am I correct to assume this package also requires the html loader? A complete example would be helpful.
Thanks!

So an early example is here: https://github.com/iminif/html-replace-webpack-plugin-howto, hope it helps for you!


Removes prototype construction steps (I HATE PROTOTYPE STEPS)

About the PR
kills prototype steps for construction
Closes #11607
Screenshots

Changelog

no cl but lots of fun

I can finally rest in peace now


v2 version doesn't show my data

Hi,
I'm using rc1 version and everything seems fine, because I receive the data, but for some reason I can't see them.
I enabled debug to see what's the error, but can't see anything:

My id is instafeed. Also I think once appeard, but after nothing. Can you give me advice?

My bad, I just noticed I need another step, heroku or instant-tokens


Make atkeysfile reading more robust

The current implementation tries to read the entire file in a single pass, we should make sure that file reading is more resilient/ will retry.

I can pick this up
@XavierChanth What do you think priority and SP are?
I'm thinking P3 and 1 SP


[T6A1][T11-A1]Fenyi Ye(Q2)

@Yefenyi Now we are in Please B so please indicate the phase B team id  in the title. If not the PR gets assigned to the wrong tutor.


OpenAPI generator failing to generate schema

OpenAPI annotated following https://github.com/PlaceOS/build/pull/16, however an empty schema is generated

From testing, the annotation is definitely been applied to that method, however this does not occur until the finished macro hook runs. This will require some further digging, but initial thoughts are the upstream OpenAPI lib is likely attempting some parsing prior to this taking place.


add preallocated and indexed MSMs

Upstream fixes for https://github.com/lurk-lab/grumpkin-msm/pull/13, just matching the names and benchmarking

!gpu-benchmark

Closing in favor of https://github.com/lurk-lab/arecibo/pull/374


BIGTOP-4249. Fix build failure of Hadoop 3.3.6 against ZooKeeper 3.8.4.

https://issues.apache.org/jira/browse/BIGTOP-4249
We need backport of HADOOP-19116 to add exclusions to test invariants.
[ERROR] Found artifact with unexpected contents: '/root/bigtop/output/hadoop/hadoop-3.3.6/hadoop-client-modules/hadoop-client-minicluster/target/hadoop-client-minicluster-3.3.6.jar'
    Please check the following and either correct the build or update
    the allowed list with reasoning.

    ch/
    ch/qos/
    ch/qos/logback/
    ch/qos/logback/core/
    ch/qos/logback/core/Appender.class
    ...

+1, tested on Debian 11 and Rocky 9. Thanks @iwasakims.

I merged this. Thanks, @sekikn.


Add note about GITHUB_ tokens in codespaces secrets documentation

Why:
Users are unable to create tokens that start with GITHUB_. This adds documentation to make that more clear.
What's being changed:
Check off the following:

[x] I have reviewed my changes in staging. (look for the deploy-to-heroku link in your pull request, then click View deployment)
[x] For content changes, I have reviewed the localization checklist
[x] For content changes, I have reviewed the Content style guide for GitHub Docs.

@dmilburn Thanks so much for opening a PR! I'll get this triaged for review ⚡


[WIP]Set the docker buildx max parallel to 2

helps keep our builds within the machine memory

Potential fix for https://github.com/actualbudget/actual-server/issues/287

The max-parallel here didn't help. The yarn changes looked like they may have. Pulling them out into https://github.com/actualbudget/actual-server/pull/302 for further investigation.