Frequent disconnect/connect issues even on localhost

I am not sure why, but even when I host my broker on the exact same machine - and start my program using the ManagedClient, I have very frequent disconnects/reconnects.
Sometimes within seconds of the first connect, I lose connection - the console shows something like "The thread 0x78a4 has exited with code 0 (0x0)." and soon after that I get a Disconnect call to my delegate, followed by (a successful) reconnect.
Why is that happening? I tested several MQTT brokers, the effect is the same.
I have a .Net Core project using MQTTNet 2.7.5.
Thanks!

Hi,
do you have a snippet which demonstrates this issue?
Best regards
Christian

Seeing similar behavior. Setup as follows:
        var optionsBuilder = new MqttClientOptionsBuilder()
            .WithTcpServer(_brokerIp, _brokerPort)
            .WithClientId(MqttClientId.ToString())
            .WithCleanSession();

        if (!string.IsNullOrEmpty(_brokerUsername) && !string.IsNullOrEmpty(_brokerPassword))
            optionsBuilder.WithCredentials(_brokerUsername, _brokerPassword);

        // Connect to MQTT
        await MqttClient.ConnectAsync(optionsBuilder.Build()).ConfigureAwait(false);

        // Log trace messages
        MqttNetGlobalLogger.LogMessagePublished += (sender, e) =>
        {
            switch (e.TraceMessage.Level)
            {
                case MqttNetLogLevel.Error:
                    _serviceLog.LogError(e.TraceMessage.Message, e.TraceMessage.Exception);
                    break;
                case MqttNetLogLevel.Warning:
                    _serviceLog.LogWarning(e.TraceMessage.Message);
                    break;
                case MqttNetLogLevel.Info:
                    _serviceLog.LogInformation(e.TraceMessage.Message);
                    break;
                case MqttNetLogLevel.Verbose:
                default:
                    _serviceLog.LogTrace(e.TraceMessage.Message);
                    break;
            }
        };

       MqttClient.Connected += (sender, e) => _serviceLog.LogInformation("MQTT Connection established");
        MqttClient.Disconnected += (sender, e) =>
        {
            if (!_stopping)
            {
                _serviceLog.LogInformation("MQTT Connection closed unexpectedly");
                ApplicationLifetime.StopApplication();
            }
            else
            {
                _serviceLog.LogInformation("MQTT Connection closed");
            }
        };

        MqttClient.ApplicationMessageReceived += Mqtt_MqttMsgPublishReceived;

It also does several subscriptions beyond this. I see random disconnects using the client against a Mosquitto broker.

More information from the trace log. Updated the comment above with the exact code that produces this, running in a .NET Core console application with MQTTNet 2.7.5, against a Mosquitto MQTT server.
Trying to connect with server.
Connecting [Timeout=00:00:10]
Connection with server established.
Start receiving packets.
TX >>> Connect: [ClientId=00000000-0000-0000-0000-000000000000] [Username=REDACTED] [Password=REDACTED] [KeepAlivePeriod=15] [CleanSession=True] [Timeout=00:00:10]
RX <<< ConnAck: [ConnectReturnCode=ConnectionAccepted] [IsSessionPresent=False]
MQTT connection with server established.
Connected.
Start sending keep alive packets.
TX >>> Subscribe: [PacketIdentifier=1] [TopicFilters=test@AtLeastOnce] [Timeout=00:00:10]
RX <<< SubAck: [PacketIdentifier=1] [SubscribeReturnCodes=SuccessMaximumQoS1]
Stopped sending keep alive packets.
Disconnecting [Timeout=00:00:10]
Disconnected from adapter.
Disconnected.
Stopped receiving packets.

Run it. It will disconnect within a very short amount of time, usually within the first minute and repeat that behavior over and over again. I mean - it does reconnect, that is nice, but I doubt this is the desired behavior!
Here's my main:
    static async Task Main(string[] args)
    {
        Console.WriteLine("Starting MQTT Tester...");

        var options = new ManagedMqttClientOptionsBuilder()
            .WithAutoReconnectDelay(TimeSpan.FromSeconds(5))
            .WithClientOptions(new MqttClientOptionsBuilder()
                .WithClientId("Client1")
                .WithTcpServer("<IP_ADDRESS>")
                .Build())
            .Build();

        var mqttClient = new MqttFactory().CreateManagedMqttClient();
        mqttClient.Connected +=
            (s, e) => Console.WriteLine($"{DateTime.Now.ToShortTimeString()} connected.");
        mqttClient.Disconnected +=
            (s, e) => Console.WriteLine($"{DateTime.Now.ToShortTimeString()} disconnected");
        mqttClient.ApplicationMessageReceived +=
            (s, e) => Console.WriteLine($"{DateTime.Now.ToShortTimeString()} received: {e.ApplicationMessage.ConvertPayloadToString()}");
        await mqttClient.SubscribeAsync(new TopicFilterBuilder().WithTopic("my/topic").Build());
        await mqttClient.StartAsync(options);

        Console.ReadLine();
    }

Within the first minute the output looks like this:
Starting MQTT Tester...
20:01 connected.
20:01 received: Hello, world!
20:01 received: Hello, world!
20:02 received: Hello, world!
20:02 disconnected
20:02 connected.

Thanks for any help!

Thanks to @i8beef I also added the global logging to my demo - same result.
MQTT connection with server established.
22:26:40 connected. MQTTnet.Client.MqttClientConnectedEventArgs
Connected.
Start sending keep alive packets.
ManagedMqttClient
TX >>> Subscribe: [PacketIdentifier=1] [TopicFilters=my/topic@AtMostOnce] [Timeout=00:00:10]
RX <<< SubAck: [PacketIdentifier=1] [SubscribeReturnCodes=SuccessMaximumQoS0]
RX <<< Publish: [Topic=my/topic] [Payload.Length=13] [QoSLevel=AtMostOnce] [Dup=False]
[Retain=False] [PacketIdentifier=0]
22:27:01 received: Hello, world!
Stopped sending keep alive packets.
Disconnecting [Timeout=00:00:10]
Disconnected from adapter.
Disconnected.
22:27:02 disconnected. MQTTnet.Client.MqttClientDisconnectedEventArgs
Stopped receiving packets.
Trying to connect with server.

That's all I see. Tested it on Windows purely and with Mosquitto on Ubuntu + Windows MqttNet library program.

Maybe this is an issue with linux brokers etc. I cannot reproduce it with the MQTTnet server. I will try to setup a test broker in ubuntu for testing.

Reproducable against the mosquitto test servers too: http://test.mosquitto.org/

Been having issues with mosquitto for a while, intermittent and unpredictable (sometimes it stays away for a week, sometimes a few hundred exceptions in a day), see bug #161, although it doesn't appear to have much of a correlation with this problem.
Has anybody tested it against some other mqtt server software?

I fixed some issues and tested with a local mosquitto server on Windows. It works (at least for a couple of minutes). I will let it run a couple of hours to see if it randomly disconnects.
I will release a new alpha (v3) including this fixes.

@chkr1011 would you mind testing it while stressing all the cpu cores?

All? Well I will try it 😄 I will start several clients which will send data all the time and one which does nothing.

My work machine easily hogs all cores for a couple of hours with a simple mouse click, to the point that the mouse starts lagging ;)
But I noticed this behaviour way before the mouse lag starts, just a 100% flatline did the trick on the latest released version.
Thanks for testing it.

Cool, just be aware that it IS intermittent. Usually if it starts pinging OK for me, it'll stay up for a bit before failing. I can usually start or stop it once or twice and it'll start immediately disconnecting again.
Once you have an alpha out Ill try it on mine too.

Trying your alpha4 now. Seems fairly stable thus far after several tests. Gonna let it run for a few hours and see if it remains so.

alpha4 seems to have fixed the issues on our end, good work

I have same issue with mqtt broker on linux, randomly mqtt client send "DISCONNECT". I have no ideea why?
This is my log from broker:
1551855063: Received PUBLISH from GateON_ID (d0, q1, r0, m821, '/GateON_A', ... (74 bytes))
1551855063: Sending PUBACK to GateON_ID (Mid: 821)
1551855063: Received PUBLISH from GateON_ID (d0, q1, r0, m822, '/GateON_A', ... (74 bytes))
1551855063: Sending PUBACK to GateON_ID (Mid: 822)
1551855064: Received DISCONNECT from GateON_ID
1551855064: Client GateON_ID disconnected.
1551855064: New connection from <IP_ADDRESS> on port 1883.
1551855064: New client connected from <IP_ADDRESS> as GateON_ID (c1, k120).
1551855064: Sending CONNACK to GateON_ID (0, 0)
1551855064: Received PUBLISH from GateON_ID (d0, q1, r0, m1, '/GateON_A', ... (74 bytes))
1551855064: Sending PUBACK to GateON_ID (Mid: 1)
1551855065: Received PUBLISH from GateON_ID (d0, q1, r0, m2, '/GateON_A', ... (74 bytes))
1551855065: Sending PUBACK to GateON_ID (Mid: 2)
1551855065: Received PUBLISH from GateON_ID (d0, q1, r0, m3, '/GateON_A', ... (74 bytes))
1551855065: Sending PUBACK to GateON_ID (Mid: 3)
1551855066: Received PUBLISH from GateON_ID (d0, q1, r0, m4, '/GateON_A', ... (74 bytes))
1551855066: Sending PUBACK to GateON_ID (Mid: 4)
1551855066: Received PUBLISH from GateON_ID (d0, q1, r0, m5, '/GateON_A', ... (74 bytes))
1551855066: Sending PUBACK to GateON_ID (Mid: 5)
1551855067: Received PUBLISH from GateON_ID (d0, q1, r0, m6, '/GateON_A', ... (74 bytes))
1551855067: Sending PUBACK to GateON_ID (Mid: 6)

The same issue, version MQTTNet 3.0.6, MQTT broker in eclipse-mosquitto container 1.6.4.

Same here using the eclipse-mosquitto container (1.6.10), using MQTTNet V3.0.11.
Any Idea when there is a fix available? We plan to use this in an IOT project and have a few deadlines ahead

Found the issue on my end:
I've used the wrong client (ManagedClient instead of the normal one), did not set WithKeepAlivePeriod and noticed that when I remove the WithCleanSession that everything keeps working.

I am able to reproduce this not only with this library, but also with Golang and Java libraries, and they are getting disconnected from local brokers roughly at the same time - on many Windows machines. I am talking about more than 20 different computers as we use Mosquitto on all of them -- it seems to be a Mosquitto issue. But looking at their bug tracker, it is highly unlikely that anyone will ever care about this issue -- it is flooded with issues

Since this seems to be a Mosquitto issue I will close this ticlet.

I am a bit late with my comment but in case somebody runs into a similar issue, here is my story:
I had a very similar issue and discovered that client's credentials were used multiple times to connect from different apps. Mosquitto sees that the client has logged in once more and finishes previous sessions.


Warning .net Standard

Hi
wondering if you have had this issue and how to solve it.
Moved our xamarin solution to .net standard and we get this warning.(which we are ignoring) but would be nice to to have fixed if possible
NU1701: Package 'SlideOverKit 2.1.5' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project.
Any plans to make it .net standard 2.0 compatible?
thanks

2.1.6 will fix this.


Unable to install on Arch Linux (commit problem)

Unable to build today 21 October 2018 23:20 CET.  Got:
`
$  Yaourt -S openvpn-nordvpn
[master c069a8f] saving uncommitted changes in /etc prior to pacman run
Author: mike<EMAIL_ADDRESS>1 file changed, 3 insertions(+)
==> Downloading openvpn-nordvpn PKGBUILD from AUR...
x .SRCINFO
x PKGBUILD
x openvpn-nordvpn.install
redman commented on 2017-10-23 05:49
Since a week I use this tool, so I now first have to thank you!
I now tried to update in Pamac but helas ...
Thanks in advance for your ongoing efforts!

Synchronizing package databases...
Starting full system upgrade...
Preparing...
Building openvpn-nordvpn...
Cloning into 'openvpn-nordvpn'...
remote: Counting objects: 276, done.
remote: Compressing objects: 100% (231/231), done.
remote: Total 276 (delta 134), reused 104 (delta 45)
Receiving objects: 100% (276/276), 38.90 KiB | 2.43 MiB/s, done.
Resolving deltas: 100% (134/134), done.
== Making package: openvpn-nordvpn 0.1.32-1 (Mon 23 Oct 07:37:18 CEST 2017)
== Checking runtime dependencies...
== Checking buildtime dependencies...
== Retrieving sources...

Cloning nordvpn git repo...
Cloning into bare repository '/tmp/pamac-build-afw/openvpn-nordvpn/nordvpn'...
remote: Counting objects: 358, done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 358 (delta 62), reused 118 (delta 59), pack-reused 235
Receiving objects: 100% (358/358), 62.30 KiB | 701.00 KiB/s, done.
Resolving deltas: 100% (177/177), done.
== Validating source files with sha1sums...
nordvpn ... Skipped
== Extracting sources...
Creating working copy of nordvpn git repo...
Cloning into 'nordvpn'...
done.
fatal: 'v0.1-32-g595937f' is not a commit and a branch 'makepkg' cannot be created from it
== ERROR: Failure while creating working copy of nordvpn git repo
Aborting...
`

PS  I was able to install it.  Not really sure why the git error. Maybe you want to take a look.  Maybe it's Yaourt related.

It was an issue on the way I distributed the package.


Improve unit tests code coverage for account page controller

Codecov Report

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

@@            Coverage Diff             @@
##           master    #1173      +/-   ##
==========================================
+ Coverage    93.9%   93.95%   +0.05%
==========================================
  Files          40       40
  Lines        4314     4383      +69
  Branches      473      746     +273
==========================================
+ Hits         4051     4118      +67
+ Misses        263      247      -16
- Partials        0       18      +18

Impacted Files
Coverage Δ

browser/model/devstudio-autoinstall.js
97.29% <0%> (-2.71%)
:arrow_down:

browser/model/helpers/downloader.js
96.13% <0%> (-1.66%)
:arrow_down:

browser/model/devstudio-p2.js
93.33% <0%> (-1.5%)
:arrow_down:

browser/model/jbossfusekaraf.js
95.09% <0%> (-0.83%)
:arrow_down:

browser/pages/confirm/controller.js
88.37% <0%> (-0.78%)
:arrow_down:

browser/model/cdk.js
99.28% <0%> (-0.72%)
:arrow_down:

browser/pages/install/controller.js
87.79% <0%> (-0.59%)
:arrow_down:

browser/services/data.js
82.24% <0%> (-0.52%)
:arrow_down:

browser/model/installable-item.js
93.81% <0%> (-0.35%)
:arrow_down:

browser/services/platform.js
98.85% <0%> (-0.34%)
: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 ef8a793...4ba4d82. Read the comment docs.


Parser rebase

Signed-off-by: pxp928<EMAIL_ADDRESS>Rebase the parser to be more pluggable for different document types
Closes: #83

issue with checks. Closing and reopening


As a developer, I want a design for a workflow node in a workflow tree, so that I can implement it in code

Summary

Design a workflow node in a workflow tree and get it approved

Time Requirements

1 day

Acceptance Criteria

Design a workflow node in a workflow tree, and get it approved

Closed for not following issue template.


Adds UWSGI env variable support and sets default to / instead of /galaxy

This PR:

Adds the ability to set UWSGI_ environment variables for the configuration of UWSGI.
Sets default case to serve galaxy at / instead of /galaxy. This default is chosen as the docker-galaxy-stable compose images seem to be configuring NGINX by default for this setup (and this is unfortunately done at container build time). Using /galaxyon UWSGI when NGINX is not set for this produces all set of weird HTML behaviour like #29 or broken http pulled file uploads, among others.

I wonder if it would be relevant to bump the version of the chart to 2.0.1 or something, as the default is changed (although in fairness, previous default doesn't work well in my opinion, unless that you built your container differently).

I'm going to merge this since I haven't got a review quite yet.

Agreed! According to Bjeorn, nginx can be configured on runtime, but I didn't find the way. My understanding from documentation is that root deployment is the default, so I think it is sensible that the chart reflects that (while being able of course to do otherwise).

@pcm32 this here? https://github.com/bgruening/docker-galaxy-stable#configuring-galaxys-behind-a-proxy--toc

Yes, but that variable is set in the chart, but it doesn't work well because it only seems to affect the uswgi settings but not the nginx settings (see #29).

Sorry, forgot to paste https://github.com/galaxyproject/galaxy-kubernetes/blob/8bff3e31ab1223fffade0c10971512e660d274d5/galaxy-stable/templates/galaxy_container_cfgmap.yaml#L38


Remove usage of Bluebird library and its dependency in favor of Axios

Feature
Why is this feature being added?
There is a file using an HTTP library that covers the same ground as another listed dependency (Axios). Let's decrease our bundle size.
What should your feature do?
In src/scenes/home/families/jumboQuote/jumboQuote.js there is an import of Bluebird and a usage of it to grab from a one-object-sized JSON. Remove the current implementation, and get the data from JSON file in a non-promise/http-based manner.
It looks the library isn't even listed as a dependency, but run yarn remove bluebird just in case.

I can do this.
Thanks


Type guard handling with boolean compares

TypeScript Version:  1.8.0
Code
let myAny: Array<string> | string;
myAny = 'anythinghere';

if (Array.isArray(myAny)) {
	let narrowed = myAny;
}

if (!!Array.isArray(myAny)) {
	let narrowed = myAny;
}

if (Array.isArray(myAny) === true) {
	let notNarrowed = myAny;
}

Expected behavior:
All three should result in the same type guard.
Tested with Visual Studio 2015 Update 2 and TypeScript Playground mouse hover.

There are limits that the compiler goes to when trying to statically analyse the code.  JavaScript has lots of patterns that are perfectly valid at run-time, but aren't necessarily worth coding for in the compiler for...
For example all of these are "valid" statements:
Array.isArray(myAny) === !!'0';
Array.isArray(myAny) != undefined;
Array.isArray(myAny) === Boolean(1);
Array.isArray(myAny) == 1;
Boolean(Array.isArray(myAny)) !== false;
Array.isArray(myAny) > false;

Yes, there are always esoteric difficult usecases, but my usecase was
if (Array.isArray(myAny) === false)or if (Array.isArray(myAny) !== true)
I had to change the code to the less readable
if (!Array.isArray(myAny))

The more powerful type guards become, the more expectactions there are that they should work for all cases that can be statically reasoned. I think there were less issues raised back when they were rudimentary and people's expectations were much lower!
One possible solution would be if TypeScript eventually got compile-time expression evaluation/simplification facilities as exist in some other languages/compilers (eg C++, D). Then any ridiculous expression, like Array.isArray(myAny) === !!['truthy'][0], would still work as a type guard, as long as it could be statically evaluated/simplified, and it wouldn't need a special case in the compiler.

!! is strictly out. There's no reason to write that in an if and we'll continue to interpret that as a "stop looking at my type guard" workaround.
=== true / === false seem OK to support, though in general I'd advise being very careful writing code like this in JS as often people will actually return truthiness/falsiness instead of true / false from is* functions.

This doesn't seem common enough to support. In most cases === true is a code smell and doesn't appear often enough to justify the extra complexity to support it.


AvaloniaUI support

AvaloniaUI become more and more popular with same api as wpf. Port for AvaloniaUI will be good.

https://github.com/AvaloniaUI/Avalonia.HtmlRenderer


fix: Allow colspan/rowspan options in <td>/<th> tags

:tada: This PR is included in version 3.20.16 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Please upgrade<EMAIL_ADDRESS>to 4.4.1

<EMAIL_ADDRESS>is obsolet and generates a warning about Node.js.
Please upgrade to 4.4.1 which is the current version.

Hey, that was pretty quick !!!
Thx a lot!


docs: readability tweaks to "Install" page

DO NOT MERGE!
Summary
Improve the readability of the Install page (revised for umbrella charts).  We did a quick merge of the basic material, knowing that it needed to be tweaked a bit.
While this PR was written, Mo created an abbreviated document that is much more appropriate.  This version is going to be used for some usability testing but should not be merged.  Instead, the plan is for me to create a separate "Installation tips and tricks" page that includes the content from this page that is not in the abbreviated installation doc.  When that is done, this PR will be closed.
Checks

[n/a] My PR fulfills the Definition of Done of the corresponding issue and not more (or parts if the issue is separated
into multiple PRs)
[x] I used descriptive commit messages to help reviewers understand my thought process
[ x I signed off all my commits according to the Developer Certificate of Origin (DCO)(
see Contribution Guide)
[x] My PR title is formatted according to the semantic PR conventions described in
the Contribution Guide
[x] My content follows the style guidelines of this project (YAMLLint, markdown-lint)
[n/a] I regenerated the auto-generated docs for Helm and the CRD documentation (if applicable)
[x] I have performed a self-review of my content including grammar and typo errors and also checked the rendered page
from the Netlify deploy preview
[x] My changes result in all-green PR checks (first-time contributors need to ask a maintainer to approve their test runs)

This PR is no longer relevant -- the useful bits were put in other PRs and I am closing this.


⚠ Bofrost.be has degraded performance

In 89a3017, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1443 ms

Resolved: Bofrost.be performance has improved in f5f76e2.


List available SPNs

Hi there
SPNs are a important component on windows that create impact on a successful authentication workflow when using Windows Integrated Authentication.  It Would be nice to Have a Feature to List all the SPNs.

hello @v-paulino , are you referring to something like  [KerberosConfigMgrIIS] https://github.com/SurajDixit/KerberosConfigMgrIIS)?
Do you want to have the information available in the logs that are zipped, or do you want a button that gives the info in the UI?

Its more useful to have it in the logs that are zipped to keep to current behavior of other information that is collected also. If possible we should store that under specific schema. That will help to implement automatic troubleshooting in the future. Despite overlapping with kerberosConfigMgrIIS features since log-catcher collects web.configs and certificates we can do similiar analysis in the future if we see that it will add value to that need.


[posix-app] fix using GNU readline on macOS

@jwhui I updated according to your suggestions. Also, I'm wondering if we should use readline by default.

I'm wondering if we should use readline by default.

Are you suggestiong to effectively have --with-readline=readline even when no such parameter is specified on ./configure? If so, I am fine with that.

@jwhui updated in `src/posix/Makefile-posix'


Server Error

Dear friend, I run the project on my server. Server console is running but I access IP address, it said that "Server is temporarily unavailable. The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache/2.4.18 (Ubuntu) Server at <IP_ADDRESS> Port 80"

Are you running this on nodejs?

https://github.com/muaz-khan/RTCMultiConnection-Server

Please share terminal logs when you execute the node server.js command.


Not enough memory ?

[Enter feedback here]
Windows Terminal Preview error as bellow

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

ID: ea274559-cd10-3e1b-6eb0-fd0133813fa0
Version Independent ID: d39d52d4-aec8-e187-06da-344635877a47
Content: Windows Terminal overview
Content Source: TerminalDocs/index.md
Service: terminal
GitHub Login: @cinnamon-msft
Microsoft Alias: cinnamon

Hi @shibowe - Try rebooting your machine and giving it another go.
I'm closing this as it does not appear to relate to any updates needed for the docs. If you continue to have an issue, please reopen and we can explore whether there is a solution that should be included in the troubleshooting guide.
Thanks! ~Matt


Spaghetti PR

This PR unfortunately introduces too many changes simultaneuously because these issues are coupled. I had started with fixing communication pipeline for static algorithms but the code was so poorly written that it opened up plenty of rabbitholes some of which includes -

Logging at every node
Asynchronous communication
Rewriting of communication APIs and fl.py to be compatible with the new communication style.
Typehinting into various parts of the code

Remaining issues to resolve before we merge this PR -

Add a flag for synchronous=True|False in the comm object. If it is True then the receive API will wait until the source has reached same training round as the destination.
Because current implementation is asynchronous, a few nodes typically leave the system earlier that causes communication to fail for other nodes. Therefore, there should be an initial handshake and a final bye that is synchronous in all situations to enforce consistency.
If the communication fails after retries then we should have a fallback mechanism. The current code simply tries to merge None with model weights resulting in an error. Ideally retry communication with other neighbors and if no one sends data then continue training on your local data.


Implement serialization groups

Informations
I would like to implement serialization groups like Symfony serializer  service.
Problem
I have an User class wich is my model for converter service and  my typeorm entity.
@Entity("users")
class User {
    @Property()
    email: string;

    @Property()
    @Column()
    username: string;

    @Enum(RoleEnum)
    @Column({
        type: 'enum',
        enum: RoleEnum,
        default: RoleEnum.User,
    })
    role: RoleEnum;
}

My user object for simple example.
User {
    email<EMAIL_ADDRESS>    username: "admin",
    role: "admin"
}

I would like my api return (and serialize) my user object like that.

route
JSON response

/users/:username/default
{ email<EMAIL_ADDRESS>username: "admin", role: "admin" }

/users/:username
{ username: "admin" }

/admin/users/:username
{ username: "admin", role: "admin" }

So actually to do that, i have to:

define 2 other class model for serialization (wich is redundant part of User Class)
specify those class model in @ReturnType decorator for that the converter service use those specific model to serialize / deserialize object.

class GetUserModel {
    @Property()
    username: string;
}

class GetAdminUserModel {
    @Property()
    username: string;

    @Enum(RoleEnum)
    role: RoleEnum;
}

class UserController {

    constructor(private readonly userService: UserService) {
    }

    @Get("/users/:username/default")
    private async getDefaultUser(@PathParams("username") username: string): Promise<User> {
         return this.userService.getOneByUsername(username);
    }

    @Get("/users/:username")
    @ReturnType({type: GetUserModel})
    private async getUser(@PathParams("username") username: string): Promise<GetUserModel> {
         return this.userService.getOneByUsername(username);
    }

    @Get("/admin/users/:username")
    @ReturnType({type: GetAdminUserModel})
    private async getAdminUser(@PathParams("username") username: string): Promise<GetAdminUserModel> {
         return this.userService.getOneByUsername(username);
    }

Solution: serialization/deserialization groups
The feature is to specify serialization/deserialization groups for model properties.
@Entity("users")
class User {
    @Property()
    @PrimaryGeneratedColumn()
    email: string;

    @Property({
       groups: ['user', 'admin-user']
    })
    // @Groups(['user', 'admin-user'])
    @Column()
    username: string;

    @Property({
       groups: ['admin-user']
    })
    // @Groups(['admin-user'])
    @Enum(RoleEnum)
    @Column({
        type: 'enum',
        enum: RoleEnum,
        default: RoleEnum.User,
    })
    role: RoleEnum;
}

And specify wich serialization group you would like to use in converter service for the returned object.
If group is specified, the converter serialize/deserialize only properties that have this group.
If no group is specified, the converter does what it currently does.
So, my controller is like that.
class UserController {

    constructor(private readonly userService: UserService) {
    }

    @Get("/users/:username/default")
    private async getDefaultUser(@PathParams("username") username: string): Promise<User> {
         return this.userService.getOneByUsername(username);
    }

    @Get("/users/:username")
    @ReturnType({
        group: 'user'
    })
    private async getUser(@PathParams("username") username: string): Promise<User> {
         return this.userService.getOneByUsername(username);
    }

    @Get("/admin/users/:username")
    @ReturnType({
        group: 'admin-user'
    })
  //  @ReturnObject({
  //      converter: {
  //            group: 'admin-user'
  //      }
  //  })
    private async getAdminUser(@PathParams("username") username: string): Promise<User> {
        return this.userService.getOneByUsername(username);
    }
}

And i can specify serialization/deserialization group in converter service like that.
const user: User = {
    email<EMAIL_ADDRESS>    username: "admin",
    role: "admin"
}

const defaultUserObject = this.converterService.serialize(user, {
    type: User,
})
// console.log(defaultUserObject)
// {
//     email<EMAIL_ADDRESS>//     username: "admin",
//     role: "admin"
// }

const getUserObject = this.converterService.serialize(user, {
    type: User,
    group: 'user'
})
// console.log(getUserObject)
// {
//     username: "admin",
// }

 const getAdminUserObject = this.converterService.serialize(user, {
     type: User,
     group: 'user-admin'
 })
 // console.log(getAdminUserObject)
 // {
 //     username: "admin",
 //     role: "admin"
 // }

const object = {
     email<EMAIL_ADDRESS>     username: "admin",
     role: "admin"
 }

const defaultUser =  this.converterService.deserialize(user, User);
 // console.log(defaultUserObject)
 // User {
 //     email<EMAIL_ADDRESS> //     username: "admin",
 //     role: "admin"
 // }

const getUser =  this.converterService.deserialize(user, User, null, {
     group: 'user'
});
 // console.log(getUser)
 // User {
 //     username: "admin",
 // }

const getUserAdmin =  this.converterService.deserialize(user, User, null, {
     group: 'user-admin'
});
// console.log(getUser)
// User {
//     username: "admin",
//     role: "admin"
// }

Use with route decorators.
class UserController {

  @Post("/")
  @ReturnType({
      group: 'user'
  })
  async postUser( @Group("user-admin") @BodyParams() user: User): Promise<Person> {
    console.log(user); // will be deserialized according the group 'user-admin'.
    // User {
    //     username: "admin",
    //     role: "admin"
    // }

    return user; // will be serialized according the group 'user'.
  }
  // {
  //     username: "admin",
  // }
}

Note
The syntaxe is just an example to introduce the "serialization groups" feature. i'm not attach to the syntaxe but i'm attach to this feature. if you agree to implement this feature, i can try to do it myself.
But for now, what do you think about it ?
(i'm sorry for my bad english)
Alexis Mourlanne

Hello @amourlanne
This feature will complexify the converterService I think and this is a very specific usecase.
Why don't you use the UseAfter decorator and use a middleware to change the response format ?
class Controller {
   @Get("/users/:username/default")
   @UseAfter(GroupMiddleware)                           // <can be wrapped into
   @StoreSet(GroupMiddleware,  {group: 'user'}) // his own decorator>
    private async getDefaultUser(@PathParams("username") username: string): Promise<User> {
         return this.userService.getOneByUsername(username);
    }
}

Create the middleware and his decorator (tsed generate decorator - Select Ts.ED middleware and his decorator - cli v1.10.1):
import {applyDecorators, StoreSet} from "@tsed/core";
import {Middleware, UseAfter, Context} from "@tsed/common";

export interface IGroupOptions {
  group: string
}

@Middleware()
class GroupMiddleware {
  use(@Context() context: Context) {
      const {group} = context.endpoint.get(GroupMiddleware)
      const data = context.data

      switch(group) {
         case "user":
             /// implement stuff
      }

      return data
  }
}

export function Group(options: IGroupOptions): MethodDecorator {
  return applyDecorators(
   StoreSet(GroupMiddleware, options),
   UseAfter(GroupMiddleware)
  );
}

With this example your are free to implement the right mapping :)
See you
Romain

Also you can look on Interceptor feature :)

Hello,
To introduce group serialization, I took a very simple example. But in reallity, the class diagram is more like that and API is more like that
I take a little bit more complex example.
Example
Entity
We have 4 entities (more than 60 in reallity)
// @Entity("groups")
export class Group {

    @Property()
    id: string;

    @Property()
    name: string;

    @Property()
    creator?: User;

    @Property()
    publications?: Publication[];

    @Property()
    userGroups?: UserGroup[]
}

// @Entity("publications")
export class Publication {

    @Property()
    id: string;

    @Property()
    author?: User;

    @Property()
    group?: Group;

}

// @Entity("publications")
export class User {

    @Property()
    id: string;

    @Property()
    name: string;

    @Property()
    publications?: Publication[];

    @Property()
    groups?: Group[];

    @Property()
    userGroups?: UserGroup[];
}

// @Entity("user_groups")
// @Unique(['group', 'user'])
export class UserGroup {

    @Property()
    group: Group;

    @Property()
    role: string;

    @Property()
    user: User;
}

Example data
I use this simple data implementation for my example
import {User} from "./Entities/example/User";
import {Publication} from "./Entities/example/Publication";
import {Group} from "./Entities/example/Group";
import {UserGroup} from "./Entities/example/UserGroup";

const user1: User = {
    id: "user1",
    name: "User 1"
}

const group1: Group = {
    id: "group1",
    name: "Group 1"
}

// user1 create the group 1
user1.groups = [group1]
group1.creator = user1;

// user1 join the group1
const userGroup1: UserGroup = {
    user: user1,
    group: group1,
    role: "admin"
}

user1.userGroups = [userGroup1];
group1.userGroups = [userGroup1];

// user1 publish in group 1
const publication1: Publication = {
    id: "publication1",
    author: user1,
    group: group1
}

user1.publications = [publication1];
group1.publications = [publication1];

// console.log(group1);

// Circular ref like lazy loading ORM relations
// <ref *1> {
//     id: 'group1',
//     creator: {
//         id: 'user1',
//         name: 'user 1',
//         groups: [ [Circular *1] ],
//         userGroups: [ [Object] ],
//         publications: [ [Object] ]
//     },
//     userGroups: [ { user: [Object], group: [Circular *1], role: 'admin' } ],
//     publications: [ { id: 'publication1', author: [Object], group: [Circular *1] } ]

export default {
    user1,
    group1,
    publication1
}

Serialization
And i would like, this serialization:
getgroups: /exemple/groups return list of all groups serialized like:
    [] {
        name,
        creator: {
            id
        },
        userGroups: [] {
            user: {
                name
            }
        }
    }

getGroups: /exemple/groups/group1 return the group1 object serialized like:
    {
         id,
         name,
         creator:  {
             id,
             name
         },
         publications: [] {
             author: {
                 name
             }
         }
    }

But i probably would like other serialization for all other routes.
Actually
Custom models
I juste created 8 serialization models for every entity. 4 for getGroups serialization, 4 for getGroup serialization.
getGroup
export class GroupModel {

    @Property()
    id: string;

    @Property()
    name: string;

    @Property()
    creator?: CreatorUserModel /* User */;

    @Property()
    @PropertyType(PublicationsPublicationModel)
    publications?: PublicationsPublicationModel /* Publication[] */;

}

export class AuthorUserModel {

    @Property()
    name: string;

}

export class CreatorUserModel {

    @Property()
    id: string;

    @Property()
    name: string;

}

export class PublicationsPublicationModel {

    @Property()
    author?: AuthorUserModel /* User */;

}

getGroups
export class GroupModel {

    @Property()
    name: string;

    @Property()
    creator?: CreatorUserModel /* User */;

    @Property()
    @PropertyType(UserGroupsUserGroupModel)
    userGroups?: UserGroupsUserGroupModel[] /* UserGroup[] */;

}

export class CreatorUserModel {

    @Property()
    id: string;

}

export class UserGroupsUserGroupModel {

    @Property()
    user: UserGroupUserModel /* User */;
}

export class UserGroupUserModel {

    @Property()
    name: string;
}

Controller
And finally i have this controller:
const group1 = exampleData.group1;
const user1 = exampleData.user1;
const publication1 = exampleData.publication1;

@Controller("/example")
export class ExampleController {

    @Get("/groups")
    @ReturnType({
        type: GetGroupsGroupModel
    })
    private async getGroups() : Promise<GetGroupsGroupModel[]> {
        return [group1];
    }

    // getGroups/GroupModel[] {
    //     name,
    //     creator: getGroups/CreatorUserModel {
    //         id
    //     },
    //     userGroups: getGroups/UserGroupsUserGroupModel[] {
    //         user: getGroups/UserGroupsUserModel {
    //             name
    //         }
    //     }
    // }

    @Get("/groups/group1")
    @ReturnType({
        type: GetGroupGroupModel
    })
    private async getGroup1() : Promise<GetGroupGroupModel> {
        return group1;
    }

    // getGroup/GroupModel {
    //      id,
    //      name,
    //      creator: getGroup/CreatorUserModel {
    //          id,
    //          name
    //      },
    //      publications: getGroup/PublicationsPublicationModel[] {
    //          author: getgroup/AuthorUserModel {
    //              name
    //          }
    //      }
    // }
}

With serialization groups
Original models
// @Entity("groups")
export class Group {

    @Property()
    @Groups(['get-group'])
    id: string;

    @Property()
    @Groups(['get-group', 'get-groups'])
    name: string;

    @Property()
    @Groups(['get-group', 'get-groups'])
    creator?: User;

    @Property()
    @Groups(['get-group'])
    publications?: Publication[];

    @Property()
    @Groups(['get-groups'])
    userGroups?: UserGroup[]
}

// @Entity("publications")
export class Publication {

    @Property()
    id: string;

    @Property()
    @Groups(['get-group'])
    author?: User;

    @Property()
    group?: Group;

}

// @Entity("users")
export class User {

    @Property()
    @Groups(['get-group-creator', 'get-groups-creator'])
    id: string;

    @Property()
    @Groups(['get-group-creator', 'get-group-author', 'get-groups-user'])
    name: string;

    @Property()
    publications?: Publication[];

    @Property()
    groups?: Group[];

    @Property()
    userGroups?: UserGroup[];
}

// @Entity("user_groups")
// @Unique(['group', 'user'])
export class UserGroup {

    @Property()
    group: Group;

    @Property()
    role: string;

    @Property()
    @Groups(['get-groups'])
    user: User;
}

Simple Controller
const group1 = exampleData.group1;
const user1 = exampleData.user1;
const publication1 = exampleData.publication1;

@Controller("/example")
export class ExampleController {

    @Get("/groups")
    @ReturnObject({
        group: ["get-groups", "get-groups-creator", "get-groups-user"]
    })
    private async getGroups() : Promise<Group[]> {
        return [group1];
    }

    // Group:get-groups[] {
    //     name,
    //     creator: User:get-groups-creator {
    //         id
    //     },
    //     userGroups: UserGroup:get-groups[] {
    //         user: User:get-groups-user {
    //             name
    //         }
    //     }
    // }

    @Get("/groups/group1")
    @ReturnObject({
        groups: ["get-group", "get-group-creator", "get-group-author"]
    })
    private async getGroup1() : Promise<Group> {
        return group1;
    }

    // Group:get-group {
    //      id,
    //      name,
    //      creator: User:get-group-creator {
    //          id,
    //          name
    //      },
    //      publications: Publication:get-group[] {
    //          author: User:get-group-author {
    //              name
    //          }
    //      }
    // }
}

Conclusion
It's redundant to create interceptor or custom middleware with big "switch" for all routes and models.
I can create lots of model wich represent a part of original entity model entity, but it is verry redundant and verry complicated. Just for one entity (Group) in only 2 routes, I created 8 Models.
With serialization groups, no need more model.
In my example, I only show groups for serialization, but it also improve security in deserialization model, like submit data wich are a part of an entity.
For example, data to update user. If user send "user.role", this property must not be deserialized because user is not allowed to update is own role. But property is originaly present in user model.
If you are still not convinced of the usefulness of serialization groups, it is not serious, I would use different models.
Alexis

I agree with the request, my current solution is the same as what you have done. Creating another class with the necessary properties.
It would be similar to this:
https://github.com/typestack/class-transformer#using-groups-to-control-excluded-properties

Ok. I see :)
I have a time @amourlanne, let's go.
For the property decorator, I'll take your proposal:
class Model {
   @Groups('get-group-creator', 'get-group-author', 'get-groups-user')
   prop: string;
}

And for the endpoint decorator:
class Controller {
  @Get('/')
  @ReturnType(Model) // don't change this decorator because I work on the Ts.ED v6 (with big improvement for the schema and returned value declaration)
  @UseGroups('group1', 'group2')
  get(){
  }
}

Perfect, it looks good!

Have you been able to start the feature ? Otherwise, I can start it now :)

Hello @amourlanne
You can start the dev, but I'm afraid that you will have to redo your PR after the publication of the new packages @tsed/schema and @tsed/json-mapper.
These two packages will resolve a lot of issues over current JsonSchema and ConverterService. And these packages are independent from the @tsed/common package.
You can see packages here:
https://github.com/TypedProject/tsed/tree/feat-schema-json-mapper/packages/schema
https://github.com/TypedProject/tsed/tree/feat-schema-json-mapper/packages/json-mapper
The new decorator @Ignore support callback (https://github.com/TypedProject/tsed/blob/feat-schema-json-mapper/packages/schema/src/decorators/common/ignore.ts)
The new @tsed/schema is designed to support groups features and other futures request features.
Maybe the solution could be to start your feature from feat-schema-json-mapper branch. Right now, the work is in progress, and the two packages aren't used by @tsed/common. My work over JsonSchema and JsonMapper is done, but  not over OpenSpec some features about operations aren't implement and it's mandatory to stay ISO features with the current framework version.
So tell me what you prefer :)
See you

Hello @amourlanne,
Implement this story on v6 will be more easier rather than in v5. I propose to start the implementation in v6.
In v6, the serialization is managed by @tsed/json-mapper and @tsed/schema. @tsed/schema provide an Ignore decorator which accept a calback to determine when the props must be ignored or not (https://github.com/TypedProject/tsed/blob/alpha/packages/schema/src/decorators/common/ignore.ts#L64)
By using this decorator, we can ignore or keep props in the serialization/deserialization depending the context where the object is serialized.
The Ignore works, but the context declaration is missing (eg: UseGroups). Groups decorator can use the Ignore decorator to implement the expected behavior.
What do you think @amourlanne? If you have any question tell me :)
Romain

Solution
We will use minimatch module to resolve group configuration.
Model declaration
class Model {
   @Property('!creation') // allow negation by using "!"
   id: string;

   @Groups('group.summary')
   prop1: string;

  @Groups('group.extended')
  prop2: string;

  @Property()
  prop3: string;
}

Usage with Returns decorator
class Controller {
  @Get('/')
  @Returns(200, Model).Groups('group.*')  // allow wildcare *
  get(){
     return new Model({...}}
  }
}

Expected:
{
   id: 'id',
   prop1: 'prop1',
   prop2: 'prop2'
   prop3: 'prop3'
}

Usage with param decorator
class Controller {
  @Post('/')
  post(@BodyParams() @Groups('creation', '!group.extended') model: Model){
     console.log(model)
  }
}

expected:
{
    prop1: 'prop1',
    prop3: 'prop3'
}

Acceptance criteria

[ ] JsonMapper serialize and deserialize correctly the model according to the group configuration
[ ] JsonSchema are generated according the group configuration
[ ] Generated JsonSchema are cached
[ ] Groups are documented on the website

PR #1133

:tada: This issue has been resolved in version 6.14.0 :tada:
The release is available on:

v6.14.0
GitHub release

Your semantic-release bot :package::rocket:

Hello @amourlanne @mopcweb @chiqui3d
The groups decorator is available with v6.14.0. See https://tsed.io/docs/model.html#groups
:D

thanks


Preview/locomotion jump gems

Summary
Adds Jump Gems and Pinch Teleport examples and supporting code into Preview
Includes 3 scenes:

Teleportation Anchors : Both locomotion methods, user can only teleport to Anchors

Pinch Teleportation : Free teleportation using Pinch

Jump Gems Teleportation : Free teleportation using Jump Gems

Contributor Tasks
These tasks are for the merge request creator to tick off when creating a merge request.

[ ] Pair review with a member of the QA team.
[ ] Add any release testing considerations to the MR for the next release.
[ ] Consider any licensing/other legal implications for this MR e.g. notices required by any new libraries.
[ ] If this MR closes a Jira issue, make sure the fix version on the JIRA issue is set to the correct one.

Reviewer Tasks

[ ] Code reviewed.
[ ] Non-code assets e.g. Unity assets/scenes reviewed.
[ ] Checked and agree with release testing considerations added to MR for the next release.

Closes JIRA Issue
If this MR closes any JIRA issues list them below in the form Closes PROJECT-#

I guess the pinch to teleport doesn't have a 'both' for chirality

It's also a bit weird I can teleport onto the side of an object, but that's minor.

In general code looks OK for preview. Examples have some issues. 1.The Teleportation anchors level

Pinch to teleport assumes you are right handed, no left handed ray
Jump gem is placed on the inner side of my left arm (good), but on the outer side of my right arm, which feels wrong in terms of picking up the gem with my left hand.
It's a bit weird I can see the text on the sign at the teleport anchor destination from the opposite side (but can't read it because it's mirrored).

I we may be able to add both rays? also, the gem being in the wrong place is my bad, I have the fix for it locally now :)
I can look to block the text, though it's not trivial due to the way the UI renders

Jump gem is also on the wrong side of the right hand in the 3. example.

Jump gem is also on the wrong side of the right hand in the 3. example.

Yeah I defaulted both prefabs while I was changing them previously, the fix is in the prefab :)

@Greg-UL this PR has had testing in these areas:

Quest 2 + oculus runtime - Editor + build
Index + SteamVR runtime - Editor
OpenXR and LeapC tracking sources
Each example scene run through
Scene 1: teleport from one anchor to the other repeatedly
Scene 1: jump gems from either hand
Scene 1: cannot teleport elsewhere than Anchors
Scene 1: pinch teleport is right hand only
Scene 2: pinch teleport is right hand only
Scene 2: can hold the pinch and rotate the anchor to change teleported rotation
Scene 2: can only teleport to any surface (which includes the sides of objects in the example) cannot teleport to mid-air
Scene 3: jump gems from either hand
Scene 3: can only teleport to any surface (which includes the sides of objects in the example) cannot teleport to mid-air

@MattGrayUL that looks great and thanks for detailing the testing clearly.
From a functional aspect the only other things I tried that aren't listed above were some scenarios around occlusion and the ray.
Not that it's a big deal but it might be a nice touch to have the beam turn red for an interaction that isn't possible(mid air, or tracking lost mid pinch) and I thought it might be nice when the hand tracking is occluded to have the landing/destination circle turn red.
There was one issue I was getting with the pinch teleportation is that if you pinch and aim in the scene and then bring your arm out of your FoV then it will perform a teleport even though I haven't released the pinch.

As the refactor coming up is quite large and relates to those suggested areas, I think we will merge in the current state and pick up those types of improvements with the new structure :)


[webview] Physical keyboard arrow keys don't work on Android.

[x] I have already searched for the same problem

Environment

Technology
Version

Flutter version
3.3.7

Webview version
3.0.4

Android version
12

Device information:
Samsung Galaxy Tab S8，physical device.
Reproduction steps:
Run the sample (physical device with bluetooth keyboard).
Press left arrow key.
Actual results:
Physical keyboard arrow keys don't work, after that all the keys doesn't work.
flutter_inappwebview, webview_flutter have the same issue.

Codes
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: WebView(
        initialUrl: 'https://vscode.dev/',
      ),
    );
  }
}

Logs
[√] Flutter (Channel stable, 3.3.7, on Microsoft Windows [Version 10.0.22621.819], locale zh-CN)
    • Flutter version 3.3.7 on channel stable at C:\Users\Nawb\Documents\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e99c9c7cd9 (4 weeks ago), 2022-11-01 16:59:00 -0700
    • Engine revision 857bd6b74c
    • Dart version 2.18.4
    • DevTools version 2.15.0
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn
[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
• Android SDK at C:\Users\Nawb\AppData\Local\Android\Sdk
• Platform android-33, build-tools 33.0.0
• ANDROID_HOME = C:\Users\Nawb\AppData\Local\Android\Sdk
• ANDROID_SDK_ROOT = C:\Users\Nawb\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.6)
• Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
• Visual Studio Community 2022 version 17.2.32630.192
• Windows 10 SDK version 10.0.22000.0
[√] Android Studio (version 2021.2)
• Android Studio at C:\Program Files\Android\Android Studio
• 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.12+7-b1504.28-7817840)
[√] VS Code (version 1.73.1)
• VS Code at C:\Users\Nawb\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.53.20221101
[√] Connected device (3 available)
• Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22621.819]
• Chrome (web)      • chrome  • web-javascript • Google Chrome 107.0.5304.122
• Edge (web)        • edge    • web-javascript • Microsoft Edge 107.0.1418.62
[√] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!

Images

It's been a known issue for a long time. Relate to https://github.com/flutter/flutter/issues/74044 https://github.com/flutter/flutter/issues/102505 https://github.com/flutter/engine/pull/5324
https://github.com/flutter/flutter/issues/92314 https://github.com/flutter/flutter/issues/102505 https://github.com/flutter/flutter/issues/94441

It seems like FlutterView dispatchKeyEvent doesn't send data to PlatformView on Android.

Closing this in favor of https://github.com/flutter/flutter/issues/102505.
Please do not file new issues for issues that already exist.
Thank you


raftstore: combine Msg::Proposal and Msg::Apply into one msg

Signed-off-by: linning<EMAIL_ADDRESS>
What problem does this PR solve?
Issue Number: close #4375
What is changed and how it works?
What's Changed:
Combine Msg::Proposal and Msg::Apply into one message to reduce apply worker message.
Check List
Tests

Unit test

/bench

/bench

This PR changed so much code but is it worth doing that? The number of Proposal is not too large because it is only send by leader. I think if you want to optimize raftstore, you can pass RaftCmdRequest with Proposal together, which could avoid leader node decode data of Entry to RaftCmdRequest again and save allocation of small object.

This PR changed so much code but is it worth doing that?

Most code are changed to adjust the unit tests at apply.rs, besides that, there are actually not much code changed.

I think if you want to optimize raftstore, you can pass RaftCmdRequest with Proposal together, which could avoid leader node decode data of Entry to RaftCmdRequest again and save allocation of small object.

Sorry, I don't get it, could you describe more detail?

@NingLin-P  Emmm, I mean that this optimization is not obvious. But I reviewed code again and found it did not change too much code and most of them are in unit test.

/bench

@NingLin-P Please resolve conflicts.

/rebuild

/merge


Add scheduler.alpha.kubernetes.io/critical-pod annotation to all pods

Signed-off-by: Gary Brown<EMAIL_ADDRESS>

Do you have some resources about this annotation? The only page I could find in the docs is the following:
https://kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/#marking-add-on-as-critical
Two things caught my attention:

Critical pods are the ones that might cause the cluster to stop operating correctly, which I don't think is our case;
This annotation will be removed in 1.13/1.14. Is there a more long-term solution we should be using instead?

@jpkrohling This was added based on the comment https://github.com/istio/istio/pull/9508#issuecomment-435560389. Regarding a long term solution, we could follow Istio's lead and update the approach in the future.
We could also make it optional if would prefer?

I have nothing against it, but I have to admit that I don't fully understand the implications this would have for applications in highly constrained clusters. For instance, between running an application pod and a Jaeger pod, I would say that the application pod has precedence, while this annotation would tell the Kubernetes that Jaeger pods are more critical.

@jpkrohling Understand your concern - so either we could provide a parameter to configure, or just a generic "annotations" section that would be applied to all pods?
My preference would probably be a specific parameter (default true so only actually used in cases where may cause problems) - to avoid issues of knowing what pods are actually deployed and whether the annotation(s) should be applied to all. Thoughts?

or just a generic "annotations" section that would be applied to all pods

This would scale better, IMO.
I'm OK in merging this one for now, if you open an issue with the request.


publishVisibilityChange: then handler can lead to error

Within publishVisibilityChange a promise then-handler accesses a scope property, that might already have been deleted after destruction of the widget. We need a check here, if the scope and the respective property is still available.
if( !$scope || !$scope.model ) {
   return;
}

Implemented on master (v3.3.0) and release-3.2.x (v3.2.2)


Add ColorAxis component causes error in highcharts.js

Bug or Feature Request?
Bug
Description
Adding ColorAxis component causes error in highcharts.js  This in turn causes the chart not to render.
How to reproduce
Add a  component to a chart.  I tried with various props like min={0} max={10} and stops={[[0, '#00ff00'], [0.5, '#ffff00'], [1, '#ff0000']]}.  I get the same error every time "this[a] is undefined"
Live demo demonstrating bug
https://stackblitz.com/edit/react-mlvwri?file=src%2Fchart.js
Versions

React JSX Highcharts version: 4.3.1
Highcharts version: 9.2.2
React version: 17.0.2

You need to add coloraxis module first:
import addColorAxis from 'highcharts/modules/coloraxis';

addColorAxis(Highcharts);

Perfect, that worked!


Minor warnings at mxc_sys.h

I am receiving following warnings in the mxc_sys.h file, and this issue seems to be present in most microcontrollers.

mxc_sys.h:220:20: warning: function declaration isn't a prototype [-Wstrict-prototypes]
220 | static inline void _mxc_crit_get_state()

mxc_sys.h:351:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
351 | int MXC_SYS_RTCClockDisable();

Which GCC version are you compiling with?

arm-none-eabi-gcc.exe (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release)

Strange, -Wstrict-prototypes shouldn't be enabled by default...  I don't see the warning on my machine or any of the build auto-testers, but if I manually enable it I see tons of warnings on other functions as well.
Does the flag show up explicitly in a verbose build for you?  You can check with grep:
make distclean && make VERBOSE=1 | grep -- "-Wstrict-prototypes"

The fix is pretty trivial, we just need to add void to any functions with empty args.  i.e.
-static inline void _mxc_crit_get_state()
+static inline void _mxc_crit_get_state(void)

Just curious how/why you're seeing the flag enabled.

Yes, Jake, we are working on a Security project that will be integrated to Maxim SDK and we are using the -Wstrict-prototypes. I guess it will be nice to add void to functions with no args.


Null ref in PythonAnalyzerSession.Analyze

No reliable repro, happened in tests. Looks like _walker became null.
 System.NullReferenceException: Object reference not set to an instance of an object.
       at void Microsoft.Python.Analysis.Analyzer.PythonAnalyzerSession.Analyze(IDependencyChainNode<PythonAnalyzerEntry> node, AsyncCountdownEvent ace, Stopwatch stopWatch) in F:/PLS/src/Analysis/Ast/Impl/Analyzer/PythonAnalyzerSession.cs:line 290
       at Task Microsoft.Python.Analysis.Analyzer.PythonAnalyzerSession.StartAnalysis(IDependencyChainNode<PythonAnalyzerEntry> node, AsyncCountdownEvent ace, Stopwatch stopWatch)+() => { } in F:/PLS/src/Analysis/Ast/Impl/Analyzer/PythonAnalyzerSession.cs:line 243
       at void System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref Task currentTaskSlot)

https://github.com/microsoft/python-language-server/pull/1482 fixes this.


AUTH_TOKEN_CLASS not actually used in the views to hand out the tokens.

Which makes the setting a bit of a half feature, it would be nice to have this in case you want to add more information to the payload.

I see your point here.  I'll look into making this part of the API a bit more natural.

I'm leaning towards keeping things the way they are.
One of the problems with tying view behavior to the AUTH_TOKEN_CLASSES setting is that the structure of a token view response might be different depending on the token type being used.  For example, sliding token views will respond with a JSON payload which has one key, "token", whereas token pair views respond with two keys, "access" and "refresh".  If we had one view that just did something different depending on that setting, it's hard for me to imagine an elegant way that the view would choose what to do.  So I'm not too keen on this idea.
An alternative, I suppose, would be to somehow automatically configure the token view URLs depending on the AUTH_TOKEN_CLASSES setting.  But what if someone wanted to customize the URLs?  I think that would be a pretty common occurrence.  So I feel like that's not a viable option either.
Another issue is that the suggestion goes against one of the design goals I had for Simple JWT which is that I wanted to lessen the impact that settings variables have on the behavior of the library.  Currently, the AUTH_TOKEN_CLASSES setting is really just a convenient way to modify the behavior of the JWTAuthentication.get_validated_token method.  Anyone digging under the hood will see this pretty easily.  If we tied the value of AUTH_TOKEN_CLASSES to even more parts of the library, it would be harder for library users to understand the impact of changing its value.  This is never good in a security context.
Anyway, those are my main thoughts on it.  I'll go ahead and close the issue.  If you disagree or have anything more to add, feel free to respond and re-open the issue.

Sure, but then I guess we need an easier way to extend the token class being used to change the payload.
Maybe a callback method that is used in the for_user method to add extra context?
Now you have to overwrite the view, to overwrite the serializer to overwrite the Token class being used, which seems a bit much.

I hadn't actually considered the problem of adding extra fields to the payload (even though that was in your original comment).  Sorry for overlooking that.  I'll re-open this until that issue is addressed.

Easiest would be to add a function that takes the token as parameter and return value.
Put a reference to it in the settings and add it to the IMPORT_STRINGS.
Then use it at the bottom of the for_user method.

Yeah that's definitely something I could do.  Honestly, I've always had a bit of an aversion to that style of customizing a library's behavior.  If possible, I'd like to find a way to do this that works by taking a more traditional, object-oriented approach.  Haven't quite figured out how that would look just yet.

Here's the solution I've come up with: 448fb9717538b7d42e826ceb870d517be740bbca.  It's not ideal in the sense that it requires the subclassing of two classes.  But I think I prefer it since it's simply an object-oriented enhancement of the existing classes.

What about separate methods for get_access_token and get_refresh_token. My refresh tokens are very bloated with data that belongs only in the access token, but since I can't separate them they are included in both right now.


Enhancement: Show Published Date in Page title

Priority
(Low) Something is a little off
Description
In SharePoint Modern Page we have a feature to display published date in page title to achieve this currently there is no parameter available in spo page set
Steps to reproduce
Run the command
m365 spo page set
to set the page title to display published date in title
Expected results
A boolean parameter named ShowPublishDate to set display the published date in title of the page
Actual results
No parameter available
Diagnostics
No response
CLI for Microsoft 365 version
6.11.0
nodejs version
18.17.1
Operating system (environment)
macOS
Shell
zsh
cli doctor
No response
Additional Info
No response

Hi @kunj-sangani, thanks for bringing this up! Seems like a good idea with which we could enhance the CLI in this area.
Well need to check if this is exposed in the API. Ill mark it for research.

It's technically possible by setting the showPublishDate property to true. The showPublishDate property is part of the properties property of the Title area object in the layoutWebpartsContent array object property which is provided to the body of the SavePage or SavePageAsDraft api.
The Title area object is defined with the ID cbe7b0a9-3504-44dd-a3a3-0e5cacd07788
The challenge here will be in the fact that layoutWebpartsContent is an array object, formatted as a string.
Example:
POST https://contoso.sharepoint.com/_api/SitePages/Pages(GUID)/SavePage`

Body:
{
    "__metadata": {
        "type": "SP.Publishing.SitePage"
    },
    "LayoutWebpartsContent": [
        {
            "id": "cbe7b0a9-3504-44dd-a3a3-0e5cacd07788",
            "instanceId": "cbe7b0a9-3504-44dd-a3a3-0e5cacd07788",
            "title": "Title area",
            "description": "Title Region Description",
            "audiences": [],
            "serverProcessedContent": {
                "htmlStrings": {},
                "searchablePlainTexts": {},
                "imageSources": {},
                "links": {}
            },
            "dataVersion": "1.4",
            "properties": {
                "title": "THE PAGE TITLE",
                "imageSourceType": 4,
                "layoutType": "FullWidthImage",
                "textAlignment": "Left",
                "showTopicHeader": false,
                "showPublishDate": true,
                "topicHeader": "",
                "enableGradientEffect": true,
                "isDecorative": true,
                "authors": [
                    {
                        "id"<EMAIL_ADDRESS>                        "upn"<EMAIL_ADDRESS>                        "email"<EMAIL_ADDRESS>                        "name": "John Doe",
                        "role": ""
                    }
                ],
                "authorByline": [
<EMAIL_ADDRESS>                ],
                "hasTitleBeenCommitted": true
            },
            "containsDynamicDataSource": false,
            "reservedHeight": 228
        }
    ],
    "AuthorByline": [
<EMAIL_ADDRESS>    ],
    "TopicHeader": "",
    "BannerImageUrl": "/_layouts/15/images/sitepagethumbnail.png",
    "CanvasContent1": "[{...]",
    "Title": "THE PAGE TITLE"
}

The challenge here will be in the fact that layoutWebpartsContent is an array object, formatted as a string.

Hi @nicodecleyre, so we could parse the array, add the property and stringify it again?
We are using the api you are mentioning, so in principe it should not be very hard to add this.

The challenge here will be in the fact that layoutWebpartsContent is an array object, formatted as a string.

Hi @nicodecleyre, so we could parse the array, add the property and stringify it again?

Not add it, but change it from false to true.
You're welcome, hopefully my research can contribute to a solution here 👍

It certainly does!


move GenesisKey in testcontainers to @defichain/jellyfish-network

What kind of PR is this?:

/kind refactor
What this PR does / why we need it:
Move RegTestGenesisKey into @defichain/jellyfish-network so that it can be used without importing the entire testcontainers tooling.

I felt it is actually more appropriate to reside in test/jellyfish-test 😅

I thought about but, jellyfish-testing imports testcontainers eventually 😅. In env such as the playground module where we are not using testcontainers those deps are unnecessary.


Include the transcripts session data in the autosave state

What do we need to save? The recording_state.sessionId in glkote.js, I suppose. Do we also need label and format?

I have no idea at all sorry.

No, it's fine, the questions were as much for myself as for you.

Pretty sure all you need to do is save and restore the session id. That's what I'm now doing in AsyncGlk. More could be stored, but those other variables are normally obtained from the HTML itself, so if they're removed then it's probably because the person doesn't want transcripts any more.

Does https://github.com/erkyrath/glkote/commit/311c1a858362dfe48ec070db0286595939f51eb7 look right?

Yeah that looks right to me. You might also like to add a log saying you're using the autorestored session, because the log that it makes for the initial session is not longer correct.

Done. Thanks.


Rebuild world kd-tree accelerator to use the core.math kd-tree.

A new, general kd-tree object was developed for the Mesh primitive. This version is more highly optimised than the kd-tree previously developed for the world accelerator. Unifying the world and mesh kd-trees will reduce code duplication.

Closed by ebafa6988a5927518ce68fd6dff0dce11ff111f3


feat: norm_num for Int.ceil

Long ago I tried writing this in https://github.com/leanprover-community/mathlib3/pull/16502 for Lean 3.

bors merge


Use Two trait in the code

This PR updates the codebase (specially tests) to use the Two trait for field elements.

I guess two() is not as frequently used as two_pow(), which does save some space, but I agree we can leave it unmerged at least for now 👍🏻

my 2 cents is that the more helpers we introduce, the harder it is to learn the codebase


[FEATURE] Max operations per run

Is your feature request related to a problem? Please describe.
Running the action is a bit of a gamble on the rate limit, since we can only control it by the number of issues, it's unclear how many operations will use.
Describe the solution you'd like
Same as stalebot for PRs: "operations-per-run" to be respected by the action and stop when reached (or close to, as to not leave half-done things).
Describe alternatives you've considered
Utilizing the number the 'max-issues', but that doesn't achieve the same thing.
Additional context
Add any other context or screenshots about the feature request here.

I have exactly the same issue. I introduced the action in a repository that had 400+ branches and we often reach the GitHub API rate limit 😬 .

There is a rate limit check in place to exit if the action consumes 95% of your quota. Have you found this is not working? Or are you looking for a more configurable limit? I could make that percentage an input to accomplish this.

https://github.com/crs-k/stale-branches/blob/c46e743c734383097c98ed416499b4ff1cd03d85/src/stale-branches.ts#L46
for reference

@crs-k, thanks for sharing the reference, and good to hear we have such limits. I didn't know the error was coming from the Action itself but rather from the GH API.
I think the problem then is we set the run as failed.
Shouldn't we instead just stop running without producing any errors? If we check the github.com/actions/stale (which I personally also use together with crs-k/stale-branches), specifically the operations-per-run settings, if the limit is reached the action simply stops running without any error. I think we should do the same here.

After looking this over, I still prefer the percentage usage check on the rate limit. Since different types of accounts will have an extreme range of operations in their rate limit, defaulting this would be difficult, where the percentage check works regardless.

@crs-k I wasn't challenging the current settings we have at the moment, but rather the way the limit is reported.
If you think this is unrelated to the current issue, I can open another one. But I still don't think we should fail the run because the limit was reached.


Feat: make lxc control socket unique per container

Is your feature request related to a problem? Please describe.
If multiple stacker instances are invoked for the same tag/target, they may step on each other since the lxc control socket is not unique per container.
Describe the solution you'd like
Make the lxc control socket unique per container.
Describe alternatives you've considered
No response
Additional context
No response

note that the simplest way to do this is probably to make the container name used for a build include some randomness.
lxc uses the lxcpath and container name to name the control socket, and nothing outside of stacker really cares what the container name is.
however for the lxcpath, stacker uses the --roots-dir argument - since this comes from the user, uniquifying it might be slightly more involved. (we could make a unique subdir, but we'd have to thread that through the stacker code)
How does it happen that two stackers use the same roots-dir argument but shouldn't conflict?
in some cases, concurrent runs of stacker on the same host might have the same path for the roots-dir arg, even though they aren't actually sharing it - e.g. if they are running in separate mount ns's.


SVG: 'FATAL ERROR: JavaScript heap out of memory'

Steps to reproduce (file has 60MB - can not be attached to this issue):
http://doppelbauer.name/FatalProcessOutOfMemory.pdf
npm install
gulp dist-install
node examples/node/pdf2svg.js /tmp/FatalProcessOutOfMemory.pdf

Console (simplified):
# Document Loaded
Number of Pages: 302

# Page 1
Size: 793x594

Warning: Unimplemented operator dependency

[...snip...]

# Page 128
Size: 793x594

Warning: Unimplemented operator dependency

<--- Last few GCs --->

   81662 ms: Mark-sweep 1389.1 (1431.5) -> 1388.7 (1432.5) MB, 66.2 / 0.0 ms [allocation failure] [GC in old space requested].
   81735 ms: Mark-sweep 1388.7 (1432.5) -> 1388.7 (1399.5) MB, 73.6 / 0.0 ms [last resort gc].
   81797 ms: Mark-sweep 1388.7 (1399.5) -> 1388.7 (1399.5) MB, 62.1 / 0.0 ms [last resort gc].

<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x12951c0cfb39 <JS Object>
    1: xmlEncode [/tmp/pdf.js/examples/node/domstubs.js:~4] [pc=0xfd18a29a38f] (this=0x23692a476751 <JS Global Object>,s=0x25e56998d669 <Very long string[5286062]>)
    2: setAttributeNS(aka DOMElement_setAttributeNS) [/tmp/pdf.js/examples/node/domstubs.js:~80] [pc=0xfd18a2416f3] (this=0x25e56998e911 <a DOMElement with map 0x3340bbd0b479>,NS=0x2c0bba00f919 <String[28]: http://www.w3.org/1999/xl...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [node]
 2: 0x10b835c [node]
 3: v8::Utils::ReportApiFailure(char const*, char const*) [node]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [node]
 5: v8::internal::Factory::NewRawOneByteString(int, v8::internal::PretenureFlag) [node]
 6: v8::internal::String::SlowFlatten(v8::internal::Handle<v8::internal::ConsString>, v8::internal::PretenureFlag) [node]
 7: v8::internal::String::Flatten(v8::internal::Handle<v8::internal::String>, v8::internal::PretenureFlag) [node]
 8: v8::internal::Runtime_StringCharCodeAtRT(int, v8::internal::Object**, v8::internal::Isolate*) [node]
 9: 0xfd189f079a7

This issue has nothing to do with the SVG backend of PDF.js, but with the inefficient example.
I have submitted a PR to fix the immediate memory efficiency issue in the example at #8540..


Meta: Add an always option to features.add()

What this PR does
Adds the required variable from https://github.com/sindresorhus/refined-github/issues/4008#issuecomment-812843149 as the always variable. Also move negative excludes to their own list of always tests.

https://github.com/sindresorhus/refined-github/blob/936eedbb0bb37a30fc44a2cc7e5f3af31f24a3fc/source/features/fork-source-link-same-view.tsx#L24-L32
Could be
	required: [ // name TBD
		pageDetect.isForkedRepo
	],
	include: [
		pageDetect.isSingleFile,
		pageDetect.isRepoTree,
		pageDetect.isEditingFile
	],
	exclude: [
		pageDetect.isRepoRoot
	],

Side note: https://github.com/sindresorhus/refined-github/pull/4797/files#r711719028

I will be changing all the instances of negative exclusions to their own list of always tests, until then, the PR will stay a draft. Please do review the changes I made to source/features/index.ts while adding the always test though.

@gamemaker1 please lint before commiting thanks

Sorry about that I usually don't use semicolons, so the linter keeps failing. Maybe I should set a pre-commit hook for that 😅

Thanks for the PR! Imo required is clearer than always, so I'd prefer the first one. Just my opinion though.

Thanks for the PR! Imo required is clearer than always, so I'd prefer the first one. Just my opinion though.

Ok, sure I'll change it to required.

Thanks for the PR! Imo required is clearer than always, so I'd prefer the first one. Just my opinion though.

Agreed, but is it clear that every filter must be true? Is there anything better? In essence we have:

every
any – include
none – exclude

But I don't know if they make sense on their own

Also keep in mind that we have a special handling of is404 in features/index.tsx, so make sure that's updated if necessary.

asLongAs

👍

Changed always to asLongAs

I think I got all of them, let me know if I missed any!

Added a couple of tests, let me know if and which more tests I should add.

Let's move these defaults to the new helper function:
https://github.com/sindresorhus/refined-github/pull/4800/files#diff-cb1dafea7a9c68c5c2ebb2d56f749b3506c13f7d26feeaf56c86521b25c60358R222-R224
Once you remove the = [] from there, I think you'll only need to fix the 404 check line a bit later, from include.includes to include?.includes

Hmmm.. you can't specify a type and a default value in an object

Yay, checks pass! Thanks @fregante!
Any more changes needed?

Please also add this to the contributing.md

Done!

Thank you Vedant! It works!


If you reduce the size of the cluster and the node is the master, what will happen?

I was wondering what actions would be triggered if the cluster master node was shrinking if it was a large numbered node after multiple failures. I don't seem to find any special operations? Will you remove the current master and let it fail over

If the node that shrinks in size is the master role, the cluster will fail over to a new master.


Cross-browser copy

Current data table copy to clipboard functionality works only in Chrome. Investigate cross-browser solutions to see if we can make this functionality more widely usable.

Ended up using this library. Haven't tested on other browsers but seems legit.

Done!


load 3D object issue

i tried to load on click the cube like what i found in the documentation but the texture was not clear

@MalekBEKRI97 , thanks for creating an issue!
Do you mean the texture can't be seen, even though you applied it to the cube?
Do you have some demo / code snippet I can try?

Yes, even i Added the cube on click it doesn’t show the texture , i’ll send you the hole test project it’s similar to the tutorial documentation , and thank you in advance
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: Jonathan @.>
Sent: dimanche 25 juillet 2021 21:13
To: @.>
Cc: Malek BEKRI @.>; @.>
Subject: Re: [heremaps/harp.gl] load 3D object issue (#2246)
@MalekBEKRI97https://github.com/MalekBEKRI97 , thanks for creating an issue!
Do you mean the texture can't be seen, even though you applied it to the cube?
Do you have some demo / code snippet I can try?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/heremaps/harp.gl/issues/2246#issuecomment-886252051, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APSTNCMAB7RLXE7V4MRVY43TZRV7RANCNFSM5A6VXQ3A.

harp-map.zip

@MalekBEKRI97
I tried your example, I see the code that adds the cube:
 canvas.onclick = evt => {
   //Create the three.js cube
   const geometry = new THREE.BoxGeometry(100, 100, 100);
   const material = new THREE.MeshStandardMaterial({ color: 0x00ff00fe });
   const cube = new THREE.Mesh(geometry, material);
   cube.renderOrder = 100000;

   //Get the position of the click
   const geoPosition = map.getGeoCoordinatesAt(evt.pageX, evt.pageY);
   cube.geoPosition = geoPosition;

   //Add object to the map
   map.mapAnchors.add(cube);
   map.update();
}

But I don't see any code which adds a texture to the cube.
Are you referring to textures on the cube or on the buildings?

i mean the color of the cube for example "const material = new THREE.MeshStandardMaterial({ color: 0x00ff00fe })" it's not visible in the all sides

thanks @MalekBEKRI97
Yes, I can reproduce, I tried removing the code that adds all {{fbx|obj}} files, but keep the code to place the boxes and they are rendered correctly, i.e. without the models, I get the cubes looking solid pink, quite strange!
It seems something weird goes on when loading the models. I don't quite know what the problem is... I would have to look further but I don't have the time to look now sorry. Perhaps you can take a look?

yes thank you , i will try again and look for other solutions and thank you again or your time

One think you can look at is what lights are in the scene? Maybe there are too many being added?

@MalekBEKRI97 , I read that fbx can export lights. Best fix your models to not contain any lights.

i tried now to add some materiel and wireframe to the fbx , and i get a better view , and also while moving around i see the lights like you said

@MalekBEKRI97 , is there anything that I can help you with? Did you find the solution?

@MalekBEKRI97 , will close this issue, and please re-open if you need further help.


Prepared statements

Does this package support preparing statements like drivers in other languages for scylla? for e.g java: https://java-driver.docs.scylladb.com/scylla-3.7.2.x/manual/statements/prepared
EDIT: I am talking about in both cases: queries generated by the ORM and string queries executed using session.ExecStmt

GocqlX uses gocql underneath and gocql automatically prepares DML queries (SELECT/INSERT/UPDATE/DELETE/BATCH statements) and maintains a cache of prepared statements (documentation: https://pkg.go.dev/github.com/gocql/gocql#hdr-Prepared_statements).


Sprite.prototype.destroy is overwritten

by Sprite.prototype = Object.create(...) 2 lines after. So Sprite.prototype.destroy is undefined.
EDIT: and btw Container.prototype.destroy.call(this); also fail because Container doesn't have a destroy method.

Thanks, all fixed now :)

You rock!


fix: add new Windows docker.exe location

See https://github.com/docker/for-win/issues/7898
See https://github.com/adobe/aio-cli-plugin-app/issues/304

Description
The Windows docker.exe location has been changed, so the openwhisk.jar will fail to run since the search locations are hard-coded. This PR adds the new path to the search paths.
My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[X] General tooling
[ ] Documentation

Types of changes

[X] Bug fix (generally a non-breaking change which closes an issue).
[ ] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[X] I signed an Apache CLA.
[ ] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@ef55353). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #4991   +/-   ##
=========================================
  Coverage          ?   76.31%
=========================================
  Files             ?      202
  Lines             ?     9802
  Branches          ?      400
=========================================
  Hits              ?     7480
  Misses            ?     2322
  Partials          ?        0

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 ef55353...66f85aa. Read the comment docs.

The tests pass now (I fixed the Scala formatting).
For reference for others, to fix Scala formatting issues:
./gradlew checkScalaFmt
./gradelw scalaFmt


Retip does not work on mobile browser

If I use a mobile browser and web wallet, then retip of posts from the superhero feed will not work:

same on product.

fixed in https://github.com/aeternity/superhero-wallet/pull/1225

fixed in #1225


[WIP] Use StackNavigator for ReportScreen to fix browser history

Details
Rough WIP / experiment that attempts to fix the issue of browser history not working correctly on web. we can't push new entries onto the browser history stack because we are navigating with replace and the screen we want to push is a drawer screen.
There has some problems still and ideally there is a better solution.
Fixed Issues
Fixes GH_LINK
Tests

QA Steps

Tested On

[ ] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

Closing this PR in favor of another idea here -> https://github.com/Expensify/Expensify.cash/pull/2404


Error while running text_classification*

Hi,
I'm trying to run the text_classification examples and I get the following error.
TypeError: Input 'values' of 'HistogramSummary' Op has type int64 that does not match expected type of float32.
The stack trace is below:
Traceback (most recent call last):
File "text_classification.py", line 82, in
classifier.fit(X_train, y_train, logdir='/tmp/tf_examples/word_rnn')
File "/usr/local/lib/python2.7/site-packages/skflow/estimators/base.py", line 186, in fit
self._setup_training()
File "/usr/local/lib/python2.7/site-packages/skflow/estimators/base.py", line 119, in _setup_training
tf.histogram_summary("X", self._inp)
File "/usr/local/lib/python2.7/site-packages/tensorflow/python/ops/summary_ops.py", line 39, in histogram_summary
tag=tag, values=values, name=scope)
File "/usr/local/lib/python2.7/site-packages/tensorflow/python/ops/gen_summary_ops.py", line 34, in _histogram_summary
name=name)
File "/usr/local/lib/python2.7/site-packages/tensorflow/python/ops/op_def_library.py", line 405, in apply_op
(prefix, types_lib.as_dtype(input_arg.type).name))
TypeError: Input 'values' of 'HistogramSummary' Op has type int64 that does not match expected type of float32.
Am I doing something wrong? I installed tensorflow and skflow as mentioned in the medium tutorial.

Hi,
Weirdly I don't get this error, but I've updated histogram addition only for float.
Please try with the current master if it now works for you. Let me know if it works now.

Hi,
It works now. Thanks for the very prompt response.


Failing to validate Google reCaptcha

Describe the bug
Signing up new users is failing to validate the captcha
To Reproduce from Switcher Management
Steps to reproduce the behavior:

Go to Sign Up
Register new user and click Create

Expected behavior
Register new account

Fixed deployment resources with updated secret


Revert "[5.7]Update incremental build hash to encode option arguments and ordering"

Reverts apple/swift-driver#1130
This was merged into the release branch prematurely

@swift-ci please test


Support for pre-commit reviews

How do you plan to support this? Submitting diff files?

Right now, I really don't know. I need to look at available solution and how others software (like Phabricator) do.

Phabricator has a command line used to submitted diffs. Otherwise it also accepts pasted/uploaded diff files if I'm not mistaken.


adding one way binding simulation

This article describes a symbol to allow for one way data binding: http://angularjs.blogspot.com/2016/02/angular-150-ennoblement-facilitation.html
Trying this resulted in this issue: https://github.com/toddmotto/angular-component/issues/14
My solution shims this feature by using the '@' notation to simulate one way data binding.

Great idea - though I'm just getting a single value rendering from this, if we included this it should mimic the behaviour in the 1.5 stable release.
Component polyfill + your shim: https://jsfiddle.net/toddmotto/ohrnjbn2
Stable release: https://jsfiddle.net/toddmotto/wauana12
They behave quite differently right now :) any thoughts?

ah, right. the data isnt bound in any direction.

how about setting up a watcher within the component then calling the scope value function again to get the new value?

i guess this should be done instead: https://github.com/angular/angular.js/blob/92374f9633d6121b115d77c10248e40e1f4f2aa1/src/ng/compile.js#L3061

+1 Would be amazing to backfill  one way data binding to < 1.5.
thanks!

this solution causes "this" in the controller to evaluate to the window global

@mrichard @vanceingalls Can you guys help out? I've just added support for one-way data flow and $onChanges: https://github.com/toddmotto/angular-component/issues/22


normalizr is being required, but not used or listed in dependencies

This line: https://github.com/agraboso/redux-api-middleware/blob/master/src/validateRSAA.js#L2 is requiring normalizr, but it's not listed as a dependency anywhere, so it blows up if you haven't installed normalizr in your app.
I would PR, but I seem to be unable to run npm install in this repo at the moment. Computers!

I forgot to delete that line when moving to [CALL_API].transform. normalizr is required as a dev dependency, so test were passing.


Page listing all open help tickets.

Limit to Field manager, maybe supervisor?

@jSylvestre Can this one be closed?

@sprucely I don't think we have this. But maybe change to a question and or V2?

Maybe we do?
https://harvest-test.azurewebsites.net/ticket/mine


Blog post date cut off horizontally

The date line of blog posts is cut in half horizontally.
Checked in Firefox 110.0 and Brave 1.48.164

From this commit: https://github.com/11ty/11ty-website/commit/9208ffabafbf5d426663e3c1a9c18abbbea39927

Fixed this by migrating to flex luthor https://flex-luthor.zachleat.dev/
Thank you!


GT_Encoder validated against training dataset

Hi,
looking at train_valid_inference_main.py (lines 131-132), GT_Encoder training is validated against training dataset instead of validation dataset (that has been commented out). Why have you make this choice?
Thanks

Because our gt encoder is to "represent" the ground truth masks in
high-dimensional space by "overfitting" them. That validation code is
copied from the segmentation function, so we commented it out and validate
the gt encoder on training set.
On Wed, Sep 14, 2022 at 7:53 AM Ozwol @.***> wrote:

Hi,
looking at train_valid_inference_main.py
https://github.com/xuebinqin/DIS/blob/main/IS-Net/train_valid_inference_main.py#L131
(lines 131-132), GT_Encoder training is validated against training dataset
instead of validation dataset (that has been commented out). Why have you
make this choice?
Thanks
—
Reply to this email directly, view it on GitHub
https://github.com/xuebinqin/DIS/issues/45, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSGORNHZ7PT2CF3VYDPDC3V6HRHDANCNFSM6AAAAAAQMP5K2Y
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Xuebin Qin
PhD
Department of Computing Science
University of Alberta, Edmonton, AB, Canada
Homepage: https://xuebinqin.github.io/


error1

Description
What steps will reproduce the problem?

What is the expected output? What do you see instead?
Please provide any additional information below
File "C:\WinPython-64bit-<IP_ADDRESS>Qt5\python-3.5.4.amd64\lib\site-packages\spyder\plugins\editor.py", line 1709, in new
text, enc = encoding.read(self.TEMPLATE_PATH)
File "C:\WinPython-64bit-<IP_ADDRESS>Qt5\python-3.5.4.amd64\lib\site-packages\spyder\utils\encoding.py", line 243, in read
text, encoding = decode( open(filename, 'rb').read() )
FileNotFoundError: [Errno 2] No such file or directory: 'C:\WinPython-64bit-<IP_ADDRESS>Qt5\settings\.spyder-py3\template.py'
Version and main components

Spyder Version: 3.2.1.dev0
Python Version: 3.5.4
Qt Versions: 5.9.1, PyQt5 5.9 on Windows

Dependencies
pyflakes >=0.6.0 :  1.6.0 (OK)
pycodestyle >=2.3:  2.3.1 (OK)
pygments >=2.0   :  2.2.0 (OK)
pandas >=0.13.1  :  0.20.3 (OK)
numpy >=1.7      :  1.13.1 (OK)
sphinx >=0.6.6   :  1.6.3 (OK)
rope >=0.9.4     :  0.10.5 (OK)
jedi >=0.9.0     :  0.10.2 (OK)
nbconvert >=4.0  :  5.2.1 (OK)
sympy >=0.7.3    :  1.1.1 (OK)
cython >=0.21    :  0.26 (OK)
qtconsole >=4.2.0:  4.3.0 (OK)
IPython >=4.0    :  6.1.0 (OK)
pylint >=0.25    :  1.7.2 (OK)

Thanks for reporting. It seems your new file template was moved, deleted, renamed, or otherwise made inaccessible to Spyder. This is an apparent duplicate of #5717 ; see my and ccordoba's comments there, and therefore this one will be closed. In summary, possibly either a mangled install (thus do a clean uninstall and reinstall the latest version of Anaconda), or something to do with your antivirus or other security software messing with the file.
Additionally, you are using an older development version, and with WinPython, rather than the latest version of Anaconda, which can cause problems as well and isn't officially supported. Therefore, you can also try installing Anaconda, which is usually the best option for non-experts.


returnKeyLabel not working on android

Description
returnKeyLabel is not working on android physical devices.
Version
0.64
Output of npx react-native info
System:
OS: macOS 12.3.1
CPU: (8) x64 Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz
Memory: 80.46 MB / 16.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 18.0.0 - /usr/local/bin/node
Yarn: Not Found
npm: 8.6.0 - /usr/local/bin/npm
Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
Managers:
CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
Android SDK: Not Found
IDEs:
Android Studio: 2021.2 AI-212.5712.43.2112.8512546
Xcode: 13.4/13F17a - /usr/bin/xcodebuild
Languages:
Java: 11.0.15 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 17.0.2 => 17.0.2
react-native: 0.64.2 => 0.64.2
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
use textInput with returnKeyLabel
Snack, code example, screenshot, or link to a repository
      returnKeyType={'done'}
      returnKeyLabel={'ok'}

Experiencing the same problem, I believe it's to do with the input box being multi-line.
Here's a code snippet:
<TextInput
    style={us.textAreaInput}
    onChangeText={handleValue}
    value={value}
    returnKeyType="search"
    numberOfLines={6}
    multiline={true}
/>

Related issues: #11669

Experiencing the same problem, I believe it's to do with the input box being multi-line.
Here's a code snippet:
<TextInput
    style={us.textAreaInput}
    onChangeText={handleValue}
    value={value}
    returnKeyType="search"
    numberOfLines={6}
    multiline={true}
/>

Related issues: #11669, #33193

No still its happening all over

+1


Change build system interface to pyproject.toml

This is a straight conversion from setup.py to pyproject.toml, still using the setuptools backend.
Thanks for the library and for putting something up as a help wanted.
Fixes #201

Thanks very much for this. I'll do some testing before merging it in.


2D Editor should not allow moving controls (and show a warning) when editing a child of a container.

Users are often confused by this, trying to move children of containers and then when the game runs or they re-open the editor, lose their changes.

"now "or "not on the title?

@Zireael07 I still haven't seen a Container which does not enforce some sort of layout, can you give an example? (and why wouldn't a Control or ReferenceFrame do the job as well)

I'm waiting on #20587 to be merged before working on that

I meant this node (bordered in red). As far as I can tell, it doesn't enforce any layout and I can arrange/move the child controls any way I want :) (The scene in the screen gets several more child nodes when run and the children of the container can freely overlap and whatever)

@Zireael07 You should use a plain Control node for that.

I'm waiting on #20587 to be merged before working on that

Now's your time :)

An observation, resizing Controls inside a container, should affect min_size, not size, size is useless.

That would be good, but it should be disabled for "Expand" directions, since it might make the container unable to shrink.

Closing as superseded by #20750


Issue in stack(C#) implementation

This issue is about [Algo/DS Name](link to resource for the Algo/DS).

[ ] Issue Title is in form Algo/DS Name [Language].
[x] I searched or browsed the repo’s other issues to ensure this is not a duplicate.
[ ] This Algo/DS is worth adding to this repository.
[ ] Assign this issue to me (I want to work on this).

[ ] I ensure that I am not already assigned to 2 or more issues.

[x] I will send my PR only after I'm assigned to this issue by any maintainer.
[ ] I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Rotate and ToString method traverses the stack without popping out it's elements. This is not allowed in Stack. A similar discussion is done in issue #125 . Please look into it. @singhpratyush @Monal5031 @aashutoshrathi @yashLadha @aviaryan .

Yes @Prakash2403 sir, definitely a bug 😄

@franetheman: Would you like to fix this?

@Prakash2403 Sir would you take this otherwise lets label this up for grabs

@Monal5031 Don't know C#. Labelling it up for grabs.

@Prakash2403 I can try this one

@PlatanoBailando: Please proceed with the issue. Thanks :)


GLB to GLTF

Is it possible to use the extension with 1.0 models?

No only GLB 2.0 is supported by the extension.

Any way to convert 1.0 GLB models to GLTF?

Not with this tool chain, but if you want to take a look at the current 2.0 conversion it would probably be reasonably straight forward to add 1.0 support. gltf-import-export is the GitHub project you'd want to fork.

If a command-line utility will do, I'm pretty sure gltf-pipeline can convert GLB 1.0 to glTF 2.0.