Installation Issue - Publish User Model

Greetings,
As per the title of this issue, the automatic installation process stops on Step 2 of 5.   Creating users table (using Laravel's default migration).  The User table is indeed present, but it won't get past Step #2.
After moving to manual installation, this one particular command produces the following error:
> php artisan backpack:publish-user-model

Command "backpack:publish-user-model" is not defined.

These are my environment details, your wisdom is greatly appreciated.
PHP VERSION:
PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
LARAVEL VERSION:
v8.29.0@d2eba352b3b3a3c515b18c5726b373fe5026733e
BACKPACK VERSION:
4.1.36@779364646e3b57258b981ff9f1bdcd9887143836

Hi @aerostah!
Thank you fr rising this, that's actually our fault, that command is no longer used.
That part of the documentation is outdated.
Sorry for the trouble, I've just pushed a PR to fix it.
For now you can just skip that command.
And if you wish we can help on the automatic installation process. It should work.
Let us know more details about the error.

The problem is that when you go to create the user record in tinker, you get this error:

$user = new App\User();
PHP Error:  Class 'App\User' not found in Psy Shell code on line 1

Both autoinstall and manual are not working. What command should i run to get the user model in place?

Hi @aerostah!
Laravel 8 now uses the User Model inside the App\Models folder.
Backpack supports this new approach since Laravel made the move.
I've never used Tinker, but make sure either you set it, or tinker knows the correct path of the User App\Models\User.

Yes, I changed the command to:
$user = new App\Models\User();
This allowed me to run the other commands and create the account,
I appreciate the help.  Thank you.


Remove nodata attributes for data outputted from calculate_indices

From Slack:

This actually doesn't appear to be an issue: because calculate_indices creates new variables from scratch, no outputs contain nodata after all.


Allow applying additional patches

Not very pretty, but useful when having to apply local patches for the Python code. Can be done like this:
(self: super: {
  inherit (authentik-nix.lib.mkAuthentikScope {
    pkgs = self;
    extraPatches = [
      ./hackhack.patch
    ];
  }) authentikComponents;
})

This cannot be used currently for Go patches since I left it out for the gopkgs part intentionally due to the filterSource stuff since it's somewhat likely that a patch contains stuff that's filtered out by the filterSource expression. Not sure what to do about that.
cc @fpletz @WilliButz

Why not just remove the inherit authentik-src lines from components/default.nix? Then authentik-src could just be overridden in the scope, which would allow both different versions of Authentik as well as patches.

I'm not sure I understand?
The authentik-src should be overridable already or do you mean putting it into the scope to allow overriding it for all components?

I'm not sure I understand? The authentik-src should be overridable already or do you mean putting it into the scope to allow overriding it for all components?

Yeah, right now you need to do something like authentikComponents = mapAttrs (_: c: c.override (old: { authentik-src = applyPatches { src = old.authentik-src; ... }; })) prev.authentikComponents to override it for each component separately.
It's already in the scope, it's just not being pulled from there for the packages that have inherit authentik-src

I'm not quite sure here. Wouldn't it be sensible to make authentik-src a top-level member of the custom scope and let the other components access it from there?
I don't think it is necessary to apply patches to authentik-src per component, instead it should be fine to use one patched source for all components by default.
Thoughts on this? :)

I think my concrete suggestion would be to remove all the inherit lines inside callPackage in components/default.nix, and add inherit buildNapalmPackage mkPoetryEnv defaultPoetryOverrides authentikPoetryOverrides  to the top level of the scope.
Then all the packages will get their arguments from the scope, and you can either override them globally with .overrideScope or you can override them for a specific package with .frontend.override.

I don't think it is necessary to apply patches to authentik-src per component, instead it should be fine to use one patched source for all components by default.

I think the problem with this is that other components access the source on eval-time resulting in IFD which I'd like to avoid.
Can probably solved with e.g. dynamic derivations or if flakes ever get the ability to apply patches to inputs.
Modifying the source path itself is equivalent to just overriding the flake input, so in that case we don't need a change.
So to me it seems either patches being applied everywhere or (for now) or the status quo. Since you're the maintainer, I'd leave this up to you :)

Then all the packages will get their arguments from the scope, and you can either override them globally with .overrideScope or you can override them for a specific package with .frontend.override.

Sounds reasonable to me. If @WilliButz agrees, I'd update the PR for that, but let's discuss the patching part first.

I don't think it is necessary to apply patches to authentik-src per component, instead it should be fine to use one patched source for all components by default.

I think the problem with this is that other components access the source on eval-time resulting in IFD which I'd like to avoid. Can probably solved with e.g. dynamic derivations or if flakes ever get the ability to apply patches to inputs.

Good point! I wouldn't want to introduce IFD for this.

Modifying the source path itself is equivalent to just overriding the flake input, so in that case we don't need a change.
So to me it seems either patches being applied everywhere or (for now) or the status quo. Since you're the maintainer, I'd leave this up to you :)

I think it should be fine to apply patches for the components that need patching, of which there is only one at the moment.

Then all the packages will get their arguments from the scope, and you can either override them globally with .overrideScope or you can override them for a specific package with .frontend.override.

Sounds reasonable to me. If @WilliButz agrees, I'd update the PR for that, but let's discuss the patching part first.

Yes, aside from the issue with applying patches to the authentik-src, I think the suggestion from @quentinmit is still valuable. Making all those attributes direct members of the scope seems cleaner than the current approach as it would allow users to override authentik-src for all components, either when instantiating a custom scope (with IFD), or going via flake input override (without IFD), as mentioned by @Ma27

Yes, aside from the issue with applying patches to the authentik-src, I think the suggestion from @quentinmit is still valuable\

Agreed. I'm not in a need for such a change currently and taking care of that has no real priority for me.
To make this explicit, I'll close this PR now, sorry.


lib/resin-jetson-flash: Update jetson-xavier to 32.7.3

Fixes https://github.com/balena-os/balena-jetson-orin/issues/239

Support already merged in a different PR


Remove CET from CI

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description

Please describe your changes: Removed references for CET in regards to CI - the Run Tests step no longer supports CET even with both modules enabled.
Jira/GitHub Issue numbers (if any): ______________________________
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://667c86b10786a80e6d66b89f--harness-developer.netlify.app


Text front chnage

I want to have multiple front to choose , In the current scenario only one front is available. How to do that ?
I read doc but not able to get it. Thanks .

This Wiki will help.
The sample app does not showcase that how to add fonts in the text. But you can do by using mPhotoEditor.addText(yourFontTypeface,yourtext,youtextcolorcode)
You need to create your own font selector and that by the selected font typeface to above code.

Can I change the background color of the photoeditorview using ColorPickerAdapter exist in the project?
If you please help in that case. Will be thank full.
(I am trying to change the background color of transparent image by chnaging photoeditorview )

This Wiki will help.
The sample app does not showcase that how to add fonts in the text. But you can do by using mPhotoEditor.addText(yourFontTypeface,yourtext,youtextcolorcode)
You need to create your own font selector and that by the selected font typeface to above code.

Thank you for your quick reply dear.


feat: add NAIVE_UNIX_EPOCH constant to PrimitiveDateTime

I am not sure if this is acceptable in terms of interface time crate want to provide. I think NAIVE prefix is nice suggestion that developer is responsible for correctness of logic here and such constant can be useful.

"Unix epoch" fundamentally requires a time zone, as it measures time since 1970-01-01 0:00 UTC. If a user wishes to use the value without a time zone, it can be trivially constructed (at compile-time) using datetime!(1970-01-01 0:00).
In the future, I intend on implementing additional functionality such that it's possible to have a statically-known offset with zero runtime overhead. However, this likely requires language features that are not near stabilization.


[BUG]: Weird Sketch on face behavior when sketching on a body that can rotate

Describe the bug
The start point of a sketch on face changes when the face is moved, in a way that I don't believe is intentional. When the J1 axis of this robot arm is rotated across the red axis many of the origin points flip, sending pieces of it flying.

Some of them are just flipped in X from negative to positive or vice versa, which I can fix by multiplying the X origin value by the negative identity of cosine of the J1 angle
const sketch009 = startSketchOn(extrude007, 'END')
  |> circle([
       1.75 * cos(axisJ1) / abs(cos(axisJ1)),
       8
     ], 0.5, %, $referenceEdge3)
const extrude009 = extrude(0.15, sketch009)

However a lot of these are seeing their X and Y start point flipped, which I'll need to think more about what math tricks I should use to fix this. For example the start point of the circle in sketch012 needs to change from [-1.75, 8] to [-8, 1.75] whenever the robot base rotates 180 degrees
const sketch012 = startSketchOn(extrude011, 'START')
  |> circle([-1.75, 8], 1.9, %, $referenceEdge4)

Steps to Reproduce

Open the robot arm from kcl samples or use the simplified version below
Change the axisJ1 constant by 180 degrees

Expected Behavior
I'll keep noodling at this on my end - just wanted to check on what expected behavior for sketch on face should be when the underlying face is changed
Screenshots and Recordings
No response
Desktop OS
Win11
Browser
chrome
Version
v0.24.13
Additional Context
// Robot Arm
// A 4 axis robotic arm for industrial use. These machines can be used for assembly, packaging, organization of goods, and quality inspection processes
const axisJ4 = 25
const axisJ3 = 60
const axisJ2 = 110
const axisJ1 = 91

// Robot Arm Base
const basePlateRadius = 5
const basePlateThickness = 0.5
const baseChamfer = 2
const baseHeight = 5

const sketch001 = startSketchOn('XY')
  |> startProfileAt([-basePlateRadius, -basePlateRadius], %)
  |> angledLine([0, 2 * basePlateRadius], %, $rectangleSegmentA001)
  |> angledLine([
       segAng(rectangleSegmentA001) + 90,
       2 * basePlateRadius
     ], %, $rectangleSegmentB001)
  |> angledLine([
       segAng(rectangleSegmentA001),
       -segLen(rectangleSegmentA001)
     ], %, $rectangleSegmentC001)
  |> lineTo([profileStartX(%), profileStartY(%)], %, $rectangleSegmentD001)
  |> close(%)
const extrude001 = extrude(basePlateThickness, sketch001)
  |> chamfer({
       length: baseChamfer,
       tags: [
         getNextAdjacentEdge(rectangleSegmentA001),
         getNextAdjacentEdge(rectangleSegmentB001),
         getNextAdjacentEdge(rectangleSegmentC001),
         getNextAdjacentEdge(rectangleSegmentD001)
       ]
     }, %)

// Base Motor for actuating first joint
const sketch002 = startSketchOn(extrude001, 'END')
  |> circle([0, 0], 4, %, $referenceEdge)
const extrude002 = extrude(baseHeight - basePlateThickness - 1.5, sketch002)
  |> fillet({
       radius: 0.1,
       tags: [getOppositeEdge(referenceEdge)]
     }, %)
const sketch003 = startSketchOn(extrude002, 'END')
  |> circle([0, 0], 0.5, %)
const extrude003 = extrude(1, sketch003)

// Housing for J2 motor
// Define Planes to change robot angle
const plane001 = {
  plane: {
    origin: [0.0, 0.0, baseHeight - 1.5 + 0.1],
    xAxis: [1.0, 0.0, 0.0],
    yAxis: [0.0, 1.0, 0.0],
    zAxis: [0.0, 0.0, 1.0]
  }
}
const plane002 = {
  plane: {
    origin: [0.0, 0.0, 0.0],
    xAxis: [
          sin(    toRadians(axisJ1)),
          cos(    toRadians(axisJ1)),
      0.0
    ],
    yAxis: [0.0, 0.0, 1.0],
    zAxis: [1.0, 0.0, 0.0]
  }
}

// Create Rotating Base
const sketch005 = startSketchOn(plane001)
  |> circle([0, 0], 3.9, %, $referenceEdge1)
const extrude005 = extrude(1.5 - 0.1, sketch005)
  |> fillet({
       radius: 0.1,
       tags: [getOppositeEdge(referenceEdge1)]
     }, %)

const sketch006 = startSketchOn(plane002)
  |> startProfileAt([3.5, baseHeight], %)
  |> angledLine({ angle: 60, length: 1.75 }, %)
  |> arc({
       angleStart: -30,
       angleEnd: -30 + 180,
       radius: 3
     }, %)
  |> angledLineToY({ angle: 60, to: baseHeight }, %)
  |> lineTo([profileStartX(%), profileStartY(%)], %)
  |> close(%)
const extrude006 = extrude(1, sketch006)

const sketch007 = startSketchOn(extrude006, 'END')
  |> circle([
       1.75 * cos(toRadians(axisJ1)) / abs(cos(toRadians(axisJ1))),
       8
     ], 2.75, %, $referenceEdge2)
const extrude007 = extrude(1.5, sketch007)
  |> fillet({
       radius: 0.1,
       tags: [getOppositeEdge(referenceEdge2)]
     }, %)

const sketch009 = startSketchOn(extrude007, 'END')
  |> circle([
       1.75 * cos(axisJ1) / abs(cos(axisJ1)),
       8
     ], 0.5, %, $referenceEdge3)
const extrude009 = extrude(0.15, sketch009)
  |> fillet({
       radius: 0.1,
       tags: [getOppositeEdge(referenceEdge3)]
     }, %)

const sketch010 = startSketchOn(plane002)
  |> circle([1.75, 8], 0.3, %)
const extrude010 = extrude(-1, sketch010)

// J2 Axis for Robot Arm
// Define Constants for J2 Axis Robot Arm
const axisJ2ArmLength = 31
const axisJ2ArmWidth = 4
const axisJ2ArmThickness = 2.5

// Define Plane to Move J2 Axis Robot Arm
const plane003 = {
  plane: {
    origin: [-0.1, 0.0, 0.0],
    xAxis: [
          sin(    toRadians(axisJ1)),
          cos(    toRadians(axisJ1)),
      0.0
    ],
    yAxis: [0.0, 0.0, 1.0],
    zAxis: [1.0, 0.0, 0.0]
  }
}

// Create Body of J2 Robot Arm
const sketch011 = startSketchOn(plane003)
  |> startProfileAt([
       1.75 - (axisJ2ArmWidth / 2 * sin(toRadians(axisJ2))),
       8 + axisJ2ArmWidth / 2 * cos(toRadians(axisJ2))
     ], %)
  |> arc({
       angleStart: 90 + axisJ2,
       angleEnd: 270 + axisJ2,
       radius: axisJ2ArmWidth / 2
     }, %)
  |> angledLine({
       angle: axisJ2,
       length: axisJ2ArmLength
     }, %)
  |> arc({
       angleStart: -90 + axisJ2,
       angleEnd: 90 + axisJ2,
       radius: axisJ2ArmWidth / 2
     }, %)
  |> lineTo([profileStartX(%), profileStartY(%)], %)
  |> close(%)
const extrude011 = extrude(-axisJ2ArmThickness, sketch011)

const sketch012 = startSketchOn(extrude011, 'START')
  |> circle([-1.75, 8], 1.9, %, $referenceEdge4)

const extrude012 = extrude(0.15, sketch012)
  |> fillet({
       radius: 0.1,
       tags: [getOppositeEdge(referenceEdge4)]
     }, %)

Thanks @nicboone8,
Hard to say from the outset if this is kcl or engine related,
for my own sake here's an even smaller reproducible example
const axisJ2 = 110
const axisJ1 = 90
const axisJ2ArmLength = 31
const axisJ2ArmWidth = 4
const axisJ2ArmThickness = 2.5

// Define Plane to Move J2 Axis Robot Arm
const plane003 = {
  plane: {
    origin: [-0.1, 0.0, 0.0],
    xAxis: [
          sin(    toRadians(axisJ1)),
          cos(    toRadians(axisJ1)),
      0.0
    ],
    yAxis: [0.0, 0.0, 1.0],
    zAxis: [1.0, 0.0, 0.0]
  }
}

// Create Body of J2 Robot Arm
const sketch011 = startSketchOn(plane003)
  |> startProfileAt([
       1.75 - (axisJ2ArmWidth / 2 * sin(toRadians(axisJ2))),
       8 + axisJ2ArmWidth / 2 * cos(toRadians(axisJ2))
     ], %)
  |> arc({
       angleStart: 90 + axisJ2,
       angleEnd: 270 + axisJ2,
       radius: axisJ2ArmWidth / 2
     }, %)
  |> angledLine({
       angle: axisJ2,
       length: axisJ2ArmLength
     }, %)
  |> arc({
       angleStart: -90 + axisJ2,
       angleEnd: 90 + axisJ2,
       radius: axisJ2ArmWidth / 2
     }, %)
  |> lineTo([profileStartX(%), profileStartY(%)], %)
  |> close(%)
const extrude011 = extrude(-axisJ2ArmThickness, sketch011)

const sketch012 = startSketchOn(extrude011, 'START')
  |> circle([-1.75, 8], 1.9, %, $referenceEdge4)

const extrude012 = extrude(0.15, sketch012)
  |> fillet({
       radius: 0.1,
       tags: [getOppositeEdge(referenceEdge4)]
     }, %)

I honestly have no clue maybe @adamchalmers can help 🙏
because couldnt it also just be something is not fully parameterized leading to this?

So what I think is happening is the engine is flipping the x-axis, for 180 degrees it points in one direction and then suddenly it flips
for this code
const ang = 90

const plane003 = {
  plane: {
    origin: [5, 5, 0],
    xAxis: [
      sin(toRadians(ang)),
      cos(toRadians(ang)),
      0.0
    ],
    yAxis: [0.0, 0.0, 1.0],
    zAxis: [1.0, 0.0, 0.0]
  }
}

// Create Body of J2 Robot Arm
const sketch011 = startSketchOn(plane003)
  |> startProfileAt([0, 0], %)
const sketch012 = startSketchOn(plane003)
  |> startProfileAt([0, 0], %)
  |> line([5, 0], %)
  |> line([0, 5], %)
  |> line([-5, 0], %)
  |> close(%)
const extrude001 = extrude(0.01, sketch012)
const sketch001 = startSketchOn(extrude001, 'END')
  |> startProfileAt([1, 2.5], %)
  |> line([3.98, 1.84], %)
  |> line([-0.02, -2.98], %)
  |> lineTo([profileStartX(%), profileStartY(%)], %)
  |> close(%)

creates the following

The square is an extrusion and the triagle is a sketch-on-face on the extrusion end cap. The triangle is "pointing" back towards the scene origin here when const ang = 90
Changing the ang to 91 is enough to cross the threshold and for the axis to flip

https://github.com/user-attachments/assets/4a5f4da3-3b30-4cb4-88a3-1e8d4dedd5d1
I guess it could be a KCL problem but I doubt it, I've had a double check of the of the websocket messages that are sent for the above execution, and the only time there are any number are sent through is when the plane is create, and the numbers are only slightly different (as you would expect small changes in the unit vector from 90 to 91)

After that all of the commands reference previous command's ids, there no where for kcl to say "hey flip the x-axis".
When the first sketch is create it references the plane id, when the sketch on face happens it references that face id, i.e. no numbers after the plane creation.
@mlfarrell Do you have any thoughts on this?

At a glance, its likely because I believe I extract the coordinate system of the face from the face itself.  So by the time that face is created and handed off to the extrusion, lower-level code may re-orient the face to ensure it fits within consistently oriented/manifold brep solid.  That means there's no guarantee about the direction of the face's local X or Y axes.  As @Irev-Dev knows, we do offer some consistency related to extrusion directions, but on the caps, these directions are taken directly from the brep.
I actually spent 3 whole days this week dealing with this related to ensuring the getNext/getPrev adjacency functions to follow the sketch path winding and it wasn't pretty even for that.  That is coming soon and won't affect this situation.
For scenarios like the above, for the short term at least, its really best to respond to these local orientations than trying to predict them.  They will be consistent within each solid so you shouldn't expect them to change out from under you once the desired structure is in place.  If we do eventually decide to force them to point the same was a the global axes, we'll need to worry about breaking all kcl projects made up until this point.

its really best to respond to these local orientations than trying to predict them

just to clarify, who's responding? the user is?
If you mean the user, I'm not really sure that's a great result considering @nicboone8 original code was him making something that had dynamic inputs, orientations shouldn't suddenly flip if we can avoid it.
Here's what I don't get, the plane is defined like so
startSketchOn({
  plane: {
    origin: [5, 5, 0],
    xAxis: [
      sin(toRadians(45)),
      cos(toRadians(45)),
      0.0
    ],
    yAxis: [0.0, 0.0, 1.0],
    zAxis: [1.0, 0.0, 0.0]
  }
})

And startSketchOn("XY") is ultimately just shorthand for the same thing. Is it possible to align the plane-x-axis with the xAxis unit vector supplied, and same for plane-y-axis and supplied yAxis unit vector? because those aren't suddenly flipping in @nicboone8 example, and to me aligning the axis with the supplied unit vectors is the best way to honor user intent anyway. Is that a possible solution or am I missing something?

just to clarify, who's responding? the user is?
Yes, the user writing the kcl code.

My post-lofts task list has grown pretty large, so I won't have bandwidth to look at this for quite some time.
My initial thoughts are.  I really want to avoid going down another route of forcing ordering that is counter to the b-rep itself.  the last time I tried to do that, it resulted in an absolutely brutal effort that almost caused architectural problems in the engine.  So I'm going to push back a bit on putting more of those types of methods on top of what we have without rethinking how the brep orientation affects the path as a whole.  in other words, I really dont want to rush another fix like that in because I already want to rewrite the first function (it's likely the worst code in the engine now).

To clarify.  I'm not saying that we're never gonna address this.  I just want to not rush out a fix for it since it'll hurt the engine arch in the long run.


Minor: Remove warning when building datafusion-cli from Dockerfile

Which issue does this PR close?

Closes #.
Rationale for this change
Remove the WARNING log when build datafusion-cli

1 warning found (use docker --debug to expand):

FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 18)

What changes are included in this PR?
Fix syntax in datafusion-cli/Dockerfile

Are these changes tested?
Yes.

Are there any user-facing changes?
No.

Thank you @tlm365  and @metegenez  for the review


format at the wrong paranthesis in scipy.spatial.transform

https://github.com/scipy/scipy/blob/a74f77fc2e0f0ee4e19b3da175772475564b5fec/scipy/spatial/transform/rotation.py#L829
The .format needs to be one parenthesis more in.

Thanks for reporting the issue.  If you have the time and interest, a pull request with the fix would be welcome!


Can not pull up the radial mount

I have installed the add-on using the manager and manually. Unfortunately, I have not gotten the popup with either installation method, and when I press SHIFT-ALT-M, the map opens up.
To Reproduce
Steps to reproduce the behavior:

Do '...'
Then do '...'
Bad stuff happens

Expected behavior
The add-on to work.
Screenshots
If applicable, add screenshots to help explain your problem.
System configuration (please fill in):

OS: Windows 11
GPU: RTX 2070
Chainloading, none

Additional context
I have no other add-ons.

Have you confirmed that the addon loader is working? There should be a gw2al_log.txt file in the root Guild Wars 2 installation directory. If there is one, attach it.
Have you looked for a log file? It's called gw2radial.log and is also found in the root GW2 installation directory. If there is one, attach it.
Are you using D3D9 or D3D11? The addon is not compatible with DirectX 11 mode.

Oh. DX11
On Fri, Feb 4, 2022 at 8:46 PM FriendlyFire @.***>
wrote:

Have you confirmed that the addon loader is working? There should be
a gw2al_log.txt file in the root Guild Wars 2 installation directory.
If there is one, attach it.
Have you looked for a log file? It's called gw2radial.log and is
also found in the root GW2 installation directory. If there is one, attach
it.
Are you using D3D9 or D3D11? The addon is not compatible with
DirectX 11 mode.

—
Reply to this email directly, view it on GitHub
https://github.com/Friendly0Fire/GW2Radial/issues/274#issuecomment-1030525509,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AV5YCOXE7GOHFHM6MKTQWX3UZSTTBANCNFSM5NTGSZ5A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

I see. Then you can either wait for the upcoming DirectX 11 version or fall back to DirectX 9 for now.


SSL certificate problem: unable to get local issuer certificate (with new information)

On my dev environment (Mac) I used to be able to use laravel-websockets without any issues. Recently after running some updates things stopped working and I am now getting the
SSL certificate problem: unable to get local issuer certificate error.
I've been trying to troubleshoot this issue and found a lot of new information which doesn't seem to be mentioned on the multiple other SSL threads so I thought I would share here to help us all come to an answer.
#864 #845 #815 #792 #760 #753 #743 #732 #680
First of all, it should be noted that curl_options was deprecated as of 6.0.0 of pusher/pusher-php-server.
https://github.com/pusher/pusher-http-php/blob/master/CHANGELOG.md
I checked my version and I'm on 7.0.1. This is on the project doing the broadcasting. On the project hosting the laravel-websockets package it's on 5.0.3
So all solutions pointing to the "old way" of circumventing this issue by using, provided you're using ^6.0
    'curl_options' => [
        CURLOPT_SSL_VERIFYHOST => 0,
        CURLOPT_SSL_VERIFYPEER => 0,
    ],

... are now obsolete
In debugging the issue, I noticed that if I modify this file vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php and add
$options['verify'] = false;

inside the __invoke method.
Then the problem goes away.
The only remaining issue now is that I'm at a loss of how to set this verify=false in any of the configuration files.
Even though pusher has deprecated curl_options, I can't find any information yet on how we are supposed to disable verification following this deprecation.
Hopefully this new information leads us to answer as I see many people struggling with this issue right now

@vesper8
Everything I can think of is (an please try that yourself, I am unable to check it right now, but I'm trying to be helpful):

Extend Pusher\Pusher:

namespace App;

use Pusher\Pusher as BasePusher;

class TlsSupportingPusher extends BasePusher
{
    public function __construct(string $auth_key, string $secret, string $app_id, array $options = [], ClientInterface $client = null)
    {
        parent::__construct($auth_key, $secret, $app_id, $options, $client);

        $this->client = new \GuzzleHttp\Client(['verify' => $options['curl_options'][CURLOPT_SSL_VERIFYPEER]]);
    }
}

Extend the Illuminate\Broadcasting\BroadcastManager to create Pusher with the extended Pusher instance:

namespace App;

use Illuminate\Broadcasting\Broadcasters\PusherBroadcaster;
use Illuminate\Broadcasting\BroadcastManager as BaseBroadcastManager;
use Psr\Log\LoggerInterface;

class TlsSupportingBroadcastManager extends BaseBroadcastManager
{
    protected function createPusherDriver(array $config)
    {
        $pusher = new TlsSupportingPusher(
            $config['key'], $config['secret'],
            $config['app_id'], $config['options'] ?? []
        );

        if ($config['log'] ?? false) {
            $pusher->setLogger($this->app->make(LoggerInterface::class));
        }

        return new PusherBroadcaster($pusher);
    }
}

Re-instantiate the BroadcastManager at runtime:

namespace App\Providers;

use App\TlsSupportingBroadcastManager;

class BroadcastingServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->singleton(BroadcastManager::class, function ($app) {
            return new TlsSupportingBroadcastManager($app);
        });
    }
}

@vesper8 I think that having Pusher 6.x+ and passing a client instance when creating the Pusher\Pusher instance is much better than extending the entire class :)

Extend the Illuminate\Broadcasting\BroadcastManager to create Pusher with client options:

namespace App;

use Illuminate\Broadcasting\Broadcasters\PusherBroadcaster;
use Illuminate\Broadcasting\BroadcastManager as BaseBroadcastManager;
use Psr\Log\LoggerInterface;
use Pusher\Pusher;

class TlsSupportingBroadcastManager extends BaseBroadcastManager
{
    protected function createPusherDriver(array $config)
    {
        $pusher = new Pusher(
            $config['key'], $config['secret'],
            $config['app_id'], $config['options'] ?? [],
            new \GuzzleHttp\Client($config['client_options']) ?? []
        );

        if ($config['log'] ?? false) {
            $pusher->setLogger($this->app->make(LoggerInterface::class));
        }

        return new PusherBroadcaster($pusher);
    }
}

Re-instantiate the BroadcastManager at runtime:

namespace App\Providers;

use App\TlsSupportingBroadcastManager;

class BroadcastingServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->singleton(BroadcastManager::class, function ($app) {
            return new TlsSupportingBroadcastManager($app);
        });
    }
}

I have the same problem. i make the like @rennokki suggest but it doesnt work for me. When i start th websockets serve i see the connections to chanel. But when i try to send event from dashboard it throws an Error sending event.
exception: "GuzzleHttp\\Exception\\RequestException" file: "/var/www/ckr0n/data/www/test.compit.tech/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php" line: 211 message: "cURL error 60: SSL certificate problem: unable to get local issuer certificate
bootstrap.js

import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
wsHost: window.location.hostname,
wsPort: 6001,
wssPort: 6001,
disableStats: true,
forceTLS: true, //возможно для обхода wss поставить false
encrypted: true, //и здесь тоже
enabledTransports: ['ws', 'wss']

broadcasting.php

   'pusher' => [
      'driver' => 'pusher',
      'key' => env('PUSHER_APP_KEY'),
      'secret' => env('PUSHER_APP_SECRET'),
      'app_id' => env('PUSHER_APP_ID'),
      'options' => [
          'cluster' => env('PUSHER_APP_CLUSTER'),
          'host' => '<IP_ADDRESS>',
          'port' => 6001,
          'scheme' => 'https',
      ],
      'client_options' => [
          'verify' => true, // to disable TLS checks
      ],

Pusher 7.0.2
Is there any ideas how to fix it. Or is it better to downgrade Pusher to 5.0?

Any update guys?

In my case i had to downgrade Pusher to v5.0.3 and it work for me.

Experiencing this also on Ubuntu 20.4
when using Laravel 8 Brodcasting
currently using certificate from GlobalSign RSA OV SSL CA 2018

@vesper8 I think that having Pusher 6.x+ and passing a client instance when creating the Pusher\Pusher instance is much better than extending the entire class :)

Add this to broadcasting:

    'options' => [
        // ...
    ],
    'client_options' => [
        'verify' =>true, // to disable TLS checks
    ],

Extend the Illuminate\Broadcasting\BroadcastManager to create Pusher with client options:

namespace App;

use Illuminate\Broadcasting\Broadcasters\PusherBroadcaster;
use Illuminate\Broadcasting\BroadcastManager as BaseBroadcastManager;
use Psr\Log\LoggerInterface;
use Pusher\Pusher;

class TlsSupportingBroadcastManager extends BaseBroadcastManager
{
    protected function createPusherDriver(array $config)
    {
        $pusher = new Pusher(
            $config['key'], $config['secret'],
            $config['app_id'], $config['options'] ?? [],
            new \GuzzleHttp\Client($config['client_options']) ?? []
        );

        if ($config['log'] ?? false) {
            $pusher->setLogger($this->app->make(LoggerInterface::class));
        }

        return new PusherBroadcaster($pusher);
    }
}

Re-instantiate the BroadcastManager at runtime:

namespace App\Providers;

use App\TlsSupportingBroadcastManager;

class BroadcastingServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->singleton(BroadcastManager::class, function ($app) {
            return new TlsSupportingBroadcastManager($app);
        });
    }
}

this fix only available for laravel v9

I had the same issue. I downloaded the https://curl.se/ca/cacert.pem as per https://curl.se/docs/caextract.html and added to my php.ini
[curl]
curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"
[openssl]
openssl.cafile = "C:\xampp\php\extras\ssl\cacert.pem"
No need to have the 'client_options' in broadcasting.php

In my case i had to downgrade Pusher to v5.0.3 and it work for me.

is it pusher-server or pusher js

In my case i had to downgrade Pusher to v5.0.3 and it work for me.

is it pusher-server or pusher js

The service you have to downgrade is the php dependency pusher/pusher-php-server using Composer
https://packagist.org/packages/pusher/pusher-php-server
You do not have to downgrade the client-side https://www.npmjs.com/package/pusher-js

Any update?

I'm wondering as well. Having to use such an old version of pusher/pusher-php-server cannot be the solution here.

I'm wondering as well. Having to use such an old version of pusher/pusher-php-server cannot be the solution here.

either update to laravel 9 or use old version of pusher-php-server 5.0.3

I'm on Laravel 9. I get this error: cURL error 60: SSL certificate problem: unable to get local issuer certificate

I'm on Laravel 9, @anditsung. I get this error: cURL error 60: SSL certificate problem: unable to get local issuer certificate
With pusher-php-server 5.x everything works just fine.

update from laravel 7 or 8?
config/broadcasting.php
'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [
                'host' => env('PUSHER_HOST', 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com',
                'port' => env('PUSHER_PORT', 443),
                'scheme' => env('PUSHER_SCHEME', 'https'),
                'encrypted' => true,
                'useTLS' => env('PUSHER_SCHEME', 'https') === 'https',
            ],
            'client_options' => [
                // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html
            ],
        ],

@anditsung oh, I was definitely missing something there. Updated it according to Laravel 9 and it's working now. This was before:
'driver' => 'pusher',             'key' => env('PUSHER_APP_KEY'),             'secret' => env('PUSHER_APP_SECRET'),             'app_id' => env('PUSHER_APP_ID'),             'options' => [                 'cluster' => env('PUSHER_APP_CLUSTER'),                 'host' => '<IP_ADDRESS>',                 'port' => 6001,                 'scheme' => 'https',                 'curl_options' => [                     CURLOPT_SSL_VERIFYHOST => env('APP_ENV') === "local" ? 0 : 2,                     CURLOPT_SSL_VERIFYPEER => env('APP_ENV') === "local" ? 0 : 1,                 ]             ],

Ok, after hours of testing I have been able to solve this problem and the only viable way I have found is to downgrade the version of pusher server to 4.1.
Im using :

Laravel Framework 8.83.23
beyondcode/laravel-websockets 1.13.1
pusher/pusher-php-server 7.0.2

So, im downgrade pusher server using:
 composer require pusher/pusher-php-server "^4.1"
my broadcasting.php :
'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [
                'cluster' => env('PUSHER_APP_CLUSTER'),
                'scheme' => env('PUSHER_APP_SCHEME'),
                'host' => '<IP_ADDRESS>',
                'port' => 6001,
                'curl_options' => [
                    CURLOPT_SSL_VERIFYHOST => 0,
                    CURLOPT_SSL_VERIFYPEER => 0,
                ]
            ],
        ],

My websockets.php :
    'ssl' => [
        /*
         * Path to local certificate file on filesystem. It must be a PEM encoded file which
         * contains your certificate and private key. It can optionally contain the
         * certificate chain of issuers. The private key also may be contained
         * in a separate file specified by local_pk.
         */
        'local_cert' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT', null),

        /*
         * Path to local private key file on filesystem in case of separate files for
         * certificate (local_cert) and private key.
         */
        'local_pk' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_PK', null),

        /*
         * Passphrase for your local_cert file.
         */
        'passphrase' => env('LARAVEL_WEBSOCKETS_SSL_PASSPHRASE', null),

        /*
         * Verifying SSL Peer’s Certificate.
         */
        'verify_peer' => env('LARAVEL_WEBSOCKETS_VERIFY_PEER', false),

        /*
         * Allow Self Signed Certificates.
         */
        'allow_self_signed' => env('LARAVEL_WEBSOCKETS_ALLOW_SELF_SIGNED', false),
    ],

Im using LARAVEL_WEBSOCKETS_SSL_LOCAL_PK and LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT in .env file to point my server certs in my production server.
my app.js :
window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    cluster: process.env.MIX_PUSHER_APP_CLUSTER,
    wsHost: process.env.MIX_SHORT_URL,
    forceTLS: false,
    wsPort: 6001,
    wssPort: 6001,
    encrypted: true,
    disableStats: true,
    enabledTransports: ['ws', 'wss']
});

This configuration works fine in both environments : local computer without ssl (http) and production server with ssl cert (https)
hope this helps

i use "pusher/pusher-php-server": "^7.0" and i disable verify TLS via client_options, not from curl_options
'client_options' => [
    'verify' => false, // to disable TLS checks
],

refer from this comment

I am using laravel 9 with laravel-websockets 1.13.1 and pusher/pusher-php-server 7.2.1 and a self signed ssl for localhost
I have set this in broadcasting.php
'client_options' => [
    'verify' => false, // to disable TLS checks
],

and the error is gone
cURL error 60: SSL certificate problem: seflt signed certificate ....

but the it does not work ... the listener is not triggered.
I want to work in dev with self signed sert. (https://localhost)
Any ideas?

@bci24 u must upload ur certificae to ur browser, chek it on SETTING -> SSL and upload it

@rizkhal the certificate was already imported ... anyway the problem is the event is not triggered. I have tested also without secure connection (http) and the same thing happens.
The working project was using laravel-echo-server with socket.io and now I have migrated to laravel-websockets
In the app.js I have this:
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js')

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    wsHost: process.env.MIX_PUSHER_HOST,
    wsPort: process.env.MIX_PUSHER_PORT,
    wssPort: process.env.MIX_PUSHER_PORT,
    encrypted: true,
    disableStats: true,
    forceTLS: true,
    enabledTransports: ['ws', 'wss'],
})

And in the component that is is listening the event (and is not triggered)
onMounted(() => {
    window.Echo.channel('visitors').listen('.VisitorEvent',(data) => {
        console.log(data) // it is not executed !!!
    })
})

In the images attached you can see that the connection is made, is connected to the channel "visitors"

@bci24 how about with namespace?
onMounted(() => {
    window.Echo.channel('visitors').listen('.App\\Events\\VisitorEvent',(data) => {
        console.log(data) // it is not executed !!!
    })
})

@rizkhal I know this issue is not relevant to my problem.... sorry for spam...
I wanted to tell that now is working. The are 2 solutions:

downgrade the pusher-php-server to 7.0.2
use the latest pusher-php-server 7.2.1 and update the TriggerEventController manually
https://github.com/beyondcode/laravel-websockets/pull/1046/commits/fe78daf914aa5a60d47402b2d0b6390e83c9102a

Hi All, I have better solution to this.
Yes it turns out that latest version of pusher has no 'client_options' options and also 'curl_options'
So i dig to the source code, and found that no options is passed to the Guzzle Client.
But they allow us to pass custom guzzle client when creating Pusher, so here is the shortest and simplest solution.

In your AppServiceProvider

public function boot(BroadcastManager $broadcastManager): void
{
    //Create custom pusher, because they don't allow us to modify Guzzle client via config broadcasting.php, make sure you set pusher-custom in .env
    $broadcastManager->extend('pusher-custom', function (Application $app, array $config) {
        $client = new \GuzzleHttp\Client(['verify' => false]);

        $options = [
            'cluster' => env('PUSHER_APP_CLUSTER'),
            'encrypted' => true,
            'host' => '<IP_ADDRESS>',
            'port' => env('PUSHER_PORT', 6005),
            'useTLS' => env('PUSHER_SCHEME') == 'https',
            'scheme' => env('PUSHER_SCHEME', 'http'),
        ];

        $pusher = new Pusher(
            env('PUSHER_APP_KEY'),
            env('PUSHER_APP_SECRET'),
            env('PUSHER_APP_ID'),
            $options,
            $client //set custom guzzle client
        );

        return new PusherBroadcaster($pusher);
    });

    Schema::defaultStringLength(191);
}

Add pusher-custom in broadcasting.php

'connections' => [
        'pusher-custom' => [
            'driver' => 'pusher-custom'
        ],
        'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [

then change broadcast driver to pusher-custom in .env
BROADCAST_DRIVER=pusher-custom

Thank me later

Hi All, I have simpler solution to this.
Yes it turns out that latest version of pusher has no 'client_options' options and also 'curl_options' So i dig to the source code, and found that no options is passed to the Guzzle Client.
But they allow us to pass custom guzzle client when creating Pusher, so here is the shortest and simplest solution.

In your AppServiceProvider

public function boot(BroadcastManager $broadcastManager): void
{
    //Create custom pusher, because they don't allow us to modify Guzzle client via config broadcasting.php, make sure you set pusher-custom in .env
    $broadcastManager->extend('pusher-custom', function (Application $app, array $config) {
        $client = new \GuzzleHttp\Client(['verify' => false]);

        $options = [
            'cluster' => env('PUSHER_APP_CLUSTER'),
            'encrypted' => true,
            'host' => '<IP_ADDRESS>',
            'port' => env('PUSHER_PORT', 6005),
            'useTLS' => env('PUSHER_SCHEME') == 'https',
            'scheme' => env('PUSHER_SCHEME', 'http'),
        ];

        $pusher = new Pusher(
            env('PUSHER_APP_KEY'),
            env('PUSHER_APP_SECRET'),
            env('PUSHER_APP_ID'),
            $options,
            $client //set custom guzzle client
        );

        return new PusherBroadcaster($pusher);
    });

    Schema::defaultStringLength(191);
}

Add pusher-custom in broadcasting.php

'connections' => [
        'pusher-custom' => [
            'driver' => 'pusher-custom'
        ],
        'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [

then change broadcast driver to pusher-custom in .env
BROADCAST_DRIVER=pusher-custom

Thank me later

Works for me on Laravel 10

Hi All, I have simpler solution to this.
Yes it turns out that latest version of pusher has no 'client_options' options and also 'curl_options' So i dig to the source code, and found that no options is passed to the Guzzle Client.
But they allow us to pass custom guzzle client when creating Pusher, so here is the shortest and simplest solution.

In your AppServiceProvider

public function boot(BroadcastManager $broadcastManager): void
{
    //Create custom pusher, because they don't allow us to modify Guzzle client via config broadcasting.php, make sure you set pusher-custom in .env
    $broadcastManager->extend('pusher-custom', function (Application $app, array $config) {
        $client = new \GuzzleHttp\Client(['verify' => false]);

        $options = [
            'cluster' => env('PUSHER_APP_CLUSTER'),
            'encrypted' => true,
            'host' => '<IP_ADDRESS>',
            'port' => env('PUSHER_PORT', 6005),
            'useTLS' => env('PUSHER_SCHEME') == 'https',
            'scheme' => env('PUSHER_SCHEME', 'http'),
        ];

        $pusher = new Pusher(
            env('PUSHER_APP_KEY'),
            env('PUSHER_APP_SECRET'),
            env('PUSHER_APP_ID'),
            $options,
            $client //set custom guzzle client
        );

        return new PusherBroadcaster($pusher);
    });

    Schema::defaultStringLength(191);
}

Add pusher-custom in broadcasting.php

'connections' => [
        'pusher-custom' => [
            'driver' => 'pusher-custom'
        ],
        'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [

then change broadcast driver to pusher-custom in .env
BROADCAST_DRIVER=pusher-custom

Thank me later

More correct version
    public function boot(): void
    {
        app(BroadcastManager::class)->extend('pusher-custom', function () {
            $pusher = new Pusher(
                config('broadcasting.connections.pusher.key'),
                config('broadcasting.connections.pusher.secret'),
                config('broadcasting.connections.pusher.app_id'),
                config('broadcasting.connections.pusher.options'),
                new \GuzzleHttp\Client(['verify' => false]),
            );

            return new PusherBroadcaster($pusher);
        });
    }

Cześć wszystkim, mam prostsze rozwiązanie tego problemu.
Tak, okazuje się, że najnowsza wersja pushera nie ma opcji „client_options”, a także „curl_options”. Przeszukałem więc kod źródłowy i odkryłem, że do klienta Guzzle nie są przekazywane żadne opcje.
Ale pozwalają nam przekazać niestandardowego klienta żarcia podczas tworzenia Pushera, więc oto najkrótsze i najprostsze rozwiązanie.

W swoim AppServiceProvider

public function boot(BroadcastManager $broadcastManager): void
{
    //Create custom pusher, because they don't allow us to modify Guzzle client via config broadcasting.php, make sure you set pusher-custom in .env
    $broadcastManager->extend('pusher-custom', function (Application $app, array $config) {
        $client = new \GuzzleHttp\Client(['verify' => false]);

        $options = [
            'cluster' => env('PUSHER_APP_CLUSTER'),
            'encrypted' => true,
            'host' => '<IP_ADDRESS>',
            'port' => env('PUSHER_PORT', 6005),
            'useTLS' => env('PUSHER_SCHEME') == 'https',
            'scheme' => env('PUSHER_SCHEME', 'http'),
        ];

        $pusher = new Pusher(
            env('PUSHER_APP_KEY'),
            env('PUSHER_APP_SECRET'),
            env('PUSHER_APP_ID'),
            $options,
            $client //set custom guzzle client
        );

        return new PusherBroadcaster($pusher);
    });

    Schema::defaultStringLength(191);
}

Dodaj pusher-custom w nadawania.php

'connections' => [
        'pusher-custom' => [
            'driver' => 'pusher-custom'
        ],
        'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [

następnie zmień sterownik rozgłoszeniowy na pusher-custom w .env
BROADCAST_DRIVER=pusher-custom

Podziękujesz mi później

Bardziej poprawna wersja
    public function boot(): void
    {
        app(BroadcastManager::class)->extend('pusher-custom', function () {
            $pusher = new Pusher(
                config('broadcasting.connections.pusher.key'),
                config('broadcasting.connections.pusher.secret'),
                config('broadcasting.connections.pusher.app_id'),
                config('broadcasting.connections.pusher.options'),
                new \GuzzleHttp\Client(['verify' => false]),
            );

            return new PusherBroadcaster($pusher);
        });
    }

InvalidArgumentException
Broadcast connection [pusher-custom] is not defined.
at vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php:249
245▕     {
246▕         $config = $this->getConfig($name);
247▕
248▕         if (is_null($config)) {
➜ 249▕             throw new InvalidArgumentException("Broadcast connection [{$name}] is not defined.");
250▕         }
251▕
252▕         if (isset($this->customCreators[$config['driver']])) {
253▕             return $this->callCustomCreator($config);
  +18 vendor frames

19  [internal]:0
Illuminate\Foundation\Application::Illuminate\Foundation{closure}(Object(RTippin\Messenger\MessengerServiceProvider))
+5 vendor frames
25  artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
helpp

Hi All, I have simpler solution to this.
Yes it turns out that latest version of pusher has no 'client_options' options and also 'curl_options' So i dig to the source code, and found that no options is passed to the Guzzle Client.
But they allow us to pass custom guzzle client when creating Pusher, so here is the shortest and simplest solution.

In your AppServiceProvider

public function boot(BroadcastManager $broadcastManager): void
{
    //Create custom pusher, because they don't allow us to modify Guzzle client via config broadcasting.php, make sure you set pusher-custom in .env
    $broadcastManager->extend('pusher-custom', function (Application $app, array $config) {
        $client = new \GuzzleHttp\Client(['verify' => false]);

        $options = [
            'cluster' => env('PUSHER_APP_CLUSTER'),
            'encrypted' => true,
            'host' => '<IP_ADDRESS>',
            'port' => env('PUSHER_PORT', 6005),
            'useTLS' => env('PUSHER_SCHEME') == 'https',
            'scheme' => env('PUSHER_SCHEME', 'http'),
        ];

        $pusher = new Pusher(
            env('PUSHER_APP_KEY'),
            env('PUSHER_APP_SECRET'),
            env('PUSHER_APP_ID'),
            $options,
            $client //set custom guzzle client
        );

        return new PusherBroadcaster($pusher);
    });

    Schema::defaultStringLength(191);
}

Add pusher-custom in broadcasting.php

'connections' => [
        'pusher-custom' => [
            'driver' => 'pusher-custom'
        ],
        'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [

then change broadcast driver to pusher-custom in .env
BROADCAST_DRIVER=pusher-custom

Thank me later

Works for me on Laravel 10

can you show me your .env file please?


About nuScenes train set used for ablation study

Hello, thank you for your great work.
I wonder whether the model for the ablation study trained with nuScenes full train set or some portion of dataset.
I am asking this question because the performance of the last row in Table 1 has some performance gap between Table 4.

Thank you for your reply.

The experiment in Table 4 uses CBGS, multi-frame and depth aggregation.


Some thought that a webcam or smartphone would not produce an acceptable photo

Some users incorrectly assumed that passport photo criteria would apply.
These users were less likely to attempt to take a photo themselves and thought that smartphone or webcam pictures would not be accepted. Some reported they would need to go to a photo booth or shop, yet were unsure how they would add that to the form.
When first viewing this page, some users saw the example photo, scanned the criteria and then spoke about how these were the same as for a passport.

Closing this as a duplicate of #200


Enclosing PageStackNavigator in SingleChildScrollView causing a problem with layout

Hi, I am using Tab Navigation however I need to wrap the tabs widgets inside a SingleChildScrollView but I'm getting error due to PageStackNavigator
Here's my code:
SliverFillRemaining(
                          child: Container(
                            color: Colors.white,
                            padding: widget.viewPadding,
                            child: TabBarView(
                              physics: NeverScrollableScrollPhysics(),
                              controller: TabPage.of(context).controller,
                              children: [
                                for (final stack
                                    in TabPage.of(context).stacks)
                                  SingleChildScrollView(
                                      child:
                                          PageStackNavigator(stack: stack)),
                              ],
                            ),
                          ),
                        )

Im using TabView inside CustomScrollView. I'm wonder why the PageStackNavigator is causing this problem but others widget works fine when I wrap them inside TabView and the SingleChildScrollView. This is the error I'm getting:
The following assertion was thrown during a scheduler callback:
Cannot get size from a render object that has not been through layout.

The size of this render object has not yet been determined because this render object has not yet been through layout, which typically means that the size getter was called too early in the pipeline (e.g., during the build phase) before the framework has determined the size and position of the render objects during layout.

The size getter was called for the following element: Container-[GlobalKey#cd7ae]
The render object from which the size was to be obtained was: RenderPadding#2acab NEEDS-LAYOUT NEEDS-PAINT
...  parentData: offset=Offset(0.0, 0.0); flex=12; fit=FlexFit.tight
...  constraints: MISSING
...  size: MISSING
...  padding: EdgeInsets(0.0, 8.0, 0.0, 8.0)
...  textDirection: ltr

Hi @rutaba1, did you get this sorted? It sounds like a standard Flutter constraints issue, and not an issue with Routemaster. Closing for now.


Edit, per Edit Tracker request

Copyedited to increase brevity.
Suggest making calculation descriptions parallel, beginning with the same wording.
Suggest omitting cross-references to validate text.
Suggest omitting final entry and Note: why document what is not useful? Also, the second sentence of the description seems unclear: what is "a value of the commonly shared length"?

Edit for Ashwin

@kimbostrom  could you add a corresponding JIRA as a prefix in the title of the pull request? Refer the format of other pull requests here: https://github.com/apache/drill/pulls


feat: add cloudflare-vite-hono example

I created simple example of hosting Discord Activity on Cloudflare Workers and Cloudflare Pages.

Greetings, and thanks for the PR!  We've changed how we accept contributions on this repository.  We'd love to list this sample on our README at https://github.com/discord/embedded-app-sdk-examples?tab=readme-ov-file#community-curated-examples, but we would want you to host and maintain the sample in a repository you link to (check out what we're doing for colyseus).  If you submit another PR like that, we'd be happy to link!


add: Robertw8

Description
[Added profile data to public/data]
Related Issues
[Issue #317 ]
Changes Proposed
[Added profile data to public/data (robertw8.json) and added data to an array in ProfilesList.json]
Checklist

[x] I have read and followed the Contribution Guidelines.
[x] All new and existing tests passed.
[x] I have updated the documentation to reflect the changes I've made.
[x] My code follows the code style of this project.
[x] The title of my pull request is a short description of the requested changes.

Screenshots
Note to reviewers

@Robertw8 Thank you so much for your contribution! Your efforts are greatly appreciated and will go a long way in improving our project. Please feel free to share it with others and Star the repo to help us grow even further!


Incorrect valueType in LSP6KeyManager.json

Bug
Incorrect valueType and valueContent in AddressPermissions:AllowedERC725YKeys permission, update to correct values as specified in docs https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-6-KeyManager.md#addresspermissionsallowederc725ykeysaddress

Nice catch @MitchTODO ! Thanks
Sorry for the delays


Bailout when secure boot is not enabled for UKI images is very dirty

Kairos version:
3.0.x
Describe the bug
the error messages shown during boot are very raw. the program should not crash and it should not dump stack trace to console. It shoudl detect that secure boot is not enabled cleanly, inform the user, and then clean up properly/abort boot process.

To Reproduce
disable secure boot on a machine running TB and boot it
Expected behavior
Very tidy error message describing the reason why teh boot failed, then either stay at the console or shutdown (not sure which is best). No crashed program and no stacktrace, error should be handled gracefully.

 One way that was suggested during planning to avoid the message is to "sleep" forever after printing the message.

we like them dirty :P


Service => Server => Status (Dashboard)

I run a docker-compose with the follow attrbutes:
version: '3'
networks:
  traefik-proxy:
    external: true

volumes:
  arangodbdev:

services:
  arangodb:
    image: arangodb:latest
    volumes:
      - /srv/arangodb:/data
    ports:
      - 8529:8529
    environment:
      - ARANGO_ROOT_PASSWORD=xxxxx-xxx
    command:
      - arangod
      - --server.endpoint=tcp://<IP_ADDRESS>:8529
    networks:
      - traefik-proxy
      - default
    labels:
      - traefik.enable=true
      - traefik.tcp.routers.arangodb.entrypoints=arangodb
      - traefik.tcp.routers.arangodb.rule=HostSNI(`xx.dev.xxx.net`)
      - traefik.tcp.routers.arangodb.tls=true
      - traefik.tcp.routers.arangodb.tls.certresolver=letsencrypt
      - traefik.tcp.routers.arangodb.tls.passthrough=true
      - traefik.tco.routers.arangodb.service=arangodb@docker
      - traefik.tcp.services.arangodb.loadbalancer.server.port=8529
      - traefik.docker.network=traefik-proxy
    restart: always

The dashboart of traefik shows

the url xxxxx.xx:8529 is http not https?

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. My advanced AI has spotted that your issue might be a configuration problem or relates to something that doesn't look like a bug.
To confirm this, please join our Community Forum and reach out to us on the Traefik section.
In case I'm wrong (well, that would be embarrassing :sweat_smile:), my developers will re-open the issue and fix me!
In the meantime, you can double check Traefik's documentation.


More maths differences

Contrast the following cart in pico8 and picolove
http://www.lexaloffle.com/bbs/?tid=2464

It's set to tween using ease_in_out_cubicwhich gets great results in pico8, but bad results in picolove. Other easing functions are also affected.
function ease_in_out_cubic(t,b,c,d)  -- cubic easing in/out - acceleration until halfway, then deceleration
  t /= d/2
  if (t < 1) return c/2*t*t*t + b
  t -= 2
  return c/2*(t*t*t + 2) + b
end

I've ruled out short operators by manually expanding them. No difference.
Perhaps an issue with expression parsing?

Thanks, good find!
The problem is with t /= d/2
This expands to t = t / d/2 when it should expand to t = t / (d/2)

Sadly, this is not an easy fix, I'll need to implement a modified lua parser to handle this case, and also some of the other shorthand.

The workaround is to do:
t /= (d/2)


Error streaming video from Android tablet

Checklist:

[x] I updated to the latest version available
[x] I cleared the cache of my browser

Release with the issue:
Last working release (if known):
Browser and Operating System:
Android Companion App & Chrome

Description of problem:
I'm having some issues displaying the Frigate card on a Samsung Galaxy Tab A8. It initially loads in the video, and plays it briefly for a few seconds, then it throws an error saying "Error with media stream contents".  The same issue occurs in both the Android app, and in a browser (Chrome). I can see the existing recording/images, but I cannot play the videos as it just shows a grey screen. The images are displayed without any problem. However, I'm able to play the videos if I go directly to Frigate. The card is working fine on every other device, including an android phone and an iPhone, so it really puzzles me what is causing the problem. Seeing that I don't face any issue in Frigate itself using the mentioned tablet, I suspect that something goes wrong with the card. Could you please help me address this issue? Please let me know if I can assist in any way.
Many Thanks!

Javascript errors shown in the web inspector (if applicable):

Additional information:
I have retrieved the Android app logs as I don't see anything related in the other log files.
I've observed several errors relating to MediaCodec which might just be the root cause?
12-05 18:52:36.204 22537 25542 I MediaCodec: Codec shutdown complete
12-05 18:52:36.215 22537 22537 E cr_MediaCodecBridge: MediaCodec.onError: android.media.MediaCodec.error_neg_2147479520
12-05 18:52:36.259 22537 22546 D InputTransport: Input channel destroyed: 'ClientS', fd=181
12-05 18:52:36.326 22537 22537 I ViewRootImpl@14a65af[SettingsActivity]: ViewPostIme pointer 0
12-05 18:52:36.327 22537 22537 I GestureDetector: obtain mCurrentDownEvent. id: 178975701 caller: androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2.onTouchEvent:484 androidx.core.view.GestureDetectorCompat.onTouchEvent:548 io.sentry.android.core.internal.gestures.SentryWindowCallback.handleTouchEvent:68
12-05 18:52:36.353 22537 22537 I GestureDetector: obtain mCurrentMotionEventRaw. action: 2 id:<PHONE_NUMBER>
12-05 18:52:36.462 22537 22537 I ViewRootImpl@14a65af[SettingsActivity]: ViewPostIme pointer 1
12-05 18:52:38.110 22537 22537 I ViewRootImpl@14a65af[SettingsActivity]: ViewPostIme pointer 0
12-05 18:52:38.111 22537 22537 I GestureDetector: obtain mCurrentDownEvent. id: 72874946 caller: androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2.onTouchEvent:484 androidx.core.view.GestureDetectorCompat.onTouchEvent:548 io.sentry.android.core.internal.gestures.SentryWindowCallback.handleTouchEvent:68
12-05 18:52:38.136 22537 22537 I GestureDetector: obtain mCurrentMotionEventRaw. action: 2 id: 319472512
12-05 18:52:38.879 22537 22537 I ViewRootImpl@14a65af[SettingsActivity]: ViewPostIme pointer 1
12-05 18:52:39.322 22537 22677 I cr_MediaCodecBridge: create MediaCodec video decoder, mime video/avc
12-05 18:52:39.324 22537 22677 D MediaCodecList: codecHandlesFormat: no format, so no extra checks
12-05 18:52:39.324 22537 22677 D MediaCodecList: codecHandlesFormat: no format, so no extra checks
12-05 18:52:39.326 22537 22677 I ACodec  :  [] Now uninitialized
12-05 18:52:39.327 22537 25555 I ACodec  : [] onAllocateComponent
12-05 18:52:39.328 22537 25555 I OMXClient: IOmx service obtained
12-05 18:52:39.336 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] Now Loaded
12-05 18:52:39.338 22537 25553 I MediaCodec: MediaCodec will operate in async mode
12-05 18:52:39.339 22537 25553 D SurfaceUtils: connecting to surface 0xb4000075f9e6f010, reason connectToSurface
12-05 18:52:39.339 22537 25553 I MediaCodec: [OMX.sprd.h264.decoder] setting surface generation to 23078229
12-05 18:52:39.339 22537 25553 D SurfaceUtils: disconnecting from surface 0xb4000075f9e6f010, reason connectToSurface(reconnect)
12-05 18:52:39.339 22537 25553 D SurfaceUtils: connecting to surface 0xb4000075f9e6f010, reason connectToSurface(reconnect)
12-05 18:52:39.339 22537 25555 I ACodec  : app-pid(22537)
12-05 18:52:39.340 22537 25555 E ACodec  : [OMX.sprd.h264.decoder] setPortMode on output to DynamicANWBuffer failed w/ err -2147483648
12-05 18:52:39.344 22537 22677 D MediaCodec: keep callback message for reclaim
12-05 18:52:39.345 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] Now Loaded->Idle
12-05 18:52:39.349 22537 25555 D SurfaceUtils: disconnecting from surface 0xb4000075f9e6f010, reason setNativeWindowSizeFormatAndUsage
12-05 18:52:39.349 22537 25555 D SurfaceUtils: connecting to surface 0xb4000075f9e6f010, reason setNativeWindowSizeFormatAndUsage
12-05 18:52:39.349 22537 25555 D SurfaceUtils: set up nativeWindow 0xb4000075f9e6f010 for 2688x1520, color 0x15, rotation 0, usage 0x402933
12-05 18:52:39.349 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] configureOutputBuffersFromNativeWindow setBufferCount : 15, minUndequeuedBuffers : 7
12-05 18:52:39.350 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] Allocating 15 buffers from a native window of size 6128640 on output port
12-05 18:52:39.363 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] Now Idle->Executing
12-05 18:52:39.363 22537 25553 I MediaCodec: setCodecState state(0), called in 6
12-05 18:52:39.364 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] Now Executing
12-05 18:52:39.364 22537 22677 I cr_MediaCodecBridge: create MediaCodec video decoder, mime video/avc
12-05 18:52:39.364 22537 22677 D MediaCodecList: codecHandlesFormat: no format, so no extra checks
12-05 18:52:39.365 22537 22677 D MediaCodecList: codecHandlesFormat: no format, so no extra checks
12-05 18:52:39.366 22537 22677 I ACodec  :  [] Now uninitialized
12-05 18:52:39.366 22537 25560 I ACodec  : [] onAllocateComponent
12-05 18:52:39.367 22537 25560 I OMXClient: IOmx service obtained
12-05 18:52:39.370 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] Now Loaded
12-05 18:52:39.373 22537 25555 E ACodec  : [OMX.sprd.h264.decoder] ERROR(0x80001020)
12-05 18:52:39.373 22537 25555 E ACodec  : signalError(omxError 0x80001020, internalError -2147483648)
12-05 18:52:39.373 22537 25553 E MediaCodec: Codec reported err 0x80001020, actionCode 0, while in state 6/STARTED
12-05 18:52:39.373 22537 25553 D SurfaceUtils: disconnecting from surface 0xb4000075f9e6f010, reason disconnectFromSurface
12-05 18:52:39.373 22537 25553 E Surface : freeAllBuffers: 8 buffers were freed while being dequeued!
12-05 18:52:39.373 22537 25559 I MediaCodec: MediaCodec will operate in async mode
12-05 18:52:39.374 22537 22687 E cr_MediaCodecBridge: Failed to queue input buffer
12-05 18:52:39.374 22537 22687 E cr_MediaCodecBridge: java.lang.IllegalStateException
12-05 18:52:39.374 22537 22687 E cr_MediaCodecBridge: 	at android.media.MediaCodec.native_queueInputBuffer(Native Method)
12-05 18:52:39.374 22537 22687 E cr_MediaCodecBridge: 	at android.media.MediaCodec.queueInputBuffer(MediaCodec.java:2634)
12-05 18:52:39.374 22537 22687 E cr_MediaCodecBridge: 	at org.chromium.media.MediaCodecBridge.queueInputBuffer(chromium-TrichromeWebViewGoogle.aab-stable-530414133:8)
12-05 18:52:39.374 22537 25559 D SurfaceUtils: connecting to surface 0xb4000075f9e71010, reason connectToSurface
12-05 18:52:39.374 22537 25559 I MediaCodec: [OMX.sprd.h264.decoder] setting surface generation to 23078230
12-05 18:52:39.374 22537 25559 D SurfaceUtils: disconnecting from surface 0xb4000075f9e71010, reason connectToSurface(reconnect)
12-05 18:52:39.374 22537 25559 D SurfaceUtils: connecting to surface 0xb4000075f9e71010, reason connectToSurface(reconnect)
12-05 18:52:39.375 22537 25560 I ACodec  : app-pid(22537)
12-05 18:52:39.376 22537 25560 E ACodec  : [OMX.sprd.h264.decoder] setPortMode on output to DynamicANWBuffer failed w/ err -2147483648
12-05 18:52:39.380 22537 22677 D MediaCodec: keep callback message for reclaim
12-05 18:52:39.382 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] Now Loaded->Idle
12-05 18:52:39.387 22537 22537 E cr_MediaCodecBridge: MediaCodec.onError: android.media.MediaCodec.error_neg_2147479520
12-05 18:52:39.388 22537 25560 D SurfaceUtils: disconnecting from surface 0xb4000075f9e71010, reason setNativeWindowSizeFormatAndUsage
12-05 18:52:39.388 22537 25560 D SurfaceUtils: connecting to surface 0xb4000075f9e71010, reason setNativeWindowSizeFormatAndUsage
12-05 18:52:39.388 22537 25560 D SurfaceUtils: set up nativeWindow 0xb4000075f9e71010 for 2688x1520, color 0x15, rotation 0, usage 0x402933
12-05 18:52:39.389 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] configureOutputBuffersFromNativeWindow setBufferCount : 15, minUndequeuedBuffers : 7
12-05 18:52:39.389 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] Allocating 15 buffers from a native window of size 6128640 on output port
12-05 18:52:39.428 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] Now Idle->Executing
12-05 18:52:39.429 22537 25559 I MediaCodec: setCodecState state(0), called in 6
12-05 18:52:39.430 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] Now Executing
12-05 18:52:39.430 22537 22677 W cr_MediaCodecBridge: Releasing: OMX.sprd.h264.decoder
12-05 18:52:39.431 22537 22677 W cr_MediaCodecBridge: Codec released
12-05 18:52:39.431 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] Now Executing->Idle
12-05 18:52:39.435 22537 25555 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb4000078d22e5500
12-05 18:52:39.435 22537 25555 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 16 to native window
12-05 18:52:39.435 22537 25555 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb4000078d22e5300
12-05 18:52:39.435 22537 25555 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 15 to native window
12-05 18:52:39.436 22537 25555 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb4000078d22e5100
12-05 18:52:39.436 22537 25555 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 14 to native window
12-05 18:52:39.437 22537 25555 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb400007835807200
12-05 18:52:39.437 22537 25555 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 13 to native window
12-05 18:52:39.437 22537 25555 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb4000078c6db0f00
12-05 18:52:39.437 22537 25555 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 12 to native window
12-05 18:52:39.438 22537 25555 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb4000078c6db0d00
12-05 18:52:39.438 22537 25555 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 11 to native window
12-05 18:52:39.440 22537 25555 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb4000078c6db0b00
12-05 18:52:39.440 22537 25555 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 10 to native window
12-05 18:52:39.441 22537 25555 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb4000078c6db0900
12-05 18:52:39.441 22537 25555 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 9 to native window
12-05 18:52:39.442 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] Now Idle->Loaded
12-05 18:52:39.442 22537 25555 I ACodec  : [OMX.sprd.h264.decoder] Now Loaded
12-05 18:52:39.443 22537 25560 E ACodec  : [OMX.sprd.h264.decoder] ERROR(0x80001020)
12-05 18:52:39.443 22537 25560 E ACodec  : signalError(omxError 0x80001020, internalError -2147483648)
12-05 18:52:39.443 22537 25559 E MediaCodec: Codec reported err 0x80001020, actionCode 0, while in state 6/STARTED
12-05 18:52:39.443 22537 25559 D SurfaceUtils: disconnecting from surface 0xb4000075f9e71010, reason disconnectFromSurface
12-05 18:52:39.443 22537 25559 E Surface : freeAllBuffers: 8 buffers were freed while being dequeued!
12-05 18:52:39.444 22537 25555 I ACodec  :  [OMX.sprd.h264.decoder] Now uninitialized
12-05 18:52:39.444 22537 25555 I ACodec  :  [] Now kWhatShutdownCompleted event : 8101
12-05 18:52:39.444 22537 22687 E MediaCodec: getBufferAndFormat - not executing
12-05 18:52:39.444 22537 25553 I MediaCodec: Codec shutdown complete
12-05 18:52:39.444 22537 22687 E cr_MediaCodecBridge: Failed to get input buffer
12-05 18:52:39.444 22537 22687 E cr_MediaCodecBridge: java.lang.IllegalStateException
12-05 18:52:39.444 22537 22687 E cr_MediaCodecBridge: 	at android.media.MediaCodec.getBuffer(Native Method)
12-05 18:52:39.444 22537 22687 E cr_MediaCodecBridge: 	at android.media.MediaCodec.getInputBuffer(MediaCodec.java:3993)
12-05 18:52:39.444 22537 22687 E cr_MediaCodecBridge: 	at org.chromium.media.MediaCodecBridge.getInputBuffer(chromium-TrichromeWebViewGoogle.aab-stable-530414133:20)
12-05 18:52:39.444 22537 22687 E chromium: [ERROR:media_codec_bridge_impl.cc(697)] GetInputBuffer failed
12-05 18:52:39.446 22537 22677 W cr_MediaCodecBridge: Releasing: OMX.sprd.h264.decoder
12-05 18:52:39.447 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] Now Executing->Idle
12-05 18:52:39.447 22537 22677 W cr_MediaCodecBridge: Codec released
12-05 18:52:39.454 22537 25560 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb4000075fe9e2100
12-05 18:52:39.454 22537 25560 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 16 to native window
12-05 18:52:39.454 22537 22537 E cr_MediaCodecBridge: MediaCodec.onError: android.media.MediaCodec.error_neg_2147479520
12-05 18:52:39.454 22537 25560 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb400007835875f00
12-05 18:52:39.454 22537 25560 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 15 to native window
12-05 18:52:39.455 22537 25560 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb400007835875d00
12-05 18:52:39.455 22537 25560 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 14 to native window
12-05 18:52:39.455 22537 25560 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb400007835875b00
12-05 18:52:39.455 22537 25560 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 13 to native window
12-05 18:52:39.456 22537 25560 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb400007835875900
12-05 18:52:39.456 22537 25560 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 12 to native window
12-05 18:52:39.456 22537 25560 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb400007835875700
12-05 18:52:39.457 22537 25560 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 11 to native window
12-05 18:52:39.457 22537 25560 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb400007835875500
12-05 18:52:39.457 22537 25560 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 10 to native window
12-05 18:52:39.457 22537 25560 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb400007835875300
12-05 18:52:39.457 22537 25560 W ACodec  : [OMX.sprd.h264.decoder] can not return buffer 9 to native window
12-05 18:52:39.458 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] Now Idle->Loaded
12-05 18:52:39.458 22537 25560 I ACodec  : [OMX.sprd.h264.decoder] Now Loaded
12-05 18:52:39.460 22537 25560 I ACodec  :  [OMX.sprd.h264.decoder] Now uninitialized
12-05 18:52:39.460 22537 25560 I ACodec  :  [] Now kWhatShutdownCompleted event : 8101
12-05 18:52:39.460 22537 25559 I MediaCodec: Codec shutdown complete

Hi,
I have narrowed down the issue to a possibly missing codec on the tablet. It seems like Samsung's default player is unable to play the recorded mp4 files. Strangely it can play other (h264) mp4 files. Anyways, this can be closed as it's not related to the card - Sorry for creating the issue unnecessarily.

I'm seeing the same issue with an Echo Show 15 and using the companion app or Fully Kiosk Browser. I'm now using Amazon's Silk browser which works better but when it switches to another camera (with Scan Mode) it stops with the same "Error with media stream contents". Refreshing enables it to play again.
I've tried disabling OpenGL for JSMPEG live views as suggested in troubleshooting.

I've slightly increased the robustness of the HA player to only show errors if HA believes they are fatal. The "Error with media stream contents" is not fatal. Will be in the next build.


Test Case Refactor + Scenario and Tags

I refactored one of my existing test cases into a suite and am also including a new test suite "Scenario and Tags". The later is not finished; it has 6 stages complete with 4 stages still needing code.
The goal of this was to come to a common point of understanding between Matt and myself and any other team member who wishes to participate in the planning of how tests will be written going forward.

:tada: This PR is included in version 0.344.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Instagram error

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I'm running yt-dlp version 2023.03.04 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
India
Provide a description that is worded well enough to be understood
App version: 1.10.0-beta.2 (10920)
Device information: Android 12 (API 31)
Supported ABIs: [arm64-v8a, armeabi-v7a, armeabi]
Yt-dlp version: 2023.03.04
URL: https://www.instagram.com/reel/Csfwbs0vaLX/?igshid=MzRlODBiNWFlZA==
WARNING: [Instagram] Csfwbs0vaLX: General metadata extraction failed (some metadata might be missing).
WARNING: [Instagram] unable to extract shared data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
WARNING: [Instagram] Main webpage is locked behind the login page. Retrying with embed webpage (some metadata might be missing).
WARNING: [Instagram] unable to extract additional data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
ERROR: [Instagram] Csfwbs0vaLX: Requested content is not available, rate-limit reached or login required. Use --cookies, --cookies-from-browser, --username and --password, or --netrc (instagram) to provide account credentials
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
App version: 1.10.0-beta.2 (10920)
Device information: Android 12 (API 31)
Supported ABIs: [arm64-v8a, armeabi-v7a, armeabi]
Yt-dlp version: 2023.03.04

URL: https://www.instagram.com/reel/Csfwbs0vaLX/?igshid=MzRlODBiNWFlZA==
WARNING: [Instagram] Csfwbs0vaLX: General metadata extraction failed (some metadata might be missing).
WARNING: [Instagram] unable to extract shared data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
WARNING: [Instagram] Main webpage is locked behind the login page. Retrying with embed webpage (some metadata might be missing).
WARNING: [Instagram] unable to extract additional data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
ERROR: [Instagram] Csfwbs0vaLX: Requested content is not available, rate-limit reached or login required. Use --cookies, --cookies-from-browser, --username and --password, or --netrc (instagram) to provide account credentials

Duplicate of #7165


fixed importing UnityConverters (included issue #75)

added explicit ordering of assemblies

tests failed due to "Setup Unity license" failed

added explicit ordering of assemblies

Thanks for creating this PR! But what is the issue you're trying to solve here?
The code already does a .Reverse() to set some sort of ordering. So this new .Order(Order) seems a bit redundant.

tests failed due to "Setup Unity license" issues

Yes sorry. The unit tests require a sensitive value, which is not available when the PR is created by an outside contributor. When your PR is done, then I'll have to recreate it just so the tests can run

The order of assemblies in array is non-deterministic. In my case this leads to conflicts between convetrers from this repo and the same convetrers embedded in RiderFlow assemblies (as internal classes). Calling Reverse() doesn't solve the problem because it just reverses the array. In result, RiderFlow converters appear at top of the array and break everything.
My fix ensures that Newtonsoft.Json assemblies will be placed at the beginning of the list and mscorlib is at the end. I also left Reverse() so as not to break anything. But it seems useless to me.

Ok, let's look what TypeCache._assemblies contains right now in my project (without fix - reversed array): reverse.txt JetBrains.RiderFlow.Repacked assembly (with internal converters) is closer to beginning of the array than any Newtonsoft.Json. And this is a problem.
At the same time, this is what is written in the comments:

            // Reversing so we get last imported assembly first.
            // When searching for types we want to look in mscorlib last
            // and Newtonsoft.Json up as the first ones

To be honest, I don’t understand how a simple Reverse() can guarantee such sorting. Obviously, it can't. That's why i sort the array explicitly (reversed array + order fix): reverse_and_order.txt.
But I agree that two sorts seems a bit redundant. I would remove Reverse() if its only purpose is to move Newtonsoft.Json and mscorlib. Here another file with TypeCache._assemblies content (wtih order, without reverse):
order.txt

Wdyt? @Erifirin

Yes! Now it works as expected.
Your solution definitely looks better. Also if you don't mind, I would get rid of multiple calls assembly.GetName() to reduce allocations.


JSON.parse(undefined) error when hydrating

Which project does this relate to?
Start
Describe the bug
JSON.parse is trying to parse "undefined" and throws an error when hydrating:

Your Example Website or App
https://github.com/adrifer/TanStackStartUndefinedRepro
Steps to Reproduce the Bug or Issue
These are the exact changes done to repro this issue:
https://github.com/adrifer/TanStackStartUndefinedRepro/commit/ae7487e52c8db19be0aeb8a006c6cad2309bfce5
Quick summary of the changes:

Use React 19 RC1
Use a root with context
Add some links like google fonts
Return a deferred promise in the route

In order to repro this issue run these (build is needed, not repro it on npm run dev):
npm run build
node .output/server/index.mjs

Go to localhost:3000 and see on the console the error. Also, the page is now unresponsive, so clicking on 0 (is a button) won't increase the counter.
Expected behavior
It should load without an error in the console, and button should be interactive
Screenshots or Videos
No response
Platform

OS: MacOS/Windows
Browser: Edge
Version: 131.0.2903.70

Additional context
No response

After discussing with @schiller-manuel, it seems I cannot repro this with React 18, so it seems this might be only reproducible on React 19


sync to remote belay box on install if BELAY_BOX=ip_address is set wi…

…th cmake
Signed-off-by: Cornelius Claussen<EMAIL_ADDRESS>

INSTALL_PREFIX is actually the wrong variable here


exports 정의 수정

Summary
exports 시 import, require 분리
Description
exports 시 import, require 분리
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

/canary-publish

/canary-publish

/canary-publish

/canary-publish

/canary-publish


Webpack build

This PR does the following:

Adds a callback to fs.close (#33 )
Copies over the updated code in dist to the files in lib
Adds a basic build system using Webpack

This started as just an attempt to close #33. However, when looking through the commit history it became clear that the source files in lib were not up to date with the bundled version in dist. Several commits have edited dist/id3.js directly. So I have copied the updated code into lib to continue.
I have added lib/index.js, which sets the library up for use as before.
I have added a basic webpack build setup. Running npm run build will bundle the lib folder into dist/id3.js. I have webpack configured to export a node compatible UMD bundle. This works in Node, but could do with further testing for support in browser.

This project is largely unmaintained and has been in need of a cleanup for some time now so thanks for taking interest in it.
My main feedback here is that i'd much rather use rollup as it is much lighter than webpack and more focused on being a bundler than being a "bit of everything".
It also means we could move the sources to using ES modules (import/export rather than module.exports) but we would probably have to introduce babel to transpile down to commonjs in that case. If you're interested in having a go at that, im happy to explain what needs doing as it isn't a huge piece of work either (a few find and replaces really).
Whether we do the ESM conversion or not, i think rollup can still be used and should keep the build very light.
Would you mind also introducing an .editorconfig if you could? To ensure we're consistent with indentation and what not from now on (unfortunately we're using tabs because i didn't know any better back then..).

Where I have ended up going with this on my fork is migrating to Typescript, as I want to use it with Angular:
https://github.com/MichaelMarner/id3/tree/ts
(branch is most likely broken right now)
Not sure how you feel about Typescript, but I'll tidy up this PR and swap Webpack for Rollup anyway. Hopefully in the next day or so.

Do you have any particular rules you would like in an .editorconfig apart from using tabs for indentation?

I'm a 2-space/LF person myself but to avoid rewriting the entire code base we should probably (for now) stick to tab indentation and LF line endings:
end_of_line = lf
indent_style = tab

I use typescript in most projects i contribute to, so i'd definitely be open to moving this project to it. That would remove the need for babel as the typescript compiler will output commonjs modules for us.
I imagine there's plenty of bugs we'll uncover by strongly typing the codebase too (or places where we essentially use any and shouldn't).
If you want to submit a PR for moving to ts i would be happy to review it as i do have some preferences/ideas around that.
For this PR i suggest we try out rollup with the existing sources but limit the scope of change here to just bundle/library generation.

Have switched to Rollup to build. I have not replaced the current dist/id3.js with the rollup built one.
This probably needs further testing, but has been working find with how I've been using it (node, opening local files).

Looks good so far.
Now that we have it using rollup, i see you moved to import/export too (es modules). Was hoping we could, though this does mean we need to stick with main being dist/id3.js for now (until we move to TS).
Testing is something we're missing completely. From what I remember, I tested it manually in early stages but i may have another look into introducing a test suite this week. It is difficult because we'd need to essentially check in a valid "test" mp3 i guess.
Once we're certain everything behaves as it did before, this should probably be merged into a new 2.x branch so we can also throw typescript in there at a later point. I'll do some manual testing if i get time this week.

Hey sorry I let this one get away - what would you like me to do/add/change here?


Update LLVM to 14.0.0

Tool name
LLVM
Tool license
Apache v2.0
Add or update?

[ ] Add
[X] Update

Desired version
14.0.0
Approximate size
No response
Brief description of tool
LLVM 14.0 was released and is available on chocolatey, failing the builds for server 2016 and 2019 because their toolset manifest still check for version 13.
URL for tool's homepage
No response
Provide a basic test case to validate the tool's functionality.
No response
Virtual environments affected

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[ ] macOS 10.15
[ ] macOS 11
[X] Windows Server 2016
[X] Windows Server 2019
[ ] Windows Server 2022

Can this tool be installed during the build?
No response
Tool installation time in runtime
No response
Are you willing to submit a PR?
Yes

@mmuffins please take a look at the comment https://github.com/actions/virtual-environments/pull/5286#issuecomment-1079553563
We will update llvm a bit later and announce it first.

@FrancescElies hi! The announcement is right here https://github.com/actions/virtual-environments/issues/5835


Fix filtering regression

This is the same fix as #1894 but for master.  It's a bit more complicated because we now have id filters in addition to location filters to worry about.
/cc @JonRowe

hmm, looks like Travis didn't run for this.

Gonna open a new PR so that hopefully Travis willl build it.


debug/buildinfo: oom (infinite loop ?)

What version of Go are you using (go version)?

$ go version
go version go1.21 linux/amd64

Does this issue reproduce with the latest release?
It happens only on gotip, not on go 1.21
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/root/.go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/root/.go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.21"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/src/ngolo-fuzzing/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2481516251=/tmp/go-build -gno-record-gcc-switches"

What did you do?
Run https://go.dev/play/p/9MShhrc8jgK?v=gotip
What did you expect to see?
The program finishing and printing Hello, without allocating too much
(as happens with go 1.21)
Regression range is given as 5fe3f0a265c90a9c0346403742c6cafeb154503b:856cf23a8acfa14756a6e9b82ace76f5604262c9
What did you see instead?
Nothing : Program exited
Found by https://github.com/catenacyber/ngolo-fuzzing with oss-fuzz :
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62574

I was able to reproduce this in linux as well as macos. I believe it is related to CL514075, issue #61644.
The initial magic bytes matches conditions for xcoff, the routine that is causing the high memory usage is xcoffExe.ReadData, particulary the line with saferio.ReadDataAt

@gopherbot add NeedsFix

Same issue as https://github.com/golang/go/issues/59817, but there it was fixed for PE.

I think the logic is disconnected here: https://github.com/golang/go/blob/340a4f55c4afac5b74c8df8365decb0c0237d710/src/debug/buildinfo/buildinfo.go#L151-L163
It tries to locate data section address by section type (x.DataStart()):
https://github.com/golang/go/blob/340a4f55c4afac5b74c8df8365decb0c0237d710/src/debug/buildinfo/buildinfo.go#L405-L410
but then finds a wrong section based on the virtual address (x.ReadData()):
https://github.com/golang/go/blob/340a4f55c4afac5b74c8df8365decb0c0237d710/src/debug/buildinfo/buildinfo.go#L392-L403
The wrong section happens to be a .bss section that uses zeroReaderAt that reads infinite amount of zeroes:
https://github.com/golang/go/blob/340a4f55c4afac5b74c8df8365decb0c0237d710/src/internal/xcoff/file.go#L263-L265
Its not clear whether sections virtual addresses could actually overlap, if not then this should be validated during parsing.
Also using a never-ending reader does not seem like a safe choice.

Maybe using eofReaderAt that always returns 0, io.EOF for .bss instead of zeroReaderAt would be enough to fix this.

@AlexanderYastrebov Would you be willing to send in a fix? Thanks


How to inference a single image?

Hi, yuan
Thank you for your impressing work! I am wondering if I can run inference on a single image. Could you tell me how to prepare input and how to run the script?
Thank you

您好，我现在也有这个问题，请问您现在解决了吗？

Did you find any solutions

@le8888e Did you find a way to perform inference with checkpoints?


As a developer, I want to be able to customize the code generated by didc so that I don't have to do so with a sed script.

Is your feature request related to a problem? Please describe.
Currently I have to post-process the Rust code generated by .didc.  The changes include:

Make types and their fields public, otherwise they cannot be used!
Comment out the header; I often use different imports and need different clippy rules.
Customize the list of traits applied to every struct.
... and many other things.

Describe the solution you'd like
Rather than making a huge long list of customizations, I would like to suggest that to start with we introduce a structure for managing customizations.
In particular I would like to propose an options file that could be called like this:
didc bind --target rs --options optfile.did somefile.candid

or

didc bind --target rs --options <( echo stuff) somefile.candid

That options file could then, for example, contain record{ rust = record {header=false}} to suppress printing the Rust header.
Describe alternatives you've considered

Having a bunch of flags.  I think this could get unwieldy.
Having an implicit location for an options file.  We could do this but then we would still want an override.

Additional context
Note: If approved in principle I would be happy to implement this and then make further proposals, one for every option.

We are certainly working on this direction! Note that there is an ruditemary Config option for Rust codegen: https://github.com/dfinity/candid/blob/master/rust/candid/src/bindings/rust.rs#L16. It's not exposed in didc yet, as I feel it's not mature enough.

Make types and their fields public, otherwise they cannot be used!

This should already be fixed in the latest didc.

Customize the list of traits applied to every struct.

There is a config option to do this already.

Cool, thank you for the information.  I'll look at the latest didc and give it a spin.

Would it be an option to expose the config option via a hidden flag?  Hidden in the sense that didc --help does not show it?  That way we can test the config in some real-world use cases without committing to it?  Regardless, please consider us as willing testers for this!

@chenyan-dfinity Regarding pub, it looks as if fields are still private for didc version 0.3.5:
max@sinkpad:~/dfn/nns-dapp/branches/no-pub-no-more (7:21)$ didc --version
didc 0.3.5
max@sinkpad:~/dfn/nns-dapp/branches/no-pub-no-more (7:37)$ didc bind --target rs declarations/sns_ledger/sns_ledger.did  | grep -A5 -m1 struct
pub struct Account { owner: Principal, subaccount: Option<Subaccount> }
                     ^ owner is private

Are they pub on an unreleased head of main?  Let me check....

I think the latest release already has this: https://github.com/dfinity/candid/releases/tag/2023-09-27. I'm bad at bumping versions, didc may still report version 0.3.5 for the new release :(