Accessibility issues with Flutter Desktop

Steps to Reproduce

Turn on VoiceOver/NVDA/JAWS
Execute flutter run on the code sample
Hover over the icon button
Click the icon button

Expected results:

The button should be read as "this is a tooltip button" when hovered
"This is an announcement" should be announced when the button is clicked

Actual results:

The button is read as "this is a tooltip button" on macOS, but read as "button" on Windows
No announcement is made on either platform

Code sample
import 'package:flutter/material.dart';
import 'package:flutter/semantics.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Code Sample',
      home: Scaffold(
        body: IconButton(
          icon: const Icon(Icons.settings),
          tooltip: 'This is a tooltip',
          onPressed: () {
            SemanticsService.announce(
              'This is an announcement',
              TextDirection.ltr,
            );
          },
        ),
      ),
    );
  }
}

Logs

[  +10 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +205 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +2 ms] 128b94e247326ecdcbe954febb73adbac4b2449c
[        ] executing: [C:\Users\bourdakos\Documents\flutter/] git tag --points-at 128b94e247326ecdcbe954febb73adbac4b2449c
[ +215 ms] Exit code 0 from: git tag --points-at 128b94e247326ecdcbe954febb73adbac4b2449c
[   +2 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git describe --match *.*.* --long --tags
128b94e247326ecdcbe954febb73adbac4b2449c
[ +247 ms] Exit code 0 from: git describe --match *.*.* --long --tags 128b94e247326ecdcbe954febb73adbac4b2449c
[        ] 3.4.0-39.0.pre-7-g128b94e247
[  +19 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git rev-parse --abbrev-ref --symbolic @{upstream}
[ +184 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{upstream}
[        ] origin/master
[        ] executing: [C:\Users\bourdakos\Documents\flutter/] git ls-remote --get-url origin
[ +213 ms] Exit code 0 from: git ls-remote --get-url origin
[   +1 ms] https://github.com/flutter/flutter.git
[ +207 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git rev-parse --abbrev-ref HEAD
[ +180 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] master
[ +125 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +397 ms] executing: C:\Users\bourdakos\platform-tools_r31.0.3-windows\platform-tools\adb.exe devices -l
[ +151 ms] List of devices attached
[   +5 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +4 ms] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +95 ms] Multiple devices found:
[ +101 ms] Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19042.2006]
[   +1 ms] Chrome (web)      • chrome  • web-javascript • Google Chrome 106.0.5249.91
[        ] Edge (web)        • edge    • web-javascript • Microsoft Edge 102.0.1245.41
[        ] [1]: Windows (windows)
[        ] [2]: Chrome (chrome)
[        ] [3]: Edge (edge)
[   +3 ms] Please choose one (To quit, press "q/Q")
[        ] :
[+4988 ms] 1
[  +19 ms] Skipping pub get: version match.
[ +162 ms] Generating
C:\Users\bourdakos\Documents\bug_repro\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[ +143 ms] Initializing file store
[  +16 ms] Skipping target: gen_localizations
[  +16 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:C:\Users\bourdakos\Documents\bug_repro\.dart_tool\package_config_subset}
[  +41 ms] gen_dart_plugin_registrant: Complete
[   +5 ms] Skipping target: _composite
[   +4 ms] complete
[  +11 ms] Launching lib\main.dart on Windows in debug mode...
[   +8 ms] C:\Users\bourdakos\Documents\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev
C:\Users\bourdakos\Documents\flutter\bin\cache\dart-sdk\bin\snapshots\frontend_server.dart.snapshot --sdk-root
C:\Users\bourdakos\Documents\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/ --incremental --target=flutter
--experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill
C:\Users\BOURDA~1\AppData\Local\Temp\flutter_tools.9b9a3dc1\flutter_tool.9a0fc0ca\app.dill --packages
C:\Users\bourdakos\Documents\bug_repro\.dart_tool\package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts
--track-widget-creation --filesystem-scheme org-dartlang-root --initialize-from-dill
build\c075001b96339384a97db4862b8ab8db.cache.dill.track.dill --verbosity=error --flutter-widget-cache
--enable-experiment=alternative-invalidation-strategy
[  +46 ms] executing: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe -format json -products * -utf8 -latest
-version 16 -requires Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.Component.VC.Tools.x86.x64
Microsoft.VisualStudio.Component.VC.CMake.Project
[ +152 ms] Exit code 0 from: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe -format json -products * -utf8
-latest -version 16 -requires Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.Component.VC.Tools.x86.x64
Microsoft.VisualStudio.Component.VC.CMake.Project
[   +1 ms] [
             {
               "instanceId": "4228c84f",
               "installDate": "2022-01-21T18:11:43Z",
               "installationName": "VisualStudio/16.11.9+32106.194",
               "installationPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional",
               "installationVersion": "16.11.32106.194",
               "productId": "Microsoft.VisualStudio.Product.Professional",
               "productPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\Common7\\IDE\\devenv.exe",
               "state":<PHONE_NUMBER>,
               "isComplete": true,
               "isLaunchable": true,
               "isPrerelease": false,
               "isRebootRequired": false,
               "displayName": "Visual Studio Professional 2019",
               "description": "Professional IDE best suited to small teams",
               "channelId": "VisualStudio.16.Release",
               "channelUri": "https://aka.ms/vs/16/release/channel",
               "enginePath": "C:\\Program Files (x86)\\Microsoft Visual
               Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
               "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes-v16.11#16.11.9",
               "thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=660909",
               "updateDate": "2022-01-21T18:11:43.4743112Z",
               "catalog": {
                 "buildBranch": "d16.11",
                 "buildVersion": "16.11.32106.194",
                 "id": "VisualStudio/16.11.9+32106.194",
                 "localBuild": "build-lab",
                 "manifestName": "VisualStudio",
                 "manifestType": "installer",
                 "productDisplayVersion": "16.11.9",
                 "productLine": "Dev16",
                 "productLineVersion": "2019",
                 "productMilestone": "RTW",
                 "productMilestoneIsPreRelease": "False",
                 "productName": "Visual Studio",
                 "productPatchVersion": "9",
                 "productPreReleaseMilestoneSuffix": "1.0",
                 "productSemanticVersion": "16.11.9+32106.194",
                 "requiredEngineVersion": "<IP_ADDRESS>712"
               },
               "properties": {
                 "campaignId": "",
                 "channelManifestId": "VisualStudio.16.Release/16.11.9+32106.194",
                 "nickname": "",
                 "setupEngineFilePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\setup.exe"
               }
             }
           ]
[   +8 ms] Building Windows application...
[ +433 ms] <- compile package:bug_repro/main.dart
[   +2 ms] executing: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -S
C:\Users\bourdakos\Documents\bug_repro\windows -B build\windows -G Visual Studio 16 2019
[ +243 ms] -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
[  +57 ms] -- Configuring done
[ +309 ms] -- Generating done
[  +66 ms] -- Build files have been written to: C:/Users/bourdakos/Documents/bug_repro/build/windows
[  +10 ms] executing: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe --build build\windows --config Debug --targetINSTALL --verbose
[ +657 ms] Microsoft (R) Build Engine version 16.11.2+f32259642 for .NET Framework
[   +1 ms] Copyright (C) Microsoft Corporation. All rights reserved.
[ +381 ms] Build started 10/4/2022 4:04:03 PM.
[ +874 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\INSTALL.vcxproj" on node 1 (default targets).
[   +1 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\INSTALL.vcxproj" (1) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
[   +1 ms] InitializeBuildStatus:
[        ]   Creating "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[  +57 ms] CustomBuild:
[   +1 ms]   All outputs are up-to-date.
[ +308 ms]   Checking Build System
[ +189 ms] FinalizeBuildStatus:
[   +1 ms]   Deleting file "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
[   +1 ms]   Touching "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
[   +5 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\ZERO_CHECK.vcxproj" (default targets).
[ +127 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\INSTALL.vcxproj" (1) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\ALL_BUILD.vcxproj" (3) on node 1 (default targets).
[   +1 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\ALL_BUILD.vcxproj" (3) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\bug_repro.vcxproj" (4) on node 1 (default targets).
[   +1 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\bug_repro.vcxproj" (4) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_assemble.vcxproj" (5) on node 1 (default targets).
[        ] InitializeBuildStatus:
[        ]   Creating "x64\Debug\flutter_assemble\flutter_assemble.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[   +7 ms] CustomBuild:
[        ]   "The build of
'C:\Users\bourdakos\Documents\bug_repro\build\windows\CMakeFiles\9c4fc6f798b73840992bb3ce2f7afe41\flutter_assemble.rule' depends on
'C:\USERS\BOURDAKOS\DOCUMENTS\BUG_REPRO\WINDOWS\FLUTTER\EPHEMERAL\FLUTTER_WINDOWS.DLL' which is produced by the build of
'C:\Users\bourdakos\Documents\bug_repro\build\windows\CMakeFiles\c21b719c1bb1867fca19a7ea97cd8309\flutter_windows.dll.rule'. The items
cannot be built in parallel."
[ +190 ms]   Generating C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_windows.dll,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_export.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_windows.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_messenger.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_plugin_registrar.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_texture_registrar.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/core_implementations.cc,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/standard_codec.cc,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/plugin_registrar.cc,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/flutter_engine.cc,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/flutter_view_controller.cc, _phony_
[+1702 ms]   [   +6 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +215 ms]   [ +235 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +1 ms]   [   +1 ms] 128b94e247326ecdcbe954febb73adbac4b2449c
[        ]   [        ] executing: [C:\Users\bourdakos\Documents\flutter/] git tag --points-at 128b94e247326ecdcbe954febb73adbac4b2449c[ +221 ms]   [ +222 ms] Exit code 0 from: git tag --points-at 128b94e247326ecdcbe954febb73adbac4b2449c
[   +1 ms]   [   +1 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git describe --match *.*.* --long --tags
128b94e247326ecdcbe954febb73adbac4b2449c
[ +233 ms]   [ +232 ms] Exit code 0 from: git describe --match *.*.* --long --tags 128b94e247326ecdcbe954febb73adbac4b2449c
[        ]   [        ] 3.4.0-39.0.pre-7-g128b94e247
[  +17 ms]   [  +17 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git rev-parse --abbrev-ref HEAD
[ +180 ms]   [ +180 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +1 ms]   [        ] master
[ +130 ms]   [ +132 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +1 ms]   [   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +122 ms]   [ +123 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git rev-parse --abbrev-ref --symbolic @{upstream}
[ +187 ms]   [ +187 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{upstream}
[        ]   [        ] origin/master
[        ]   [        ] executing: [C:\Users\bourdakos\Documents\flutter/] git ls-remote --get-url origin
[ +194 ms]   [ +195 ms] Exit code 0 from: git ls-remote --get-url origin
[        ]   [        ] https://github.com/flutter/flutter.git
[        ]   [        ] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[   +1 ms]   [   +3 ms] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[ +463 ms]   [ +468 ms] Initializing file store
[  +18 ms]   [  +17 ms] Done initializing file store
[  +61 ms]   [  +61 ms] Skipping target: gen_localizations
[  +17 ms]   [  +17 ms] Skipping target: gen_dart_plugin_registrant
[+4000 ms]   [+4001 ms] Skipping target: unpack_windows
[ +640 ms]   [ +640 ms] Skipping target: kernel_snapshot
[ +310 ms]   [ +310 ms] Skipping target: debug_bundle_windows_assets
[   +1 ms]   [        ] Persisting file store
[  +20 ms]   [  +20 ms] Done persisting file store
[  +10 ms]   [  +10 ms] build succeeded.
[  +17 ms]   [  +17 ms] "flutter assemble" took 6,382ms.
[ +225 ms]   [ +225 ms] ensureAnalyticsSent: 217ms
[   +1 ms]   [        ] Running 0 shutdown hooks
[        ]   [        ] Shutdown hooks complete
[        ]   [        ] exiting with code 0
[+1159 ms] FinalizeBuildStatus:
[   +1 ms]   Deleting file "x64\Debug\flutter_assemble\flutter_assemble.tlog\unsuccessfulbuild".
[        ]   Touching "x64\Debug\flutter_assemble\flutter_assemble.tlog\flutter_assemble.lastbuildstate".
[   +1 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_assemble.vcxproj" (default
targets).
[  +64 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\bug_repro.vcxproj" (4) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_wrapper_app.vcxproj" (6) on node 1 (default targets).
[   +2 ms] InitializeBuildStatus:
[   +1 ms]   Creating "flutter_wrapper_app.dir\Debug\flutter_.745470B3.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[   +3 ms] CustomBuild:
[   +1 ms]   All outputs are up-to-date.
[  +65 ms] ClCompile:
[   +1 ms]   All outputs are up-to-date.
[  +51 ms] Lib:
[   +2 ms]   All outputs are up-to-date.
[   +1 ms]   flutter_wrapper_app.vcxproj -> C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\Debug\flutter_wrapper_app.lib
[  +22 ms] FinalizeBuildStatus:
[   +1 ms]   Deleting file "flutter_wrapper_app.dir\Debug\flutter_.745470B3.tlog\unsuccessfulbuild".
[   +2 ms]   Touching "flutter_wrapper_app.dir\Debug\flutter_.745470B3.tlog\flutter_wrapper_app.lastbuildstate".
[   +3 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_wrapper_app.vcxproj" (default
targets).
[  +16 ms] InitializeBuildStatus:
[   +1 ms]   Creating "bug_repro.dir\Debug\bug_repro.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[   +6 ms] CustomBuild:
[        ]   All outputs are up-to-date.
[  +47 ms] ClCompile:
[   +1 ms]   C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\CL.exe /c
/IC:\Users\bourdakos\Documents\bug_repro\windows /IC:\Users\bourdakos\Documents\bug_repro\windows\flutter\ephemeral
/IC:\Users\bourdakos\Documents\bug_repro\windows\flutter\ephemeral\cpp_client_wrapper\include /Zi /nologo /W4 /WX /diagnostics:column
/Od /Ob0 /D WIN32 /D _WINDOWS /D _HAS_EXCEPTIONS=0 /D _DEBUG /D "FLUTTER_VERSION=\"1.0.0+1\"" /D FLUTTER_VERSION_MAJOR=1 /D
FLUTTER_VERSION_MINOR=0 /D FLUTTER_VERSION_PATCH=0 /D FLUTTER_VERSION_BUILD=1 /D NOMINMAX /D UNICODE /D _UNICODE /D
"CMAKE_INTDIR=\"Debug\"" /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR
/std:c++17 /Fo"bug_repro.dir\Debug\\" /Fd"bug_repro.dir\Debug\vc142.pdb" /external:W4 /Gd /TP /wd4100 /errorReport:queue
C:\Users\bourdakos\Documents\bug_repro\windows\flutter\generated_plugin_registrant.cc
C:\Users\bourdakos\Documents\bug_repro\windows\runner\flutter_window.cpp
[ +319 ms]   generated_plugin_registrant.cc
[ +289 ms]   flutter_window.cpp
[ +875 ms]   Generating Code...
[ +197 ms] ResourceCompile:
[   +1 ms]   All outputs are up-to-date.
[  +51 ms] Link:
[        ]   C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\link.exe
/ERRORREPORT:QUEUE /OUT:"C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\Debug\bug_repro.exe" /INCREMENTAL
/ILK:"bug_repro.dir\Debug\bug_repro.ilk" /NOLOGO ..\flutter\Debug\flutter_wrapper_app.lib dwmapi.lib
C:\Users\bourdakos\Documents\bug_repro\windows\flutter\ephemeral\flutter_windows.dll.lib kernel32.lib user32.lib gdi32.lib winspool.libshell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'"
/manifest:embed /manifestinput:C:\Users\bourdakos\Documents\bug_repro\windows\runner\runner.exe.manifest /DEBUG
/PDB:"C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/bug_repro.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE
/NXCOMPAT /IMPLIB:"C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/bug_repro.lib" /MACHINE:X64  /machine:x64
bug_repro.dir\Debug\Runner.res
[   +2 ms]   bug_repro.dir\Debug\flutter_window.obj
[   +1 ms]   bug_repro.dir\Debug\main.obj
[   +2 ms]   bug_repro.dir\Debug\utils.obj
[   +1 ms]   bug_repro.dir\Debug\win32_window.obj
[        ]   bug_repro.dir\Debug\generated_plugin_registrant.obj
[ +745 ms]   bug_repro.vcxproj -> C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\Debug\bug_repro.exe
[  +12 ms] FinalizeBuildStatus:
[        ]   Deleting file "bug_repro.dir\Debug\bug_repro.tlog\unsuccessfulbuild".
[   +3 ms]   Touching "bug_repro.dir\Debug\bug_repro.tlog\bug_repro.lastbuildstate".
[   +3 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\bug_repro.vcxproj" (default targets).
[  +78 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\ALL_BUILD.vcxproj" (3) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_wrapper_plugin.vcxproj" (7) on node 1 (default targets).
[   +4 ms] InitializeBuildStatus:
[        ]   Creating "flutter_wrapper_plugin.dir\Debug\flutter_.4306E078.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.[   +8 ms] CustomBuild:
[   +1 ms]   All outputs are up-to-date.
[  +16 ms] ClCompile:
[   +1 ms]   All outputs are up-to-date.
[   +7 ms] Lib:
[   +1 ms]   All outputs are up-to-date.
[        ]   flutter_wrapper_plugin.vcxproj ->
C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\Debug\flutter_wrapper_plugin.lib
[  +12 ms] FinalizeBuildStatus:
[        ]   Deleting file "flutter_wrapper_plugin.dir\Debug\flutter_.4306E078.tlog\unsuccessfulbuild".
[   +2 ms]   Touching "flutter_wrapper_plugin.dir\Debug\flutter_.4306E078.tlog\flutter_wrapper_plugin.lastbuildstate".
[   +1 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_wrapper_plugin.vcxproj" (defaulttargets).
[  +17 ms] InitializeBuildStatus:
[        ]   Creating "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[  +12 ms] CustomBuild:
[        ]   All outputs are up-to-date.
[ +319 ms]   Building Custom Rule C:/Users/bourdakos/Documents/bug_repro/windows/CMakeLists.txt
[ +231 ms] FinalizeBuildStatus:
[        ]   Deleting file "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild".
[   +1 ms]   Touching "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate".
[   +2 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\ALL_BUILD.vcxproj" (default targets).
[  +13 ms] InitializeBuildStatus:
[   +1 ms]   Creating "x64\Debug\INSTALL\INSTALL.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[ +369 ms] PostBuildEvent:
[   +1 ms]   setlocal
[        ]   "C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -DBUILD_TYPE=Debug -P cmake_install.cmake
[   +1 ms]   if %errorlevel% neq 0 goto :cmEnd
[   +1 ms]   :cmEnd
[        ]   endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
[   +1 ms]   :cmErrorLevel
[   +2 ms]   exit /b %1
[        ]   :cmDone
[        ]   if %errorlevel% neq 0 goto :VCEnd
[        ]   :VCEnd
[ +458 ms]   -- Install configuration: "Debug"
[  +45 ms]   -- Up-to-date: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/icudtl.dat
[   +1 ms]   -- Up-to-date: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/flutter_windows.dll
[  +68 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets
[  +16 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/AssetManifest.json
[   +7 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/FontManifest.json
[  +11 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/fonts
[  +25 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/fonts/MaterialIcons-Regular.otf
[  +43 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/kernel_blob.bin
[ +566 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/NOTICES.Z
[   +8 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/packages
[  +17 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/packages/cupertino_icons
[  +30 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/packages/cupertino_icons/assets
[  +26 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
[  +19 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/shaders
[  +27 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/shaders/ink_sparkle.frag
[  +73 ms] FinalizeBuildStatus:
[   +1 ms]   Deleting file "x64\Debug\INSTALL\INSTALL.tlog\unsuccessfulbuild".
[   +1 ms]   Touching "x64\Debug\INSTALL\INSTALL.tlog\INSTALL.lastbuildstate".
[   +2 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\INSTALL.vcxproj" (default targets).
[  +41 ms] Build succeeded.
[   +1 ms]     0 Warning(s)
[   +2 ms]     0 Error(s)
[   +1 ms] Time Elapsed 00:00:17.39
[ +106 ms] Building Windows application... (completed in 19.6s)
[+2039 ms] [ERROR:flutter/shell/platform/windows/direct_manipulation.cc(137)] CoCreateInstance(CLSID_DirectManipulationManager,
nullptr, CLSCTX_INPROC_SERVER, IID_IDirectManipulationManager, &manager_) failed
[ +229 ms] Observatory URL on device: http://<IP_ADDRESS>:59602/jS2LyrBgPNo=/
[  +10 ms] Caching compiled dill
[ +160 ms] Connecting to service protocol: http://<IP_ADDRESS>:59602/jS2LyrBgPNo=/
[ +314 ms] Launching a Dart Developer Service (DDS) instance at http://<IP_ADDRESS>:0, connecting to VM service at
http://<IP_ADDRESS>:59602/jS2LyrBgPNo=/.
[ +171 ms] DDS is listening at http://<IP_ADDRESS>:59608/grlPJj4L7xQ=/.
[ +131 ms] Successfully connected to service protocol: http://<IP_ADDRESS>:59602/jS2LyrBgPNo=/
[+1083 ms] DevFS: Creating new filesystem on the device (null)
[  +48 ms] DevFS: Created new filesystem on the device (file:///C:/Users/BOURDA~1/AppData/Local/Temp/bug_repro88012d5e/bug_repro/)
[  +14 ms] Updating assets
[ +211 ms] Syncing files to device Windows...
[   +7 ms] Compiling dart to kernel with 0 updated files
[   +1 ms] Processing bundle.
[   +5 ms] <- recompile package:bug_repro/main.dart e3905239-7864-447b-9c52-275ddd9b02be
[   +2 ms] <- e3905239-7864-447b-9c52-275ddd9b02be
[  +14 ms] Bundle processing done.
[ +189 ms] Updating files.
[   +1 ms] DevFS: Sync finished
[   +5 ms] Syncing files to device Windows... (completed in 222ms)
[   +4 ms] Synced 0.0MB.
[   +6 ms] <- accept
[   +4 ms] Connected to _flutterView/0x262611bf5c0.
[   +9 ms] Flutter run key commands.
[   +5 ms] r Hot reload.
[   +2 ms] R Hot restart.
[   +1 ms] h List all available interactive commands.
[   +1 ms] d Detach (terminate "flutter run" but leave application running).
[   +1 ms] c Clear the screen
[   +1 ms] q Quit (terminate the application on the device).
[   +1 ms]  Running with sound null safety
[   +3 ms] An Observatory debugger and profiler on Windows is available at: http://<IP_ADDRESS>:59608/grlPJj4L7xQ=/
[ +116 ms] The Flutter DevTools debugger and profiler on Windows is available at:
http://<IP_ADDRESS>:9101?uri=http://<IP_ADDRESS>:59608/grlPJj4L7xQ=/

Analyzing bug_repro...
No issues found! (ran in 3.3s)

[√] Flutter (Channel master, 3.4.0-40.0.pre.7, on Microsoft Windows [Version 10.0.19042.2006], locale en-US)
    • Flutter version 3.4.0-40.0.pre.7 on channel master at C:\Users\bourdakos\Documents\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 128b94e247 (43 minutes ago), 2022-10-04 15:06:53 -0400
    • Engine revision 256b8d066f
    • Dart version 2.19.0 (build 2.19.0-272.0.dev)
    • DevTools version 2.18.0

[√] Windows Version (Installed version of Windows is version 10 or higher)

[X] Android toolchain - develop for Android devices
    • Android SDK at C:\Users\bourdakos\platform-tools_r31.0.3-windows
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.

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

[√] Visual Studio - develop for Windows (Visual Studio Professional 2019 16.11.9)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
    • Visual Studio Professional 2019 version 16.11.32106.194
    • Windows 10 SDK version 10.0.19041.0

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).

[√] VS Code (version 1.71.2)
    • VS Code at C:\Users\bourdakos\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.48.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19042.2006]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 106.0.5249.91
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 102.0.1245.41

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

! Doctor found issues in 2 categories.

/cc @yaakovschectman @loic-sharma.

It appears we are currently not using the tooltip in on the engine; there is no tooltip member of SemanticsNode. Adding this looks straightforward, but we need some way of presenting it in the resulting MSAA node. What property do we actually want to populate with the tooltip value? Incorporate it into either the beginning or end of the Name of the MSAA node?

I will separate the announcement side of this issue to a separate issue.

Tooltips have been added to the narration.


Issues creating HIT

When I create a HIT, though only one entry shows up in expfactory.org, two HITs are created on Mturk.
If I press "Expire HIT", it expires one of those two HITs but not the other. If I press "Delete HIT" it only expires the HIT, doesn't delete.
When I look at the HIT, no ad is shown. I can't start the HIT. I've included the following in the "Ad" box:
Thank you for your interest in our experiment!
This is a large experiment with many different tasks for you to do. The HIT should last around 10 hours and will pay $60 plus performance bonuses linked with some of the tasks.P
Most of these tasks require that you press keys and sometimes we'll ask you to respond quickly. It is very important that you follow all the instructions and don’t mindlessly press the keys to finish the HIT more quickly! Not only will this hurt our research, but all of the tasks are designed to take around the same amount of time no matter how quickly you respond. The tasks will be more interesting to you and useful for us if you follow the instructions and try your best on all of the tasks.
If you accept the HIT you will see a start button. After you press start you will be shown a waiver of consent to read over followed by a more detailed description of this HIT.

When I create a HIT, though only one entry shows up in expfactory.org, two HITs are created on Mturk.

If I press "Expire HIT", it expires one of those two HITs but not the other. If I press "Delete HIT" it only expires the HIT, doesn't delete.

I haven't seen this behavior, will look into it later this week.

When I look at the HIT, no ad is shown. I can't start the HIT. I've included the following in the "Ad" box:

It's always been like that, to the best of my understanding. I've only tried this in the sandbox, and to start a preview hit, I usually did view source to get the iframe url, and then went there.

Ah, mturk is throwing this error at preview:
Refused to display 'https://expfactory.org/turk/5?assignmentId=ASSIGNMENT_ID_NOT_AVAILABLE&hitId=3JHB4BPSFK8MXDE1EBB3RW4RV6S9QZ' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
maybe that's helpful? I'm not sure exactly what you mean about the preview. The ad should display, even in sandbox.

That looks like a HIT you deleted

I can confirm that the ad was displaying before, given our mturk credentials, on sandbox.

I did delete the HIT...but this was before I deleted it. I'll make a new HIT and just leave it there for you to peruse in your own time.

I'll probably need the login stuffs then. Thanks.

Preview is resolved. Double HIT is all that's left.

:)

ok confirmed the bug when using "New Hit," will debug later.

You deleted your comment:
  Even though duplicate HITs show up as a requester, as a worker I am only seeing one. Not sure what that's about.

If this is the case, then it's not really important to try and debug amazon for why two are showing up in the sandbox for requester.

I deleted that comment because I was wrong - as a worker it showed "2 such HITs available". So the bug is apparent both as a worker and requester.


Cleanup Documentation

For example, remove these extra '|'s in the top-level Tensort and Robustsors modules

Fixed the pipes I found in a once-over. Could probably use some more attention :blue_heart:

Closing in favor of #114


use getImageData() so that hash is always stable

Closes #1 and also fixes #3. Not exactly sure how it fixed that, but it does :)
Would need to be a breaking change given it will definitely generate new hashes to previous versions.

hmm on CI we're still getting different hashes for some reason :/

Ah that's because we were rendering a jpg to the canvas which was rendering slightly differently. A bitmap file worked fine.

@tjenkinson I'm wondering the best way to get this merged - @bseber are you still active on this rep at all?

hey @tjenkinson, hey @IPWright83 there are actually people out there using this library 🎉 That's awesome, really. Thanks :-)
Unfortunately I'm not active on this project anymore. I even lost track of why I've created it at the first place.
Nevertheless I'm going to merge this, bump some more dependencies and publish a new version.

Unfortunately it's still broken: https://github.com/synyx/jest-canvas-snapshot-serializer/runs/4143368578?check_suite_focus=true
And I don't have time to fix this currently.
Maybe Playwright and jest-image-snapshot is an alternative?

https://playwright.dev/docs/screenshots#element-screenshot

const screenshot = await page.screenshot();
expect(screenshot).toMatchImageSnapshot();

@bseber I'm hoping to use this library fairly extensively soon (if I can). It's certainly working locally though not tested on CI yet.
I might put some PR's together if you're OK to review them? Unless you fancy having another contributor/publisher?


Support contextual documentation for service test and add a doc icon for connection test data

Summary

How did you test this change?

[ ] Test(s) added
[x] Manual testing (please provide screenshots/recordings)
[ ] No testing (please provide an explanation)

https://user-images.githubusercontent.com/73408381/201210942-f3752fa1-c496-4b21-8ad8-69598901a5b9.mov

Is there an associated PR for t he dosc you added to the legend docs?

Can we also add contextual help for the DataElement Editor


ENYO-5579: Add preventScroll option to SpotlightContainer

Checklist

[x] I have read and understand the contribution guide

[x] A CHANGELOG entry is included

[ ] At least one test case is included for this feature or bug fix

[x] Documentation was added or is not needed

[ ] This is an API breaking change

Issue Resolved / Feature Added
By default browser repositions the container when a focus goes out of bounds so that focused element is centered. Scrollable and ScrollableNative tries to adjust the position on focusin event to anchor focused item to the edge of the container in the direction of the key. However, these operations are costly and there's a chance where a user can see a focused element in the center in a slower system (e.g. TV).
Resolution
Add preventScroll option to be configured in SpotlightContainer and set default value to true in moonstone/Scrollable and moonstoneScrollableNative
Additional Considerations
In this fix, only moonstone/Scrollable* are taking advantage of preventScroll, but we could expand this to be applied to MoonstoneDecorator if needed. But it seemed rather complicated to apply and decided only apply where it's needed.

Added preventScroll option to ExpandableItem. This, however, is not a universal fix and will cause the issue if a custom component with SpotlightContainer without the config is inside the scroller.
I have created another branch https://github.com/enactjs/enact/tree/feature/ENYO-5532-stephen-context which uses the new context API which would resolve this problem, but I'm not a super big fan of this approach.

Closing in favor of #1918


Laravel 5.7 Shift

This pull request includes the changes for upgrading to Laravel 5.6. Feel free to commit any additional changes to the shift-9099 branch.
Before merging, you should:

Checkout the shift-9099 branch
Review all pull request comments for additional changes
Update your dependencies for Laravel 5.6
Run composer update (if the pre-scripts fail, add --no-scripts)
Thoroughly test your application

If you want help with your upgrade, check out the Shift Human Services or join the Shifty Coders Slack room to get answers to all your Laravel questions.

❌ Shift could not upgrade the following configuration files since they differed from the default Laravel version. You will need to compare these configuration files against the Laravel 5.7 configuration files and merge any changes:

[ ] config/app.php
[ ] config/auth.php
[ ] config/mail.php
[ ] config/services.php

ℹ Laravel 5.7 removed the Blade "or" operator in favor of PHP's built-in ?? "null coalesce" operator. Shift automated this change, however, your application may still contain instances of or if you are using Blade syntax outside of the resources folder.

⚠ Laravel 5.7 was just released. As such, many packages may not yet support Laravel 5.7. Be sure to let the author know. Better yet, submit a pull request as this is often simply a change in their version constraints.

ℹ Laravel 5.7 removed the resources/assets folder in favor of placing its sub-folders directly under resources. Shift moved these for you automatically. However, you may need to update the paths configured in your frontend build tool (e.g. webpack.mix.js) to reflect this new structure.
While Shift encourages a fully upgraded application, this new structure is not required. If this change significantly impairs your frontend build process, you can revert this commit.

ℹ Laravel 5.7 now supports email verification when users register for your application. If you have implemented this feature yourself and would like to take advantage of this native functionality, the steps are below. For more details, review the documentation on Email Verification.

[ ] Add a email_verified_at timestamp column to your User table.
[ ] Add the VerificationController from Laravel 5.7 to your application.
[ ] Import the Illuminate\Contracts\Auth\MustVerify class in your User model.
[ ] Listen for the Registed event in your app/Providers/EventServiceProvider per the Laravel 5.7 version.
[ ] Register the verified middleware in your app/Http/Kernel.php per the Laravel 5.7 version.


Warning: image file could not be identified because WEBP support not installed

~At least on Pop!OS libwebp had to be installed manually (Ubuntu: apt install libwebp-dev)
That should probably be mentioned in the README~
Thought it was running, apparently not :shrug:

Looking into it

now it does work, have no clue why though :sweat_smile::joy:


Getting Whitelabel Error Page with status "404" While running Spring Boot Application

Hello There
I Get Whitelabel Error Page with status "404" While running Spring Boot Application from folder "Completed" with using Maven (mvn spring-boot:run ) on Ubuntu. When open on chrome browser i get that error. after searching in stack overflow i get solve from this :
https://stackoverflow.com/questions/49034254/spring-boot-whitelabel-error-page-type-not-found-status-404
the solution to create folder controller and model then running mvn clean package spring-boot:run

i think you could close this ticket. just reported if some new found error could solve this.

 They didn't mention where to put the java file with main().

This helped with my issue as well, thanks!


Pyright CLI and VSCode problem tab gives different results

Environment data

Language Server version: Pylance language server 2023.5.40 (pyright e6d7b84c)
OS and version: macOS 13.3.1 (a)
Python version (& distribution if applicable, e.g. Anaconda): 3.11.2 - using Pyenv

Code Snippet

This isn't a minimal, self-contained snippet because I was unsure if this happens as a result of pyright loading many things in memory or something. So I wanted to see if I could replicate this behavior on a public repository. I forked a public repository and ran some codemods. Using the pyrightconfig.json, the codemod will tag a  # pyright: ignore comment on all lines that pyright fails. The idea is that overtime we can remove those lines from the codebase. So pyright shows no errors when running pyright from the shell but fails in the VsCode Problem Tab.
Fork:
https://github.com/roshanjrajan-zip/face_recognition
Setup Instructions

Create a virtual environment
Run Following commands

git clone git@github.com:roshanjrajan-zip/face_recognition.git

cd face_recognition

# install setup, might need to call brew install cmake
pip install -r requirements_dev.txt

Repro Steps

Run PYRIGHT_PYTHON_FORCE_VERSION=1.1.309 pyright . and should see no errors
Open repo/virtualenv with repo in VsCode. Go to files like examples/face_recognition_knn.py, examples/facerec_ipcamera_knn.py, examples/face_recognition_knn.py

Expected behavior
Pyright from CLI reports no errors.
Pylance in VsCode reports no errors in Problem Tab.
Actual behavior
Pylance in VsCode eports errors like following. This is just a sample of the errors.
	"resource": "/Users/roshan/face_recognition/examples/face_recognition_knn.py",
	"owner": "_generated_diagnostic_collection_name_#2",
	"code": {
		"value": "reportGeneralTypeIssues",
		"target": {
			"$mid": 1,
			"path": "/microsoft/pyright/blob/main/docs/configuration.md",
			"scheme": "https",
			"authority": "github.com",
			"fragment": "reportGeneralTypeIssues"
		}
	},
	"severity": 8,
	"message": "Argument of type \"str\" cannot be assigned to parameter \"algorithm\" of type \"Literal['auto', 'ball_tree', 'kd_tree', 'brute']\" in function \"__init__\"\n  Type \"str\" cannot be assigned to type \"Literal['auto', 'ball_tree', 'kd_tree', 'brute']\"\n    \"str\" cannot be assigned to type \"Literal['auto']\"\n    \"str\" cannot be assigned to type \"Literal['ball_tree']\"\n    \"str\" cannot be assigned to type \"Literal['kd_tree']\"\n    \"str\" cannot be assigned to type \"Literal['brute']\"",
	"source": "Pylance",
	"startLineNumber": 152,
	"startColumn": 19,
	"endLineNumber": 152,
	"endColumn": 27
}]
[{
	"resource": "/Users/roshan/face_recognition/examples/facerec_ipcamera_knn.py",
	"owner": "_generated_diagnostic_collection_name_#2",
	"code": {
		"value": "reportGeneralTypeIssues",
		"target": {
			"$mid": 1,
			"path": "/microsoft/pyright/blob/main/docs/configuration.md",
			"scheme": "https",
			"authority": "github.com",
			"fragment": "reportGeneralTypeIssues"
		}
	},
	"severity": 8,
	"message": "Argument of type \"str\" cannot be assigned to parameter \"algorithm\" of type \"Literal['auto', 'ball_tree', 'kd_tree', 'brute']\" in function \"__init__\"\n  Type \"str\" cannot be assigned to type \"Literal['auto', 'ball_tree', 'kd_tree', 'brute']\"\n    \"str\" cannot be assigned to type \"Literal['auto']\"\n    \"str\" cannot be assigned to type \"Literal['ball_tree']\"\n    \"str\" cannot be assigned to type \"Literal['kd_tree']\"\n    \"str\" cannot be assigned to type \"Literal['brute']\"",
	"source": "Pylance",
	"startLineNumber": 157,
	"startColumn": 19,
	"endLineNumber": 157,
	"endColumn": 27
}]

Logs

https://gist.github.com/roshanjrajan-zip/099931ca098bfda6c6e249b2d6d67352

If you haven't already done so, please review this documentation and follow the troubleshooting tips.

Didn't know about this doc but updated the repo with this and am still seeing the same errors - https://github.com/roshanjrajan-zip/face_recognition/commit/bae62a066eb62c853f2a6dac2aa927a8e486a770

cc: @ryin1 and @etripier

If I'm not mistaken, Pylance would use stubs from https://github.com/microsoft/python-type-stubs/tree/main/stubs/sklearn , whilst pyright doesn't. This might explain the different behaviour when it comes to type that come from that library.

For aligning pyright and pylance on the type-checker level, there's #5207
To align them on stubs, there #5207

basedpyright solves this problem because the vscode extension uses the version installed in your project instead of the one bundled with the extension

basedpyright solves this problem because the vscode extension uses the version installed in your project instead of the one bundled with the extension

@DetachHead, this is not a good solution for Pylance users since they would lose all of Pylance's features. I understand that you personally don't care about that, but without context these kinds of comments are misleading.

@roshanjrajan-zip, I believe you are using pyright-python? Have you tried using the newish PYRIGHT_PYTHON_PYLANCE_VERSION option?

Basedpyright now allows you to have both pylance and basedpyright enabled at the same time. It disables conflicting features so you can use the pylance LSP while still using basedpyright for reporting type errors.
I also aim to re-implement pylance features in the basedpyright plugin. I already added code actions for import suggestions which was previously only available in pylance.


SW-5538: Table column sorting for Species table for Species List Deliverable doesn't seem to work

This PR includes a change to support sorting by nested row properties in the Table component.

I believe these changes retain the previous functionality while adding support for nested properties, but please let me know if you think I missed anything 🙏

Oops! I meant to merge this yesterday 😅 Thank you for the reviews and suggestions 🙌 💯

I realized the behavior to split column key strings by dot (".") should be optional so it doesn't break other tables using dot notation in column keys, so I added an optional sortSplitDots param to the Table component.


Use namespace to generate Release.fullname

Also reduce the other names, only prefix cluster-wide resources with
fullname.
#175984792

Pull Request Test Coverage Report for Build 614855749

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.4%) to 78.049%

Totals

Change from base Build 601195502:
0.4%

Covered Lines:
1312

Relevant Lines:
1681

💛  - Coveralls


Wait period to enable the Directory synchronization

The wait time of 72 hours to enable back the directory sync once disabled is a worse thing. Admin turn off this particularly when they issues on their environment and separate from on-prem but this wait period makes it worse than the exact issue. This wait period should be reduced to the least.

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

ID: 3edc072a-e71f-02a2-7974-3b2d4f820b39
Version Independent ID: f20102f3-a74b-4c46-8ca7-04fdf4ad2886
Content: Turn off directory synchronization for Microsoft 365 - Microsoft 365 Enterprise
Content Source: microsoft-365/enterprise/turn-off-directory-synchronization.md
Service: o365-administration
GitHub Login: @JoeDavies-MSFT
Microsoft Alias: josephd

@sabarivasanN Thank you for your feedback. The 72 hours mentioned in the document is the maximum wait time before you can enable Directory synchronization. This at the moment cannot be decreased as other factors contributing to the delay like the number of Cloud accounts in the subscriptions etc.
Hope this helps!
@yogkumgit  There are no changes required in the document at the moment. Please close the issue.
Thanks
Sri

@msbemba Thank you very much for the contribution and sharing this explanation. @sabarivasanN Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


madExcept Error

I'm using the latest dragdrop files in Rio 10.3. I can set up a simple app with a tmemo and a combo drop target, setting the target to memo1. I can drag and drop a file no problem. However, if I have madExcept running reporting leaks, I keep getting 2 errors. One is type TFixedStreamAdapter and the second is GlobalAlloc. I'll put in a screenshot below. I'm not getting any delphi errors.
If I don't have madExcept reporting leaks in the project, there are no delphi errors reported and it all appears to run correctly.
Any ideas appreciated!

There does not seem to be much activity in these "issues" sections, so I revisited this problem again and am posting what I found out. I am using Version: 5.7 of the dragdrop components dated 28-FEB-2015 (version and date are from the header of the DragDropFormats.pas file).
This error was happening in DragDropFormats.pas at line 1295. I played around with it and found by adding this:
IStream(AMedium.stm) := nil;

Right after the line containing AMedium.tymed := TYMED_ISTREAM;, it seems to have fixed the error without any side effects. So far. I added this info in case it can help someone else having the same problem, but I am not sure it's the "correct" solution!

AMedium.stm := Stream;
should the solution on line 1297
Thank you

That seems to work as well. I changed my file line 1297 to what you have.
Thanks

i will push the fix tomorrow

https://github.com/landrix/The-Drag-and-Drop-Component-Suite-for-Delphi/commit/88b22bb6d2c01ea3489024bb43c239d407c43726

can you check the new sources again please

On my simple test app I'm getting the leak error in madexcept again with the latest DragDropFormats. I'll put the report in below. It throws an error in madexcept but not in Delphi.
allocation number: 2540
program up time: 14.97 s
type: TFixedStreamAdapter
address: $59c6fd8
size: 36
access rights: read/write
reference counter: 3
main thread ($5c60):
671a52b3 madExcept32.dll madExceptDbg     1736 GetMemCallback
0040c948 Project1.exe    System          34385 InvokeRecordConstructor
00406ec8 Project1.exe    System           4799 @GetMem
00408712 Project1.exe    System          17394 TObject.NewInstance
00410020 Project1.exe    System          39278 TInterfacedObject.NewInstance
00408ed7 Project1.exe    System          18773 @ClassCreate
004eab79 Project1.exe    System.Classes  17102 TStreamAdapter.Create
00663091 Project1.exe    Vcl.AxCtrls      1003 TOleStream.Create
00667080 Project1.exe    DragDropFormats  1296 TCustomSimpleClipboardFormat.DoSetData
0066e669 Project1.exe    DragDrop         1129 TClipboardFormat.SetDataToMedium
0066e690 Project1.exe    DragDrop         1136 TClipboardFormat.SetData
006669d8 Project1.exe    DragDropFormats  1012 TCustomSimpleClipboardFormat.Create
0066b7b6 Project1.exe    DropTarget       1515 TCustomDropTarget.SetPerformedDropEffect
0066a30a Project1.exe    DropTarget        880 TCustomDropTarget.DoDrop
0066a1b8 Project1.exe    DropTarget        766 TCustomDropTarget.Drop
75d54c7b RPCRT4.dll                            NdrStubCall2
76c4b3cc combase.dll                           CStdStubBuffer_Invoke
761d37cb USER32.dll                            DispatchMessageW
006565c7 Project1.exe    Vcl.Forms       10724 TApplication.ProcessMessage
memory dump:
059c6fd8  c0 41 66 00 03 00 00 00 - 84 27 40 00 00 7b 9a 05<EMAIL_ADDRESS>059c6fe8  01 00 00 00 68 83 4b 00 - 00 00 00 00 0c 41 66 00  ....h.K......Af.
059c6ff8  00 00 00 00                                        ....
allocation number: 2538
program up time: 12.07 s
type: GlobalAlloc
handle: $7e40044
reference counter: 0
size: 4
access rights: read/write
main thread ($5c60):
671a69f6 madExcept32.dll madExceptDbg     2781 GlobalAllocCallback
00666fa1 Project1.exe    DragDropFormats  1258 TCustomSimpleClipboardFormat.DoSetData
0066e669 Project1.exe    DragDrop         1129 TClipboardFormat.SetDataToMedium
0066e690 Project1.exe    DragDrop         1136 TClipboardFormat.SetData
006669d8 Project1.exe    DragDropFormats  1012 TCustomSimpleClipboardFormat.Create
0066b7b6 Project1.exe    DropTarget       1515 TCustomDropTarget.SetPerformedDropEffect
0066a30a Project1.exe    DropTarget        880 TCustomDropTarget.DoDrop
0066a1b8 Project1.exe    DropTarget        766 TCustomDropTarget.Drop
75d54c7b RPCRT4.dll                            NdrStubCall2
76c4b3cc combase.dll                           CStdStubBuffer_Invoke
761d37cb USER32.dll                            DispatchMessageW
006565c7 Project1.exe    Vcl.Forms       10724 TApplication.ProcessMessage
memory dump:
0149dfa8  01 00 00 00                                        ....

Can you send me the source of this project to my mail displayed on my profile please?

i'm not sure, that is it a real memory leak, but only a madExcept problem. if I change the source code so that the "error" is gone, there are side effects elsewhere.

i'm not sure, that is it a real memory leak, but only a madExcept problem. if I change the source code so that the "error" is gone, there are side effects elsewhere.

It could be a "false positive" from madexcept. Might be something to take up with them so I'll post this on their forum. I'll also see if there's a way to just suppress the error. I tried that but had no luck, so I'll ask about that too.

I can suppress the madexcept errors doing the following:
Add madexcept, DragDropFormats to Uses
Then in the TForm1.DropComboTarget1Drop procedure, add these lines:
  HideLeak(TFixedStreamAdapter,1);
  HideLeak('GlobalAlloc');

You can add the HideLeak in just the Drop procedure as the errors only seem to crop up when I drop a file.
Hopefully this will help.

thank you, i have added a note in the appropriate place


A Check Fail can be triggerred in GRUBlockCell

Click to expand!
Issue Type
Bug
Source
binary
Tensorflow Version
tf 2.9 and 2.12.0-dev20221018
Custom Code
No
OS Platform and Distribution
Linux Ubuntu 20.04
Mobile device
No response
Python version
3.8
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
CUDA 11.5
GPU model and memory
No response
Current Behaviour?
A check fail can be triggerred in GRUBlockCell, which can lead to a crash.

Standalone code to reproduce the issue
import tensorflow as tf
import numpy as np
print(tf.__version__)
for _ in range(20):
    try:
            x = tf.random.uniform([1, 0, 1], dtype=tf.float32)
            h_prev = tf.random.uniform([1, 1, 1], dtype=tf.float32)
            w_ru = tf.random.uniform([1, 2, 1, 1, 1, 1], dtype=tf.float32)
            w_c = tf.random.uniform([1, 1, 1], dtype=tf.float32)
            b_ru = tf.random.uniform([2], dtype=tf.float32)
            b_c = tf.random.uniform([1], dtype=tf.float32)
            res = tf.raw_ops.GRUBlockCell(
                x=x,
                h_prev=h_prev,
                w_ru=w_ru,
                w_c=w_c,
                b_ru=b_ru,
                b_c=b_c,
            )
    except:
        pass

Relevant log output
F tensorflow/core/framework/tensor_shape.cc:45] Check failed: NDIMS == dims() (2 vs. 3)Asking for tensor of 2 dimensions from a tensor of 3 dimensions
Aborted (core dumped)

The same issue exists in GRUBlockCellGrad too.
Code:
import tensorflow as tf
import numpy as np
print(tf.__version__)
for _ in range(20):
    try:
        x = tf.random.uniform([4, 0, 1], dtype=tf.float32)
        h_prev = tf.random.uniform([4, 1, 1], dtype=tf.float32)
        w_ru = tf.random.uniform([1, 2, 1], dtype=tf.float32)
        w_c = tf.random.uniform([1, 1, 1], dtype=tf.float32)
        b_ru = tf.random.uniform([2], dtype=tf.float32)
        b_c = tf.random.uniform([1], dtype=tf.float32)
        r = tf.random.uniform([4, 1, 1], dtype=tf.float32)
        u = tf.random.uniform([4, 1, 1], dtype=tf.float32)
        c = tf.random.uniform([4, 1, 1], dtype=tf.float32)
        d_h = tf.random.uniform([4, 1, 1], dtype=tf.float32)
        res = tf.raw_ops.GRUBlockCellGrad(
            x=x,
            h_prev=h_prev,
            w_ru=w_ru,
            w_c=w_c,
            b_ru=b_ru,
            b_c=b_c,
            r=r,
            u=u,
            c=c,
            d_h=d_h,
        )
    except:
        pass

output:
F tensorflow/core/framework/tensor_shape.cc:45] Check failed: NDIMS == dims() (2 vs. 3)Asking for tensor of 2 dimensions from a tensor of 3 dimensions
Aborted (core dumped)

@sushreebarsa
I was able to reproduce the issue on Colab using TF v2.10 . Please find the attached gists GPU and CPU for reference.
Thank you!

tf.raw_ops are basically designed to be consumed by downstream library users, not end users.
Usually, these APIs are less strict in terms of validation etc which is fine since only library writers are supposed to use these symbols.
If available, please prefer high level API for general use case scenarios. Thanks!

While these are internal APIs, the check failure could lead to denial of service. In the past this used to be considered a vulnerability, but since the impact is bounded and preventable, now the policy is for these to be files as issues and resolved whenever someone from community wants to pick them up (they're very good first issues). Please don't auto-close these!

Hi @mihaimaruseac, can I work on this issue? I will need clues to solve it but I would like to contribute to Tensorflow!

Sure. Please look in tensor_shape.cc: https://github.com/tensorflow/tensorflow/blob/4abf9e92de46ee91df5d2fe3e23ab529b115e52f/tensorflow/core/framework/tensor_shape.cc#L44-L47
The issue is the CHECK_EQ line, that fails whenever the condition is false. You need to trace where the call comes from. Parent is https://github.com/tensorflow/tensorflow/blob/4abf9e92de46ee91df5d2fe3e23ab529b115e52f/tensorflow/core/framework/tensor_shape.h#L653-L657
However, this parent is still too deep inside. You need to find a function for the GRUBlockCell kernel that returns a Status and which in the end will trigger this check failure. Then, in the function, compare the tensor elements and return an invalid status.

@mihaimaruseac
Thanks for your comment!
I'm trying to find a function for the GRUBlockCell kernel that returns a Status but I haven't found it yet... Do you know where it is?
Basically I look into these 2 files.
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/rnn/gru_ops.cc
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/rnn/gru_ops.h

https://github.com/tensorflow/tensorflow/blob/de8c87d351456d5f0d6fcf6b6d3c7d5e63c2b701/tensorflow/core/kernels/rnn/gru_ops.cc#L32-L35
OP_REQUIRES_OK has a similar semantic, if the status is no Ok the macro finishes execution of the kernel and returns the invalid Status back to the user.

Ah OK! Thanks a lot for your explanation!
There are a lot of OP_REQUIRES_OK in the file so I will look at them.

Sure! I thought I would need to add one for this issue because I couldn't find a suitable one
Thanks for your additional comment!

Hi @mihaimaruseac
I need your support again :pray: I created a draft pull request and added a OP_REQUIRES_OK for this issue. However, I don't know yet how I should add it.
Can you give me more clues? Thanks in advance!

I thought I can imitate this example of OP_REQUIRES because it checks dim_size but I need to refer to OP_REQUIRES_OK, right?
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/rnn/gru_ops.cc#L59-L62

@mihaimaruseac could I too work alongside @shogohida on this bug

The error you're encountering is likely due to the shape of the inputs to the GRUBlockCell operation. According to the TensorFlow documentation, the inputs x, h_prev, w_ru, w_c, b_ru, and b_c should have specific shapes based on the dimensions of the input and the parameters being passed to the GRU cell.
In the code you posted, it appears that the shapes of the inputs are not correctly specified. For example, the shape of x is [1, 0, 1], which is not valid.
I would suggest reviewing the documentation and ensuring that the shapes of the inputs match the expected dimensions. You can also check that the shapes of the variables match the dimensions of your input data.

@mihaimaruseac Is this already fixed as of v2.12.0-rc0, or does more remain to be done (besides a possible backport)? It seems that the GRU input validation in ff459137 prevents the crash.
504645490  by A. Unique<EMAIL_ADDRESS>
    Fix input validation for GRU ops.

Instead they're all caught by the except block in the reproducer now. Printing the exceptions, they look like this:
{{function_node __wrapped__GRUBlockCell_device_/job:localhost/replica:0/task:0/device:CPU:0}} Rank of x must be 23 vs. 2 [Op:GRUBlockCell]

Or for the GRUBlockCellGrad reproducer in https://github.com/tensorflow/tensorflow/issues/58261#issuecomment-1287786237:
{{function_node __wrapped__GRUBlockCellGrad_device_/job:localhost/replica:0/task:0/device:CPU:0}} Rank of x must be 2, got 3 [Op:GRUBlockCellGrad]

BTW, I'm new here too, so I apologize if I ask any obvious questions. I don't want to re-do work that's already been done though.

I would install latest  TF (RC0 or nightly) and test if this still reproduces there. If it doesn't then we can close this.

@mihaimaruseac
Installed the nightly package on Colab and the issue doesn't reproduce. Output of both reproducers is just the version:
2.13.0-dev20230215

If I print exceptions, the messages are the same as in https://github.com/tensorflow/tensorflow/issues/58261#issuecomment-1430978328.
I think there's a typo in one of the validation messages though. Note "must be 23 vs. 2.": https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/rnn/gru_ops.cc#L54-L57. Probably should be "3 vs. 2."
Other than that, we might be good.

Nice find!
Can you send a PR to remove the 2 there, tag me in the PR and then we can close this?
Thank you very much!


refactor docker build and docker release

Hi mate !
I looked at how you build docker image and realized that I need to help, I updated actions and now everything happens inside Dockerfile.
Image size has decreased
old : Total Image size: 9.2 MB
new: Total Image size: 3.4 MB
I will be glad to have any comments :)

@Macbet 👋Thank you for your contribution! 🚀
Could you also add this PR to CHANGELOG.md?

Sure!

@Macbet Thank you!


Create WinRT App SDK which supports all API features and transports

Separate SDK with most features no longer needed. We've baked it into the API. SDK with transport configuration and some other helpers is still planned.


Rewriting a dynamic route to a static one erases the static route

Adding something like this:
          <Route exact path="/unit/:unit" render={(props) => (
            <Redirect to={{
              pathname: `/unit`,
              state: {
                stage: props.match.params.unit
              }
            }} />
          )} />

which will route /unit/:unit to /unit while setting location.state to publish the unit.
This will trigger the error
Could not load routeInfo for path: unit/cpce1. If this is a static route, make sure any link to this page is valid! If this is not a static route, you can desregard this warning.

but at the time this happens and state 43 happens the location will already have been rewritten and it will then proceed to remove /unit out of the static route list.
Environment

react-static -v: 5.9.7 (BTW it's react-static --version not -v)
node -v: v9.11.1
yarn --version or npm -v: 1.7.0
Operating system: Mac OS 10.13.5 (17F77)
Browser and version (if relevant): Chrome Version 67.0.3396.87 (Official Build) (64-bit)

Steps to Reproduce the problem
See above.
Expected Behavior
A routing error should not affect the routing table.
Reproducible Demo
See above.

Here is an image of the piece of code:

The case 43: drops through but the value of path is already the rewritten path.

Any suggestions on how to handle this in the library?

@tannerlinsley I am not exactly sure, but maybe not altering the routeInfoByPath if routeInfo is null?

That would probably work great. Would you like to PR that and test it?
On Fri, Jul 13, 2018 at 1:29 PM Andreas Richter<EMAIL_ADDRESS>wrote:

@tannerlinsley https://github.com/tannerlinsley I am not exactly sure,
but maybe not altering the routeInfoByPath if routeInfo is null?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/issues/651#issuecomment-404931052,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUmCXcmGgmSADILsLyu_6SreiDRGCuBks5uGPUSgaJpZM4U9mz0
.


Support regexp config instead of expectIntegerId

For configuring what is considered an 'id' for blueprint routing, sails.config.controllers.blueprints.expectIntegerId should probably be a regexp config instead:
e.g. defaulting to:
sails.config.controllers.blueprints.validId:  /([0-9]+)|([0-9|a-f]+)/i

Since expectIntegerId: false is depreciated in 0.10. What can I do to use blueprints with a uuid primary key?


Support 'ed25519v1-secret' format onion v3 keys

Background
The TOR service will generate keys that start with == ed25519v1-secret: type0 == followed by code that isn't representable in ascii. LND generates a keyfile that starts with ED25519-V3 followed by base64. I wish for LND to support TOR's native v3 onion key format or offer a flag to remove the auto-generated onion address advertisement. It doesn't matter to me if the TOR service hosts the keys or not, I just don't want two onion URIs in LND.
Your environment
lnd 13.1
debian 10
bitcoind 0.21.1
tor <IP_ADDRESS>
Expected behavior
I need LND to have tor.active=true and only advertise one URI which is derived from TOR style v3 keys.
Actual behavior
I end up with two onion addresses in lncli getinfo; one from LND and another from the tor service.
Notes
I'm really sorry to be so persistent about this. Thank you for your help.

Would be nice to support this.
Until then, the conversion could be as easy as:
cat v1_secret | cut -b 32-999 | base32 | xargs -I{} echo "ED25519-V3:{}" > v3_onion_private_key

Haven't tested this on a real key, but should work more or less.

That creates a file with ED25519-V3: at the beginning and also again towards the end. File size is 136 bytes compared to the 99 byte key created by LND.
Also, TOR will create two files; hs_ed25519_public_key and hs_ed25519_secret_key; where is the public key stored for LND?

Good timing as I was just playful around with this too. Oli’s command didn’t work for me either.  I either get a failure trying to read the key or a strange error about Missing Port in Argument

Looking at the Tor spec, it seems like it expects base64 and not base32 for the key. Nonetheless, it still doesn't work when I use Oli's command with base64. I booted up Tor and I'm trying to use the ADD_ONION command directly with my output but no luck. I always get:
512 Failed to decode ED25519-V3 key

For a "ED25519-V3" key is the Base64 encoding of the concatenation of the 32-byte ed25519 secret scalar in little-endian and the 32-byte ed25519 PRF secret.

I wonder if there's more parsing that needs to be done with the hs_ed25519_secret_key file?

To convert back and forth, you can
echo "ED25519-V3:$(dd if=hs_ed25519_secret_key bs=1 skip=32 | base64)" v3_onion_private_key

and
echo 3d3d206564323535313976312d7365637265743a207479706530203d3d000000 | xxd -r -p > hs_ed25519_secret_key
dd if=v3_onion_private_key bs=1 skip=11 | base64 -d | dd of=hs_ed25519_secret_key bs=1 seek=32

You can also set up the service in torrc and remove the tor.v3 line on lnd.conf, leaving
listen=localhost
tor.active=true
tor.streamisolation=true
externalip=lndroutekytme3xds6cmbxaniretdgox2hk4cpu4k27jnub3gkfeuhqd.onion:9735

change the externalip to your own onion address.

Thanks for the help, @lnd-routing . That worked! I went with the conversion as it's easier for automation. I also figured out what my Missing 'Port' in argument error was because the file had a line break at the end of it. All working now 👍

Note #5757 is why we use torrc instead of letting lnd manage the address.

FYI, on MacOS the -w 0 has to be removed ... see https://github.com/xanoni/tor-misc/blob/main/tor-privkey-to-base64.sh
Cupertino ships the BSD version of base64, which is a bit different.
Alternatively, you can use the GNU version (gbase64 if installed via Homebrew).

You can also set up the service in torrc and remove the tor.v3 line on lnd.conf, leaving
listen=localhost
tor.active=true
tor.streamisolation=true
externalip=lndroutekytme3xds6cmbxaniretdgox2hk4cpu4k27jnub3gkfeuhqd.onion:9735

change the externalip to your own onion address.
This is our current setup and only advertises one onion. We converted the original v3_onion_private_key to a hs_ed25519_secret_key to keep our old address connectable for while until everyone's graph syncs.

All I get is lnd[2613]: failed to load config: /home/lnd/.lnd/lnd.conf:52: unknown option: externalip

The last echo command apparently seems to generate the v3_onion_private_key, but when lnd starts it fails:
Apr 21 12:32:36 localhost.localdomain lnd[795811]: 2023-04-21 12:32:36.359 [ERR] LTND: Shutting down because error in main method: unable to start server: unexpected code
Apr 21 12:32:36 localhost.localdomain lnd[795811]: 2023-04-21 12:32:36.359 [ERR] TORC: DEL_ONION got error: invalid arguments: unexpected code

What is the current way of not letting lnd generate on onion and use an external onion generate from hs_ed25519_secret_key ?


Consider how to better handle CircuitBreaker failures

Presently, execution failures according to a CircuitBreaker can cause state transitions in the CircuitBreaker, but the Failsafe event listeners are not called and a fallback is not used. Consider whether and how CircuitBreaker failures should be combined with event listeners and fallbacks, as they do with RetryPolicies. Are there any pitfalls here?

I've been playing with the CircuitBreaker the last couple of days when I ran into this issue. I can't think of any pitfalls but I can say that the current behaviour of Failsafe made me want to file a bugreport.
To figure out the current behaviour I wrote a few tests:
`public class CircuitBreakerTests {
private static final Integer INTERNAL_SERVER_ERROR = 500;

@Test
public void whenOpen() {
    CircuitBreaker breaker = new CircuitBreaker().withDelay(1, MINUTES);
    breaker.open();

    final boolean[] onSuccess = {false};
    final boolean[] onComplete = {false};
    final boolean[] onFailure = {false};
    final boolean[] fallback = {false};

    Failsafe.with(breaker)
        .onSuccess((o, executionContext) -> onSuccess[0] = true)
        .onFailure((result, failure, context) -> onFailure[0] = true )
        .onComplete((result, failure, context) -> onComplete[0] = true )
        .withFallback(() -> { fallback[0] = true; return true; })
        .get(() -> 200);

    assertFalse("Success SHOULD NOT be called", onSuccess[0]);
    assertTrue("Completion SHOULD be called", onComplete[0]);
    assertTrue("Success SHOULD be called", onFailure[0]);
    assertTrue("Fallback SHOULD be called", fallback[0]);
}

@Test
public void onCodeWithPredicate() {
    final boolean[] onSuccess = {false};
    final boolean[] onComplete = {false};
    final boolean[] onFailure = {false};
    final boolean[] fallback = {false};

    CircuitBreaker breaker = new CircuitBreaker()
            .withDelay(1, MINUTES)
            .failIf((o, throwable) -> INTERNAL_SERVER_ERROR.equals(o) || throwable != null);

    Failsafe.with(breaker)
        .onSuccess((o, executionContext) -> onSuccess[0] = true)
        .onFailure((result, failure, context) -> onFailure[0] = true)
        .onComplete((result, failure, context) -> onComplete[0] = true)
        .withFallback(() -> { fallback[0] = true; return 200; })
        .get(() -> 500);

    assertFalse("Success SHOULD NOT be called", onSuccess[0]);
    assertTrue("Completion SHOULD be called", onComplete[0]);
    assertTrue("Success SHOULD be called", onFailure[0]);
    assertTrue("Fallback SHOULD be called", fallback[0]);
}

@Test
public void onException() {
    final boolean[] onSuccess = {false};
    final boolean[] onComplete = {false};
    final boolean[] onFailure = {false};
    final boolean[] fallback = {false};

    CircuitBreaker breaker = new CircuitBreaker().withDelay(1, MINUTES);

    Failsafe.with(breaker)
            .onSuccess((o, executionContext) -> onSuccess[0] = true)
            .onFailure((result, failure, context) -> onFailure[0] = true)
            .onComplete((result, failure, context) -> onComplete[0] = true)
            .withFallback(() -> { fallback[0] = true; return 200; })
            .get(() -> { throw new Exception(); });

    assertFalse("Success SHOULD NOT be called", onSuccess[0]);
    assertTrue("Completion SHOULD be called", onComplete[0]);
    assertTrue("Success SHOULD be called", onFailure[0]);
    assertTrue("Fallback SHOULD be called", fallback[0]);
}

@Test
public void onExceptionWithPredicate() {
    final boolean[] onSuccess = {false};
    final boolean[] onComplete = {false};
    final boolean[] onFailure = {false};
    final boolean[] fallback = {false};

    CircuitBreaker breaker = new CircuitBreaker()
        .withDelay(1, MINUTES)
        .failIf((o, throwable) -> INTERNAL_SERVER_ERROR.equals(o) || throwable != null);

    Failsafe.with(breaker)
        .onSuccess((o, executionContext) -> onSuccess[0] = true)
        .onFailure((result, failure, context) -> onFailure[0] = true)
        .onComplete((result, failure, context) -> onComplete[0] = true)
        .withFallback(() -> { fallback[0] = true; return 200; })
        .get(() -> { throw new Exception(); });

    assertFalse("Success SHOULD NOT be called", onSuccess[0]);
    assertTrue("Completion SHOULD be called", onComplete[0]);
    assertTrue("Success SHOULD be called", onFailure[0]);
    assertTrue("Fallback SHOULD be called", fallback[0]);
}

@Test
public void onErrorWithWhen() {
    final boolean[] onSuccess = {false};
    final boolean[] onComplete = {false};
    final boolean[] onFailure = {false};
    final boolean[] fallback = {false};

    CircuitBreaker breaker = new CircuitBreaker()
        .withDelay(1, MINUTES)
        .failWhen(500);

    Failsafe.with(breaker)
        .onSuccess((o, executionContext) -> onSuccess[0] = true)
        .onFailure((result, failure, context) -> onFailure[0] = true)
        .onComplete((result, failure, context) -> onComplete[0] = true)
        .withFallback(() -> { fallback[0] = true; return 200; })
        .get(() -> 500);

    assertFalse("Success SHOULD NOT be called", onSuccess[0]);
    assertTrue("Completion SHOULD be called", onComplete[0]);
    assertTrue("Success SHOULD be called", onFailure[0]);
    assertTrue("Fallback SHOULD be called", fallback[0]);
}

}`
Of these tests onException and onExceptionWithPredicate succeed. The statement "Presently, execution failures according to a CircuitBreaker can cause state transitions in the CircuitBreaker, but the Failsafe event listeners are not called and a fallback is not used." appears to me to be incorrect. If you configure a fallback and throw an Exception in the Callable FailSafe will call the fallback and the listeners.
However, in any other type of failure case the fallback and failure listeners will not be called.
I would expect this behaviour from Failsafe:

the onComplete handler is always called
the onSuccess handler is called only when the Runnable or Callable has been executed and did not generate an error condition
the onFailure and fallback handlers are called when the CircuitBreaker is in OPEN state or when a predicate says it is a failure


parseDateTime split is using default time format if not passed via timeSettings

splitDateTime uses the format from the effective timeSettings.
When called by parseDateTimeInternal/parseDateTime this is not necessarily the same as the timeFormat passed via the argument (so one must actually pass it both as the argument and in timeSettings to get the correct/expected results). This shouldn't be necessary.

:+1: