scanWindow not applied correctly

I'm trying to restrict the scan window to the size of the camera preview which is constrained by a SizedBox but out of screen barcodes (above and below my SizedBox) are still scanned.
Maybe I misuse scanWindow parameter ? Or is there an issue with the cover BoxFit ?
SizedBox(
	height: 250,
	width: double.infinity,
	child: MobileScanner(
		fit: BoxFit.cover,
		scanWindow: const Rect.fromLTWH(0, 0, double.infinity, 250),
		onDetect: (BarcodeCapture barcode) async {
			// ...
		}
	),
)

IIRC MLKit does not allow for specifying the scan area. You'll have to work with the corners property of the Barcode in the BarcodeCapture to figure out if the scanned barcode should be 'accepted'.

I actually modified the Mobile Scanner widget to make it work.

I had the same issue, I fixed it by doing modification to the package itself. Lmk if you need it and I'll make a fork and update it.

I'm trying to restrict the scan window to the size of the camera preview which is constrained by a SizedBox but out of screen barcodes (above and below my SizedBox) are still scanned.
Maybe I misuse scanWindow parameter ? Or is there an issue with the cover BoxFit ?
SizedBox(
	height: 250,
	width: double.infinity,
	child: MobileScanner(
		fit: BoxFit.cover,
		scanWindow: const Rect.fromLTWH(0, 0, double.infinity, 250),
		onDetect: (BarcodeCapture barcode) async {
			// ...
		}
	),
)

https://github.com/sdkysfzai/mobile_scanner_upgrade
You can use this, it fixes this issue.

Looks like scanWindow still doesn't work.
If I don't assign anything to this parameter, I can scan any area of the screen, which is to be expected.
As soon as I assign any value, I can't scan at all.

+1 😢
I've encountered the same issue where the actual scan window doesn't match my expectations. I used Rect.fromCenter to define the scan window. However, it seems that the actual scanning area is biased toward the top of the camera's view. I'm unsure about how to properly center the scan window. If this isn't a bug, I'm hoping someone could provide a functional example along with an overlay widget.
// not working properly
class ScanScreen extends StatelessWidget {
  const ScanScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return MobileScanner(
      controller: MobileScannerController(
        detectionSpeed: DetectionSpeed.normal,
      ),
      fit: BoxFit.contain, // Box.Fit.Cover is tried
      scanWindow: Rect.fromCenter(
        center: Offset.zero,
        width: double.infinity,
        height: 400,
      ),
      overlay: Text('something'),
      onDetect: (capture) {
        final List<Barcode> barcodes = capture.barcodes;
        for (final barcode in barcodes) {
          debugPrint(
              'Barcode found! rawValue=${barcode.rawValue}, format=${barcode.format}, type=${barcode.type}');
        }
      },
    );
  }
}

mobile_scanner: 3.4.1
device info:
Device - Redmi 10A
UI - MIUI Global <IP_ADDRESS>(RCZTWXM)
OS - 11 RP1A.200720.011


CLEI

Maybe let's add this one: https://conferencia2024.clei.org/ (I can't find English website)
It's "C": https://portal.core.edu.au/conf-ranks/1589/

@uchitsa thanks!


Automate start of QEMU

weston: turn off LVDS connector for virtio
During the testing on the Kingfisher board, we didn't see any visual
information on HDMI, as the LVDS connector was used by default.
This patch turns off usage of the LVDS connector in case of a virtio
build. It is not needed, as currently we are using the original trout
device, which renders onto a single display.
Signed-off-by: Vladyslav Goncharuk<EMAIL_ADDRESS>
doma, domu: Add declarations for automated start of QEMU
In virtio build domu and doma depend on additional service Yocto package

qemu-restart-monitor.

Also there are the following differences in approach to start domu and
doma guest domains for virtio and non-virtio builds:

Non-virtio build has a single domu(a).service in dom0 to start and
stop a used xen guest domain
Virtio build has domu(a)-create.service, domu(a)-unpause.service,
domu(a)-restart-monitor.service

We need to adapt to make all injections either to domu(a).service or
domu(a)-start.service depending on activation of the 'enable-virtio'
distro feature.
Signed-off-by: Vladyslav Goncharuk<EMAIL_ADDRESS>
domu: Remove XT_DOMU_DTB_NAME for virtio build
In case of virtio build the domu domain remains generic. It does not
require any additional dtb overlay in order to work properly. The dtb
generated by Xen is fully sufficient.
This patch is removing usage of the XT_DOMU_DTB_NAME variable, which was
causing Yocto to search for the dtb 'salvator-generic-domu.dtb' file,
which is provided by the Renesas BSP, and which does not exist in terms
of virtio build. That was causing a build failure of the DomU Yocto
build.
Signed-off-by: Vladyslav Goncharuk<EMAIL_ADDRESS>
yaml: Normalize MACHINE names for the virtio build
In virtio we need to use the following machine names for the build:

Dom0 - generic-armv8-xt
DomU - virtio-armv8-xt
DomD - %{MACHINE}

DomD remains the only Xen domain, which is hardware-specific and is
using the board-specific BSP meta-layers.
This patch ensures that the correct machine names are used by each
domain.
Moreover, it simplifies management of the machine names for each domain,
as the yaml declarations are refactored to re-use the values of the
following 3 variables everywhere:

DOM0_MACHINE
DOMD_MACHINE
DOMU_MACHINE

Thus, if needed in the future, it would be easy to change each machine's
name without the need to directly copy-paste literals all over the
document.
Signed-off-by: Vladyslav Goncharuk<EMAIL_ADDRESS>

The changes were verified in the following way:
|Build type|Comment|
|Non-virtio DomU|Boot is successful. Graphics works.|
|Non-virtio DomA|Boot is successful. Graphics works.|
|Virtio DomU|All expected systemd services are running. The system does not boot due to the lack of the proper Xen-configuration.|
|Virtio DomA|All expected systemd services are running. The system does not boot due to the lack of the proper Xen-configuration.|

Hi @lorc, I've added an additional commit, which updates the virtio part of the documentation.

Hi @lorc, I've pushed new 2 commits:
https://github.com/xen-troops/meta-xt-prod-devel-rcar/commit/6e68a5cb0c2545a84d58cfad5c54be32807f3565
https://github.com/xen-troops/meta-xt-prod-devel-rcar/commit/946d03305b08d1e54f6972528aa3147c5eaf4c5b
This is totally the same thing, which DTerletskyi has done for DomU here:
https://github.com/xen-troops/meta-xt-prod-devel-rcar/pull/100
But only for DomA. And already in a format that was approved by you for DomU. So, hopefully, there won't be additional comments from your side regarding these 2 commits. ))
It should finally unblock the testing of virito based on the xen-troops master branches.
I've decided to add it here, as I must change a lot to react to your findings, so I will need to do additional testing. So both DomA and DomU should be running in order to validate the changed implementation.
=> This message is just to say that I haven't yet reacted to your findings. I'm doing some additional work to unblock that.

Hi @lorc, this PR is ready for another iteration of the review. Please, have a look.

Another PR will be created instead of this one, as this is already overloaded with comments.


Add typescript definition file.

I use this package in a typescript project, so I created a definition file for the typescript compiler. It would be great if this could be packaged with the library.

@janstrohbeck First of all, thank you! Sorry for a delay, I was working on version 2.0. It was a big update, I totally reworked the module. If you have time, please check new version. It will be great if you add definition file for a new version. Thank you!

I've updated the definition file for v2. It's probably not perfect, but worked so far in my case. Please note that this commit adds a new dependency for the definition file of redux-actions, as I used their types in this definition file.

@janstrohbeck As I see, types for redux-actions are in separate package, may be we should do the same way?

Yes, they are on https://github.com/DefinitelyTyped/DefinitelyTyped, which is also an option. It's recommended to bundle the type definitions with the corresponding package though, if possible:
http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html

@janstrohbeck merged and published as 2.1.0


Issue regarding validate_integer

My code looks like:
# this may be wrong, can't tell yet!
class {'etcd':
  listen_client_urls    => 'https://<IP_ADDRESS>:2379',
  advertise_client_urls => "https://${facts['fqdn']}:2379",
  listen_peer_urls      => 'https://<IP_ADDRESS>:2380',
  etcd_name             => 'default',

  client_cert_auth      => true,
  peer_client_cert_auth => true,
  cert_file             => "/etc/pki/simp-testing/pki/bogus_cert",
  key_file              => "/etc/pki/simp-testing/pki/bogus_key",
  trusted_ca_file       => "/etc/pki/simp-testing/pki/bogus_cacert",
  peer_cert_file        => "/etc/pki/simp-testing/pki/bogus_cert",
  peer_key_file         => "/etc/pki/simp-testing/pki/private/bogus_key",
  peer_trusted_ca_file  => "/etc/pki/simp-testing/pki/bogus_cacert",

  initial_advertise_peer_urls => "https://${facts['fqdn']}:2380",
  initial_cluster             => [ 'master01=https://master01:2380' ],
}

And when I run it I get:
Error: Evaluation Error: Error while evaluating a Function Call, '[[10000, 100, 1000, 0, 5, 5, 5000, 30000, 1000, 5000, 0]]' is not an integer. at /etc/puppetlabs/code/environments/production/modules/etcd/manifests/init.pp:309:3 on node node.domain

which is making absolutely no sense to me. It seems to be turning the array of integers into an array of an array. I'm not modifying these parameters at all, and the module works fine when I comment out the validate statement.
Would you be interested in a PR to validate each int individually or switch to data types?

It works in the spec tests, and I've even added a test with my exact parameters and it still passes everywhere except my test node.
https://github.com/jeefberkey/puppet-etcd/blob/my-tests/spec/classes/init_spec.rb#L33


Spot.im

Spot.im has been added to http://someonewhocares.org/hosts/ on February 12th.
Please update the upstream source..
About Spot.im
"Meet Your Community.
Take back ownership of your audience by building a thriving social community to drive conversation, pageviews, clicks, and revenue."
Thanks

Does the "pageviews, clicks" part involve analytics?

As I can find spot.im into http://someonewhocares.org/hosts/ but I can't find any record into the repository, I think he's suggesting and/or excepting an update from @StevenBlack @ScriptTiger.

@funilrys yup, the lates update includes spot.im.


[polyfills-loader] Polyfills for common DOM methods

Currently, there's no polyfill solution out there for the following methods:

Node.prototype.addEventListener | 1321
Node.prototype.append | 433
Node.prototype.prepend | 452
Node.prototype.before | 440
Node.prototype.after | 461
Node.prototype.remove | 290
Node.prototype.replaceWith | 731
Node.prototype.children | 245
Node.prototype.firstElementChild | 262
NodeList.prototype.forEach | 158
Element.prototype.closest | 333
Element.prototype.toggleAttribute | 243
Element.prototype.matches | 133
Element.prototype.classList | 4450
Element.prototype.getAttributeNames | 182
MouseEvent | 405
CustomEvent | 279

It's probably possible to add them to the loader from here: https://github.com/msn0/mdn-polyfills.
IMO it would be great to get it out-of-the-box, even if as a single file included on all browsers that do not implement at least one of those.

FYI, lit-html and LitElement are going to start using Node#append, Node#remove, Element.classList, Array#flat and others.

This is definitely something we should look into. The complicated part we need to figure out how to group polyfills together, and to decide when to load them.
Loading many small individual polyfills is slow, but so is loading many unused polyfills. We need to find some middle ground. One policy we've been maintaining is to not load any polyfills for the latest few of modern browsers. This way we have some more budget for users who are on older browsers.

On our end, we are indeed not using APIs that aren't available on current browsers, so we'll pretty much only need these polyfills on IE11. We're moving towards a compatibility stance where it's acceptable to require larger polyfills on IE11 in order to increase perf or reduce file size on modern browsers, as we move IE to legacy support and prepare to drop it when feasible. So far most of the DOM polyfills we need aren't really that big, so a bundle of them should be fine - IE's only used on desktop too.
btw, I might add getAttributeNames to the mix :)

I think that's doable, but what about browsers that support modules but not something like array flat?

Array#flat would be part of JS polyfills. I presume there's a number of ways for apps to load that, including core-js.

Yes but we still need a strategy for deciding when to load what. For things like fetch it's simple because you can check a single API. But DOM APIs and JS polyfills are lots of different APIs, we probably need to make some groupings and decide on watermarks.
For example right now we make a high level split between browser that support modules (module script, import.meta and dynamic import) and those that don't. We serve es modules to the former and systemjs, core-js etc. to the latter.

Not stale

@LarsDenBakker here is a proposal, for 2 bundles and their watermarks:
!toggleAttribute: (Edge 18)
    include toggleAttribute (Edge 18)
    include getAttributeNames (Edge 18)
    include classList (Edge 17 - full)
    include replaceWith (Edge 17)
    include after (Edge 17)
    include before (Edge 17)
    include prepend (Edge 17)
    include append (Edge 17)

!matches:
    include matches (edge 15)
    include closest (edge 15)
    include firstElementChild (edge 12)
    include children (edge 12)
    include remove (edge 13)

addEventListener (ie 9, not needed)

@LarsDenBakker would you give a green light on this based on my previous comment?
My company might allow one of us to work on this at some point.
If someone from open-wc starts working on this, please let me know.

I noticed that many of these are being added to the webcomponents polyfills as well, so we need to see what they cover. So we will get to this at least when the new version of lit-html/lit-element comes out. In the meantime you can configure custom polyfills in the polyfills loader, so that should work as well.

This issue has been sitting here for a while. We discussed it in the team as well a while ago, and right now we don't want to take on the maintenance of a polyfills bundle/package. The loader is pluggable, so users can plug in their own sets of polyfills. We will continue to support a default configuration that works for popular libraries like lit-html/lit-element, so when the new version comes out we will make sure we load the correct polyfills there.

This issue has been sitting here for a while. We discussed it in the team as well a while ago, and right now we don't want to take on the maintenance of a polyfills bundle/package. The loader is pluggable, so users can plug in their own sets of polyfills. We will continue to support a default configuration that works for popular libraries like lit-html/lit-element, so when the new version comes out we will make sure we load the correct polyfills there.

Note that we've added a number of DOM methods needed by the next version of lit-html and LitElement to the web components polyfill loader.

Note that we've added a number of DOM methods needed by the next version of lit-html and LitElement to the web components polyfill loader.


fix broken link in elasticsearch.rst

Link to file in git included /saleor/saleor instead of /mirumee/saleor
Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] Database migration files are up to date.
[ ] The changes are tested.
[ ] The code is documented (docstrings, project documentation).
[ ] GraphQL schema and type definitions are up to date.
[ ] Changes are mentioned in the changelog.

Why did you close your PR? It was actually a really great finding! 🎉


How to sample fixed number points from the mseh surfaces?

@TonythePlaneswalker As you mentioned in the paper, to get the complete groud truth point cloud, you sample the point cloud from the mesh model. I am using the mesh_sampling.cpp code to do sampling. However, after I set the -n_samples = 100000, the points number of the output point cloud are not 100000, it still could be different numbers such as 95429. Do you have any idea about the problem.?
Thanks for your help!

@TonythePlaneswalker


Rename this repo!

To ensure a correct indexation and positioning

@XaviTorello @ecarreras
Some names:

[ ] hookshub
[ ] hook-listener
[ ] webhooks
[ ] hooks
[ ] hook-dristribution
[ ] hook-parser

@jaumef hookshub +1
What about webhooks-dispatcher?


Remove unnecessary variable retval in changedir_func()

After patch 8.2.3933 the memory is now freed in the two if branches instead of at the end of the function, so it is safe to just return in the two if branches.

That res variable in vim_chdirfile() also seems unnecessary.


推荐影片中评估模型的代码有一段没显示出来

@ChungYork commented on Fri Jul 19 2019
原文：
将以下代码添加到 EvaluateModel()，转换 Test 数据：[!code-csharpTransform]
[!code-csharpTransform]这里应该是
Console.WriteLine("=============== Evaluating the model ===============");
var prediction = model.Transform(testDataView);

文档详细信息
⚠ 请勿编辑此部分。 docs.microsoft.com ➟ GitHub 问题链接必须具有此部分。

ID: 0888bc80-798f-ebdd-459a-7543be1efdad
Version Independent ID: c24ded82-d56c-e8c7-fd6a-e39929227177
Content: 教程：生成影片推荐系统 - 矩阵因子分解 - ML.NET
Content Source: docs/machine-learning/tutorials/movie-recommendation.md
Product: dotnet-ml
GitHub Login: @briacht
Microsoft Alias: johalex

@imba-tjd commented on Fri Jul 19 2019
https://github.com/dotnet/docs/pull/13446

@srvbpigh commented on Fri Jul 19 2019
Hello, @ChungYork
Thank you for your feedback.
We are actively reviewing your comments and will get back to you soon.
Kind regards,
Microsoft DOCS International Team

Hi team,
This code line is broken in the localized versions

@CeciAc This seems like an error with the translation program?

Hi @Thraka
Let me investigate with the loc team.

Hi @Thraka
This was already fixed so I'm closing this issue
best regards


sap.m.Input control not passing misformatted numbers to onlivechange

OpenUI5 version: 1.44.7 also 1.54.6
Browser/version (+device/version):
Chrome / 60 / Win10
Any other tested browsers/devices(OK/FAIL):
URL (minimal example if possible):
http://jsbin.com/turugeyiru/edit?html,output
Steps to reproduce the problem:

Enter "0-2" into a sap.m.Input control with onLiveChange event
Look at the newvalue parameter
Find the newvalue is blank

What is the expected result?
Expected to get "0-2" as the new value.
What happens instead?
newvalue is blank
Any other information? (attach screenshot if possible)
other numbers "-2", "2.1", "2e3" work as expected
Here is a snip from the console for the above jsbin.
Value of field is:
runner-4.1.4.min.js:1 Value of field is: 10
runner-4.1.4.min.js:1 Value of field is: 0
runner-4.1.4.min.js:1 Value of field is: -0
runner-4.1.4.min.js:1 Value of field is: -20
runner-4.1.4.min.js:1 Value of field is:
runner-4.1.4.min.js:1 Value of field is: -20
runner-4.1.4.min.js:1 Value of field is: -20.2
runner-4.1.4.min.js:1 Value of field is: -20
runner-4.1.4.min.js:1 Value of field is: -2
4runner-4.1.4.min.js:1 Value of field is:
runner-4.1.4.min.js:1 Value of field is: 2
runner-4.1.4.min.js:1 Value of field is:
runner-4.1.4.min.js:1 Value of field is: 2e3

The blank entries are when a number in the form of "0-2" is entered.

This is also similar to https://github.com/SAP/openui5/issues/2073

@njames what exactly do you mean by "enter with onLiveChange event" ?.
Controls are not supposed to be interacted with any events, the only supported method is over their API. The only supported way to interact with controls in OPA test is EnterText that is simulating the user interaction by generating the same event flow as the browser would generate with manual interaction.
So I do not think this case is similar to #2073.

Hi,
Unfortunately, the different browsers handles invalid number differently. You can try it with a standard HTML input control. The results will be the same.
This is completely up to the browsers. Nothing we can do here.
Best,
Teo


no-joined thread leads to high cpu usage

If the parent thread forget to join the child thread, or too busy to join (and child thread finish task quickly), or even does not plan to join, then, the child thread leads to high cpu usage.
<?php
use pht\Thread;

$thread = new Thread;
$thread->addFunctionTask('task');
$thread->start();
sleep(10000);

function task()
{
	sleep(1);
}

I debugged it and found it here.
https://github.com/tpunt/pht/blob/d79019cf96d0ff0f7389382148ef6ffc70b761e8/src/classes/thread.c#L278
After the child thread has executed all the tasks, it will cause this problem if it has not been joined yet.
By the way, are you still going to continue to maintain this project? @tpunt

This is a known issue (#6) - I just haven't had the time to resolve it yet.
As for the future of this project, that is currently unknown. There's some issues with this extension, and I don't have the time to look into resolving them currently. Perhaps you should look into parallel for your multithreading needs? It looks like Joe has done a pretty good job on it so far, and he is actively developing it too.


copr: add simd for vector distance functions

What is changed and how it works?

Issue Number: Ref #17290
Function Compute is replaced by simd：

l2_squared_distance
inner_product
cosine_distance
l2_norm

What's Changed:
After optimization, the performance of low-dimensional vectors does not differ much, and the high-dimensional performance improvement is generally 200% +.The vector distance function calculation before using uncheck_index to get elements. Although in https://github.com/tikv/tikv/pull/17333 and https://github.com/tikv/tikv/pull/17334 we fixed memory alignment and improved bounds checking to optimize performance, we found that it still has room for optimization.
This pr defines the f32 parsing at the time of structured parsing of vectors, avoiding memory alignment problems when dealing with vectors. At the same time, the simd optimization function is used directly in the distance function to perform the computation, which improves the performance.
After optimization, the performance of low-dimensional vectors does not differ much, and the high-dimensional performance improvement is generally 200%~300% +.

l2_squared_distance

dimension
before
after
Speedup (x)

3d
2.4573 ns
3.3492 ns
0.73

10d
4.3755 ns
2.6823 ns
1.63

100d
33.421 ns
11.157 ns
3.00

400d
206.12 ns
59.926 ns
3.44

784d
487.49 ns
138.66 ns
3.52

1000d
649.60 ns
192.56 ns
3.37

4000d
2,838.3 ns
953.03 ns
2.98

l2_distance

dimension
before
after
Speedup (x)

3d
2.7286 ns
3.3500 ns
0.81

10d
4.6754 ns
3.0264 ns
1.55

100d
34.306 ns
12.446 ns
2.76

400d
206.32 ns
62.567 ns
3.30

784d
491.73 ns
148.73 ns
3.31

1000d
652.75 ns
194.32 ns
3.36

4000d
2,870.2 ns
967.67 ns
2.97

inner_product

dimension
before
after
Speedup (x)

3d
2.4126 ns
3.5134 ns
0.69

10d
4.3488 ns
2.6561 ns
1.64

100d
32.191 ns
10.209 ns
3.15

400d
192.06 ns
57.238 ns
3.35

784d
477.57 ns
129.00 ns
3.70

1000d
634.12 ns
180.39 ns
3.52

4000d
2,805.3 ns
978.09 ns
2.87

cosine_distance

dimension
before
after
Speedup (x)

3d
3.0262 ns
3.2580 ns
0.93

10d
6.5512 ns
3.4449 ns
1.90

100d
60.630 ns
14.494 ns
4.18

400d
278.40 ns
64.096 ns
4.34

784d
563.94 ns
150.73 ns
3.74

1000d
724.23 ns
217.23 ns
3.33

4000d
2,953.6 ns
972.29 ns
3.04

l2_norm

dimension
before
after
Speedup (x)

3d
1.8571 ns
3.6121 ns
0.51

10d
3.7841 ns
3.5989 ns
1.05

100d
33.885 ns
12.432 ns
2.73

400d
206.15 ns
58.894 ns
3.50

784d
474.14 ns
134.61 ns
3.52

1000d
619.50 ns
185.18 ns
3.35

4000d
2,680.6 ns
977.16 ns
2.74

Related changes

[ ] PR to update pingcap/docs/pingcap/docs-cn:
[ ] Need to cherry-pick to the release branch

Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Release note

/cc @breezewish  PTAL~

@breezewish PTAL~

/ok-to-test

/retest

/retest

It introduced the building failure on linux/arm64 platform.


Handling local vs network actions

In the light demo toggling the bulb is handled locally.
    attribute::get_val(attribute, &val);
    val.val.b = !val.val.b;
    attribute::update(endpoint_id, cluster_id, attribute_id, &val);

In the light-switch demo toggling the bulb is handled via the network
    uint32_t command_id = OnOff::Commands::Toggle::Id;

    g_cluster_id = cluster_id;
    g_command_id = command_id;
    lock::chip_stack_lock(portMAX_DELAY);
    client::cluster_update(endpoint_id, cluster_id);
    lock::chip_stack_unlock();

So how do I implement the use-case described in this issue?
https://github.com/project-chip/connectedhomeip/issues/21243
You can't just do both actions because the toggle will happen twice, once locally and again when it arrives via the group.
So I see two options, which one is better and how do I implement it?

Keep track of whether the dimmer has been bound to a group. If it has been bound use the network, if not use a local action.

Somehow construct a loopback binding when not bound to a group, then always use a network action.

I made this issue on CHIP
https://github.com/project-chip/connectedhomeip/issues/21470
Can you please help push it with them so that they don't ignore it?


buildMix: use C.UTF-8 locale

Description of changes
Avoid the following during mix builds:
warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

@camelpunch good catch. Can you add it to mix-release.nix as well?


feat(wandb): custom logging of semantic segmentation

Allow custom logging of semantic segmentation samples.
You can create custom graphs:

select which classes to display
add optionally input underneath the mask
set up opacity of mask and image

You can even plot evolution of prediction over time.

See a sample run

Thanks a lot, this looks very good!


Rasters with tiles defined throwing errors

When loading Maputnik with a complete style JSON via the style query param, my raster layers are throwing errors.
The sources are defined as
aerials16: {
  type: "raster",
  tiles: [
    "https://domain/path/{z}/{x}/{y}.png"
  ],
  tileSize: 256,
},

Each raster source I try to load with configs like the above yields the following 3 errors:

It looks like it's expecting the url property to exist and that's causing problems.  I'll try to investigate more soon.

@chriswhong this might be related to #124 give that branch a try, I'll also try and test / merge that PR over the weekend.

I tried #124 but saw the same issue.
On further investigation, at some point my style, which has valid raster sources, is replaced with the invalid ones (raster sources with both a url(undefined) and a tiles value.
So I noticed the following warnings

:

The first warnings are where App.jsx tries to run updateFonts() and updateGlyphs(), I don't really get what these are doing, but they end up failing with mapbox:// urls
I believe that this "Rebuilding the style from scratch" is where the raster sources are being modified, and afterwards they throw errors.  So I guess the "Rebuilding the style from scratch" thing is a mapboxGL bug, but it's being triggered because it's trying to diff the "empty style" which has no fonts or glyphs with the new style which does.

@chriswhong do you have a minimal test case that shows the issue?

Hi @chriswhong did you get any further with this and is this still an issue?

No, It never caused a problem, just wanted to report the weird errors

Ok thanks @chriswhong I've tracked down the lines in the mapbox-gl-js source
https://github.com/mapbox/mapbox-gl-js/blob/master/src/ui/map.js#L902
https://github.com/mapbox/mapbox-gl-js/blob/master/src/style/style.js#L440
I'll keep an eye out for this happening in the console.

 Or can we close it

Close it, hasn't bothered me lately


What is window.generativeMusic.rng() ?

HI Alex,
I'm exploring the code trying to learn how you made some of these and I'm running into an issue. You have this window.generativeMusic.rng() in use all over the place but I can not find where it is defined. Is it some sort of random seed?
Thanks.

Hi again Tate!
The implementation is a little hacky but it's just a random number generator that defaults to Math.random.
https://github.com/generative-music/pieces-alex-bainter/blob/1186f13dc24a42e5485cc39ede313328f64b4b61/packages/utilities/src/wrap-activate.js#L8-L9
I wanted to add a reward for people who supported Generative.fm where I'd use their name to seed the random number generator, but I'd already written so much code where I just used the global Math.random(). So I just replaced those with window.generativeMusic.rng(), and then I could override it with a another (seedable) rng. For example, here's where I do that in Generative.fm Play: https://github.com/generative-fm/play/blob/11ae5750c0c1aac2ba7b2be5626ebca8c687d434/src/app/redux-app.jsx#L32-L35

I'll be sure to note this in the readme


Enable Terraform region variable

Enabled the terraform's region variable so that the user can configure which AWS region to deploy to.
Also improved the k0s documentation.
Finally, not related but changed the install.sh parent directory name to work with the Makefile

@nwneisen @ranyodh
Please review the proposed changes.
Thank you!

@nwneisen @quadespresso
I have updated the documentation. Hope it is satisfactory now 🙂!


Error: Module did not self-register when generating docs.

When working with docs, when I try to preview or even run the praxis:docs:install rake task, I get the following error.
module.js:355
  Module._extensions[extension](this, filename);
                               ^
Error: Module did not self-register.
    at Error (native)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (~/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/gems/praxis-d8b0a68df075/lib/api_browser/node_modules/grunt-sass/node_modules/node-sass/lib/index.js:181:15)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
npm ERR! Linux 3.18.6-1-ARCH
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install"
npm ERR! node v0.12.0
npm ERR! npm  v2.7.1
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'node scripts/build.js'.
npm ERR! This is most likely a problem with the node-sass package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/build.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.

As you can see there, I'm using node v0.12.0. Looking around it seems that one of the packages may not be compatible with this version of nodejs.
I see "grunt-sass": "^0.17.0" in the lib/api_browser/package.json file. These vesrions, with the issues I found (gulp-sass issue points to node-sass issue), suggest that there may be some version dependency issues.

This should be fixed by upgrading to grunt-sass 0.18.1, which in turn upgrades node-sass to 2.0.


Seems to hang sometimes

screenshot/https://fonts.google.com/?width=1280&height=1299 still hung after 85s. No errors, so something async never resolved.

HI there! Just testing it out, seems to work pretty well. I am running into a problem as the above. On our new homepage we have a video that starts playing immediately. It seems that it is waiting for the video to fully play out before it can output something (since it is streaming in the video).
url: https://reachdigital-b332f.appspot.com/


feat(aws): Add a test_connection method

Context
We need to be able to test the connection to each provider using one of the available authentication methods, starting from the environment variables.
Description

Add a test_connection method for the AWS provider.
Create a test_connection abstract method in the Provider class but not enforced for now not to break anything.

Notes for reviewers

Review the removal of sys.exit() in favor of catching the exceptions during the __init__.
You can test it with the following:

from prowler.providers.aws.aws_provider import AwsProvider

# - Using environment variables
t = AwsProvider.test_connection()
print(t)

# - Using profile
t = AwsProvider.test_connection(profile="dev")
print(t)

# - With MFA
t = AwsProvider.test_connection(profile="dev", mfa_enabled=True)
print(t)

# - With Role without external ID
t = AwsProvider.test_connection(
    role_arn="arn:aws:iam::111122223333:role/ProwlerRole"
)
print(t)

# - With Role with external ID from ENV
t = AwsProvider.test_connection(
    role_arn="arn:aws:iam::111122223333:role/ProwlerRole",
    external_id="8eabb29e-e591-4828-919f-a9b2839a137d",
)
print(t)

t = AwsProvider.test_connection(
    role_arn="arn:aws:iam::111122223333:role/ProwlerRole",
    external_id="8eabb29e-e591-4828-919f-a9b2839a137d",
    session_duration=900,
    profile="test",
)
print(t)

License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

This looks good! I left some comments and I also wondered how is the API going to use this?
As far as I know, we only store the provider_id (relevant to what I see in the test_connection  expected arguments).

It mostly depends on the AWS Credentials method used, you can see more about it here https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html. Currently Prowler supports out of the box methods 3, 4, 5 and 6. For example using the environment variables or the profile/config will make the SDK to automatically look for them and then try to authenticate with AWS.

Would that be the external_id field? Would that be enough to test the connection?

The external_id will be used while assuming AWS IAM roles, you can get more information about it in the following links:

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html
It won't be enough just with the external_id itself, it needs to be used in conjunction with an AWS IAM Role ARN.

We are still discussing about the format of the test_connection, probably this is going to be the chosen one:
@staticmethod
    def test_connection(
        session: Session = None,
        profile: str = None,
        aws_region: str = AWS_STS_GLOBAL_ENDPOINT_REGION,
        role_arn: str = None,
        role_session_name: str = ROLE_SESSION_NAME,
        session_duration: int = 3600,
        external_id: str = None,
        mfa_enabled: bool = False,
        raise_exception: bool = True,
    ) -> TestConnection:
        """
        Validates AWS credentials using the provided session and AWS region.

        If no session is provided, the method will create a new session using the Boto3 default session.

        Args:
            session (Session): The AWS session object.
            profile (str): The AWS profile to use for the session.
            aws_region (str): The AWS region to validate the credentials in.
            role_arn (str): The ARN of the IAM role to assume.
            role_session_name (str): The name of the role session.
            session_duration (int): The duration of the assumed role session in seconds.
            external_id (str): The external ID to use when assuming the role.
            mfa_enabled (bool): Whether MFA (Multi-Factor Authentication) is enabled.
            raise_exception (bool): Whether to raise an exception if an error occurs.

        Returns:

            TestConnection: A named tuple containing the result of the validation.
                - connected (bool): Indicates whether the validation was successful.
                - result (AWSCallerIdentity): An object representing the caller's identity if the validation was successful.
                - error (Exception): An exception object if an error occurs during the validation.

        Raises:
            Exception: If an error occurs during the validation process.

        Examples:
            >>> AwsProvider.test_connection(
                role_arn="arn:aws:iam::111122223333:role/ProwlerRole",
                external_id="67f7a641-ecb0-4f6d-921d-3587febd379c"
            )
            AWSCallerIdentity(user_id='AROAAAAAAAAAAAAAAAAAA:ProwlerAssessmentSession', account='111122223333', arn=ARN(arn='arn:aws:sts::111122223333:assumed-role/ProwlerRole/ProwlerAssessmentSession', partition='aws', service='sts', region=None, account_id='111122223333', resource='ProwlerRole/ProwlerAssessmentSession', resource_type='assumed-role'), region='us-east-1')

            >>> AwsProvider.test_connection(profile="test")
            AWSCallerIdentity(user_id='AROAAAAAAAAAAAAAAAAAA:test-user', account='111122223333', arn=ARN(arn='arn:aws:sts::111122223333:user/test-user', partition='aws', service='sts', region=None, account_id='111122223333', resource='test-user', resource_type='user'), region='us-east-1')
        """
        try:
            # Create the default session if no session is given
            session = (
                session if session else AwsProvider.setup_session(mfa_enabled, profile)
            )

            # Test Connection using the IAM Role
            if role_arn:
                session_duration = validate_session_duration(session_duration)
                role_session_name = validate_role_session_name(role_session_name)
                role_arn = parse_iam_credentials_arn(role_arn)
                assumed_role_information = AWSAssumeRoleInfo(
                    role_arn=role_arn,
                    session_duration=session_duration,
                    external_id=external_id,
                    mfa_enabled=mfa_enabled,
                    role_session_name=role_session_name,
                )
                assumed_role_credentials = AwsProvider.assume_role(
                    session,
                    assumed_role_information,
                )
                session = Session(
                    aws_access_key_id=assumed_role_credentials.aws_access_key_id,
                    aws_secret_access_key=assumed_role_credentials.aws_secret_access_key,
                    aws_session_token=assumed_role_credentials.aws_session_token,
                    region_name=aws_region,
                    profile_name=profile,
                )

            sts_client = AwsProvider.create_sts_session(session, aws_region)
            caller_identity = sts_client.get_caller_identity()
            # Include the region where the caller_identity has validated the credentials
            return TestConnection(
                connected=True,
                result=AWSCallerIdentity(
                    user_id=caller_identity.get("UserId"),
                    account=caller_identity.get("Account"),
                    arn=ARN(caller_identity.get("Arn")),
                    region=aws_region,
                ),
            )

        except (ClientError, ProfileNotFound) as credentials_error:
            logger.error(
                f"{credentials_error.__class__.__name__}[{credentials_error.__traceback__.tb_lineno}]: {credentials_error}"
            )
            if raise_exception:
                raise credentials_error
            else:
                return TestConnection(error=credentials_error)

        except ArgumentTypeError as validation_error:
            logger.error(
                f"{validation_error.__class__.__name__}[{validation_error.__traceback__.tb_lineno}]: {validation_error}"
            )
            if raise_exception:
                raise validation_error
            else:
                return TestConnection(error=validation_error)

        except Exception as error:
            logger.critical(
                f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
            )
            raise error

and the TestConnection object:
@dataclass
class TestConnection:
    _connected: bool = False
    _error: Exception = None
    _result: Any = None

    @property
    def connected(self) -> bool:
        return self._connected

    @property
    def error(self) -> bool:
        return self._error

    @property
    def result(self) -> bool:
        return self._result

This PR needs to be updated accordingly.
Also the init should call it with:
caller_identity = self.test_connection(
            session=self.session.current_session,
            aws_region=sts_region,
            raise_exception=True,
        )

Do not merge until the above change is addressed.


Run gofmt

Signed-off-by: Gábor Lipták<EMAIL_ADDRESS>

Ah, scratch that. The IsAlias method isn't working on 1.8 as it was introduced in 1.9.
@patryk What is the language version support policy where? Do we need to support 1.8 anymore?

golint HEAD is broken for Go 1.7 and 1.8 https://travis-ci.org/golang/lint/builds/444499244

@gliptak golint HEAD looks good again. Do you mind rebasing this and force pushing to trigger a build?

@jacobbednarz golint 1.8 is stiil broken (https://travis-ci.org/golang/lint/builds/440240105 ran 11 days ago ...)

🤦♂ apologies - That's what I get for having a billion tabs open and skipping through it.

@jacobbednarz no worries. thank you for reviewing

I have dropped Go 1.8 as test target. We don't need to worry about unmaintained branches.

I'm actually considering dropping 1.9.x as well and just stick to Google's policy of supporting two last major versions.


Issue with numeric detection

The default elastalert index enables the Elasticsearch "numeric_detection" feature, described here:
https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-field-mapping.html#numeric-detection
And enabled here:
https://github.com/Yelp/elastalert/blob/master/elastalert/es_mappings/6/elastalert.json#L2
Unfortunately this can cause Elasticsearch to fail requests if it tries to alert on any field which has text fields that are subjected to "numeric detection" but are too large to fit in a float.
ERROR:root:Error writing alert info to Elasticsearch: RequestError(400, 'mapper_parsing_exception', "failed to parse field [match_body.event_id] of type [float] in document with id '1scvaW4BMyMmd5kjobjp'. Preview of field's value: '35095188898298459521615298175139735357954906557641326601'")
Traceback (most recent call last):
  File "/home/bitnami/.local/lib/python3.5/site-packages/elastalert/elastalert.py", line 1599, in writeback
    res = self.writeback_es.index(index=index, body=body)
  File "/home/bitnami/.local/lib/python3.5/site-packages/elasticsearch/client/utils.py", line 84, in _wrapped
    return func(*args, params=params, **kwargs)
  File "/home/bitnami/.local/lib/python3.5/site-packages/elasticsearch/client/__init__.py", line 364, in index
    "POST", _make_path(index, doc_type, id), params=params, body=body
  File "/home/bitnami/.local/lib/python3.5/site-packages/elasticsearch/transport.py", line 350, in perform_request
    timeout=timeout,
  File "/home/bitnami/.local/lib/python3.5/site-packages/elasticsearch/connection/http_requests.py", line 160, in perform_request
    self._raise_error(response.status_code, raw_data)
  File "/home/bitnami/.local/lib/python3.5/site-packages/elasticsearch/connection/base.py", line 182, in _raise_error
    status_code, error_message, additional_info
elasticsearch.exceptions.RequestError: RequestError(400, 'mapper_parsing_exception', "failed to parse field [match_body.event_id] of type [float] in document with id '1scvaW4BMyMmd5kjobjp'. Preview of field's value: '35095188898298459521615298175139735357954906557641326601'")

Is it necessary to have numeric detection enabled, given that it can break Elastalert like this?

Bump


Create date filter classes

(Interesting that the PR template didn't appear for me)
Hi @schemar @sytone,
I've mentioned recently that I could see ways to make simple changes to the Query code to greatly simplify the creation of filters and the maintenance of the Query class.
This PR started as an experiment to try this on one or two of the date filters, and it went well enough that I decided to pursue it and pull out the code for all the date filters (the ones with before, after, on).
tl;dr
I'm moving code out of Query and into much smaller classes with single responsibilities, such as DueDateField. A ton of boiler plate code has disappeared as a result.
This is done for the date filters, and I will soon do it for the other filters.
Query.test.ts is still very big. I will soon divide up its tests to match the new classes.
Adding new types of filters will immediately become very obvious and very easy.
Enjoy!
Classes added

Add DoneDateField, DueDateField, HappensDateField, ScheduledDateField and StartDateField
Add base classes of these: DateField, which inherits Field.
These all have jsdoc comments explaining the naming, intention and possible future directions.
See also Filter.ts for some supporting types.

Tests

So far, all this is covered by existing tests in Query.test.js

Later I will likely create DueDateField.test.ts etc files for each of the new filters, and move most of the existing tests in Query.test.ts to the corresponding filter tests.

Example code
For example, this is all the code that is needed to implement the due before|after\on instruction now:
import type { Moment } from 'moment';
import type { Task } from '../../Task';
import { DateField } from './DateField';

/**
 * Support the 'due' search instruction.
 */
export class DueDateField extends DateField {
    private static readonly dueRegexp = /^due (before|after|on)? ?(.*)/;

    protected filterRegexp(): RegExp {
        return DueDateField.dueRegexp;
    }
    protected fieldName(): string {
        return 'due';
    }
    protected date(task: Task): Moment | null {
        return task.dueDate;
    }
    protected filterResultIfFieldMissing() {
        return false;
    }
}

Imagine if we added a created before|after|on instruction. How little code would be required to implement it, and therefore to test it.
Query
Query.ts has shrunk from 653 lines to 511, and by the time I've done the same for the other filter instructions, it will be a lot smaller still.
Aside from imports, the total code for using these new classes is now this:
                    case this.parseFilter(line, new HappensDateField()):
                        break;
                    case this.parseFilter(line, new StartDateField()):
                        break;
                    case this.parseFilter(line, new ScheduledDateField()):
                        break;
                    case this.parseFilter(line, new DueDateField()):
                        break;
                    case this.parseFilter(line, new DoneDateField()):
                        break;

Later on, the objects may well get added to a container of fields, and looped over, but for now the easiest way to slot them in to the existing code was via these function calls.
I think of this as all basically a rather simple implementation of the Chain of Responsibility design pattern.
All the current repetitious parsing functions have been replaced by a single new parseFilter() function in Query:
    private parseFilter(line: string, field: Field) {
        if (field.canCreateFilterForLine(line)) {
            const { filter, error } = field.createFilterOrErrorMessage(line);

            if (filter) {
                this._filters.push(filter);
            } else {
                this._error = error;
            }
            return true;
        } else {
            return false;
        }
    }

Later stages
Depending on where the refactoring work takes me, these are the sorts of things I'm likely to do soon, to build on this work.

Other filters: I really like how this turned out, so I plan to go ahead and port the remaining filters to this pattern.
Re-implement the happens filter in terms of code extracted from DateField.
Once I've done that, it will become very easy to implement new date-search features, as there will be a single location to update - perhaps searching by week number, or maybe date ranges, or dates of the week. Who knows? The world is our oyster!

Later: This could be seen as a contribution towards:
https://github.com/schemar/obsidian-tasks/pull/690 'refactor the Query class to be more modular'.

Thanks, @claremacrae! This is really cool and long overdue.


core: added ee folder for koor enterprise code

Description of your changes:
Which issue is resolved by this Pull Request:
Resolves #
Checklist:

[ ] Commit Message Formatting: Commit titles and messages follow guidelines in the developer guide).
[x] Skip Tests for Docs: If this is only a documentation change, add the label skip-ci on the PR.
[ ] Reviewed the developer guide on Submitting a Pull Request
[ ] Pending release notes updated with breaking and/or notable changes for the next minor release.
[ ] Documentation has been updated, if necessary.
[ ] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.

Looks good. Do we need to do anything to ensure this doesn't get deleted again afterwards?

this won't be deleted again, as we did the branch clean reset to rook upstream as for making koor more maintainable; we did it as a one time thing, we hope to migrate all koor code to this folder coming forth and force push to koor/master is blocked after this reset.


No uninstall script (for Linux)?

I wanna try this, but it would be cool to have an option to undo the installation though...

Just delete the env folder or the entire fastsdcpu folder.


support response_type in runprompt

The GIT_DIFF displays two main changes in different parts of the codebase. 📁
In the prompt_template.d.ts file, the property responseType has been moved from ScriptRuntimeOptions interface to ModelOptions interface. This change indicates a possible reorganization of the responsibilities amongst these interfaces. 🔄
A new JavaScript file runprompt.genai.js is created under the style directory in the sample/genaisrc path. This file uses the script and runPrompt functions to generate three random numbers between 1 and 10, with the model set to openai:gpt-3.5-turbo and the response type set to json_object. The result is then checked if it is in JSON format. This seems like a new feature or test being added to the codebase. 📝
There are no changes related to imports in the GIT_DIFF. 🚫

generated by pr-describe

/genai-describe


Release 1.0.0 🎉

Let's rebase this on any additional changes we might make to develop before the release.

@c-castillo we are still waiting for some additional PRs to get merged into develop before we merge this!


fix: renamed options in toggleterm and catpuccin nixvim

small fix to rename the options in the 2 packages to match the current nixvim version

Thank you for this contribution! :+1:


Make a small suggestion.

Description
Can you add an option, which is about not using the computer for more than XXX time, and reset the large-scale rest timer.
Feature Domain
Plase check any of the chackbox that is related to your request:

[F] UI/UX Improvement
[F] Avoid people from making mistake
[F] Creativity
[T] New fucntionality
[F] Extend support

This is a useful feature that I also want to have. 👍
Another approach is to make users can manually defining the auto-reset-timer trigger like the Linux cron job.


Update to 1.75.0 broke use of JSON.stringify() in Debug Console

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.75.0
OS Version: Windows 10 Pro (19045.2546)

Steps to Reproduce:

Debug any Javascript source code in 1.75.0
In the "DEBUG CONSOLE" input line, type JSON.stringify({}) and hit ENTER.
This should produce "{}" in the debug console.  Instead, it produces something like this:

Uncaught TypeError TypeError: (intermediate value)(intermediate value)(intermediate value).stringify is not a function
    at eval (<eval>/VM46947638:1:65)
...

Reverting to 1.73.4 resolves the problem.

Works fine for me. I have no clue what that error message is saying. Is this node? Can you give the node version as well? And are you debugging a program that might have modified JSON for some reason (even though changing the vscode version impacts it)

I am on the latest Node.js v14.  Apparently there is some strange interaction here with Jest tests when debugging that is causing the issue.

It's possible that they modify the JSON global. Would be useful to have a test repo where I can repro the issue.

I thought that might be the case, but I notice any signs of monkey patching on JSON in debug mode. I'll see if I can put together a simple test, but I had to revert back to 1.74.3 in order to get stuff done.

/jsDebugLogs

Please collect trace logs using the following instructions:

If you're able to, add "trace": true to your launch.json and reproduce the issue. The location of the log file on your disk will be written to the Debug Console. Share that with us.
⚠ This log file will not contain source code, but will contain file paths. You can drop it into https://microsoft.github.io/vscode-pwa-analyzer/index.html to see what it contains. If you'd rather not share the log publicly, you can email it to<EMAIL_ADDRESS>

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Update msg format to support ROS Iron

There has been an update in the msg format of moveit_msgs mentioned in the CHANGELOG 0.11.3 (2022-09-13) link
It seems like the update in moveit_msgs was not included in the moveit releases until the iron release.
This was causing an error with iron and the current rolling version of moveit:
no member name found cartesian_speed_end_effector_link

I have tested the PR my local and it now works fine in both iron and rolling after updating the msg format.
Given that it seems that the main branch of pymoveit2 is targeting humble, maybe this should be a part of your new release 3.2.0?

Thank you again for your contribution! I will go ahead and merge it into a separate branch first, where I will apply the suggestions from above before merging it into devel.


optimize typing

Codecov Report

Merging #78 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##             master      #78   +/-   ##
=========================================
  Coverage     98.75%   98.75%
  Complexity      120      120
=========================================
  Files            26       26
  Lines           320      320
=========================================
  Hits            316      316
  Misses            4        4

Impacted Files
Coverage Δ
Complexity Δ

src/Serialize/FormatMapper.php
100.00% <ø> (ø)
5.00 <0.00> (ø)

src/Negotiation/NotNegotiableException.php
100.00% <100.00%> (ø)
2.00 <1.00> (ø)

src/Serialize/FormatException.php
100.00% <100.00%> (ø)
2.00 <1.00> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5930812...353dfe4. Read the comment docs.


[Thesis] Issue with Vehicle on Connection

The solver currently fails when attempting to calculate stats whenever a vehicle is on a connection. This can be proven by running the included test (without the fix). The test will put a vehicle on a connection (by advancing time a little bit) and subsequently calls Solvers.computeStats(), which fails. The Suggested fix is to change the observed location to the end point of the connection for the calculation of the stats.

This change is

Checkstyle refuses the current solution due to exceeding the maximum allowed length of a single method. This might actually be fixed with the inclusion of the snapshots (since I think it is slightly shorter). This limit might need to be put slightly higher, especially taking into account that I already have taken measures to keep under this limit, by extracting calculateStatsForVehicle from computeStats, before.

Added another commit with a different fix:
The GraphRoadModelSnapshot is used for calculating paths and its distance. When a vehicle is created at a depot its location is the same as the location of that depot. Graphs.shortestPath(...) between those two (identical) points results in a list with only a single element. This wasn't allowed and resulted in a crash. This is simply fixed by allowing single element paths for the getDistanceOfPath(...) method.
This issue is only found with GraphRoadModels. The inlcuded test case results in the error if not patched.


Update path-slash to v0.2.1

Hi, I'm author of path-slash crate.
I noticed this big project uses older version of path-slash so I created this PR to update the version. In path-slash v0.2, to_slash_lossy returns Cow and allocates memory only when it is necessary so this change may be able to save some heap allocations.

@rhysd thanks so much for your PR! I'd love to get this merged -- would you mind resolving the merge conflicts? Once that's done I'd be happy to update our deps :)

@caass Thank you for taking a look. I rebased this branch onto the latest master.


archive/tar: fix writing too many raw bytes

When an EOF is read, only the part of the header buffer which was read should be accounted for. Currently raw bytes ends up writing the entire header buffer to raw bytes when EOF is hit.

LGTM

@dmcgowan can you confirm this fixes your problem-case?

Confirmed this does fix the issue I was seeing in Docker


handle links to image files better

mime type should be returned already, generate a fake embed object?

@quartzjer, can you add a bit more info here? Where does this happen? Should we still fix it? What do you mean by fake embed object?

When links encounters a http://foo/image.png direct to an image, it should grab the metadata from the HEAD headers to verify it's an image and create an embed:{} object with the info about the image, so that anything asking links for image embeds, it shows up.


Could tensorboard add search function

Tensorboard visualization is great, but for big graphs, it is hard to locate certain ops. There are two many components in the graph. So I want two new functions:

It is possible to hide some nodes, such as reshape, relu, and soon, which does not affects the graph structure.
Is it possible to search some ops by name keywords, such as RPNLoss? The search result could be displayed on a search board.

I think you will have better luck searching for or posting your request to the Tensorboard issues here https://github.com/tensorflow/tensorboard/issues

Yes, please file this against the tensorboard repository: https://github.com/tensorflow/tensorboard/issues. Thanks!


Fix CoreAnimation related warnings

Avoid “CoreAnimation: warning, deleted thread with uncommitted CATransaction”
messages, caused by updates to ActivityItem on background refresh threads.

change the CA_DEBUG_TRANSACTIONS environment variable to 1 in order to
have exceptions or backtraces
make sure all drawing action are performed on the main thread
add explicit CATransaction-s.

Approved! Ha

@josh64x2 can you submit the Brew Cask update for 3.1.10 ? I am on vacation with only my laptop and a slow connection, so I am afraid I cannot install brew.
@Eitot : before I forget again, what name should I put in Credits ? Your Github handle or anything else ?

@barijaona sure thing, will do in a few hours.

someone else had already done it :) (unless it was automated...)
That does make me wonder though, they really need to update the cask file automatically based on the Sparkle file.


ddev stop and ddev rm need a way to execute without workspace

What happened (or feature request):
I was trying to clean up sites/apps that were left running after tests and did not know where the related workspaces were. It led to a frustration that real users will have: "I want to delete an app but have no idea how".
What you expected to happen:
I expect to be able to clean up without knowing arcane knowledge about where an app may be.
How to reproduce it (as minimally and precisely as possible):
Try to delete an app when you don't know where the workspace is.
Suggested resolution:
Allow ddev stop and ddev rm commands to take an argument, or alternately add a new command like vagrant's "global*" commands.

Adding a needs decision flag because I know there was a larger discussion on what this looks like in terms of how to target it.

This should have also been listed as a v0.7 milestone. Updating!


Profile icon breaks for group PMs with large no. of recipients for group PMs

PMs list screen:

@gnprice said

One step toward addressing these: I'm curious how group PMs like these wind up looking in the webapp.

The web app doesn't display icons at all, so it's not an issue there:
Screenshot of list of private messages -

Thanks @agrawal-d for spotting and reporting this!
I've never been much of a fan of this initials-based pseudo-icon in any case. I'd be happy to see it completely reimagined. But in any case we should fix this bug. :-)
Maybe:

Use just one initial, not two: use the very first letter of the name (so from the person's first name, in the case of Western name conventions)
If there are up to 4, write the initials.
If there are more than that, then write only 3, followed by a plus sign.

Beyond about 4 I think the lists of initials get pretty unreadable anyway. :wink:


Open cover for charger door not working

Is there an existing issue for this?

[X] I have searched both the existing open issues & recently closed issues and did not find a duplicate of this issue.

I have read about the Fleet API and understand I may need to use it

[X] I understand issues relating to read only commands will be auto closed if not using the Fleet API.

Version of the Tesla component
3.24.1
Version of the Tesla car software
2024.26.8
Model
Model Y
Current Behavior
Before the Open cover for charger door was working. I expect that clicking on the icon or using cover.open_cover shall open the cover door on my Tesla.
Expected Behavior
Stopped working. Not sure from when.
Debug logs
2024-09-10 18:34:32.695 DEBUG (MainThread) [custom_components.tesla_custom.cover] Opening cover: Charger door
2024-09-10 18:34:32.696 DEBUG (MainThread) [teslajsonpy.car] Sending command: CHARGE_PORT_DOOR_OPEN
2024-09-10 18:34:32.696 DEBUG (MainThread) [teslajsonpy.controller] 16956: Sending wake request with deadline of:<PHONE_NUMBER>
2024-09-10 18:34:32.697 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:28
2024-09-10 18:34:32.698 DEBUG (MainThread) [teslajsonpy.connection] post: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956/wake_up {}
2024-09-10 18:34:32.970 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":{"id":930087024961184,"user_id":1689097377331612,"vehicle_id":1689093166316961,"vin":"LRWYGCEK0MC116956","color":null,"access_type":"OWNER","granular_access":{"hide_private":false},"tokens":null,"state":"offline","in_service":false,"id_s":"930087024961184","calendar_enabled":true,"api_version":79,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false}}
2024-09-10 18:34:34.972 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:26
2024-09-10 18:34:34.973 DEBUG (MainThread) [teslajsonpy.connection] get: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956 {}
2024-09-10 18:34:35.192 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":{"id":930087024961184,"vehicle_id":1689093166316961,"vin":"LRWYGCEK0MC116956","color":null,"access_type":"OWNER","display_name":"Night Fury","option_codes":null,"granular_access":{"hide_private":false},"tokens":null,"state":"offline","in_service":false,"id_s":"930087024961184","calendar_enabled":true,"api_version":79,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false}}
2024-09-10 18:34:37.166 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-09-10 18:34:37.166 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 28 Interval 60
2024-09-10 18:34:37.167 DEBUG (MainThread) [teslajsonpy.controller] 16956: Skipping update with state offline. Polling: True. Last update: 8869 ago. Last parked: 8869.523999929428 ago. Last wake up 16595 ago.
2024-09-10 18:34:37.167 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.001 seconds (success: True)
2024-09-10 18:34:37.194 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:23
2024-09-10 18:34:37.195 DEBUG (MainThread) [teslajsonpy.connection] get: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956 {}
2024-09-10 18:34:37.290 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":{"id":930087024961184,"vehicle_id":1689093166316961,"vin":"LRWYGCEK0MC116956","color":null,"access_type":"OWNER","display_name":"Night Fury","option_codes":null,"granular_access":{"hide_private":false},"tokens":null,"state":"offline","in_service":false,"id_s":"930087024961184","calendar_enabled":true,"api_version":79,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false}}
2024-09-10 18:34:38.501 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-09-10 18:34:38.502 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 30 Interval 60
2024-09-10 18:34:38.502 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.001 seconds (success: True)
2024-09-10 18:34:39.292 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:21
2024-09-10 18:34:39.293 DEBUG (MainThread) [teslajsonpy.connection] get: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956 {}
2024-09-10 18:34:39.395 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":{"id":930087024961184,"vehicle_id":1689093166316961,"vin":"LRWYGCEK0MC116956","color":null,"access_type":"OWNER","display_name":"Night Fury","option_codes":null,"granular_access":{"hide_private":false},"tokens":null,"state":"offline","in_service":false,"id_s":"930087024961184","calendar_enabled":true,"api_version":79,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false}}
2024-09-10 18:34:41.397 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:19
2024-09-10 18:34:41.398 DEBUG (MainThread) [teslajsonpy.connection] get: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956 {}
2024-09-10 18:34:41.545 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":{"id":930087024961184,"vehicle_id":1689093166316961,"vin":"LRWYGCEK0MC116956","color":null,"access_type":"OWNER","display_name":"Night Fury","option_codes":null,"granular_access":{"hide_private":false},"tokens":null,"state":"online","in_service":false,"id_s":"930087024961184","calendar_enabled":true,"api_version":79,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false}}
2024-09-10 18:34:41.545 DEBUG (MainThread) [teslajsonpy.controller] 16956: Changing car_online from False to True
2024-09-10 18:34:41.546 DEBUG (MainThread) [teslajsonpy.controller] 16956: Resetting last_wake_up_time to:<PHONE_NUMBER>
2024-09-10 18:34:41.546 DEBUG (MainThread) [teslajsonpy.controller] 16956: Wakeup took 8 seconds, state: online
2024-09-10 18:34:41.547 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:19
2024-09-10 18:34:41.548 DEBUG (MainThread) [teslajsonpy.connection] post: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956/command/charge_port_door_open {}
2024-09-10 18:34:41.645 DEBUG (MainThread) [teslajsonpy.connection] 403: {"response":null,"error":"Tesla Vehicle Command Protocol required, please refer to the documentation here: https://developer.tesla.com/docs/fleet-api#2023-10-09-rest-api-vehicle-commands-endpoint-deprecation-warning","error_description":""}
2024-09-10 18:34:43.199 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:17
2024-09-10 18:34:43.200 DEBUG (MainThread) [teslajsonpy.connection] post: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956/command/charge_port_door_open {}
2024-09-10 18:34:43.289 DEBUG (MainThread) [teslajsonpy.connection] 403: {"response":null,"error":"Tesla Vehicle Command Protocol required, please refer to the documentation here: https://developer.tesla.com/docs/fleet-api#2023-10-09-rest-api-vehicle-commands-endpoint-deprecation-warning","error_description":""}
2024-09-10 18:34:45.604 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:15
2024-09-10 18:34:45.605 DEBUG (MainThread) [teslajsonpy.connection] post: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956/command/charge_port_door_open {}
2024-09-10 18:34:45.691 DEBUG (MainThread) [teslajsonpy.connection] 403: {"response":null,"error":"Tesla Vehicle Command Protocol required, please refer to the documentation here: https://developer.tesla.com/docs/fleet-api#2023-10-09-rest-api-vehicle-commands-endpoint-deprecation-warning","error_description":""}
2024-09-10 18:34:47.165 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-09-10 18:34:47.166 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 38 Interval 60
2024-09-10 18:34:47.166 DEBUG (MainThread) [teslajsonpy.controller] 16956: offline. Polling policy: normal. Update state: normal. Since last park: 8879.523999929428. Since last wake up: 5. Idle interval: 600. shift_state: None sentry: False climate: False, charging: Disconnected
2024-09-10 18:34:47.167 DEBUG (MainThread) [teslajsonpy.controller] 16956: offline; Polling policy set to 'normal', trying to sleep; scan throttled to 660 seconds and will ignore updates for -8219 seconds
2024-09-10 18:34:47.167 DEBUG (MainThread) [teslajsonpy.controller] 16956: Updating VEHICLE_DATA
2024-09-10 18:34:47.168 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:13
2024-09-10 18:34:47.172 DEBUG (MainThread) [teslajsonpy.connection] get: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956/vehicle_data?endpoints=charge_state%3Bclimate_state%3Bdrive_state%3Bgui_settings%3Bvehicle_config%3Bvehicle_state%3Blocation_data {}
2024-09-10 18:34:47.450 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":{"id":930087024961184,"user_id":1689097377331612,"vehicle_id":1689093166316961,"vin":"LRWYGCEK0MC116956","color":null,"access_type":"OWNER","granular_access":{"hide_private":false},"tokens":null,"state":"online","in_service":false,"id_s":"930087024961184","calendar_enabled":true,"api_version":79,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false,"charge_state":{"battery_heater_on":false,"battery_level":61,"battery_range":177.91,"charge_amps":16,"charge_current_request":16,"charge_current_request_max":16,"charge_enable_request":true,"charge_energy_added":35.46,"charge_limit_soc":80,"charge_limit_soc_max":100,"charge_limit_soc_min":50,"charge_limit_soc_std":80,"charge_miles_added_ideal":148.5,"charge_miles_added_rated":148.5,"charge_port_cold_weather_mode":false,"charge_port_color":"\u003cinvalid\u003e","charge_port_door_open":false,"charge_port_latch":"Engaged","charge_rate":0.0,"charger_actual_current":0,"charger_phases":null,"charger_pilot_current":16,"charger_power":0,"charger_voltage":2,"charging_state":"Disconnected","conn_charge_cable":"\u003cinvalid\u003e","est_battery_range":187.35,"fast_charger_brand":"\u003cinvalid\u003e","fast_charger_present":false,"fast_charger_type":"\u003cinvalid\u003e","ideal_battery_range":177.91,"max_range_charge_counter":0,"minutes_to_full_charge":0,"not_enough_power_to_heat":null,"off_peak_charging_enabled":false,"off_peak_charging_times":"all_week","preconditioning_enabled":false,"preconditioning_times":"all_week","scheduled_charging_mode":"Off","scheduled_charging_pending":false,"scheduled_charging_start_time":null,"scheduled_departure_time":null,"supercharger_session_trip_planner":false,"time_to_full_charge":0.0,"timestamp":1725986085764,"trip_charging":false,"usable_battery_level":61,"user_charge_enable_request":null},"climate_state":{"allow_cabin_overheat_protection":true,"auto_seat_climate_left":false,"auto_seat_climate_right":false,"auto_steering_wheel_heat":false,"battery_heater":false,"battery_heater_no_power":null,"bioweapon_mode":false,"cabin_overheat_protection":"FanOnly","cabin_overheat_protection_actively_cooling":false,"climate_keeper_mode":"off","cop_activation_temperature":"High","defrost_mode":0,"driver_temp_setting":19.5,"fan_status":0,"hvac_auto_request":"On","inside_temp":23.9,"is_auto_conditioning_on":false,"is_climate_on":false,"is_front_defroster_on":false,"is_preconditioning":false,"is_rear_defroster_on":false,"left_temp_direction":0,"max_avail_temp":28.0,"min_avail_temp":15.0,"outside_temp":22.0,"passenger_temp_setting":19.5,"remote_heater_control_enabled":false,"right_temp_direction":0,"seat_heater_left":0,"seat_heater_rear_center":0,"seat_heater_rear_left":0,"seat_heater_rear_right":0,"seat_heater_right":0,"side_mirror_heaters":false,"steering_wheel_heat_level":0,"steering_wheel_heater":false,"supports_fan_only_cabin_overheat_protection":true,"timestamp":1725986085764,"wiper_blade_heater":false},"drive_state":{"gps_as_of":1725986086,"heading":278,"latitude":55.757365,"longitude":13.368666,"native_latitude":55.757365,"native_location_supported":1,"native_longitude":13.368666,"native_type":"wgs","power":0,"shift_state":null,"speed":null,"timestamp":1725986085764},"gui_settings":{"gui_24_hour_time":true,"gui_charge_rate_units":"kW","gui_distance_units":"km/hr","gui_range_display":"Rated","gui_temperature_units":"C","gui_tirepressure_units":"Bar","show_range_units":false,"timestamp":1725986085764},"vehicle_config":{"aux_park_lamps":"Eu","badge_version":0,"can_accept_navigation_requests":true,"can_actuate_trunks":true,"car_special_type":"base","car_type":"modely","charge_port_type":"CCS","cop_user_set_temp_supported":false,"dashcam_clip_save_supported":true,"default_charge_to_max":false,"driver_assist":"TeslaAP3","ece_restrictions":true,"efficiency_package":"MY2020","eu_vehicle":true,"exterior_color":"MidnightSilver","exterior_trim":"Black","exterior_trim_override":"","has_air_suspension":false,"has_ludicrous_mode":false,"has_seat_cooling":false,"headlamp_type":"Global","interior_trim_type":"Black2","key_version":2,"motorized_charge_port":true,"paint_color_override":"","performance_package":"Base","plg":true,"pws":true,"rear_drive_unit":"PM216MOSFET","rear_seat_heaters":1,"rear_seat_type":0,"rhd":false,"roof_color":"RoofColorGlass","seat_type":null,"sentry_preview_supported":false,"spoiler_type":"None","sun_roof_installed":null,"supports_qr_pairing":false,"third_row_seats":"None","timestamp":1725986085764,"trim_badging":"74d","use_range_badging":true,"utc_offset":7200,"webcam_selfie_supported":true,"webcam_supported":true,"wheel_type":"Apollo19"},"vehicle_state":{"api_version":79,"autopark_state_v2":"ready","autopark_style":"dead_man","calendar_supported":true,"car_version":"2024.26.8 7c528851cb24","center_display_state":0,"dashcam_clip_save_available":true,"dashcam_state":"Recording","df":0,"dr":0,"fd_window":0,"feature_bitmask":"fbdffbff,65cbc7f","fp_window":0,"ft":0,"is_user_present":false,"last_autopark_error":"no_error","locked":true,"media_info":{"audio_volume":1.6667,"audio_volume_increment":0.333333,"audio_volume_max":10.333333,"media_playback_status":"Playing","now_playing_album":"","now_playing_artist":"","now_playing_duration":188000,"now_playing_elapsed":95000,"now_playing_source":"Spotify","now_playing_station":"","now_playing_title":""},"media_state":{"remote_control_enabled":true},"notifications_supported":true,"odometer":41049.020059,"parsed_calendar_supported":true,"pf":0,"pr":0,"rd_window":0,"remote_start":false,"remote_start_enabled":true,"remote_start_supported":true,"rp_window":0,"rt":0,"santa_mode":0,"sentry_mode":false,"sentry_mode_available":true,"service_mode":false,"service_mode_plus":false,"smart_summon_available":true,"software_update":{"download_perc":0,"expected_duration_sec":2700,"install_perc":1,"status":"","version":" "},"speed_limit_mode":{"active":false,"current_limit_mph":85.0,"max_limit_mph":120,"min_limit_mph":50.0,"pin_code_set":false},"summon_standby_mode_enabled":false,"timestamp":1725986085764,"tpms_hard_warning_fl":false,"tpms_hard_warning_fr":false,"tpms_hard_warning_rl":false,"tpms_hard_warning_rr":false,"tpms_last_seen_pressure_time_fl":1725976651,"tpms_last_seen_pressure_time_fr":1725976621,"tpms_last_seen_pressure_time_rl":1725976622,"tpms_last_seen_pressure_time_rr":1725976621,"tpms_pressure_fl":2.9,"tpms_pressure_fr":2.9,"tpms_pressure_rl":2.9,"tpms_pressure_rr":2.9,"tpms_rcp_front_value":2.9,"tpms_rcp_rear_value":2.9,"tpms_soft_warning_fl":false,"tpms_soft_warning_fr":false,"tpms_soft_warning_rl":false,"tpms_soft_warning_rr":false,"valet_mode":false,"valet_pin_needed":true,"vehicle_name":"Night Fury","vehicle_self_test_progress":0,"vehicle_self_test_requested":false,"webcam_available":false}}}
2024-09-10 18:34:47.451 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.286 seconds (success: True)
2024-09-10 18:34:47.463 DEBUG (MainThread) [custom_components.tesla_custom.select] Current setting for left is Off
2024-09-10 18:34:47.463 DEBUG (MainThread) [custom_components.tesla_custom.select] Current setting for right is Off
2024-09-10 18:34:47.464 DEBUG (MainThread) [custom_components.tesla_custom.select] Current setting for rear left is Off
2024-09-10 18:34:47.464 DEBUG (MainThread) [custom_components.tesla_custom.select] Current setting for rear center is Off
2024-09-10 18:34:47.464 DEBUG (MainThread) [custom_components.tesla_custom.select] Current setting for rear right is Off
2024-09-10 18:34:48.502 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-09-10 18:34:48.502 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 40 Interval 60
2024-09-10 18:34:48.502 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.001 seconds (success: True)
2024-09-10 18:34:50.593 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:10
2024-09-10 18:34:50.594 DEBUG (MainThread) [teslajsonpy.connection] post: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956/command/charge_port_door_open {}
2024-09-10 18:34:50.681 DEBUG (MainThread) [teslajsonpy.connection] 403: {"response":null,"error":"Tesla Vehicle Command Protocol required, please refer to the documentation here: https://developer.tesla.com/docs/fleet-api#2023-10-09-rest-api-vehicle-commands-endpoint-deprecation-warning","error_description":""}
2024-09-10 18:34:56.548 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:25:04
2024-09-10 18:34:56.549 DEBUG (MainThread) [teslajsonpy.connection] post: https://owner-api.teslamotors.com/api/1/vehicles/LRWYGCEK0MC116956/command/charge_port_door_open {}
2024-09-10 18:34:56.781 DEBUG (MainThread) [teslajsonpy.connection] 403: {"response":null,"error":"Tesla Vehicle Command Protocol required, please refer to the documentation here: https://developer.tesla.com/docs/fleet-api#2023-10-09-rest-api-vehicle-commands-endpoint-deprecation-warning","error_description":""}
2024-09-10 18:34:56.783 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [2444205768] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 245, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2761, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2804, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 996, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1068, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/tesla_custom/cover.py", line 52, in async_open_cover
    await self._car.charge_port_door_open()
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/car.py", line 848, in charge_port_door_open
    data = await self._send_command("CHARGE_PORT_DOOR_OPEN")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/car.py", line 785, in _send_command
    raise ex
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/car.py", line 770, in _send_command
    data = await self._controller.api(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/controller.py", line 1349, in api
    return await self.__post_with_retries(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 189, in async_wrapped
    return await copy(fn, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 111, in __call__
    do = await self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 153, in iter
    result = await action(retry_state)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/_utils.py", line 99, in inner
    return call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/__init__.py", line 418, in exc_check
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/__init__.py", line 185, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 114, in __call__
    result = await fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/controller.py", line 1390, in __post_with_retries
    return await self.__connection.post(command, method=method, data=data, url=url)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/connection.py", line 166, in post
    return await self.__open(url, method=method, headers=self.head, data=data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/teslajsonpy/connection.py", line 218, in __open
    raise TeslaException(resp.status_code)
teslajsonpy.exceptions.TeslaException
2024-09-10 18:34:57.166 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-09-10 18:34:57.166 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 48 Interval 60
2024-09-10 18:34:57.167 DEBUG (MainThread) [teslajsonpy.controller] 16956: offline. Polling policy: normal. Update state: trying_to_sleep. Since last park: 8889.523999929428. Since last wake up: 15. Idle interval: 600. shift_state: None sentry: False climate: False, charging: Disconnected
2024-09-10 18:34:57.167 DEBUG (MainThread) [teslajsonpy.controller] 16956: offline; Polling policy set to 'normal', trying to sleep; scan throttled to 660 seconds and will ignore updates for 650 seconds
2024-09-10 18:34:57.167 DEBUG (MainThread) [teslajsonpy.controller] 16956: Skipping update with state offline. Polling: True. Last update: 10 ago. Last parked: 8889.523999929428 ago. Last wake up 15 ago.
2024-09-10 18:34:57.167 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.002 seconds (success: True)
2024-09-10 18:34:58.501 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-09-10 18:34:58.501 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 50 Interval 60
2024-09-10 18:34:58.502 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.001 seconds (success: True)
2024-09-10 18:35:07.165 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-09-10 18:35:07.166 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 58 Interval 60
2024-09-10 18:35:07.166 DEBUG (MainThread) [teslajsonpy.controller] 16956: offline. Polling policy: normal. Update state: trying_to_sleep. Since last park: 8899.523999929428. Since last wake up: 25. Idle interval: 600. shift_state: None sentry: False climate: False, charging: Disconnected
2024-09-10 18:35:07.166 DEBUG (MainThread) [teslajsonpy.controller] 16956: offline; Polling policy set to 'normal', trying to sleep; scan throttled to 660 seconds and will ignore updates for 640 seconds
2024-09-10 18:35:07.167 DEBUG (MainThread) [teslajsonpy.controller] 16956: Skipping update with state offline. Polling: True. Last update: 20 ago. Last parked: 8899.523999929428 ago. Last wake up 25 ago.
2024-09-10 18:35:07.167 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.002 seconds (success: True)
2024-09-10 18:35:08.501 DEBUG (MainThread) [custom_components.tesla_custom] Running controller.update()
2024-09-10 18:35:08.501 DEBUG (MainThread) [teslajsonpy.controller] Get vehicles. Force: False Time: 60 Interval 60
2024-09-10 18:35:08.502 DEBUG (MainThread) [teslajsonpy.connection] Token expiration in 2:24:52
2024-09-10 18:35:08.503 DEBUG (MainThread) [teslajsonpy.connection] get: https://owner-api.teslamotors.com/api/1/products {}
2024-09-10 18:35:08.811 DEBUG (MainThread) [teslajsonpy.connection] 200: {"response":[{"id":930087024961184,"user_id":1689097377331612,"vehicle_id":1689093166316961,"vin":"LRWYGCEK0MC116956","color":null,"access_type":"OWNER","display_name":"Night Fury","option_codes":null,"cached_data":"EicKAgoAEgISABoCIgAqAhIAOgwInOqBtwYQwIX0sAHABgHQBgDgBgEaowEKAhIAmgICGgDiAgwInOqBtwYQgN+hnwHqAgIKAPICAPIJCAoCCgASABoAwAZQyAZQ0AYy2AZk6AYA8AYA/QZv6DFDhQezWjtDjQdv6DFDkAc9mAc9pQcK1w1CrQcAgBRDtQcAgBRDuAcCwAcQyAcA0AcA6AcA8AcA+AcAkAgAqAgBwAgAyAgQ0AgQoAkAqAkQwAkAyAkB0AkA5QkAAAAA+AkAIpcB8gECCgCKAgwInOqBtwYQwIX0sAGaAgIKAK0Gmpm9QbUGAACwQb0GAACcQcUGAACcQcgGANAGANgGAOAGAOgGAPAGAP0GAABwQYUHAADgQYgHAJAHAJgHAKAHAKgHANAHAOgHAPAHAPgHAIAIAIgIALAIAMAIAMgIANAIAOgIAfAIAfgIAoAJAJAJA5gJAKAJAbAJALgJBSoAMvcCkgICCgCyAhIKAgoAwAaMFcgGANAGAdoGASC6AgOoBgHaAgwInOqBtwYQgIqxsQHyAgIKAPoCAhoAugMJ//f/3g//+PIy0gMMCMuggbcGEID3l/MB2gMMCK2ggbcGEMD71PMB4gMMCK6ggbcGEMD71PMB6gMMCK2ggbcGEMD71PMBwgQAqAZP4gYidjEyIOKBpigyMDI0LjI2LjggN2M1Mjg4NTFjYjI0KeKBqbIHCk5pZ2h0IEZ1cnnABwHIBwHQBwGaCAhub19lcnJvcrgIAcAIAOgIAPAIAIAJAIgJAKAJAagJALAJAL0Jmpk5QMUJmpk5QM0Jmpk5QNUJmpk5QOAJAOgJAJAKAJgKAKAKAKgKALAKALgKAMAKAMgKANUKmpk5QN0Kmpk5QNgEAOAEAegEAfAEAPgEAIAFAIgFAJAFALgFAMgFAPAFAPgFAIgGBJAGAJgGAKIGHQgBFQAA8EIdAABIQiUAAKpCKAEwATgBQOQKSPABOv0BCgIKABID8gEAOgIqAEICCgBKAnoAWgIKAGICEgBqAjoAggECEgCKAQIKAJIBAioAmgECCgC6AQIiANoBDAic6oG3BhDAhfSwAeIBAjIA6gECKgDyAQISAIICAiIAigICMgCaAgIiALgGAcAGAMgGANAGAfAGAJAHAJgHAcAHAcgHAdAHAeAHAegHAvAHAbAIAMAIAcgIAdAIANgIAegIAfAIAfgIAYAJwHCICQCYCQGgCQCSCQCwCQHQCQLYCQDgCQHoCQHwCQD4CQCCChFMUldZR0NFSzBNQzExNjk1NpAKAZgKAKAKAegDALAKAbgKAcAKAcgKAdAKAOAKAEIASmN6AgoAmgECCgCyARi4BgDABgDVBgAA8ELdBgAASELlBgAAqkKCfQwInOqBtwYQwIX0sAGoBgCwBgC4BgDABgDIBgDQBgDYBgDgBgDoBgDwBgCIBwGQBwCgBwCoBwCwBwHABwFaPQgFEhvnpYudsm0MuIhUo27XG9+xrgLIqxAKDSy8F8QaHNLc0zd6IhR9LsroZrMg1jOz8mVGA/3SgLvCFB5akwEICBJxEpAZG1m69Yg32AzH1doaQJZfMXx0tReQdFfV+MlyiR/MgAH8iukk2B+X4W1yG2/2PGdhQNxSZxBg1BbvyE8TTO/8Q1qodFEsmAteIiPyl58ZbiKzarsYhNk5pvRWPiWUJWW4uqGK28UwOYayQNggdpMaHCTeUDrBmQ+O7QvGOe4aBismjH9rZnqPhQR7HeJaQgi4LxIf93XyPiZPKfd1iD1z8NW9qbSUUhmPPLahn+pi6EjTBRocqiBuixyDR+n9t8vCih/4lvJNriu3GRfa+riPvWIGd2FrZXVwojifBBKABEBXCITvYFPWaxfIIIl+AzfY36ySkHVDgDL2BzRTrWkN96XZ+hgxrZg7+XMKuxxURs4q1Jw8DrWGrM3C/TO3ja/n5t4LCPN/GhI9LPqULYOiqeiEt8lsXw/rfLTnfGx6nVv2mQkPmbJdCdpkrpvNQSa4GxyHuRjVmRJE+pDeY+6ZkFSbVBTOxJsTKg84KLhHudhCqIjbd5A4DAN7rZTybrzwbYJwdUs/q7gkow5ekkT850oWwyFe8mI0+AmKBpLnJfks3tbLa/Ey3NcWu22dklVBSHMZeRtlYo03GvSUWjFOoldxX6WB8vZyt80p8ZJ1rpI/Rd3atcAqtS5oP0NMD7ya6rtXrD71oWsS0OMtYMTdE6AHJu8niIbF1c3xfXtRVIPyZvm+4OhICe2MjGxb5KqDhBQuzxydJ4E8BkRQERFeE0TBPJIRXpFfjpAVu2FFq6EvYH7Shi4vSAlmPSvC2A020eKNZnNblGGs2ZniMn6bwUe7VDzQQfy6ZKkdkXGWxT8ZWBO8shXo9f5tXGQaqgc+zo7OpcDuDGbmyS4UjrWzbZfhFgpt28ojZ36aYDBEpN2iuP/qap69ag5aiEaCFgtXxCPogckTz52aiSBU6vpa7DYXqtOjHmlbUVvDBrDyieTZywjY/gEvJKvtAg4m3DknW1bDAXKrEVgqj1r/pxIZGgwI9qCNtwYQgPLVywMiDAiD7/6tBhDAyPCcAaI4nwQSgAR0lvfX/qfPINye7Ob1oKEF39Y0ifboBMXev9Uw475n2sJiGCDe1My+FJe5REUPMUoGYEueJNCxlK91mFW/cW+ix9POzaH91nNifKOJKHwK1/dyehGNLcXMXScfIOa++BBVCOAhgKoMJ0Fhz7QkPayl1CUPBLOTWaKCtCJLVuz3xgzU5z8gAdBS/tF2qy73qngThNaPUfEkTF7a6WbIN93A1hzKj0wlZM8QADnFZ/P1T5d2+uKEg5gZ7lI9zYQEWCYf6ysuZkztC36OIcw9YpGeKjrrdTOOVfDKgtCoK3SqGNKUnVCjNkTDC/4X9XAdxEa2Ll67TWLQH5U513AjKKOK7hS8WVj58A+mtL43pqCNRI86ZKih5Qol8RmEYOXh77IYP7157T3d5x5LCPlzOXnFPSuUV6VIA7PvDlIDYJCZvkCZDNmNObty0VlXomriX3NP+JEHCQfZ66w3VUNPT5uxhZm/8F3bzj1Yx2nn0WkI7mAu8eFc69JadMc9qRVRRcTt1j+zxdIfFEiyKxl6atrQNlWIKy+c6/kKQKUWnktsVLU57nYdx5sgSlZQZ95zfuBTuF+Daq/S4uN2zrEOuC4E+yL9AuxAy8PWpMJTRqAotJ4JvyvM8hBb/xOAo3HBszrVwLEMV6Dy/rEheWmqwe5CFLsPjLdstfIueds4UdbM4BoMCPagjbcGEIDy1csDIgwIk/+yrgYQwNzJhQO4PgE=","mobile_access_disabled":false,"granular_access":{"hide_private":false},"tokens":null,"state":"online","in_service":false,"id_s":"930087024961184","calendar_enabled":true,"api_version":79,"backseat_token":null,"backseat_token_updated_at":null,"ble_autopair_enrolled":false,"command_signing":"required","release_notes_supported":true}],"count":1}
2024-09-10 18:35:08.812 DEBUG (MainThread) [custom_components.tesla_custom] Finished fetching tesla_custom data in 0.312 seconds (success: True)

Anything else?
No response

In the error message it makes it clear you're not using the Fleet API and need to. Please read the documentation on setting it up and how to use it (linked in the tick box you marked you'd read)

In the error message it makes it clear you're not using the Fleet API and need to. Please read the documentation on setting it up and how to use it (linked in the tick box you marked you'd read)

The error is from when I click the charger door open icon in the Tesla Custom Integration page in Home Assistant.
Not sure how I can change and use the Fleet API?

Instructions are on the main readme here hopefully that should help you out

Perhaps we should add that to the attestation too.

Ok, will give it a try. I apologize for missing the instructions about the change from Tesla.

Oh no, I hadn't realised that I'd somehow added the wrong link 🤦♂
I'll fix that now


Update to ungoogled-chromium 119.0.6045.199

No modification aside from the submodule bump is needed.

Builds and runs fine locally.

[!NOTE]
This works fine with local environment LLVM (clang) 17.0.6, Xcode 15.0.1 and Python 3.12 (3.11? I made a mistake and I'll have to check again). But I do suspect that if the GitHub Action for build will work. I still recommend to try and see if there's a fix from Chromium side though (that Python error in #132 is caused by vanilla Chromium code). I'm still investigating that issue.

I still can't figure out how that bs4.FeatureNotFound (https://github.com/ungoogled-software/ungoogled-chromium-macos/pull/132#issuecomment-1834399414) issue was caused and no Chromium-relate issue reports/posts were found. Should we merge this and give it a go?

Extra info:
It is an issue caused by Chromium code, I seriously don't want to touch it unless necessary. The file that caused the issue haven't been changed by upstream for a few months, but there's other changes on that module, I don't know if it affects anything for now, still investigating the root cause.

/cc @PF4Public @networkException
I did a revert to Python 3.11 (following discussions in https://github.com/ungoogled-software/ungoogled-chromium-macos/pull/132#issuecomment-1837273873) as an attempt to solve the build issues we have now. I do think we should give it a go.
We'll see if things will be better when updating to v120 coming around.
(I actually didn't build on Python 3.12, I made some mistakes configuring Python on my local environment, it's on me, I'll test later again).

@downlz @Cubik65536 It is possible to manually publish binaries in ungoogled-chromium-binaries, but it would not make much sense doing so if you binaries are produced similarly as the ones produced via GitHub actions from this repository.


Adding pod-qos.md in french

This PR fixes: #40515
This PR translates pod-quos.md in French language

Looks good to me now. Would you like to do a third check @perriea?

/lgtm

/retest

@remyleone what's the command to relaunch tests ? /retest nope ...  /test all nope

/retest

@perriea I've used those commands before: https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md

@sftim @onlydole an idea ? Any command tested don't work :/

Prow doesn't let you trigger a rebuild I'm afraid.  The underlying issue is tracked as https://github.com/kubernetes/website/issues/35780

Prow doesn't let you trigger a rebuild I'm afraid.  The underlying issue is tracked as #35780

Thanks ! @ShivangShandilya can you re-push your latest commit ?

Prow doesn't let you trigger a rebuild I'm afraid.  The underlying issue is tracked as #35780

Thanks ! @ShivangShandilya can you re-push your latest commit ?

Done 😄

Hey @ShivangShandilya, netlify checks are still failing.. you need to re-push again.

I don't know why the checks are failing
If everything looks fine, let's merge this ASAP.
It's been open for a while now

/retest
/lgtm
/approve

@ShivangShandilya , this won't merge because checks are failing
Can squash your commits to one commit, update the commit message, then re-push. That should re-trigger the checks.

@ShivangShandilya Hey there, just checking that you've seen Rey's comment above about how to re-trigger the tests, that way this PR will merge as it has the appropriate approvals – thanks!

@ShivangShandilya Thank you for your contributions! Since there has been no activity on this PR in ~2 months, I will be closing this off. Please note that in case you wish to resume work on the PR, you can do so by reopening it & following Rey's comments earlier.
/close


Events - how can I call on slideChange

Hey man, how can I call slideChange event?

To give a more accurate answer, here is how you do this :
onSlideChange() {
  console.log('slide changed');
}

render () {
    const params = {
      on: {
        slideChange:this.onSlideChange
      }
    };

    return (
      <Swiper {...params}>
        ...
      </Swiper>
    )
}


Uninstall Script for curl Installations

Describe the bug
There is no clear nor straightforward way to uninstall zplug, if installed via the recommended option, which is curl. Most projects (e.g., Starship) provide accessible instructions to their users on how to uninstall the package from one's machine.
To Reproduce
Steps to reproduce the behavior:

Install zplug via the project-recommended option (i.e., curl)
Try to find any uninstaller script or md file in the projects' repos
Not found!
Unable to uninstall

Expected behavior
Provide an easy copy+paste command for an uninstall script in the same fashion as the installer repo.
Env (please complete the following information):

zplug version: 2.4.2
zsh --version: zsh 5.9 (x86_64-apple-darwin23.0)

Additional Comments
Any input is greatly appreciated, as I would like to uninstall this and am wary about reverse engineering the install script.

It seems to me like it might be overkill to write an installer script for what is literally:
rm -rf $ZPLUG_HOME
Or are you imagining that it would do more than that?

I opened the issue because there are similar projects that do indeed provide a simple uninstaller script. Typically, it's readily accessible in the README.md.
In the end, I did end up uninstalling it manually as you mention. In any event, thank you for your comment and for your help!