KeyVault List includes resources other than KeyVaults

In Azure/azure-sdk-for-go#696 @chessman says:

ListPreparer uses path "/subscriptions/{subscriptionId}/resources". But it should be something like "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/vaults".

I built out a repro for the Go SDK that confirms this behavior and can be found here: https://github.com/marstr/issue696

@mcardosos was just chatting with me and says she has some more context here. Some of what she was saying may back up the assertion from @ravbhatnagar that this is fundamentally a problem the service team needs to fix.
Regardless, I think the question of whether or not this operation should be exposed through the Swagger today in its current form should be answered. Without KeyVault service-team intervention, I'd like to throw the "deprecated" tag on this and document how we would recommend performing the same operation through the "resources" RP.

More context
TL;DR: This operation calls ARM API directly, not through the KeyVault API.
This causes the SDKs to be used in awkward ways, for example: resourceClient.List("resourceType eq 'Microsoft.KeyVault/vaults'", "", nil). The path should be corrected to "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/vaults". That way we can also get rid of the $filter parameter, and hopefully, the custom api-version too.
I would like this operation to be defined like this...
"/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/vaults": {
      "get": {
        "tags": [
          "Vaults"
        ],
        "operationId": "Vaults_ListBySubscription",
        "description": "The List operation gets information about the vaults associated with the subscription.",
        "parameters": [
          {
            "name": "$top",
            "in": "query",
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of results to return."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Get information about all key vaults in the subscription.",
            "schema": {
              "$ref": "#/definitions/ResourceListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }

Currently by design Key Vault does not support efficient to list resources outside the region. It is by design that ARM rest api is used instead to list resources for subscriptions across regions.
#please-close as as designed.


1.11.2 - Flux Networks Plug causes crash.

When "Fluxed Network" Plug is connected to cables from "Solar Flux Reborn" causes instant crash and world crashes every time trying to load again.
Server Report included:
crash-2017-10-02_18.03.56-server.txt
Single player Report included:
crash-2017-10-02_13.38.30-server.txt

I have a similar issue, use mcedit to remove the flux plug. I use Mekanism cables and it works fine.

Bad compile, should be fixed in next version of Flux Networks / Sonar Core

When is the next version coming?

Closing: 1.11.2 is no longer supported.


Avoid redundant queries

What does this PR do?
Observed via log files that the fix from #8329 would add the same database for each metric in the table, resulting in duplicate queries.  Changing class collection to a set will avoid duplicates.

@mgarabed I'll merge soon. But if there's any way we could unit-test to prevent regressions this then it would be a nice follow-up I think.

@mgarabed I'll merge soon. But if there's any way we could unit-test to prevent regressions this then it would be a nice follow-up I think.


Remove the required aspect of the allowedContent iframe attributes

Hi,
Is it possible to remove the required aspect of the allowedContent attributes on the iframe element? Currently, I can't upgrade the plugin to the latest version as I would have to change all existing content in our repository (add an empty attribute allow).
I'm not sure if the code really requires these attributes to be required, or if simply having them specified without the ! is already good enough.
Thanks!

The allowedContent rule requires the <iframe> element to have an allow attribute, but the plugin only adds this attribute if the paramAutoplay is true, meaning that if paramAutoplay is not true, the whole content will be stripped again.


Change to frontend proxy

Remove backend CORS
Add frontend proxy
Add axios to global

@majinkai please merge origin/develop to get the new feature:code coverage statistics

@majinkai the ci failure is fixed , please merge origin/develop again

Codecov Report

Merging #167 into develop will increase coverage by <.01%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             develop   #167      +/-   ##
===========================================
+ Coverage        0.4%   0.4%   +<.01%
  Complexity         7      7
===========================================
  Files            103    103
  Lines           4682   4676       -6
  Branches         785    785
===========================================
  Hits              19     19
+ Misses          4662   4656       -6
  Partials           1      1

Impacted Files
Coverage Δ
Complexity Δ

...java/org/apache/dubbo/admin/config/I18nConfig.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Brew Cask dependency shouldn't break installation

If Brew Cask isn't used on any of the dependencies, it shouldn't be a breaking dependency?

Hm... It used to be a requirement to install VirtualBox. However, at some point, the brew_install call for VirtualBox disappeared. Is it installed by something else?

VirtualBox was removed in 56edcdbe3f65d3c23677ca7dbacbdc5678047ecd by PR #55.
Generally, it is also part of Docker Toolbox that delivers most of the dependencies.

@tsupertramp was there a particular reason why you removed VirtualBox from the dependencies?
I'd actually rather have it in there as we have everything else. The original implementation does make sense.

Considering the feedback from other topics, Brew Cask dependency should be restored.

@ain @brikis98 what's the verdict here re: VirtualBox as a dependency? The project README only lists Homebrew as a prerequisite. We should either add VirtualBox/Docker Toolbox there or add VirtualBox back to the brew dependencies.

Usually, the goal is to put as little into docker-osx-dev as possible. If docker-toolbox installs most of what we need, we should use that, let it handle the details, and remove the rest.

I agree with @brikis98 since Docker Toolbox delivers:

Docker daemon
Docker Machine
Docker Compose

I'd propose removing all functions that try to install them and have a dedicated Requirements section in README instead.


【BUG】When both vertical and horizontal scrolling are performed, and scrollbar is added to the scrollbar, two scrollbars will appear in horizontal scrolling.

Steps to Reproduce

1.The code runs on Android 5.1 and dartpad.
2. When both vertical and horizontal scrolling are performed, and ScrollBar widget is added to the scrollbar, two scrollbars will appear in horizontal scrolling.
https://test.unisiot.com/ad_img/pic_help/utCY7GgJEnA30RrVKm.png
// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';

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

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

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: CupertinoScrollbar(
        child: SingleChildScrollView(
          scrollDirection: Axis.vertical,
          child: Column(
            children: [
              Container(
                color: Colors.blue,
                child: Text('1'),
                height: 500,
                alignment: Alignment.center,
              ),
              Container(
                alignment: Alignment.topLeft,
                height: 150,
                child: CupertinoScrollbar(
                  child: SingleChildScrollView(
                    physics: BouncingScrollPhysics(),
                    //设置水平方向排列
                    scrollDirection: Axis.horizontal,
                    //添加子元素
                    child: Row(
                      children: [
                        Container(
                          color: Colors.blue,
                          child: Text('1'),
                          width: 500,
                          alignment: Alignment.center,
                        ),
                        Container(
                          color: Colors.blue,
                          child: Text('1'),
                          width: 500,
                          alignment: Alignment.center,
                        ),
                        Container(
                          color: Colors.blue,
                          child: Text('1'),
                          width: 500,
                          alignment: Alignment.center,
                        ),
                      ],
                    ),
                  ),
                ),
              ),
              Container(
                color: Colors.blue,
                child: Text('1'),
                height: 500,
                alignment: Alignment.center,
              ),
              Container(
                color: Colors.blue,
                child: Text('1'),
                height: 500,
                alignment: Alignment.center,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Expected results:
Horizontal scrolling displays only its own scroll bar.
Actual results:
Horizontal scrolling also shows the scroll bar of the outer widget.
Logs

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, 1.19.0-4.3.pre, on Microsoft Windows [Version 6.1.7601], locale zh-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    X Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions.
[√] Chrome - develop for the web
[√] Android Studio (version 3.5)
[!] IntelliJ IDEA Ultimate Edition (version 2019.1)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[√] IntelliJ IDEA Ultimate Edition (version 2019.3)
[√] Connected device (3 available)

! Doctor found issues in 2 categories.

I am able to replicate this issue on latest dev, but not sure if this is an expected behavior or not.

this is a duplicate of: https://github.com/flutter/flutter/issues/36474

Closing as dup of https://github.com/flutter/flutter/issues/36474.


Incorrect behavior running executable if current location path is longer than 256 characters

Steps to reproduce
If the path to the current location is > 256 characters, running an executable from PowerShell either fails or works but the executable is run in a separate console.
PS> pwd; (pwd).Path.Length
Path
----
C:\Users\steph\OneDrive\test\test01\test02\test03\test04\test05\test06\test07\test08\test09\test10\test11\test12\test13\test14\test15\test16\test17\test18\test19\test20\test21\test22\test23\test24\test25\test26\test27\test28\test29\tes…
245
PS> HelloCsharpWorld.exe
Hello, C# world!
PS> cd test32
PS> pwd; (pwd).Path.Length
Path
----
C:\Users\steph\OneDrive\test\test01\test02\test03\test04\test05\test06\test07\test08\test09\test10\test11\test12\test13\test14\test15\test16\test17\test18\test19\test20\test21\test22\test23\test24\test25\test26\test27\test28\test29\tes…
252
PS> HelloCsharpWorld.exe
Hello, C# world!
PS> cd test33
PS> pwd; (pwd).Path.Length
Path
----
C:\Users\steph\OneDrive\test\test01\test02\test03\test04\test05\test06\test07\test08\test09\test10\test11\test12\test13\test14\test15\test16\test17\test18\test19\test20\test21\test22\test23\test24\test25\test26\test27\test28\test29\tes…
259
PS> HelloCsharpWorld.exe
ResourceUnavailable: Program 'HelloCsharpWorld.exe' failed to run: The directory name is invalid.At line:1 char:1
+ HelloCsharpWorl …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
PS> cd test34
PS> pwd; (pwd).Path.Length
Path
----
C:\Users\steph\OneDrive\test\test01\test02\test03\test04\test05\test06\test07\test08\test09\test10\test11\test12\test13\test14\test15\test16\test17\test18\test19\test20\test21\test22\test23\test24\test25\test26\test27\test28\test29\tes…
266
PS> HelloCsharpWorld.exe
(no output, executable is run in a separate console that self-closes)

Expected behavior
Running an executable should work and output to the current console, whatever the current location.
Actual behavior
If the path to the current location is > 256 characters long, running an executable either fails or is done in a separate console, yielding no output in the current console.
Environment data
> $psversiontable

Name                           Value
----                           -----
PSVersion                      7.1.0-rc.2
PSEdition                      Core
GitCommitId                    7.1.0-rc.2
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

I think this may be an actual limitation in CreateProcess. When querying info about setting the current directory that exceeds MAX_PATH I got back this info https://github.com/MicrosoftDocs/feedback/issues/1441.

Seems a valid reason. But shouldn't PowerShell warn about it / yield a well-defined error if this is attempted?

Sure, just wanted to share some background info that seemed to be relevant.

Interesting, is there still a problem with launching programs from long paths in PowerShell, even when LongPathsEnabled is set to 1? (longer than the 260 character MAX_PATH limit)
As part of my research into Node.js support of long paths on Windows I've experienced that running node -v just errors out with The directory name is invalid (Windows 11 Pro x64 machine with LongPathsEnabled is set to 1):
PS C:\> node -v
v20.5.1

PS C:\> mkdir long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\

    Directory: C:\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\l
    ong-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-p
    ath\long-path\long-path\long-path\long-path

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        17.11.2023     16:27                long-path

PS C:\> cd long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\
PS C:\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path\long-path> node -v
Program 'node.exe' failed to run: The directory name is invalidAt line:1 char:1
+ node -v
+ ~~~~~~~.
At line:1 char:1
+ node -v
+ ~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
    + FullyQualifiedErrorId : NativeCommandFailed

More details over here:

https://github.com/nodejs/node/issues/50753

I can also open a new issue if that would be better, since this is not 100% the same issue...
cc @iSazonov

The problem repro'es with 7.4.0 on Windows 11 build 10.0.22621.2715.amd64fre.ni_release.220506-1250

@iSazonov @jborean93 can this issue be reopened? I think it should not be closed.

This issue appears to apply to ALL executables. Here, I'm just trying to run whoami in PowerShell opened to a long path:

I can open Cmd to the same folder and have no problem running the same Exe. It's ironic that the ancient Cmd.exe is more capable in this regard:

And yes, that really is the same folder. It's more clear if I change my PowerShell prompt to 8.3 format. Of course, that does nothing to fix the problem:

And, finally, before anyone asks; Yes, LongPathsEnabled is already set to 1 (enabled).

I don't think this should be closed, especially since CMD doesn't exhibit the problem.

I agree with @sba923.

Any idea as to how progress can be made on this?


multi tag?

	label mapping: check --> 1
	label mapping: disease --> 2
	label mapping: food --> 3
	label mapping: drug --> 4
	label mapping: symptom --> 5
	label mapping: body --> 6
	label mapping: S --> 7
	label mapping: operation --> 8
	label mapping: D --> 9
	label mapping: check,drug --> 10
	label mapping: drug,operation --> 11

S for what ?
D for what ?
the last two means multi-tag?

I have explained S&D in another thread.
Not sure where did you get the label mapping? If it's the label mapping from the types to the numbers, S and D should not be there and every different type must be assigned a unique number.


Add CI script

Add .cirrus.yml, which:

builds managed bits on Debian and uploads bin directory to CirrusCI HTTP cache
downloads bin directory on FreeBSD (dependent) task, and builds native bits
on tag-push (e.g. git tag v3.0.0 && git push --tags), creates a github release (idempotently), and upload artifacts (tarball'd coreclr/bin, corefx/artifacts/bin and core-setup/artifacts/bin directories) to GitHub releases.

Examples:

normal run: https://cirrus-ci.com/build/5763590854541312
tag-pushed run: https://cirrus-ci.com/build/6637776368041984
GitHub release: https://github.com/am11/freebsd-bootstrap-cli/releases/tag/v3.0.0

We can factor out all the hardcoded lines from .cirrus.yml to scripts/ directory, so they are used by both localbuild as well as CI. Some parts are already used from scripts/ dir.

I agree that we need to make local scenario also work (preferably without changing machines). I think public CI is also quite useful as often I find myself finding the "most current" how-to-build documentation from the CI steps. e.g. in current dotnet/runtime, it is hard to figure out from any documentation how to do cross-compilation or run outerloop tests etc., so CI yml files or build logs are the best docs! :)
Secondly, isn't it so that this is what we call seed / stage-0 toolset build. Once we get the artifacts published (from CI, transparently) we can build  v3.1 (with stage-0'ish v3.0), without need for Linux and then using that 3.1, we can build v5.0 (assuming folks can be convinced to publish nuget packages to official/semi-official nuget feed)?

I give it (light) try over the weekend @am11. I can see the status page now but something is still not quite right. I'm wondering if could start using your fork since you have it working.

@wfurt, sure, I will try to resume work on #3 over the weekend. I am thinking about switching my focus to runtime for .NET 5, instead of netcoreapp3.1. Thank you for your help! I will be needing it more. :)

We will still need bootstrap cli (3.1) to build 5.
Did you ever try to cross-compile freebsd binaries on Linux? https://github.com/wezm/freebsd-cross-build
There is some internal discussion and we may be able to get some FreeBSD queue if we can run it on Linux/Container and use a strategy similar to ARM -> cross-compile native bits & cross-target managed assemblies on supported OS.


docs(tutorials/jokes): update code highlight lines

[x] Docs
[ ] Tests

Looks like there is one place where the code highlighting is incorrect

Thank you for taking the time for this PR. 🙏🏼
This issue (and others) are already addressed in #2395 that's getting merged soon


No module named 'maxvit.models’

ModuleNotFoundError: No module named 'maxvit.models'; 'maxvit' is not a package

Have you run python setup.py install?

Yes

Please check current dir  path and other defined patches


Not able to create multiple instances of particles-js

I tried Creating Multiple calls to particleJS function in order to run multiple instances of particleJS in certain divs on my HTML page. but by default it only redenrs the first div which is called and ignores the rest. Is there any way we can fix this?
I've Already Referred to #33 , #183 and #302 but still the query remains unsolved. Please Help with the same and provide a robust solution for this.

[Update] Figured out that one of the issues is #119 but still two of them are not working if the canvas size is forcefully made to match the screen size using JS Functions

@Gabo1122 Where on that one-page site are you using particles.js? All I see is two static images with particle-style illustrations. Maybe I'm overlooking something.

On the main site! and then before the footer.

Oh, okay. I see it now. From a user experience standpoint, it's not clear that your logo in the header links to another page...why are there two sites that generally serve the same purpose? It's confusing. But I digress.
The particle effect does look cool on the "main" site.

Thanks @jaredcaraway I was updating the old website to main one, maybe by the time you saw it wasn't fully uploaded but there is only one page now.

Thanks @Gabo1122,
I had already tried that approach as shown in #183 but that did not work for me, Later i discovered that the canvas which is created by the Particles.js script for displaying the particles was assuming its width and height as 0 for all subsequent entries except the 1st one.
In order to overcome this error, i put up all these functions in a window.onload() {} in the script tag of the HTML page and it worked magically for me on all types of devices later.
I guess the particles.js Library has some bug where they have not enabled the screen width to duplicate elements as when the first one loads the other divs may not be rendered by the HTML yet on the screen and hence it assumes width and height to be zero which doesn't show the particles on the screen and we feel that the function is not being called.

I did the following as described:

...
...
Some other HTML Elements will go here.
...
...

@dwij2812 Tks a lot!!

@dwij2812 thank you!!!!!!


feat: process held fees page

Add a settings page which allows projects to process held fees, if they have any.
If a project has no held fees, the page looks like this:

If a project does have held fees, the page looks like this:

In settings menu:

Dark mode:

NOTE: This PR also fixes the read/process held fees transactors. Instead of always using JBETHPaymentTerminal, it uses the project's primary ETH terminal.

We should remove src/components/Project/ProjectToolsDrawer/HeldFeesSection.tsx and its uses - WDYT?

Same page. It's actually broken right now. Removing.

Without held fees now

@aeolianeth anything else needed?


tests/k8s/Vagrantfile: reset kubeadm before init

kubeadm init sometimes fails when starting the K8s Tests Vagrant VM
because files exist in /var/lib/kubelet, so reset kubeadm before
initializing it to clear any state that might have been stored there by
installation of kubelet and other K8s-related processes.
Signed-off by: Ian Vernon<EMAIL_ADDRESS>

running kubeadm reset cleans up the state of /var/lib/kubelet, which was causing the builds to intermittently fail:
==> default: [reset] Stopping the kubelet service
==> default: [reset] Unmounting mounted directories in "/var/lib/kubelet"
==> default: [reset] Removing kubernetes-managed containers
==> default: [reset] No etcd manifest found in "/etc/kubernetes/manifests/etcd.yaml", assuming external etcd.
==> default: [reset] Deleting contents of stateful directories: [/var/lib/kubelet /etc/cni/net.d /var/lib/dockershim]
==> default: [reset] Deleting contents of config directories: [/etc/kubernetes/manifests /etc/kubernetes/pki]
==> default: [reset] Deleting files: [/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf]```


Allow ruby version override

Pkgr will see 'ruby 2.3.4' but in development/CI you can override using rbenv or rvm.
I also bumped the version from 2.3.3 to 2.3.4 since that's been stable for over 2 months now.

I dont understand the issue with having it in the Gemfile?

It works exactly the same as before, but I can run it with ruby 2.4 rather than 2.3 without any code changes.
Also means it can run on a CI system to test against multiple ruby versions, can't do that if it's hard coded.

But if you are running 2.4, then you are not testing against what production is using. We should be developing in the same version that production uses.
I get the point about CI though. But since we control the deployment of this, we only need to test against the version we are deploying at the moment, dont we?

Correct, but you are using 2.3 and I am using 2.4 in production. Since it's open source, it's not always going to be possible to know/control the ruby version of where it's installed?
This change was so that it doesn't force either of us to change our workflows. Everything you were doing with pkgr on version 2.3 will continue to work, but I can deploy this via Docker on ruby 2.4.

I didn't really think people would run it in another way, but you are right. :)


Gulp won't build Typescript: Permission denied trying to write outside the project directory

When I run gulp local from project root it fails with "Permission denied, mkdir /media/sandersn/built", which looks like it's trying to write to the path TypeScript/../../built/local, where TypeScript is the project root.
I blew away my node_modules and did npm install but the error persisted. #14368 sounds very similar to this bug, except that it's ../.. instead of ~ Any ideas @andy-ms ?

Should be fixed by #14512.


[Dropdown] Using allowAdditions with empty addResult message leads to text truncation

Hi @jlukic,
I think this might be a bug. Basically, when a search dropdown is initialized with allowAdditions and empty message.addResult parameters, when you type in an arbitrary item name (i.e. new item name) and then press Enter, then whatever you typed in is truncated in a weird fashion.
Here's a fiddle: http://jsfiddle.net/andreyvk/vLrdxc1w/

To extend the issue a little, I'd also like to mention that there's no way of telling, if item was added dynamically or existed on the dropdown beforehand, since the only event that fires is onChange. Of course we can add an additional attribute/class on existing items to tell that, but I think that onAdd event may very well be used for that. My suggestion is as follows:

When new item is added dynamically, onAdd is fired
If onAdd does not return false, then onChange fires after it right away. This will preserve the way things work now
If onAdd returns false, then onChange does not fire. This is useful, because onChange might have some calls to methods which work only for existing items, but should not be called on new ones.


Do we have to compile source codes after installation by ibus-rime

I'm on Ubuntu 20.04, and have install rime by sudo apt-get install ibus-rime.
Now I want to use librime-lua. Do I have to compile librime itself or I need to start from compiling rime?

yes, you need


ResourceLoader.load not obeying no_cache

Godot version:
3.2.3 latest 10/15/20
OS/device including version:
windows 10.0.18362
Issue description:
Please see full description with code here:
https://godotengine.org/qa/85319/why-are-these-blocks-the-same-size
When using ResourceLoader.load, and issuing (positionally in gdscript) no_cache as true, the resource is still loaded from the cache. The code outlined in the link seems to prove this.
Steps to reproduce:
Implement the code from the thread in a new project (simple) and press play. Note that although the scripts output different numbers into the console, the blocks are the same size on the screen. (script will need to be modified (2 lines, copy paste) to use latest example, which is at the top, and uses Resources.load)
Minimal reproduction project:
Please see https://godotengine.org/qa/85319/why-are-these-blocks-the-same-size

var new_res = $MeshInstance.mesh.duplicate()
$MeshInstance.mesh = new_res
$MeshInstance.mesh.size = newVec


Add externalSetMarkChain to portmap config

Looking at the online portmap doc, this seems to be
the recommended configuration for k8s + portmap
https://www.cni.dev/plugins/current/meta/portmap/

Hi @champtar,
Thanks for fixing this!
But in this project, we limit every PR to only touch one language.
Could you make this PR to fix only content/en file first? After the PR merged, we can open 4 PR for each language or let others do it.
Feel free to /unhold when it's done.
/hold

/unhold

Let me remove redundant language labels for you.
/remove-language id ko pt zh

/sig network

Hi @kubernetes/sig-network-pr-reviews , please take a look and provide a technical review

It's been a while, ping the SIG again: @kubernetes/sig-network-pr-reviews

/assign @danwinship
he has a KEP going on about the usage of the iptables chains, he is the best person to review this

however, after reading the whole doc, it seems it needs to update more sections

@aojea: even if the whole doc is not up-to-date, does this PR make things better or worse?

@aojea: even if the whole doc is not up-to-date, does this PR make things better or worse?

/lgtm
it makes them better IMHO

/approve
Leaving further tweaks to future work.


Enable line ending normalization

See https://help.github.com/articles/dealing-with-line-endings/

We probably want to roll the attributes file to our other repos as well - right?

@aaustin yes sir. Don't forget refreshing the repo if you don't want "why is this file being completely removed and added" later-on.
This and the .gitignore is usually what I initialize my repo's with.


Function WithHosts commented

I downloaded the code to perform tests and added the code that is in the README.
The following error appears:
undefined: client.WithHosts
cannot use body (type map[string]interface {}) as type api.SearchOption in argument to c.API.Search
I open the code in options.go in the client folder and I see that it is commented.
Can you put an example that works in the README? Or tell me where I can find how to run it.
Thank you.
Regards,
Natalia.

As stated in the README this is still work in progress. You can track the items that are still pending via https://github.com/elastic/go-elasticsearch/issues/5.

I was having the same issue, it looks like the function in go-elasticsearch/client/option.go is WithHost() not WithHosts()
The function WithHost() takes a string parameter however, so WithHost("http://localhost:9200") instead of WithHosts([]string{"https://elasticsearch:9200"}).
It looks like there is a better client inside of the libbeats library, hopefully it will be reincorporated into this repo.

Hello, the project has been replaced today with a new codebase, and the initializer works differently now: https://github.com/elastic/go-elasticsearch#usage
Is it OK if I close this issue?


Plug-in turns TV on by itself.

Hi,
I have been having an issue lately with my TCL Android TV it turns itself on a few minutes after I turn it off. I thought this was a one-off but it’s been happening repeatedly for a few weeks now. I have tried troubleshooting and by the process of elimination I have found this plugin to be the problem. As it’s quite useful to control the TV via Homebridge, is there any way to avoid this?
Thanks ❤

Hi.
I've done more troubleshooting and it seems my TV is the problem, not this plugin. For some reason, if I ping it the TV wakes. 🤷♂


Implement chained error reporting support

Closes #43

TODO

[ ] add tests
[ ] wait for norad release with latest error handling updates, then update Cargo.toml dependency

rebased on main branch @ commit bb323937f8621b679c652e2142825d6cf6a0f759

The new error handling changes were pushed in norad v0.7.0.  We should be ready to move these updates into a new release.


[WIP] Highlight comparison of Raw metrics versus those with Coordinated Omission mitigation

Track raw metrics as well as those back-filled with Coordinated Omission mitigation-derived metrics
Add table for Coordinate Omission back-filled metrics:

 === PER REQUEST METRICS ===
 ------------------------------------------------------------------------------
 Name                     |        # reqs |        # fails |    req/s |  fail/s
 ------------------------------------------------------------------------------
 GET (Anon) front page    |           573 |         0 (0%) |    38.20 |    0.00
 GET (Anon) node page     |           385 |         0 (0%) |    25.67 |    0.00
 GET (Anon) user page     |           113 |         0 (0%) |     7.53 |    0.00
 GET (Auth) comment form  |            18 |         0 (0%) |     1.20 |    0.00
 GET (Auth) front page    |            94 |         0 (0%) |     6.27 |    0.00
 GET (Auth) node page     |            64 |         0 (0%) |     4.27 |    0.00
 GET (Auth) user page     |            18 |         0 (0%) |     1.20 |    0.00
 GET static asset         |         4,012 |         0 (0%) |   267.47 |    0.00
 POST (Auth) comment form |            18 |         0 (0%) |     1.20 |    0.00
 -------------------------+---------------+----------------+----------+--------
 Aggregated               |         5,295 |         0 (0%) |   353.00 |    0.00
 ------------------------------------------------------------------------------
 Name                     |    Avg (ms) |        Min |         Max |     Median
 ------------------------------------------------------------------------------
 GET (Anon) front page    |       11.83 |          3 |          88 |         12
 GET (Anon) node page     |       46.24 |          3 |       1,751 |         29
 GET (Anon) user page     |       24.62 |         13 |          40 |         25
 GET (Auth) comment form  |       32.67 |         19 |          52 |         31
 GET (Auth) front page    |       48.63 |         20 |       1,772 |         28
 GET (Auth) node page     |       29.19 |         21 |          42 |         29
 GET (Auth) user page     |       26.39 |         23 |          36 |         25
 GET static asset         |        9.26 |          2 |          92 |          6
 POST (Auth) comment form |       46.94 |         34 |          59 |         47
 -------------------------+-------------+------------+-------------+-----------
 Aggregated               |       13.80 |          2 |       1,772 |          7
 ------------------------------------------------------------------------------
 Adjusted for Coordinated Omission:
 ------------------------------------------------------------------------------
 Name                     |    Avg (ms) |    Std Dev |         Max |     Median
 ------------------------------------------------------------------------------
 GET (Anon) front page    |      141.66 |      90.41 |       3,220 |         13
 GET (Anon) node page     |      172.38 |     112.13 |       3,220 |         30
 GET (Anon) user page     |      155.27 |     100.03 |       3,220 |         25
 GET (Auth) comment form  |           - |          - |           - |          -
 GET (Auth) front page    |           - |          - |           - |          -
 GET (Auth) node page     |           - |          - |           - |          -
 GET (Auth) user page     |           - |          - |           - |          -
 GET static asset         |      120.68 |      75.58 |       3,220 |          7
 POST (Auth) comment form |           - |          - |           - |          -
 -------------------------+-------------+------------+-------------+-----------
 Aggregated               |      127.73 |          2 |       3,220 |          8
 ------------------------------------------------------------------------------

As the "Minimum response time" never changes, we replace that column with the "Standard deviation" between the raw average response times and the Coordinated Omission back-filled response times
In the above example, Coordinated Omission only kicked in for Anonymous users, not for Authenticated users: we could simple remove the authenticated rows? But I chose to include it with "-" for the data to try and illustrate that the data wasn't adjusted

The output looks great to me 👍


Page is breaking when cleaning up upload order desc

Bug Report
Page is breaking when users click on the close icon in order desc in upload collection.
Steps to Reproduce

Go to upload collection, e.g media collection
Click sort, click x in descending

Page is broken, i.e. become blank page

I was able to recreate this on my end and will get it patched up shortly. Thank you for the report @cmngan!


Navigating from Dashboard to Primer Questions risks crazy redirect

I was able to simulate this on a RFT learners account:
https://secure.helpscout.net/conversation/622086559/315?folderId=1843112
When on a campaign dashboard and then clicking questions the resolver redirects to / first.

I believe this can result in a crazy redirect

Additionally, this looks to only be present when the redirect comes through the questions resolver in the first place (so accessed through the sidebar)


Add a force disconnect option to clean all the resources from the agent plane

On the disconnect agent, we are deleting subscriber deployment and agent-config config map. As part of force disconnect, we need to delete all the resources which are present here.
Introduce a new request type as "force-delete". For ref- https://github.com/litmuschaos/litmus/blob/9837df11cd65e14cc18fb50c11ca367acee2be67/litmus-portal/graphql-server/pkg/cluster/handler/handler.go#L199

cc: @hextechpal


fix: issue dhcp request on windows secondary interfaces

Reason for Change:

We need to issue a dhcp request to the host in order to create a mapping for the secondary interface. The mapping allows for us to query the azure dns server on the secondary interface. The dhcp discover request occurs before the interface has the intended ip or is moved into the container namespace, but it does have an apipa autoconfigured ip. The auto assigned ip allows us to set the source ip of the packet so that the dhcp packet goes out on the interface that we want. We assume the interface always gets an auto configured ip. Then, once cni completes, we expect that secondary interface to be moved into the container.
Adds validation for nwCfg.Master since we issue exec commands with the field, so ensure this validation does not break anything else.
Reorganizes code into dhcp linux, windows and common.
Reorganizes retry logic into separate package
Confirm that we only run this code if we are on swiftv2 windows (is the nic type condition correct?). Confirmed yes.
Tested:

standalone prototype binary
swiftv2 windows happy path (saw packet on secondary)
swiftv2 time out on waiting for response will correctly give context deadline exceeded
swiftv2 multiple pods can be created
swiftv2 ips are assigned according to mtpnc
https://msazure.visualstudio.com/One/_build/results?buildId=105427745&view=results

Limitations:

Assumes auto configuration ip will always be assigned to the interface

Issue Fixed:

Requirements:

[X] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[x] relevant PR labels added

Notes:
Related to #2989

@QxBytes stalebot is targeting this PR again. Anything else needed here?

there is no repro to test this fix on at the moment


Add argument types to URL.createObjectURL

The function URL.createObjectURL currently has an argument of type any. However, this is not in line with the types it would like to be parsed.
I suggest changing the argument from type object: any to object: File | Blob | MediaSource.
This would make make the type more helpful and make it inline with the MDN docs.
I might be missing a type of null or undefined on the union type but I'm not sure if there is a use case for this.

Whoops. I was too fast.
Seems like the type should be changed here: microsoft/TSJS-lib-generator

This seems reasonable to me. N.B., lib.webworker.d.ts must exclude MediaSource.

I plan to make a pull request, however I'm not sure which files to edit. Could you point me the right direction?

I’ve actually never made a lib edit myself, but you can check the Contribution Guidelines here.

@andrewbranch

This was fixed back in #46080.

Hello @jakebailey  . Please, contrary to your statement, this wasn't fixed in #46080 .
It ought to be URL.createObjectURL(obj: File | Blob | MediaSource) and not URL.createObjectURL(obj: Blob | MediaSource).
I will graciously like to re-open this PR which @olyop opened

File extends Blob; there is no reason to include File in the union as it would be reduced away.

Ok 👍🏾


Add Authentication Validation + Authentication event-stream raising

This was mostly done for https://github.com/RedHatInsights/sources-superkey-worker/pull/48 since I need the resource ID to be a string || integer for the rails app, also more flexibility doesn't hurt.

I also turned on the event-stream raising for authentications since we satisfy that interface now.

/retest

/retest

Do we need also other validations ?
1.availability_status -  https://github.com/RedHatInsights/sources-api/blob/master/app/models/authentication.rb#L16
2.only_one_superkey - https://github.com/RedHatInsights/sources-api/blob/master/app/models/authentication.rb#L19
3.both_username_and_password - https://github.com/RedHatInsights/sources-api/blob/master/app/models/authentication.rb#L20

Do we need also other validations ?
1.availability_status - https://github.com/RedHatInsights/sources-api/blob/master/app/models/authentication.rb#L16 2.only_one_superkey - https://github.com/RedHatInsights/sources-api/blob/master/app/models/authentication.rb#L19 3.both_username_and_password - https://github.com/RedHatInsights/sources-api/blob/master/app/models/authentication.rb#L20

No we don't need that for create requests, maybe for update requests in the future. We also do not display the availability status for authentications in the UI at all. It is just there in case we wanted to support it in the future eventually.

2 & 3. I'll do those in a follow-up - they aren't necessary except for QE tests. I mostly just need the "raw" varialbe support for the superkey refactor. I changed the title to "basic" validation since it isn't all of it haha


Dart 1.16 is now released. Upgrade Flutter's dep ?

Looks like Flutter is still downloading a dev version of 1.16. We might want to upgrade our downloaded dart sdk to 1.16.
Thanks!

Sure.

Flutter upgrade isn't updating the SDK to 1.16.0
current version installed -1.12.13+hotfix.9.


Preserving external images (issue #399)

Added preserving external images into a local storage.
Configuration
Added preserve-external-images parameter (PRESERVE_EXTERNAL_IMAGES envvar) which is false by default.
Implementation details
Images Preserver acts as a CommentConverter and utilizes default image storage as it configured by Remark admin. Images Preserver extracts all external images (sourced outside of REMARK_URL), downloads and stores them into local storage, after that image URL is replaced with a local version. If at any moment of downloading/storing image any problems occur (for example image url returns 404, or image has unsupported format, or too big, etc) then original image url will be kept.
Considered and rejected

Configuring it as an Image Proxy mode (e.g. IMG_PROXY=[none,proxy,store]). For some reason, even if implementation is somewhat close to Image Proxy, it feels that from a user (Remark admin) perspective Image Proxy and Image Preserving are two different things. Plus after storing an image Image Preserver no longer acts as a proxy.
Configuring it as an Image Store option. Doesn't feel like an Image Store kind of property, more like an engine behavior in general.

Future improvements

Given that previously all stored images were directly uploaded by users, it kind of reduced chances of storing multiple duplicates. With Images Preserving enabled, people constantly referring to the same memes/gifs/etc might fill local store with duplicates pretty quickly. Some kind of deduplication might help.

Looks like deprecation warning from golangci-lint brakes json for GolangCI

Option is renamed to timeout https://github.com/golangci/golangci-lint/pull/793

Thx for the PR.
My primary concern is this - " rejected: Configuring it as an Image Proxy mode" but to me, it sounds like the right way to do it. The current proxy already does most of the work of mapping picture urls, converting comment and serving back different (proxied) content on the fly. Preserving images on the FS (or other stores) is a natural extension of such a proxy. i.e. some form of cached proxy. Btw, if we treat stored images as persistent cache, we can limit the size of the cache (number of stored images or total volume on the disk) with LFU or LRU.
Besides, it feels like rest-level functionality and not the engine-level. I think with less code, it can be done less intrusively with an additional proxy.Image property and a few, relatively minor changes in Convert and Handler function. After Convert got the list of images we can store them with the original url encoded somehow into the file name, and Handle could serve from those files instead of reading from the remote URL. By doing this, we won't have images segmented by the user name, and it will allow native deduplication.
One potential disadvantage with this simplified logic - we won't be able to utilize submit+commit technic used in image.Service and won't be able to drop unlinked images from the storage. However, your implementation doesn't use it either (I think you use Service just as a Store), and this issue can be addressed as a part of LFU logic some day.
Another potentially promising solution is to combine image.Store part with image proxy solution described above. I.e. inject image.Store directly into proxy.Image and discard uder_id completely by passing in something like "system_images" as a user name.

It might be a long answer, apologize in advance :)
I think there're two key things to clarify:

What kind of guaranties this "local copy" should provide? I assumed they should be treated just like uploaded pictures therefore stored permanently. I may probably argue that cache approach won't solve stated problem ("images hosted on some external place and, sometimes, those pictures stored temporarily") because it's very much possible that Remark's cache for a particular image will be purged around the same time as image disappears from external place.
When you say that this feature sounds very much like an extension for a proxy functionality, do you mean from implementation perspective only or from configuration pov also? In my opinion they should be configured separately because they solve two completely different problems. From a user (remark admin) perspective:

Proxy — "I want to make sure user isn't getting warnings about insecure connection when external image is coming from HTTP site" (and proxy is just one of the possible solutions for this problem);
Preserving images — "I want to make sure comments are preserved in original state even when they refer to external resources".

Besides these two things a few more comments:

After Convert got the list of images we can store them with the original url encoded somehow into the file name

Imho pretty dangerous approach, urls are mutable, tomorrow the same url may refer to a completely different picture but remark's storage/cache will continue serving old one.

However, your implementation doesn't use it (submit+commit technic) either

In fact it does use it. Because I put images into a permanent storage and replace urls with /api/v1/pictures/... all of them will be committed during comment posting. And cleanup is just an infinite loop which removed everything from staging older than TTL (no extra actions from me are required).

discard uder_id completely by passing in something like "system_images" as a user name

Yeah, I thought about it too. One thing that stopped me, eventually some remark installation will get an actual user called "system_images" :) Who knows what other features remark will have then, for example you may add returning all images for a user, imagine surprise of this "system_images" user :)
Let me know what you think, after all it's your project and I'm totally fine changing implementation in a way you see it.

It might be a long answer, apologize in advance :)

No worries, mine will be even longer ;)
TLDR: up to you with a couple of extras

it's very much possible that Remark's cache for a particular image will be purged around the same time as image disappears from external place.

Sure. I mentioned LRU/LFU type of cleanup as a hypothetical "possible someday" kind of extension. Anything unlimited may run out of space someday, but let's not care about it now, like I ignored this problem for images directly uploaded to remark42 with a hope to always have big enough disk to keep them forever.

When you say that this feature sounds very much like an extension for a proxy functionality, do you mean from implementation perspective only or from configuration pov also?

Both. I don't see the ability to serve the response from the stored file as something disqualifying the thing to be a proxy. One of the most popular proxies is squid, and this is exactly what it does. Currently, the proxy we have in remark42 limited to provide http->https "forwarding" but this forwarding is for the same external assets, and I don't see anything conceptually different between serving request by calling http.Get to load a picture or some store.Load func reading the picture from FS. I still treat this thing as some sort of cached proxy. We agreed to cache forever, but the retention period doesn't make much difference technically or conceptually.

Imho pretty dangerous approach, urls are mutable, tomorrow the same url may refer to a completely different picture but remark's storage/cache will continue serving old one.

Well, yes and no. I mean, this is a typical tradeoff between size and accuracy. We may address it in different ways without killing deduplication completely, for example, checking the size of the remote image after some TTL and including size into the encoded filename. But I don't think we care about this too much, at least for now, because currently, we including images exactly the same way by URL. However, I don't have any fundamental problem with saving images under user_id if you think it may help somehow.

In fact it does use it. Because I put images into a permanent storage and replace urls with
/api/v1/pictures/... all of them will be committed during comment posting

Ok, agree.

eventually some remark installation will get an actual user called "system_images"

No, this is not possible with user_id because ids formed as _sha, i.e. github_123456779. Even if someday we add a provider system we won't be able to make sha what looks like "images" ;)

Let me know what you think, after all it's your project and I'm totally fine changing implementation in a way you see it.

I don't have a major technical problem with your current implementation. It is fine and clear code, decently covered. I didn't like the change of converter interface initially but can live with it. To me, passing user_id felt too artificial, but I guess, in some cases such ability can be handy.
Handling imgPreserver as a convertor was the most controversial idea here (from my pov), and the main reason why I started this discussion. However, I can accept it and, maybe, may begin to like it one day. It still feels like the wrong level to me, but it won't wake me up in the middle of the night screaming and crying ;)
The bottom line - I don't want you to spend too much time redoing this. If you have some bright ideas on how to keep the most of it but address the "wrong level" issue - it will be nice. If not - I'll gratefully accept the current implementation.
Some additional things to consider:

I don't see how you handle the lack of stored file. I think currently it has no way to extract the original url. Maybe adding encoded orig url to resImgURL (as a query param) may help here. Not a big deal, but it means if the user changed his mind and decided not to serve already preserved images, it will be impossible to do.
both user-uploaded images, as well as proxied images, will be stored side by side with no way to realize which is what. Not an immediate problem, but can be someday as some big site will ask to remove all images remark42 downloaded from them. Smth to think about.

Haha, thank you very much for a very detailed response! I actually think that "proxy" idea is growing on me, I'll see what I can do with it.  Yes, I actually pushed my changes implementing caching in proxy back in October (see the last commit https://github.com/umputun/remark/pull/447/commits/e4db45abb5d79148e5d9bb9dfd2f92065fa9d599), now need only rebase it to master and add/update tests (and probably add support into BoltDB storage). I think I'll try to do it during Christmas holidays, would it work?

sure. somehow I missed that push completely

Yeah, it's my fault probably, I was planning to finish everything quickly so didn't add any comment after pushing. Do you want to take a look at the implementation now (I don't expect anything to change while rebasing/adding tests) or would prefer to review finished version?

let's do it on rebased version. I don't recall what even changed in store/image package and caused the conflict, so it's hard to tell how transparent this merge is going to be

Cleaned up everything, added tests and rebased to master. Tested without frontned (with both FS and BoldDB storages) so it's all good for review. Will do end-to-end testing with frontend tomorrow.

linter complains about using sha1, do we need to care given that it's not being used for anything security related? I didn't use sha26 or higher to keep keys (filenames) getting too long an potentially hitting some limits.

sha1 is fine for our uses and //nolint will be appropriate here

Tested with frontend, all related functions seems to be working properly (posting/viewing comments with and without proxy/caching enabled).
A few notes:

config related to enabling http->https proxy has changed, I didn't add backward compatibility or any warnings if previous option is detected. It might make sense to do it
in order to guaranty that image ID doesn't change (which happened in case of resizing and FS image store) I removed storing images extensions. content-type for cached images is image/* which seems to be accepted by browsers without any problems.
as I mentioned in code (https://github.com/umputun/remark/pull/447/files#diff-4a38ba5920fb68398b49ccea32190da2R88-R91) turning off both proxy and caching might have unexpected for users effect, not sure if we need to do anything about it right now


[eslint-plugin-mitosis]:  ref-no-current fails when useRef has generic type

I am interested in helping provide a fix!
Yes
Which generators are impacted?

[ ] All
[ ] Angular
[ ] HTML
[ ] Qwik
[ ] React
[ ] React-Native
[ ] Solid
[ ] Stencil
[ ] Svelte
[ ] Vue
[ ] Web components

Reproduction case
no
Expected Behaviour
should work well
Actual Behaviour
failed
Additional Information
No response

@decadef20 can you share a code snippet of the failure?

I tested it again. I got it wrong. It works well.
I  close the issue.


Luker quality

Image preprocessing 2 lines of changes that improve aggregated similarity measures to: JACCARD_SIMILARITY: 0.683 and BUILT_IN_MATCHER: 0.779 (in comparison to JACCARD_SIMILARITY: 0.543 and BUILT_IN_MATCHER: 0.601)

Looking good!


[Libsamplerate] Update to version 0.2.2

Update from 0.2.1 to 0.2.2.
No other port changes.

Thanks for the new version :D


scene edit and merge

Great work!
I want to merge two scenes that were rebuilt separately.
Some operations include:
Scale alignment
Subscene rotation and translation
Merge export
I want to implement it on supersplat, can you give me some advice?

Duplicate of Issue 53

Closing as above. BTW we're busy adding this feature, coming soon.


Elaborate on DI example

Great product, great documentation. I have been able to do everything I needed so far without having to stray any further than your readme, which is amazing.
At the moment, however, I am struggling a bit with how to properly set up the dependency injection. It looks like the readme is a little light on this area. It suggests to use your other product, typedi, but the documentation for that doesn't assume you're using MVC, so I'm not completely sure how to integrate them.
I have a UserRepository class, and I'm using Knex.js, that needs to be passed into the constructor of that UserRepository class. I would prefer to inject the knex object into my controller and create the repository in the controller class, but I would also be okay with injecting the UserRepository class directly into the controller.
The part where I'm running into trouble is, I'm not sure where to create the knex object and add it to the Container. Can you elaborate here?

I would store the variable with knex instance connected to the store inside e.g. database.ts and just use custom decorator to easily inject it into repository or controller constructor.


Dynamically annotating functions for agents and function calling for chats.

Summary
This pull request introduces a new article and a Jupyter notebook that explain how to dynamically annotate Python classes for function calling and agent utilization. The changes include a detailed walkthrough on how to create a decorator for function schema annotation, a function registry to map function names to the functions themselves, and how to use this registry to resolve function calls. The article and notebook are added to the registry for easy access.
New content:

articles/dynamic_annotation_function_calling_and_agents.md: This new article explains how to dynamically annotate Python classes for function calling and agent utilization. It includes code examples and explanations for creating a FunctionRegistry class, a function_schema decorator, and how to use these tools.

examples/Dynamically_annotating_functions_python.ipynb: This new Jupyter notebook contains the same content as the article but in an interactive format.

Updates to the registry:

registry.yaml: Added the new article and Jupyter notebook to the registry. [1] [2]

Motivation
Why are these changes necessary? How do they improve the cookbook?
The examples only explore the capability, but nothing describe the capacity that can be achieved by scaling the function calling to the next level, this article and notebook explore these options where developers can just annotate and describe what they want.
This was part of my medium article.

For new content
When contributing new content, read through our contribution guidelines, and mark the following action items as completed:

[x] I have added a new entry in registry.yaml (and, optionally, in authors.yaml) so that my content renders on the cookbook website.
[x] I have conducted a self-review of my content based on the contribution guidelines:

[x] Relevance: This content is related to building with OpenAI technologies and is useful to others.
[x] Uniqueness: I have searched for related examples in the OpenAI Cookbook, and verified that my content offers new insights or unique information compared to existing documentation.
[x] Spelling and Grammar: I have checked for spelling or grammatical mistakes.
[x] Clarity: I have done a final read-through and verified that my submission is well-organized and easy to understand.
[x] Correctness: The information I include is correct and all of my code executes successfully.
[x] Completeness: I have explained everything fully, including all necessary references and citations.

We will rate each of these areas on a scale from 1 to 4, and will only accept contributions that score 3 or higher on all areas. Refer to our contribution guidelines for more details.

Keen to have this approved

Pleas review it.


Send Metadata

Hello,
I would like to send Metadata per frame through RTMP Muxer along my video frames ! Would you have an idea on how to implement a writeMetadata/ addMetadata function that allows me to send XML or string data  ?
Thanks

I saw that you are sending height and width metadata like that : https://github.com/ant-media/LibRtmp-Client-for-Android/pull/10/commits/8a6068c9e1ca17ff291856ea88f587f5a16d71b3
Will it work if i add a String or Json parameter ?
How would i be able to read it on the server end ?

First define the metata attribute in xiecc_rtmp.c，like this
...   static const AVal av_videoframerate = AVC("framerate");   ...
Then modify the length in the rtmp_open_for_write method and write the attributes
...   output = AMF_EncodeInt32(output, outend, 6);   output = AMF_EncodeNamedNumber(output, outend, &av_videoframerate, frame_rate); ...


Add docs for remote

Let me know where should I include the new remote docs section and if I should add / change anything.

Beautiful :) I'd just add this as an additional page!

Before the frequently asked questions would be ok?

Sounds good!

Thank you :)


Investigate running bulk import jobs using EMR serverless

We should add an option to run bulk import using EMR Serverless (https://aws.amazon.com/emr/serverless/). We anticipate that this will make the current (non-persistent) EMR option redundant. Therefore we should add the option to run the Spark job on EMR serverless to that stack. It can be an instance level option initially.
See this example for how to enable EMR serverless to work with Java 11: https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/using-custom-images.html#image-java

PR for this issue is https://github.com/gchq/sleeper/pull/958


ability to set a custom style on the DateObject in before-render

a tiny change to enable some flexibility styling the dates, for example dates disabled for different reasons

Thanks for the PR - I've decided that any changes to the HTML must be done by overriding the template rather than fiddling with configuration and extra properties.
I'm not sure when I will get to this enhancement so if you would like it soon a PR will do the trick. =)
Thanks!


../../third_party/dart/runtime/vm/zone.cc: 94: error: Out of memory.

Steps to Reproduce

...
...
...

Logs

Logs

../../third_party/dart/runtime/vm/zone.cc: 94: error: Out of memory.
version=2.13.0 (stable) (Wed May 12 12:45:49 2021 +0200) on "windows_x64"
pid=11356, thread=16972, isolate_group=main(00000191F5C24F10), isolate=(nil)(0000000000000000)
isolate_instructions=191f4f70000, vm_instructions=7ff6b8a6fa70
pc 0x00007ff6b8bf6426 fp 0x00000026429fe100 Unknown symbol
-- End of DumpStackTrace
the Dart compiler exited unexpectedly.

Can you elaborate on your problem what kind of issue are you facing?
also, provide
flutter doctor -v

Closing as duplicate of https://github.com/flutter/flutter/issues/82431
Please follow up there


User data loss during migration from realm-cocoa 2.8.1 to 2.10.2

Goals
Start application with updated realm version.
Expected Results
Everything migrated correctly and data is available in synchronised realm.
Actual Results
Exception happened inside
realm::Realm::Realm constructor
underlying	std::__1::string	"Realm file decryption failed"
error_kind	realm::RealmFileException::Kind	AccessError
[RLMSyncUser allUsers] call returns empty array. And app thinks that it's not in synchronized mode.
Steps to Reproduce
Install Galileo 3.6.1 from Testflight, turn Sync on. Add some data. Update it to Galileo 3.7.1. After update it displays that it's not synchronized anymore and there is no user data. I think you could reproduce it with any app with synchronized realm during migration from realm-cocoa 2.8.1 to 2.10.2.
Code Sample
As I found from debugging the issue caused changed storage of metadata encryption key. Seems that in 2.8.1 encryption key was stored in some different place. Or there was no encryption at all.
Version of Realm and Tooling
Realm framework version: 2.10.2
Realm Object Server version: 1.8.3
Xcode version: 9
iOS/OSX version: 11.0.2
Dependency manager + version: Cocoapods

Updated data. Migration from 2.8.2 to 2.10.1 was ok. And issue is most likely between 2.10.1 and 2.10.2. Checking now.

Ok. Bug has been found.
First you move path variable, and then you check if file exists at path. Sure it's not. And legacy key is not checked. Beep.
https://github.com/realm/realm-object-store/blob/master/src/sync/impl/sync_metadata.cpp#L90-L98

Worst thing that now we have new encryption key and old encryption key in keychain.

@molind, I'm sorry for the trouble this has caused you, and greatly appreciate the diagnostic efforts.

Thanks for reporting this; we regret the inconvenience. The next version we release will contain a fix.


360° video metadata injection

Hi,
I chanced upon an article describing how to inject 360 metadata into a video - it makes use of a couple of utilities maintained by Google - https://github.com/google/spatial-media

Interesting. What do you propose? To add a link to it in the README?

That sounds good. Would you like me to make a PR?

Please do!


Supporting multiple generation_configs in the config

Is your feature request related to a problem? Please describe.
It isn't a problem, but the R2R-Dashboard provides a drop-down for model selection, at the same time it seems I can't define multiple completions.generation_config.
Describe the solution you'd like
I tried providing an array of generation_config:
{
  "completions": {
    "provider": "litellm",
    "generation_config": [
      {
        "model": "ollama/qwen2:1.5b",
        "temperature": 0.1,
        "top_p": 1.0,
        "max_tokens_to_sample": 1024,
        "stream": false,
        "tools": null,
        "add_generation_kwargs": {},
        "api_base": null
      },
      {
        "model": "ollama/phi3:3.8b",
        "temperature": 0.2,
        "top_p": 0.8,
        "max_tokens_to_sample": 512,
        "stream": true,
        "tools": null,
        "add_generation_kwargs": {},
        "api_base": null
      },
...

Which r2r doesn't currently support but could easily be refactored in the current codebase it seems, and exposing the choice to the R2R-Dashboard Playground in the dropdown.
Describe alternatives you've considered
Switching models by booting up different configurations or using the CLI, which is cumbersome.
Additional context
None

You can choose different models at runtime, these settings are what the server will default to in absence of user input.
We've made this clearer in the documentation here - https://r2r-docs.sciphi.ai/cookbooks/basic-configuration#llm-provider-configuration
You should be able to confirm that changing the selected model in the playground does in fact result in that model generating the completion.


[device-report] Redragon Shaco Pro (k641 pro)

Device Info

Sinowealth Device: SH68F90A
IC Label: BYK916
Product Page: https://redragonshop.com/products/shaco-k641-aluminum-wireless-keyboard

Part Info
firmware_size: 61440
vendor_id: 0x258a
product_id: 0x0049
bootloader_size: 4096 # necessary if not default
page_size: 2048 # necessary if not default
isp_usage_page: 0xff00 # necessary if not default
isp_usage: 0x0001 # necessary if not default
isp_index: 0 # necessary if not default

Operations Tested

[x] Read
[ ] Write

Platforms Tested

[x] linux
[ ] macos
[ ] windows

Checksums

Bootloader MD5: 3e0ebd0c440af5236d7ff8872343f85d
Stock Firmware MD5: c506173c042656d078dbaf54906ac44b

HID Dump
A dump from usbhid-dump, win-hid-dump or mac-hid-dump

HID Tool Output
# Redragon Shaco Pro using hid-dump
❯ sudo usbhid-dump -m 258a:0049
001:035:001:DESCRIPTOR<PHONE_NUMBER>.196170
 06 01 00 09 80 A1 01 85 01 19 81 29 83 15 00 25
 01 95 03 75 01 81 02 95 01 75 05 81 01 C0 05 0C
 09 01 A1 01 85 02 19 00 2A FF 02 15 00 26 FF 7F
 95 01 75 10 81 00 C0 06 00 FF 09 01 A1 01 85 03
 15 00 26 FF 00 09 2F 75 08 95 03 81 02 C0 05 01
 09 06 A1 01 85 04 05 07 19 04 29 70 15 00 25 01
 75 01 95 78 81 02 C0 06 00 FF 09 01 A1 01 85 05
 15 00 26 FF 00 19 01 29 02 75 08 95 05 B1 02 C0
 06 00 FF 09 01 A1 01 85 06 15 00 26 FF 00 19 01
 29 02 75 08 96 07 04 B1 02 C0 05 01 09 02 A1 01
 85 07 09 01 A1 00 05 09 15 00 25 01 19 01 29 05
 75 01 95 05 81 02 95 03 81 01 05 01 16 00 80 26
 FF 7F 09 30 09 31 75 10 95 02 81 06 15 81 25 7F
 09 38 75 08 95 01 81 06 05 0C 0A 38 02 95 01 81
 06 C0 C0 06 00 FF 09 01 A1 01 85 08 15 00 26 FF
 00 09 00 75 08 96 7D 01 B1 02 C0

001:035:000:DESCRIPTOR<PHONE_NUMBER>.199069
 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
 95 08 75 01 81 02 95 01 75 08 81 03 95 06 75 08
 15 00 26 FF 00 05 07 19 00 2A FF 00 81 00 25 01
 95 05 75 01 05 08 19 01 29 05 91 02 95 01 75 03
 91 03 C0

Hi. I'm trying to read the stock firmware and bootloader of this keyboard with
sinowealth-kb-tool-bin read --full \
    --vendor_id 0x258a \
    --product_id 0x0049 \
    --firmware_size 61440 \
    --bootloader_size 4096 \
    --page_size 2048 \
    --reboot false \
    StockFW.hex

Most of the times it will give this error and leaves the keyboard in the bootloader mode with random rgb lights:

Error log
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 2/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 3/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
thread 'main' panicked at src/isp.rs:242:64:
called `Result::unwrap()` on an `Err` value: HidApiError { message: "hid_error is not implemented yet" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

The keyboard won't work until re plugged.
But sometimes it will work just fine.

Successful read log
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 2/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 3/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 4/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Connected!
INFO  [sinowealth_kb_tool::isp] Enabling firmware...
INFO  [sinowealth_kb_tool::isp] Reading...
INFO  [sinowealth_kb_tool] MD5: f885cbb3a33602ae52bae90d491e1303

@Danial-Movahed thanks a lot for your report and glad to hear you managed to fix your keyboard!
Based on the output from usbhid-dump and all other redragon keyboards reported so far, the isp_index should be 1, but this would only affect windows users. Would you be able to test this on a windows device and confirm whether isp_index=1 is the option that works for this keyboard?
SIDE-NOTE: redragon uses the same pId (and naturally, the same vId) for all of their keyboards, or at least it seems that way :(

Ok, Here you go. Dump from win-hiddump on windows 11 22H2.

HID Tool Output
# Redragon Shaco Pro using winhiddump
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_00#7&30a43d12&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
DESCRIPTOR:
  05  01  09  06  A1  01  05  07  19  E0  29  E7  15  00  25  01
  35  00  45  01  65  00  55  00  75  01  95  08  81  02  95  38
  81  03  05  08  19  01  29  05  95  05  91  02  95  03  91  03
  C1  00
  (50 bytes)
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_01&col01#7&cccff50&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  01  09  80  A1  01  85  01  19  81  29  83  15  00  25  01
  35  00  45  01  65  00  55  00  75  01  95  03  81  02  95  05
  81  03  C1  00
  (36 bytes)
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_01&col02#7&cccff50&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  0C  09  01  A1  01  85  02  15  00  25  01  35  00  45  01
  65  00  55  00  75  01  95  10  81  03  C1  00
  (28 bytes)
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_01&col03#7&cccff50&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  03  09  2F  15  00  25  FF  35
  00  45  00  65  00  55  00  75  08  95  03  81  02  C1  00
  (31 bytes)
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_01&col05#7&cccff50&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  05  15  00  25  01  35  00  45
  01  65  00  55  00  75  01  95  28  B1  03  C1  00
  (29 bytes)
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_01&col04#7&cccff50&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
DESCRIPTOR:
  05  01  09  06  A1  01  85  04  05  07  19  04  29  70  15  00
  25  01  35  00  45  01  65  00  55  00  75  01  95  6D  81  02
  95  0B  81  03  C1  00
  (38 bytes)
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_01&col08#7&cccff50&0&0007#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  08  09  00  15  00  25  FF  35
  00  45  00  65  00  55  00  75  08  96  7D  01  B1  02  C1  00

  (32 bytes)
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_01&col06#7&cccff50&0&0005#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  06  15  00  25  01  35  00  45
  01  65  00  55  00  75  01  96  38  20  B1  03  C1  00
  (30 bytes)
258A:0049: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_0049&mi_01&col07#7&cccff50&0&0006#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  01  09  02  A1  01  85  07  09  01  A1  00  05  09  19  01
  29  05  15  00  25  01  35  00  45  01  65  00  55  00  75  01
  95  05  81  02  95  03  81  03  05  01  09  30  26  FF  7F  45
  00  75  10  95  01  81  06  09  31  81  06  09  38  25  7F  75
  08  81  06  05  0C  0A  38  02  81  06  C1  00  C1  00
  (78 bytes)

I also have a hackintosh machine, If you want I can get a dump from there and test this tool.
btw when I bricked my keyboard, I took it to the seller's warranty service because I'm in Iran, there is no official warranty service for redragon and they told me that to fix this the chip must be replaced and after that it needs to be programmed which the programmer and the firmware file is redragon confidential therefore we can't fix this. And they wanted me to pay one third of the price of keyboard to give me a new one XD. But thanks to your tools I was able to fix it without spending any money.

I tested read with isp_index 0 and 1 on windows. Only with isp_index 1 it works. Here is the log:
isp_index 0
.\sinowealth-kb-tool read --full --vendor_id 0x258a --product_id 0x0049 --firmware_size 61440  --bootloader_size 4096 --reboot false --isp_index 0 StockFW.hex
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 2/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 3/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 4/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 5/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 6/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 7/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 8/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 9/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 10/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
ERROR [sinowealth_kb_tool] Device not found

isp_index 1
.\sinowealth-kb-tool read --full --vendor_id 0x258a --product_id 0x0049 --firmware_size 61440  --bootloader_size 4096 --reboot false --isp_index 1 StockFW.hex
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 2/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 3/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Retrying... Attempt 4/10
INFO  [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x0049
INFO  [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO  [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO  [sinowealth_kb_tool::isp] Connected!
INFO  [sinowealth_kb_tool::isp] Enabling firmware...
INFO  [sinowealth_kb_tool::isp] Reading...
INFO  [sinowealth_kb_tool] MD5: bfd63f71d4838ea206e80516ff5f05ab

@Danial-Movahed great, thanks!


(PE-35509) Add ClosureLatchSyncer interface to sync client and server closures

Updates Jetty to 10.0.18 and adds the ClosureLatchSyncer interface to the Jetty WebSocketAdapter object to sync closure of websocket client and server. This was a mechanism observed in the code examples Jetty provides (https://github.com/jetty-project/embedded-jetty-websocket-examples/blob/10.0.x/native-jetty-websocket-example/src/main/java/org/eclipse/jetty/demo/EventEndpoint.java) which may just be the most authoritative document they provide on good implementation practices.

This was something I added along the way of having many troubles with closing websockets in pcp-broker tests (and maybe during pcp-client tests, I forget now since I had the 2-3 month gap in working on this), before I identified how problematic the test client was itself, so it's possible it's not strictly necessary, however it seems like a good practice even if we do it with a smaller timeout. It does seem to be included in that above example for a reason.

We should update the clj-parent reference in project.clj to the latest on the main branch too.


Add minimal support for WebP/AVIF in @docusaurus/lqip-loader

sharp does support both.
Generated lqips for WebP/AVIF have the same formats as inputs, but different formats may be better. (needs improvement if so)

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[x] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[ ] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation

sharp used in @docusaurus/lqip-loader does support WebP/AVIF, but @docusaurus/lqip-loader claims that it does not support them. This prevents plugin-ideal-image from supporting WebP/AVIF.
This PR is to add minimal support (may be improved later) for them.
Test Plan

Check magic numbers (included in unit tests)
(How should we preview using browsers?)

Test links

Deploy preview: https://deploy-preview-_____--docusaurus-2.netlify.app/
Related issues/PRs

(Should I create one?)
Note
PNG & WebP & AVIF are rasterized using Inkscape (96dpi; 200x200).
All of them are optimized by Squoosh.

PNG: OxiPNG
WebP: lossless
AVIF: YUV444 & quality 30

AVIF's lqip may be so large that we have to use WebP instead.

I CAN'T BELIEVE

@slorber What kind of tests should I add? I have no idea.

We want to add some webp/avif images to some hidden docs in our own website, to make sure that the feature is working and to be able to review it in a deploy preview link
The Docusaurus website includes a large set of hidden test pages that completes the unit tests: https://docusaurus.io/tests

@slorber No materials are present now and This modification itself doesn't affect on Docusaurus without additional Webpack settings. plugin-ideal-image modification will be at another PR.
$ fd  "\.(webp|avif)$"
packages\lqip-loader\src\__tests__\__fixtures__\docusaurus.avif
packages\lqip-loader\src\__tests__\__fixtures__\docusaurus.webp

@slorber No materials are present now and this modification itself doesn't affect on Docusaurus without additional Webpack settings. The plugin-ideal-image modification will be at another PR. (not included in this PR)
$ fd  "\.(webp|avif)$"
packages\lqip-loader\src\__tests__\__fixtures__\docusaurus.avif
packages\lqip-loader\src\__tests__\__fixtures__\docusaurus.webp

I don't understand what you mean.
I'm asking you to add an image of each type to our website.  If they do not exist, then create them, or use the existing fixtures you already added.
I want to see the "minimal support" in action on our own site in the deploy preview here: https://deploy-preview-8686--docusaurus-2.netlify.app/tests/

Should I include changes on plugin-ideal-images if you want to preview images in tests?
Without that changes, I think we have to add complex Webpack settings to docusaurus.config to use lqip-loader directly for WebP/AVIF in Docusaurus.

Should I include changes on plugin-ideal-images if you want to preview images in tests? Without that changes, I think we have to add complex Webpack settings to docusaurus.config to use lqip-loader directly for WebP/AVIF in Docusaurus and a custom type definition for those image types.

I don't really understand. Is this PR adding support for webp/avif or not? What does "minimal support" even means? Does it mean it only add extension support but in practice it doesn't really work? 🤔
I don't want to merge a pr for a half-backed feature. We should either:

Have no support for webp/avif
Have support for webp/avif, and prove it by making it work on our own website + deploy previews

So far I only see a PR that has code changes that look fine, but no proof that the whole system works and enables users to use these image extensions in practice.
I need to see the entire thing in action. I need to see avif and webp images being used here: https://deploy-preview-8686--docusaurus-2.netlify.app/tests/

WebP/AVIF support consists of three phases:

The current lqip-loader doesn't handle WebP/AVIF at all. The current patch of this PR allows it to possible to handle them without optimization (e.g. choose WebP/lossless lqip for AVIF/WebP source, or enable YUV444 for AVIF or sharp YUV for WebP)
Allow plugin-ideal-image to integrate lqip-loader with responsive-loader (has already supported WebP/AVIF) by adding additional Webpack settings.
(Additional) Improvement of lqip-loader to choose more optimal image types and settings for lqips.

I have planned to submit PRs per phase but it doesn't seem to be what you want.

If that means modifying plugin-ideal-images then yes, it should be done on this PR

You mean I should include (at least) 2. in this PR. I'll convert this PR to draft once.

What I'd like is to have this PR bring a benefit to the end user.
If you add support to a transitive dependency, but not the direct dependency, then there's no direct benefit for the user and we are not even 100% sure that the transitive dependency change will be good enough.
I'd prefer if you merged step 1 + step 2 and ensure that we deliver a new immediate feature to the users in a single PR, a feature that is battle-tested on our own site. It ensures that changes in both packages are working and play well together.

@slorber

I'd prefer if you merged step 1 + step 2 and ensure that we deliver a new immediate feature to the users in a single PR, a feature that is battle-tested on our own site. It ensures that changes in both packages are working and play well together.

I'll implement 1 & 2 in this PR.

Without applying this diff, I got this error and don't know how to fix.
git diff packages/docusaurus-plugin-ideal-image/src/plugin-ideal-image.d.ts
diff --git a/packages/docusaurus-plugin-ideal-image/src/plugin-ideal-image.d.ts b/packages/docusaurus-plugin-ideal-image/src/plugin-ideal-image.d.ts
index dbf6ea2e83..e460efa62e 100644
--- a/packages/docusaurus-plugin-ideal-image/src/plugin-ideal-image.d.ts
+++ b/packages/docusaurus-plugin-ideal-image/src/plugin-ideal-image.d.ts
@@ -5,7 +5,7 @@
  * LICENSE file in the root directory of this source tree.
  */

-import type {ImageWithLqip} from '@docusaurus/lqip-loader';
+// import type {ImageWithLqip} from '@docusaurus/lqip-loader';

 declare module '@docusaurus/plugin-ideal-image' {
   export type PluginOptions = {
@@ -75,7 +75,8 @@ declare module '@theme/IdealImage' {
     images: SrcType[];
   };

-  export type IdealImageEnabledSrc = ImageWithLqip<SrcImage>;
+  // export type IdealImageEnabledSrc = ImageWithLqip<SrcImage>;
+  export type IdealImageEnabledSrc = {preSrc: string; src: SrcImage};
   export type IdealImageSrc = IdealImageEnabledSrc | {default: string} | string;

   export interface Props extends ComponentProps<'img'> {

Additional constrains:

Lossless WebPs are converted to lossy ones and get their colors broken (YUV420).

Just I have no time until the next week. Sorry.

libvips, which sharp depends on, doesn't provide a metadata to tell WebP lossless from WebP lossy.
This disguises me from working on this.

TypeError: _chalk.default.bold is not a function

I may have to rebase.

yarn run start succeeds but yarn run build fails.
I can't find out which src is not set.


Make buttons more obvious

Issue: #420

Requirements

Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.

[x]  issue was opened to discuss proposed changes before starting implementation.
[x]  during development, node version specified in package.json was used (ie using nvm).
[x]  package versions and package-lock.json were not changed (npm install --no-save).
[x]  app version number was not changed.
[x]  all new code has tests to ensure against regressions.
[x] npm run lint reports no offenses.
[x] npm run test is error-free.
[x]  README and CHANGELOG were updated accordingly.

Description of the Change
I added a inset shadow and a drop shadow on hover to the "+" and "-" buttons on the settings page. I also changed the checkboxes to this style as well. This should make it more obvious to the user that they are buttons.

Verification Process
I tried clicking on the buttons to make sure the click listeners still work. I tried checking the checkboxes to make sure they still save the checked state.

Other information
I noticed some other checkboxes in app/contributor-settings.html, but I didn't change them because I didn't know how to access them. I didn't change the "skip this break" button on the break timer because it didn't look too well.

Hi and thanks!
I like the checkboxes but not the +- buttons. Not sure what to do with those ;/ Do you have a different idea about +- maybe?
Let's see what other people thing as well.
(Anyway good news: I am working with designer to rework whole app from ground up! )

Closing this as redesign is underway in #537


Could not convert string to float at lines 1319, 1113, 1082

if i try to run python3 pypshisher.py it says:
[+] Please wait!
[!] ValueError: could not convert string to float at lines 1319, 1113, 1082
: (

@Hue-Jhan You should delete this version and clone from here

@Hue-Jhan You should delete this version and clone from here

ok imma try

@Hue-Jhan You should delete this version and clone from here

ok i tried and it works perfectly, thank you blud 🙏😎

does i can make custom link from the version given above

@sajaltiwari999 Nope. Now you have to create custom link manually by online url shorteners


Parts list

Updated parts list for new wire sizes, laser cut top and bottom plates, and 3d-printed PVC mounts. Also updated build documentation to reflect new wire sizes.

Note the change to 24 AWG wire is based on this discussion: https://github.com/nasa-jpl/open-source-rover/issues/190


similar to #485, add convenience impls of Page and Slice

This is, again, to ease the job of implementors.
I hope I got the semantics right here; please check!

I also realized that nextPageRequest can have some different behavior if there is known to not be a next page.

Yes, I knew about this wrinkle which is one reason I left this in Draft, because I knew I needed to think about that and I didn't have time yesterday.
But actually it's well defined by the Javadoc:

Returns a request for the next page, or null if it is known that there is no next page.

So I implemented that.
Fixed!

Also, yes, sure, some fancier implementation could retrieve N+1 rows from the database to be absolutely sure that there really is a next page. But I guess if you want to be fancy you can provide your own implementation of the interface.

But I guess if you want to be fancy you can provide your own implementation of the interface.

Scratch that, let's give fancy people what they want :)

I have added a new commit to this PR which makes the internal implementation of Cursor available as a record in the same package as the Page and Slice implementations. I don't believe there was any good reason to hide this from clients.

I've now also added implementations of KeysetAwarePage and KeysetAwareSlice, based on my best understanding of the semantics here.
@otaviojava @njr-11 Please take a look.

the implementation of Cursor only seems to be needed internally to Jakarta Data

OK if that's true I made a mistake somewhere. Let me recheck why I thought I needed one.

OK if that's true I made a mistake somewhere.

Yep, OK, I see, when I saw it being instantiated directly all through the TCK tests, I guess I just assumed it was needed by implementors too.
But I just misunderstood.
I have put it back where it belongs, and changed its visibility back to package.

Yep, OK, I see, when I saw it being instantiated directly all through the TCK tests, I guess I just assumed it was needed by implementors too.

The TCK tests don't directly create Cursor themselves anywhere, but the Unit Tests do a lot of that, so that is probably where you saw it.

Yep, OK, I see, when I saw it being instantiated directly all through the TCK tests, I guess I just assumed it was needed by implementors too.

The TCK tests don't directly create Cursor themselves anywhere, but the Unit Tests do a lot of that, so that is probably where you saw it.

Yeahright. That.

I think we should remove the second commit from this pull.

Done.

It's a good question. At least in our implementation I believe it makes no difference because you have already done the work of retrieving that information from the server.
But if you think that other implementations might want to do it lazily, I can replace the List with a function ref.

FTR, when I first implemented this I threw away all the keys except for first and last. But then when I saw that the API seems to require that I can send back the key of any row, and @beikov told me that's useful, I changed it to retain all the keys. I already have them so...

they can easily supply their own implementation

Yup. And furthermore it's something we can very easily add later without breaking the existing SPI.

Force pushed again to fix the checkstyle violations.

the implementation of Cursor only seems to be needed internally to Jakarta Data. I would not want to see client code constructing cursors by accessing API in our impl package

Ugh, OK, after all that, I found where it's needed. The issue is that KeysetAwareSliceRecord needs to be able to return a Cursor for each row of the result list. That's the contract of KeysetAwareSliceRecord .getKeysetCursor(). The implementation needs to instantiate those objects. It has nowhere else to get them from, AFAICT.
So if you don't want to make KeysetCursor public, I would propose adding a static method somewhere to instantiate it.

So if you don't want to make KeysetCursor public, I would propose adding a static method somewhere to instantiate it.

See @2fa8ef2

The implementation needs to instantiate those objects. It has nowhere else to get them from, AFAICT.

An alternative solution would be to remove KeysetAwareSlice.getKeysetCursor(int) for now.

An alternative solution would be to remove KeysetAwareSlice.getKeysetCursor(int) for now.

That method is the most convenient way for a user to obtain a cursor from any starting point when they already have some results. I would say that wanting to be able to share a Cursor implementation among providers doesn't justify taking that away from users.
I like your other approach of adding Cursor.forKeyset,

So if you don't want to make KeysetCursor public, I would propose adding a static method somewhere to instantiate it.

See @2fa8ef2

I would say that wanting to be able to share a Cursor implementation among providers doesn't justify taking that away from users.

Oh, that wasn't really the idea: the idea was that as per our other discussion it would have relieved us from having to materialize Cursor instances for anything other than the first/last row, and by side effect providers would never need to instiate a Cursor.
But I wasn't arguing for it, just mapping out the solution space.

I like your other approach of adding Cursor.forKeyset

Good, that solves the problem.

Folks please review https://github.com/jakartaee/data/pull/491/commits/a6b6c1c01450f512b99741223c870142d83deb7f which I just pushed, a better implementation of "more results" for both PageRecord and SliceRecord.

Folks please review a6b6c1c which I just pushed, a better implementation of "more results" for both PageRecord and SliceRecord.

Oh well, Otavio just merged it, as I was typing this message.

Folks please review a6b6c1c which I just pushed, a better implementation of "more results" for both PageRecord and SliceRecord.

Oh well, Otavio just merged it, as I was typing this message.

I suppose that means he was very strongly in favor of it.
The updates look good to me.

Yeah it would be great except for the fact that it had a but in it (fixed in the new PR).


Samsung SmartThings - dishwasherJobState is always Unknown.

Hi Team.
Can't get any data from dishwasherJobState sensor.
machineState and completionTime works perfectly.
Here is the log:
2019-12-08 01:53:35 DEBUG (MainThread) [homeassistant.components.smartthings] Push update received: {'location_id': 'xxxx', 'device_id': 'xxxx', 'component_id': 'main', 'capability': 'execute', 'attribute': 'data', 'value': {'payload': {'x.com.samsung.da.state': 'Run', 'x.com.samsung.da.remainingTime': '01:25:00', 'if': ['oic.if.baseline', 'oic.if.a'], 'x.com.samsung.da.progressPercentage': '46', 'x.com.samsung.da.supportedProgress': ['None', 'Predrain', 'Prewash', 'Wash', 'Rinse', 'Drying', 'Finish'], 'x.com.samsung.da.progress': 'Wash', 'rt': ['x.com.samsung.da.operation'], 'x.com.samsung.da.delayStartTime': '00:00:00'}}, 'data': {}}

BTW, is there any option to get progressPercentage sensor?
Best regards.

This is an issue with the Samsung device and how it's mapped into the SmartThings platform.  It's not an issue with the Home Assistant integration.  The log posted is for the execute capability and not the dishwasherOperatingState capability of which dishwasherJobState belongs to.  Please open an issue with SmartThings for this problem.