SFTP Downloads using Apache Guacamole behind NPM

I have posted about my Problem on Reddit before, but even after 600+ Views and almost a month of waiting, nobody seemed to be able to help. Please read the detailed description and my observations from the post linked below:
https://www.reddit.com/r/nginxproxymanager/comments/u8pfe9/sftp_downloads_using_apache_guacamole_behind_npm/

All I can think of is that when you are going through NPM, your router and ISP network comes into play. In the past I've seen this slow down when a part of the network stack changes the TCP window scaling values (the amount of packets to be sent before a response is required), if this is set lowered by one piece of networking equipment in the route we can get down to modem speeds quickly on a broadband network when large single transfers are attempted. (Speed of transfer goes up as the TCP Window is scaled up, this is why downloads ramp up in speed and fluctuate as sending is paused waiting for a response packet saying all receieved).
It would be good to test a simple large file transfer not via NPM but over the same network to isolate the issue. Worth using a host file to send traffic to the subdomain, but directly to NPM, rather than your ISP router and back in.

I'm not sure I can follow what you are suggesting. The problem is not the speed of downloading as it instantly cuts the connection as soon as you try to download. This also only occurs on this SFTP Download, as the problem does not occur on any other subdomain or request in general (I use a Nextcloud alongside other things). Everything worked just fine up to this point. I've also said in the post before that any type of Download, even over SFTP on the same exact webpage, works just fine when I do it locally (in the same network), which is why I came to the conclusion that this problem has to do with NPM.

Been struggling to grasp what the real problem is, but:
You don't mention setting up the NPM subdomain to allow web sockets. This is specifically mentioned as a requirement in the proxying guacamole section of the docs. Have you turned this feature on in the edit proxy host form in NPM?

I'm not sure how I managed to fail this badly, but this seems to have been the problem. I am 100% certain that I have tried this in the past


MM-30357 Add e2e tests for nickname settings

Summary

MM-T2062 Clear nickname and save
MM-T2061 Nickname should reset on cancel of edit

Ticket Link
https://mattermost.atlassian.net/browse/MM-30674
https://mattermost.atlassian.net/browse/MM-30673

/update-branch

/update-branch

Error trying to update the PR.
Please do it manually.

Error trying to update the PR.
Please do it manually.

This has been completed as part of a different PR, so closing.

This has been completed as part of a different PR, so closing.


New version: Mozilla.Firefox.DeveloperEdition.nb-NO version 132.0 (132.0b4)

Created by 🥟 Dumplings.
Microsoft Reviewers: Open in CodeFlow

Verify by proxy: https://github.com/microsoft/winget-pkgs/pull/179431#issuecomment-2400690391


Update metrics.md

Remove references to the Mendix plans as they keep constantly changing and it's hard to keep them up-to-date.

I just added a link to the resource packs table on the main Mendix Cloud page, so that we only need to maintain the plan details in one place in the docs


rocminfo: 5.4.4 -> 5.5.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.

WARNING: Package has meta.broken=true; Please manually test this package update and remove the broken attribute.

meta.description for rocminfo is: ROCm Application for Reporting System Info
meta.homepage for rocminfo is: https://github.com/RadeonOpenCompute/rocminfo
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 5.5.0 in filename of file in /nix/store/1jgj5vd0dnsii1hdfj8a3yzg2faa45zj-rocminfo-5.5.0

Rebuild report (if merged into master) (click to expand)

37 total rebuild path(s)

37 package rebuild(s)

First fifty rebuilds by attrpath
blender-hip
composable_kernel
hip
hip-amd
hip-common
hip-nvidia
hipblas
hipcc
hipcub
hipfft
hipsolver
hipsparse
llvmPackages_rocm.flang
llvmPackages_rocm.mlir
magma-hip
migraphx
miopen
miopen-hip
miopen-opencl
python310Packages.openai-triton
python310Packages.torchWithCuda
python310Packages.torchWithRocm
python311Packages.openai-triton
rccl
rocalution
rocblas
rocfft
rocminfo
rocmlir
rocprim
rocr-debug-agent
rocrand
rocsolver
rocsparse
rocthrust
roctracer
rocwmma

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1jgj5vd0dnsii1hdfj8a3yzg2faa45zj-rocminfo-5.5.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A rocminfo https://github.com/r-ryantm/nixpkgs/archive/0556fdd396fd19ca1c88bace8989532a1851804b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1jgj5vd0dnsii1hdfj8a3yzg2faa45zj-rocminfo-5.5.0
ls -la /nix/store/1jgj5vd0dnsii1hdfj8a3yzg2faa45zj-rocminfo-5.5.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

37 packages marked as broken and skipped:

blender-hip
composable_kernel
hip
hip-amd
hip-common
hip-nvidia
hipblas
hipcc
hipcub
hipfft
hipsolver
hipsparse
llvmPackages_rocm.flang
llvmPackages_rocm.mlir
magma-hip
migraphx
miopen
miopen-hip
miopen-opencl
python310Packages.openai-triton
python310Packages.torchWithCuda
python310Packages.torchWithRocm
python311Packages.openai-triton
rccl
rocalution
rocblas
rocfft
rocminfo
rocmlir
rocprim
rocr-debug-agent
rocrand
rocsolver
rocsparse
rocthrust
roctracer
rocwmma

Maintainer pings
cc @lovesegfault @Madouura @Flakebi for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.

WARNING: Package has meta.broken=true; Please manually test this package update and remove the broken attribute.

meta.description for rocminfo is: ROCm Application for Reporting System Info
meta.homepage for rocminfo is: https://github.com/RadeonOpenCompute/rocminfo
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 5.5.1 in filename of file in /nix/store/cxcl9zpkw8xy87z2phiqsg045y9d8zrr-rocminfo-5.5.1

Rebuild report (if merged into master) (click to expand)

37 total rebuild path(s)

37 package rebuild(s)

First fifty rebuilds by attrpath
blender-hip
composable_kernel
hip
hip-amd
hip-common
hip-nvidia
hipblas
hipcc
hipcub
hipfft
hipsolver
hipsparse
llvmPackages_rocm.flang
llvmPackages_rocm.mlir
magma-hip
migraphx
miopen
miopen-hip
miopen-opencl
python310Packages.openai-triton
python310Packages.torchWithCuda
python310Packages.torchWithRocm
python311Packages.openai-triton
rccl
rocalution
rocblas
rocfft
rocminfo
rocmlir
rocprim
rocr-debug-agent
rocrand
rocsolver
rocsparse
rocthrust
roctracer
rocwmma

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/cxcl9zpkw8xy87z2phiqsg045y9d8zrr-rocminfo-5.5.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A rocminfo https://github.com/r-ryantm/nixpkgs/archive/a85d4a2676d35b667799622b1ad11a137011713d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/cxcl9zpkw8xy87z2phiqsg045y9d8zrr-rocminfo-5.5.1
ls -la /nix/store/cxcl9zpkw8xy87z2phiqsg045y9d8zrr-rocminfo-5.5.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

37 packages marked as broken and skipped:

blender-hip
composable_kernel
hip
hip-amd
hip-common
hip-nvidia
hipblas
hipcc
hipcub
hipfft
hipsolver
hipsparse
llvmPackages_rocm.flang
llvmPackages_rocm.mlir
magma-hip
migraphx
miopen
miopen-hip
miopen-opencl
python310Packages.openai-triton
python310Packages.torchWithCuda
python310Packages.torchWithRocm
python311Packages.openai-triton
rccl
rocalution
rocblas
rocfft
rocminfo
rocmlir
rocprim
rocr-debug-agent
rocrand
rocsolver
rocsparse
rocthrust
roctracer
rocwmma

Maintainer pings
cc @lovesegfault @Madouura @Flakebi for testing.


wrote review of the rnn rbm

I signed it!

This pull request includes the review of Boulanger-Lewandowski 2012, with a focus on the RNN-RBM architecture and its applications to generating polyphonic music. I'm looking forward to hearing feedback on the review. Thank you.

Thanks Dan! I'll look at this this weekend and get back to you with any comments and edits. Much appreciated.

Great!

For posterity in the PR, a heads up that we're editing this offline.

Edits offline.

LGTM. Thanks Dan!


add usage_page parameter to specify device more precisely

fixes #200
This may be specific to the Rival 650, or it might be something more general to all SteelSeries mice; I don't have any way to test.  Perhaps it should be part of the device profile?  All I can say is that without this patch, rivalcfg interacting with my mouse is the luck of the draw; with it, I can reliably get the battery percentage.
I can say that at least it works with both wired & wireless devices.

On which operating system have you tested? macOS?
I will need some time to understand what the usage_page is exactly and if it is also required on other OS and other devices.
I have the Rival 650 so I will be able to test on my own on Linux.  :)

On which operating system have you tested? macOS?

Yep, macOS only so far. I do have a Windows & Linux VM, and … maybe I can pass through the device on there? Clearly I have not adequately prepared this PR though :)

I think this PR will break Rivalcfg on Linux: usage page is always "0", at least with the hidraw driver :/
https://github.com/flozz/rivalcfg/issues/200#issuecomment-1539948817

I will not be able to merge your PR as it breaks Rivalcfg on Linux. But thanks to your PR I have enough information to thing about a fix.
I tried something in the 200-macos-ventura-endpoint branch. Can you test if it work?
more: https://github.com/flozz/rivalcfg/issues/200#issuecomment-1542067731

Yeah this PR was more of a sketch anyway; I appreciate your prompt investigation here and I'm glad that my poking around helped a little bit!


feature request: support for mixins composed from other mixins.

Search Terms
Suggestion
At the moment, it seems to be very difficult to compose mixins from other mixins.
Here's an example on StackOverflow: https://stackoverflow.com/questions/56680049
Here's an example on playground.
The code:
type Constructor<T = any, A extends any[] = any[]> = new (...a: A) => T

function FooMixin<T extends Constructor>(Base: T) {
    return class Foo extends Base {
        foo = 'foo'
    }
}

function BarMixin<T extends Constructor>(Base: T) {
    return class Bar extends FooMixin(Base) {
        test() {
            console.log(this.foo) //  PROBLEM: this.foo is 'any' =(
        }
    }
}

Use Cases
To make it simpler to make mixins (and compose them) like we can in plain JavaScript.
I'm porting JavaScript code to TypeScript, and the JavaScript makes great use of mixins (including composing new mixins from other mixins), but the composition ispractically impossible to do in TypeScript without very tedious type casting.
Examples
Here is the plain JS version of the above example:
function FooMixin(Base) {
    return class Foo extends Base {
        foo = 'foo'
    }
}

function BarMixin(Base) {
    // BarMixin is composed with FooMixin
    return class Bar extends FooMixin(Base) {
        test() {
            console.log(this.foo) // this.foo is obviously inherited from FooMixin!
                           // ^--- This shoud not be an error!
        }
    }
}

It seems to me, that the type checker can realize that the class returned from FooMixin(Base) will be a typeof Foo. The type system could at least be able to allow the Bar class to use methods and properties from Foo, despite not knowing what the Base class will be.
You can also imagine this problem gets worse with more composition, f.e.
    return class Bar extends Foo(Baz(Lorem(Ipsum(Base)))) {

It should also be possible to constrain the constructor to inherit from a certain base class. For example, the following doesn't work:
(EDIT: this part may actually be moved to a separate issue)
(EDIT 2: this part seems to be resolved)
// Think about Custom Elements here:
function FooMixin<T extends typeof HTMLElement>(Base: T) {
    return class Foo extends Base {
        test() {
            this.setAttribute('foo', 'bar')
        }
    }
}

playground link
As @dragomirtitian pointed out on SO, there are workarounds, but they appear to be very complicated and impractical.
Here's a more realistic example of what I'm doing in JS (and trying to port to TS): I'm using a Mixin() helper function, as a type declaration for the following example, which in practice implements things like Symbol.hasInstance to check if instances are instanceof a given mixin, prevents duplicate mixin applications, and other features, but the types don't work:
type Constructor<T = any, A extends any[] = any[]> = new (...a: A) => T

type MixinFunction = <TSuper>(baseClass: Constructor<TSuper>) => Constructor<TSuper>

// this function does awesome: ensures mixins aren't applied
// more than once on a prototype chain, sets up Symbol.hasInstance so that
// instanceof checks works with any mixin application, etc.
declare function Mixin<T extends MixinFunction>(
    mixinFn: T,
    DefaultBase?: Constructor
): ReturnType<T> & {mixin: T}

function FooMixin<T extends Constructor>(Base: T) {
    return class Foo extends Base {
        foo = 'foo'
    }
}

const Foo = Mixin(FooMixin)
type Foo = typeof Foo

function BarMixin<T extends Constructor>(Base: T) {
    return class Bar extends Foo.mixin(Base) {
        bar = 'bar'

        test() {
            this.foo = 'foofoo' // should work!
        }
    }
}

const Bar = Mixin(BarMixin)

class Baz extends Bar {

    test() {
        this.bar = 'barbar' // should work!
        this.foo = 'foofoo' // should work!
    }

}

const f: Foo = new Bar()

playground link
Is there a way to do this currently, that we may have missed? (cc: @justinfagnani)
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

@trusktr For your first example, you just need a couple of type annotations to get rid of errors:
type Ctor<T> = { new(): T }
function FooMixin(Base: Ctor<{}>) {
    return class Foo extends Base {
        foo = 'foo'
    }
}
function BarMixin(Base: Ctor<{}>) {
    return class Bar extends FooMixin(Base) {
        test() {
            console.log(this.foo) // this.foo is obviously inherited from FooMixin!
                           // ^--- This shoud not be an error!
        }
    }
}

For your second example, you can't use typeof HTMLElement directly because its constructor is too restrictive to fit Typescript's mixin pattern. But you can just create a similar type, which typeof HTMLElement happens to be assignable to:
function FooMixin<T extends new (...args:any[]) => HTMLElement>(Base: T) {
    return class Foo extends Base {
        foo = 'foo'
        test() {
            this.setAttribute('foo', 'bar')
        }
    }
}

I haven't read your full example or @dragomirtitian's suggested workaround on SO. Let me do that now.

I don't quite understand. Why does your first example work, and mine (with the Constructor type, doesn't? It's not immediately clear. Seems as if I'm specifying basically the same thing.

How come when I change your example from
type Ctor<T> = { new(): T }
function FooMixin(Base: Ctor<{}>) {
    return class Foo extends Base {
        foo = 'foo'
    }
}

to
type Ctor<T> = { new(): T }
function FooMixin<T extends Ctor<{}>>(Base: T) {
    return class Foo extends Base { // ERROR
        foo = 'foo'
    }
}

it no longer works?

There's a hard-coded requirement the mixin's type must be an object type, which Ctor<{}> is, but T extends Ctor<{}> is not -- it's a type parameter.
Using Ctor<{}> directly may be enough for you; T extends Ctor<{}> is treated like Ctor<{}> inside FooMixin, and when you call FooMixin, anything assignable to T extends Ctor<{}> is also assignable to Ctor<{}>.
The only reason you'd need a type parameter is to make other parameters of FooMixin use type T. For example, if you wanted to mixin two things, you could make those two have the exact same type: function FooMixin<T extends Ctor<{}>>(Base1: T, Base2: T). That's weird! Although, there might be more believable examples.

@sandersn I tried your recommendation with the HTMLElement, but seems I can't do it with a default arg. For example:
type Constructor<T = any, A extends any[] = any[]> = new (...a: A) => T

function WithUpdateMixin<T extends Constructor<HTMLElement>>(Base: T = HTMLElement) {

but with the = HTMLElement default arg it says:
Type '{ new (): HTMLElement; prototype: HTMLElement; }' is not assignable to type 'T'.
  '{ new (): HTMLElement; prototype: HTMLElement; }' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Constructor<HTMLElement, any[]>'.
ts(2322)

Here's another example of better support needed for mixins. In my previous comment, WithUpdateMixin is for Web Components. At minimum, the Base needs to be one of the builtin element classes like HTMLElement, HTMLDivElement, etc.
But the Base class could also be a Custom Element that extends from one of those builtin classes.
So in my code (converting from JavaScript), I have the following conditional, in case the Base class has an attributeChangedCallback method (if it is a Custom Element):
            if (super.attributeChangedCallback) {
                super.attributeChangedCallback(name, oldValue, newValue)
            }

but TypeScript gives the error:
Property 'attributeChangedCallback' does not exist on type 'HTMLElement'. ts(2339)

Obviously it doesn't exist on HTMLElement. How can we make this work?

Alright, I'm trying to work around the problem by forcing a cast, but it isn't making sense. I'm trying:
type PossibleCustomElement<T = HTMLElement> = T & {
    connectedCallback?(): void
    disconnectedCallback?(): void
    adoptedCallback?(): void
    attributeChangedCallback?(name: string, oldVal: string | null, newVal: string | null): void
}

function WithUpdateMixin<T extends Constructor<HTMLElement>>(Base: T = HTMLElement as any) {
    return class WithUpdate extends (Base as PossibleCustomElement<T>) {
                                               // ^--- HERE

and it says
Type 'PossibleCustomElement<T>' is not a constructor function type. ts(2507)

Clearly T is constrained to T extends Constructor<HTMLElement>, so it seems that therefore it is a constructor and I shouldn't get a type error.

Ah! I figured it out.
I was intuitively thinking that the constraint T extends Constructor<HTMLElement> would make ((Base as unknown) as PossibleCustomElementConstructor<T>) in my previous comment work, because I has assumed the type system would understand the constraint and limit the application of PossibleCustomElementConstructor<T>
(Maybe, that's a new feature request).
So, I figured out that if I explicitly specify the constrained type, instead of intuitively passing T along, then it works, like this:
type PossibleCustomElement<T extends HTMLElement> = T & {
    connectedCallback?(): void
    disconnectedCallback?(): void
    adoptedCallback?(): void
    attributeChangedCallback?(name: string, oldVal: string | null, newVal: string | null): void
}

type PossibleCustomElementConstructor<T extends HTMLElement> = Constructor<PossibleCustomElement<T>>
type HTMLElementConstructor = Constructor<HTMLElement>

function WithUpdateMixin<T extends HTMLElementConstructor>(Base: T = HTMLElement as any) {
    return class WithUpdate extends ((Base as unknown) as PossibleCustomElementConstructor<HTMLElement>) {

        connectedCallback() {
            if (super.connectedCallback) {  // ----- IT WORKS!
                super.connectedCallback()
            }

            // ...
        }

        attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {
            if (super.attributeChangedCallback) { // ----- IT WORKS!
                super.attributeChangedCallback(name, oldValue, newValue)
            }

            // ...
        }
    }
}

And now that makes sense: I know that the type is at least HTMLElement, so if I explicitly state that in the extends part of the mixin class, then I know that's what I will at least get (as far as types that I can use inside of the WithUpdate class.
I think it would make sense for TypeScript to infer what I was trying to do by passing T along, instead of having to specify HTMLElement in more than one place; it would make things more DRY.

Now I need to figure out if the main thing in the original post is possible: making mixins composed of mixins...
The issue I forsee is that WithUpdate could be mixed with other mixins that don't necessarily extend from HTMLElement, so that later the composed mixin could finally be mixed with a subclass that does extend HTMLElement.

Thanks for your hints about T extends Ctor<{}>. That helped a lot. I've gotten my mixins working (after many permutations of tinkering to understand how the type checker works), however it still requires  a cast because the base class "is not a constructor function type". I found it easier to write my own Constructor helper, with default T = object, which is what I need in most cases.

@trusktr What further action is required here in your judgment?

@RyanCavanaugh I think that Mixins need to be made easier. Taking the previous comment's example,

it shouldn't require casting Base as unknown as Constructor
it shouldn't require casting return Bar as typeof Bar & T

It gets more complicated when adding more mixins into the mix, when the constraint on T is more specific, when needing to include static properties in the return type, etc.
For a look at how complicated and brittle the mixin boilerplates can get, see for example infamous/src/core/Node.ts (you should be able to clone, npm install, and then see all the types in VS Code if there hasn't been any breaking changes in typescript, it's been a while).

I closed https://github.com/microsoft/TypeScript/issues/32004 as a duplicate of this one.

It'd be great if mixins in TypeScript were easier. Here's another playground example, and the code:
type AnyCtor = new (...a: any[]) => any

function Foo<T extends AnyCtor>(Base: T) {
	return class Foo extends Base {
		foo() {}
	}
}
function Bar<T extends AnyCtor>(Base: T) {
	return class Bar extends Base {
		bar() {}
	}
}
function One<T extends AnyCtor>(Base: T) {
	return class One extends Base {
		one() {}
	}
}
function Two<T extends AnyCtor>(Base: T) {
	return class Two extends Base {
		two() {}
	}
}
function Three<T extends AnyCtor>(Base: T) {
	return class Three extends One(Two(Base)) {
		three() {}
	}
}

class MyClass extends Three(Foo(Bar(Object))) {
	test() {
		this.foo()
		this.bar()
		// @ts-expect-error
		this.one() // Uh oh! This is type 'any', and there is no error despite noImplicitAny being set to true!
		// @ts-expect-error
		this.two() // Uh oh! This is type 'any', and there is no error despite noImplicitAny being set to true!
		this.three()
		console.log('no errors')
	}
}

const m = new MyClass()
m.test()

In particular, notice that this.one and this.two are type any inside the test() method.

+1
@trusktr thanks so much for posting all your tryouts!
I've spent too long on this (I am embarrassed to say, around 6 hours), this thread was what saved me.
I encountered a complex case of generic classes that are mixed as base classes.

I've been experimenting a bit with mixins lately and believe I've run into a related case.  As the example code might be a bit large due to the setup, a brief explanation:
I'm looking to create mixins for a class intended for serialization and deserialization in certain cases.  Serialization of mixin data isn't too hard of an ask, but the deserialization process for a mixin-enhanced version of the class - that seems to be the hard part.  I believe I've found a way forward on this, though there's one last caveat I wasn't able to completely polish.
I've kept a bit of noise in case the variations on things I attempted leading up to this could be enlightening.
Playground example
// Based on https://stackoverflow.com/a/43723730

interface ConfigConstructor {
  restoreFromJSON: (obj: any) => any;
  _loadFromJSON: (target: ConfigImpl, obj: any) => ConfigImpl;
  new (a: string, b: string /*...args: any[]*/): ConfigImpl;
}

class ConfigImpl {
  // Offline, I can make these private with exposing `get`-ter properties...
  // ...but it seems the TS Playground isn't a fan of having them private.
  public name: string;
  public title: string;

  constructor(name?: string, title?: string) {
    // // Supports the `restoreFromJSON` method if not using optional params.
    // if(arguments.length == 0) {
    //   this._name = '';
    //   this._title = '';
    //   return;
    // }

    this.name = name ?? '';
    this.title = title ?? '';
  }

  static restoreFromJSON = function (obj: any) {
    const restored = new ConfigImpl('', '');
    return ConfigImpl._loadFromJSON(restored, obj);
  }

  static _loadFromJSON = function (target: ConfigImpl, obj: any) {
    target.name  = obj.name;
    target.title = obj.title;

    return target;
  }
}

type AnyConstructor<A = object> = new (...input: any[]) => A
const Config: AnyConstructor<ConfigImpl> & ConfigConstructor = ConfigImpl;

Config.restoreFromJSON;
const dummy = new Config("dummy", "object");
dummy.name;
dummy.title;

// Defining the mixin is... not the easiest, but this is the only ugly part.  I think.
// function IntermediateMixin<T extends AnyConstructor<typeof Config> & Omit<typeof Config, 'new'>>(Base: T) { // falls over. :(
function IntermediateMixin<T extends AnyConstructor<ConfigImpl> & Omit<typeof Config, 'new'>>(Base: T) { // works!
// function IntermediateMixin<T extends AnyConstructor<ConfigImpl> & Omit<ConfigConstructor, 'new'>>(Base: T) { // works!
  return class MixinCore extends Base {
    public counter: number = 0;

    // Utilizes the fact that constructors themselves inherit from each other in JS/TS.
    // We call the version on the full mixin...
    static restoreFromJSON(obj: any): MixinCore {
      // ******************************************************
      // * Key detail:  Assumes an empty constructor is fine. *
      // ******************************************************
      return MixinCore._loadFromJSON(new MixinCore(), obj);
    }

    // Which, in turn, calls each constituent mixin (+ the base) version of the deserialization static.
    static _loadFromJSON(target: MixinCore, obj: any): MixinCore {
      // let the base load its stuff.
      Base._loadFromJSON(target, obj);

      // then load our stuff
      target.counter = obj.counter;

      // then return (in case another mixin has its own loading to do, too.)
      return target;
    };

    public counterOver10(): boolean {
      return this.counter > 10;
    }
  }
}

const funkyMixin = IntermediateMixin(Config);
const funkyDummy = new funkyMixin("funky", "dummy");
// const funkyDummy2 = new funkyMixin('a');  // errors on the extra param.
funkyMixin.restoreFromJSON;
// funkyDummy.restoreFromJSON; // error; is not an instance field/method

const reconstituted = funkyMixin.restoreFromJSON({
  name: "foo",
  title: "bar",
  counter: 13
});

console.log(JSON.stringify(reconstituted, null, 2));
reconstituted.counter;
if(reconstituted.counterOver10()) {
  console.log("`reconstituted`: success - counter is over 10");
}

// ---------

// function ExtraMixin<T extends AnyConstructor<ConfigImpl> & Omit<typeof Config, 'new'>>(Base: T) { // works!
function ExtraMixin<T extends AnyConstructor<ConfigImpl> & Omit<ConfigConstructor, 'new'>>(Base: T) {
  return class ExMixinCore extends Base {
    public flag: boolean = true;

    // Utilizes the fact that constructors themselves inherit from each other in JS/TS.
    // We call the version on the full mixin...
    static restoreFromJSON(obj: any): ExMixinCore {
      // Key detail:  Assumes an empty constructor is fine.
      return ExMixinCore._loadFromJSON(new ExMixinCore(), obj);
    }

    // Which, in turn, calls each constituent mixin (+ the base) version of the deserialization static.
    static _loadFromJSON(target: ExMixinCore, obj: any): ExMixinCore {
      // let the base load its stuff.
      Base._loadFromJSON(target, obj);

      // then load our stuff
      target.flag = obj.flag;

      // then return (in case another mixin has its own loading to do, too.)
      return target;
    };
  }
}

// const stackedMixin = ExtraMixin(MixinWithStatics(funkyMixin));
// const stackedMixin = ExtraMixin<typeof funkyMixin>(MixinWithStatics(Config));
const stackedMixin = ExtraMixin(IntermediateMixin(Config));
const directBuilt = new stackedMixin('foo', 'bar');
directBuilt.counter;
directBuilt.flag;

      // ******************************************************
      // * Setup complete; now for limitations I discovered   *
      // ******************************************************

const reconstituted2 = stackedMixin.restoreFromJSON({
  name: "foo",
  title: "bar",
  counter: 13,
  flag: false
}); // if this replaces the following line, compilation errors arise on lines noted below.
// }) as InstanceType<typeof stackedMixin>;  // Uncomment out the section to the left to replace the call's end, and things work!

let swappable = directBuilt;
// swappable = reconstituted2; // bombs - claims the intermediate mixin's properties don't exist.
let reverseSwappable = reconstituted2;
reverseSwappable = directBuilt; // passes swimmingly; no complaints here.

// Works regardless of the `reconstituted2` cast.
console.log(JSON.stringify(reconstituted2, null, 2));
reconstituted2.flag;

// Why doesn't TS recognize that these are available without the most recent cast
// (when assigning to `reconstituted2`)?
reconstituted2.counter;
if(reconstituted2.counterOver10() && !reconstituted2.flag) {
  console.log("`reconstituted`: success - counter is over 10 & flag is false");
}

// Aha!  The deserialization pattern isn't quite getting resolved in full.
// But... shouldn't it resolve to the exact same type?
const cast = reconstituted2 as InstanceType<typeof stackedMixin>; // JUST a cast.
cast.counter;
cast.counterOver10;
// Works, but is redundant with the prior if-block.
// if(cast.counterOver10() && !cast.flag) {
//   console.log("`cast`: success - counter is over 10 & flag is false");
// }

I managed to get the mixins working with references to static methods declared by the base class; they even redirect to variants defined on intermediate mixins!  The main issue - the final return value from the deserialization method has incomplete type inference in a manner very much in line with other cases I noticed on this issue.
Related highlight from my example:
function ExtraMixin<T extends AnyConstructor<ConfigImpl> & Omit<ConfigConstructor, 'new'>>(Base: T) {
  return class ExMixinCore extends Base {
    public flag: boolean = true;

    // Utilizes the fact that constructors themselves inherit from each other in JS/TS.
    // We call the version on the full mixin...
    static restoreFromJSON(obj: any): ExMixinCore {
      // Key detail:  Assumes an empty constructor is fine.
      return ExMixinCore._loadFromJSON(new ExMixinCore(), obj);
    }

Note:  the static method is returning the same type as the mixin, based on the generic parameter <T extends ...>, as noted to be a possible issue in the first comment of this issue.  I'm not sure it's easy or wise to eliminate it though - I fully want the two mixins to be orthogonal, and this allows the intermediate properties to flow through for normally-constructed instances.
The other main link that led me to this issue: https://github.com/microsoft/TypeScript/issues/32080#issuecomment-667800147.  I noticed that that comment's example one() and two() were absent due to mixin composition.  In my example code above, IntermediateMixin is (obviously) the composited mixin, and it's the one with the missing property and method.  In particular, in this case, the static method's return type returns an object whose typing refers to that of another mixin... which is the same type as the static method's class - but TS is unable to infer this at present.
Fortunately, it's possible to work around this oddity with a cast, but it does make the deserialization process a bit more verbose than desired.

What I noticed there gave me an idea:  what if the ConfigConstructor class there were generic, with a type parameter that adapts to the expected return type?  Well... it was worth a shot; we actually get more errors this way.  But... those might be enlightening?
interface ConstructorForRestorable<Type> {
  restoreFromJSON: (obj: any) => Type;
  _loadFromJSON: (target: Type, obj: any) => Type;
  new (a: string, b: string /*...args: any[]*/): Type;
}

// ...

function IntermediateMixin<T extends AnyConstructor<ConfigImpl> & Omit<ConstructorForRestorable<T>, 'new'>>(Base: T) { // works!
  return class MixinCore extends Base {
    public counter: number = 0;

    // Utilizes the fact that constructors themselves inherit from each other in JS/TS.
    // We call the version on the full mixin...
    static restoreFromJSON(obj: any): MixinCore {
      // ******************************************************
      // * Key detail:  Assumes an empty constructor is fine. *
      // ******************************************************
      return MixinCore._loadFromJSON(new MixinCore(), obj);
    }

    // Which, in turn, calls each constituent mixin (+ the base) version of the deserialization static.
    static _loadFromJSON(target: MixinCore, obj: any): MixinCore {
      // let the base load its stuff.
      Base._loadFromJSON(target, obj);  // error squiggles appear here.

      // then load our stuff
      target.counter = obj.counter;

      // then return (in case another mixin has its own loading to do, too.)
      return target;
    };

The error from the noted line:

(parameter) target: MixinCore
Argument of type 'MixinCore' is not assignable to parameter of type 'T'.
'T' could be instantiated with an arbitrary type which could be unrelated to 'MixinCore'.ts(2345)

Note:  class MixinCore extends Base, with the mixin's parameter defined as Base: T.  There's a very clear relation here - class MixinCore extends T - but the inference engine isn't connecting the dots.
This is likely due to the generic-param T, as opposed to the parameter Base of type T.  At least, that's my personal guess.

@trusktr I think the problem with your initial example and the example in https://github.com/microsoft/TypeScript/issues/32080#issuecomment-667800147 doesn't explicitly have to do with mixins: It's that you are using any as the instance type of your Constructor type instead of object. In both case, if you change type Constructor = new (...a: any[]) => any to type Constructor = new (...a: any[]) => object, everything works as expected. TS playground 1, TS playground 2
When Typescript merges the instance types of these constructors, everything is just getting collapsed into any, more because of how any behaves than anything specific to constructors.


Text segment request get cancelled and never recovers On multiple seek

Have you read the FAQ and checked for duplicate open issues?
yes
What version of Shaka Player are you using?
3.1.1
Can you reproduce the issue with our latest release version?
yes
Can you reproduce the issue with the latest code from master?
No
Are you using the demo app or your own custom app?
Custom app
If custom app, can you reproduce the issue using our demo app?
No, In the demo app i found only one ttml file for the entire content duration
What browser and OS are you using?
Chrome - 91.0.4472.114, MAC - Big Sur
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
What are the manifest and license server URIs?

What configuration are you using?  What is the output of player.getConfiguration()?

streaming: {
rebufferingGoal: 1,
bufferBehind: 6,
bufferingGoal: 10,
durationBackoff: 1,
ignoreTextStreamFailures: true
}
What did you do?

playback a content which has multiple text segment
Seek +15, 4 - 5 times continuously using
shakaPlayer.getMediaElement().currentTime = shakaPlayer.getMediaElement().currentTime + 15;

What did you expect to happen?
I expected the playback to be seeked to the correct duration (this is happening correctly) and the subsequent subtitle should be displayed
What actually happened?

After seek i dont see the subtitle
In the network tab i see the next text segment gets cancelled and subsequent subtitle files are never fetched

Note
When i changed  ignoreTextStreamFailures: false , text segment request is going and subtitle is getting displayed

Resolved with https://github.com/google/shaka-player/pull/3476 and duplicated of https://github.com/google/shaka-player/issues/3463

@avelad thanks! for the quick reply, sorry missed to check same issue is open. Please close this ticket


Date and time pattern strings are missing in docs

Description:
Docs on dateFormat and other related functions do not have reference on supported date and time pattern strings.
dateFormat function supports date and time pattern strings that are supported by the SimpleDateFormat Java class for date.target.format parameter.
Affected Product Version:
v4.0.0>

The above issue is fixed by https://github.com/wso2-extensions/siddhi-execution-time/pull/35

Closing as per above comment.


PoC for Security Group Filtering

Thank you for submitting a pull request to the route-emitter repository!
We appreciate the contribution. To help us understand the context for your pull request, please fill out this template to the best of your ability.
Please make sure to complete all of the following steps

Check the Contributing document on how to sign the CLA and run tests.
Submit your PR to this repo.
Submit an accompanying PR Review Request referencing this PR so the Diego Team knows to review your pull request.

Note: this PR will not be reviewed unless you submit the PR Review Request.

Please provide the following information:
What is this change about?
Enabling the Security group filtering from the route-emitter
What problem it is trying to solve?
Route-emitter doesn't need Security Groups to perform it's tasks, and in cases where security groups are sent it generates network load
What is the impact if the change is not made?
The route emitter will continue to receive large amounts of unnecessary data
How should this change be described in diego-release release notes?
Adding Security group filtering
Please provide any contextual information.
Diego-release Issue link
BBS PR link
Tag your pair, your PM, and/or team!
@PlamenDoychev
Thank you!

[DoNotMerge]
[PoC]

I'm going to close this issue because the referenced issue has since been closed (see: https://github.com/cloudfoundry/diego-release/issues/678#event-9783002429) and that I believe the desired changes were merged in: https://github.com/cloudfoundry/route-emitter/pull/26.


Do i need cuda to run test_CNN.py?

I have installed all the requirements but i am running CPU insteaad of GPU and i cant seem to get test_CNN.py to run.

if you want to run this code on CPU, you must replace model = model.cuda  image = image.cuda() labels = labels.cuda() with model = model.cpu()  image = image.cpu() labels = labels.cpu()

omg thanks!! hahah i am new in this field and i will try it again later!


lets see what happens if we remove setters

Type of Change

[x] Bug fix (non-breaking change, fixes #)
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose
I removed these empty setters. I think @FriedrichWeinmann said they needed to be there, but all the unit tests passed so I'm not sure why.
Approach
Deleting code is always awesome!
Commands to test
Ok I'm not actually sure what uses Size. If someone whats to tell me what uses it I'll see about adding coverage.

Well ... they were needed for a future feature I'm planning on implementing.
It's not there yet, so obviously all tests will pass.
Specifically, they are needed for PowerShell-integrated automatic serialization. Setting that up fully would allow us to:

Retain object types across process boundaries (for example using jobs).
Store to filesystem and retrieve it from there while maintaining type fidelity.
Scale out operations across multiple computers in a powershell grid without loosing types in transit.

Serialization will fail if any public property can't be set without an exception (nevermind whether the process actually changes a byte).
That's why I keep them on any type I implement that is designed to be part of an output object (such as size, which will become a string using default serialization).
If it irritates you so much that you want to kill them - for example if your resharper complains about them - feel free to kill them though. Not many parts of the library are subject to that and I can add them back when it becomes necessary (or find a way around the requirement, which would be my preference anyway).
Besides, we mostly re-use SMO objects currently, which is a dead letter where serialization is concerned, no matter what we do.

I will leave this to you @FriedrichWeinmann

@zippy1981 please discontinue the abandonment of your PRs or I shall close them with the heat of 1000 suns 🌞

@potatoqualitee well actually, unless your running Visual Studio on the USS-Enteprise-D, your probably going to close it with 100-200 watts of electricity, which is way smaller than a sun.

And with that it has my blessings :)


keyboard quantizer mini latest vial prebuilt firmware key repeats

when it gets certain type speed, sometimes the last key is repeated, like "thisi iss the keyboardord ", it doesn't happen when slowed down, so i can rule out the chattering. And this also doesn't happen without quantizer.

I also tried the full version. It's unfortunately the same. I tried to build the full version firmware with #define USB_POLLING_INTERVAL_MS 4, but somehow after flashing it the quantizer stopped responding, so i had to flash the prebuilt one back.

As for vial, i think that repo misses a keymap.h?

I think I find out what is causing the issue now. Normally, the spacebar will override other keys not released, but when using the quantizer, the left spacebar will instead repeat the rest compressed key instead, while the right spacebar works normally.

a quick test with this,
from pynput.keyboard import Key, Listener
def on_press(key):
try:
print(f'Alphanumeric key {key.char} pressed')
except AttributeError:
print(f'Special key {key} pressed')
def on_release(key):
print(f'{key} released')
if key == Key.esc:
# Stop listener
return False
Collect events until released
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
it reveals that when "h" "i" "s" is not fully released, pressing space key result in repetitively sending the last pressed key, but the space key is nowhere to be found:
Alphanumeric key h pressed
Alphanumeric key i pressed
Alphanumeric key s pressed
'h' released
'i' released
's' released
Alphanumeric key h pressed
Alphanumeric key i pressed
Alphanumeric key s pressed
'h' released
'i' released
's' released
Alphanumeric key h pressed
Alphanumeric key i pressed
Alphanumeric key s pressed
'h' released
'i' released
's' released


Add database connection support

Requested feature

For common database operations, support connecting + converting a dataframe -> database table
E.g. something like: create_table(df, 'namespace', conn), update_table(...), etc.. Writing SQL code from scratch each time is currently necessary but cumbersome
Alternatives considered

... Should look into this more!
Additional context

Depends on #6

Closing in favor of #25


_merge_updates() does not handle case where new_resp is None

Crash seen when connecting to a Juniper box running Junos: 21.4R2-S1.12-EVO
# Modules
from pygnmi.client import gNMIclient, telemetryParser

# Variables
host = ('<IP_ADDRESS>', '50051')

# Body
subscribe = {
    'subscription': [
        {
            'path': '/components/component',
            'mode': 'sample',
            'sample_interval':<PHONE_NUMBER>0
        },
    ],
    'use_aliases': False,
    'mode': 'stream',
    'encoding': 'json'
}

if __name__ == '__main__':
    with gNMIclient(target=host, username='foo', password='lab123', insecure=True) as gc:
        telemetry_stream = gc.subscribe_stream(subscribe=subscribe)
        for telemetry_entry in telemetry_stream:
            print(telemetry_entry)

resulted in an unhandled exception:
Parsing of telemetry information is failed.
Traceback (most recent call last):
  File "/Users/foo/scripts/foo/gnmi-scripts/subscribe.py", line 25, in <module>
Exception in thread Thread-5:
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    for telemetry_entry in telemetry_stream:
  File "/Users/foo/scripts/foo/gnmi-scripts/venv/lib/python3.9/site-packages/pygnmi/client.py", line 973, in __next__
    self.run()
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run
    result = self.next()
  File "/Users/foo/scripts/foo/gnmi-scripts/venv/lib/python3.9/site-packages/pygnmi/client.py", line 985, in next
    self._target(*self._args, **self._kwargs)
  File "/Users/foo/scripts/foo/gnmi-scripts/venv/lib/python3.9/site-packages/pygnmi/client.py", line 908, in enqueue_updates
    return self._next_update(timeout=None)
  File "/Users/foo/scripts/foo/gnmi-scripts/venv/lib/python3.9/site-packages/pygnmi/client.py", line 1036, in _next_update
    for update in subscription:
  File "/Users/foo/scripts/foo/gnmi-scripts/venv/lib/python3.9/site-packages/grpc/_channel.py", line 426, in __next__
    return self._get_updates_till_sync(timeout=timeout)
  File "/Users/foo/scripts/foo/gnmi-scripts/venv/lib/python3.9/site-packages/pygnmi/client.py", line 949, in _get_updates_till_sync
    return self._next()
  File "/Users/foo/scripts/foo/gnmi-scripts/venv/lib/python3.9/site-packages/grpc/_channel.py", line 809, in _next
    self._merge_updates(resp, new_resp)
  File "/Users/foo/scripts/foo/gnmi-scripts/venv/lib/python3.9/site-packages/pygnmi/client.py", line 954, in _merge_updates
    if 'update' in new_resp:
TypeError: argument of type 'NoneType' is not iterable
    raise self
grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
	status = StatusCode.CANCELLED
	details = "Channel closed!"
	debug_error_string = "UNKNOWN:Error received from peer <IP_ADDRESS>:50051 {grpc_message:"Channel closed!", grpc_status:1, created_time:"2022-10-25T18:22:42.347026+11:00"}"

workaround was to add a line to client.py in _merge_updates()
    def _merge_updates(self, resp, new_resp):
        if new_resp is not None:         ### adding this line
            if 'update' in new_resp:
                for key in new_resp['update']:
                    if key.upper() in UpdateResult.Operation.keys():
                        if key not in resp['update']:
                            resp['update'][key] = []
                        resp['update'][key] += new_resp['update'][key]
                    else:
                        resp['update'][key] = new_resp['update'][key]
            if 'sync_response' in new_resp:
                resp['sync_response'] = new_resp['sync_response']

With the workaround in place, there appears to be multiple packets which fail to parse correctly, before it returns data:
% python3 subscribe.py
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
Parsing of telemetry information is failed.
{'update': {'update': [{'path': 'value', 'val': 33572}, {'path': 'value', 'val': 34081}, {'path': 'value', 'val': 0}, {'path': 'value', 'val': 0}, {'path': 'value', 'val': 0}, {'path': 'value', 'val': 0}, {'path': 'value', 'val': 0}, {'path': 'value', 'val': 0}, {'path': 'value',...

hey @ipmonk
Thanks for flagging. It is quite curios, what Juniper sends that it is not parsable.. Did you talk to them about the issue? I'd agree that workaround may be a good way to go.
Thanks
Anton

Hi Anton,
debugged this further, it is getting tripped up by this path:
update {
path {
elem {
name: "state"
}
elem {
name: "temperature"
}
elem {
name: "instant"
}
}
val {
json_val: ""
}
}
'Traceback (most recent call last):\n  File "/Users/crj/scripts/crj/gnmi-scripts/venv/lib/python3.9/site-packages/pygnmi/client.py", line 1135, in telemetryParser\n    update_container.update({'val': json.loads(update_msg.val.json_val)})\n  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/init.py", line 346, in loads\n    return _default_decoder.decode(s)\n  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode\n    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 355, in raw_decode\n    raise JSONDecodeError("Expecting value", s, err.value) from None\njson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File "/Users/crj/.vscode/extensions/ms-python.python-2022.18.2/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py", line 192, in _get_py_dictionary\n    attr = getattr(var, name)\nAttributeError\n'

Another example of json_val which causes an exception:
  update {
    path {
      elem {
        name: "state"
      }
      elem {
        name: "temperature"
      }
      elem {
        name: "instant"
      }
    }
    val {
      json_val: "\360\341B\355\375\177"
    }
  }


rafthttp decoder: the buffer length should be checked before allocation

https://github.com/coreos/etcd/blob/bd71a608753c96e92398327b808ff51191e0c32d/rafthttp/msg_codec.go#L50
func (dec *messageDecoder) decode() (raftpb.Message, error) {
    var m raftpb.Message
    var l uint64
    if err := binary.Read(dec.r, binary.BigEndian, &l); err != nil {
        return m, err
    }
    buf := make([]byte, int(l))
    if _, err := io.ReadFull(dec.r, buf); err != nil {
        return m, err
    }
    return m, m.Unmarshal(buf)
}

The value of l can be bogus due to an attack or packet corruption.
So I suggest checking the value of l before make([]byte, int(l)).

@AkihiroSuda We do not plan to avoid attack inside etcd itself. But it is a nice thing to have to avoid potential corruption to panic etcd server. Can you send a patch to fix this?

What should be maximum valid message size?

@nekto0n Do you want to help on this one?

@xiang90 Does etcd server also include the whole marshaled v2 store in the raft message that it send here:
https://github.com/coreos/etcd/blob/master/etcdserver/snapshot_merge.go#L52?
If thats the case, then is the assumption that raft http's decoder always deals with messages of size 1MB correct? We are seeing this error on our etcd cluster where the leader is unable to send raft snapshots to one of the followers:
Leader host:
rafthttp: database snapshot [index: <INDEX>, to:<INDEX>] failed to be sent out (unexpected http status Bad Request while posting to "https://<HOST>:<PORT>/raft/snapshot")
Follower host:
rafthttp: failed to decode raft message (rafthttp: error limit exceeded)

@gyuho @xiang90: we see rafthttp: error limit exceeded when we bring an existing 2.3 cluster up with 3.1. I think it's safe to say that the raft message is valid. etcd is holding on the order of 10GB in memory on 2.3.

is it possible to configure etcd to send a smaller raft message?
do you think it is reasonable to increase or remove this limit?
are there any other workarounds we can use to bring up the cluster on 3.1?

See also: @yvdinesh's comment above

@yvdinesh @jonsyu1 Sorry for late response. We missed these comments somehow. We've just have released v3.1.9 and 3.2.0 with the fix https://github.com/coreos/etcd/pull/8074. Please create another issue if you still have problems.

OK thanks @gyuho! We wound up working around it by ensuring that all nodes come up with 3.1 capabilities in a short window.


Integrare UNUserNotification

Implementing removeAllDeliveredNotifications for remove notifications from notification center
Thanks for submitting a PR! Please read these instructions carefully:

[x] Explain the motivation for making this change.
[x] Provide a test plan demonstrating that the code is solid.
[x] Match the code formatting of the rest of the codebase.
[x] Target the master branch, NOT a "stable" branch.

Motivation (required)
Currently, calling PushNotificationIOS.cancelAllLocalNotifications not remove the notification from the Notification Center
In iOS 10, a new UNUserNotification class was introduced, this class has a method which remove the notifications from notification center
This PR try to solve that.
Test Plan (required)
In my case, i'm working with an messaging app, every message is a new notification, when the user tap a notification, the app is opened and the rest of notifications should be gone.
BEFORE:

AFTER:

Fix #13033

@javache updated :D

Can you please sign the CLA? Can't merge it without that.

@javache CLA done

I don't understand how exactly was UserNotifications framework "integrated", when at most, the "delivered" API was used. What about handling user notifications from UNUserNotificationCenterDelegate? This API is two years old.


Simple Java connection causes Mac Space switching

I'm seeing some pretty bizarre behaviour, not positive that the root cause is in OrientDB, but this is the only place I have ever seen it happen so I am  posting it here.
I am using OSX Yosemite 10.10.5 and Intellij 15.0.2 in fullscreen mode.
I have a very simple Maven project in Intellij to test this out on. Here is the pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.kruth.orientdb</groupId>
    <artifactId>orientdb-testing</artifactId>
    <version>0.1-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.orientechnologies</groupId>
            <artifactId>orientdb-client</artifactId>
            <version>2.1.8</version>
        </dependency>
    </dependencies>
</project>

and a simple Java class:
package com.kruth.orientdb;

import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;

/**
 * Created by kruthar on 12/29/15.
 */
public class OrientDBTesting {
    public static void main(String args[]) {
        ODatabaseDocumentTx db = new ODatabaseDocumentTx("memory:test");
    }
}

When I run the main method from Intellij, it runs (seemingly correct), but switches my screen to whatever my first Space is at the time. If Intellij fullscreen is the first Space then it switches to the second Space. This only happens if Intellij is in fullscreen. This also happens if I have a terminal window open in fullscreen (with iTerm) and run it on the commandline.
This is the output of running the main method, nothing seems wrong:
Dec 29, 2015 12:08:31 PM com.orientechnologies.common.log.OLogManager log
INFO: OrientDB auto-config DISKCACHE=10,695MB (heap=3,641MB os=16,384MB disk=60,647MB)

Any thoughts?

hi @kruthar
seems strange.
AFAIK OrientDB does not have this power yet :D
What happen if you comment the connection  line?

When I comment it out, or even put something else in there like a println or something, things work as expected. Meaning the code executes, no Space switching.

@kruthar
i've tried it on Yosemite and IntelliJ 14 without Space switching

I tested on Intellij 14.0.4 Community and Ultimate editions and still see the switching. I also tested on Intellij 15.0.2 Community Edition, same thing.
I updated my pom so I could build a jar:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.kruth.orientdb</groupId>
    <artifactId>orientdb-testing</artifactId>
    <version>0.1-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.orientechnologies</groupId>
            <artifactId>orientdb-client</artifactId>
            <version>2.1.8</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.2</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Then built and ran the test class on the commandline:
mvn clean package
java -cp target/orientdb-testing-0.1-SNAPSHOT.jar com.kruth.orientdb.OrientDBTesting

When I run this in iTerm fullscreen, I see the same Space switching. When not in fullscreen things work properly and the Space does not switch. So it would seem that Intellij doesn't have anything to do with it.
I actually just found another instance of similar Space switching. If you are on a fullscreen window, then ⌘ + tab to Finder, which is always open, then it takes you to your first Space. Could this be related?
I understand that this is going to be hard to diagnose if you can't reproduce so I'll keep trying some things, but let me know if anything else comes to mind.

Although the source application is different, this post identifies the issue having to do with forked processes switching the Space when in fullscreen: http://apple.stackexchange.com/questions/100069/when-terminal-forks-process-current-app-loses-focus.
When I add the argument as suggested by the fix the Space does not switch:
java -Djava.awt.headless=true -cp target/orientdb-testing-0.1-SNAPSHOT.jar com.kruth.orientdb.OrientDBTesting

So, eureka, I guess. It is still strange because I have never had this issue working with anything else. Is there something happening in OrientDB that makes it different from using other applications?

Hi @kruthar
OrientDB is a quite complex piece of software, so it's hard to say what part of it can cause this behavior. We will find some time to investigate it, but it's definitely low priority, so no promise about the timing.
I'm closing this issue in the meantime, as it seems to be related to how OSX manages processes and there is a work-around
Thanks
Luigi


Version 1.2.1 stopped working on single language pages

Since updating from version 1.2 to 1.2.1 of meta knight it appears as though the plugin has stopped working on single-language Kirby instances. Every frontend page starts throwing http 500 errors after the update.
The issue appears to be in meta_information.php:61 where you call $page->url($kirby->defaultLanguage()->code()). But since $kirby->defaultLanguage() is null on single-language Kirby instances, you're just generating a non-recoverable error here.
Here's the full log of errors I'm getting on one of my Kirby instances with 1.2.1 of meta-knight

Fixed in release 1.2.2. Thanks everyone!


[WFCORE-5593] Upgrade WildFly Elytron to 1.17.1.Final

https://issues.redhat.com/browse/WFCORE-5593
    Release Notes - WildFly Elytron - Version 1.17.1.Final

        Bug

[ELY-2070] -         CredentialStore is not able to get data from credential storage in file on IBM JDK 8

[ELY-2197] -         Close resource - potential resource leak

        Task

[ELY-2198] -         Remove old unused private code

        Release

[ELY-2215] -         Release WildFly Elytron 1.17.1.Final

Core - Full Integration Build 10998 outcome was FAILURE using a merge of 5f3180191aa4df51524819eb134cecac1bfcc0ab
Summary: Tests failed: 1 (1 new), passed: 7254, ignored: 147 Build time: 03:15:31
Failed tests
org.wildfly.test.manual.microprofile.health.MicroProfileHealthDefaultEmptyStartupHTTPEndpointTestCase.testApplicationStartupWithoutDeploymentWithEmptyStartupSetToUP: java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.wildfly.test.manual.microprofile.health.InvalidHealthResponseException: Expected UP but received HTTP status code 503
	at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
	at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1928)
	at org.wildfly.test.manual.microprofile.health.MicroProfileHealthDefaultEmptyStartupTestBase.testApplicationStartupWithoutDeploymentWithEmptyStartupSetToUP(MicroProfileHealthDefaultEmptyStartupTestBase.java:285)
Caused by: java.lang.RuntimeException: org.wildfly.test.manual.microprofile.health.InvalidHealthResponseException: Expected UP but received HTTP status code 503
	at org.wildfly.test.manual.microprofile.health.MicroProfileHealthDefaultEmptyStartupTestBase.lambda$testApplicationStartupWithoutDeploymentWithEmptyStartupSetToUP$3(MicroProfileHealthDefaultEmptyStartupTestBase.java:268)
	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640)
	at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1632)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)
Caused by: org.wildfly.test.manual.microprofile.health.InvalidHealthResponseException: Expected UP but received HTTP status code 503
	at org.wildfly.test.manual.microprofile.health.MicroProfileHealthDefaultEmptyStartupHTTPEndpointTestCase.checkGlobalOutcome(MicroProfileHealthDefaultEmptyStartupHTTPEndpointTestCase.java:69)
	at org.wildfly.test.manual.microprofile.health.MicroProfileHealthDefaultEmptyStartupTestBase.lambda$testApplicationStartupWithoutDeploymentWithEmptyStartupSetToUP$3(MicroProfileHealthDefaultEmptyStartupTestBase.java:263)
	... 6 more
------- Stdout: -------
 [0m16:22:07,401 INFO  [org.jboss.modules] (main) JBoss Modules version 1.12.0.Final
 [0m [0m16:22:07,666 INFO  [org.jboss.msc] (main) JBoss MSC version 1.4.13.Final
 [0m [0m16:22:07,675 INFO  [org.jboss.threads] (main) JBoss Threads version 2.4.0.Final
 [0m [0m16:22:07,797 INFO  [org.jboss.as] (MSC service thread 1-2) WFLYSRV0049: WildFly Full 25.0.0.Final-SNAPSHOT (WildFly Core 17.0.0.Beta8-SNAPSHOT) starting
 [0m [0m16:22:08,838 INFO  [org.wildfly.security] (ServerService Thread Pool -- 4) ELY00001: WildFly Elytron version 1.17.1.Final
 [0m [0m16:22:09,569 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http)
 [0m [0m16:22:09,585 INFO  [org.xnio] (MSC service thread 1-7) XNIO version 3.8.4.Final
 [0m [0m16:22:09,590 INFO  [org.xnio.nio] (MSC service thread 1-7) XNIO NIO Implementation Version 3.8.4.Final
 [0m [0m16:22:09,681 INFO  [org.wildfly.extension.elytron.oidc._private] (ServerService Thread Pool -- 44) WFLYOIDC0001: Activating WildFly Elytron OIDC Subsystem
 [0m [0m16:22:09,681 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 38) WFLYJCA0004: Deploying JDBC-compliant driver class org.h2.Driver (version 1.4)
 [0m [0m16:22:09,710 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 46) WFLYCLINF0001: Activating Infinispan subsystem.
 [0m [0m16:22:09,716 INFO  [org.wildfly.extension.health] (ServerService Thread Pool -- 45) WFLYHEALTH0001: Activating Base Health Subsystem
 [0m [0m16:22:09,732 INFO  [org.jboss.as.jaxrs] (ServerService Thread Pool -- 48) WFLYRS0016: RESTEasy version 4.7.2.Final
 [0m [0m16:22:09,761 INFO  [org.wildfly.extension.io] (ServerService Thread Pool -- 47) WFLYIO001: Worker 'default' has auto-configured to 8 IO threads with 64 max task threads based on your 4 available processors
 [0m [33m16:22:09,823 WARN  [org.wildfly.extension.elytron] (MSC service thread 1-3) WFLYELY00023: KeyStore file '/store/work/tc-work/37b47ae8b9c60325/full/testsuite/integration/manualmode/target/wildfly/standalone/configuration/application.keystore' does not exist. Used blank.
 [0m [0m16:22:09,845 INFO  [org.wildfly.extension.microprofile.config.smallrye] (ServerService Thread Pool -- 54) WFLYCONF0001: Activating MicroProfile Config Subsystem
 [0m [0m16:22:09,846 INFO  [org.jboss.remoting] (MSC service thread 1-4) JBoss Remoting version 5.0.23.Final
 [0m [0m16:22:09,848 INFO  [org.wildfly.extension.microprofile.faulttolerance] (ServerService Thread Pool -- 55) WFLYMPFTEXT0001: Activating MicroProfile Fault Tolerance subsystem.
 [0m [0m16:22:09,929 INFO  [org.jboss.as.connector] (MSC service thread 1-1) WFLYJCA0009: Starting Jakarta Connectors Subsystem (WildFly/IronJacamar @VERSION@)
 [0m [33m16:22:09,970 WARN  [org.jboss.as.txn] (ServerService Thread Pool -- 65) WFLYTX0013: The node-identifier attribute on the /subsystem=transactions is set to the default value. This is a danger for environments running multiple servers. Please make sure the attribute value is unique.
 [0m [0m16:22:09,981 INFO  [org.wildfly.extension.microprofile.openapi.smallrye] (ServerService Thread Pool -- 59) WFLYMPOAI0001: Activating MicroProfile OpenAPI Subsystem
 [0m [0m16:22:09,982 INFO  [org.wildfly.extension.microprofile.opentracing] (ServerService Thread Pool -- 60) WFLYTRACEXT0001: Activating MicroProfile OpenTracing Subsystem
 [0m [33m16:22:09,988 WARN  [org.wildfly.extension.elytron] (MSC service thread 1-8) WFLYELY01084: KeyStore /store/work/tc-work/37b47ae8b9c60325/full/testsuite/integration/manualmode/target/wildfly/standalone/configuration/application.keystore not found, it will be auto generated on first use with a self-signed certificate for host localhost
 [0m [0m16:22:10,002 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = h2
 [0m [0m16:22:10,015 INFO  [org.wildfly.extension.metrics] (ServerService Thread Pool -- 53) WFLYMETRICS0001: Activating Base Metrics Subsystem
 [0m [0m16:22:10,033 INFO  [org.wildfly.extension.microprofile.metrics.smallrye] (ServerService Thread Pool -- 58) WFLYMPMETRICS0001: Activating MicroProfile Metrics Subsystem
 [0m [0m16:22:10,043 INFO  [org.wildfly.extension.microprofile.jwt.smallrye] (ServerService Thread Pool -- 57) WFLYJWT0001: Activating MicroProfile JWT Subsystem
 [0m [0m16:22:10,044 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 61) WFLYNAM0001: Activating Naming Subsystem
 [0m [0m16:22:10,051 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0003: Undertow 2.2.10.Final starting
 [0m [0m16:22:10,067 INFO  [org.wildfly.extension.microprofile.health.smallrye] (ServerService Thread Pool -- 56) WFLYMPHEALTH0001: Activating MicroProfile Health Subsystem
 [0m [0m16:22:10,099 INFO  [org.jboss.as.naming] (MSC service thread 1-3) WFLYNAM0003: Starting Naming Service
 [0m [0m16:22:10,159 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0012: Started server default-server.
 [0m [0m16:22:10,160 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-4) Queuing requests.
 [0m [0m16:22:10,161 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-4) WFLYUT0018: Host default-host starting

@fjuma thanks!


chore(master): release 1.0.2

:robot: I have created a release beep boop
1.0.2 (2023-10-11)
🐛 Bug Fixes | Bug 修复

mode production (b89aa11)
package.json main (08e51fe)
package.json main (b51f601)
webpack中使用require引入html-webpack-plugin (80d193d)

👷 Build System | 构建

Update build dist (cd6d2f8)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/UzumakiHan/hfex-auto-externals-plugin/releases/tag/v1.0.2 :sunflower:


Not compatible with display-interface-spi version 0.5.0

Mipidsi is not compatible with display-interface-spi version 0.5.0
getting competition errors, even after moving to SPIInterface struct.

The next release of mipidsi will be compatible with display-interface 0.5.0. If you need support now you have to use a GIT dependency. There probably won't be any more breaking code changes between now and the next stable release.

This should be solved now


Remember scroll position when switching panels

Remembers scroll position for all panels. Fixes #4.

Hi @confused-Techie, I don't understand what you want me to do, not that familiar with the project. Could you, please, explain further? Thanks!

Hi @confused-Techie, I don't understand what you want me to do, not that familiar with the project. Could you, please, explain further? Thanks!

Sure, I've just committed a PR that adds tests to this repo. And would like to run these tests on your PR, but your PR needs that latest commit. So using Git you can Cherry-pick the commit which will add it to your PR and run said tests. If that's something you're unfamiliar with let me know and I can do it for you or provide some documentation on the process.

Ok, now I understand. Isn't a rebase better in this case?

Ok, now I understand. Isn't a rebase better in this case?

That would work as well. Anything that gets said commit to your PR.

@confused-Techie rebased on master.


added call for presentations

@FidelChe, please merge this so I can get the Canberra Call for Presentations going.

merged!


Support for repos that have 'Require a pull request before merging' + 'Require approvals' enabled

While I was testing out spr, I realized that it does not play nicely with repos that have the setting Require a pull request before merging + Require approvals enabled on the main/master branch. On merge, it changes the base branch for the top of stack PR which causes existing approvals to be set to stale, which causes the merge to fail as there are no approvals on that PR anymore. I looked through the Github repo settings to see if there was any way to make PR reviews not become stale on base branch change, but I didn't see anything unfortunately. I'm mostly wondering if there is any way spr could still be used with repos that have these setting enabled. If there is, I'd be happy to contribute a change.

Hi Dan,
Unfortunately it's not possible to set require pull requests on the stacked prs.
At Inigo we are using the following setup which works quite well for us, so hopefully it will work for you as well.
We have the following rules set on the base master branch:

Then setup another branch rule:
pr/*/*/*
And use the following setup:

Also "allow forced pushes" on these branches.
Lastly, in your .spr.yml:
requireChecks: true
requireApproval: true

With this setup, although pull request approval isn't "required" in github, spr still checks that the commit/branch has a pr approval, and you can see the status of your stack using git spr status.
Hope that helps.
Eitan

This is super helpful! Thank you so much @ejoffe


Ilho frontend integration

Description

Employer Open position add page UI with link from sign up
Backend hookup required
UI touch-up required

Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] Self review

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Thanks Danny! Typo fixed.


Use Arc for flow templates to make it thread safe

Use Arc for flow templates to make it thread safe

Cancelled in favor of a lighter implementation with PR #72


action types: Sync update-message event type with doc

This should help with #4840. Inheriting P1 from that issue.

See two currently unresolved questions at https://chat.zulip.org/#narrow/stream/378-api-design/topic/.60update_message.60.20event/near/1292941 .

Oh, and on the partial version of this that's in #4980 I see there's one other comment that's relevant here: https://github.com/zulip/zulip-mobile/pull/4980#discussion_r700592607
(Plus https://github.com/zulip/zulip-mobile/pull/4980#discussion_r700590443 , which I covered above but more tersely.)

Thanks for the review, revision pushed!
Please note this:

See two currently unresolved questions at https://chat.zulip.org/#narrow/stream/378-api-design/topic/.60update_message.60.20event/near/1292941 .

Confirmed in chat that we should expect message_ids to always be present; I intend to include that in my docs PR to resolve those two questions.

Thanks! This looks good -- merging.
Those two unresolved questions look to not affect these types, because they're both about the conditions under which a particular optional field is or isn't present; the fields are optional regardless.


pull request for e2e test at 01/18/2017 23:15:11

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Have TimeFlowStart / End in milliseconds

Hey @lspgn ,
We'd like to get the TimeFlowStart/End in ms (at least), currently it's in seconds and the ipfix fields handling better accuracy are all approximated to seconds, as we can see here: https://github.com/netsampler/goflow2/blob/main/producer/producer_nf.go#L353-L382
How could we do that without breaking compatibility? Provide a separate field for milliseconds, or having some config to choose time precision?

Hello!
I would go with adding two new fields with Ms suffix.
Thank you

PR was merged.

verified on my side, issue can be closed I guess

Thank you!


Fix some more bugs

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #2290

PR #2291

PR #2292

PR #2293

PR #2299

PR #2300

PR #2301

PR #2306   👈

This comment was auto-generated by Graphite.

Graphite Merge Job
Current status: ⏳ Queued to merge
This pull request is currently queued to be merged as part of a stack.
This comment was auto-generated by Graphite.

Job Reference: 7zq2l7t7DgYPmkkTX6LI


Use a part object as the layout template's scope

Instead of using a struct with a page accessor as the layout's scope, use a Rodakase::View::Part` object like we already do for the non-layout templates.
This allows rendering of partials via == partial_name instead of having to chain them onto the page object (i.e. == page.partial_name).
The general upshot is that it makes authoring layouts much more consistent with authoring templates by making the same partial rendering behaviour apply everywhere.

Copied from https://github.com/dry-rb/dry-web/pull/19, which was pushed back when dry-view was still a part of Rodakase/dry-web

This is an improvement in the consistency of template authoring, and has no real drawbacks, so I'm going to merge this one now.


Static Web Documentation

Changes made by this PR

Adds installation guide
Adds configuration guide
Status code guide
Adding rules

Coverage remained the same at 100.0% when pulling 8c0959727e1da74561bb295484e4fb19d487d4d9 on web-docs into 0120af5fb6db7d9592ebd874ac4e284ad523ebcd on develop.

Coverage remained the same at 100.0% when pulling 8c0959727e1da74561bb295484e4fb19d487d4d9 on web-docs into 0120af5fb6db7d9592ebd874ac4e284ad523ebcd on develop.


[Bug]: Oil isn't spawning in on survival world | different world of same seed is spawning in oil just fine

Forge Version
<IP_ADDRESS>54
Galacticraft Version
4.0.5
Log or Crash Report
No response
Reproduction steps

created survival world
noticed no oil was spawning
create identical world of same seed and noticed oil spawning in that world where the first world didn't

Going to need more information than this. Like a mod list (if anything else installed), logs, debug logs, anything

Alright I solved the issue and I know what caused it. I had some other mods installed including buildcraft which I accidentally left in my mods folder. I took it out after starting the world, I think what caused the issue is that buildcraft also has spawnable oil, when I removed buildcraft it also must've removed galacticraft's oil. I fixed the issue by removing galacticraft from my mods folder, booting up the game but not opening my world, closing the game, adding the mod back in, re-opening the game and my world and now oil is spawning on new chunks. Thanks for getting back to me regardless.

No problem, glad it was all worked out


New Twitter archive format unreadable

The latest Twitter archive is structured differently, with tweets now in a tweet.js file in the archive zip.
Current scripts & notebooks fail to load tweets from this format. Example with 4 tweets attached.
tweet.js.txt

Thanks for the heads up! I'll try downloading mine and will adapt the code asap! :)

Mh... I can't reproduce it with my own, I get a zip file which has the data/js/tweets/ subfolder with files named after yyyy-mm.json, e.g. 2008_04.js
How many tweets do you have overall? (I wonder whether it only does the splitting if there's too many tweets)

I also get data/js/tweets :(

I'm guessing @igorbrigadir is https://twitter.com/igorbrigadir with 8.9k tweets. I've only done 4.5k tweets and mine are split by month in the tweets subdirectory. So I'm guessing it's not number of tweets.

I have a much older yyyy-mm.json format archive downloaded too, but for this one, I first requested and downloaded on 2019-02-01 if that helps figure out how new / old this is.
I'll request another one in a week or so to check again (current one won't expire until 2019-03-03).
Here's a copy of the README.txt that comes inside:
README.txt

Oh, that looks totally different than the archive I got (and I requested mine just now and it's in the format I described above).
Did you download yours from the bottom of this page? https://twitter.com/settings/account
Because there's also some download your twitter data button on https://twitter.com/settings/your_twitter_data
The first link is the one that contains only your tweets and none of the other data for me. Currently waiting to see what comes out of the second one.

Ah, that's it! - I totally missed how there's 2 different places for your "Twitter Archive".
https://twitter.com/settings/account "Your Tweet Archive" is in the correct format, and everything works on twarxiv. The zipfile starts with your user_id like 495430242_...
https://twitter.com/settings/your_twitter_data "Download your Twitter data" archive is the one with tweets.js format, and contains a lot more information it seems (this is the one i tried to use first). These archives are called twitter-2019-02-01-...

Ah, great. That solves the issue! I think the your_twitter_data one is the one that's GDPR compliant and gives you a lot of additional information that Twitter has about yourself, such as your likes (like.js) and even your direct messages sent/received (direct-message.js).


Add -DoNotSaveData to UnInstall-NavContainerApp

Hi Freddy,
Can you add -DoNotSaveData parameter to UnInstall-NavContainerApp function?
This could be very useful in the app installation logic development process.

Will be included in the next version

Shipped in <IP_ADDRESS>


Bug: columns use client side property for identification

The table uses cId to track columns, which is only available when created through the client. When programatically creating a table this adds unneccessary complexity or creates a broken table.
Should be possible to track it by index instead.

Phase 1 is delivered, so this is not really part of any project


Feature Request: version metadata message property

Hi :wave:,
The workers logpush dataset contains a new scriptVersion object with three properties: id, message and tag (ref: https://developers.cloudflare.com/workers/configuration/versions-and-deployments/gradual-deployments/#logpush).
The binding however only contains id and tag. Is that an intentional choice, or could we get message added to it as well?
Ref https://workers-types.pages.dev/#WorkerVersionMetadata from https://github.com/cloudflare/workerd/blob/789638f0ef63e485ec03cfee13672cce10abff11/types/defines/versions.d.ts#L5-L10
In my testing, it appears that message is indeed missing from the binding: https://version-metadata-binding.danifoldi.workers.dev/, so it's not just a missing type declaration

@tanushree-sharma

Thanks for reporting! I've added a ticket internally (WC-2620) to track this work, though transparently we won't be able to get to it until Q4 at the earliest.
Curious about how you're using this binding?

We use id as a resource attribute in OpenTelemetry so if an update breaks something we can detect statistically significant changes in error rate that correlate to a new version


Clarification regarding the Zitadel connection

I have question, in the documentation you have provided the examples of connecting the frontend with zitadel cloud, yes ofcourse we understood, but we what about the backend, Do we need to setup the zitadel connection for backend also. If yes why didn't provide the document. Please consider this as high priority as we are in need to implement the zitadel in our application

We do have one quickstart that shows you how to integrate the login ui with all details. For that we choose one framework to give the general overview.
But we also have more examples for frontend and backend for different languages and frameworks.
You can find different backend examples in the Get Started - Backend Section

For example go: https://zitadel.com/docs/examples/secure-api/go

I will close this issue as it is answered.
Feel free to reopen if you have more information to share