Portainer sends EXEC command w/o host header (which violates RFC2616 and RFC7230) and  to the wrong path

Requirements

a host is connected via Docker API to Portainer
the endpoint URL ends with a path (e.g 192.168.178:1443/docker)

Bug description
Portainer sends most requests respecting the path but not the exec request.
POST /docker/containers/CNT_ID/exec HTTP/1.1" 201 85
POST /exec/EXEC_ID/start HTTP/1.1" 400 166
POST /docker/exec/EXEC_ID/resize?h=31&w=138 HTTP/1.1" 500
POST /docker/exec/EXEC_ID/resize?h=30&w=137 HTTP/1.1" 500
Expected behavior
Portainer should always pay attention for the configured path.
Steps to reproduce the issue:

Go to endpoints
Click on 'Docker (directly connect to the Docker API)'
See configuration image
See error image

Reproducing by installing Docker API-Proxy (https://github.com/1thorsten/http-over-all)
I've created a special version (with increased log level) 1thorsten/http-over-all:snapshot-portainer
docker run -p 1443:443 -d --name docker-proxy \
 -v /var/run/docker.sock:/var/run/docker.sock \
 --env PROXY_1_URL=http://unix:/var/run/docker.sock:/ \
 --env PROXY_1_NAME=docker \
 1thorsten/http-over-all:snapshot-portainer

Technical details:

Portainer version: 2.1.1
Docker version (managed by Portainer): 20.10.2 - 20.10.5
Kubernetes version (managed by Portainer): ./.
Platform (windows/linux): linux and macos
Command used to start Portainer (docker run -p 9000:9000 portainer/portainer): docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Browser: chrome
Have you reviewed our technical documentation and knowledge base? Yes

In addition to the missing path, the exec request is also missing at least the host header.
My nginx server responds with an HTTP 400 in any case due to the missing host header.
*6 http request line: "POST /exec/c8302a921c570b5af2d11528f328d9c9d39a72fd2e4e6fba35bbe2756306d9b9/start HTTP/1.1"
*6 client sent invalid host header while reading client request headers
*6 http special response: 400

invalid_host_header.txt

@PortainerSupport
Any chance someone can take a look at this problem?

Hi Thorsten,
I'll escalate this to the Product Team. Will update you soon.
Thanks

While I'm distressed that you'd proxy the Docker API via http this way, I've done some work to make Portainer do this better (in its API proxy), and am interested in exploring both the issue you found, and if we can solve your problem (differently)

yeah, this isn't going to be fixed quickly, I'm sorry

Hi, is there any news here?

@1thorsten
I am going to revisit this issue with our Product team.  I will update as I learn more.
Thanks!

Update:
Product has reviewed.  They are having ongoing discussions regarding.  I do not yet have a timeline or a release.
Thanks!


razor pages view component issue

hi,
when I try to import view component in asp.net core 2 razor pages like below
@{
        await Component.InvokeAsync("DeleteModal", new { name = "Default", item = Model.ViewModel.DeleteModalViewModel });
   }

this does not work.  I have to use one line code as below
@await Component.InvokeAsync("DeleteModal", new { name = "Default", item = Model.ViewModel.DeleteModalViewModel })

Component.InvokeAsync returns an IHtmlContent: https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.ViewFeatures/IViewComponentHelper.cs#L26. The returned value needs to be written to the output, like the second instance, for the view component's content to appear in the output.

<div>
    **@await Component.InvokeAsync("PriorityList", new { maxPriority = 4, isDone = true })**

    @{
        var ViewModel = new TestViewModel();
        ViewModel.Title = "selam title";
        _@await Component.InvokeAsync("Test", new { item = ViewModel });_
    }

</div>

these two Component.Invoke methods works fine in classic Core MVC example
https://github.com/aspnet/Docs/tree/master/aspnetcore/mvc/views/view-components/sample/ViewCompFinal . But not working in Razor Pages.

Does adding the @ in front of await make a difference in your Razor Pages sample?

@azizkazdal, will you be able to share the "DeleteModal" view?

my test code git url https://github.com/azizkazdal/aspnetcorerazorpages

@pranavkm it worked when I added @ in front of await.

Thanks @azizkazdal. Can you also share a sample targeting classic AspNet MVC, which would repro the issue?


Run Flutter app blank screen when choose Linux device (Flutter 3.3.0, Dart 2.18.0)

Steps to Reproduce

Execute flutter run on the code sample
...
...

Expected results:
A Flutter default demo page.
Actual results:  A blank screen

Sample code
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ),
    );
  }
}

flutter run
bug$ flutter run
Multiple devices found:
Linux (desktop) • linux  • linux-x64      • Ubuntu 22.04.1 LTS 5.15.0-47-generic
Chrome (web)    • chrome • web-javascript • Google Chrome 105.0.5195.102
[1]: Linux (linux)
[2]: Chrome (chrome)
Please choose one (To quit, press "q/Q"): 1
Launching lib/main.dart on Linux in debug mode...
Building Linux application...
Syncing files to device Linux...                                    63ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

💪 Running with sound null safety 💪

An Observatory debugger and profiler on Linux is available at: http://<IP_ADDRESS>:39111/ALV-M0OW_9U=/
The Flutter DevTools debugger and profiler on Linux is available at: http://<IP_ADDRESS>:9101?uri=http://<IP_ADDRESS>:39111/ALV-M0OW_9U=/
Application finished.

Process
pid	11310
current memory	231.3MB
peak memory	237.2MB
malloc used memory	-1B
malloc capacity memory	-1B
malloc implementation	unknown
view [malloc profile](http://<IP_ADDRESS>:39111/ALV-M0OW_9U=/#/native-memory-profile)	view [process memory](http://<IP_ADDRESS>:39111/ALV-M0OW_9U=/#/process-snapshot)

VM
name	vm@ws://<IP_ADDRESS>:39111/ALV-M0OW_9U=/ws
version	2.18.0 (stable) (Fri Aug 26 10:22:54 2022 +0000) on "linux_x64"
features	release no-code_comments no-dwarf_stack_traces_mode lazy_dispatchers no-dedup_instructions asserts use_field_guards use_osr no-branch_coverage x64-sysv no-compressed-pointers no-null-safety
embedder	Flutter
current memory	90.7MB
started at	2022-09-06 09:54:25.668
uptime	0:00:07.952000
refreshed at	2022-09-06 09:54:33.620

see [flags](http://<IP_ADDRESS>:39111/ALV-M0OW_9U=/#/flags)	view [timeline](http://<IP_ADDRESS>:39111/ALV-M0OW_9U=/#/timeline)

Isolate Group<PHONE_NUMBER>4885555000 (main.dart)
[Isolate<PHONE_NUMBER>649471 (main)](http://<IP_ADDRESS>:39111/ALV-M0OW_9U=/#/inspect?isolateId=isolates%2F4222786260649471)

<!--
      Run your application with `flutter run --verbose` and attach all the
      log output below between the lines with the backticks. If there is an
      exception, please see if the error message includes enough information
      to explain how to solve the issue. If there is a crash, please include
      the entirety of the crash log including the backtrace.
-->

$ flutter run --verbose
[  +41 ms] executing: uname -m
[  +20 ms] Exit code 0 from: uname -m
[        ] x86_64
[   +3 ms] executing: [/home/alan/Development/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +4 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] ffccd96b62ee8cec7740dab303538c5fc26ac543
[        ] executing: [/home/alan/Development/flutter/] git tag --points-at ffccd96b62ee8cec7740dab303538c5fc26ac543
[  +11 ms] Exit code 0 from: git tag --points-at ffccd96b62ee8cec7740dab303538c5fc26ac543
[        ] 3.3.0
[  +35 ms] executing: [/home/alan/Development/flutter/] git rev-parse --abbrev-ref --symbolic @{upstream}
[   +4 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{upstream}
[        ] origin/stable
[        ] executing: [/home/alan/Development/flutter/] git ls-remote --get-url origin
[   +3 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +29 ms] executing: [/home/alan/Development/flutter/] git rev-parse --abbrev-ref HEAD
[   +4 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[  +38 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] 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.
[  +34 ms] executing: /home/alan/Android/Sdk/platform-tools/adb devices -l
[  +28 ms] List of devices attached
[   +3 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.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' 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.
[  +49 ms] Skipping pub get: version match.
[  +90 ms] Initializing file store
[   +6 ms] Skipping target: gen_localizations
[   +4 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
/home/alan/Development/self/test/.dart_tool/package_config_subset}
[  +16 ms] gen_dart_plugin_registrant: Complete
[        ] Skipping target: _composite
[   +1 ms] complete
[   +3 ms] Launching lib/main.dart on Linux in debug mode...
[   +3 ms] /home/alan/Development/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev
/home/alan/Development/flutter/bin/cache/dart-sdk/bin/snapshots/frontend_server.dart.snapshot --sdk-root
/home/alan/Development/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter --debugger-module-names
--experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill /tmp/flutter_tools.TAEPAG/flutter_tool.HNDJFF/app.dill --packages
/home/alan/Development/self/test/.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
--enable-experiment=alternative-invalidation-strategy
[  +18 ms] Building Linux application...
[  +12 ms] <- compile package:test/main.dart
[   +2 ms] executing: [build/linux/x64/debug/] cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DFLUTTER_TARGET_PLATFORM=linux-x64
/home/alan/Development/self/test/linux
[  +46 ms] -- Configuring done
[        ] -- Generating done
[        ] -- Build files have been written to: /home/alan/Development/self/test/build/linux/x64/debug
[   +1 ms] executing: ninja -C build/linux/x64/debug install
[   +7 ms] ninja: Entering directory `build/linux/x64/debug'
[+2535 ms] [1/5] Generating /home/alan/Development/self/test/linux/flutter/ephemeral/libflutter_linux_gtk.so,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_engine.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_method_call.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_method_response.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_value.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/fl_view.h,
/home/alan/Development/self/test/linux/flutter/ephemeral/flutter_linux/flutter_linux.h, _phony_
[   +2 ms] [  +43 ms] executing: uname -m
[        ] [  +21 ms] Exit code 0 from: uname -m
[        ] [        ] x86_64
[        ] [   +4 ms] executing: [/home/alan/Development/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [   +4 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [        ] ffccd96b62ee8cec7740dab303538c5fc26ac543
[        ] [        ] executing: [/home/alan/Development/flutter/] git tag --points-at ffccd96b62ee8cec7740dab303538c5fc26ac543
[        ] [  +10 ms] Exit code 0 from: git tag --points-at ffccd96b62ee8cec7740dab303538c5fc26ac543
[        ] [        ] 3.3.0
[        ] [  +45 ms] executing: [/home/alan/Development/flutter/] git rev-parse --abbrev-ref HEAD
[        ] [   +4 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] [        ] stable
[        ] [  +35 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] 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.
[        ] [  +51 ms] executing: [/home/alan/Development/flutter/] git rev-parse --abbrev-ref --symbolic @{upstream}
[        ] [   +3 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{upstream}
[        ] [        ] origin/stable
[        ] [        ] executing: [/home/alan/Development/flutter/] git ls-remote --get-url origin
[        ] [   +2 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.
[        ] [        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [   +1 ms] 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.
[        ] [  +24 ms] Initializing file store
[        ] [   +3 ms] Done initializing file store
[        ] [  +21 ms] Skipping target: gen_localizations
[        ] [   +6 ms] Skipping target: gen_dart_plugin_registrant
[        ] [ +289 ms] Skipping target: unpack_linux
[        ] [ +209 ms] kernel_snapshot: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
/home/alan/Development/self/test/lib/main.dart}
[   +1 ms] [   +5 ms] /home/alan/Development/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev
/home/alan/Development/flutter/bin/cache/dart-sdk/bin/snapshots/frontend_server.dart.snapshot --sdk-root
/home/alan/Development/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --target=flutter --no-print-incremental-dependencies
-DFLUTTER_WEB_AUTO_DETECT=true -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --packages
/home/alan/Development/self/test/.dart_tool/package_config.json --output-dill
/home/alan/Development/self/test/.dart_tool/flutter_build/c84164c59755b5445f89366b522e2b95/app.dill --depfile
/home/alan/Development/self/test/.dart_tool/flutter_build/c84164c59755b5445f89366b522e2b95/kernel_snapshot.d --incremental --initialize-from-dill
/home/alan/Development/self/test/.dart_tool/flutter_build/c84164c59755b5445f89366b522e2b95/app.dill --verbosity=error package:test/main.dart
[   +1 ms] [ +789 ms] kernel_snapshot: Complete
[        ] [ +275 ms] debug_bundle_linux-x64_assets: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
/home/alan/Development/self/test/.dart_tool/flutter_build/c84164c59755b5445f89366b522e2b95/app.dill}
[        ] [ +170 ms] debug_bundle_linux-x64_assets: Complete
[        ] [ +127 ms] Persisting file store
[        ] [   +3 ms] Done persisting file store
[        ] [   +3 ms] build succeeded.
[        ] [   +5 ms] "flutter assemble" took 2,009ms.
[        ] [  +26 ms] ensureAnalyticsSent: 24ms
[        ] [        ] Running shutdown hooks
[        ] [        ] Shutdown hooks complete
[        ] [        ] exiting with code 0
[ +347 ms] [2/5] Building CXX object CMakeFiles/test.dir/flutter/generated_plugin_registrant.cc.o
[  +21 ms] [3/5] Building CXX object CMakeFiles/test.dir/my_application.cc.o
[  +85 ms] [4/5] Linking CXX executable intermediates_do_not_run/test
[        ] [4/5] Install the project...
[   +4 ms] -- Install configuration: "Debug"
[   +6 ms] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/test
[        ] -- Set runtime path of "/home/alan/Development/self/test/build/linux/x64/debug/bundle/test" to "$ORIGIN/lib"
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/icudtl.dat
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/lib/libflutter_linux_gtk.so
[  +31 ms] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/kernel_blob.bin
[  +27 ms] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/FontManifest.json
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/shaders
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/shaders/ink_sparkle.frag
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/NOTICES.Z
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/AssetManifest.json
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/packages
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets
[        ] -- Installing:
/home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/fonts
[        ] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/fonts/MaterialIcons-Regular.otf
[   +1 ms] -- Installing: /home/alan/Development/self/test/build/linux/x64/debug/bundle/data/flutter_assets/version.json
[  +11 ms] Building Linux application... (completed in 3.1s)
[ +151 ms] Observatory URL on device: http://<IP_ADDRESS>:38321/d_-g_XbHq20=/
[   +3 ms] Caching compiled dill
[  +29 ms] Connecting to service protocol: http://<IP_ADDRESS>:38321/d_-g_XbHq20=/
[  +90 ms] Launching a Dart Developer Service (DDS) instance at http://<IP_ADDRESS>:0, connecting to VM service at http://<IP_ADDRESS>:38321/d_-g_XbHq20=/.
[  +61 ms] DDS is listening at http://<IP_ADDRESS>:34531/eTx2BgNjbdg=/.
[  +36 ms] Successfully connected to service protocol: http://<IP_ADDRESS>:38321/d_-g_XbHq20=/
[  +26 ms] DevFS: Creating new filesystem on the device (null)
[  +17 ms] DevFS: Created new filesystem on the device (file:///tmp/testJCKGBA/test/)
[   +1 ms] Updating assets
[  +58 ms] Syncing files to device Linux...
[        ] Compiling dart to kernel with 0 updated files
[        ] Processing bundle.
[        ] <- recompile package:test/main.dart b39670eb-9793-4e7d-8d7a-27929672261b
[        ] <- b39670eb-9793-4e7d-8d7a-27929672261b
[   +1 ms] Bundle processing done.
[  +61 ms] Updating files.
[        ] DevFS: Sync finished
[        ] Syncing files to device Linux... (completed in 65ms)
[        ] Synced 0.0MB.
[        ] <- accept
[   +1 ms] Connected to _flutterView/0x560c94ddb940.
[   +1 ms] Flutter run key commands.
[   +1 ms] r Hot reload. 🔥🔥🔥
[        ] R Hot restart.
[        ] h List all available interactive commands.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] 💪 Running with sound null safety 💪
[        ] An Observatory debugger and profiler on Linux is available at: http://<IP_ADDRESS>:34531/eTx2BgNjbdg=/
[ +197 ms] The Flutter DevTools debugger and profiler on Linux is available at: http://<IP_ADDRESS>:9101?uri=http://<IP_ADDRESS>:34531/eTx2BgNjbdg=/

$ flutter analyze
Analyzing test...
No issues found! (ran in 1.3s)

$ flutter doctor -v
[✓] Flutter (Channel stable, 3.3.0, on Ubuntu 22.04.1 LTS 5.15.0-47-generic, locale zh_TW.UTF-8)
    • Flutter version 3.3.0 on channel stable at /home/alan/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ffccd96b62 (7 天前), 2022-08-29 17:28:57 -0700
    • Engine revision 5e9e0e0aa8
    • Dart version 2.18.0
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /home/alan/Android/Sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /home/alan/Development/android-studio-2<IP_ADDRESS>-linux/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.6-1~kisak1~j
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2021.2)
    • Android Studio at /home/alan/Development/android-studio-2<IP_ADDRESS>-linux/android-studio
    • Flutter plugin version 69.0.2
    • Dart plugin version 212.5744
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code (version 1.71.0)
    • VS Code at /usr/share/code
    • Flutter extension version 3.48.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 22.04.1 LTS 5.15.0-47-generic
    • Chrome (web)    • chrome • web-javascript • Google Chrome 105.0.5195.102

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

• No issues found!

Demo
https://user-images.githubusercontent.com/16208737/188531770-2169d6c2-1d26-4610-a556-6688db6aeb21.webm

Hi @qwedsa274
I can not reproduce the issue on the latest stable and master channels.
I have same OS version like you: Ubuntu 22.04.1 LTS 5.15.0-47-generic

Demo

flutter doctor -v
[✓] Flutter (Channel stable, 3.3.0, on Ubuntu 22.04.1 LTS 5.15.0-47-generic, locale en_US.UTF-8)
    • Flutter version 3.3.0 on channel stable at /home/huynq/Documents/Working/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ffccd96b62 (7 days ago), 2022-08-29 17:28:57 -0700
    • Engine revision 5e9e0e0aa8
    • Dart version 2.18.0
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /home/huynq/Android/Sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /home/huynq/Documents/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2021.1)
    • Android Studio at /home/huynq/Documents/android-studio
    • Flutter plugin version 67.0.1
    • Dart plugin version 211.7817
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] VS Code (version 1.71.0)
    • VS Code at /usr/share/code
    • Flutter extension version 3.48.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 22.04.1 LTS 5.15.0-47-generic
    • Chrome (web)    • chrome • web-javascript • Google Chrome 105.0.5195.102

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

• No issues found!

[✓] Flutter (Channel master, 3.4.0-19.0.pre.86, on Ubuntu 22.04.1 LTS 5.15.0-47-generic, locale en_US.UTF-8)
    • Flutter version 3.4.0-19.0.pre.86 on channel master at /home/huynq/Documents/Working/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a04e6b7618 (3 hours ago), 2022-09-06 02:08:10 -0400
    • Engine revision 623b80157c
    • Dart version 2.19.0 (build 2.19.0-171.0.dev)
    • DevTools version 2.17.0

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /home/huynq/Android/Sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /home/huynq/Documents/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2021.1)
    • Android Studio at /home/huynq/Documents/android-studio
    • Flutter plugin version 67.0.1
    • Dart plugin version 211.7817
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] VS Code (version 1.71.0)
    • VS Code at /usr/share/code
    • Flutter extension version 3.48.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 22.04.1 LTS 5.15.0-47-generic
    • Chrome (web)    • chrome • web-javascript • Google Chrome 105.0.5195.102

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

• No issues found!

Could you please try upgrading to the latest Flutter master channel and then retry?
Also, is this issue happened before with older Flutter versions?

Hi @huycozy,
Thanks for reply.
In my environment (both we are Ubuntu 22.04.1 LTS 5.15.0-47-generic, the only differents are Java version OpenJDK Runtime
and Linux clang version).
In latest master chanel could run app. And the stable 3.0.5 also fine and work.
Only in stable 3.3.0 will blank screen.

Hi @qwedsa274,
Could you try resizing the screen to see if there's a flickering effect there? It may be similar to this issue https://github.com/flutter/flutter/issues/104154#issue-1241310821 that has been fixed.

Hi @huycozy,
Resizing the screen also blank screen in stable 3.3.0.
Video as attach file.
螢幕錄影 2022年09月06日 21時01分30秒.webm

@qwedsa274 thanks for providing the demo video.

In latest master chanel could run app.

Can you confirm whether or not the screen turns black when running with the Flutter master channel?

Hi @huycozy
In same Flutter demo code page and same environment.

Only the stable channel 3.3.0 will blank screen.
Master channel run app as below record.
螢幕錄影 2022年09月07日 12時24分00秒.webm

@qwedsa274 Nice, thanks for confirming this and providing the demo video. This means that the issue has been fixed on master channel.
Closing as fixed on the master channel. The fix should land on the stable channel in future releases. Thanks for your contribution!


default bucket in r_bring_your_own notebook

Description of changes: Bucket previously used a placeholder, which prevented automated testing. Bucket is now defaulted using sagemaker-python-sdk's default_bucket() function.
Testing Done: Manually uploaded notebook and ran it.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Cannot read library(mda) in Mars.R because that library is only compatible with R 3.5+, and Sagemaker R scripts run on R 3.2.3.


Create Song “2023-05-26/index”

Automatically generated by Netlify CMS

👷 Deploy Preview for cmsnayabdev processing.

Name
Link

🔨 Latest commit
9d4113d5ba9b31e2d84fa8158b07e25e9c2a5bf6

🔍 Latest deploy log
https://app.netlify.com/sites/cmsnayabdev/deploys/6470983cdda29c00083000d5


Hyperlink from TextBlock within ToggleSwitch Header can't be clicked

Describe the bug
Hyperlink from TextBlock within ToggleSwitch Header can't be clicked.
Steps to reproduce the bug
Just use the XAML below to reproduce:
<ToggleSwitch AutomationProperties.Name="simple ToggleSwitch">
    <ToggleSwitch.Header>
        <TextBlock TextWrapping="WrapWholeWords" MaxLines="100">
            <Span xml:space="preserve"><Hyperlink NavigateUri="https://docs.microsoft.com/en-us/windows/powertoys/#fancyzones">FancyZones from Microsoft PowerToys</Hyperlink></Span>
        </TextBlock>
    </ToggleSwitch.Header>
</ToggleSwitch>

Expected behavior
Hyperlink should be clickable.
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.0
Windows app type

[ ] UWP
[X] Win32

Device form factor
Desktop
Windows version
Insider Build (xxxxx)
Additional context
Windows 11

@gegao18 this seems similar to a hyperlink issue you fixed recently. @codendone FYI


Clarify pattern matching in AAD OIDC for GitHub

Pattern matching not being supported in GH OIDC credentials is a bit of a foot-gun. Explain that pattern matching is not supported and suggest using environment instead of branch or tag.

Learn Build status updates of commit 651709f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/active-directory/develop/workload-identity-federation-create-trust.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@rwike77
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@benjamin-brady Thanks for the update.  #sign-off


feat: running on isolates

Is there a way to have this running on an isolate?

@tomassasovsky
Yes, it is possible.
Here is the code that uses isolate in my product.
Please note that this is only the part related to isolate, so it is not the complete code.
class NcnnYoloxController {
  static late final SendPort _sendPort;
  static late final ReceivePort _answerPort;
  static StreamSubscription<dynamic>? _answerSubscription;

  var _isDetectProcessing = false;
  static const _delay =
      kDebugMode ? Duration(seconds: 2) : Duration(milliseconds: 500);

  DateTime? _lastDetectTime;

  void dispose() {
    _answerSubscription?.cancel();
  }

  static Future<void> initializeNcnnYolox() async {
    await _ncnnYolox.initYolox(
      modelPath: 'assets/yolox/yolox.bin',
      paramPath: 'assets/yolox/yolox.param',
    );

    final receivePort = ReceivePort();
    await Isolate.spawn(_compute, receivePort.sendPort);
    _sendPort = await receivePort.first as SendPort;
    _answerPort = ReceivePort();
  }

  Future<void> detect(
    CameraImage image,
  ) async {
    if (_isDetectProcessing) {
      return;
    }

    final now = DateTime.now();
    if (_lastDetectTime != null && now.difference(_lastDetectTime!) < _delay) {
      return;
    }
    _isDetectProcessing = true;

    final deviceOrientationType =
        _read(myCameraController.notifier).deviceOrientationType;
    final sensorOrientation =
        _read(myCameraController.notifier).sensorOrientation;

    _sendPort.send([
      image,
      deviceOrientationType,
      sensorOrientation,
      _answerPort.sendPort,
    ]);

    _answerSubscription ??= _answerPort.listen(
      (message) async {
        _read(_detectResults.notifier).state = message as DetectResults;
        _lastDetectTime = DateTime.now();
        _isDetectProcessing = false;
      },
    );
  }
}

void _compute(SendPort initialReplyTo) {
  final receivePort = ReceivePort();
  initialReplyTo.send(receivePort.sendPort);

  receivePort.listen((obj) {
    final message = obj as List<dynamic>;

    final image = message[0] as CameraImage;
    final deviceOrientationType =
        message[1] as KannaRotateDeviceOrientationType;
    final sensorOrientation = message[2] as int;
    final send = message[3] as SendPort;

    final results = _ncnnYoloxCompute(
      ncnnYolox: _ncnnYolox,
      image: image,
      deviceOrientationType: deviceOrientationType,
      sensorOrientation: sensorOrientation,
    );
    send.send(results);
  });
}

DetectResults _ncnnYoloxCompute({
  required NcnnYolox ncnnYolox,
  required CameraImage image,
  required KannaRotateDeviceOrientationType deviceOrientationType,
  required int sensorOrientation,
}) {
  switch (image.format.group) {
    case ImageFormatGroup.unknown:
    case ImageFormatGroup.jpeg:
      return const DetectResults();
    case ImageFormatGroup.yuv420:
      return ncnnYolox.detectYUV420(
        y: image.planes[0].bytes,
        u: image.planes[1].bytes,
        v: image.planes[2].bytes,
        height: image.height,
        deviceOrientationType: deviceOrientationType,
        sensorOrientation: sensorOrientation,
      );
    case ImageFormatGroup.bgra8888:
      return ncnnYolox.detectBGRA8888(
        pixels: image.planes[0].bytes,
        height: image.height,
        deviceOrientationType: deviceOrientationType,
        sensorOrientation: sensorOrientation,
      );
  }
}

I am running detect from the camera stream.
        final cameras = await availableCameras();
        final controller = CameraController(
          cameras.first,
          ResolutionPreset.high,
          enableAudio: false,
        );

        await controller.initialize();
        await controller.startImageStream(
          (image) => _read(ncnnYoloxController).detect(image),
        );

I tried that, but I got this. Any ideas?

What's that _read function?

  I tried that, but I got this. Any ideas?

This may be due to the fact that it is not a top-level function or a static method.
https://stackoverflow.com/a/71462598/12856415

Understood. Could you tell me what's _detectResults?

_detectResults is also a Provider.
https://riverpod.dev/docs/providers/state_provider
It stores the results of detect.
final _detectResults = StateProvider.autoDispose<DetectResults>(
  (_) => const DetectResults(),
);


PR: Add spyder path to PluginClient

Fixes: #4141

I think this is ready, but this is causing plugins to be restarted at startup, (normally 1 time, and 2 times when there is a project open)
It's that ok? or how It could be avoided?

@rlaverde, please add a test for this. From now on I want to see tests for every new features we add.

It's that ok? or how It could be avoided?

This happens because Spyder's PYTHONPATH is updated at startup and when changing projects, so i think you should try to restart plugins exactly when it's needed.

@rlaverde, your test is failing on Windows. Please skip it there.

@ccordoba12 I forget that windows use a different path separator, I added a commit to fix that test

@rlaverde, how many times our completion plugins are restarted when switching projects?

how many times are our completion plugins are restarted when switching projects? Two as before, or just one?

One restart when switching projects
No restart at startup
One restart at startup with a project open (load and then restart)

The number of restarts are exactly the ones needed. Thanks for improving that!

I restarted Circle again to make coveralls to pass before merging.


Reduced image height to stick top & added support for extra large displays

Changes done:

Reduced parallax image height to make it more top in small displays.
Added support for ultra wide (extra large)monitors since it messed up the parallax image to un-stick from top
Added slightly more border radius to the main card
Changed row area for medium and large displays in-order to be uniform with extra large displays

Tests done:

made sure the site is responsive
tested on >2k res

Thank you @Akhilsudh for working on it.


hwmv2:  arm64: intel_socfpga: Port to HWMv2

Move and convert to HWMv2 soc/arm64/intel_socfpga SoC family INTEL_SOCFPGA  with its SoC series  AGILEX, AGILEX5 and related board configurations:

intel_socfpga_agilex_socdk
intel_socfpga_agilex5_socdk

@gdengi, @nbalabak, @teikheng - up to your attention (for some reason I can't assign you as reviewers to this PR)
https://github.com/zephyrproject-rtos/zephyr/blob/8243429d7a4a5cf8b5613d694a2ad2bf57e2d62d/MAINTAINERS.yml#L3233-L3247

@gdengi, @nbalabak, @teikheng - up to your attention (for some reason I can't assign you as reviewers to this PR)
https://github.com/zephyrproject-rtos/zephyr/blob/8243429d7a4a5cf8b5613d694a2ad2bf57e2d62d/MAINTAINERS.yml#L3233-L3247

@golowanow sure - thank you. Let me go through these changes and update you.

we are adding some duplication in the naming and constant repition of names, so something like this:
intel_socfpga_agilex5_socdk ends up using the long form being intel_socfpga_agilex5_socdk/intel_socfpga_agilex5.
We should look into introducing intel_socfpga as the board and agilex5_socdk and agilex_socdk as the soc, so we end up with names likes:

intel_socfpga/agilex5_socdk
intel_socfpga/agilex_socdk

@golowanow  Shall we even keep the board directory structure as same as soc (soc/intel/intel_socfpga/agilex or agilex5) like
boards/intel/intel_socfpga/agilex_socdk
boards/intel/intel_socfpga/agilex5_socdk
instead of this
boards /intel/intel_socfpga_agilex_socdk
boards /intel/intel_socfpga_agilex5_socdk

We should look into introducing intel_socfpga as the board and agilex5_socdk and agilex_socdk as the soc, so we end up with names likes:

intel_socfpga/agilex5_socdk
intel_socfpga/agilex_socdk

@gdengi what do you think to rename SoC/boards in the way as above ? now or later ?

@gdengi what do you think to rename SoC/boards in the way as above ? now or later ?

@gdengi, @nordicjm, @nashif  - I've added one commit to simplify SoC names:
intel_socfpga_agilex --> agilex
intel_socfpga_agilex5 --> agilex5
Board names refactoring might be done later, if needed.


make installable and publish to npm

I plan to close the other issues myself, but this needs to be done by the package owner.
Will send you a PR, you'll have to publish yourself if you agree to do this

Sure I will publish it. We’re not using this library anymore since we’ve switched CI/CD-platform.


DRAFT: beginning the codeflow credential

From the codeflow authorization: https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
This adds a WIP codeflow credential that assumes we've already gotten the authorization code. From there, we can use this to successfully post and get the bearer back that we later can pass as the bearer token.
cc @daviwil

/check-enforcer evaluate


There is no transcript after an activate event occurs.

There is no transcript after an activate event occurs.
[15:28:03] Object {
[15:28:03]   "event": "ACTIVATE",
[15:28:03]   "isActive": true,
[15:28:03]   "transcript": "",
[15:28:03] }
[15:28:04] Object {
[15:28:04]   "event": "DEACTIVATE",
[15:28:04]   "isActive": false,
[15:28:04]   "transcript": "",
[15:28:04] }
[15:28:05] Object {
[15:28:05]   "event": "ACTIVATE",
[15:28:05]   "isActive": true,
[15:28:05]   "transcript": "",
[15:28:05] }
[15:28:05] Object {
[15:28:05]   "event": "DEACTIVATE",
[15:28:05]   "isActive": false,
[15:28:05]   "transcript": "",
[15:28:05] }
[15:28:07] Object {
[15:28:07]   "event": "ACTIVATE",
[15:28:07]   "isActive": true,
[15:28:07]   "transcript": "",
[15:28:07] }
[15:28:08] Object {
[15:28:08]   "event": "DEACTIVATE",
[15:28:08]   "isActive": false,
[15:28:08]   "transcript": "",
[15:28:08] }

I used the below configuration.
      RNSpokestack.initialize({
        'input': 'com.pylon.spokestack.android.MicrophoneInput', // required, provides audio input into the stages
        'stages': [
          'com.pylon.spokestack.libfvad.VADTrigger', // enable voice activity detection. necessary to trigger speech recognition.
          'com.pylon.spokestack.google.GoogleSpeechRecognizer' // one of the two supplied speech recognition services
        ],
        'properties': {
          'locale': "en-US",
          'google-credentials': JSON.stringify(googleCredentials)
        }
      });

How can I make the device recognizable state?

From the onError of ResponseObserver, I can see the UNAUTHENTICATED  error message.
Even I make Service account key as owner role, but it returns below error.
com.google.api.gax.rpc.UnauthenticatedException: io.grpc.StatusRuntimeException: UNAUTHENTICATED: Credentials require channel with PRIVACY_AND_INTEGRITY security level. Observed security level: NONE
Anyway I think this is not your library's problem. Please ignore this issue.

mmm...With the same credential json file, I can get the transcript through the python example.

@dazzyjong Good question, we're missing documentation on that.
googleCredentials needs to be in the format of:
JSON.stringify({
      'type': 'service_account',
      'project_id': 'XXXXX',
      'private_key_id': 'XXXXX',
      'private_key': '-----BEGIN PRIVATE KEY-----\nXXXXX\n-----END PRIVATE KEY-----\n',
      'client_email': 'XXXXX',
      'client_id': 'XXXXX',
      'auth_uri': 'https://accounts.google.com/o/oauth2/auth',
      'token_uri': 'https://accounts.google.com/o/oauth2/token',
      'auth_provider_x509_cert_url': 'https://www.googleapis.com/oauth2/v1/certs',
      'client_x509_cert_url': 'XXXXX'

@dazzyjong Good question, we're missing documentation on that.
googleCredentials needs to be in the format of:
JSON.stringify({
      'type': 'service_account',
      'project_id': 'XXXXX',
      'private_key_id': 'XXXXX',
      'private_key': '-----BEGIN PRIVATE KEY-----\nXXXXX\n-----END PRIVATE KEY-----\n',
      'client_email': 'XXXXX',
      'client_id': 'XXXXX',
      'auth_uri': 'https://accounts.google.com/o/oauth2/auth',
      'token_uri': 'https://accounts.google.com/o/oauth2/token',
      'auth_provider_x509_cert_url': 'https://www.googleapis.com/oauth2/v1/certs',
      'client_x509_cert_url': 'XXXXX'
})

Note the explicit \n newlines for the private key lines.

Thanks for reply.
I changed the google credentials format as you mentioned, but it did not work.
Can you please provide example application source?

@noel Maybe I can set up an example app using spokestack. Getting more practice with it never hurts.

@dazzyjong example app here

After the dependencies are moved into android/build.gradle, the above issue is resolved.


next/prev_buffer() does not work any more since  commit 3c7264ed0

my setting(linux):

let g:xtabline_settings = {}
let g:xtabline_settings.tabline_modes = ['buffers', 'tabs', 'arglist']
let g:xtabline_settings.buffer_filtering = 0
"let g:xtabline_settings.override_airline = 0
nmap <tab> :XTabNextBuffer<cr>
nmap <s-tab> :XTabPrevBuffer<cr>
nmap <BS> (XT-Select-Buffer)

Neither  nor :XTabNextBuffer works any more since:

commit 3c7264ed0cb9a3d0a6e9dc880ae04a6ae315d41c
Author: mg979<EMAIL_ADDRESS>Date:   Fri Oct 4 21:00:30 2019 +0200
Rewritten functions for buffer selection

Thanks for reporting, it should be working now, can you confirm? thanks

yes, it works. thanks.


Make the Windows command line more Unixy, passing .ini's and etc.

Not a problem so much as a better user experience:
I'd like to see configs get passed to the wsl.exe command line so we can choose unique startups including using custom kernels and etc.       eg wsl.exe -d blah -config customconfig.ini  - I'd also personally prefer it to use .ini or ideally .yaml or .json configs on the Windows side- I know it's really optics but it may drive more Unix people to wsl2...
Alternatives-  You could hack a PowerShell script together which is what I do now (among other hacky things for mounting " bare" drives for ZFS in wsl2 and etc).  It's just so hacky and I really do want to use WSL2 as my "daily driver" so trying to true up things like that- WSL has really come along and I REALLY like it.   I'm sick of using Powershell scripts to wrap what I think is pretty basic stuff that should/could be native..(I'll still do it until then, of course)
Considered: if WSL.exe is open source, adding code to accept different configs.
Is there a WSL2 kernel hacking community somewhere?
Thanks

custom kernels

     If custom kernels stopped being only global across all WSL 2 distributions on your system (set in '%USERPROFILE%\.wslcomfig' on the Windows side) and became supported per-distribution (set in '/etc/wsl.conf' in each distribution individually) any time soon, then I'd honestly be in genuine shock and picking my jaw up off the floor.  It'd certainly be a very pleasant surprise, though.

I'd also personally prefer it to use .ini or ideally .yaml or .json configs on the Windows side- I know it's really optics but it may drive more Unix people to wsl2...

     There aren't any issues with the current format of '.wslcomfig' and '/etc/wsl.conf,' at least not for me personally.  It's the same format that Git uses for per-repository '.git/config' files and user-local and system-wide configuration, more or less, though perhaps with less or no support for any indentation of settings below their parent sections.  This is an '.ini' file variant already; Wikipedia's article on '.ini' files lists GitHub configuration files one of its examples.  '.ini'-style files don't necessarily have to have the '.ini' file extension — or even any at all, really.

/feature


Low performance of RenderParagraph

Hi,
When I use a ListView widget to show a series of information, I found that frames were dropped when scrolling. In order to find out what causes this problem, I add some logs in the source code.
Log 1:
In file ‘flutter/packages/flutter/lib/src/rendering/sliver_multi_box_adaptor.dart’
sliver_multi_box_adaptor.dart.zip
RenderBox? insertAndLayoutChild(
  BoxConstraints childConstraints, {
  required RenderBox? after,
  bool parentUsesSize = false,
}) {
  assert(_debugAssertChildListLocked());
  assert(after != null);
  final int index = indexOf(after!) + 1;
  _createOrObtainChild(index, after: after);
  final RenderBox? child = childAfter(after);
  if (child != null && indexOf(child) == index) {
    int begin = DateTime.now().millisecondsSinceEpoch;
    child.layout(childConstraints, parentUsesSize: parentUsesSize);
    int end = DateTime.now().millisecondsSinceEpoch;
    print('layout time:${end - begin}, index:$index');
    return child;
  }
  childManager.setDidUnderflow(true);
  return null;
}

Log 2:
In file ‘engine/src/flutter/third_party/txt/src/minikin/Layout.cpp’
Layout.cpp.zip
void Layout::doLayoutRun(const uint16_t* buf,
                         size_t start,
                         size_t count,
                         size_t bufSize,
                         bool isRtl,
                         LayoutContext* ctx,
                         const std::shared_ptr<FontCollection>& collection){
	//…
	struct timeval tv0;
        gettimeofday(&tv0, NULL);
        int time_begin0 = tv0.tv_sec * 1000 + tv0.tv_usec / 1000;

  collection->itemize(buf + start, count, ctx->style, &items);

    gettimeofday(&tv0, NULL);
        int time_end0 = tv0.tv_sec * 1000 + tv0.tv_usec / 1000;
        printf("Layout::doLayoutRun => collection->itemize:%d\n", time_end0 - time_begin0);
	//…

	struct timeval tv1;
            gettimeofday(&tv1, NULL);
            int time_begin1 = tv1.tv_sec * 1000 + tv1.tv_usec / 1000;

      hb_shape(hbFont, buffer, features.empty() ? NULL : &features[0],
               features.size());

        gettimeofday(&tv1, NULL);
            int time_end1 = tv1.tv_sec * 1000 + tv1.tv_usec / 1000;
            printf("Layout::doLayoutRun => hb_shape:%d\n", time_end1 - time_begin1);
	//…
}

After adding the logs, I compiled the engine using commands below:
./src/flutter/tools/gn --ios --runtime-mode profile --ios-cpu arm64
ninja -C out/ios_profile

Adter running the app and scroll the list to item10, I got these outputs:
2021-05-10 23:54:44.122093+0800 Runner[553:153441] Metal API Validation Enabled
2021-05-10 23:54:45.504684+0800 Runner[553:153821] flutter: Observatory listening on http://<IP_ADDRESS>:52019/N4J4Sfud9BM=/
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:275
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:73
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
2021-05-10 23:54:45.916041+0800 Runner[553:153808] flutter: layout time:0, index:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
2021-05-10 23:54:45.917046+0800 Runner[553:153808] flutter: layout time:0, index:2
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
2021-05-10 23:54:51.858677+0800 Runner[553:153808] flutter: layout time:1, index:3
Layout::doLayoutRun => collection->itemize:25
Layout::doLayoutRun => hb_shape:2
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:3
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:3
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:0
2021-05-10 23:54:52.387284+0800 Runner[553:153808] flutter: layout time:38, index:4
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
2021-05-10 23:55:08.490189+0800 Runner[553:153808] flutter: layout time:1, index:5
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
2021-05-10 23:55:08.731437+0800 Runner[553:153808] flutter: layout time:1, index:6
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
2021-05-10 23:55:09.448502+0800 Runner[553:153808] flutter: layout time:1, index:7
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
2021-05-10 23:55:09.665183+0800 Runner[553:153808] flutter: layout time:1, index:8
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:6
2021-05-10 23:55:10.017010+0800 Runner[553:153808] flutter: layout time:12, index:9
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
2021-05-10 23:55:10.548566+0800 Runner[553:153808] flutter: layout time:1, index:10
As we can see, There are two problems:
The first one:
For item4 labeled as index:4, It costs 38 ms to layout, and most of the time was spent on collection->itemize, I looked into the code and found that item4 used Chinese characters first time, Thus, the font was loaded this time and cached. some concerned code is like here:
const std::shared_ptr<minikin::FontFamily>& FontCollection::MatchFallbackFont(
    uint32_t ch,
    std::string locale) {
  // Check if the ch's matched font has been cached. We cache the results of
  // this method as repeated matchFamilyStyleCharacter calls can become
  // extremely laggy when typing a large number of complex emojis.
  auto lookup = fallback_match_cache_.find(ch);
  if (lookup != fallback_match_cache_.end()) {
    return *lookup->second;
  }
  const std::shared_ptr<minikin::FontFamily>* match =
      &DoMatchFallbackFont(ch, locale);
  fallback_match_cache_.insert(std::make_pair(ch, match));
  return *match;
}

The font lazy loading seems good, but if one item in a list uses new font, frames will be dropped, so, my first question is
Is there any way to load fonts as soon as possible, not when scrolling?
The second one:
The function hb_shape takes too much time sometimes, such as when item9 (index:9) was layout, But if I enable the macro  HB_NO_OT_SHAPE, the shaping time decreases distinctly. To enable HB_NO_OT_SHAPE, I added the definition of it in hb-config.hh:
#define HB_NO_OT_SHAPE
hb-config.hh.zip
The following logs is I got when HB_NO_OT_SHAPE enabled.
2021-05-11 00:09:29.922423+0800 Runner[563:156891] Metal API Validation Enabled
2021-05-11 00:09:31.206314+0800 Runner[563:157239] flutter: Observatory listening on http://<IP_ADDRESS>:52231/BLq-9xgjIZk=/
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:259
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
2021-05-11 00:09:31.599014+0800 Runner[563:157226] flutter: layout time:1, index:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
2021-05-11 00:09:31.600299+0800 Runner[563:157226] flutter: layout time:1, index:2
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
2021-05-11 00:10:41.980336+0800 Runner[563:157226] flutter: layout time:1, index:3
Layout::doLayoutRun => collection->itemize:25
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:1
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:0
2021-05-11 00:10:42.304561+0800 Runner[563:157226] flutter: layout time:35, index:4
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:1
2021-05-11 00:10:42.669496+0800 Runner[563:157226] flutter: layout time:1, index:5
Layout::doLayoutRun => collection->itemize:1
Layout::doLayoutRun => hb_shape:0
2021-05-11 00:10:54.151570+0800 Runner[563:157226] flutter: layout time:1, index:6
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
2021-05-11 00:10:54.501729+0800 Runner[563:157226] flutter: layout time:1, index:7
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
2021-05-11 00:10:55.168115+0800 Runner[563:157226] flutter: layout time:1, index:8
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
Layout::doLayoutRun => hb_shape:2
2021-05-11 00:10:55.492087+0800 Runner[563:157226] flutter: layout time:7, index:9
Layout::doLayoutRun => collection->itemize:0
Layout::doLayoutRun => hb_shape:0
2021-05-11 00:10:55.835256+0800 Runner[563:157226] flutter: layout time:1, index:10
So, My second question is
Can I enable HB_NO_OT_SHAPE? will it make some side effect when do so?
flutter doctor -v
[✓] Flutter (Channel stable, 2.0.6, on Mac OS X 10.15.7 19H2 darwin-x64, locale zh-Hans-CN)
• Flutter version 2.0.6 at /Users/yangbaocheng/development/flutter
• Framework revision 1d9032c7e1 (11 days ago), 2021-04-29 17:37:58 -0700
• Engine revision 05e680e202
• Dart version 2.12.3
• Pub download mirror https://pub.flutter-io.cn
• Flutter download mirror https://storage.flutter-io.cn
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at /Users/yangbaocheng/Library/Android/sdk
• Platform android-29, build-tools 29.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.2, Build version 12B45b
• CocoaPods version 1.10.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 3.6)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 49.0.1
• Dart plugin version 192.8052
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
[✓] Connected device (2 available)
• YBC (mobile) • 7e4fbbe051a09d0769464a0f1c1170b8cf7e986e • ios            • iOS 13.6
• Chrome (web) • chrome                                   • web-javascript • Google Chrome 90.0.4430.93
! Error: YBC is busy: Copying cache files from device. Xcode will continue when YBC is finished. (code -10)
• No issues found!
The sample flutter code file main.dart
main.dart.zip
Thank you very much, Look forwarding your reply!

Hi @cocoayang
Glad the solution worked, your last question is already asked in https://github.com/flutter/flutter/issues/82511
Closing, thank you


auth: Stop sending api key in query string

The SDK should never send the api key as query string and only via http headers
Connects-to: https://github.com/balena-io/balena-sdk/pull/780
Change-type: major
Signed-off-by: Trong Nghia Nguyen<EMAIL_ADDRESS>

Already approved :+1:


updates to IGV and sample table clickability

Clicking the amplicon thumbnail in the sample table renders it in the top png/igv panel
Clicking amplicon thumbnail will also show the multilocus IGV view if IGV toggled on
Add instructional text after IGV toggle with no amp selection
Minor refactor to cleanup some weird code syntax

@liefeld - I think only clicking the image. When clicking elsewhere in the table, we may want to give it some other behavior. For instance last column in the table are the download links.


Pill colours affecting readability

Describe the issue
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/118.0
Pills without any specific colour (falling back to grey) blend in too well with the alternating colours of tables making the text difficult to read, for example:

Possibly related to #6112 ?
Code of Conduct

[X] I agree to follow the IETF's Code of Conduct

Which page/URL is that on?

Also, this is possibly already fixed on the feat/dark-mode branch.

@larseggert the above screenshot is on the "My Reviews" page.

Thanks! feat/dark-mode should have the fix already.

Dark-mode was released today - @fiestajetsam, does it address your concern?

I'm closing this - my inspection says that it addresses the issue - if the fix turns out to be insufficient, please reopen.


update nbsphinx config and notebook lists

Changes

Fix list items in Notebooks by adding newlines (documentation) see #160
add prolog/epilog to nbsphinx output (documentation)
hide some magic command and plot code cells in nbsphinx (documentation)

Related Issues
Closes #160
Checks

[x] updated CHANGELOG.md
[x] updated tests
[x] updated doc/
[x] update example/tutorial notebooks

I added some updates, take a look @vhirtham 😃 (binder link in every sphinx notebook 👍 )


Added routeprefixed class to body

Added a class to body, that will always use a slugified version of the current path as basic.
This allows to style subpages (login, template, ...) differently easily using a custom css file.

Hi @SimonErich, maybe we'd better use the route name?
After all, if there is a parameter, for example /user/1/posts/hello-world, then it will no longer work just

thanks @tabuna . Good idea. I have updated it.


官网首页图片都挂了

http://seata.io/zh-cn/docs/overview/what_is_seata.html
官网首页的图片都挂了

https://upload-images.jianshu.io/upload_images/4420767-90b8bf0388953ee8.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240
It seems that these links of pictures from jianshu.io are restricted,  would you download them and put then into this repo and send a pr ?   @garfieldzf8

closed via https://github.com/seata/seata.github.io/pull/32


Possible to change wifi credentials?

Is there any way (aside from re-flashing) to change the SSID credentials stored by the camera? Looking to swap networks and not able to keep same SSID. Thanks.

Credentials are stored inside a raw partition.
At the moment it's not possible.

Thanks for the response. I take it reflashing the cameras shouldn't be an issue or would you advise against it?

If you want to change credentials you have to reset the cam with the back button.
If you reflash it, credentials don't change.
The flash partition where they are stored is not erased.

Appreciate you responding. Sorry, 'reset the cam with the back button'? What/where is that?

https://m.youtube.com/watch?v=-BCTm2VXxkQ

Ahhhh, the reset button. I understand now. I'm presuming the stock firmware is lost though. What is the camera resetting to? The video looks like it's resetting stock firmware. Is this going to be a problem with the flash already being on it?

The reset procedure restores the factory settings but doesn't change hack.

Right. Sorry, I'm getting confused. Does the hack not overwrite the stock firmware then? If I reset my camera I can simply reconnect it to the new ssid via Yi Home app and the hack will still be there working?

Yes.
Only the fw upgrade breaks the hack: if you upgrade via Yi app you need to apply again the hack.


Adding CIS Scan to alerts

Proposed changes
Adding CIS Scan to alerts
Types of changes

New feature (non-breaking change which adds functionality)

Linked Issues
rancher/rancher#25349

merged elsewhere.


Configuring local and CI setup for semgrep

Notes
Setting up an action that can be imported to run semgrep scans against a given app repo. When configuring semgrep for CI, there's two ways to specify the specific rules that semgrep should check against

By directly specifying individual rules or a ruleset from the Semgrep registry to pull from.
By providing a pair of credentials to an account for https://semgrep.dev/, created for our GitHub org. The account contains a maintained set of rules that's used for scans

I found method 2 to be more convenient since

Semgrep currently doesn't provide a way to exclude certain rules from a ruleset (eg, like how it's possible with flake8 ignore) using method 1. This is only possible using method 2 where we create a policy from the rules of ruleset, then individually remove rules that were previously added from the ruleset.
Scan results for a given repo are uploaded to our account (persisted for 30 days with free tier). Results are grouped by 'project', where a 'project' is created automatically whenever scan results for a given repo are uploaded for the first time.
The Semgrep account also acts as a GitHub app, where it can make PR review comments about scan findings

I've onboarded splunk-soar-apps to Semgrep, any member of the org should be able to login to https://semgrep.dev/ with their personal GitHub credentials and automatically have splunk-soar-apps under their orgs list. Credentials for the account (an ID and API token) required by our GitHub action are configured as org secrets. Workflows will pass the secrets as input to the action since it can't access the secrets context
The repo has also been updated to supported running semgrep locally via semgrep-cli
Testing

https://github.com/Splunk-SOAR-Apps/phawslambda/pull/1

very cool! the dashboard does indeed work for me after authorizing my github account, although I think finding where the org list is isn't immediately obvious. will devs regularly need to actually log into the dashboard? or is everything manageable through the comments the app posts?

we would only log into the dashboard to configure rules or to look at trends across multiple scans
checking the scan findings for a PR can be done through entirely through the PR comments or the logs from the workflow run


Error deploying flow: credential type 'tesla-config' is not registered.

I cannot deploy the example flow with my own credentials configured in the api node. Always getting an error: "Credential type 'tesla-config' is not registered" when trying to deploy my flow. If I then reopen the tesla-api node, my credentials are blank. Tried to re-insert and redeploy a dozen of times...
I also get a warning next to deploy option:
"Flows stopped due to missing node types.
tesla-config
tesla-api"
Thanks in advance for your response and support on this!

I also can't find the 'tesla-config' node in my nodes list on the left of NodeRed dashboard, should it be in the list after the install? I use 'Manage palette' to install the node-red-contrib-tesla.

I also can't find the 'tesla-config' node

The Tesla Config Node is near the top right?
Underneath 'Deploy' button, in the next little panel, you should see a 'gear' icon, then scroll down to the Tesla config node (its usually grey backgrounded). In fact all configuration nodes are in here. What does that part show?


[WIP] docs: add draft of create a new event guide

Description:
This PR adds a how-to for new event creation. Its main purpose is to serve as a guide for new contributions to the library.
Dependencies:
None
Installation instructions:
Just documentation.
Testing instructions:
Just documentation.
Reviewers:

[ ] tag reviewer
[ ] tag reviewer

Merge checklist:

[ ] All reviewers approved
[ ] CI build is green
[ ] Version bumped
[ ] Changelog record added
[ ] Documentation updated (not only docstrings)
[ ] Commits are squashed

Post merge:

[ ] Create a tag
[ ] Check new version is pushed to PyPI after tag-triggered build is
finished.
[ ] Delete working branch (if not needed anymore)

Author concerns:
What else should we add?

Hi there @robrap! Thanks for the feedback. I'll be addressing your comments on Monday. Sorry for the delay!

FYI @felipemontoya

Thanks for the pull request, @mariajgrimaldi!
As a core committer in this repo, you can merge this once the pull request is approved per the core committer reviewer requirements and according to the agreement with your edX Champion.
This is currently a draft pull request. When it is ready for our review and all tests are green, click "Ready for Review", or remove "WIP" from the title, as appropriate.

@mariajgrimaldi: Someone recently thoughts some new events defined in this library would be on the event bus. I haven't quite gotten to the bottom of the confusion, but when I went to send a link to some docs, I realized that this doc never landed. I wonder how quickly we could land this, even if we'd want to improve it in the future. Thanks.

@robrap: hello! Thanks for the reminder, sorry I didn't push this forward. A lot of stuff got in the way. Our maintainer team including myself will allocate some time between this week and next to complete this work, at least until its first version.
I'll be tagging you for feedback if you're okay with it! Thanks

Hello @mariajgrimaldi. No apologies necessary. I look forward to helping land something.

@mariajgrimaldi: Another bit we could add is a reminder to document the event in the service where it is produced, using edx-platform as an example: https://github.com/openedx/edx-platform/blob/f01ef48190c7c4ee6d9e06af4abe21e25fe16dff/docs/guides/hooks/events.rst#index-of-events.
Related:

I never remember where to find the index of events. Maybe just having a note in this doc will be a good enough reminder for me? We'll see.
Where is the best place to document that a given event is not only implemented in a service, but is also going to the event bus? Would that just be in an index like the link above? Maybe this depends on if we move this to be part of the event definition? At this point, it is just based on someone adding a listener that sends to the event bus.

I'm finally setting aside some time to do this! Thank you so much for your patience.

@robrap:

Another bit we could add is a reminder to document the event in the service where it is produced, using edx-platform as an example: https://github.com/openedx/edx-platform/blob/f01ef48190c7c4ee6d9e06af4abe21e25fe16dff/docs/guides/hooks/events.rst#index-of-events.

Consider it done!

Where is the best place to document that a given event is not only implemented in a service but is also going to the event bus? Would that just be in an index like the link above? Maybe this depends on if we move this to be part of the event definition? At this point, it is just based on someone adding a listener that sends to the event bus.

I added a how-to called Adding a new event to the event bus, what I think we could do is add an extra step to How to add an Open edX Event to a service saying Add event to the event to the event bus if supported and linking it to the how-to.
Also, we could modify that index with a column saying "sent over the event bus" that says yes or no. What do you think?

@felipemontoya: I would love your input here. Should we add something else?

@mariajgrimaldi @rgraber: I'm not certain when I'll get back to review, but I don't want to be a blocker.  I added this to our board, but I'm going to be away for a bit. I recommend we err on landing this quickly, and ticketing up any follow-up that we want to add, but doesn't need to block this initial version. Thanks.

@robrap: I started addressing your comments! Thank you! I'll let you know when this is ready for review again

@robrap: thank you so much! I think I addressed all your comments. Let me know what you think

I'll be fixing the failing tests later 😅

@robrap: again, thank you so much for the help! and the patience 😅

@mariajgrimaldi 🎉 Your pull request was merged!  Please take a moment  to answer a two question survey so we can improve your experience in the future.


Add directions for using Azure Container Registry.

@colemickens @ahmetalpbalkan

This change is

I am assigned, but in name only.  Brendan will do tech LGTM and Devin (or a delegatee thereof) will do docs.

comments addressed, please re-check.
Thanks!
--brendan

@devin-donnelly can I get a review on this?
Thanks!
--brendan

@devin-donnelly comments addressed, please re-check.
Thanks!
--brendan

I think this is good to go.

Ping @devin-donnelly


support for python 3.10.x minimum

Hi can you please add the support for python 3.10.x minimum ?

Hi can you please add the support for python 3.10.x minimum ?

Sure, I'll do this when I arrive back home.

Solved.


fix the issue that a non-properties namespace could not be cleared

fixes #2307

Coverage decreased (-0.06%) to 53.59% when pulling ca0e69a8048396b65721d40f9149a2000786f8cd on nobodyiam:fix-2307 into d43333c507438c01d23697c8febcea59adaa8e24 on ctripcorp:master.


Unordered list styling

In FirefoxDeveloperEdition the list item text gets pushed below the bullet point:

this seems to be not applicable anymore? old site design?


Unable to Resolve DNS Names in Netbird on OpenWrt

Describe the problem
I'm encountering an issue with DNS resolution between my MacBook and OpenWrt router using netbird. Both devices have successfully registered to netbird. However, while pinging from my MacBook to OpenWrt's FQDN (openwrt.netbird.cloud) works fine, attempting the reverse from OpenWrt to my MacBook's FQDN (macbook.netbird.cloud) fails with a "bad address" error. Directly using IP addresses for communication works without any issue.
MacBook(<IP_ADDRESS>) info：
➜  ~ netbird status
Daemon version: 0.26.2
CLI version: 0.26.2
Management: Connected
Signal: Connected
Relays: 2/2 Available
FQDN: macbook.netbird.cloud
NetBird IP: <IP_ADDRESS>/16
Interface type: Userspace
Quantum resistance: false
Peers count: 2/3 Connected

OpenWrt(WAN: <IP_ADDRESS>  LAN:<IP_ADDRESS>/24  ) info：
root@OpenWrt:~# cat /etc/os-release | grep RELEASE
OPENWRT_RELEASE="OpenWrt 23.05.3 r23809-234f1a2efa"
root@OpenWrt:~#
root@OpenWrt:~# netbird status
Daemon version: 0.24.3
CLI version: 0.24.3
Management: Connected
Signal: Connected
FQDN: openwrt.netbird.cloud
NetBird IP: <IP_ADDRESS>/16
Interface type: Kernel
Peers count: 2/3 Connected

Do test on MacBook：
➜  ~ ping openwrt.netbird.cloud
PING openwrt.netbird.cloud (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: icmp_seq=0 ttl=64 time=2.150 ms
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=2.773 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=2.825 ms
^C
--- openwrt.netbird.cloud ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.150/2.583/2.825/0.307 ms

Do test on OpenWrt：
root@OpenWrt:~# ping macbook.netbird.cloud
ping: bad address 'macbook.netbird.cloud'
root@OpenWrt:~#
#  However:
root@OpenWrt:~# ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=64 time=2.100 ms
64 bytes from <IP_ADDRESS>: seq=1 ttl=64 time=2.644 ms
64 bytes from <IP_ADDRESS>: seq=2 ttl=64 time=2.535 ms
64 bytes from <IP_ADDRESS>: seq=3 ttl=64 time=2.346 ms
64 bytes from <IP_ADDRESS>: seq=4 ttl=64 time=2.389 ms
^C
--- <IP_ADDRESS> ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 2.100/2.402/2.644 ms

Then, I tried using netbird up --setup-key SETUP-KEY -F -l debug to extract the logs:
root@OpenWrt:~# netbird up --setup-key SETUP-KEY -F -l debug
2024-05-23T15:59:50Z DEBG client/internal/login.go:93: connecting to the Management service https://api.wiretrustee.com:443
2024-05-23T15:59:50Z DEBG client/internal/login.go:63: connected to the Management service https://api.wiretrustee.com:443
2024-05-23T15:59:52Z INFO client/internal/connect.go:47: starting NetBird client version 0.24.3
2024-05-23T15:59:52Z DEBG client/internal/connect.go:102: connecting to the Management service api.wiretrustee.com:443
2024-05-23T15:59:52Z DEBG client/internal/connect.go:110: connected to the Management service api.wiretrustee.com:443
2024-05-23T15:59:53Z DEBG signal/client/grpc.go:91: connected to Signal Service: signal.netbird.io:443
2024-05-23T15:59:53Z DEBG client/internal/wgproxy/proxy_ebpf.go:36: instantiate ebpf proxy
2024-05-23T15:59:53Z DEBG client/internal/ebpf/ebpf/wg_proxy_linux.go:11: load ebpf WG proxy
2024-05-23T15:59:53Z WARN client/internal/wgproxy/factory_linux.go:15: failed to initialize ebpf proxy, fallback to user space proxy: field NbXdpProg: program nb_xdp_prog: load program: invalid argument: unknown func bpf_trace_printk#6 (101 line(s) omitted)
2024-05-23T15:59:53Z INFO client/internal/routemanager/firewall_linux.go:40: creating an nftables firewall manager for route rules
2024-05-23T15:59:53Z INFO iface/tun_linux.go:15: create tun interface with kernel WireGuard support: wt0
2024-05-23T15:59:53Z DEBG iface/tun_linux.go:58: adding device: wt0
2024-05-23T15:59:53Z DEBG iface/tun_linux.go:109: adding address <IP_ADDRESS>/16 to interface: wt0
2024-05-23T15:59:53Z DEBG iface/tun_linux.go:74: setting MTU: 1280 interface: wt0
2024-05-23T15:59:53Z DEBG iface/tun_linux.go:81: bringing up interface: wt0
2024-05-23T15:59:53Z DEBG iface/iface.go:54: configuring Wireguard interface wt0
2024-05-23T15:59:53Z DEBG iface/wg_configurer_nonandroid.go:26: adding Wireguard private key
2024-05-23T15:59:53Z DEBG client/internal/acl/manager_create_linux.go:33: creating an nftables firewall manager for access control
2024-05-23T15:59:53Z DEBG client/firewall/nftables/manager_linux.go:757: chain INPUT not found. Skipping add allow netbird rule
2024-05-23T15:59:53Z DEBG client/internal/dns/host_linux.go:34: discovered mode is: 1
2024-05-23T15:59:53Z DEBG signal/client/grpc.go:136: signal connection state READY
2024-05-23T15:59:53Z INFO signal/client/grpc.go:157: connected to the Signal Service stream
2024-05-23T15:59:53Z DEBG client/internal/engine.go:551: connecting to Management Service updates stream
2024-05-23T15:59:53Z INFO client/internal/connect.go:182: Netbird engine started, my IP is: <IP_ADDRESS>/16
2024-05-23T15:59:53Z DEBG management/client/grpc.go:116: management connection state READY
2024-05-23T15:59:54Z INFO management/client/grpc.go:143: connected to the Management Service stream
2024-05-23T15:59:54Z DEBG management/client/grpc.go:249: got an update message from Management Service
2024-05-23T15:59:54Z DEBG client/internal/engine.go:577: got TURNs update from Management Service, updating
2024-05-23T15:59:54Z DEBG client/internal/engine.go:559: got STUNs update from Management Service, updating
2024-05-23T15:59:54Z DEBG client/internal/engine.go:608: got peers update from Management Service, total peers to connect to = 5
2024-05-23T15:59:54Z DEBG client/internal/engine.go:828: creating peer connection rcm0idXtQIqwiUY=
2024-05-23T15:59:54Z DEBG client/internal/engine.go:828: creating peer connection tYKO5/tl9tgnZW0=
2024-05-23T15:59:54Z DEBG client/internal/engine.go:828: creating peer connection 2hvRV9/iRjNrWUY=
2024-05-23T15:59:54Z DEBG client/internal/engine.go:828: creating peer connection 8JB8TBzmMVA2M=
2024-05-23T15:59:54Z DEBG client/internal/engine.go:828: creating peer connection 4vQgbIe9bYDf4jA=
2024-05-23T15:59:54Z WARN client/internal/dns/service_listener.go:161: binding dns on <IP_ADDRESS>:53 is not available, error: listen udp <IP_ADDRESS>:53: bind: address already in use
2024-05-23T15:59:54Z WARN client/internal/dns/service_listener.go:161: binding dns on <IP_ADDRESS>:53 is not available, error: listen udp <IP_ADDRESS>:53: bind: address already in use
2024-05-23T15:59:54Z DEBG client/internal/dns/service_listener.go:78: starting dns on <IP_ADDRESS>:53
2024-05-23T15:59:54Z ERRO client/internal/dns/server.go:269: unable to configure DNS for this peer using file manager without a nameserver group with all domains configured
2024-05-23T15:59:54Z INFO client/internal/acl/manager.go:67: ACL rules processed in: 1.159599ms, total rules count: 2
... more ...

Next:
root@OpenWrt:~# netstat -tuln | grep :53
tcp        0      0 <IP_ADDRESS>:53            <IP_ADDRESS>:*               LISTEN
tcp        0      0 <IP_ADDRESS>:53        <IP_ADDRESS>:*               LISTEN
tcp        0      0 <IP_ADDRESS>:53      <IP_ADDRESS>:*               LISTEN
tcp        0      0 <IP_ADDRESS>:53       <IP_ADDRESS>:*               LISTEN

Could someone please provide guidance on how to resolve this issue? Thank you!

Hello @fanmaomao the issue happens because openWRT requires a nameserver configuration that resolves all domains (default resolver). See the log line below:
2024-05-23T15:59:54Z ERRO client/internal/dns/server.go:269: unable to configure DNS for this peer using file manager without a nameserver group with all domains configured

You can configure such nameserver in the DNS > Nameservers tab. Then, while adding the resolver, you should not add a match domain, making the configuration a default resolver.
The end result should look similar to this:

@mlsmaycon Cool ! it's working ! Thanks !


Add support for screenrecord

One of the outcomes of #40 was that we may want to add support for screenrecord as a high-performance way of capturing the screen of an Android device.

That would be insane.
I only test it a bit by my self (simply use SendAdbRequest to get the data and out put it to the Console). But i never worked before with VideoStreams. So i'm at point i dont how how to capture a "Frame" out of the stream.
The hole part could be even more complicated if we use H264. Because i think we would need a decoder.
I search for a projekt that simply accept a H264-Stream and do the work for us^^. But i dont finde one :'(

Yeah, H.264 is not something we do every day as.NET developers :)
You can have a look at (amongst others):

FFmpeg
Accord
streamcoders.com

They tend to come with specific licenses so you may want to watch out for that.
You could, at first, try these things separately:

Can you invoke screenrecord via SendAdbRequest and save the output to a file
Is the file valid (e.g. can you open it with something like VLC)
Can you use any of the H.264 decoders to extract the individual frames

And if that works, you could try to do it real time (although I’m not sure what the CPU overhead of that would be, though).
Let me know if you make any progress on this. I may have some time to look into this, but that will be a couple of sprints from now.
From: Viper2k4<EMAIL_ADDRESS>Sent: Thursday, June 30, 2016 4:44 PM
To: quamotion/madb<EMAIL_ADDRESS>Cc: Frederik Carlier<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [quamotion/madb] Add support for screenrecord (#55)
That would be insane.
I only test it a bit by my self (simply use SendAdbRequest to get the data and out put it to the Console). But i never worked before with VideoStreams. So i'm at point i dont how how to capture a "Frame" out of the stream.
The hole part could be even more complicated if we use H264. Because i think we would need a decoder.
I search for a projekt that simply accept a H264-Stream and do the work for us^^. But i dont finde one :'(
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/quamotion/madb/issues/55#issuecomment-229679891, or mute the threadhttps://github.com/notifications/unsubscribe/AJdWsbfOZQQtoXNNNK2duQ2PXwH50iO-ks5qQ9YagaJpZM4JCMjG.

Cant get a valid video.
Saving to file is no problem (the file it self is not playable with VLC or so).  FFmpeg can demuxe it but with many fragments. I try differnt options but every time the same result.
I god many error while decoding:
"P slice to large", "out if range intra chroma", "negative number of zero" and so on.
The only valid file i got is if the screen is off and there are no frames^^

I found the reason why the file is corrupted, if you send the screenrecorder output to stdout. Here you have the same issue only for screencap https://stackoverflow.com/questions/13578416/read-binary-stdout-data-from-adb-shell
I tested this with my windows10 pc and android phone.
adb shell screenrecord --output-format=h264 - > E:\ffmpeg\bin\testfile.h264
Afterwards i opened my testfile.h264 with a hexeditor and replaced the values 0d 0a with 0a.

what about this -> https://github.com/secile/OpenH264Lib.NET


Cerebras - streaming fix and moving exception handling

Why are these changes needed?
Streaming code has been corrected and exception handling has been removed and is now handled in the client.py class.
Related issue number
None
Checks

[ ] I've included any doc changes needed for https://autogen-ai.github.io/autogen/. See https://autogen-ai.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[X] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[X] I've made sure all auto checks have passed.

@marklysze if this PR is tested, looks good to me.


Timer is not working when music is being played in Car Mode.

I played a song and then turned it to Car Mode. After that i clicked on 3 dots on the top right corner of the page. Then i clicked on Timer option. It is not working.
Video/Screenshot:
https://youtu.be/czJ_qa6Rw34
Device:

Android: RedMi Y2/S2
OS: 8.1.0
App Version: <IP_ADDRESS>(20190621)

Fixed, see the lastest on release page.


Changed in-text driver name to "Vulkan"

But it still requires a change of "driver_name" in backend itself.
This also fixes #36124 .

Uuuuh... Sometimes I'm getting in the interface of GitHub.

@Teashrock See the PR workflow article if you're having trouble with Git. A PR like this should generally be one commit, so you'd need to squash and force-push.

@aaronfranke
Did read that guide already. And I suppose, that I need to fixupinstead of squash.

All done.

Thanks!


background colour for

TL;DR:
Because of the way MusicBee v3.6 interprets skins (and this seems to be a correction compared with v3.5), one of the colour references must be replaced in all the skins of the package. The corrected versions work with both MB 3.5 and MB 3.6.
TROUBLESHOOTING
The package in version 0.1.3 works fine under MusicBee v3.5, but in v3.6 the Player Panel shows a grey block where the current track title should be visible. This means that the wrong background colour is taken for that area. The precise element concerned is bg within element id="PlayerFlat.DisplayPanel".
CORRECTION TO APPLY

current state:
element id="PlayerFlat.DisplayPanel" bg="Playerpanel_Controls_Lowlight"
corrected line:
element id="PlayerFlat.DisplayPanel" bg="Playerpanel_Background"

TESTS
After applying the patch and testing several skins with MB v3.5 and MB v3.6, the corrected skins work fine in both MusicBee versions.

I'll push a fix soon, thanks for letting me know 👍

Moved to #3


updates password min-length to 14 and updates factory

Resolves #72

Might want to add a unit test for password length.

Would love a tip to get started on how to test on models. I thought the current coverage would work as you can't create a user, at all, without the password being 14 characters or more.

Would something like this work?

describe User do
it "validates password length" do
FactoryGirl.build(:user, password: "1234567").should_not be_valid
FactoryGirl.build(:user, password: "a42d1edd2637268dbd053521828ed3eecd5e9e2e95bea57a14d5fe453ba1399c66854004a3d7e13b16d77724249eca12eeade1928b7d08412a772d50964de16a").should be_valid
end
end

Close, but you should split each assertion into it's own it. Also, use expect matchers.

I've pushed the changes and removed the errant inventories_users. Please double check that the schema looks good still. It seems find on my end.

You can tell the Schema is fine now because when you look at the difference in files the Schema no longer shows up.  You changed it by resetting the database and running migrations though instead of manually editing the Schema right?  Otherwise your database will be incorrect.

Yeah, at first I just removed it manually and ran db:migrate. It put it back in. (Which is odd as I didn't see the migration.) Then I did run bin/setup and it took care of it.

@troystarwalt Looks like travis build failed.

@pachonk Thank you. Didn't realize that. I'll take a look at it and fix my errors. (Looks to be formatting issues.) Sure keeps you honest.

@troystarwalt.  If you run rubocop and rspec with no errors travis should pass.
Also you still need to update your tests look like before this is ready to merge.

I just noticed that there were some additional tests added since I pulled in master. I'll need to update some tests.

I actually did a little digging on @Exellin comment on assert password_length and went ahead and wrote this expect(User.password_length).to be_between(11, 256) but .. but there is a catch for be_between to work User should be including comparable module as per docs, but it's throwing an error does not respond to >= and <=  .
So we can use below these two
User.password_length.min, User.password_length.max to assert as per the spec :)