Support Laravel Nova

error:
Unable to encode attribute [original] for model [Laravel\Nova\Actions\ActionEvent] to JSON: Malformed UTF-8 characters, possibly incorrectly encoded.

Hi @mziraki, thanks for opening this issue. I need some context in order to understand the issue. I don't work with Nova. Can you share some code? When the error occurs? Is that really related to the package?

@MatanYadaev hi, thanks for quick reply
I tried to migrate from https://github.com/grimzy/laravel-mysql-spatial/issues/186#issuecomment-1050719388 to this package.
it seems "laravel-mysql-spatial" convert fields in "doctrine" (deeper) level and when laravel nova wants to save the whole model for logging gets the correct Geometry object (e.g: Point) but with this package it gets the raw field and when it tries to encode it to json produces the error. I wonder if it's possible to add the same conversion in deeper level for this package, too.

@MatanYadaev
it seems like this is the method https://github.com/grimzy/laravel-mysql-spatial/blob/2ca9f2f25cf10e3b4771881108ecc9c69317bf57/src/Eloquent/SpatialTrait.php#L102

@MatanYadaev
e.g:
Exhibition::find(86)
dd with this package:
#original: array:23 [▼
.....
"location" => b"\x00\x00\x00\x00\x01\x01\x00\x00\x00™WæÏ¹I@Âl\x19I\àA@"
....
]
dd with grimzy package:
#original: array:23 [▼
.....
"location" => Grimzy\LaravelMysqlSpatial\Types\Point {#2079 ▼
#lat: 35.752816331305
#lng: 51.4457340121
#srid: 0
}
.....
]

@MatanYadaev I think it's the limitation of the laravel castable

@mziraki I have no idea how can I help you with that. Feel free to send a PR if you find a solution.

@mziraki I've just run into exactly the same problem, and I've asked about it in the Nova channel on Laracasts, but no answers yet :(
I wonder if it's trying to treat the WKB string as UTF-8, which will probably cause that error message, though it should not be trying to do that if the cast is being applied when it is fetched from the DB – which I have asked it to do.

@Synchro https://github.com/mziraki/laravel-mysql-spatial you can fork my fork and use:
"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/[your_username]/laravel-mysql-spatial.git"
    },
],

in your composer.json

@MatanYadaev the problem is that it's not casting the raw WKB value to an object. The code to reproduce that is very simple, as @mziraki said:
$l = Model::find(1);
dump($l);

and see in the output:
"location" => "\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00$@\x00\x00\x00\x00\x00\x00$@"

This should be something like:
"location" => MatanYadaev\EloquentSpatial\Objects\Point
+latitude: 35.752816331305
+longitude: 51.4457340121
}

so for some reason the cast is not being applied when creating or retrieving a point field.

I have set breakpoints on the first line of every method in Point, Geometry, and GeometryCast classes, and none of them are called when doing find and dump operations! I have the feeling that something small but critical is missing.

I made a fork of this repo and have written a test that shows the problem.
public function it_casts(): void
{
    /** @var TestPlace $testPlace */
    $testPlace = TestPlace::factory()->create([
        'point' => new Point(180, 0),
    ]);
    $testPlace2 = TestPlace::find($testPlace->id);
    dump($testPlace);
    dump($testPlace2);
}

The first dump() call produces this in the output:
"point" => Illuminate\Database\Query\Expression]8;;file:///Users/marcus/Sites/laravel-eloquent-spatial/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php#L5\^]8;;\ {#944
      #value: "POINT(0, 180)"
    }

the second one does this:
    "point" => b"\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00€f@"

So when the data is retrieved from the DB, it it not turned back into an object, and this is apparently not covered by the tests.
I spotted that GeometryCast::set returns a string, but Laravel docs say it should return an array. Unfortunately I don't see how to do that generically for all Geometry-based classes. I tried a simple patch, adding Point::set() returning
    return [
        'longitude' => $this->longitude,
        'latitude' => $this->latitude,
    ];

but that didn't do anything.

Oh, and here's a weird wrinkle; this passes!
$this->assertEquals($testPlace->point, $testPlace2->point);

@Synchro No worries, we'll fix it easily. Can you please share the branch that has failing tests with me? I just need a way to reproduce the bug so I'll know when it got fixed. Just send a PR with the failing tests.

Thanks. I've pushed a test, however, I can't figure out how to expose the failing behaviour in it. When you inspect the individual properties, they are cast correctly, but when you look at them with dump, they are not.
This assertion fails:
    $this->assertEquals($testPlace, $testPlace2);

but that seems to be more to do with the test factory, so I have modified the factory to set more of the default properties, but it still has a few differences.

@Synchro I looked and played with your branch. It doesn't seem to have a real issue here. Laravel stores the original value of the column point and it casts it from WKB to Point object only on a direct access or on serialization. When you dump the whole model it doesn't cast the original values. This is how Laravel works.
$this->assertInstanceOf(Point::class, $testPlace->point);
$this->assertEquals($testPlace->toArray(), $testPlace2->toArray());
$this->assertEquals($testPlace->point->toArray(), $testPlace2->toArray()['point']);

BTW, the return type of GeometryCast::set is ok. You can return an array [$key => $geometry->toWkt()] but it will be the same as returning just $geometry->toWkt().

Well, the problem must be somewhere else then. I don't think it's a Nova issue because nova is simply acting on the instance of my model that is passed to it. I've also seen this problem that may be related: In my model I have this constructor:
public function __construct(array $attributes = [])
{
    parent::__construct($attributes);
    if (is_null($this->location)) {
        $this->location = new Point(51.5032973, -0.1195537);
    }
}

If I do a $l = Location::find(1);, that is_null condition is matched (the DB field is also not null), and I end up with that default value instead of the one from the DB, though all other values are set from the DB. If I don't do that check, I end up with a WKB string instead. I don't know why the cast is not being applied. Is there some other way that it could be accessed that's not triggering the cast? Is there some way I can force it to be applied?

@Synchro Can you reproduce the issue in a non-Nova environment? Can you try to write your own cast? Try removing 'location' => PointCast::class and add a method called location on your model like that: https://laravel.com/docs/9.x/eloquent-mutators#defining-a-mutator

I've invited you to a private repo for this, including Nova. It shows the casting problem described here, but also (incidentally) demonstrates the issue with non-null geo fields if you try to create a new Place. I also reported this in the Nova issues project to try and attack this problem from both ends.

Hi @MatanYadaev, did you get a chance to look at the project I set up?

@Synchro I can't install Nova without your credentials.
BTW, can you reproduce the issue on a new Laravel project that doesn't include Nova?

@Synchro Please create a new project from scratch that reproduce the issue without having any dependencies like Nova.
I tried installing your project but had many issues with NovaApplicationServiceProvider and more. I don't have time to debug the integration between my package and other packages.

I've done that.
Note that doing the equivalent thing with the Grimzy spatial library works, however, it lacks support for L9, and I prefer your API.

@Synchro

About comparing models, I told you about it, you shouldn't compare model instances, you should only compare serialized/JSON versions. This is how casts work in Laravel. https://github.com/MatanYadaev/laravel-eloquent-spatial/issues/28#issuecomment-1093866688
Currently it's impossible to set default values to spatial columns in the Model::__construct method. You should find a different way to set default values. You can try using the creating model event: https://laravel.com/docs/9.x/eloquent#events

@Synchro , @MatanYadaev
Same problem.
My fix:

class GeoobjectGeometry extends AbstractEloquentModel {

    // Casts
    protected $casts = [
        'center' => Point::class,
        'coordinates' => Geometry::class,
    ];

    // .....

    public function getRawOriginal($key = null, $default = null)
    {
        foreach (['center', 'coordinates'] as $cast) {
            $this->original[$cast] = Geometry::fromWkb(Arr::get($this->original, $cast, $default));
        }

        return Arr::get($this->original, $key, $default);
    }

}

FYI:
I published a nova field based on this package.
https://github.com/mostafaznv/nova-map-field

error: Unable to encode attribute [original] for model [Laravel\Nova\Actions\ActionEvent] to JSON: Malformed UTF-8 characters, possibly incorrectly encoded.

Hi everyone.
I think all these Nova issues are related to how this package is dealing with getChanges, getDirty and getRawOriginal.
Just look at this code:
Model:
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use MatanYadaev\EloquentSpatial\Objects\Polygon;

class Area extends Model
{
    protected $casts = [
        'location' => Polygon::class,
    ];
}

Test:
Please run this code multiple times with that two datasets ($coordinates)

# retrieve a record
$area = Area::query()->latest()->first();

# datasets
$coordinates = [['4.3876602', '51.9096641'], ['4.3869092', '51.9085389'], ['4.387038', '51.9082079'], ['4.3946554', '51.906434'], ['4.3953421', '51.906434'], ['4.3963506', '51.9066856'], ['4.3959214', '51.9078505'], ['4.393883', '51.9082212'], ['4.391072', '51.9085389'], ['4.3909647', '51.9086845'], ['4.3910505', '51.9092405'], ['4.3894627', '51.9093331'], ['4.3876602', '51.9096641']];
$coordinates = [['4.3874886', '51.9096893'], ['4.3836691', '51.9100599'], ['4.3832185', '51.9090803'], ['4.3859865', '51.908392'], ['4.3864801', '51.9083787'], ['4.3866946', '51.9084846'], ['4.3874886', '51.9096893']];

# prepare a polygon using the chosen dataset
$points = [];

foreach ($coordinates as $coordinate) {
    $points[] = new Point($coordinate[0], $coordinate[1]);
}

$area->location = new Polygon([
    new LineString($points)
]);

# results
dump('raw original: ', $area->getRawOriginal('location'));
dump('dirty: ', $area->getDirty());

$area->save();

dump('changes: ', $area->getChanges());

dd();

You will see these results:
❌ Get Dirty
location is always dirty. doesn't matter if we changed the dataset or not. it's always dirty
❌ Get Changes
location is always there. Laravel thinks it changes every time we save this record.
⚠ Get Raw Original
It returns binary (and it's not a wrong behavior).
But when Nova wants to log changes to database, it can't cast that binary to string and returns Malformed UTF-8 characters exception. so fixed it by this trait (but I have not done anything about getChanges and getDirty yet)
I know spatial fields are stored to database with that format, but binary is not usable in application layer and if we cast it to json (or something else) by default, it will benefit us in these situations.
getRawOriginal, getDirty and getChanges are not nova things. these methods are commonly used by developers in almost all laravel-based services.

@mostafaznv Great, thanks for the research. Can you please send a PR fixing it?

@mostafaznv Great, thanks for the research. Can you please send a PR fixing it?

Yes, I will work on it soon.

Should be fixed in version 2.
But, there's a catch, Laravel doesn't compare between two different geometry instances. They might have the same values, but the instances are different, so Laravel see it as dirty.
You can fix it by adding this snippet to your model:
public function originalIsEquivalent($key)
    {
        if (! array_key_exists($key, $this->original)) {
            return false;
        }

        if (parent::originalIsEquivalent($key)) {
            return true;
        }

        if($this->isClassCastable($key) && is_subclass_of($this->getCasts()[$key], Geometry::class)) {
            $originalGeometry = $this->getOriginal($key);
            $attributeWkbOrWkt = Arr::get($this->attributes, $key);

            return $this->castAttribute($key, $attributeWkbOrWkt) == $originalGeometry;
        }

        return false;
    }

Please check if it works for you. If so, I'll try to add it to the core of this package.

Hi @MatanYadaev
Thanks for this update.
It seems both getDirty and getChanges methods are working fine and creating resources in Nova admin panel also works fine but I still have an error during updating resources in Nova.
[2022-07-08 08:32:30] local.ERROR: Expected MatanYadaev\EloquentSpatial\GeometryCast, string given. {"userId":1,"exception":"[object] (InvalidArgumentException(code: 0): Expected MatanYadaev\\EloquentSpatial\\GeometryCast, string given. at /project/vendor/matanyadaev/laravel-eloquent-spatial/src/GeometryCast.php:66)
[stacktrace]
#0 /project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(1087): MatanYadaev\\EloquentSpatial\\GeometryCast->set(Object(App\\Models\\Location), 'area', '\\x00\\x00\\x00\\x00\\x01\\x03\\x00\\x00\\x00\\x01\\x00\\x00\\x00\
\\x00...', Array)
#1 /project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(932): Illuminate\\Database\\Eloquent\\Model->setClassCastableAttribute('area', '\\x00\\x00\\x00\\x00\\x01\\x03\\x00\\x00\\x00\\x01\\x00\\x00\\x00\
\\x00...')
#2 /project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(431): Illuminate\\Database\\Eloquent\\Model->setAttribute('area', '\\x00\\x00\\x00\\x00\\x01\\x03\\x00\\x00\\x00\\x01\\x00\\x00\\x00\
\\x00...')
#3 /project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(452): Illuminate\\Database\\Eloquent\\Model->fill(Array)
#4 /project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php(155): Illuminate\\Database\\Eloquent\\Model->Illuminate\\Database\\Eloquent\\{closure}()
#5 /project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(453): Illuminate\\Database\\Eloquent\\Model::unguarded(Object(Closure))
#6 /project/vendor/laravel/nova/src/Actions/ActionEvent.php(115): Illuminate\\Database\\Eloquent\\Model->forceFill(Array)
#7 /project/vendor/laravel/nova/src/Http/Controllers/ResourceUpdateController.php(50): Laravel\\Nova\\Actions\\ActionEvent::forResourceUpdate(Object(App\\Models\\User), Object(App\\Models\\Location))
#8 [internal function]: Laravel\\Nova\\Http\\Controllers\\ResourceUpdateController->Laravel\\Nova\\Http\\Controllers\\{closure}(Object(Laravel\\Nova\\Actions\\ActionEvent))
#9 /project/vendor/laravel/nova/src/Concerns/InteractsWithActionEvent.php(38): call_user_func(Object(Closure), Object(Laravel\\Nova\\Actions\\ActionEvent))
#10 /project/vendor/laravel/nova/src/Http/Controllers/ResourceUpdateController.php(52): Laravel\\Nova\\Nova::usingActionEvent(Object(Closure))
#11 /project/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php(30): Laravel\\Nova\\Http\\Controllers\\ResourceUpdateController->Laravel\\Nova\\Http\\Controllers\\{closure}(Object(Illuminate\\Database\\MySqlConnection))
#12 /project/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(462): Illuminate\\Database\\Connection->transaction(Object(Closure))
#13 /project/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(337): Illuminate\\Database\\DatabaseManager->__call('transaction', Array)
#14 /project/vendor/laravel/nova/src/Http/Controllers/ResourceUpdateController.php(53): Illuminate\\Support\\Facades\\Facade::__callStatic('transaction', Array)
#15 /project/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php(30): Laravel\\Nova\\Http\\Controllers\\ResourceUpdateController->Laravel\\Nova\\Http\\Controllers\\{closure}(Object(Illuminate\\Database\\MySqlConnection))
#16 /project/vendor/laravel/nova/src/Http/Controllers/ResourceUpdateController.php(64): Illuminate\\Database\\Connection->transaction(Object(Closure))
#17 /project/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Laravel\\Nova\\Http\\Controllers\\ResourceUpdateController->__invoke(Object(Laravel\\Nova\\Http\\Requests\\UpdateResourceRequest), 'locations', '12')
#18 /project/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('__invoke', Array)
#19 /project/vendor/laravel/framework/src/Illuminate/Routing/Route.php(268): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Laravel\\Nova\\Http\\Controllers\\ResourceUpdateController), '__invoke')
#20 /project/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#21 /project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Route->run()
#22 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#23 /project/vendor/laravel/nova/src/Http/Middleware/Authorize.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#24 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Laravel\\Nova\\Http\\Middleware\\Authorize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#25 /project/vendor/laravel/nova/src/Http/Middleware/BootTools.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Laravel\\Nova\\Http\\Middleware\\BootTools->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#27 /project/vendor/laravel/nova/src/Http/Middleware/DispatchServingNovaEvent.php(24): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#28 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Laravel\\Nova\\Http\\Middleware\\DispatchServingNovaEvent->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#29 /project/vendor/inertiajs/inertia-laravel/src/Middleware.php(92): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Inertia\\Middleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 /project/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 /project/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 /project/vendor/laravel/nova/src/Http/Middleware/Authenticate.php(31): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#35 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Laravel\\Nova\\Http\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#36 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#37 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#38 /project/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#39 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 /project/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 /project/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#42 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 /project/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#45 /project/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#46 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#47 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#48 /project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#49 /project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#50 /project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#51 /project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#52 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#53 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#54 /project/vendor/laravel/nova/src/Http/Middleware/ServeNova.php(23): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#55 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Laravel\\Nova\\Http\\Middleware\\ServeNova->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#57 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#58 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#59 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#60 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#61 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#62 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#63 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#64 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#65 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#66 /project/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#67 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#68 /project/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#69 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#70 /project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#71 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#72 /project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#73 /project/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#74 /project/server.php(21): require_once('/project...')
#75 {main}
"}

@mostafaznv Can you send a PR with a failing test?

Should be fixed in version 2.
But, there's a catch, Laravel doesn't compare between two different geometry instances. They might have the same values, but the instances are different, so Laravel see it as dirty.
You can fix it by adding this snippet to your model:
public function originalIsEquivalent($key)
    {
        if (! array_key_exists($key, $this->original)) {
            return false;
        }

        if (parent::originalIsEquivalent($key)) {
            return true;
        }

        if($this->isClassCastable($key) && is_subclass_of($this->getCasts()[$key], Geometry::class)) {
            $originalGeometry = $this->getOriginal($key);
            $attributeWkbOrWkt = Arr::get($this->attributes, $key);

            return $this->castAttribute($key, $attributeWkbOrWkt) == $originalGeometry;
        }

        return false;
    }

Please check if it works for you. If so, I'll try to add it to the core of this package.

I can confirm this workaround works nice and I'm excited to use it in new version.
Can you give me any estimation about release date?

@mostafaznv Version 2 is already released. Please let me know how it works with Nova.

originalIsEquivalent

Any updates about originalIsEquivalent?


Bug 2034648: Use --v Option to Set Log Verbosity for Builds

Use standard klog --v option to set log verbosity on Source and Docker
strategy builds, instead of our custom --loglevel option. The rebase
to k8s 1.23 prevents us from injecting the --loglevel option.

/assign @jkhelil
This will update the build controller to pass the -v logging option, rather than --loglevel. Once this merges, the rebase for openshift/builder should be able to work.

/cc @prietyc123 @jitendar-singh
If you are able to verify with pre-merge testing, you can add the qe-approved label and then the bug won't show up in your BZ ON_QA queue.

/bugzilla refresh

/cc @prietyc123 @jitendar-singh
If you are able to verify with pre-merge testing, you can add the qe-approved label and then the bug won't show up in your BZ ON_QA queue.

@adambkaplan IIUC I think we can not verify it pre-merge as pr https://github.com/openshift/openshift-controller-manager/pull/211 has been already merged. To spun up a cluster on cluster-bot using these prs, none of the pr should merge. So as per my understanding we can verify it after merge completion. @jitendar-singh Correct me if I am wrong.

@jkhelil I think this should work now. The builder command currently only supports the --v option, whereas after your rebase lands both -v and --v are accepted.

Note too that in addition to the unit test, we have e2e tests that verify we can override the build verbosity:
https://github.com/openshift/origin/blob/master/test/extended/builds/start.go#L147-L172

/lgtm

looks promising - conformance build tests all passed on GCP :smile:

/override ci/prow/openshift-e2e-aws-builds-techpreview
Known issue - see https://bugzilla.redhat.com/show_bug.cgi?id=2026488


util.php contains class Util

Hi,
I can't use the newest version, because some time ago the class was renamed to Util from util, without renaming the file. That leads to problems on systems without case-insensitive filesystems.

Fixed. I forgot about the composer autoloader. Will have to find a way around that, thanks!


Dockerfile for Tooler Failing

What happened?
docker.errors.BuildError: The command '/bin/sh -c addgroup -g ${GROUP_ID} -S tooler && adduser -u ${USER_ID} -S tooler -G tooler' returned a non-zero code: 1
What did you expect to happen?
Command succeeds. Possibly uses 1000 for user and group
How can we reproduce it (as minimally and precisely as possible)?
I am not 100% sure why it is failing because I don't see debug output as to what went wrong. I think what is going on is that GROUP_ID & USER_ID are resulting to 0 because it is being run on root.
What is the content of the Deckfile you are using?
cluster:
  provider: k3d
  minVersion: 4.0.0
  name: kubeinator
  nativeConfig:
    apiVersion: k3d.io/v1alpha4
    kind: Simple
    servers: 1
    agents: 1
    kubeAPI:
      hostPort: "6445"
    image: rancher/k3s:v1.22.9-k3s1
    ports:
      - port: 61346:80
        nodeFilters:
          - loadbalancer
      - port: 31820:31820
        nodeFilters:
          - agent:0

decks:
  - name: portainer
    namespace: portainer
    sources:
    - type: helm
      ref: https://portainer.github.io/k8s/ # latest, alpha
      chart: portainer
      releaseName: portainer
      parameters:
      - name: tls.force
        value: true

# The deck might be wrong but I don't think that is relevant to this issue.

OS version
PRETTY_NAME="Debian GNU/Linux bookworm/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Anything else we need to know?
Would it be okay to detect this and set them to 1000 like in the other cases in build_user_container?

I first offered changing the user id and group id to 1000, I am guessing that may cause other issues is this correct?

I have worked around this by making my own image for deck-tooler but I am not sure how we wont to solve this for more people.

Hi @Z02X
Thanks for bringing this up. This issue is potentially related to #85, addgroup might not be available.

Ya I believe it may be the same issue, and since it is run in a container I don't think it's missing the commands but is more likely what I pointed out.

Just like @Z02X I wonder why those commands should be missing in a Docker container. It probably has something to do with the given user ids (which are on linux platforms statically 1000).


The CoinBlockerLists are dead

Hi @funilrys and all,
Unfortunately my computer is completely broken this morning see the video.
https://drive.google.com/file/d/11xXSQ57f3PvD_41v71v5qp3iNX9o5_7b/view?usp=sharing
It is now absolutely impossible to provide updates and support, the project and everything related to it is dead.
I am not able to buy a new computer.
Thanks to all supporters, it was a nice time.
Best regards ZeroDot1

Sorry to read that ...
People are still fetching it from here. I'll keep it around for a few more months.
Cheers!

Hi @funilrys,
There is good news, I can continue the project after all, it was not easy to find good solutions, but it still worked.
The updates are secured.
I close here because the problem is solved and updates will be available again.


[5.9][interop] update <swift/bridging> to have language comment and __has_attribute guard

[interop] <swift/bridging> guard macros using has_attribute to make this header usable with GCC and MSVC
[interop] <swift/bridging> header should have a language comment line for IDE recognition
Explanation: <Swift/bridging> header needed a top level comment to let IDE recognize it's in C++. Also it needed to guard the macro definitions it defines using __has_attribute to ensure that these macros don't cause issues for other compilers.
Scope: Swift's and C++ interoperability, <swift/bridging> header.
Risk: Low, not yet adopted anywhere.
Testing: Swift unit tests, and manual test in custom adopter project.
Reviewer: @egorzhdan

@swift-ci please test

@swift-ci please test source compatibility


Support variables in all places

Fix https://github.com/CartoDB/carto-vl/issues/469

I think so @elenatorro but I haven't tested it, the idea of this PR is that every variable should work everywhere out of the box since a proxy ensures that no special code is needed for treating the special case.

Yes, I am asking that in order to see if we can solve this issue with this PR and close both issues :)


Incomplete language files shouldn't make errors

Fixes #22
Basically, before this, any non-empty language file would be treated as complete, and just be accepted, without any checks for completeness. This is obviously a problem, so instead I added it so in case there is no translation for a particular item, it will default to en_us.
I do have to figure out how to tell the player that the translation is incomplete, maybe by printing to logger? idk rly.

Incomplete translation should probably be informed to the player when changing languages and when loading the app in a different language.

@gnembon can scarpet support reading jsons? cos that would be very useful for the lang files, similar to mc.

can scarpet support reading jsons? cos that would be very useful for the lang files, similar to mc.

Well, currently it can't, but since the next version it may be able to. Check gnembon/fabric-carpet#643

can scarpet support reading jsons? cos that would be very useful for the lang files, similar to mc.

Well, currently it can't, but since the next version it may be able to. Check gnembon/fabric-carpet#643

looks impressive!

Looking forward to it


React.createElement: type is invalid

:\GitHub\newS\employees\node_modules\react-native\Libraries\Core\ExceptionsManager.js:84 Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
An error has also occurred using the official example.
Code sample

Your Environment

software
version

ios or android
android

react-native
0.57.3

react-native-tab-view
0.0.74

node

npm or yarn
npm

I have the same problem

me too, when adding
       renderPager = {this.renderPager}

I have this problem after update react version from 0.56.
I fixed updating this library version.

Hey, I just released a new alpha 2.0.0-alpha.0 of the library. It's rewritten using react-native-gesture-handler and react-native-reanimated addresses a many platform specific bugs and performance problems. The documentation is updated as well.
Please try the new version and see if it addresses your issue. If not, please open a new issue following the issue template.


Naming of the GPU sync switch is confusing.

It contains an implicit negative. We should make the API more verbose and easier to follow. Apparently @dnfield had a patch that did this already but it got reverted.

I was wrong, I refactored a different aspect of this. However, this shoul dbe trivial to fix, rename is_gpu_disabled_sync_switch_ and GetIsGpuDisabledSyncSwitch to is_gpu_enabled_sync_switch_/GetIsGpuEnabledSyncSwitch and then flip the SetIfTrue/SetIfFalses.


Using dynamic=True in a keras Metric constructor should run the metric methods in eager mode

Moving this feature request from TF repository https://github.com/tensorflow/tensorflow/issues/39114
Currently, when using dynamic=True in a Metric constructor, it has no effect. All the methods are run in graph mode. Since this feature is already present in keras Layers, and that a Metric is a subclass of Layer, one would expect a metric to run in eager mode if dynamic=True is provided.
Will this change the current api? How?
No change to the API. dynamic=True is already accepted in a Metric constructor. The change would be in behavior only. The flag should trigger the eager mode. Currently it doesn't do anything.
Who will benefit with this feature?
Users who want to make custom metrics which need eager mode and want to distribute them.
Any Other info.
Here is a minimal notebook reproducing the problem. With this feature implemented, the error should not happen:
https://colab.research.google.com/drive/11EuSPoyedceHySz_uxxqjZJbU2uatpfk

Triage notes:
If you want the metrics to run eagerly, you can just use tf.config.run_functions_eagerly to run everything eagerly.

BTW, one can also explicitly use a tf.numpy_function / tf.py_function in the metric to compute it using a Python code.


Preserve the Implicit attribute in SILLocation. (NFC)

This change aims at reducing the need for SIL passes to check into the AST
storage of SILLocations. The end goal is to eventually merge this with the
autogenerated flag, but at the moment the emergent semantics of both properties
are not identical.

@swift-ci test

@swift-ci test


fix URL for Lucene Index Toolbox

The URL for Luke has moved.
Staged at https://www.openmicroscopy.org/site/support/omero5.1-staging/developers/Modules/Search.html.
--no-rebase for now

New links works fine, merging. Any particular reason not to rebase this?

No, just had taken recent default as "not yet". Happy to rebase now if desired.

Rebase for 5.0.7 please


EOS multi-host multi-node environment---（net_plugin.cpp:2546  handle_message） && （net_plugin.cpp:2133 operator()) && (net_plugin.cpp:1010   operator()   Error sending)problem

1、when i run nodes in 4 hosts, eos1 as produce, the other 3  as recevier:
eos1:<IP_ADDRESS>   ll-B85M-DS3H-A
eos2: <IP_ADDRESS>   u-Inspiron-3847
eos3:<IP_ADDRESS>    xue-To-be-filled-by-O-E-M
eos4:<IP_ADDRESS>    uu-Lenovo
2、eosio1's  nodeos config:
bnet-endpoint = <IP_ADDRESS>:4321

//for communicatin with cleos
http-server-address = <IP_ADDRESS>:9800

//for sync block
p2p-listen-endpoint = <IP_ADDRESS>:9900
p2p-peer-address = <IP_ADDRESS>:9900
p2p-peer-address = <IP_ADDRESS>:9900
p2p-peer-address = <IP_ADDRESS>:9900

agent-name = "EOS Test Agent"
enable-stale-production = true

producer-name = eosio

//producer key,get by use"cleos ceate key"
private-key =["EOS8Znrtgwt8TfpmbVpTKvA2oB8Nqey625CLN8bCN3TEbgx86Dsvr", "5K463ynhZoCDDa4RDcr63cUwWLTnKqmdcoTKTHBjqoKfv4u5V7p"]

unlock-timeout = 90000

//load plugin
plugin = eosio::chain_api_plugin
plugin = eosio::history_api_plugin
plugin = eosio::chain_plugin
plugin = eosio::history_plugin
plugin = eosio::net_plugin
plugin = eosio::net_api_plugin

3、eos2 nodeos's config :
bnet-endpoint = <IP_ADDRESS>:4321

//for communicatin with cleos
http-server-address = <IP_ADDRESS>:9800

//for sync block
p2p-listen-endpoint = <IP_ADDRESS>:9900
p2p-peer-address = <IP_ADDRESS>:9900
p2p-peer-address = <IP_ADDRESS>:9900
p2p-peer-address = <IP_ADDRESS>:9900

agent-name = "EOS eosio2 Agent"
enable-stale-production = true

producer-name = eosio2

//producer key,get by use"cleos ceate key"
private-key =["EOS8Znrtgwt8TfpmbVpTKvA2oB8Nqey625CLN8bCN3TEbgx86Dsvr", "5K463ynhZoCDDa4RDcr63cUwWLTnKqmdcoTKTHBjqoKfv4u5V7p"]

unlock-timeout = 90000

//load plugin
plugin = eosio::chain_api_plugin
plugin = eosio::history_api_plugin
plugin = eosio::chain_plugin
plugin = eosio::history_plugin
plugin = eosio::net_plugin
plugin = eosio::net_api_plugin

eos3 and eos4 nodeos config is the same like eos2.
4、when i start eosio1 nodeos as produce ,eos2 -eos4 as receiver：
eosio 1 nodeos prompt：

2018-08-20T02:29:18.338 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from xue-To-be-filled-by-O-E-M:9900 - 5b16a7f: Connection reset by peer
2018-08-20T02:36:02.685 thread-0   net_plugin.cpp:741            connection           ] accepted network connection
2018-08-20T02:36:02.703 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from xue-To-be-filled-by-O-E-M:9900 - 5b16

eos2 prompt:

018-08-20T02:25:54.810 thread-0   net_plugin.cpp:1010           operator()           ] Error sending to peer xue-To-be-filled-by-O-E-M:9900 - 5b16a7f: Connection reset by peer
2018-08-20T02:25:54.810 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from connecting client: Operation canceled
eos3 nodeos prompt: :
018-08-20T02:26:18.685 thread-0   net_plugin.cpp:2546           handle_message       ] block_validate_exception accept block #3136 syncing from ll-B85M-DS3H-A:9900 - 0ceff0b
2018-08-20T02:26:18.685 thread-0   net_plugin.cpp:2133           operator()           ] Error reading

message from connecting client: Bad file descriptor
2018-08-20T02:40:11.292 thread-0   net_plugin.cpp:2546           handle_message       ] block_validate_exception accept block #38 syncing from <IP_ADDRESS>:9900 - 4b44c0e
2018-08-20T02:40:11.292 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from <IP_ADDRESS>:9900: Bad file descriptor
2018-08-20T02:40:11.293 thread-0   net_plugin.cpp:2546           handle_message       ] block_validate_exception accept block #38 syncing from ll-B85M-DS3H-A:9900 - 4a9e7ef
2018-08-20T02:40:11.293 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from <IP_ADDRESS>:9900: Bad file descriptor
2018-08-20T02:40:11.295 thread-0   net_plugin.cpp:2546           handle_message       ] block_validate_exception accept block #38 syncing from <IP_ADDRESS>:9900 - 1ba4ea6
2018-08-20T02:40:11.295 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from <IP_ADDRESS>:9900: Bad file descriptor

eos4 nodeos:

2018-08-21T02:26:44.047 thread-0   net_plugin.cpp:1914           connect              ] host: <IP_ADDRESS> port: 9900
2018-08-21T02:26:44.059 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from xue-To-be-filled-by-O-E-M:9900 - 5b16a7f: Connection reset by peer
2018-08-21T02:27:07.607 thread-0   net_plugin.cpp:741            connection           ] accepted network connection
2018-08-21T02:27:07.624 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from xue-To-be-filled-by-O-E-M:9900 - 5b16a7f: Connection reset by peer
2018-08-21T02:27:14.048 thread-0   net_plugin.cpp:1914           connect              ] host: <IP_ADDRESS> port: 9900
2018-08-21T02:27:14.060 thread-0   net_plugin.cpp:2133           operator()           ] Error reading message from xue-To-be-filled-by-O-E-M:9900 - 5b16a7f: Connection reset by peer
4、When I Ping the other 3 hosts in one host is connectable.
eos1:

sec@ll-B85M-DS3H-A:~/rgh/eos_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.280 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.277 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.277/0.278/0.280/0.016 ms
sec@ll-B85M-DS3H-A:~/rgh/eos_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.278 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.266 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.266/0.272/0.278/0.006 ms
sec@ll-B85M-DS3H-A:~/rgh/eos_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.268 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.253 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.253/0.260/0.268/0.017 ms

eos2:

u@u-Inspiron-3847:~/eos2_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.178 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.222 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.178/0.200/0.222/0.022 ms
u@u-Inspiron-3847:~/eos2_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.289 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.291 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.289/0.290/0.291/0.001 ms
u@u-Inspiron-3847:~/eos2_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.294 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.305 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.294/0.299/0.305/0.018 ms

eos3:

xue@xue-To-be-filled-by-O-E-M:~/eos3_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.251 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.245 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.245/0.248/0.251/0.003 ms
xue@xue-To-be-filled-by-O-E-M:~/eos3_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.267 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.298 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.267/0.282/0.298/0.022 ms
xue@xue-To-be-filled-by-O-E-M:~/eos3_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.182 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.202 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.182/0.192/0.202/0.010 ms

eos4:
uu@uu-Lenovo:~/eos4_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.241 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.250 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.241/0.245/0.250/0.016 ms
uu@uu-Lenovo:~/eos4_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.258 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.277 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.258/0.267/0.277/0.018 ms
uu@uu-Lenovo:~/eos4_multi$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.193 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.201 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.193/0.197/0.201/0.004 ms

I got the same error, have you sloved the problem?


Add security policy and EOL info to older-versions

Reached out to agup006 (Anurag Gupta) on slack regarding security update support period for older releases and learned that security updates for older releases ends three months after a new version is released. This change updates the older versions page to reflect this policy.
Bonus: corrected release dates for v2.1.1 and v2.1.2

+1 to merging @edsiper

thank you


Create a new AQS profile for Matter Sensor

Check all that apply
Type of Change

[ ] WWST Certification Request

If this is your first time contributing code:

[ ] I have reviewed the README.md file
[ ] I have reviewed the CODE_OF_CONDUCT.md file
[ ] I have signed the CLA

[ ] I plan on entering a WWST Certification Request or have entered a request through the WWST Certification console at developer.smartthings.com

[ ] Bug fix
[X] New feature
[ ] Refactor

Checklist

[X] I have performed a self-review of my code
[X] I have commented my code in hard-to-understand areas
[ ] I have verified my changes by testing with a device or have communicated a plan for testing
[X] I am adding new behavior, such as adding a sub-driver, and have added and run new unit tests to cover the new behavior

Description of Change
See MTR-864. This device in testing now does not perfectly map to any of our profiles and so this new profile will handle this device.
Further, since I was looking at the test file, I re-organized it a little to future proof it and keep it from getting to unwieldy.
Summary of Completed Tests
Tested with a new unit test using the same cluster configuration.

Looks good to me!


Add September newsletter

From #291 - draft content for September newsletter
cc @wipfli @HarelM @louwers @ianthetechie

I added a globe demo and converted the pngs to jpgs. This is nice since it saves like 1 megabyte or so


[Issue]:  How is a decision tree type YAML trained?

Problem Description
Based on the decision tree used in the Test to select a kernel, I want to see how the features in the YAML file are trained.
Operating System
Centos
CPU
AMD
GPU
AMD Radeon VII
ROCm Version
ROCm 6.1.0
ROCm Component
No response
Steps to Reproduce
No response
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

@lty-qd Thanks for submitting.
Unfortunately, we need more context than is provided in your ticket to provide a meaningful solution.
I recommend adding the following details to the description:

Detailed steps to reproduce
Current output
Desired output

Hi @lty-qd. Do you still need assistance with this ticket? Thanks!

Hi @lty-qd.  Closing ticket due to lack of activity. Please comment if you still require assistance with the additional requested details. Thanks!


Make it simpler to leave a rating for a dataset

Currently you have to do a rating AND a review, make it so the two can be done separately.

Closed in c751b0d8d4cd5093adc646e4fa92496cd43083d0


Don't spawn remote mining creeps when economy is crashed

When the economy is completely crashed (zero energy in storage) in a high level room spawning creeps for the remote mines will slow down room recovery, potentially preventing it altogether. This update prevents remote mining creeps from being spawned if the economy is crashed.

This Pull Request has been merged by GitConsensus.
Vote Totals

Yes
No
Abstain
Voters

4
0
0
4

Vote Breakdown

User
Yes
No
Abstain

tedivm
✔

dragoonreas
✔

PostCrafter
✔

starwar15432
✔

Vote Results

Criteria
Result

Has Quorum
True

Has Votes
True


Can't get this to install with current version of drush

There is a conflict with version numbers of symfony/console with the current version of drush.
drush requires ~2.7
drupal-vm-generator requires ^3.0
Is there any way to resolve this quickly? Can this package work with symfony console ^2.7?

The tests pass with 2.7 versions of the components, so I've adjusted the composer.json file to include either the 2.7+ or 3.x versions.
This has been tagged as 2.9.0.
I've required both with this command with no errors or conflicts - composer global require drush/drush:^8.0 opdavies/drupal-vm-generator:^2.9.
➜  ~ which drush
/Users/opdavies/.composer/vendor/bin/drush
➜  ~ drush --version
 Drush Version   :  8.0.5

➜  ~ which drupalvm
/Users/opdavies/.composer/vendor/bin/drupalvm
➜  ~ drupalvm --version
Drupal VM Generator version 2.9.1

Re-running composer global require opdavies/drupal-vm-generator should work for you now and install version 2.9.1.
There will be more updates to follow to get it working with the latest stable version of Drupal VM as it's currently a little out of date.


[TensorIR][Schedule] New schedule primitive hide_buffer_access

Motivation
Currently, our tensorize schedule primitives rely on buffer read/write regions in the given block to perform pattern matching. However, for workloads such as block sparse operators, the read/write regions include some indices arraies that may fail tensorize primitive.
In SparseTIR we introduce a new schedule primitive called hide_buffer_access which allows us to hide certain buffer regions in a block so that the read/write buffer regions would be recognized by the tensorize primitive to further utilize tensor acceleration units.
This PR upstreams this schedule primitive to TensorIR mainline.
The schedule primitive interface
    def hide_buffer_access(self, block: BlockRV, buf_type: str, buf_index_array: List[int]) -> None:
        """Hide some buffer access in a given block.

        Parameters
        ----------
        block : BlockRV
            The block where we hide read access.
        buf_type : str
            The buffer type: "read"/"write".
        buf_index_array : List[int]
            The array of buffer indices we hide access.
        """
        pass

Example
@T.prim_func
def indirect_mem_access(a: T.handle, idx_a: T.handle, b: T.handle, idx_b: T.handle) -> None:
    A = T.match_buffer(a, [128], dtype="float32")
    IA = T.match_buffer(idx_a, [10], dtype="int32")
    B = T.match_buffer(b, [128], dtype="float32")
    IB = T.match_buffer(idx_b, [10], dtype="int32")

    for i in range(10):
        with T.block("B"):
            vi = T.axis.spatial(10, i)
            T.reads(A[IA[vi]], IA[vi])
            T.writes(B[IB[vi]], IB[vi])
            B[IB[vi]] = A[IA[vi]]

After we perform hiding buffer access to IA[vi] via:
sch = tir.Schedule(indirect_mem_access, debug_mask="all")
block_b = sch.get_block("B")
sch.hide_buffer_access(block_b, "write", [1])

the desired transformed IR would be:
@T.prim_func
def indirect_mem_access_hide_ia(a: T.handle, idx_a: T.handle, b: T.handle, idx_b: T.handle) -> None:
    A = T.match_buffer(a, [128], dtype="float32")
    IA = T.match_buffer(idx_a, [10], dtype="int32")
    B = T.match_buffer(b, [128], dtype="float32")
    IB = T.match_buffer(idx_b, [10], dtype="int32")

    for i in range(10):
        with T.block("B"):
            vi = T.axis.spatial(10, i)
            T.reads(A[IA[vi]])
            T.writes(B[IB[vi]], IB[vi])
            B[IB[vi]] = A[IA[vi]]

The existing passes/schedules would not be influenced by this PR.
cc @junrushao @MasterJH5574 @masahi

Hi @quic-sanirudh, thank you for your suggestions, I have marked the schedule as unsafe and added some docstrings explaining it.

Hi @quic-sanirudh, thank you for your suggestions, I have marked the schedule as unsafe and added some docstrings explaining it.

Thanks for taking my suggestion. Looks good to me now


RecordStorage crashes upon loadAll() for multiple Kinds stored.

As long as the current Google Datastore implementation uses the same RecordStorage kind to store all the records, the users of RecordStorage (such as ProjectionRepository) are not able to call loadAll(), as it leads to the exception.
We need to create a separate Datastore kind for each of the routines which rely on RecordStorage  for persistence.

For the work related to this issue see this PR into gae-java.


{ [Error: No supported authentication method(s) available. Unable to login.] source: 'authentication' }

I am getting this error when i try to connect with zoho mail using mail-listener2, But i can able to connect and read mail from my application using node-imap. Please help me on this issue.
The config param i am using with node-imap is as below
var imap = new Imap({
user: nconf.get('IMAP_USER'),
password: nconf.get('IMAP_PASS'),
host: nconf.get('IMAP_HOST'),
port: nconf.get('IMAP_PORT'),
connTimeout: 10000000,
tls: true
});
Same param i am using with mail-listener2 but getting the below error
{ [Error: No supported authentication method(s) available. Unable to login.] source: 'authentication' }

I'm seeing this issue as well, using the same parameters that are successful with node-imap and also imap-simple.  Is it required to use an app token for IMAP_PASS?  Thanks

There is a small difference between node-imap and mail-listener2 in the config.  In node-imap, the user field is "user", while in mail-listener2 it is "username".


Speech recognition compatability

I am trying to add a Language model to an end to end speech recognition system and I want to add it to a trained RNNLM. If I trained the words model how can I combine it to the speech recognition system
I am using networks similar to this
https://github.com/simoninithomas/DNN-Speech-Recognizer

In that case, you probably want to build the model from scratch. You can take some inspiration from the models in this repository, but you'll get a lot more out of reading the relevant literature.
This blog post might provide a good starting point: https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html


[Standalone v<IP_ADDRESS>.jar] Feature Bug

Hello, my problem seems simple to explain without doing the maven quickstart, but if needed, will do it the best i can, even if i'm not using maven and java code.
I have a problem with my standalone karate v<IP_ADDRESS>.jar, this is my feature :

Feature: Example
Background:
* url "https://myurl.com"
Scenario: GET Correct Information
Given path "api", "v1", "test"
When method get
Then status 200
And assert response.length > 0
And match each response[*].notexist contains { notexist : '#string'}

Here, it returns true, even if on my json response, there is no "notexist" json entry.
If i try this  :

And match each response[*].x contains {y: '#string"}

with an existing entry x, then it works well as expected.

And match each response[*].notexist contains { notexist : '#string'}

should return false here if "notexist" doesn't exist.
Thank you

@rfjg I think you haven't understood JsonPath properly. now that I know the response, I have no idea why you are trying things like response[*].notexist - it is wrong. your response does not contain an array. you can try the below code which works and you don't even need JsonPath wildcards here:
* def response =
"""
{
   "vv":1,
   "jk":1,
   "hang":1,
   "placed":1,
   "away":2,
   "string":77848,
   "unavailable":3,
   "pending":155,
   "available-sold-avaliable":7,
   "available":5675,
   "available;pending;sold":2,
   "Not Available":1,
   "niunio":1,
   "dead":2,
   "soldghjgfsdfsd":1,
   "Sold":1,
   "available_123":1,
   "along":1,
   "Healthy, ready to adopt":1,
   "not available":1,
   "Available":15,
   "YAI3424forYAI3373":1,
   "aфуацуакфцу":1,
   "sold":92,
   "living":1,
   "test":1,
   "sit ea":1,
   "Nonavailable":1,
   "Offline":1,
   "my_status":1,
   "PENDING":18,
   "Sold into slavery":1,
   "AVAILABLE":1,
   "SOLD":80,
   "223333333":1,
   "string-shortDesc":3,
   "id reprehenderit":1
}
"""
* match response.notexist == '#notpresent'
* match response contains { notexist: '#notpresent' }
* match response !contains { notexist: '#present' }

@ptrthomas Here it's just an example, my current real test response is an array.
What i was trying to do with this current example is to show you that even with a response which is not an array, this test pass when it shouldn't.
And on the case of an array response, if the field x is not present and i try this command :
match each response[*].x contains {......}
then it works when it shouldn't.

@rfjg  do you mind creating a simple example like I did above that demonstrates the issue ? else it is very hard to follow what you are saying.

@ptrthomas , sorry i didn't know i was able to do this directly to demonstrate my problem.
Here the sample :
Feature: Test
  Background:
      * url baseUrl
      * def response =
      """
      [
          {
              "test": "value",
              "jsontest": {
                "jsonfield": 0
              }
          }
      ]
      """
  Scenario: Test with Error
    And assert response.length == 1

    # This work as expected and returns true
    And match each response contains { test: '#string' }

    # This work as expected and returns true
    And match each response[*].jsontest contains { jsonfield: '#number'}

    # This work as expected and returns error when mistake
    #And match each response[*].jsontest contains { notexist: '#string'}

    # This doesn't work as expected and returns true when it should return an error because no json body with key : "notexist"
    And match each response[*].notexist contains { notexist: '#string'}

Thank you.

@rfjg sorry, this is not a bug. what is happening is response[*].notexist returns an empty array in your case. there is no meaning in a match each on an empty array, it will always pass, see the below example. typically this is not an issue because you will have other checks.
* def response = []
And match each response contains { notexist: '#string'}

@ptrthomas In this case, I imagine the assertion response[*].notexist would return an error, not to return an empty array

@julienvey thing is response[*].notexist is JsonPath, and that's the JayWay implementation, nothing to do with Karate:
* def response = []
* def temp = $response[*].notexist
* match temp == []

feel free to raise a bug over there if you feel it is an issue. I think it is fine. JsonPath is a lenient way of querying over JSON IMO.


Feature build enhancements

Fixed the gulp sass task to not minify source-maps
Added scss-linting
Slightly Modified the linting rules. Disabled the following rules:

Comment use only //
New line at the end of the file
Don't write trailing zeros for numeric values with a decimal point
Numeric values should not contain unnecessary fractional portions

Updated the Sass to fix linting errors
Added CSS stats with visualization. cssstats generates the stats. There is a really small angular app in the /CSS folder which visualizes the stats. This app is a fork of the cssstats.com node app.
Added documentation for linting and stats

@bertrandk @neilff @lustandfury @SethDavenport @claudiareinoza @abmohan @AbdellaToronto please review and merge.
The linter actually checks for BEM syntax. This should help us implement the syntax easier. How do you guys feels about setting up the linter on Circle CI and reject PRs if they have any linting errors?

I definitely support Circle-ci linting.

I'm going to merge this and push a release to bower and npm. If you guys have any concerns/suggestions we should use github issues.


Fix: spc search track now uses QueueSongOpt for recs

Fixes #102
As i said in https://github.com/dvdmuckle/spc/issues/102#issuecomment-943676137. I don't have Spotify Premium but this was a small fix and the maintainer was straightforward in the possible fix so it made this PR possible.

Hey, sorry for the long wait, I've been trying to do some research on this, but Spotify's docs has not illuminated me to what the heck "the queue" is or does. Between no clear advantage being presented using QueueSongOpt and the command now taking noticeably longer to execute, I'm going to close this PR. If the behavior of QueueSongOpt changes in the future I'll resurrect this PR.


Author: Display placeholder profile pic #18

i have made the necessary changes. you can double check before merging

i have fixed the minor changes. thanks!

Sorry @Ishneet0710, I have two other changes to suggest before merging :sweat_smile:

Please use the asset helper as suggested by @partysnax, to be consistent across the rest of the theme files.
Actually, it's not necessary to modify partials/content.hbs as https://github.com/AdvisorySG/dawn-advisory-theme/pull/47 compresses the list of authors into a single line. Feel free to leave the code in that file unchanged, I'll deal with it when merging.

This PR should be merged only after https://github.com/AdvisorySG/dawn-advisory-theme/pull/47 is merged.

https://github.com/AdvisorySG/dawn-advisory-theme/pull/47 blocks this PR.

This PR was accidentally merged, needs to be remerged after the blocking issue is cleared.

Merged again in https://github.com/AdvisorySG/dawn-advisory-theme/commit/16adb68d4cf0b5083181c5b6f4e369e642bde79e.


Readme - Typos and some small changes

Coverage remained the same at 92.177% when pulling 21f142be17c9aed5ea9b8c3b70e49e2ce2dff8f9 on magikstm:doc-typo into dd834a28e85e4f61403080bf8ce4130c67185de3 on tarent:master.


How to make a row clickable in nonfactor mvc grid

Tried this example : http://mvc-grid.azurewebsites.net/Javascript/RowClicked suggested in a link but did not work.
Kindly suggest how I could make my row clickable and route it to a view page on click event.
Hereby mentioning the code I have used :
@model IEnumerable<ErpOneCore.Dapper.grn>
@{ViewBag.title = "Goods Received Notes";}

        @(Html
            .Grid(Model)
            .Build(columns =>
            {

                columns.Add(model => Html.ActionLink(model.grnno, "Details", new { id = model.id })).Titled("GRN No");
                columns.Add(model => model.dated).Titled("Dated").Formatted("{0:dd-MMM-yy}");
                columns.Add(model => model.unitcode).Titled("Unit");
                columns.Add(model => model.shortname).Titled("Short Name");
                columns.Add(model => model.grntype).Titled("Type");
                columns.Add(model => model.refno).Titled("Reference No");
                columns.Add(model => model.posted=="N" ? "No" : "Yes").Titled("Locked");

            })
            .Empty("No data found")
            .Filterable()
            .Sortable()
            .Pageable()
            .Css("css-classes")
            .AppendCss("table-hover")
        )

You can create a redirect in rowclicked handler did that not work? Similar to
document.addEventListener('rowclick', function (e) {
    location.href = "http://localhost/test/" + e.detail.data.id;
});

I placed the code but still doesn't work

Can you tell us which part of the grid doesn't work so we can fix that?

The handle icon doesn't appear at all..

Icon handle is just a styling detail you can add yourself through css.


Index Argo application from unstructured data

Related Issue:  open-cluster-management/backlog#9514
Description of changes

@jlpadilla Can I get your initial thoughts on this? I still need to add some testing and perhaps refactor a bit, but I wanted to see what you think of this approach as I don't have much of experience with golang.  I initially tried importing the type from ArgoCD (see https://github.com/open-cluster-management/search-collector/pull/103), but to get that compiling, I needed to update a lot of packages to a newer version and make a few minor code edits. But then I hit this runtime error, which seemed to be something in the type from ArgoCD that I probably can't easily solve:
E0309 21:13:15.715463       1 transformer.go:446] Error in transformer routine: reflect: reflect.Value.Set using value obtained using unexported field
E0309 21:13:15.715575       1 transformer.go:447] goroutine 24 [running]:
runtime/debug.Stack(0x2d2f020, 0x2, 0x1cb6d71)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/runtime/debug/stack.go:24 +0x9f
github.com/open-cluster-management/search-collector/pkg/transforms.handleRoutineExit(0xc00041c360, 0xc00041c3c0)
	/home/travis/gopath/src/github.com/open-cluster-management/search-collector/pkg/transforms/transformer.go:447 +0xaa
panic(0x19f1560, 0xc00062d750)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/runtime/panic.go:969 +0x1b9
reflect.flag.mustBeAssignableSlow(0x1a1)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/reflect/value.go:257 +0x1b9
reflect.flag.mustBeAssignable(...)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/reflect/value.go:247
reflect.Value.Set(0x19ad6a0, 0xc0004809b0, 0x1a1, 0x19ad6a0, 0xc000e96a70, 0x81)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/reflect/value.go:1558 +0x3b
k8s.io/apimachinery/pkg/runtime.structFromUnstructured(0x1a54d80, 0xc0023ede90, 0x15, 0x1b5b3a0, 0xc000480980, 0x199, 0x7fc711da6108, 0xc00062d710)
	/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/runtime/converter.go:386 +0x30f
k8s.io/apimachinery/pkg/runtime.fromUnstructured(0x1a54d80, 0xc0023ede90, 0x15, 0x1b5b3a0, 0xc000480980, 0x199, 0x1a317a0, 0xc00062d710)
	/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/runtime/converter.go:219 +0x3f1
k8s.io/apimachinery/pkg/runtime.structFromUnstructured(0x1a54d80, 0xc0023ede60, 0x15, 0x1b9e600, 0xc000480918, 0x199, 0x7fc711da6108, 0xc00062d6b0)
	/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/runtime/converter.go:382 +0x34b
k8s.io/apimachinery/pkg/runtime.fromUnstructured(0x1a54d80, 0xc0023ede60, 0x15, 0x1b9e600, 0xc000480918, 0x199, 0x1a317a0, 0xc00062d6b0)
	/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/runtime/converter.go:219 +0x3f1
k8s.io/apimachinery/pkg/runtime.structFromUnstructured(0x1a54d80, 0xc0023eced0, 0x15, 0x1b67a40, 0xc000480800, 0x199, 0xc001a8bc60, 0xc001a8ba88)
	/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/runtime/converter.go:382 +0x34b
k8s.io/apimachinery/pkg/runtime.fromUnstructured(0x1a54d80, 0xc0023eced0, 0x15, 0x1b67a40, 0xc000480800, 0x199, 0x203000, 0xc000403680)
	/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/runtime/converter.go:219 +0x3f1
k8s.io/apimachinery/pkg/runtime.(*unstructuredConverter).FromUnstructured(0x2d236b0, 0xc0023eced0, 0x1c76580, 0xc000480800, 0xc00050f410, 0xb)
	/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/runtime/converter.go:126 +0x2ba
github.com/open-cluster-management/search-collector/pkg/transforms.TransformRoutine(0xc00041c360, 0xc00041c3c0)
	/home/travis/gopath/src/github.com/open-cluster-management/search-collector/pkg/transforms/transformer.go:198 +0x3fd
created by github.com/open-cluster-management/search-collector/pkg/transforms.NewTransformer
	/home/travis/gopath/src/github.com/open-cluster-management/search-collector/pkg/transforms/transformer.go:151 +0xd1

/cc @jlpadilla
Test coverage is added and this is ready for review.

@jlpadilla Can I get your initial thoughts on this? I still need to add some testing and perhaps refactor a bit, but I wanted to see what you think of this approach as I don't have much of experience with golang. I initially tried importing the type from ArgoCD (see #103), but to get that compiling, I needed to update a lot of packages to a newer version and make a few minor code edits. But then I hit this runtime error, which seemed to be something in the type from ArgoCD that I probably can't easily solve:

@KevinFCormier Sorry I missed this question. The correct way in go is to import the library, but it is a pain to keep up with the dependencies. Another option is to define the structure of the Argo object.  See the PolicyReport transform for an example.
https://github.com/open-cluster-management/search-collector/blob/main/pkg/transforms/policyreport.go#L12-L34
(Comming from javascript I also have trouble with unstructured data in go.)

BTW, this implementation also works, the only worry is consistency.

/ok-to-test

/hold

Closing in favour of #114


[BUG] Cluster Creation stuck at waiting for cluster agent to connect

Rancher Server Setup

Rancher version: 2.8.3
Installation option (Docker install/Helm Chart): Docker

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): -

Proxy/Cert Details: Custom CA

Information about the Cluster

Kubernetes version: v1.28.8+rke2r1
Cluster Type (Local/Downstream):

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider): custom, local

User Information

What is the role of the user logged in? (Admin/Cluster Owner/Cluster Member/Project Owner/Project Member/Custom): Admin

Describe the bug

During the installation of the cluster with the docker image, the installation is stuck at waiting for cluster agent to register.
To Reproduce

Deploy docker on a linux node
Start docker container with the rancher/rancher:v2.8.3 image
Create Cluster in the dashboard -> All Default settings including network with calico
Run register command on seperate node
Cluster Installation gets stuck

Result
Expected Result

Installation works without any problems and node can be registered and is not stuck with waiting for cluster agent to register.
Additional context

Provisioning Log

1:51:23 pm | [INFO ] waiting for at least one control plane, etcd, and worker node to be registered
1:52:11 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for bootstrap etcd to be available
1:52:13 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for agent to check in and apply initial plan
1:52:17 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for probes: calico, etcd, kube-apiserver, kube-controller-manager, kube-scheduler, kubelet
1:53:11 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for probes: calico, kube-apiserver, kube-controller-manager, kube-scheduler
1:54:11 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for probes: calico
1:55:13 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for cluster agent to connect

rancher-system-agent log

Apr 30 14:27:40 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:40+02:00" level=info msg="[Applyinator] Running command: sh [-c rke2 etcd-snapshot list --etcd-s3=false 2>/dev/null]"
Apr 30 14:27:40 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:40+02:00" level=info msg="[12cb26ca54456920e77a29191a815c3d6fed7af28c7a8c072a4d5c214607e6fe_0:stdout]: Name Location Size Created"
Apr 30 14:27:40 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:40+02:00" level=info msg="[Applyinator] Command sh [-c rke2 etcd-snapshot list --etcd-s3=false 2>/dev/null] finished with err: <nil> and exit code: 0"
Apr 30 14:27:40 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:40+02:00" level=info msg="[K8s] updated plan secret fleet-default/custom-8b637c9cd841-machine-plan with feedback"
Apr 30 14:27:45 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:45+02:00" level=error msg="[K8s] received secret to process that was older than the last secret operated on. (14820 vs 18024)"
Apr 30 14:27:45 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:45+02:00" level=error msg="error syncing 'fleet-default/custom-8b637c9cd841-machine-plan': handler secret-watch: secret received was too old, requeuing"
Apr 30 14:29:05 vatetdevrcm01.sc.int rancher-system-agent[13135]: W0430 14:29:05.831181   13135 reflector.go:456] pkg/mod/github.com/rancher/client-go@v1.27.4-rancher1/tools/cache/reflector.go:231: watch of *v1.Secret ended with: an error on the server ("unable to decode an event from the watch stream: stream error: stream ID 35; INTERNAL_ERROR; received from peer") has prevented the request from succeeding

The message that the secret is to old keeps coming up with different values.

Rancher Server Setup

Rancher version: 2.8.3

Installation option (Docker install/Helm Chart): Docker

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): -

Proxy/Cert Details: Custom CA

Information about the Cluster

Kubernetes version: v1.28.8+rke2r1

Cluster Type (Local/Downstream):

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider): custom, local

User Information

What is the role of the user logged in? (Admin/Cluster Owner/Cluster Member/Project Owner/Project Member/Custom): Admin

Describe the bug
During the installation of the cluster with the docker image, the installation is stuck at waiting for cluster agent to register.
To Reproduce

Deploy docker on a linux node
Start docker container with the rancher/rancher:v2.8.3 image
Create Cluster in the dashboard -> All Default settings including network with calico
Run register command on seperate node
Cluster Installation gets stuck

Result
Expected Result
Installation works without any problems and node can be registered and is not stuck with waiting for cluster agent to register.
Additional context

Provisioning Log

1:51:23 pm | [INFO ] waiting for at least one control plane, etcd, and worker node to be registered
1:52:11 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for bootstrap etcd to be available
1:52:13 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for agent to check in and apply initial plan
1:52:17 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for probes: calico, etcd, kube-apiserver, kube-controller-manager, kube-scheduler, kubelet
1:53:11 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for probes: calico, kube-apiserver, kube-controller-manager, kube-scheduler
1:54:11 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for probes: calico
1:55:13 pm | [INFO ] configuring bootstrap node(s) custom-8b637c9cd841: waiting for cluster agent to connect

rancher-system-agent log

Apr 30 14:27:40 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:40+02:00" level=info msg="[Applyinator] Running command: sh [-c rke2 etcd-snapshot list --etcd-s3=false 2>/dev/null]"
Apr 30 14:27:40 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:40+02:00" level=info msg="[12cb26ca54456920e77a29191a815c3d6fed7af28c7a8c072a4d5c214607e6fe_0:stdout]: Name Location Size Created"
Apr 30 14:27:40 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:40+02:00" level=info msg="[Applyinator] Command sh [-c rke2 etcd-snapshot list --etcd-s3=false 2>/dev/null] finished with err: <nil> and exit code: 0"
Apr 30 14:27:40 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:40+02:00" level=info msg="[K8s] updated plan secret fleet-default/custom-8b637c9cd841-machine-plan with feedback"
Apr 30 14:27:45 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:45+02:00" level=error msg="[K8s] received secret to process that was older than the last secret operated on. (14820 vs 18024)"
Apr 30 14:27:45 vatetdevrcm01.sc.int rancher-system-agent[13135]: time="2024-04-30T14:27:45+02:00" level=error msg="error syncing 'fleet-default/custom-8b637c9cd841-machine-plan': handler secret-watch: secret received was too old, requeuing"
Apr 30 14:29:05 vatetdevrcm01.sc.int rancher-system-agent[13135]: W0430 14:29:05.831181   13135 reflector.go:456] pkg/mod/github.com/rancher/client-go@v1.27.4-rancher1/tools/cache/reflector.go:231: watch of *v1.Secret ended with: an error on the server ("unable to decode an event from the watch stream: stream error: stream ID 35; INTERNAL_ERROR; received from peer") has prevented the request from succeeding

The message that the secret is to old keeps coming up with different values.

Hello, before fixing this bug, how should I ensure that the node can complete initialization and registration normally?

@flogruber Hello, before fixing this bug, how should I ensure that the node can complete initialization and registration normally?


Bump ZooKeeper and Hadoop dependencies

Bump Hadoop to latest bugfix release (3.3.0 to 3.3.1)
Bump ZooKeeper from 3.5 to 3.7
Recent conversations on the ZooKeeper mailing lists suggest that
community will soon mark 3.5 as EOL, and may also move to make 3.6 EOL
after 3.8 is released.
This change updates the default ZooKeeper used to build Accumulo to
3.7.0, but updates the GitHub Actions to test that 3.5 still works.
Additionally, since a new event type (PersistentWatchRemoved) was added
after 3.5, all unhandled event types in switch statements in
DistributedWorkQueue are collapsed into a single default case to ensure
it includes the new event type without directly referencing it, which
would cause a compile failure against 3.5.

FYI that there is a vote going on right now for a Hadoop 3.3.2 release. https://lists.apache.org/thread/ymd6d9s11svo53ok28psl44skyso99f9

We can wait for that. It doesn't matter much, as we can always bump to the latest patch once it's released. I think the bigger issue here is ZK, since that would be jumping minor versions, not just a patch release in a major.minor version we've already settled on.

All ITs passed for this, and I haven't seen Hadoop 3.3.2 published yet. It's been nearly a week. I'll merge without it. It's trivial to bump again when Hadoop releases.


Possibility to add manual charging time to the beginnig of the planned charging window

Hi!
We have had very cold weather for the past week (down to -34c). I have noticed that my Zoe takes only a couple of kw power at the beginning and only warms the battery. This can be 1-2 hours. Only after that the charging power increases and battery starts to actually charge properly.
This has had such an effect to the timing that the battery is not full after the charge schedule. I can confirm this by looking at the battery temperature and power curve.
I have adjusted the charging percentage to compensate this but it's not optimal. I was thinking that if I could adjust the starting time by a static value I could get the actual powerful charging time to match the best hours.
If this value would be a input_number I could modify it dynamically based on temperature.

never mind. I managed to create automation which changes Charging speed when temperature changes


iOS GCM file size

The plugin for iOS has a huge 25MB GCM folder. This means that this plugin adds 25 megs to my iOS app, even when I'm not using GCM on iOS.
Is there any way to make the GCM installation optional for iOS? Maybe by adding an optional --variable IOS_GCM=false, or some other better way.
Right now I have manually removed all of these files and references to them.

@Manduro could you please share how you remove gcm stuffs?

@ihuseynoff I just removed the GCM folder in the iOS plugin folder and removed all references to it in the code until Xcode stopped throwing build errors ;).

@Manduro Yeah, it is unfortunate. Recently a commit landed into Apache Cordova to support CocoaPod dependencies. Once that makes it into a Cordova CLI release I'll be able to move the GCM files out of the repo. Still will need to figure out a way not to download them if not required.

GCM libs removed from plugin.


Sending a test email from Cocorico

Q
A

Bug report?
[ ]

Feature request?
[ ]

Support request?
[X]

Hi, I have problems with the E-Mail configuration and didn't find an answer here. My mails are spooled but not send. I am not quite sure if this is a problem with my config or with my server. Therefor I'd like to send a test email from within cocorico. Is there any way to do this?
Thanks in advance

Hi, in dev environment your outgoing mails are stored in app/spool folder and are not send.

Hi,
You can deploy and configure your app on production server without going live and then test mails sending on it. But if you prefer you can also test it on dev by disabling this default behaviour in the section swiftmailer in app/config/config_dev.yml:41.

Hi, thanks. That was exactly the necessary information :)

@cocolabssas what will be configuration under app/config/config_dev.yml:41  on swiftmailer section i have email parameters set in parameters.yml but not receiving the email for password reset


Don't replacing existing config

Fixed the Enterprise Linux spec file to not replace existing config files when installing/updating the package.

Thanks


Anticipated Report - Updated Logic

#1687

Updated the API to return work regardless of status updates
Updated UI to show staleness of status update using color codes.

RED -> Last status update > 10 days ago OR no status update
YELLOW -> Last status update between 6 & 10 days
GREEN -> Last status update < 5 days ago

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (develop@d39f160). Click here to learn what that means.

Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #1901   +/-   ##
==========================================
  Coverage           ?   76.11%
==========================================
  Files              ?      267
  Lines              ?     8873
  Branches           ?        0
==========================================
  Hits               ?     6754
  Misses             ?     2119
  Partials           ?        0

Flag
Coverage Δ

epictrack-api
76.11% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


It seems that one of the overloads of the ID3D12Device1.CreateRootSignature(...) method throws an exception

Summary
One of the signatures throws an exception
InternalException: "ArgumentException: Value does not fall within the expected range."
while the other does not:
unsafe
{
  // This is work
  _hResult = s_device1.CreateRootSignature(nodeMask: 0, _signature.GetBufferPointer(), _signature.GetBufferSize(), out s_rootSignature);
  SilkMarshal.ThrowHResult(_hResult);
}

unsafe
{
  // This is NOT work
  _hResult = s_device1.CreateRootSignature(nodeMask: 0, in _signature, _signature.GetBufferSize(), out s_rootSignature);
  SilkMarshal.ThrowHResult(_hResult);
}

It seems the function is being called with different parameters pBlobWithRootSignature:

Steps to reproduce

Platform: Desktop
Framework Version: .NET Core 8.0
API: DirectX 3D
API Version: Direct3D 12

Call the "ID3D12Device1.CreateRootSignature" overload (line 5841 in Silk.NET.Direct3D12.ID3D12Device1VtblExtentions.cs):
public unsafe static int CreateRootSignature<T0, TI0>(this ComPtr<ID3D12Device1> thisVtbl, uint nodeMask, [Flow(FlowDirection.In)][RequiresLocation] in T0 pBlobWithRootSignature, nuint blobLengthInBytes, out ComPtr<TI0> ppvRootSignature) where T0 : unmanaged where TI0 : unmanaged, IComVtbl<TI0>
Full example of usage:
private static void CreateRootSignature()
{
  HResult _hResult;
  RootSignatureDesc _signatureDesc = new()
  {
    NumParameters = 0,
    PParameters = null,
    NumStaticSamplers = 0,
    PStaticSamplers = null,
    Flags = RootSignatureFlags.AllowInputAssemblerInputLayout
  };

  ComPtr<ID3D10Blob> _signature = new();
  ComPtr<ID3D10Blob> _error = new();

  _hResult = s_d3d12.SerializeRootSignature(ref _signatureDesc, D3DRootSignatureVersion.Version1, ref _signature, ref _error);
  SilkMarshal.ThrowHResult(_hResult);

  // Error handling...

  _hResult = s_device1.CreateRootSignature(nodeMask: 0, in _signature, _signature.GetBufferSize(), out s_rootSignature);
  SilkMarshal.ThrowHResult(_hResult);
}

Comments
The third line here looks quite suspicious (call nested):
fixed (T0* ptr2 = &pBlobWithRootSignature)
{
    void* ptr3 = ptr2;
    result = ((delegate* unmanaged[Stdcall]<ID3D12Device1*, uint, void*, UIntPtr, Guid*, void**, int>)ptr->LpVtbl[16])(ptr, nodeMask, ptr3, blobLengthInBytes, riid, ppvRootSignature);
}

This is expected, in _signature and _signature.GetBufferPointer() are not equal.


Syntax highlighting fails for LINQ query joins with anonymous types

Environment data
dotnet --info output:
.NET Command Line Tools (1.0.0)

Product Information:
 Version:            1.0.0
 Commit SHA-1 hash:  e53429feb4

Runtime Environment:
 OS Name:     Windows
 OS Version:  6.3.9600
 OS Platform: Windows
 RID:         win81-x64
 Base Path:   C:\Program Files\dotnet\sdk\1.0.0

VS Code version: 1.18.0
C# Extension version: 1.13.1
Steps to reproduce
Write a LINQ query that joins with an anonymous type. For example:
from x in list1
join y in list2
    on new
    {
        x.Key1,
        x.Key2
    }
    equals new
    {
        y.Key1,
        y.Key2
    }
select x.Key1

Expected  behavior
LINQ syntax highlighting will continue past on new, highlighting equals new and select.
Actual behavior
LINQ syntax highlighting stops with on new.

This issue was moved to dotnet/csharp-tmLanguage#89

Thanks for the report. I've moved this issue over to the C# TextMate grammar repo.


Support for Django 2.0, 2.1 & 2.2

Based on work of @adamchainz for django 2.1 (see #32)

👍

LGTM. What I said in #32 still stands, happy to help maintain.

:+1:

Sorry for merging this in so late. I don't get PR notifications in my mail until someone mentions my name.

Thanks!


No import documentation

Is your feature request related to a problem? Please describe.
Part of a good terraform provider is importing existing resources. However, no import documentation exits for the resources.
Describe the solution you'd like
I'd like import documentation
Describe alternatives you've considered
N/A
Additional context
Very happy to see this provider as we have multiple production environments across the globe with their own segment workspaces

Hi @johnkoehn!
We'll be working on imports (and associated documentation) shortly, and this helps us prioritize. Thank you for the suggestion!

In the meantime, all resources are importable by their id unless otherwise noted in the docs as in here.

The docs have been updated. Thank you for your patience.


Laravel 5.4 ?

Hello, is there a way to make it work with Laravel 5.4 ?
Thanks

If i'm not wrong - the develop branch should support laravel 5.4

develop branch already supports Laravel 5.4 (Duplicate #120, Reference 3a3ec7d7256b45168187c1168d5496e12ffb86f1) To be tagged soon.. 👍

Yes sorry. Thank you.


Using Workspaces breaks the extension

The extension breaks if one of the recently opened items is a workspace file.
I've done some testing and the python file throws the following exception:
File "/home/hakonmh/Programming/Temp/vscode-recent.py", line 24, in get_recents
uri = path["folderUri"] if folder else path["fileUri"]
KeyError: 'fileUri'
The signature of path:
{'workspace': {'id': 'aaf5d6b49aad427cc7fced16975287cb', 'configPath': 'file:///home/hakonmh/Programming/Temp/test.code-workspace'}}

Fixed by PR #6


Using this library without stream ?

Hi,
I would like to use this library with our product based on Cortex-M MCU. This mcu asnot much RAM/Flash. The use of stream (fstream/streambuf) is not really an option.
Is it possible to use that libray without using stream ?
Regards
Jonathan

Assuming you mean parsing: you can also call json::parse with a string or char pointer. If that’s not what you mean, please clarify.

Hi,
I would like to use this library in 2 differents way. The first one is with the data binding. The second one is with the SAX parser (from a json file).
The main idea is to be able to use the library with file access but not with fstream.  I see the Parse method that can accept begin iterator and end iterator. The only problem, is the iterators need to be random access, but for file reading, this is somewhat not efficient.
The other problem with the json::parse with string or char * is that I cannot keep the whole json file in RAM. I need to parse it with Sax to get only the values.
Regards
Jonathan

I see. The requirement for random_access_iterator may have become unnecessary. We had a unget method in the past which was removed recently, so we could work with an input iterator. Let me check.

Hi,
Some other library  offer an interface for using FILE * too.  Maybe could an improvement to your library too. This is more a wish than a requirement.
Jonathan

Hi,
I have added a new input_adapter to not using the streams when working with files. I use a simple FILE * as input and everything seem to work as expected. I would like tos know if this feature is desired to be added to the library ? I can make a PR if any interrest in that feature. This will eneble low end device working fith file whitout the cost of the streams.
Regards
Jonathan

Yes, a PR would be really appreciated!


Editing the description adds multiple scene icons in the SceneTree

Tested versions
v4.3.stable.official [77dcf97d8]
System information
Mac Mini M1, newest MacOS
Issue description
Editing description of a Scene bugs out the Scene tree (it adds a "scene" icon).

Steps to reproduce
Type something in the description or start deleting whatever is in it:
https://github.com/user-attachments/assets/5666c625-e34a-4082-b669-e41f2d620f62
In the video, the bottom most scene is already bugged from when this happened the first time, then the next from the bottom was just me trying to reproduce it, and the third from the bottom is showing it in action.
I have tried clicking on any of the appended icons and it just opens the scene for editing (as if I clicked the regular scene icon) and after returning to the scene containing the bugged scene list, the scene list looks normal again:

Minimal reproduction project (MRP)
Godot

This issue was already fixed by #96569. You can get the fix in 4.4 dev 2 or wait the 4.3.1

Closing as per above


Add linting to GH action workflow

Include lint to GH action runner and ignore mypy issues for now.
I spent some time investigating but I believe each error is a result of an advanced inheritance model from py-ssz (https://github.com/ethereum/py-ssz/blob/main/ssz/sedes/byte_vector.py).
I wasn't able to find a reliable way to resolve these issues but I would rather ignore a few items than not have linting at all.

I've been playing around trying to resolve the untyped mypy errors.
One method to resolve the specific error, of lets say Call to untyped function "ForkData" in typed context
You can utilize an init and call the super init with the params:
class ForkData(Serializable):
    fields = [
        ('current_version', bytes4),
        ('genesis_validators_root', bytes32),
    ]
    def __init__(self, current_version: bytes4, genesis_validators_root: bytes32) -> None:
        super().__init__(current_version, genesis_validators_root)

The problem here is this will create more errors:
error: Variable "ssz.sedes.byte_vector.bytes4" is not valid as a type  [valid-type]
note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
error: Variable "ssz.sedes.byte_vector.bytes32" is not valid as a type  [valid-type]
error: Call to untyped function "__init__" in typed context  [no-untyped-call]

I'm pretty sure there is a way to resolve the valid-type issue but I don't know how you would resolve the additional untyped-call.
Because of my struggle with this hydra, I decided to ignore them for now unless there are ideas on how to resolve them.

I've ran the ci jobs again and I don't see any error from running mypy. Here is an output I'm seeing from https://github.com/eth-educators/ethstaker-deposit-cli/actions/runs/8675308188/job/23881195586
Run python -m mypy --config-file mypy.ini -p staking_deposit
  python -m mypy --config-file mypy.ini -p staking_deposit
  shell: /usr/bin/bash -e {0}
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.1[2](https://github.com/eth-educators/ethstaker-deposit-cli/actions/runs/8675308188/job/23881195586#step:6:2).2/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/[3](https://github.com/eth-educators/ethstaker-deposit-cli/actions/runs/8675308188/job/23881195586#step:6:3).12.2/x64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.2/x6[4](https://github.com/eth-educators/ethstaker-deposit-cli/actions/runs/8675308188/job/23881195586#step:6:4)
    Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.2/x[6](https://github.com/eth-educators/ethstaker-deposit-cli/actions/runs/8675308188/job/23881195586#step:6:6)4
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.2/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.2/x64/lib
Success: no issues found in 64 source files

I'm guessing you fixed everything related to mypy.

@remyroy I didn't fix them, I just ignored them...
signed_deposit = DepositData( # type: ignore[no-untyped-call]
as an example.

I see. Thanks for the precision.