How to set fullscreen/maximize with newer API (WebView.SetFullScreen() have been removed)

What OS are you using (uname -a, or Windows version)?
Linux polv-mint 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
What programming language are you using (C/C++/Go/Rust)?
go version go1.14.2 linux/amd64
What did you expect to see and what you saw instead?

Cannot set fullscreen.

WebView.SetFullScreen() have been removed.

I tried to use webview.h, but I don't much about how C or how various compilers work.
When I tried to run that Pull Request (https://github.com/webview/webview/pull/449). It cannot #include <atomic> (VSCode warns as well.)
package main

// #cgo pkg-config: gtk+-3.0 webkit2gtk-4.0
// #include "webview.h"
import "C"
import "github.com/webview/webview"

func main() {
	debug := true
	w := webview.New(debug)
	defer w.Destroy()
	w.SetTitle("Minimal webview example")
	w.SetSize(800, 600, webview.HintMin)
	C.window_set_fullscreen(w.Window(), 1)
	w.Navigate("https://en.m.wikipedia.org/wiki/Main_Page")
	w.Run()
}

Now, I also tried this, and it doesn't work.
package main

// #cgo pkg-config: gtk+-3.0 webkit2gtk-4.0
// #include <gtk/gtk.h>
// #include <webkit2/webkit2.h>
import "C"
import "github.com/webview/webview"

func main() {
	debug := true
	w := webview.New(debug)
	defer w.Destroy()
	w.SetTitle("Minimal webview example")
	w.SetSize(800, 600, webview.HintMin)
	C.gtk_window_fullscreen(C.GTK_WINDOW(w.Window()))
	w.Navigate("https://en.m.wikipedia.org/wiki/Main_Page")
	w.Run()
}

It is possible on old API; therefore, I downgrade locally with go mod, then
go get<EMAIL_ADDRESS>
Often, this is not the best solution, as I cannot use the newest version.

maximize of macOS

This is the most problematic, even if I can fullscreen, which will hide Dock and taskbar on macOS.
I can fix it with cgo, though.
import (
	// #if defined(__APPLE__)
	// #cgo LDFLAGS: -framework CoreGraphics
	// #include <CoreGraphics/CGDisplayConfiguration.h>
	// int display_width() {
	// 		return CGDisplayPixelsWide(CGMainDisplayID());
	// }
	// int display_height() {
	// 		return CGDisplayPixelsHigh(CGMainDisplayID());
	// }
	// #endif
	"C"

	"github.com/webview/webview"
)

func main() {
	width := 1024
	height := 768

	if runtime.GOOS == "darwin" {
		width = int(C.display_width())
		height = int(C.display_height())
	}

	w := webview.New(webview.Settings{
		Title: "Rep2recall",
		Debug: false,
		Width: width,
		Height: height,
		Resizable: true,
	})

	if runtime.GOOS != "darwin" {
		w.SetFullscreen(true)
	}

	w.Run()
}

Anyone figure this out yet? Been trying to figure it out for the better part of this week. I am on Linux Mint and want to be able to set fullscreen mode in a webview app.

@jordan-lumley My solution in CGO. If I remember correctly, I had to make it slightly smaller in Xfce4; but not in GNOME3. Of course, not sure about Linux Mint's Cinnamon.
package main

/*
#cgo darwin LDFLAGS: -framework CoreGraphics
#cgo linux pkg-config: x11
#if defined(__APPLE__)
#include <CoreGraphics/CGDisplayConfiguration.h>
int display_width() {
	return CGDisplayPixelsWide(CGMainDisplayID());
}
int display_height() {
	return CGDisplayPixelsHigh(CGMainDisplayID());
}
#elif defined(_WIN32)
#include <wtypes.h>
int display_width() {
	RECT desktop;
	const HWND hDesktop = GetDesktopWindow();
	GetWindowRect(hDesktop, &desktop);
	return desktop.right;
}
int display_height() {
	RECT desktop;
	const HWND hDesktop = GetDesktopWindow();
	GetWindowRect(hDesktop, &desktop);
	return desktop.bottom;
}
#else
#include <X11/Xlib.h>
int display_width() {
	Display* d = XOpenDisplay(NULL);
	Screen*  s = DefaultScreenOfDisplay(d);
	return s->width;
}
int display_height() {
	Display* d = XOpenDisplay(NULL);
	Screen*  s = DefaultScreenOfDisplay(d);
	return s->height;
}
#endif
*/
import "C"

func main() {
	w := webview.New(debug)
	defer OnExit()
	defer w.Destroy()

	w.SetSize(int(C.display_width()), int(C.display_height()), webview.HintNone)
}

@jordan-lumley My solution in CGO. If I remember correctly, I had to make it slightly smaller in Xfce4; but not in GNOME3 (Ubuntu default desktop). Of course, not sure about Linux Mint's Cinnamon.
package main

/*
#cgo darwin LDFLAGS: -framework CoreGraphics
#cgo linux pkg-config: x11
#if defined(__APPLE__)
#include <CoreGraphics/CGDisplayConfiguration.h>
int display_width() {
	return CGDisplayPixelsWide(CGMainDisplayID());
}
int display_height() {
	return CGDisplayPixelsHigh(CGMainDisplayID());
}
#elif defined(_WIN32)
#include <wtypes.h>
int display_width() {
	RECT desktop;
	const HWND hDesktop = GetDesktopWindow();
	GetWindowRect(hDesktop, &desktop);
	return desktop.right;
}
int display_height() {
	RECT desktop;
	const HWND hDesktop = GetDesktopWindow();
	GetWindowRect(hDesktop, &desktop);
	return desktop.bottom;
}
#else
#include <X11/Xlib.h>
int display_width() {
	Display* d = XOpenDisplay(NULL);
	Screen*  s = DefaultScreenOfDisplay(d);
	return s->width;
}
int display_height() {
	Display* d = XOpenDisplay(NULL);
	Screen*  s = DefaultScreenOfDisplay(d);
	return s->height;
}
#endif
*/
import "C"
import "github.com/webview/webview"

func main() {
	w := webview.New(true)
	defer w.Destroy()

	w.SetSize(int(C.display_width()), int(C.display_height()), webview.HintNone)
	w.Run()
}

Thank you for this!

A little shorter code for windows:
DWORD dwWidth = GetSystemMetrics(SM_CXSCREEN);
DWORD dwHeight = GetSystemMetrics(SM_CYSCREEN);

Aslo if someone actually wants a true maximize windows (on Windows, should be similar for GTK or other, I did not try yet), using current webview:
`/*
#cgo darwin LDFLAGS: -framework CoreGraphics
#cgo linux pkg-config: x11
#if defined(APPLE)
#include <CoreGraphics/CGDisplayConfiguration.h>
int display_width() {
return CGDisplayPixelsWide(CGMainDisplayID());
}
int display_height() {
return CGDisplayPixelsHigh(CGMainDisplayID());
}
#elif defined(_WIN32)
#include <wtypes.h>
int display_width() {
DWORD dwWidth = GetSystemMetrics(SM_CXSCREEN);
return dwWidth;
}
int display_height() {
DWORD dwHeight = GetSystemMetrics(SM_CYSCREEN);
return dwHeight;
}
int showWindow(void hWndPtr, int nCmdShow) {
HWND hWnd = (HWND)(hWndPtr);
return ShowWindow(hWnd, nCmdShow);
}
#else
#include <X11/Xlib.h>
int display_width() {
Display d = XOpenDisplay(NULL);
Screen*  s = DefaultScreenOfDisplay(d);
return s->width;
}
int display_height() {
Display* d = XOpenDisplay(NULL);
Screen*  s = DefaultScreenOfDisplay(d);
return s->height;
}
#endif
*/`
then in go:
	hwndWindow := w.Window() 	C.showWindow(unsafe.Pointer(hwndWindow), 3)
One could define the different type supported by ShowWindow, they can be found here:
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow?redirectedfrom=MSDN

@pierrejoye,

Also if someone actually wants a true maximized windows on Windows (should be similar for GTK or other, I did not try yet), as the dimensions work around does not maximize a window, it can be done using current webview:
`
/*
#cgo darwin LDFLAGS: -framework CoreGraphics
#cgo linux pkg-config: x11
#if defined(APPLE)
#include <CoreGraphics/CGDisplayConfiguration.h>
int display_width() {
return CGDisplayPixelsWide(CGMainDisplayID());
}
int display_height() {
return CGDisplayPixelsHigh(CGMainDisplayID());
}
#elif defined(_WIN32)
#include <wtypes.h>
int display_width() {
DWORD dwWidth = GetSystemMetrics(SM_CXSCREEN);
return dwWidth;
}
int display_height() {
DWORD dwHeight = GetSystemMetrics(SM_CYSCREEN);
return dwHeight;
}
int showWindow(void hWndPtr, int nCmdShow) { HWND hWnd = (HWND)(hWndPtr); return ShowWindow(hWnd, nCmdShow); } #else #include <X11/Xlib.h> int display_width() { Display d = XOpenDisplay(NULL);
Screen* s = DefaultScreenOfDisplay(d);
return s->width;
}
int display_height() {
Display* d = XOpenDisplay(NULL);
Screen* s = DefaultScreenOfDisplay(d);
return s->height;
}
#endif
*/
`
then in go:
`
hwndWindow := w.Window()
C.showWindow(unsafe.Pointer(hwndWindow), 3)
`
One could define the different type supported by ShowWindow, they can be found here:
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow?redirectedfrom=MSDN

I tried this, but I'm getting this error
error: parameter 1 ('hWndPtr') has incomplete type

I fixed by adding one * at the param
/*
#cgo darwin LDFLAGS: -framework CoreGraphics
#cgo linux pkg-config: x11
#if defined(_WIN32)
int show_window(void* hWndPtr, int nCmdShow) {
	HWND hWnd = (HWND)(hWndPtr);
	return ShowWindow(hWnd, nCmdShow);
}
#endif
*/
import "C"

func main()  {
	C.show_window(unsafe.Pointer(w.Window()), 3)
}

I tested in Windows 10 and it's working.

I would like to add that this is a common need for many contexts such as:

Public Kiosks
Terminals (Point-Of-Sale, etc.)
Video Games

This also ties into #201 and this issue listed above. Additionally in other languages (For example Deno) it can be impossible to directly manipulate code.
In my opinion, Full Screen and Border-less are expected use-cases and for good DX should have a easy (and platform agnostic) way to trigger without having to go through external docs.

Dang, I wish we had full-screen so I could use it in kiosks with Deno.


Add serialization

This PR resolves https://github.com/alan-turing-institute/MLJ.jl/issues/138. It:

adds fallback methods save and restore dispatched on  models (the method stubs are already provided by MLJModelInterface) which save using JSLO.

defines MLJBase.save for machines and extends the machine constructor for de-serialization, as demonstrated in the docstring below:

refactors some of the machine constructor code to simplify, improve readability, and resolve some type ambiguities in corner cases

MLJ.save(filename, mach::Machine; kwargs...)
MLJ.save(io, mach::Machine; kwargs...)

MLJBase.save(filename, mach::Machine; kwargs...)
MLJBase.save(io, mach::Machine; kwargs...)

Serialize the machine mach to a file with path filename, or to an
input/output stream io (at least IOBuffer instances are
supported).
The format is JLSO (a wrapper for julia native or BSON serialization)
unless a custom format has been implemented for the model type of
mach.model. The keyword arguments kwargs are passed to
the format-specific serializer, which in the JSLO case include these:

keyword
values
default

format
:julia_serialize, :BSON
:julia_serialize

compression
:gzip, :none
:none

See (see
https://github.com/invenia/JLSO.jl
for details.
Machines are de-serialized using the machine constructor as shown in
the example below. Data may be optionally passed to the constructor
for retraining on new data using the saved model.
Example
using MLJ
tree = @load DecisionTreeClassifier
X, y = @load_iris
mach = fit!(machine(tree, X, y))

MLJ.save("tree.jlso", compression=:none)
mach_predict_only = machine("tree.jlso")
predict(mach_predict_only, X)

mach2 = machine("tree.jlso", selectrows(X, 1:100), y[1:100])
predict(mach2, X) # same as above

fit!(mach2) # saved learned parameters are over-written
predict(mach2, X) # not same as above

Feedback welcome.
@tlienart Only if you have time
@OkonSamuel Would be great to get your feedback

cc @oxinabox

Codecov Report

Merging #218 into dev will decrease coverage by 1.22%.
The diff coverage is 92.85%.

@@            Coverage Diff             @@
##              dev     #218      +/-   ##
==========================================
- Coverage   83.16%   81.93%   -1.23%
==========================================
  Files          30       30
  Lines        2043     1960      -83
==========================================
- Hits         1699     1606      -93
- Misses        344      354      +10

Impacted Files
Coverage Δ

src/MLJBase.jl
100% <ø> (ø)
:arrow_up:

src/interface/model_api.jl
100% <100%> (ø)
:arrow_up:

src/machines.jl
98.5% <100%> (+0.26%)
:arrow_up:

src/composition/composites.jl
93.4% <100%> (+0.35%)
:arrow_up:

src/composition/networks.jl
65.78% <60%> (-3.35%)
:arrow_down:

src/parameter_inspection.jl
50% <0%> (-50%)
:arrow_down:

src/data/datasets.jl
87.5% <0%> (-6.25%)
:arrow_down:

src/measures/loss_functions_interface.jl
94.73% <0%> (-5.27%)
:arrow_down:

src/hyperparam/one_dimensional_ranges.jl
81.39% <0%> (-3.39%)
:arrow_down:

src/measures/finite.jl
95.62% <0%> (-3.17%)
:arrow_down:

... and 16 more

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 bacb45b...449fb2f. Read the comment docs.

@ablaom. This is great.
But you haven't yet exported the save function.

After reflection. Have reverted machine(m::Unsupervised) = AbstractMachine(m) as there is really no difference in behaviour of Machine and AbstractMachine in the case of no training argments ("static" transformers). Added more tests to check this in practice.


Bicycle Layer

SUMMARY

On my app, I need to add bicycle layer on map.
I want to know that if you have plan to add bicycle layer.
Or can you give me some hints so that I can add it and contribute.
DETAILS

// How to use of your requested feature

PLATFORMS

[x] Android
[x] iOS
[x] UWP

Do you know opencyclemap ?
If you know opencyclemap's tile specification then you can set map.TileLayers to it.
e.g. https://www.openrailwaymap.org/ 's tile implementation is below:
https://github.com/amay077/Xamarin.Forms.GoogleMaps/blob/f4cf99a4829937e9974db3174465d0004e18aa6b/XFGoogleMapSample/XFGoogleMapSample/TilesPage.xaml.cs#L26-L41

Hello,
I know that opencyclemap provides tile pngs and i just want to add bicycle layer over existing google map.
The traffic layer worked well and i want bicycle layer to be added like that.
What is your opinion?
Thanks.


"Descriptor for ID Tokens" example in Section 5.2 is lacking context & definition

In section 5.2 (screenshot below) titled "input descriptors" there is an alternate "example" tab in the section that is poorly explained and whose context is not clear.
Specific concerns include:

the title of the example is "Descriptor for ID Tokens" but there is no object with the word descriptor in the example.  I assume that the parent object array was accidentally omitted
It isn't clear why there would be a mention of ID tokens in section 5 in the first place, as section 5 refers to the presentation request, and ID tokens generally are only used in presentation responses
there are some plausible circumstances where an ID token might be part of an OpenID Connect authentication request, however if there is an expectation that a presentation definition should be embedded into that specific manifestation of an OpenID Connect request, it is not documented anywhere that I can find in the spec.

My recommendation would be to remove this example, and to add a section describing how a presentation definition might be embedded into an OpenID Connect request that is analogous to the "Embed Targets" part of section 6.

from the meeting 9/3/2020: This may be better in an appendix.
this also brings up, "how does one include a presentation definition into an OIDC SIOP request?"
@pamelatech will propose some text for how MS is using them.
@wyc will raise a new issue to track the organization of the document part of the issue.

The concerns in this issue are being tracked in #100 and #101


[ffi] Varargs should give an error on uint8, int8, uint16, int16 and float

Passing 8 bit or 16 bit ints in varargs is undefined behavior.
Clang will alert us:
Second argument to 'va_arg' is of promotable type 'uint16_t' (aka 'unsigned short'); this va_arg has undefined behavior because arguments will be promoted to 'int'clang(-Wvarargs)

But we allow this in dart:ffi, leading to undefined behavior.
We should consider adding an error message.
Discovered on:

https://github.com/dart-lang/native/issues/1191

hey
can work on it, please assign this task to me

hey can work on it, please assign this task to me

Hi @vaishnavi-2901! That's great!
Please start with https://github.com/dart-lang/sdk/blob/main/CONTRIBUTING.md
A PR for this issue will involve adding error messages both to the CFE (the compiler used when doing dart ...) and analyzer (used in the IDE for giving error messages).
Some pointers to point you in the right direction:

Analyzer

https://dart-review.googlesource.com/c/sdk/+/278343 analyzer implementation for varargs, not including any error messages.
https://dart-review.googlesource.com/c/sdk/+/336040 How error messages are defined.
You can see in the ffi_verifier.dart file in the first PR how to emit error messages from the analyzer.

CFE

https://dart-review.googlesource.com/c/sdk/+/276921/49/pkg/vm/lib/transformations/ffi/common.dart -> This is where the error checking for the FFI is done.

Tests

The tests should be in here. tests/ffi/static_checks/vmspecific_static_checks_varargs_test.dart Note that this test needs to be converted from //# 1: compile-time error to tests/ffi/static_checks/vmspecific_static_checks_test.dart style with // [cfe].

It's probably easiest to

First convert the test
Then make an analyzer PR
And then in a third PR try to tackle the CFE.

hey sir can i work on it ..?

@vaishnavi-2901 are you still working on this?

Dear respected sir let she work and let me also work on it. as I am beginning the open source contribution first you will check the request of both and then you will see what to do
I have one Question sir just tell me in which file I have to contribute .

Hi @dcharkes , as you said clang just warn and promote Int8 Int16 (also Uint's) to 32bit data,
But in dart side you are suggesting to throw error. Am not sure whether someone will report this or ask this, "Clang is allowing (just warning) but why dart is throwing error for varargs"
(As i said already, am not familiar with these ffi eco system, just wondering some program work (warn) when u compile natively (clang or gcc), but same program ends in error when runs by dart)
Sorry if this is too dumb.

That has to do with the philosophy of C compilers: They warn and don't error on undefined behavior. (For sanity sake, we usually pass -Werror to the C compiler to turn all warnings into errors. And also -Wall to get all warnings. We don't want undefined behavior.) As for the philosophy why C compilers do this, you find plenty of discussions on StackOverflow and friends.
In Dart we have a slightly different approach. We want to prevent programs from compiling that will crash. Now on the dart:ffi front this becomes slightly ambiguous because we have a Dart philosophy but then call into C code which has a different philosophy. We tend to take the most conservative of the two philosophies on the boundary. Sometimes we end up being too conservative and users file bugs to loosen the restrictions. But we can always loosen restrictions later as a non-breaking change. Introducing restrictions causes a breaking change.
For this specific bug. We saw undefined behavior leading to mangled enum and integer values and crashes. See the bug that is referenced in the top.

I think this is a bit off topic, but do you have any idea why variadic dint allow < 4 byte data such as short or char ?
Because i wondered if its about the size then we can create custom data with any size we want using struct,
For ex:
This code throw warning (eventually exit when executing this code),
short a = va_arg(arg, short)

But if we have,
struct Short {
      short a;
};

...

struct a = va_arg(arg, struct Short)

....

The above don't have any warning and successfully executing (actually interpreting short)
Am not sure is this valid, but am sure it is not affect anything here dart (thats why i mentioned it is off topic)
Reason for this question is i just imagined C will reject any data type which is less than 4 byte (including struct), so we here in dart should also do that check. But C is not doing that, so we can also skip that.

Reason for this question is i just imagined C will reject any data type which is less than 4 byte

C just happily accepts things, even if it's undefined behavior. And the "best" part: the undefined behavior might "work" with some C compilers on some hardware, but not with other compilers. So you think your code is correct by testing it on one system and it not crashing, but it ends up crashing on another system.
P.S. If you want to explore what various compilers do: https://godbolt.org/ You can play around with adding fields to the struct or changing the type and seeing how that changes the generated machine code.


[Question] botbuilder middleware called on bot.beginDialog

System Information (Required)

SDK Language: NODE
SDK Version: 3.8.4
Development Environment: LOCALHOST

Issue Description
I'm having a strange behaviour that I'm not sure if it is correct. I'm doing some tests with the ConsoleConnector and using a custom botbuilder middleware.
I have a dialog that is started by the user and in that dialog, the bot writes a reply to the conversation and then starts a new dialog with different users:
  lib.dialog('/', async (session, args) => {
    const users = await getUsers

    users.forEach(async (u) => {
      try {
        const newAddress = {}
        bot.beginDialog(newAddress, 'start:/welcome')
      } catch (error) {
        console.log(error)
      }
    })

    return session.endDialog("start")
  })

When beginDialog is called I'm getting the event in the botbuilder middleware that I have. I thought that botbuilder middleware is only called when the user sends a message to the bot and not when the bot is sending a message to user. Should I expect messages on my middleware when my bot is starting a new conversation with users ? Should that message be intercepted only by the send middlewares ?

@bilby91 Middleware can handle both types of messages, sent by bot, and sent by user.
The botbuilder middleware intercepts incoming messages, while the send middleware intercepts outgoing messages. The terminology is a bit counter-intuitive since incoming vs sending is from the perspective of the user instead of the bot, so technically "incoming" is sent from bot-to-user, while "send" is sending from user-to-bot.  Maybe we can update the docs to clarify.
More info:

Docs: Node SDK - Intercepting messages
Code example: BotBuilder-Samples/Node/capability-middlewareLogging

reopen if you have more questions


NOISSUE - Add compile test to CI

What does this do?
Recently, we had CI problems because our main methods were broken, and tests are not covering the main methods. The code is compiled during the Docker Hub images update, so CI detected broken code and failed, but this only happens when merging code to the master branch. This pull request adds compilation checks to the CI script.
List any changes that modify/break current functionality
There are no such changes.
Have you included tests for your changes?
No, this is just a CI script update.
Did you document any new/modified functionality?
There is no new or modified functionality.

Codecov Report

Merging #743 into master will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #743      +/-   ##
==========================================
- Coverage    85.3%   85.26%   -0.05%
==========================================
  Files          66       66
  Lines        4220     4220
==========================================
- Hits         3600     3598       -2
- Misses        416      418       +2
  Partials      204      204

Impacted Files
Coverage Δ

things/service.go
90.79% <0%> (-1.23%)
: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 e46164f...23dea7e. Read the comment docs.


needs code ported to Python3

Python 2 is nearing end-of-life; many Linux OS's are abandoning P2-based code, including the several dependencies that key-mon requires (python-xlib, pygtk, python-xml, etc.)
key-mon was/is the best screen key/mouse visualizer out there. For the utility to survive, and to help any/everyone who loves this program and uses it, it BADLY needs to be ported to Python 3.
I do not program in Python, and have a full plate, or I would take the port on as a project.

I'm looking, there are some support libraries like I need to change as
well, could be a while.
On Wed, 29 Apr 2020 at 22:08, Jeff Stern<EMAIL_ADDRESS>wrote:

Python 2 is nearing end-of-life; many Linux OS's are abandoning P2-based
code.
key-mon was/is the best screen key/mouse visualizer out there. For the
utility to survive, and to help any/everyone who loves this program and
uses it, it BADLY needs to be ported to Python 3.
I do not program in Python, or I would take the port on as a project.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/scottkirkwood/key-mon/issues/85, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABASPKXWWQYWXLKXSYKJDLRPDMSVANCNFSM4MVC5HYA
.

I tried to fix this in #87 , which may need some testing and update to documentation & packaging

I just tested on 11a4d19 commit and everything seems working except one thing:

There is clicking issue if the option "highly visible click" be active.
If some keys like space or tab be pressed, some gap is added between keys and it remains there.

I have also noticed these warnings if I run key-mon in terminal:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/keymon/settings.py", line 142, in _combo_changed
    self._update_option(option, val, str_val)
  File "/usr/local/lib/python3.8/dist-packages/keymon/settings.py", line 150, in _update_option
    setattr(self.settings.options, option, str_val)
  File "/usr/local/lib/python3.8/dist-packages/keymon/options.py", line 271, in __setattr__
    self.__dict__['_options'][name].value = value
  File "/usr/local/lib/python3.8/dist-packages/keymon/options.py", line 185, in _set_value
    self._set_attr_value('_value', val)
  File "/usr/local/lib/python3.8/dist-packages/keymon/options.py", line 169, in _set_attr_value
    setattr(self, attr, float(val))
ValueError: could not convert string to float: ''

I couldn't figure out in what circumstances it happens!

I seems there is some dependency problems.
I was able to successfully run the latest commit  by installing PyGObject, pycairo and python3-xlib from pip (not the debian repo) in virtualenv and everything seems stable (not fully tested)

It's all working now with Python3 thanks for everyone's help.


'ha_strava' does not have a valid version key

When I upgraded to the core-2021.6.0b0 release today I received this error:
Logger: homeassistant.loader
Source: loader.py:767
First occurred: 3:24:12 PM (1 occurrences)
Last logged: 3:24:12 PM
The custom integration 'ha_strava' does not have a valid version key (None) in the manifest file and was blocked from loading. See https://developers.home-assistant.io/blog/2021/01/29/custom-integration-changes#versions for more details

If it doesn't get fixed, just add it to manifest.json in your custom component.
{
  "domain": "ha_strava",
  "name": "Strava Home Assistant",
  "config_flow": true,
  "documentation": "https://github.com/codingcyclist/ha_strava",
  "requirements": ["aiohttp==3.6.1", "voluptuous==0.11.7"],
  "dependencies": [],
  "codeowners": ["@codingcyclist"]
}

becomes.........
{
  "domain": "ha_strava",
  "name": "Strava Home Assistant",
  "config_flow": true,
  "documentation": "https://github.com/codingcyclist/ha_strava",
  "requirements": ["aiohttp==3.6.1", "voluptuous==0.11.7"],
  "dependencies": [],
  "codeowners": ["@codingcyclist"],
  "version": "0.1"
}

added the above version line but still no joy...anything else need to be done...has anyone confirmed this change did work for them


The specified module could not be found. Error code: Wsl/Service/CreateInstance/CreateVm/0x8007007e

Windows Version
Microsoft Windows [Version 10.0.22621.2134]
WSL Version
2
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Other Software
Docker
Repro Steps
Ran docker compose up command in WSL terminal
Actual Behavior
Unable to access WSL terminal and files after running docker compose up
Diagnostic Logs

/logs


interesting idea: copy/warp command

that creates the directory structure of a containers rootfs, but the files wie hard links that go along the different layers!

done


Add Apache 2 licence file

We were already adding Apache 2 headers to our source code (see hack/boilerplate.go.txt), but we should also include a copy of the licence itself in our repository.
Closes #16.
Signed-off-by: Andy Sadler<EMAIL_ADDRESS>

lgtm

I'm not a lawyer, but as I understand it, this needs approval from everyone who's contributed code to this repository.  I've tagged the relevant people as reviewers.


[golang client api]  Clarification on "Err" member of Response and Result structs [compile errors]

I'm struggling with some client api issues with respect to the "Err" variables that are part of the Response and Result structs (see below for more details).
Please see client api doc for these key query result structures:
https://godoc.org/github.com/influxdb/influxdb/client/v2#Response
Notice:
type Response struct {
    Results []Result
    Err     string `json:"error,omitempty"`  <~~~ SEE
}

type Result struct {
    Series []models.Row
    Err    string `json:"error,omitempty"`  <~~~ SEE
}

Both "Err" variables in these structs are presented as having a type of string.
Confirmed by clicking into and looking at code in github: https://github.com/influxdb/influxdb/blob/master/client/v2/client.go#L420
But my code does not compile when I treat these as strings:
[ksengal@csdev-ksengal influxdb]$ go test -v client.go client_test.go dsn.go dsn_test.go stats.go timeseries.go reportCommon.go
./client.go:121: invalid operation: res.Err != "" (mismatched types error and string)
./client.go:122: cannot use res.Err (type error) as type string in argument to errors.New
./client.go:134: invalid operation: result.Err != "" (mismatched types error and string)

So it would seem that these are actually of type error, not type string.
When did this API change?
My local influxdb client api code has these as type error:
[ksengal@csdev-ksengal v2]$ pwd
/home/ksengal/work/src/github.com/influxdb/influxdb/client/v2
[ksengal@csdev-ksengal v2]$ egrep -r 'type[ \t]*(Response|Result)' -A2 *
client.go:type Response struct {
client.go-	Results []Result
client.go-	Err     error

client.go:type Result struct {
client.go-	Series []models.Row
client.go-	Err    error

[ksengal@csdev-ksengal v2]$ git remote -v
origin	https://github.com/influxdb/influxdb (fetch)
origin	https://github.com/influxdb/influxdb (push)

Did these variable change to type string in latest client api code for a reason (see below)?
https://github.com/influxdb/influxdb/blob/master/client/v2/client.go

I'm not sure about the answer to the specific question, but we're trying to remove older issues from the issue tracker and keep it to just features and bugs. If you are still having trouble with this issue and haven't found an answer, feel free to ask the question on our mailing list. Thanks.


update panel for new folding text version

update panel according to these instructions from developer: http://support.hogbaysoftware.com/t/foldingtext-no-longer-works-with-macos-10-12-4/3043/12

@derekvan Thanks for investigating and providing a fix

no problem. thanks for making all these plugins in the first place!


spire.math.gcd(0,0) has different behavior for spire.math.gcd(SafeLong(0), SafeLong(0))

Indeed:
Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_25).
Type in expressions to have them evaluated.
Type :help for more information.

import spire.implicits._
import spire.math._

scala> gcd(SafeLong(0),SafeLong(0))
res0: spire.math.SafeLong = 1

scala> gcd(0,0)
res1: Long = 0

I can not reproduce with the current 0.9.2-SNAPSHOT:
Welcome to Scala version 2.11.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_51).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import spire.implicits._
import spire.implicits._

scala> import spire.math._
import spire.math._

scala>  gcd(SafeLong(0),SafeLong(0))
res0: spire.math.SafeLong = 0

scala> gcd(0,0)
res1: Long = 0

My bad, it is fixed in the SNAPSHOT.
Closing.


[WIP]Integrate letsencrypt

Separated the Server object to hold two server on two different ports (htttp, https).
Https server starts automatically when certificates exists.
Added a setup route for cloud and on-premise.
The setup walks the user through Oauth - once credentials exist the connector will try to generate https certificates if they do not exist yet.
The base route will be pushed if the user's Auth is successful.

Could we play around with sending people through the oauth flow through a popup instead of a separate tab? I meant to do this on the first iteration, but didn't quite have the bandwidth to experiment with it. It's a little bit confusing to have folks figure out that they need to close the oauth success screen to return back to the app.
For example, here is how we do it on Plotly. Note that when the oauth window closes, the original window redirects.

Yes I tried looking into pop-ups too, but I really don't know much where to look that would be supported by both electron and all browsers ... I was thinking it would be need for the oauth to be able to respond to the original click on the /setup page but I dont think that's possible because by then it went through 2-3 redirects. Any ideas?

@chriddyp had a first run at the comments https://github.com/plotly/plotly-database-connector/pull/132/commits/0af4e622945642e848f4de6956ccfadedcdfe1d7
Will hit the rest tomorrow.

Updates to the login UI.

Even better. Closing windows automatically now and many other changes.

@chriddyp  I think we're getting closer. Could you give it another look?
RE why I am asking users to input their usernames - I either look if there is at least one accessToken saved in settings and open the app (which enables anyone to connect as soon as the first user was connected) or ask their username to have some sort of a threshold. This was the reason I believe that the connector is not working in private mode currently. So at least this way I check that for the given username there are credentials. Obviously there are ways around it (ie input someone elses plotly username knowingly that they are already authenticated with the connector) but its a good start. If I could figure out how the Oauth modal could respond back to its parent window in both electron and browser - which I really have no clue how to do especially given that oauth flow goes through about 4-5 redirects - that would be perfect. I am obviously open to any suggestion to make it more deterministic.


SARAALERT-1032: API Support for Foreign Address

Description
Jira Ticket: SARAALERT-1032
This PR adds support for foreign addresses in the API. The Patient.address element is an array, and previously we would just take the first element in this array, and treat that as a USA address. Now, the, address-type extension can be used to specify if an element in the Patient.address array refers to a USA address or a foreign address.
Important Changes
fhir_helper.rb

Added to_address_by_type_extension for use in converting a Patient to FHIR. If a Patient has a foreign address, we now add an element to the Patient.address array which contains this address, and a http://saraalert.org/StructureDefinition/address-type extension is added on this element with valueString: 'Foreign'.
Added from_address_by_type_extension for use in converting FHIR to a Patient. The first address in the Patient.address array that either has no http://saraalert.org/StructureDefinition/address-type extension, or has that extension with valueString: 'USA' will be used to populate the USA address of the Patient. The first address in the Patient.address array that has a http://saraalert.org/StructureDefinition/address-type extension with valueString: 'Foreign' is used to populate the foreign address of the Patient.

patient.rb

Updated validation so that address_state is no longer required in the API, but instead is only required if foreign_address_country is not present. This ensures that the Patient either has address_state set, or foreign_address_country set (or both), but not neither.

docs/api/*

Documented support for foreign addresses.

Testing
To test this, you can use the API to create a new Patient. Test that:

When no addresses are given, a validation error is thrown.
When an address with no extensions is given, its values populate the Patient's USA address
When an address with an address-type extension with valueString: 'USA' is given, its values populate the Patient's USA address.
When an address with an address-type extension with valueString: 'Foreign' is given, its values populate the Patient's foreign address.
Addresses with an address-type extension with valueString set to some other value are ignored.
Only the first address of each type is used. If two addresses with no extensions are given, the first will populate the Patient's USA address, and the second will be ignored.

Note
This PR requires updates to the Implementation Guide, and those updates are here: https://github.com/SaraAlert/saraalert-fhir-ig/pull/7.

Please give this a rebase for 1.23.0


Remove unused variable

Issue #, if available: https://github.com/awslabs/aws-glue-schema-registry/issues/80
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

What's the motivation? Can customers be already accessing this property?

The issue is mentioned in the description. I have tested it with integration tests as well.


SQLite File Creation Issue

A barrier that I had across while creating a CellProfiler pipeline was being able to make a SQLite file from the extracted features when attempting to use the collate() function from pycytominer. The goal that I had when using this function was to create one SQLite file from multiple .csv files created from CellProfiler.
Through prototyping and testing, I found that I ended up at a roadblock.
This roadblock was that the directory structure was not the same as described in the Image-based Profiling Handbook appendix. There was meant to be an Experiment.csv file in every "well-site" folder. Once I figured out that through the CellProfiler documentation that the Experiment.csv was only saving once.
To find a solution to this issue, I created an issue in the pycytominer repository (see cytomining/pycytominer#229). Thanks to Beth Cimini, she was able to give advice on how reach the goal that I had.
She explained that the collate function works best when you have a large dataset that you can not run locally. In contrast, she recommended using the ExportToDatabase module within CellProfiler to export all of the extracted features in a SQLite file if your dataset is smaller and/or can be run on your local machine.
Since the NF1 pilot data is very small, I decided to pivot from the collate() function to using the ExportToDatabase module. The whole analysis pipeline in CellProfiler took approximately 15 minutes on my MacBook Air.

We are now not using the collate() function since we can use ExportToDatabase.


Something I don't understand about your code

I've been learning js and I'm a little confused with your resolve function, why did you deal with Promise instance separately with thenable objects? By doing so,you added a new state of "3" to the Promise,which is not quite good in my opinion.
I've checked the previous version of this,and found that you didn't deal with it as you did now.So there must be a reason.Would you be kind and tell me why?
Thanks in advance.
` function resolve(self, newValue) {
//some code
if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
var then = newValue.then;
if (newValue instanceof Promise) {
self._state = 3;
self._value = newValue;
finale(self);
return;
} else if (typeof then === 'function') {
doResolve(bind(then, newValue), self);
return;
}
}
//some code
}`

@dactac The reason for state 3 is because it's possible to have a memory leak in a really long Promise chain. Each promise keeps a reference to the previous Promise and it's never broken. State 3 allows the library to shortcut the long chain and resolve a Promise with the value of the next Promise. This only works if the Promise is from this library. Other Promise libraries (thenables) may not work the same way, so it's not possible to use the same logic. That is why it checks if it's an instance of Promise.
Here is the code that is used later during the callback stage
https://github.com/taylorhakes/promise-polyfill/blob/master/promise.js#L41

Can you be more specific? An example would be appreciated.
Cause from what I understand, given promise A,B,C and A is resolved by B,and B by C.
With previous code , C._deffereds gets to resolve B with it's value ,and thus keeps a reference to B,and the same with A and B.
But with current version, A._value points to B. and B._value points to C. Isn't that a chain?

deferreds are cleared, correct.
You are correct that current version, A._value points to B. and B._value points to C. The state 3 allows A._value point to C and remove the intermediate B that is not necessary to resolving A.


[Bug] [Java] JavaAgent CPU usage goes up when there is a thread leak.

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache SkyWalking Component
Java Agent (apache/skywalking-java)
What happened
We got a thread leak in micro-service and the thread count is up to 4000.
The CPU usage is very low for threads except one skywalkingAgent thread's usage is up 40%.
The JVMMetrics is collected every 1 sec, and everytime it checks all 4000 thread's status.
What you expected to happen
The JVMMetrics does not have to be collected so frequently. Maybe 2 or 3 collection in 1min is enough?
How to reproduce
Creating 4000 threads.
Anything else
No response
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

It's NOT memory leak. The thread leak is no created by the agent. It's triggered by the service which the agent is wathing.
The problem is when skywalking-java monitoring a service with many threads, one of the agent's threads' CPU usage is high.
As a contrast, Pinpoint's agent does not have the problem.
After tracing the agent's thread, we local time cost at ThreadProvider.getThreadMetrics().
This func takes 400ms to check all  4000  threads' status in our case, and this process goes every 1sec.

As a contrast, Pinpoint's agent does not have the problem.

There is no point to mention this. Please don't do this in further discussion.

After tracing the agent's thread, we local time cost at ThreadProvider.getThreadMetrics().
This func takes 400ms to check all 4000 threads' status in our case, and this process goes every 1sec.

Yes, this is how it works. What do you want to ask?

Yes, this is how it works. What do you want to ask?
Is this frequency necessary？I checked the oap,  the related metrics are aggregated by longAvg() in 1min.
I wonder if 2 or 3 collections in 1min is enough?

There is no point to mention this. Please don't do this in further discussion

Got

Yes, this is how it works. What do you want to ask?

Is this frequency necessary？I checked the oap, the related metrics are aggregated by longAvg() in 1min. I wonder if 2 or 3 collections in 1min is enough?

You could contribute a feature to customize this period if you like.

I will, thank you!


Extract Data from Pincache

Hi, I wonder if there is a way, when saving cache in disk, to retrieve the file of the cache and extract data. I'm using Pincache for store offline data, but I usually need to get the data that was not synchronised  to the server for some reason (probably bugs).
There is a way to get this file and, perhaps, read in another app?
Sorry to create this issue but i didn't know where to ask.

Hey @thiagoramos23, the documentation covers this pretty well. You can get the cache's diskCache and either get the object (which will read from disk and deserialize into an object), or you can get the file path of the object instead with a separate method on PINDiskCache. Hope this helps,
Garrett


Error - device unaviable

Not sure why this is happening I am happy to send more logs if needed
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 204, in connect
reply = await self._bus.call(
File "/usr/local/lib/python3.10/site-packages/dbus_fast/aio/message_bus.py", line 371, in call
await future
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/init.py", line 344, in establish_connection
await client.connect(
File "/usr/src/homeassistant/homeassistant/components/bluetooth/wrappers.py", line 272, in connect
connected = await super().connect(**kwargs)
File "/usr/local/lib/python3.10/site-packages/bleak/init.py", line 531, in connect
return await self._backend.connect(**kwargs)
File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 141, in connect
async with async_timeout(timeout):
File "/usr/local/lib/python3.10/site-packages/async_timeout/init.py", line 129, in aexit
self._do_exit(exc_type)
File "/usr/local/lib/python3.10/site-packages/async_timeout/init.py", line 212, in _do_exit
raise asyncio.TimeoutError
asyncio.exceptions.TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/config/custom_components/homewhiz/bluetooth.py", line 37, in connect
self._connection = await establish_connection(
File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/init.py", line 361, in establish_connection
_raise_if_needed(name, device.address, exc)
File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/init.py", line 310, in _raise_if_needed
raise BleakNotFoundError(msg) from exc
bleak_retry_connector.BleakNotFoundError: 00:A0:50:E4:85:E0 - 00:A0:50:E4:85:E0: Failed to connect: ****

Thanks for your bug report 👋
Looks like this is caused by a Bluetooth error. While fixing the error itself is out of scope, the software should be resilient enough to recover from this error.

Hi. I'm getting the same error in the logs.
The result is the same as in #134 but I didn't find any entities with spaces in their name (or id) so the same fix doesn't work for me.
The washing machine did also not respond to the HomeWhiz Android app when I did a quick test after it stopped to work in HomeAssistant - so I'm not sure if the issue is somewhere else entirely.

While it might be obvious, you might not be in range of a device or you have a lot of interference. The latter was what happened in my case. I plugged it to my server using some USB extender and everything works fine. I guess that the initial information about the device is fetched from the cloud and then later it's just not in range to connect via bluetooth.

Distance between the home assistant box and washing maschine didn't change between when this stopped working and worked again.
It seems like unplugging the washing machine and/or rebooting the HA box sometimes fixes it for a few days but it always breaks aber a while


How to get all selected elements?

I couldnt get an array with all selected elements and didnt find anything in the documentation am I stupid or how to get the selected elements in an js array? Jquery is possible.

found it:
var targets = [];
$.each($(".selectpicker option:selected"), function(){
targets.push($(this).val());
});
alert("You have selected the targets - " + targets.join(", "))

When you enable to select multiple elements, they're all automatically added to an array accessible via
$( "#element" ).val(); //returns array [1,2,3]


Vite build & asset paths, how the hell?

I'm clearly missing something with this. I have an app built with vite, direct from Capacitor's quickstart. I've added my audio to source/assets/sounds, as seen here:

and so, they build like this in the Android folder:

I've tried preloading the audio in a ton of different ways, looking through different issues, trying different repos such as CapGo, and nothing has worked.
I've tried all of these:
assetPath: "public/assets/sounds/bang.1edeb9ba.wav",
assetPath: "public/assets/sounds/bang.wav",
assetPath: "assets/sounds/bang.wav",
assetPath: "sounds/bang.wav",
assetPath: "sounds/bang.1edeb9ba.wav",
assetPath: "assets/sounds/bang.1edeb9ba.wav",

Nothing is working? It just throws an error with the path of the file.
The docs are super vague, and the "native-audio-example" seems to only be useful to those who know that exact framework.

Did you ever figure it out?

I have my sounds in src/assets/sounds/sound1.mp3 and I make the assetPath: public/assets/sounds/sound1.mp3 - this seems to work for me


Removes reference to unmaintained yaourt

The AUR helper yaourt has been unmaintained for years, has bugs and is probably not compatible with the current version of pacman. Yaourt should therefore no longer be used.
Since there are many alternative AUR helpers and an installation is also possible without such a tool, I think we should not give an installation example.

Please write a proper commit message, e.g. docs: install: Remove reference to yaourt, with the message body containing the justification you posted above.


enviroment list please

Can anyone tell me which version of libtorch,opencv,visual stdio you use could works？
I have tried many times in the environment of vs2019, libtorch1.4, opencv 4.2.there is a bug at Darknet.cpp #line142  x = torch::cat({map_1, map_2}, 1); I guess the version of vs or libtorch is not match，so could anybody who has run successfully tell me what the version is

I have compilation errors. One of them is : namespace "torch::nn" has no member "BatchNorm" . This method does not appear in the documentation either. I looked for it in all versions. ( 0.1.12 - 1.6.0 ) .
Other compilation errors:

with_bias
-BatchNormImpl
-Conv2dOptions class does not contain stride_, padding_, groups_, with_bias_

Any suggestion?

For 1.3:

error: ‘torch::ExpandingArray<2> torch::nn::ConvOptions<2>::stride_’ is private within this context
torch::nn::Conv2dOptions conv_options(

conv_options.stride_ = stride;
conv_options.padding_ = padding;
conv_options.groups_ = groups;
conv_options.with_bias_ = with_bias;

conv_options.stride(stride);
conv_options.padding(padding);
conv_options.groups(groups);
conv_options.with_bias(with_bias);

torch::nn::BatchNormOptions bn_options(

bn_options.affine_ = true;
bn_options.stateful_ = true;

bn_options.affine(true);
bn_options.stateful(true);

For 1.3:

error: ‘torch::ExpandingArray<2> torch::nn::ConvOptions<2>::stride_’ is private within this context
torch::nn::Conv2dOptions conv_options(

conv_options.stride_ = stride;

conv_options.padding_ = padding;

conv_options.groups_ = groups;

conv_options.with_bias_ = with_bias;

conv_options.stride(stride);

conv_options.padding(padding);

conv_options.groups(groups);

conv_options.with_bias(with_bias);

torch::nn::BatchNormOptions bn_options(

bn_options.affine_ = true;

bn_options.stateful_ = true;

bn_options.affine(true);

bn_options.stateful(true);

you can try this:
    torch::nn::Conv2dOptions conv_options = torch::nn::Conv2dOptions(in_planes, out_planes, kerner_size)
            .bias(with_bias).stride(stride).padding(padding).groups(groups);

@lbdalmendray  hi, have you solved your problem? I just met it too

torch::nn::BatchNorm -> torch::nn::BatchNorm2d ;
conv_options.stride_ = stride -> conv_options.stride(stride)
torch::nn::BatchNormImpl -> torch::nn::BatchNorm2dImpl
and so on
@xuweilin2014

For 1.3:

error: ‘torch::ExpandingArray<2> torch::nn::ConvOptions<2>::stride_’ is private within this context
torch::nn::Conv2dOptions conv_options(

conv_options.stride_ = stride;

conv_options.padding_ = padding;

conv_options.groups_ = groups;

conv_options.with_bias_ = with_bias;

conv_options.stride(stride);

conv_options.padding(padding);

conv_options.groups(groups);

conv_options.with_bias(with_bias);

torch::nn::BatchNormOptions bn_options(

bn_options.affine_ = true;

bn_options.stateful_ = true;

bn_options.affine(true);

bn_options.stateful(true);

AWESOME


Failed to ingest events

Failed to ingest events .catch() Unexpected token 'I', "Internal S"... is not valid JSON
Machine ID: c09e3fc1-bd7d-4963-ae1c-163e10b3bd05

[!NOTE]
Book a call

key
value

id
XRFjC5S8hs410OOfRUSac

url
http://localhost:3000/

wifi
4g

cpu
12

mem
8

gpu
ANGLE (Apple, ANGLE Metal Renderer: Apple M2 Pro, Unspecified Version)

time
1727003175720

items
13

bytes
357

@O4FDev Hey, just bumping here. I think we chatted already but this seems to be a different error? Do you remember what this corresponded w/ before?

Hi @O4FDev  , we've just deployed a fix for you. Can you try running the setup script npx million@latest. Once it's done, please restart your VSCode/Cursor. Let me know if that works for you!


Unable to converse with gpt model through  Azure OpenAI Chat Assistant

Please provide us with the following information:
While trying to chat with Azure Open AI gpt-4 model as service using the chat assistant feature, I am getting error message "Failed to create thread Error Code 404.  I have done following :

Have followed the installation guidelines
Have validated the access to gpt-4 service endpoint using nslookup
Tried to access the services using the  URL provided by Azure OpenAI  from Postman and I am getting response.
Have used deployment names  in "Settings" -->  system assistant and while creating new chat assistant

This issue is for a: (mark with an x)
- [X ] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

Create  New Chat Assistant
Start the conversation

Any log messages given by the failure

Expected/desired behavior

Should be able to have the chat conversation
OS and Version?

Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)
Linux ubuntu 20.04

Versions

0.4.5 version for the Assistant
Mention any other details that might be useful

Thanks! We'll be in touch soon.

@gujju62 Thanks for the report. In the first error message, I see "Resource not found", thus I wonder if the endpoint or the model deployment name is set correctly for assistant."
Did you have following format in AZURE_OPENAI_ENDPOINT=.openai.azure.com/?
Then did you use the model deployment name from Azure AI Studio, ie, not the model name (as that may be different).

@jhakulin  - Thank you .
Yes, I am using the endpoints and key provided by Azure OpenAI service.
I am  also using using the deployment name that i have  provided while creating the service.
cheers.

@gujju62 Need to figure out what is wrong as I cannot reproduce.
Could you please enable OpenAI logging check box in Debug view and send new trace to me to<EMAIL_ADDRESS>NOTE: When you enable the OpenAI logging your api-key seems get exposed, so be careful and remove that before sharing the information.

Also could you do pip list for the components you have installed.

@jhakulin - Please find attached the list of packages installed [pip install].  Under Menu Item "Diagnostics --> Debug View", I don't see any option for enabling OpenAI logging.
packageslist.txt

@gujju62 You do not see check box like below?

@jhakulin - I have emailed you sample trace .
Thanks.

@gujju62 One problem could be that you have 2023-03-15-preview api version.
For assistants, please use
set AZURE_OPENAI_API_VERSION=2024-05-01-preview

@jhakulin - With the API version change, I was able to access the tool and able to perform chat with the assistant. Thank you for your help.
I am also trying out speech capability of the tool, is there any documentation that you could point to me?
Thank you.

@gujju62 Great, please see instructions here how to get Azure Speech resource
https://learn.microsoft.com/en-us/azure/ai-services/speech-service/get-started-speech-to-text?tabs=linux%2Cterminal&pivots=programming-language-python
Once you get key and region, please update environment variables
set AZURE_AI_SPEECH_KEY=Your_Speech_Key
set AZURE_AI_SPEECH_REGION=Your_Speech_Region
The same resource should work for both speech to text and text to speech

closing the issue, please let me know if need more help.


Suspicious site reporter overrides "hide url schemes" flag in Chrome

This happens on latest version of Stable and Canary Google Chrome
When the extension is enabled, my flags no longer work

But when I disable the extension, the flags are working as intended again

I made sure that the Google`s Suspicious site reporter is the responsible for this behavior

Hi! Thanks for filing. This works as intended--we want to give users the most information possible to make a decision on whether the site is suspicious, including showing the full URL. We do this by preventing URL elisions in Chrome when the extension is enabled. I'll close out this bug for now, but feel free to reopen if you have any questions or concerns about this feature.

https://cs.chromium.org/chromium/src/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc?l=80&rcl=390b11af93e5be31dda6e46a056d5eed60277f09

The presence of this extension also seems to override chrome://flags/#enable-query-in-omnibox


[BUG] WSL fails

       _,met$$$$$gg.           stefan@Stefan-PC
    ,g$$$$$$$$$$$$$$$P.        ----------------
  ,g$$P"         """Y$$.".     OS: Debian GNU/Linux buster 10.13 x86_64
 ,$$P'               `$$$.     Host: Windows Subsystem for Linux - Debian (<IP_ADDRESS>)
',$$P       ,ggs.     `$$b:    Kernel: 4.4.0-19041-Microsoft
`d$$'     ,$P"'   .    $$$     Uptime: 2 hours, 42 mins
 $$P      d$'     ,    $$$P    Packages: 1715 (dpkg)
 $$:      $.   -    ,d$$'      Shell: bash 5.0.3
 $$;      Y$b._   _,d$P'       Display: 3000x1920
 Y$$.    `.`"Y$$$$P"'          Cursor: Adwaita
 `$$b      "-.__               Terminal: SessionLeader
Segmentation fault (core dumped)

(gdb) bt
#0  0x00007fffff4d1ce2 in __GI___readdir64 (dirp=0x0)
    at ../sysdeps/posix/readdir.c:44
#1  0x000000000804e849 in detectFrequency (cpu=<optimized out>,
    cpu=<optimized out>)
    at /home/stefan/g/fastfetch/src/detection/cpu/cpu_linux.c:115
#2  ffDetectCPUImpl (options=<optimized out>, cpu=0x7ffffffedc60)
    at /home/stefan/g/fastfetch/src/detection/cpu/cpu_linux.c:235
#3  0x000000000808fcaa in ffDetectCPU (cpu=0x7ffffffedc60,
    options=0x811ede8 <instance+1192>)
    at /home/stefan/g/fastfetch/src/detection/cpu/cpu.c:7
#4  ffPrintCPU (options=0x811ede8 <instance+1192>)
    at /home/stefan/g/fastfetch/src/modules/cpu/cpu.c:20
#5  0x00000000080a0d68 in parseStructureCommand (line=0x81270e9 "CPU",
    fn=0x809deb0 <genJsonResult>, jsonDoc=0x0, customValues=<optimized out>,
    customValues=<optimized out>)
    at /home/stefan/g/fastfetch/src/common/commandoption.c:115
#6  0x0000000008013c30 in ffPrintCommandOption (jsonDoc=<optimized out>,
    data=0x7ffffffede50)
    at /home/stefan/g/fastfetch/src/common/commandoption.c:137
#7  run (data=0x7ffffffede50) at /home/stefan/g/fastfetch/src/fastfetch.c:824
#8  main (argc=<optimized out>, argv=<optimized out>)
    at /home/stefan/g/fastfetch/src/fastfetch.c:885

I don't know why the WSL kernel is THAT old ( it runs 5.15 for me ), but it helps me find another compatibility issue.

What terminal were you using?

Windows-Terminal Version: 1.20.10572.0

Same Version of Windows Terminal for me.
By the way, it doesn't happen in Version 2.8.6, there it works without a problem.

Please try the latest commit

Did you try fastfetch Windows version?

Same Version of Windows Terminal for me.
By the way, it doesn't happen in Version 2.8.6, there it works without a problem.
Edit: I also updated my WSL just now, so its the newest Version, 2.0.14, still happens

What does gdb -q -ex 'set confirm off' -ex run -ex 'bt full' -ex quit --args /path/to/fastfetch print?

Indeed, version 2.8.6 works
       _,met$$$$$gg.           stefan@Stefan-PC
    ,g$$$$$$$$$$$$$$$P.        ----------------
  ,g$$P"         """Y$$.".     OS: Debian GNU/Linux buster 10.13 x86_64
 ,$$P'               `$$$.     Host: Windows Subsystem for Linux - Debian (2.0.)',$$P       ,ggs.     `$$b:    Kernel: 4.4.0-19041-Microsoft
`d$$'     ,$P"'   .    $$$     Uptime: 4 hours, 14 mins
 $$P      d$'     ,    $$$P    Packages: 1719 (dpkg)
 $$:      $.   -    ,d$$'      Shell: bash 5.0.3
 $$;      Y$b._   _,d$P'       Display: 3000x1920
 Y$$.    `.`"Y$$$$P"'          Cursor: Adwaita
 `$$b      "-.__               Terminal: SessionLeader
  `Y$$                         CPU: AMD Ryzen 3 1200 (4) @ 3.10 GHz
   `Y$$.                       GPU: VMware, Inc. llvmpipe (LLVM 7.0, 128 bits)
     `$$b.                     Memory: 7.74 GiB / 15.95 GiB (48%)
       `Y$$b.                  Swap: 233.63 MiB / 34.55 GiB (1%)
          `"Y$b._              Disk (/): 43.95 GiB / 200.00 GiB (22%) - wslfs
             `"""              Local IP (eth0): <IP_ADDRESS>/24 *
                               Battery: 0% [AC Connected]
                               Locale: de_DE.UTF-8

                               ████████████████████████
                               ████████████████████████

It was a regression introduced in 979f7d19b137b8087954119103a4ff72f1f55cb6. I missed a NULL check.

I will cut a new version tomorrow if everything is fine.

Can you verify the fix? Also Terminal: SessionLeader is not an intended output.
The expect result is ( on my machine )

Works now, I used the newest Version from the Actions up top:

Also, not sure why it says "Microsoft Basic Render Driver" because i have a 2080 Super, but may be a Win10 vs. Win11 thing, as I still use Win10.

Seems that DX libs were not loaded correctly. What does ls -l /usr/lib/wsl/lib print?

Open a new issue if there are other things wrong

Also, not sure why it says "Microsoft Basic Render Driver" because i have a 2080 Super, but may be a Win10 vs. Win11 thing, as I still use Win10.

You know I have a "VMware GPU", it's just hidden by the hypervisor.

Can you verify the fix? Also Terminal: SessionLeader is not an intended output.

@CarterLi I still have this "SessionLeader" terminal.
WSL-Version: <IP_ADDRESS>
Kernelversion: <IP_ADDRESS>-1
WSLg-Version: 1.0.59
MSRDC-Version: 1.2.4677
Direct3D-Version: 1.611.1-81528511
DXCore-Version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows-Version: 10.0.19045.4046

Can you paste the output of ps aux and fastfetch -s shell:terminal --format json?

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  10508   732 ?        Ssl  14:43   0:00 /init
root         5  0.0  0.0  10500   572 ?        Sl   14:43   0:00 plan9 --control
root         8  0.0  0.0  10508   348 tty1     Ss   14:43   0:00 /init
stefan       9  0.0  0.0  15164  2520 tty1     S    14:43   0:00 -bash
stefan      32  0.0  0.0  16608  1688 tty1     R    16:43   0:00 ps aux

[
  {
    "type": "Shell",
    "result": {
      "exe": "bash",
      "exeName": "bash",
      "exePath": "/bin/bash",
      "pid": 9,
      "ppid": 8,
      "processName": "bash",
      "prettyName": "bash",
      "version": "5.0.3",
      "tty": 1
    }
  },
  {
    "type": "Terminal",
    "result": {
      "processName": "SessionLeader",
      "exe": "/init",
      "exeName": "init",
      "exePath": "/init",
      "pid": 8,
      "ppid": 1,
      "prettyName": "SessionLeader",
      "version": "",
      "tty": "/dev/tty1"
    }
  }


User serialization

As Indicated a few days ago , our team looked into the runtime typing issues we were getting with 4.0 and believe we came up with a good solution for handling situations where the user has a complex class hierarchy and wants to leverage the query nature of Dexie for their classes but also 100% control no assumptions on the serialization Type back to the db.
As opposed to Dexie typing to figure out what the user wants in these cases we Added the ability to supply a secondary Type TEntity to take precedence for the POJO where needed for updates etc. This allows the user of the library to directly specify the serialization type and get all the runtime type-safety
All tests are passed and the change is backward compatible. There however is still one issue still remaining with the IDType coercion. We understand the idea behind extracting the 'key' as string to infer the IndexableType from the T , however the typing system gets a bit confused and there are some instances where resolutions go recursive. It's definitely a complex process switching types around. Maybe there is a cleaner approach by leaving it more 3.2 ish and give the user a helper function to access the feature if desired, so that keeps the assumptions to a minimum (and easier to maintain)
Also added changes to dexie-cloud-addon

Good Catch,  I missed putting that back.  Would you like me to correct it?
Nick
On Tue, Oct 25, 2022 at 8:12 AM David Fahlander @.***>
wrote:

@.**** commented on this pull request.
In src/public/types/collection.d.ts
https://github.com/dexie/Dexie.js/pull/1632#discussion_r1004407391:

// Mutating methods
delete(): PromiseExtended;
modify(changeCallback: (obj: T, ctx:{value: T}) => void | boolean): PromiseExtended;

modify(changes: UpdateSpec): PromiseExtended;

Could we keep UpdateSpec here to get better typings for dotted keypaths? I
saw it's kept in table.d.ts so I suppose it could be kept here as well?
—
Reply to this email directly, view it on GitHub
https://github.com/dexie/Dexie.js/pull/1632#pullrequestreview-1154692962,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACOW632DYASTGGQ5EB5JJ3TWE7FELANCNFSM6AAAAAARLIWLWY
.
You are receiving this because you authored the thread.Message ID:
@.***>

While going through the changes in the PR, I'm trying to get a grip on what issue you had, in order to allow a solution that would work in your case. Could the issue have been the complex InsertType generic failed with your types?
My intention with dexie 4 was to keep it backward compatible (Table<T, TKey> should still work as before, but if TKey was an exact string, it would point out the primary key property). I agree it was too complex but I'm looking at a solution where the second parameter could be wither the type (TKey) or a union of optional insert properties (such as 'id' | 'realmId' | 'owner'). I wonder why this approach wouldn't work and wonder if you have an example where this failed in<EMAIL_ADDRESS>

Yea it was an obscure runtime typing error.  I don't have an isolated
project that showcases it , but if you would like to see what happens in
our project I'm happy to show you.
I have a lot of things going on in my project with types, mixins, Vue
compilation etc.  I spent a good day and a half trying to get it to work
and had to step away until I could understand it better.
I narrowed it down to two general areas

(Fixed)
InsertType
When applying the Insert Type to Highly Structured Clases ,  there is
typically more than just the methods that need to be omitted.  Usually
there are support properties and object references to other classes etc.
Cleaner to just specify the serialization contract Hence TEntity (Gives the
consumer full control no assumptions).  I believe the way I did it was
backwards compatible with your idea of the simple entity class since the
TEntity will default to the first generic T if not specified. And
InsertType is still being used as designed, I just omitted the Optional
generic. (assumed you would remove from the InsertType if you liked the
approach)  Runtime Typescript Errors went away when passing a simpler type
to InsertType.  I didn't want to touch InsertType cause if you squint the
wrong way with those complex type structures the logic gets messed up LOL.

export type IDType<T, TKey> = TKey extends keyof T ? T[TKey] : TKey
and
keypaths.d.ts KeyPaths
This one was obscure
In isolation and simplified the IDType performed as expected, but when the
IDType was applied to our Class Types the typescript compiler went haywire
and indicated circular references and type incompatibilities.
It got me scratching my head , theoretically  passing a type into Dexie's
generics should only have resulted in new types and not generated runtime
compilation type errors in our project.  My best guess
is something caused the type model to get polluted or corrupt.  I was going
to revisit it, but not before discussing it with you.
Nick
On Wed, Oct 26, 2022 at 10:04 AM David Fahlander @.***>
wrote:

While going through the changes in the PR, I'm trying to get a grip on
what issue you had, in order to allow a solution that would work in your
case. Could the issue have been the complex InsertType generic failed
with your types?
My intention with dexie 4 was to keep it backward compatible (Table<T,
TKey> should still work as before, but if TKey was an exact string, it
would point out the primary key property). I agree it was too complex but
I'm looking at a solution where the second parameter could be wither the
type (TKey) or a union of optional insert properties (such as 'id' |
'realmId' | 'owner'). I wonder why this approach wouldn't work and wonder
if you have an example where this failed in @.***
—
Reply to this email directly, view it on GitHub
https://github.com/dexie/Dexie.js/pull/1632#issuecomment-1292103512, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACOW6352UPULZIMJMO6ZZPDWFE25LANCNFSM6AAAAAARLIWLWY
.
You are receiving this because you authored the thread.Message ID:
@.***>

Check out PullRequest #1635

Thanks!
I made a new PR #1636 where I revert to Table<T, TKey> but with the 3rd optional property TInsertType=T
class Table<T = any, TKey = IndexableType, TInsertType=T> {
  ...
}

It seems hard to cover possible problems caused by a too complex typing system.
Instead offer an alternate generic
export type EntityTable<T, TKeyPropName extends keyof T, TInsertType = InsertType<T, TKeyPropName>> =
  Table<T, IDType<T, TKeyPropName>, TInsertType>;

PR #1636 is based on master to not leave unintended changes by accident, but with inspiration and selected parts from your PRs. Please let me know if I missed something that is important to make it work in your setup.


Unable to delete all unactivated accounts

Description
I'm trying to get rid of spam users (over 800 of them)
I changed them to inactive following instructions from https://blog.roberthallam.org/2022/11/mass-delete-remove-purge-users-in-gitea/
Because I'm using sqlite3 it was: UPDATE user SET is_active = 'f' WHERE email != 'my@email';
In the UI all the users except mine are marked inactive.
Then I run Delete all unactivated accounts
It says Started Task: Delete all unactivated accounts using greenish text.
Nothing happens. I still have over 800 accounts.
Gitea Version
1.22.0
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
https://gist.github.com/ggodlewski/c17fb25618c3fac0539ae6891da66b6f
Screenshots

Git Version
2.45.1
Operating System
docker @ ubuntu
How are you running Gitea?
docker container: gitea/gitea:latest
Database
SQLite

Are these accounts new?
If this is the case, what I believe is happening currently is that when you run this task, we would only delete accounts that are older than some certain amount of time. Looking at this particular task in the code, we would only delete inactive users who are 3 hours old by default (this would be different if you explicity set ACTIVE_CODE_LIVE_MINUTES in your config).

Not all inactive accounts could be deleted, there are more checks in DeleteInactiveUsers

I set ACTIVE_CODE_LIVE_MINUTES to 180 (was empty). Still nothing.
Inactive account from Dec 13, 2023 not deleted.
User doesn't have repos/orgs/packages
https://github.com/go-gitea/gitea/blob/main/services/user/user.go#L291C1-L291C6
The only thing I can think of is that I'm getting this green confirmation but the tasks is not executed.
How are those tasks executed?

I'm experiencing this problem as well with gitea 1.22.3. The newest account was made 7 days ago. Did you have any luck finding a workaround?

Same problem here.
Task failed because it was trying to delete organization.
Response from log here is:
Task: Delete all unactivated accounts canceled: xyz is an organization not a user


test : increase step coverage

Fix : https://github.com/kyverno/chainsaw/issues/337

@shubham-cmyk not that simple ;-)

@shubham-cmyk not that simple ;-)

Do i need to get to the TestParse now

@shubham-cmyk you get that coverage did not change at all right ?

Right it didn't changed i looked at that


ValueListenableBuilder is rebuilding even though the listenable value didn't change

Steps to Reproduce

  GestureDetector(
  onTapDown: (details) {
              setState(() {
                particlePoint = details.globalPosition;
              });
              _controller.repeat();
            },
            onTapCancel: () {
              setState(() {
                points.add(null);
              });
            },
           ValueListenableBuilder<int>(
                valueListenable: counter,
                builder: (BuildContext context, int value, Widget? child) {
                  // This builder will only get called when the counter
                  // is updated.
                  print(counter);
                  return child!;
                },
                child: SpriteWidget(
                  startingIndex: 0,
                  desiredFPS: 24,
                  loop: true,
                  constraints: {"width": viewportConstraints.maxWidth.toInt(), "height": viewportConstraints.maxHeight.toInt()},
                  path: "assets/flying_monster.png",
                ),
              ),
    )

You can use this repo to reproduce it https://github.com/netgfx/Shapes-in-the-Dart/tree/develop
Expected results:
The SpriteWidget should not be rebuilding as the counter listenable doesn't explicitly change with setState
Actual results:
SpriteWidget is rebuilding every time setState is called

Logs

[√] Flutter (Channel stable, 2.2.3, on Microsoft Windows [Version 6.1.7601], locale el-GR)
    • Flutter version 2.2.3 at C:\SDKs\flutter
    • Framework revision f4abaa0735 (4 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at D:\ASDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = D:\ASDK
    • Java binary at: D:\AndroidStudioNew\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
    • All Android licenses accepted.

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

[√] Android Studio (version 4.1.0)
    • Android Studio at D:\AndroidStudioNew
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[√] VS Code (version 1.58.2)
    • VS Code at C:\Users\Nemesis\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.24.0

[√] VS Code, 64-bit edition (version 1.52.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 3.24.0

[√] Connected device (4 available)
    • Redmi Note 5 (mobile) • 3a68a8b3    • android-arm64  • Android 9 (API 28)
    • SM A307FN (mobile)    • RF8N20F1FSX • android-arm64  • Android 11 (API 30)
    • Chrome (web)          • chrome      • web-javascript • Google Chrome 92.0.4515.107
    • Edge (web)            • edge        • web-javascript • Microsoft Edge 91.0.864.71

• No issues found!

@netgfx, Thanks for filing the issue,  I ran the official sample code with slight modification and I can see that the child only builds once initially when the widget tree is built.
In the code sample below you could see goodJob() doesn't get built multiple times.

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

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

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

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  final ValueNotifier<int> _counter = ValueNotifier<int>(0);

  Widget goodJob() {
    print('rebuilt');
    return Text('Good job!');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text(widget.title)),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text('You have pushed the button this many times:'),
            ValueListenableBuilder<int>(
              builder: (BuildContext context, int value, Widget? child) {
                // This builder will only get called when the _counter
                // is updated.
                return Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    Text('$value'),
                    child!,
                  ],
                );
              },
              valueListenable: _counter,
              // The child parameter is most helpful if the child is
              // expensive to build and does not depend on the value from
              // the notifier.
              child: goodJob(),
            )
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: const Icon(Icons.plus_one),
        onPressed: () => _counter.value += 1,
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-arm, locale en-GB)
    • Flutter version 2.2.3 at /Users/mahesh/Documents/flutter
    • Framework revision f4abaa0735 (4 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 57.0.5
    • Dart plugin version 211.7233

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

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile)     • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
    • iPhone 12 Pro Max (mobile) • 6A434744-B348-4FB3-AB10-131292174456 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 11.4 20F71 darwin-arm
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 92.0.4515.107

• No issues found!

@netgfx The repo you linked contains lot of third party packages and would be difficult to reproduce the actual bug. I would  request you to please narrow down the code sample with minimal code without any third-party packages.
And the issue that you are referring to is most probably https://github.com/flutter/flutter/issues/72002 which isnt same as this issue.

@maheshmnj Ok I will create and post a new repository without packages and only the problematic part of code.

@maheshmnj You can find a more clear example here https://github.com/netgfx/Flutter_ValueListenableBuilder

@netgfx I ran your sample code but still it had lot of code to be able to understand if it was really an issue. So I took a simple example where the child is being animated and I could see the child is being built only once.
Could you please take this sample and see if you could reproduce the issue.

code sample
import 'dart:math';

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        color: Colors.white,
        title: 'Flutter Demo',
        theme: ThemeData(primarySwatch: Colors.blue),
        home: MyHomePage(title: ' ValueListenable example'));
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  final ValueNotifier<int> _counter = ValueNotifier<int>(0);

  Widget goodJob() {
    print('rebuilt');
    return Text('Good job!');
  }

  @override
  Widget build(BuildContext context) {
    print(MediaQuery.of(context).size.width);
    print(MediaQuery.of(context).size.height);
    return Scaffold(
      appBar: AppBar(title: Text(widget.title)),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text('You have pushed the button this many times:'),
            ValueListenableBuilder<int>(
              builder: (BuildContext context, int value, Widget? child) {
                // This builder will only get called when the _counter
                // is updated.
                print('valueListenable rebuilt');
                return Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    Text('$value'),
                    child!,
                  ],
                );
              },
              valueListenable: _counter,
              // The child parameter is most helpful if the child is
              // expensive to build and does not depend on the value from
              // the notifier.
              child: ChildAnimation(),
            )
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: const Icon(Icons.plus_one),
        onPressed: () => _counter.value += 1,
      ),
    );
  }
}

class ChildAnimation extends StatefulWidget {
  const ChildAnimation({Key? key}) : super(key: key);

  @override
  State<ChildAnimation> createState() => _ChildAnimationState();
}

class _ChildAnimationState extends State<ChildAnimation>
    with SingleTickerProviderStateMixin {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _animationController = AnimationController(
      duration: Duration(seconds: 3),
      vsync: this,
    )..addStatusListener((x) {
        if (x == AnimationStatus.completed) {
          _animationController.reset();
          _animationController.forward();
        }
      });
    _animationController.forward();
  }

  late AnimationController _animationController;

  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    _animationController.dispose();
  }

  @override
  Widget build(BuildContext context) {
    print('Child rebuilt');
    return AnimatedBuilder(
      animation: _animationController,
      builder: (context, _) => Transform.rotate(
          angle: _animationController.value * 2 * pi,
          child: Container(color: Colors.red, height: 100, width: 100)),
    );
  }
}

logs
Restarted application in 495ms.
flutter: 428.0
flutter: 926.0
flutter: valueListenable rebuilt
flutter: Child rebuilt
46 flutter: valueListenable rebuilt

flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-arm, locale en-GB)
    • Flutter version 2.2.3 at /Users/mahesh/Documents/flutter
    • Framework revision f4abaa0735 (4 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 57.0.5
    • Dart plugin version 211.7233

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

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile)     • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
    • iPhone 12 Pro Max (mobile) • 6A434744-B348-4FB3-AB10-131292174456 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 11.4 20F71 darwin-arm
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 92.0.4515.107

• No issues found!

@netgfx thanks for the sample code, I ran your sample code and I could see the child getting rebuilt when the ValueListenable changes. I tried with a simple sample code where the child is animating, but I could not reproduce the issue. keeping this issue open for further investigation from the team.

code sample
import 'dart:math';

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        color: Colors.white,
        title: 'Flutter Demo',
        theme: ThemeData(primarySwatch: Colors.blue),
        home: MyHomePage(title: ' ValueListenable example'));
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  final ValueNotifier<int> _counter = ValueNotifier<int>(0);

  Widget goodJob() {
    print('rebuilt');
    return Text('Good job!');
  }

  @override
  Widget build(BuildContext context) {
    print(MediaQuery.of(context).size.width);
    print(MediaQuery.of(context).size.height);
    return Scaffold(
      appBar: AppBar(title: Text(widget.title)),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text('You have pushed the button this many times:'),
            ValueListenableBuilder<int>(
              builder: (BuildContext context, int value, Widget? child) {
                // This builder will only get called when the _counter
                // is updated.
                print('valueListenable rebuilt');
                return Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    Text('$value'),
                    child!,
                  ],
                );
              },
              valueListenable: _counter,
              // The child parameter is most helpful if the child is
              // expensive to build and does not depend on the value from
              // the notifier.
              child: ChildAnimation(),
            )
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: const Icon(Icons.plus_one),
        onPressed: () => _counter.value += 1,
      ),
    );
  }
}

class ChildAnimation extends StatefulWidget {
  const ChildAnimation({Key? key}) : super(key: key);

  @override
  State<ChildAnimation> createState() => _ChildAnimationState();
}

class _ChildAnimationState extends State<ChildAnimation>
    with SingleTickerProviderStateMixin {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _animationController = AnimationController(
      duration: Duration(seconds: 3),
      vsync: this,
    )..addStatusListener((x) {
        if (x == AnimationStatus.completed) {
          _animationController.reset();
          _animationController.forward();
        }
      });
    _animationController.forward();
  }

  late AnimationController _animationController;

  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    _animationController.dispose();
  }

  @override
  Widget build(BuildContext context) {
    print('Child rebuilt');
    return AnimatedBuilder(
      animation: _animationController,
      builder: (context, _) => Transform.rotate(
          angle: _animationController.value * 2 * pi,
          child: Container(color: Colors.red, height: 100, width: 100)),
    );
  }
}

logs
Restarted application in 495ms.
flutter: 428.0
flutter: 926.0
flutter: valueListenable rebuilt
flutter: Child rebuilt
46 flutter: valueListenable rebuilt

flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-arm, locale en-GB)
    • Flutter version 2.2.3 at /Users/mahesh/Documents/flutter
    • Framework revision f4abaa0735 (4 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 57.0.5
    • Dart plugin version 211.7233

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

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile)     • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
    • iPhone 12 Pro Max (mobile) • 6A434744-B348-4FB3-AB10-131292174456 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 11.4 20F71 darwin-arm
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 92.0.4515.107

• No issues found!

This appears to be working as intended. When setState is called in a StatefulWidget, the entire build method is re-executed, which here means that SpriteWidget rebuilds.

@goderbauer this comment on the sample code is kinda misleading
 // This builder will only get called when the _counter
// is updated.

led me to believe that despite setState the SpriteWidget will only get rebuild when the listenable changes. So in a way that I could isolate a widget from rebuilding with the parent tree.


Library does not work on Xamari.iOS

The option with UseOnlyDataTable does not work on SQLite.
On Xamarin.iOS one usually uses SQLite. The SQLite path uses FastMember no matter what. The way without fastmember is only included on SQL Server. So the cominbation Xamarin.iOS and SQLite does not work.
Originally posted by @MartinLeist in https://github.com/borisdj/EFCore.BulkExtensions/issues/320#issuecomment-669924588

SQLite does not use ObjectReaderEx at all, for which DataTable was alternative.
However it does use TypeAccessor from FastMember.
But it could be done without it, using plane Reflection.

My solution was removing the FastMember reference completely and changing the TypeAccessor to the type.
var typeAccessor = typeof(T); //TypeAccessor.Create(type, true);
value = typeAccessor.GetProperty(propertyColumn.Key).GetValue(entity) ?? null;
//value = typeAccessor[entity, propertyColumn.Key] ?? DBNull.Value;
That way I was able to use it in my Xamarin.Forms project. I suppose removing the reference would not have been necessary, but it was the fastest way to find all usages.

That was the idea, I see you have already implemented it.
I have been considering to remove FastMember completely, since it is not necessary, and there have been more then one issue with it. Will see to clean it as soon as I find the time.

FastMember dependency is now removed.
Version 3.2.0+