Sonoff Zigbee Dongle Plus Error

Hello,
i got an Sonoff Zigbee Dongle Plus which i flashed with CC1352P2_CC2652P_launchpad_coordinator_20211217.hex and Flash Programmer 2 which worked.
But i cant get the Stick to work now, i tried it on

Unraid Server -> Home Assistant VM
Unraid Server -> IoBroker Docker
Raspberry -> Home Assistant OS

but i always get the same error, here the one from Home Assistant:
[s6-init] making user provided files available at /var/run/s6/etc...exited 0. [s6-init] ensuring user provided files have correct perms...exited 0. [fix-attrs.d] applying ownership & permissions fixes... [fix-attrs.d] done. [cont-init.d] executing container initialization scripts... [cont-init.d] config.sh: executing...  [19:23:24] INFO: Both 'network_key' and 's0_legacy_key' are set and match. All ok. [19:23:30] INFO: Virtual Machine not detected, enabling soft-reset [cont-init.d] config.sh: exited 0. [cont-init.d] structure.sh: executing...  [cont-init.d] structure.sh: exited 0. [cont-init.d] done. [services.d] starting services [services.d] done. [19:23:34] INFO: Successfully send discovery information to Home Assistant. 2022-01-08T18:23:37.837Z DRIVER   ███████╗ ██╗    ██╗  █████╗  ██╗   ██╗ ███████╗             ██╗ ███████╗                                   ╚══███╔╝ ██║    ██║ ██╔══██╗ ██║   ██║ ██╔════╝             ██║ ██╔════╝                                     ███╔╝  ██║ █╗ ██║ ███████║ ██║   ██║ █████╗   █████╗      ██║ ███████╗                                    ███╔╝   ██║███╗██║ ██╔══██║ ╚██╗ ██╔╝ ██╔══╝   ╚════╝ ██   ██║ ╚════██║                                   ███████╗ ╚███╔███╔╝ ██║  ██║  ╚████╔╝  ███████╗        ╚█████╔╝ ███████║                                   ╚══════╝  ╚══╝╚══╝  ╚═╝  ╚═╝   ╚═══╝   ╚══════╝         ╚════╝  ╚══════╝ 2022-01-08T18:23:37.852Z DRIVER   version 8.9.2 2022-01-08T18:23:37.854Z DRIVER    2022-01-08T18:23:38.059Z CONFIG   version 8.9.2 2022-01-08T18:23:41.115Z CNTRLR   querying controller IDs... 2022-01-08T18:23:42.951Z CNTRLR   Failed to execute controller command after 1/3 attempts. Scheduling next try i                                   n 100 ms. 2022-01-08T18:23:44.074Z CNTRLR   Failed to execute controller command after 2/3 attempts. Scheduling next try i                                   n 1100 ms. 2022-01-08T18:23:46.233Z DRIVER   Failed to initialize the driver: ZWaveError: Timeout while waiting for an ACK                                    from the controller (ZW0200)                                       at Driver.sendMessage (/usr/src/node_modules/zwave-js/src/lib/driver/Drive                                   r.ts:3354:23)                                       at ZWaveController.identify (/usr/src/node_modules/zwave-js/src/lib/contro                                   ller/Controller.ts:677:33)                                       at Driver.initializeControllerAndNodes (/usr/src/node_modules/zwave-js/src                                   /lib/driver/Driver.ts:978:26)                                       at Immediate.<anonymous> (/usr/src/node_modules/zwave-js/src/lib/driver/Dr                                   iver.ts:858:16) Error in driver ZWaveError: Failed to initialize the driver: ZWaveError: Timeout while waiting for an ACK from the controller (ZW0200)     at Driver.sendMessage (/usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:3354:23)     at ZWaveController.identify (/usr/src/node_modules/zwave-js/src/lib/controller/Controller.ts:677:33)     at Driver.initializeControllerAndNodes (/usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:978:26)     at Immediate.<anonymous> (/usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:858:16) (ZW0100)     at Immediate.<anonymous> (/usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:875:6)     at processTicksAndRejections (internal/process/task_queues.js:95:5) {   code: 100,   context: undefined,   transactionSource: undefined } Shutting down [cont-finish.d] executing container finish scripts... [cont-finish.d] done. [s6-finish] waiting for services. [s6-finish] sending all processes the TERM signal. [s6-finish] sending all processes the KILL signal and exiting.
here from iobroker:
 2022-01-08 17:43:46.854  - error: zwave2.0 (2199) Failed to initialize the driver: ZWaveError: Timeout while waiting for an ACK from the controller (ZW0200)     at Driver.sendMessage (/opt/iobroker/node_modules/zwave-js/src/lib/driver/Driver.ts:3390:23)     at ZWaveController.identify (/opt/iobroker/node_modules/zwave-js/src/lib/controller/Controller.ts:677:33)     at Driver.initializeControllerAndNodes (/opt/iobroker/node_modules/zwave-js/src/lib/driver/Driver.ts:978:26)     at Immediate.<anonymous> (/opt/iobroker/node_modules/zwave-js/src/lib/driver/Driver.ts:858:16) (ZW0100) 2022-01-08 17:43:46.854  - error: zwave2.0 (2199) Restarting the adapter in a second... 2022-01-08 17:43:47.855  - info: zwave2.0 (2199) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason 2022-01-08 17:43:48.044  - info: host.KrX-NaS instance system.adapter.calendar.0 started with pid 2282 2022-01-08 17:43:48.359  - info: zwave2.0 (2199) Shutting down driver... 2022-01-08 17:43:48.396  - info: host.KrX-NaS instance system.adapter.zwave2.0 terminated with code 156 (START_IMMEDIATELY_AFTER_STOP) 2022-01-08 17:43:48.397  - info: host.KrX-NaS Restart adapter system.adapter.zwave2.0 because enabled 2022-01-08 17:43:48.891  - info: net-tools.0 (2250) Port scan finished 2022-01-08 17:43:48.900  - warn: net-tools.0 (2250) State "net-tools.0.localhost.ports" has no existing object, this might lead to an error in future versions 2022-01-08 17:43:49.427  - info: host.KrX-NaS instance system.adapter.zwave2.0 started with pid 2294 2022-01-08 17:43:51.275  - info: zwave2.0 (2294) starting. Version 2.4.2 in /opt/iobroker/node_modules/iobroker.zwave2, node: v14.18.2, js-controller: 3.3.22 2022-01-08 17:43:52.044  - info: host.KrX-NaS instance system.adapter.smartthings.0 started with pid 2315 2022-01-08 17:43:53.187  - info: smartthings.0 (2315) starting. Version 0.0.2 in /opt/iobroker/node_modules/iobroker.smartthings, node: v14.18.2, js-controller: 3.3.22 2022-01-08 17:43:53.508  - info: smartthings.0 (2315) 1 devices detected 2022-01-08 17:43:56.173  - error: zwave2.0 (2294) Failed to initialize the driver: ZWaveError: Timeout while waiting for an ACK from the controller (ZW0200)     at Driver.sendMessage (/opt/iobroker/node_modules/zwave-js/src/lib/driver/Driver.ts:3390:23)     at ZWaveController.identify (/opt/iobroker/node_modules/zwave-js/src/lib/controller/Controller.ts:677:33)     at Driver.initializeControllerAndNodes (/opt/iobroker/node_modules/zwave-js/src/lib/driver/Driver.ts:978:26)     at Immediate.<anonymous> (/opt/iobroker/node_modules/zwave-js/src/lib/driver/Driver.ts:858:16) (ZW0100)

Are you sure those are the right logs (about zigbee)? Looks like they are pointing to a zwave problem.

thanks for pointing that out. Home assistant showed zwave after i pluged the stick in

so i thought that this integration is needed.
now i installed Zigbee2MQTT and it works. Thanks


Windows stuck at installer starting

I've tried Microsoft iso and custom iso but both get stuck here.

I've waited for several hours and it's still like this.
yml file
version: "3"
services:
  windows:
    image: dockurr/windows:latest
    container_name: windows
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
      - 48080:8080
      - 48000:80
      - 44443:443
    stop_grace_period: 2m
    restart: on-failure
    environment:
      MANUAL: "N"
      VERSION: "2008"
      RAM_SIZE: "8G"
      CPU_CORES: "4"
      DISK_SIZE: "500G"
    volumes:
      - /home/win:/storage

Do you only have this with Server 2008 or also with other versions?

I tried win7 and the same problem occurred.

same problem

Maybe both of you can share some info about your system, so we can see if you have something in common. For example the same CPU, or the same OS, or certain kernel.
Because it would be a lot easier to find a solution as soon as we know under what circumstances it occurs.

CPU: Intel(R) Xeon(R) CPU E5-2630 v2
OS:  CentOS 7.5.1804
Kernel: 3.10.0-862.el7.x86_64
Docker:  23.0.6
I appreciate it.

CPU: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
OS: CentOS 7.5.1804
Kernel:  3.10.0-862.el7.x86_64
Docker: 25.0.3


Chore/libs update

Implementing the last versions of the EthereumJS libraries.
needed for: https://github.com/block-wallet/extension/pull/318

We have an automation that creates a PR here when there are new features here https://github.com/MetaMask/eth-trezor-keyring. This PR will cause conflicts in the future (specially for the package.json and yarn.lock files) so we'll have to solve them manually. An example of the automation is this PR https://github.com/block-wallet/eth-trezor-keyring/pull/10


Allow redirect on parent component

Which scope/s are relevant/related to the feature request?
router
Information
I have the following folder/route structure:
/(documentation)
  /documentation
     /introduction.page.ts
     /[...not-found].page.ts
  documentation.page.ts

// /(documentation)/documentation.page.ts
export const routeMeta: RouteMeta = {
  data: {
    breadcrumb: 'Docs',
  },
};

@Component({
  selector: 'spartan-documentation',
  standalone: true,
  imports: [RouterOutlet, SideNavComponent, BreadcrumbsComponent, TwoSectionPageDirective, MainSectionDirective],
  hostDirectives: [ContainerDirective, RedirectDirective],
  host: {
    class: '',
  },
  template: `
    <spartan-side-nav />
    <section class="px-4 sm:px-0 py-6 lg:py-8">
      <spartan-breadcrumbs />
      <router-outlet />
    </section>
  `,
})
export default class ExamplesPageComponent {}

What I'd like to be able to do is redirect to /documentation/introduction whenever the /documentation route is accessed.
Ideally by simply providing the redirect to the routeMeta object
// /(documentation)/documentation.page.ts
export const routeMeta: RouteMeta = {
    redirectTo: 'introduction',
    pathMatch: 'full',
    data: {
    breadcrumb: 'Docs',
  },
};

Describe any alternatives/workarounds you're currently using
Manually redirecting with the following directive:
@Directive({
  selector: '[spartanRedirect]',
  standalone: true,
})
export class RedirectDirective {
  @Input()
  endsWith = '';
  @Input()
  commands: string[] = [];
  private _router = injectRouter();
  private _route = injectActivatedRoute();
  constructor() {
    this._router.events
      .pipe(
        filter((e) => e.type === EventType.NavigationEnd || e.type === EventType.NavigationSkipped),
        takeUntilDestroyed()
      )
      .subscribe((e) => {
        if (!(e as NavigationEnd | NavigationSkipped).url.endsWith(this.endsWith) || this.commands.length === 0) return;
        this._router.navigate(this.commands, { relativeTo: this._route });
      });
  }
}

The problem is that this will break clicking the browser's back button and you have to use a different link to get to a different page
I would be willing to submit a PR to fix this issue

[X] Yes
[ ] No

I think what you need here is an index route for /documentation.
/(documentation)
  /documentation
     /introduction.page.ts
     /index.page.ts
     /[...not-found].page.ts
  documentation.page.ts

With a redirect
// /(documentation)/documentation/index.page.ts
export const routeMeta: RouteMeta = {
    redirectTo: 'introduction',
    pathMatch: 'full',
    data: {
      breadcrumb: 'Docs',
    },
};

Yes I do think that should be the preferred way. It should be the same as a typical nested route. What happens when you set it up that way?

It just stays at /documentation. There’s no redirect happening.

Any errors in the console? What about redirecting to '../introduction'?

No errors. Here is what I found so far:
By nesting the index.html inside the folder we create a child with the '' path, which is what we want.
However, the child itself has a loadChildren function (which only unpacks the module on runtime), which then creates our redirect. And it seems like loadChildren and the redirect don't work together.

@brandonroberts I added e2e tests in the linked PR that displays the "issue".
I think the problem is that currently we only "look into the file" inside the loadChildren function.
With redirect we would need to do this during the creation of the routes so we know that inside the index.page.ts
is actually a redirect, which cannot be nested inside a loadChildren. I hope that makes sense.

Hey 👋
For the following routes config:
export const routes: Route[] = [
  {
    path: 'locations',
    children: () => [
      { path: '', redirectTo: 'new-york', pathMatch: 'full' },
      { path: 'new-york', component: NewYorkComponent },
      { path: 'belgrade', component: BelgradeComponent },
    ],
  }
];

navigating to /locations will redirect to /locations/new-york. However, for the following config:
export const routes: Route[] = [
  {
    path: 'locations',
    loadChildren: () => [
      { path: '', loadChildren: () => [{ path: '', redirectTo: 'new-york', pathMatch: 'full' }] },
      { path: 'new-york', component: NewYorkComponent },
      { path: 'belgrade', component: BelgradeComponent },
    ],
  }
];

redirection won't happen when navigating to /locations. Also, there is no error.

⚠ The same will happen if we replace loadChildren with children.

I think the best would be to check with the Angular team instead of finding workarounds on the Analog side because accessing the page files content during the routes creation phase to detect redirects will break the lazy loading of the page files.
For now, we can use absolute paths for redirections:
/pages
  /locations
    index.page.ts
    new-york.page.ts
    belgrade.page.ts
  locations.page.ts

/pages/locations/index.page.ts content:
export const routeMeta: RouteMeta = {
  // this works
  redirectTo: '/locations/new-york',
  pathMatch: 'full',
};

By the way, if the Angular team implements loadConfig feature, it will most likely solve this issue.

Thanks @markostanimirovic!! 👍  Using the absolute path works like a charm!
I can add a section to the documentation for that and while I am at it I could work on this if you want me to: https://github.com/analogjs/analog/issues/449

I plan to work on #449 this or next week, but if you already started working on it, let me know 🤘

I plan to work on #449 this or next week, but if you already started working on it, let me know 🤘

I’ll hold off then as I haven’t started yet! If you want you can use the same branch where I added a e2e test, if not I can also close the PR and delete the branch.

Hi, if there's any reason the routes can't be structured like this instead?
export const routes: Route[] = [
  {
    path: 'documentation',
    redirectTo: 'documentation/introduction',
    pathMatch: 'full',
  },
  {
    path: 'documentation',
    children: [{ path: 'introduction', component: Intro }],
  },
];

stackblitz example showing the working redirect: https://stackblitz.com/edit/stackblitz-starters-bxksk5


Soft read notifications when opening

Add note to a "soft read" status when opening (issue/commit/PR). Fades contents to 50% but DOESNT remove item (so you can go back). On reload the item is added to read list.

Not doing this, makes using the app more difficult. Must manually mark as read.

Maybe make this a setting? I would like this.

@BasThomas setting is a great idea


Workflow execution with a custom function fails with "Workflow currently unavailable"

Hello,
I'm testing the custom functions with slack bolt, I followed the entire tutorial. I run the app and see "Bolt app is running!" in my terminal.
I can see the custom step that I created and I can link it to my wokflow and save it successfully.
The problem is when I try to run the workflow, the following error appears:

Can you help me with this? Thanks.

Hey @BSouzaDock 👋  Sorry to hear you're getting caught by this error! I think this might be related to some workspace permissions instead of this sample, but want to get to the bottom of this in any case.
Are you trying to run your workflow in a developer sandbox or a production workspace? This shouldn't make a difference but it might be useful in checking a few things 🤔  Another thing to possibly check is if the "Default visibility for third-party steps" setting is on from the Admin settings: Settings > Organization policies.
I'm also curious if any logs appear for your app or if this error is appearing immediately when you try to start the workflow.

Hello @zimeg ,
Thanks for the answer.
We don't have a Sandox environment here, I'm doing it in production.
I didn't find this option "Default visibility for third-party steps" in Settings & Permissions.
I went to the workflow activity logs and no logs appear. The error appears every time the workflow is executed.
The configuration looked like this:

Hi @BSouzaDock , is it possible for you to share your workspace ID?

Hello @cchensh ,
Wouldn't this present a security risk? I can't send you a private message.

Hi @BSouzaDock , it makes sense, maybe you can send it to @zimeg 's email if you are okay with that. If not, based on the issue you shared here, I'm wondering is your workspace in a free plan or it's in a paid plan. If it's a free plan, you won't be able to run a workflow that contains custom functions, if you are in a paid plan, it worth checking with your workspace admin/owner to see if you still have premium workflow executions left.

@cchensh , In this case, I am the workspace admin. Here we have the enterprise select plan.
I've been developing using bolt for some time now and we have more than 10 woksflow steps from the legacy version.
I'm considering converting to the new version, as many people use it, and if it stops working in September, it will cause a big problem.

I checked the organization's workflow list. Only the one I created is marked as premium. But as there is no other, I believe that the error is not due to this, since there is no existing premium workflow execution, the execution of this would not generate expenses.

@BSouzaDock still not certain what might be causing this, but can you check that the "Complimentary" workflow run count is in range here: https://app.slack.com/manage/E0123456789/integrations/workflows (replaced with your enterprise ID)

Hi @zimeg ,
I do not have access to this enterprise id. It seems that this enterprise select license provides some features of the enterprise grid license, but does not create an organization.
I have access to this screen. The only premium wokflow is the one I created:
I created a sandbox account and ran tests on the same project and it worked normally. I have an open ticket on slack and they are checking it.

Updating here: the problem was related to the execution of premium workflows through the workspace.
The topic was resolved through an open request with the slack team.


Use round numbered buttons at top to select pages of custom buttons

Currently, we have a total of 80 customizable buttons (64 square + 16 rounded buttons).
What if we could use the top numbered buttons to select "pages" of buttons. That way we could organize things a little better and we'd get 576 assignable buttons (or you could make the rounded buttons on the right static between the pages and we'd have 512 customizable buttons).
Just a thought.

Oh, wow. You already used up all 80?
This would be quite the undertaking creating profiles mapped to buttons. And I don't think it would benefit the majority of users, most using ~20 keys or less.
The config is stored in the users appdata, so there is a different 'profile' for another logged in user.

At first thank you pretty much for this tool! Thats exactly what i was looking for!
I would really appreciate a function to switch between pages too. There are so many functions in obs which are helpful to have on the launchpad like switching the scene, display videos or play sounds.
In fact it would be a cheaper and simple version of the outcoming elgato streamdeck in may and i think there enough users which would love it.
Maybe something for the future?
Thank you so far for the great work and please excuse my bad english. ;)

Oh, wow. You already used up all 80?

Yes I have. I have 2 rows for just switching to different OBS scenes and that will be growing soon. Add to that sound fx and triggering different hotkey'd elements w/in those 16 scenes and suddenly 80 keys seems a bit...limiting.

This would be quite the undertaking creating profiles mapped to buttons.

I think it would be enough if there are more than one config file. For example the buttons on top or right side - as AquatikJustice has said.
Is it hard to realize that each button load its own config file?

I modified the get web request section to change between different config files.
I will upload a branch these days.

So finally here is my patcher: Patcher Download
Readme is included.

@mr-nix Any chance you could upload your forked version to Github?


Create Lecture Button Race Condition (?)

Describe the bug
Apparently, the create lecutre button has some weird behaviour
To Reproduce
Steps to reproduce the behavior:

Go to create lecture
Click on create lecture
Click on 0%, because nothing is happening
Click on 0%, because nothing is happening

Expected behavior

The button with 0% should count up
The button should be disabled (not clickable)

Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Linux
Browser Chrome
Version latest

Additional context
Not a critical bug, but I thought it is worth reporting

Is this a vod upload? 🧐

No, a selfstream


Can't bind to hidden attribute on md-input-container

Bug, feature request, or proposal:
Binding doesn't seem to work on the md-input-container as seen here:
        <md-input-container [hidden]="isHidden">
            <input mdInput
                   #dispayInput
                   type="text"
                   [required]="required"
                   [placeholder]="placeholder"
                   [(ngModel)]="displayValue"
                   [name]="id">
        </md-input-container>

But does work here:
    <div [hidden]="isHidden">
        <md-input-container>
            <input mdInput
                   #dispayInput
                   type="text"
                   [required]="required"
                   [placeholder]="placeholder"
                   [(ngModel)]="displayValue"
                   [name]="id">
        </md-input-container>
    </div>

What is the expected behavior?
It should bind, meaning if isHidden is true, the component will have the hidden attribute.
What is the current behavior?
Component is always displayed regardless of isHidden value.

This is because the hidden attribute is implemented in browsers as a simple css rule:
[hidden] {
  display: none;
}

This then gets overridden by any user-space style on display. For this reason, we consider using the hidden property to be an anti-pattern and recommend using ngIf instead.


no exe?

"2. Copy crt & pfx files and paste next to PayCheck3ServerApp.exe" i only see the folder with a cs file and cs project file.

You need to download the Built server from here first: https://github.com/SlejmUr/PayCheck3/actions
Select the top entry, scroll bottom and download PayCheck3-artifact

thanks


Simplify syntax for starting a shell.

Current command syntax mandates the use of an -s flag to set the support bundle location, but since this flag is mandatory and can only be set once, it might make more sense to have the support bundle location be a positional argument. i.e:
sbctl shell /path/to/bundle

sbctl shell .

sbctl serve /path/to/bundle

related: #59
How about we make -s optional, with a default of ./support-bundle.tar.gz?


Adding CLIP Pretrained Weights to ResNet

Requesting the addition of CLIP pretrained weights to ResNet model. This would greatly improve the performance of ResNet by allowing it to leverage the powerful representations learned by CLIP in downstream tasks. It would also make it easier for users to transfer knowledge between ResNet and CLIP without having to train their own models from scratch.
Thank you.

@LuoXin-s The OpenAI CLIP ResNets have an attention pooling layer that makes the models quite a bit larger than same depth ResNet (significant FLOPs and params in the layer), and less flexible (no longer fully convolutional).
I do have an impl of this layer but wasn't clear it's worth going the next step to add support, the ConvNeXt CLIP models I trained are much better and remain fully convolutional....

@rwightman OpenAI's models are trained with their private dataset, and I found that their model tend capturing more information about perceptual other than those trained by laion.


DDNS?

Please define "DDNS" before using the term.
My company is trying to understand how to get P2S client Azure DNS resolution working. Came here for answers, left with more questions.

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

ID: 98d7fd30-80a8-f690-6191-d97ae4cac174
Version Independent ID: 3e15f99b-2f2d-7adc-a2d9-0b2184989db7
Content: Azure VPN Gateway FAQ
Content Source: articles/vpn-gateway/vpn-gateway-vpn-faq.md
Service: vpn-gateway
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

@silverl ,
Thank you for your feedback. I will work on adding the DDNS definition in the document.
Meanwhile you refer to this documentation  on setting up a DNS forwarder on Azure.

Thanks! The product team will review the article and make updates as necessary. #please-close


set-cookie support for android video_player

Steps to reproduce

Overgive an url to the VideoPlayerController.networkUrl
The url normally returns a set-cookie header but on android the cookie is not saved
Error on init

Expected results
The player should save the cookie on android and then proceed to play the video.
Actual results
The player does not set the cookie inside of the headers.
Code sample
Code sample
 _controller = VideoPlayerController.networkUrl(
      Uri.parse(widget.streamUrl.url),
    );

Screenshots or Video
No response
Logs
No response
Flutter Doctor output
[✓] Flutter (Channel stable, 3.22.1, on macOS 14.5 23F79 darwin-arm64, locale en-IT)
• Flutter version 3.22.1 on channel stable at /Users/devluke/.local/share/mise/installs/flutter/3.22.1-stable
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision a14f74ff3a (2 weeks ago), 2024-05-22 11:08:21 -0500
• Engine revision 55eae6864b
• Dart version 3.4.1
• DevTools version 2.34.3
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /Users/devluke/Library/Android/sdk
• Platform android-34, build-tools 34.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15F31d
• CocoaPods version 1.15.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2023.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
[✓] IntelliJ IDEA Ultimate Edition (version 2024.1.2)
• IntelliJ at /Users/devluke/Applications/IntelliJ IDEA Ultimate.app
• Flutter plugin version 79.1.3
• Dart plugin version 241.17502
[✓] VS Code (version 1.89.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.90.0
[✓] Connected device (4 available)
• sdk gphone64 arm64 (mobile)     • emulator-5554         • android-arm64  • Android 14 (API 34) (emulator)
• macOS (desktop)                 • macos                 • darwin-arm64   • macOS 14.5 23F79 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 14.5 23F79 darwin-arm64
• Chrome (web)                    • chrome                • web-javascript • Google Chrome 125.0.6422.142
[✓] Network resources
• All expected network resources are available.

Sure I can help!

Hi @Yashraj-001
What is your current video_player package version? Does this issue only occur on Android or also occur on iOS app?
I don't see you set httpHeaders param on the snippet code above. Can you please provide a completed and minimal reproducible code sample that doesn’t include 3rd party plugins or complex production code?

Hi @huycozy,
The video_player has the version: 2.8.6
This issue only occurs on Android and does not occur on IOS. The problem that happens is when the video url is overgiven it returns a set-cookie in the http header. This works for iOS, because the video_player takes the cookie and sets it. But on android this cookie is disregarded. The httpHeaders property is not set on both, but ios sets it automatically.
Here is my current temporary Solution to this problem which works, for the test you would have to think the android part and getting of the header does not exist.
 final headers = <String, String>{};
    if (Platform.isAndroid) {
      try {
        final response = await http.get(Uri.parse(widget.streamUrl.url));
        if (response.statusCode > 299) {
          throw Exception('Failed to get headers');
        }
        headers[HttpHeaders.cookieHeader] =
            response.headers[HttpHeaders.setCookieHeader] ?? '';
      } catch (e) {
        await Future.delayed(const Duration(seconds: 1), () {}).then(
          (_) => context.router.maybePop('ERROR_STREAM'),
        );
        rethrow;
      }
    }
    _controller = VideoPlayerController.networkUrl(
      Uri.parse(widget.streamUrl.url),
      formatHint: widget.format,
      httpHeaders: headers,
    );
    await _controller?.initialize().catchError((Object error) {
      Future.delayed(const Duration(seconds: 1), () {}).then(
        (_) => context.router.maybePop('ERROR_STREAM'),
      );
    });
    _controller?.addListener(_onControllerChanged);
    await _controller?.play();
    ```

Is only set-cookie affected or are all headers ignored? Can you share a way to verify this on Android? This looks similar to https://github.com/flutter/flutter/issues/109379, you can visit and confirm if it is.

All headers are ignored form the request. Unfortunately at the moment i can not recreate this, but it is just a url which returns   theset-cookie header. This is also the one which should be later set on the player. On IOS i think this is done using the AVPlayer, because on inspection the controller does not have a header. But on android this needs to be done manually, the headers first has to be gotten and then set.
I also looked at the issue #109379 and this is different. In that issue the user wants to set the header with the flutter VideoPlayerController, but for my part i want the video_player to on request to url also set the cookie if it recieves a set-cookie header, so i don't have to set it manually.

Ok, I can reproduce this issue on Android with a local host.
Steps I did to reproduce this:

Run a local host with a script index_videoplayer_header.js which hosts a video file and has response like this:

response.writeHead(200, {
  'Content-Type': contentType,
  'Accept-Ranges': 'bytes',
  'Content-Length': Buffer.byteLength(content),
  'set-cookie': ['type=ninja']
});

node index_videoplayer_header.js

Verify headers are set by going to URL on the browser and check response headers:

HTTP/1.1 200 OK
Content-Type: video/mp4
Accept-Ranges: bytes
Content-Length: 2429896
set-cookie: type=ninja
Date: Mon, 10 Jun 2024 05:03:35 GMT
Connection: keep-alive
Keep-Alive: timeout=5

Run package example basic.dart with a modification at initState to print out the headers from URL:

_controller = VideoPlayerController.networkUrl(
  Uri.parse('http://<IP_ADDRESS>:8125/files/Butterfly-209.mp4'),
)..initialize().then((_) {
    // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
    setState(() {
      print('httpHeaders: ${_controller.httpHeaders}');
    });
  });

It returns an empty array of headers.

flutter doctor -v
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.22.2 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 761747bfc5 (31 hours ago), 2024-06-05 22:15:13 +0200
    • Engine revision edd8546116
    • Dart version 3.4.3
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode15.3.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

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

[✓] Android Studio (version 2023.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

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

[✓] Connected device (3 available)
    • iPhone (mobile) • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.8 19H370
    • macOS (desktop) • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome                                   • web-javascript • Google Chrome 125.0.6422.142

[✓] Network resources
    • All expected network resources are available.

• No issues found!

This sounds like an ExoPlayer-level behavior; we should see if it's something configurable in the data source.


ISSUE-187 remove model validation for 204

I'm not a JS developer but I did my best.
Issue desribed here: https://github.com/JaredCE/serverless-openapi-documenter/issues/187

This has been fixed with 0.0.94


Refactor cmd_devfile_create_test.go

What type of PR is this?
/kind tests
What does this PR do / why we need it:
Which issue(s) this PR fixes:
Fixes part of #5036
PR acceptance criteria:

[ ] Unit test

[x] Integration test

[ ] Documentation

[ ] I have read the test guidelines

How to test changes / Special notes to the reviewer:

/test psi-kubernetes-integration-e2e

/lgtm
/approve


storage: how are tracing and metrics collection decisions made

I am currently working on a primer for OpenCensus with cloud instrumented libraries. For this, I wrote up https://gist.github.com/odeke-em/616f70ea743d1fbc19da33c8d3bdf5dc or inlined[1]
For say a method like *Writer.Write, I'd expect some traces back and some stats say on the number of bytes written etc, and the same for *Reader.Read etc.
I figure we have to be conservative lest great increase latency for millions of users.
However, that got me asking myself: how tracing and metrics collection decisions made? If possible what other functions might we be able to trace and have metrics for?
[1]

import (
	"context"
	"io"
	"log"
	"os"

	"cloud.google.com/go/storage"
	"golang.org/x/oauth2/google"
	"google.golang.org/api/option"

	"contrib.go.opencensus.io/exporter/stackdriver"
	"go.opencensus.io/plugin/ochttp"
	"go.opencensus.io/stats/view"
	"go.opencensus.io/trace"
)

func main() {
	// Create the Stackdriver exporter
	sd, err := stackdriver.NewExporter(stackdriver.Options{
		ProjectID:    "census-demos",
		MetricPrefix: "gcs-oc",
	})
	if err != nil {
		log.Fatalf("Failed to create Stackdriver exporter: %v", err)
	}
	defer sd.Flush()

	// And for the custom transport to enable metrics collection
	ctx := context.Background()
	dc, err := google.DefaultClient(ctx, storage.ScopeReadWrite)
	if err != nil {
		log.Fatalf("Failed to create the google OAuth2 client: %v", err)
	}
	// Enable ochttp.Transport on the base transport
	dc.Transport = &ochttp.Transport{Base: dc.Transport}
	gcsClient, err := storage.NewClient(ctx, option.WithHTTPClient(dc))
	if err != nil {
		log.Fatalf("Failed to create GCS client: %v", err)
	}

	if err := view.Register(ochttp.DefaultClientViews...); err != nil {
		log.Fatalf("Failed to register HTTP client views: %v", err)
	}

	if err := view.Register(ochttp.DefaultServerViews...); err != nil {
		log.Fatalf("Failed to register HTTP server views: %v", err)
	}

	// For the purposes of demo, we'll always sample
	trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})

	bucket := gcsClient.Bucket("census-demos")
	obj := bucket.Object("hello.txt")
	// Write "Hello, world!" to the object
	w := obj.NewWriter(ctx)
	if _, err := w.Write([]byte("Hello, world!")); err != nil {
		log.Fatalf("Failed to write to object: %v", err)
	}
	if err := w.Close(); err != nil {
		log.Fatalf("Failed to close object handle: %v", err)
	}

	// Now read back the content
	r, err := obj.NewReader(ctx)
	if err != nil {
		log.Fatalf("Failed to read from object: %v", err)
	}
	defer r.Close()

	_, _ = io.Copy(os.Stdout, r)
}

First, we always add the OC transport. You don't have to do it yourself.
The client libraries only implement tracing, with one exception. For the most part, we trace each API call that makes an RPC. Spanner has some more fine-grained tracing, added at the request of the Spanner team.
Only pubsub uses metrics. Those were added to help us understand some issues around streaming pull. The gRPC clients already get a lot of metrics for free because gRPC provides them. The HTTP/JSON clients (storage and bigquery) do not, but since no one has requested any metrics, we haven't added them.
So to answer your questions:

How are tracing decisions made? Our policy is to trace API calls for all of the libraries.
How are metrics decisions made? Based on user demand.

First, we always add the OC transport. You don't have to do it yourself.

Oh cool, thanks @jba! I've updated my code below[2]

Only pubsub uses metrics. Those were added to help us understand some issues around streaming pull. The gRPC clients already get a lot of metrics for free because gRPC provides them. The HTTP/JSON clients (storage and bigquery) do not, but since no one has requested any metrics, we haven't added them.

Gotcha!

So to answer your questions:
How are tracing decisions made? Our policy is to trace API calls for all of the libraries.
How are metrics decisions made? Based on user demand.

Awesome that answers my questions!
[2]
package main

import (
	"context"
	"fmt"
	"io"
	"log"
	"os"
	"time"

	"cloud.google.com/go/storage"

	"contrib.go.opencensus.io/exporter/stackdriver"
	"go.opencensus.io/plugin/ochttp"
	"go.opencensus.io/stats/view"
	"go.opencensus.io/trace"
)

func main() {
	// Create the Stackdriver exporter
	sd, err := stackdriver.NewExporter(stackdriver.Options{
		ProjectID:    "census-demos",
		MetricPrefix: "gcs-oc",
	})
	if err != nil {
		log.Fatalf("Failed to create Stackdriver exporter: %v", err)
	}
	defer sd.Flush()

	// Register the trace exporter
	trace.RegisterExporter(sd)

	// Register the stats exporter
	view.RegisterExporter(sd)

	ctx := context.Background()
	gcsClient, err := storage.NewClient(ctx)
	if err != nil {
		log.Fatalf("Failed to create GCS client: %v", err)
	}

	if err := view.Register(ochttp.DefaultClientViews...); err != nil {
		log.Fatalf("Failed to register HTTP client views: %v", err)
	}

	if err := view.Register(ochttp.DefaultServerViews...); err != nil {
		log.Fatalf("Failed to register HTTP server views: %v", err)
	}

	// For the purposes of demo, we'll always sample
	trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})

	// Create our parent span for the upload tutorial
	ctx, span := trace.StartSpan(ctx, "opencensus.tutorial.Upload")
	defer span.End()

	// Using bucket "census-demos"
	bucket := gcsClient.Bucket("census-demos")
	obj := bucket.Object("hello.txt")

	// Write the current time to the object
	w := obj.NewWriter(ctx)
	now := fmt.Sprintf("The time is: %s\n\n", time.Now().Round(0))
	if _, err := w.Write([]byte(now)); err != nil {
		span.SetStatus(trace.Status{Code: trace.StatusCodeInternal, Message: err.Error()})
		log.Fatalf("Failed to write to object: %v", err)
	}
	if err := w.Close(); err != nil {
		span.SetStatus(trace.Status{Code: trace.StatusCodeInternal, Message: err.Error()})
		log.Fatalf("Failed to close object handle: %v", err)
	}

	// Now read back the content that we just wrote
	r, err := obj.NewReader(ctx)
	if err != nil {
		span.SetStatus(trace.Status{Code: trace.StatusCodeInternal, Message: err.Error()})
		log.Fatalf("Failed to read from object: %v", err)
	}
	defer r.Close()

	_, _ = io.Copy(os.Stdout, r)
}


feat(perf): adds CachedRetriever

Adds a base class for retrievers that handles caching and cache invalidation.
The target for this is Jaccard similarity, however that retriever has a lot of dependencies on files. So instead of trying to collect all of the external deps, I added some mock VSCode APIs, so that when accessing files or tabs, we automatically start tracking those as dependencies for the current retrieval and subscribe to changes in those. Currently we handle that pretty crudely, but it could be expanded to handle more fine grained dependencies.
EDIT: It's a bit hard to read the diff for JaccardSimilarityRetriever because I moved the getRelevantFiles function in as a method so it could access the tracking methods. The only difference is s/vscode.workspace/this.workspace/ and similarly for window
TODO:

[ ] Unit Tests
[ ] Fix a bug where closing tabs is not impacting cache lines for the tabGroups

Closes https://linear.app/sourcegraph/issue/CODY-2228/[autocomplete-latency]-add-additional-caching-to-the-jaccard
Test plan
Will add unit tests. Have manually tested.

Linked the Linear issue to the description.


Update admin-mode.md

Added known issue note for "flows may not trigger"

Taking to live via working branch.


Feat: Added Edit Banner Option||Fixed Follower Tab||Added isNotificationRead for Notification||Added NotReadNotificatoins Count

Description:
This PR addresses following issues -

Adding Edit Banner Option
Fixing Follower Tab
Adding Notification read Feature
Adding Unread Notification Count

Issue Mentioned:
Closes #1124
Video:
https://github.com/user-attachments/assets/8eeaaa01-6459-4733-9a8f-aff69a78c940
Additional Context:
N/A

@mdazfar2 kindly refresh both usercollections and blogcollections after merging it,since there is change in user schema,also im saying to refresh blogcollection since the blogcollection is full of test blogs,otherwise there is no need for blogcollection refresh


Only rebuild table while upgrading to prevent a fatal error with memory

This change is

@grabelle If field are empty, sql request returns the row with empty data, in your case, combination of idAttribute & idLang is not found this is why you have a undefined offset.

@grabelle I revert my commit, we need to investigate more time on your issue.


Code Testing

Anyone who wants to write unit tests for this project? That will be a good contribution.

Added on #31

Added on #31


Added Promptrix to TypeChat

Added Promptrix support to TypeChat library and examples.  Translator now returns a PromptSection and the model interface has been updated to take PromptSection as input along with optional PromptMemory and PromptFunctions objects which are needed by the renderer.
This change should put TypeChat in a great position to add support for conversation history and a more chat like experience.

@Stevenic I don't think we want to add a dependency on another library, but I do agree some more flexibility is needed in this space. I have put up #114 do hopefully address that.


"comparePasswords" couldn't prevent unequal password to submit

https://github.com/academind/yt-devmeetup-vue-firebase/blob/4d5df824f31edc94fe26e8150b5e8806fe404226/src/components/User/Signup.vue#L66
"comparePasswords" couldn't prevent unequal password to submit

should change to <v-btn type="submit" :disabled="password !== confirmPassword">


Update issue templates

To get higher quality issues, I changed the issue templates a bit:

Added fields for mods, dlcs and version numbers to the bug report template
Prevent users from easily opening completely empty issues
But added an explicit option to create an "other question" issue

Thanks!


Can't find the effect.

I have entered the link, this CodeSandbox, can't find any difference between un-commented and commented code..Maybe my PC is powerful enought to handle the heavy task...Do u want to use some tools to test your improvements, such as tinybench?

I've updated the example sandbox. Can you try again?
Do you have ideas on how it can be done with tinybench? The problem I see is that main-thread-scheduling is trying to make the user experience smooth without freezing the UI but it actually increases the total time it takes for the function to execute because it gives back control to other code to execute as well.

The example is great, I can see the input element is freezed when I input character.Maybe we can record the time interval from pressing keyboard to triggering change or input event of input element, when I commented yieldOrContinue, I found the input change can't catch up with the speed of pressing keyboard, look this gif, after pressing keyboard many times, the change event still don't stop.At the time when I moved the cursor, I had already stop pressing keyboard.But this freezing is very easy to perceive, there is no need to calculate the time interval.

I can't see the gif, maybe it wasn't uploaded. I might also add the time between updates at some point as well, I like the idea.
I'm happy you now see the difference. I'm closing this issue then. If you have any more feedback, I'm here. Thanks for the idea for the improvement!


Is it possible to invoke a scope method in the template?

Something like

Sorry for not replying sooner.
That's not currently possible, but I've been thinking of implementing that feature in a future release.

+1

So now you can use it as in my example or should I add $scope, like $scope.showDetails(data)?

@beradrian You should add the $scopeprefix. I resisted naming it as "scope" because nowadays people rarely need to deal with scopes, but I couldn't come up with a better name. I welcome suggestions :)

To be clear

?

@mbenford are you planning a new release including this fix soon, or should we directly use the commit hash for now?

@theBull Yes, your markup is correct. Take a look at this working plunker.
@vdsabev v3.1.1 has been released earlier today on all distribution channels. v3.1 had been released before, but don't use it because it's buggy.

Thanks, @mbenford, it works beautifully!
Something to note in our use case - we needed the event in the template of the <auto-complete></auto-complete> directive, but the template-scope attribute is set in the <tags-input></tags-input> directive.
Also, the autocomplete template click event bubbles up and the item gets added to the tags input list, unless the $event object is used to stop the propagation.
Example:
<tags-input template-scope="this">
  <auto-complete template="autocomplete-item-template"></auto-complete>
</tags-input>

$scope.deleteAutocompleteItem = function (item, $event) {
  $event.stopPropagation(); // Prevent item from being added to the list
  ...
};

Would be nice to reference this here: http://mbenford.github.io/ngTagsInput/documentation/api#tagsInput or http://mbenford.github.io/ngTagsInput/documentation/guides/custom-templates


vdebug appreciation issue

This vim plugin is absolutely awesome. <3

Woohoo! Thanks!
I'm not sure I can bring myself to close this...
On Sun, 30 Aug 2015 10:34 Claes<EMAIL_ADDRESS>wrote:

This vim plugin is absolutely awesome. <3
—
Reply to this email directly or view it on GitHub
https://github.com/joonty/vdebug/issues/224.


No Logging of actions to create Chain of Custody for actions

In testing a drive transfer between two users, I found that there was no chain of custody to prove that GAM was the actor that changed the permissions on the file.
I was able to find in the Drive Reports that the user I acted upon (User A) transferred directly from their account driveacls to another user (User B).
The Token logs show that User A used my GAM App's ID to do an action, but nothing that directly tied them together. If I was to make actions with a live users account, I may not be able to tell what was actioned by GAM and what was the actual user. If trying to do some forensics about what took place if there was a malicious action with a compromised GAM install, I would have to manually tie these events together.
I understand the limitations of GAM in that to action that transfer it does have to become that user and then make an API call on their behalf, which is creating the log situation above.
Is there a way to create, from GAM, a log of all actions taken by the client that is attached to that Service Account? This way, if the GAM service account gets compromised there are detailed logs showing the actions taken by GAM? Likely not possible in the Google Reports interface, but attached to the App backend, or, at the least, locally?
(My apologizes if something like this already exists, I didn't find it while researching.)

There's really no way to do this authoritatively. GAM runs locally. The admin audit log shows details of most admin actions. GAM logging something locally would only be prone to modifications locally.


Add selectAppend

This is handy when trying to write idempotent render functions where you want a single parent element selection which you can then call selectAll on.

i just asked adam for this and he pointed me to this :))))
good call julian!!


fix: Use splat syntax for cluster name to avoid (known after apply) in managed node groups

PR o'clock
Description
After some tests, I've noticed that all inputs of the null_data_source are already know.
  # module.eks.data.null_data_source.node_groups[0] will be read during apply
  # (config refers to values not yet known)
 <= data "null_data_source" "node_groups"  {
      + has_computed_default = (known after apply)
      + id                   = (known after apply)
      + inputs               = {
          + "aws_auth"        = "kube-system/aws-auth"
          + "cluster_name"    = "test-eks-uIVr3XSp"
          + "role_CNI_Policy" = "test-eks-uIVr3XSp20200505210731845200000005-20200505210733402400000008"
          + "role_Container"  = "test-eks-uIVr3XSp20200505210731845200000005-20200505210733399800000007"
          + "role_NodePolicy" = "test-eks-uIVr3XSp20200505210731845200000005-20200505210733441800000009"
        }
      + outputs              = (known after apply)
      + random               = (known after apply)
    }

The unknown values are computed one like random, id, etc. and those will be read only during apply unless we remove the count. In that way Terraform will always read datas before apply and avoid the (known after apply) issue. Sounds like a Terraform magic again 🤷♂
Resolves https://github.com/terraform-aws-modules/terraform-aws-eks/issues/843
Checklist

[ ] CI tests are passing
[ ] README.md has been updated after any changes to variables and outputs. See https://github.com/terraform-aws-modules/terraform-aws-eks/#doc-generation

It works. And fixes the issues 👍
I didn't know that TF 0.12 supported depends_on for variables. I thought this hadn't been implemented yet and the bug traffic I found had it potentially scheduled for 0.13. I would have gone that route if I'd known it existed when first implementing this module 😉

So should we go through https://github.com/terraform-aws-modules/terraform-aws-eks/pull/867 or continue on this PR ?

It works. And fixes the issues 👍
I didn't know that TF 0.12 supported depends_on for variables. I thought this hadn't been implemented yet and the bug traffic I found had it potentially scheduled for 0.13. I would have gone that route if I'd known it existed when first implementing this module 😉

@dpiddockcmp So should we go with #867 or continue on this PR ?

Let's stick with this. It sounds to work without notable change.

Just wanted to mention that I find the approach in #867 to be much more explicit and easier to understand. While it is true that the PR consists of more notable changes to the make-up of the module, it is more explicit, easier to understand and less "magic" than the approach here.
I have tested the changes in here and can confirm that they address the issues at hand, but I am unsure as to why that is exactly.


Module 'collections' has no attribute 'Iterable'

This module is breaking on newer versions of Python because collections.Iterable is deprecated. It should be replaced with collections.abc.Iterable. See https://stackoverflow.com/questions/53978542/how-to-use-collections-abc-from-both-python-3-8-and-python-2-7/53978543#53978543
Traceback (most recent call last):
  File "/home/pkkid/Projects/pushingkarma/pk/apps/budget/manager.py", line 140, in import_qfx
    qfx = OfxParser.parse(handle)
  File "/home/pkkid/Projects/pushingkarma/.direnv/python-3.10.4/lib/python3.10/site-packages/ofxparse/ofxparse.py", line 387, in parse
    ofx_file = OfxPreprocessedFile(file_handle)
  File "/home/pkkid/Projects/pushingkarma/.direnv/python-3.10.4/lib/python3.10/site-packages/ofxparse/ofxparse.py", line 147, in __init__
    super(OfxPreprocessedFile, self).__init__(fh)
  File "/home/pkkid/Projects/pushingkarma/.direnv/python-3.10.4/lib/python3.10/site-packages/ofxparse/ofxparse.py", line 65, in __init__
    if not is_iterable(self.fh):
  File "/home/pkkid/Projects/pushingkarma/.direnv/python-3.10.4/lib/python3.10/site-packages/ofxparse/ofxparse.py", line 40, in is_iterable
    return isinstance(candidate, collections.Iterable)
AttributeError: module 'collections' has no attribute 'Iterable'

I was using an out of date version. This was fixed in version 0.21.
Sorry for the noise.


v0.6.0 release checklist

Issues:

implement #7
add #25
implement #27
add #60
add #66
add #68
add #70
implement #71
test and document #79
implement #80
implement #81
fix #82
add #83
add #84, chain pipelines
implement #85
implement #86, upstream as https://github.com/huggingface/diffusers/pull/2158
implement #88
implement #96
fix #99
fix #100
fix #101
fix #106

Merges:

#91
#92
#93
#94
#102

Testing:

txt2img

256x256 with SD v1.5

[x] should fail: neon blobs
[x] seems to work (sometimes?) with DPM multi

512x512 with SD v1.5

DPM Multi

[x] should work

Euler A

[x] should work

512x512 with SD v2.1

[x] should work

768x768 with SD v2.1

[x] should work, given sufficient memory

extra models

512x512 with Knollingcase

[x] should work

512x512 with OpenJourney

[x] should work
[x] 256x256 seems to work as well

img2img

256x256 input

[x] should fail: neon blobs

512x512 input

[x] should work

1024x768 input

[x] should work

inpaint

outpaint

0 all sides

[x] should work, run 1 tile

256 all sides

[x] should work, run 8 tiles: image came out ok, but card reported Size: 1536x1536

512 top and bottom, 0 left and right

[x] should work, run 3 tiles

512 left and right, 0 top and bottom

[x] should work, run 3 tiles

upscale

Real ESRGAN

with CodeFormer

[x] should work

with GFPGAN

[ ] should work

without face correction

[ ] should work

using x2 model and x4 scale

[ ] should fail: tiles

using x4 model and x2 scale

[ ] should fail: tiles

using v3 model and x2 scale

[ ] TODO

using v3 model and x4 scale

[ ] TODO

Stable Diffusion

using x2 scale

[ ] should fail: tiles

using x4 scale

[ ] should work

with CodeFormer

[ ] should work

with GFPGAN

[ ] should work but doesn't: https://github.com/ssube/onnx-web/issues/87

without face correction

[ ] should work

interactions

generate a new image

[x] should request and then load an image from the server

delete a pending image

[ ] should remove a single image and leave the rest

delete a finished image

[x] should remove a single image and leave the rest

copy an image to img2img

[x] should switch to the img2img tab
[x] should populate the image source
[x] the generate button should be enabled

copy an image to inpaint

[x] should switch to the inpaint tab
[x] should populate the image source
[x] the generate button should be enabled

persist on refresh

[x] loading images
[x] switching tabs

Real ESRGAN + GFPGAN failed with:
[2023-02-05 23:33:39,374] WARNING: onnx_web.device_pool: job txt2img_902278279_b2f2069fbb92453a47865671c194efa56bd10c955f3d264dc3a72de692bfcd5d_1675661585.png failed with an error: ['Traceback (most
 recent call last):\n', '  File "C:\\Users\\ssube\\stabdiff\\onnx-try-2\\onnx-web\\api\\onnx_web\\device_pool.py", line 192, in job_done\n    f.result()\n', '  File "C:\\Users\\ssube\\AppData\\Local
\\Programs\\Python\\Python310\\lib\\concurrent\\futures\\_base.py", line 451, in result\n    return self.__get_result()\n', '  File "C:\\Users\\ssube\\AppData\\Local\\Programs\\Python\\Python310\\li
b\\concurrent\\futures\\_base.py", line 403, in __get_result\n    raise self._exception\n', '  File "C:\\Users\\ssube\\AppData\\Local\\Programs\\Python\\Python310\\lib\\concurrent\\futures\\thread.p
y", line 58, in run\n    result = self.fn(*self.args, **self.kwargs)\n', '  File "C:\\Users\\ssube\\stabdiff\\onnx-try-2\\onnx-web\\api\\onnx_web\\diffusion\\run.py", line 67, in run_txt2img_pipelin
e\n    image = run_upscale_correction(\n', '  File "C:\\Users\\ssube\\stabdiff\\onnx-try-2\\onnx-web\\api\\onnx_web\\upscale.py", line 56, in run_upscale_correction\n    return chain(job, server, pa
rams, image, prompt=params.prompt, upscale=upscale)\n', '  File "C:\\Users\\ssube\\stabdiff\\onnx-try-2\\onnx-web\\api\\onnx_web\\chain\\base.py", line 103, in __call__\n    image = process_tile_gri
d(\n', '  File "C:\\Users\\ssube\\stabdiff\\onnx-try-2\\onnx-web\\api\\onnx_web\\chain\\utils.py", line 36, in process_tile_grid\n    tile_image = filter(tile_image, (left, top, tile))\n', '  File "
C:\\Users\\ssube\\stabdiff\\onnx-try-2\\onnx-web\\api\\onnx_web\\chain\\base.py", line 96, in stage_tile\n    tile = stage_pipe(job, server, stage_params, params, tile, **kwargs)\n', '  File "C:\\Us
ers\\ssube\\stabdiff\\onnx-try-2\\onnx-web\\api\\onnx_web\\chain\\correct_gfpgan.py", line 72, in correct_gfpgan\n    gfpgan = load_gfpgan(server, upscale, upsampler=upsampler)\n', '  File "C:\\User
s\\ssube\\stabdiff\\onnx-try-2\\onnx-web\\api\\onnx_web\\chain\\correct_gfpgan.py", line 30, in load_gfpgan\n    upsampler = load_resrgan(ctx, bg_upscale)\n', "TypeError: load_resrgan() missing 1 re
quired positional argument: 'device'\n"]

Fixed the GFPGAN device error, but using Real ESRGAN with GFPGAN is still producing scattered tiles:

Most of the app seems to be working, but there are a few issues around combined upscaling + correction and the outscale parameter that I want to fix before cutting the release.


Fix turborepo cache hashing; bring back "workspaces focus"

This should fix all build issues we've been having.

Codecov Report

Merging #2006 (6c788fc) into develop (418493b) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 6c788fc differs from pull request most recent head d858b7e. Consider uploading reports for the commit d858b7e to get more accurate results

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff            @@
##           develop    #2006   +/-   ##
========================================
  Coverage    70.10%   70.10%
========================================
  Files          101      101
  Lines         5138     5138
  Branches       953      953
========================================
  Hits          3602     3602
  Misses        1529     1529
  Partials         7        7

I'm not sure if this is a full fix, there was a weird failure on Vercel that might be explained by old Vercel-specific Next.js caches that will resolve on their own. Or maybe I'm missing something else here.
Anyway, this shouldn't make things worse.
Main change here is that Github Actions turbo caches and Vercel turbo caches are completely separate now.


Enderite Shears don’t shear honeycomb from beehives

This can be replicated by attempting to use the enderite shears on full beehives.

Should be fixed with Version 1.3.3. Thanks for the report!


Add matcher to detect softmax op and add pass to raise op

LGTM as long as code owners have no objections.

Fundamentally, the result of any matcher capturing more than a single operation can be materialized in the payload IR as a new operation. At the same time, it does not necessarily imply fusion, it may be a just a mechanism to preserve the result of the match through passes and then decompose it back into constituents that will be fed to downstream transformations without any fusion.
One possibility provided by matchers is indeed capturing a narrowly specific case and using a customized implementation. I am seeing it as a necessary escape hatch that at least leverages the common infrastructure as opposed to rolling a custom detection-and-transformation pass.

The matching implementation makes sense to me.
However the raising aspects trigger some red flags for me .. I have the impression that the raising aspect may be trying to work around difficulties with the grouping at flow + delayed fusion implementation.
If so, are we starting to leak codegen constraints to the frontend opset and does this generalize going forward?

The issue here is what are the codegen constraints. That can only be defined if we know a generic mechanism for generating the executable code. There is one generic characterization that I can think of, but some ops dont fit into those. For example, in the case of softmax, there is a fairly ad-hoc rematerialization of some ops done to actually generate the final code, i.e. the strategy used for generating code for softmax does not fit into how everything else is handled. Instead of relying on some ad-hoc transformations to generate code for these ops, that have to thread a narrow path to hit exactly the sequence of ops that sequence of transformations was meant for, matching it and replacing it with an op, then lets you use the op name to steer code-generation. Is it sustainable, thats TBD. Maybe as more operations of these kinds are handled, there might be a generalization that  covers all of these. I dont see a reason to block this PR for that reason.

Not questioning the value of having more and better named ops that simplify parts of the compiler and make the IR significantly nicer to operate on.
In particular, one of the key value of such named ops is "idiomatic abstraction that avoids needing complex matchers". Yet we are precisely building very complex one-off matchers. It also seems somewhat brittle .. what if the matched constant is different for some reason: are we going to see a 100x perf drop because we special cased a codegen path that we are not able to match?

No, it wont be 100x. If you decompose softmax it will become two dispatches instead of 1. That wont be 100x off (unless there is a backend issue where it cant handle reduction for whatever reason. It wont be "the best possible way", but should still be reasonable.

To be clear, I think there is room for such a "raising" transformation in general: this is the inverse of the Generalize transformation for one particular use case. It is maybe also one of the evolutions of matcher/generator infra to be able to save us from the hardships of writing complex matchers as an inverse problem.

Yup agreed to that... having better matching infra (what is used today is along that path IMO) would make this easier.

Still, this smells very fishy and I am wondering whether the implications have been well discussed: are we going to latch on this op to perform the equivalent of fusion during codegen?
Putting a blocker on this so this can be discussed.

Dont see a reason to put a blocker on this. There are so many PRs that have landed that could have been blocked the same way. We can discuss this after the fact.

Dont see a reason to put a blocker on this. There are so many PRs that have landed that could have been blocked the same way. We can discuss this after the fact.

Discussion has occurred, releasing.

No, it wont be 100x. If you decompose softmax it will become two dispatches instead of 1. That wont be 100x off (unless there is a backend issue where it cant handle reduction for whatever reason. It wont be "the best possible way", but should still be reasonable.

Great, this is the high order bit I wanted to see, thanks!


CB-7830: Fix NullPointerException when appversion is not present

If the appversion is not filled out in the database, then a null
pointer exception will happen when
ClusterProxyServiceAvailabilityChecker is used.
Unit tests were added.
Closes #CB-7830

I didn't actually experience this issue but happened to notice the fix for CB-7404 when doing the post mortem for CB-7767 and I thought it would be a good idea to fix it the second location (ClusterProxyServiceAvailabilityChecker).


Moment.js not working in bundled versions.

Expected Behavior

Current Behavior

Possible Solution

Steps to Reproduce (for bugs)

Context

Environment

Chart.js version:
Browser name and version:
Link to your project:

Hello! I created a chart with Chart.js using the bundle.min version, as it explains in your documentation that the bundles include moment.js for configuring the axis to represent time. Unfortunately this did not work, and I was only able to overcome this problem by downloading and linking to my project both Chart.js (not bundled) and moment.js.
I just thought you might want to know!

@BGGrieco what is not working?

@etimberg Oh damn, sorry, thought I had left an explanatory comment, apologies. Basically it says in the Chart.js docs that the bundled versions include moment.js so we don't need to download it and use it separately in case we want an axis to represent time. However this has not worked for me, you can see the details here: https://stackoverflow.com/questions/46766670/charts-js-moment-is-not-defined-using-chart-bundle-min-js/46767023?noredirect=1#comment80479718_46767023

No worries. I think this is similar to another issue. Will try and find it to link it here

I am facing similar problem. any updates on this issue ? if it is fixed in later versions ?

Chart.bundle.js is a self contained release in which moment is not accessible from outside. I think this StackOverflow answer gives a great answer to your issue.
I don't know if we should expose moment somewhere under Chart (Chart.moment?), though we are considering to drop moment for another library. I'm actually thinking that we should deprecate these bundled builds because it brings more confusion and rigidity than benefits compare to importing moment and Chart.js separately.


Fix and speed up the CI workflow

ci: Use the special ci_checks_max session
ci: Don't use env in matrix
ci: Fix dependency on non-existing job
ci: Remove DEFAULT_UBUNTU_VERSION

Fixes #62.

Force-merging as it is was tested by @cwasicki


Initial Clang Support / Windows Cleanup

This PR provides some initial support for Clang. There will be a PR in the future to make a change on how clang is called, which will cause another configure version tick, but will keep clang more inline with what we are doing with GCC.
While developing this patch, I noticed that Windows was completely broken due to two issues documented here:
https://github.com/Bareflank/hypervisor/issues/213
Basically:

Cygwin did an update that caused more GSL code to stop compiling.
Windows did an update, which caused some of the driver code to stop compiling, which just needed a swap of some header files
Our TLS implementation was wrong in so many ways, so I reverted those changes. This could cause stability issues with on_success on_failure, but for now it seems to work. This code will be fixed shortly in a new PR

In general, this PR should allow us to continue development and testing, including with Clang, while we sort out some issues.

Coverage remained the same at 100.0% when pulling 43290d741d813e552f433eb5c9e5006e87915213 on rianquinn:clang_support into 42637a10a4e4ed7db92011aa681822473ed44133 on Bareflank:master.

It looks like the clang support puts us beyond the time limit allowed by appveyor for free accounts.

Yeah, I am working this right now. In the end we will need to download the cross compilers, so this PR will get updated with how to do that. AppVeyor doesn't support docker, so we will basically mimic it instead.
The harder part is were to put the cross compilers. For now I think I can make it work with DropBox, but we really need to host the file somewhere.

Coverage remained the same at 100.0% when pulling 6397d526211346007c0eb281db5b7c7e28cc2369 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling fd0648e2d14dc3e269ecca81299559cf4b9ffae7 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling 0cc50da321f3c5200aff64e073d3e1e5dd44008c on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling 0cc50da321f3c5200aff64e073d3e1e5dd44008c on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling 3f3fb8f4a237e7495e6ef707bed18791943a9858 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling b6db18f256b8ed63e3d00a98fbf0bc902dbe693b on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling f72948d430e8506909a6363a5ee1b1ce88b8e18d on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling b943376f1944a540bf76801028f157c96ca5a424 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling 5fe7e50b5cfa6e4e4a97a3dd95458f93d3a35de4 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling 488b98c1fe7914ca3d5228a7308b5e527b3a8178 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling a9838773cdc614746ede4918e65cd5a20a800e60 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling a9838773cdc614746ede4918e65cd5a20a800e60 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling f484bad3660a075cfee620b2ceb9c0fa515ec1ba on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling 32ff1d2370524bb41c2532c979ac3f725fc6ee79 on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

Coverage remained the same at 100.0% when pulling c2d77c416714927efb24a1b89555044fa6a699ac on rianquinn:clang_support into 586aefbff62d898a60f96ad4fa3eb81fda83961a on Bareflank:master.

It's a "festivus miracle". This PR took a long time to get right. Long story short is:

AppVeyor only gives you a hour, and Clang + GCC compiling on windows takes longer than that.
Needed a place to store pre-compiled Windows cross compiler. We now have a file server for this.
The cross compilers were originally compiled in Windows 10, which didn't work on Windows 8.1 and 2012 R2, so I had to re-compile in Windows 8.1
Compilation of BFM on Windows is still GCC, which is fine since we really want to compile BFM and the drivers with Visual Studio at some point anyways.

LGTM


Update GitHub Action to use Node.js 20 runtime

Fixes #44
Tested against my own fork and the action runs without issue and without the warning. However, I may not have performed a full battery of testing or against dependencies.
Happy to contribute further with some more guidance one what should be tested if more is required.

Thank you so much for the contribution! <3
@all-contributors please add @yarosz for their maintenance contribution


KNOX-2659 - Travis build failure: '/usr/bin/mvn': Operation not permitted.

What changes were proposed in this pull request?
Travis builds are failing with:
Status: Downloaded newer image for maven:3-jdk-8
travis_time:end:1f172450:start=1631006005539129433,finish=1631006018654506434,duration=13115377001,event=before_install
travis_fold:end:before_install.2
travis_time:start:06b9262b
$ $DOCKERRUN $IMAGE mvn -T.75C clean verify -U -Dshellcheck=true -Dsurefire.useFile=false -Djavax.net.ssl.trustStorePassword=changeit -Dmaven.wagon.http.retryHandler.count=5 -Dmaven.wagon.http.retryHandler.class=default -Dmaven.wagon.http.retryHandler.nonRetryableClasses=java.io.InterruptedIOException -Dhttp.keepAlive=false -B -V
ls: cannot access '/usr/bin/mvn': Operation not permitted
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher

Let's try this and see what happens.

🤞

Better option looks like to specify the OS distribution and update the Docker install to be the version based on https://github.com/carlossg/docker-maven/issues/221

https://docs.travis-ci.com/user/reference/focal/
https://docs.travis-ci.com/user/docker/#installing-a-newer-docker-version

Better option looks like to specify the OS distribution and update the Docker install to be the version based on carlossg/docker-maven#221

https://docs.travis-ci.com/user/reference/focal/
https://docs.travis-ci.com/user/docker/#installing-a-newer-docker-version

Can we control what docker version is used by travis?

With "csanchez/maven:3-openjdk-8" and "csanchez/maven:3-openjdk-11" the first 2 jobs passed, only the ARM job failed.

Better option looks like to specify the OS distribution and update the Docker install to be the version based on carlossg/docker-maven#221

https://docs.travis-ci.com/user/reference/focal/
https://docs.travis-ci.com/user/docker/#installing-a-newer-docker-version

Can we control what docker version is used by travis?

@zeroflag - you may find this PR useful: https://github.com/twilio/twilio-java/pull/644/files
They applied this change to fix the same issue that Knox is facing now.