change modality in upload_manifest if fib is being run or not

Pull Request instructions:

Please follow the update protocol
Answer the questions below in detail. Your responses will be emailed to experimenters.
If the experimenters must do anything new, provide detailed step by step instructions on the wiki
If computer maintainers need to manually update anything, provide detailed step by step instructions
Use markdown syntax in order for your comments to be rendered reliably in the email: "1." instead of "1)", use four spaces for indents.
If you use the keyword "skip email" in the title, it will skip the email updates
Merges from "develop" into "production_testing" should use the keyword "production merge" in the title for reliable indexing of updates
Merges from "production_testing" into "main" should use the keyword "update main"

Describe changes:

Update the upload manifests to only list "fib" and "behavior-videos" if they are actually recorded in the session

What issues or discussions does this update address?

resolves #793

Describe the expected change in behavior from the perspective of the experimenter

none

Describe any manual update steps for task computers

none

Was this update tested in 446/447?

[ ] 446/7

Still unclear how behavior videos are being set to record in gui but for now, they are included if fib is being run

@micahwoodard I renamed the PR for future clarity


PHP 8.4: could not install imap

Describe the bug

Version

[ ] I have checked releases, and the bug exists in the latest patch version of v1 or v2.
[x] v2
[ ] v1

Runners

[x] GitHub Hosted
[ ] Self Hosted

Operating systems
ubuntu-latest
PHP versions
8.4.0-dev
To Reproduce

YML file: https://github.com/ddeboer/imap/blob/php_84/.github/workflows/ci.yaml#L63
Result: https://github.com/ddeboer/imap/actions/runs/11027077228/job/30624718688?pr=578#step:3:94

NOTE
imap extension has been unbundled from php-src and moved to PECL:

RFC: https://wiki.php.net/rfc/unbundle_imap_pspell_oci8
PR: https://github.com/php/php-src/pull/13190
PECL: https://pecl.php.net/package/imap

@Slamdunk The latest release on PECL is not compatible with PHP 8.4, once a new version is tagged it should start working
https://github.com/php/pecl-mail-imap/issues/12

@Slamdunk i have added the extension to build alongside PHP from the main branch for now. It should not fail anymore.
https://github.com/shivammathur/php-builder/commit/6f4cbbbce326d87297ba779f75953d6546cf320a

It works, thank you very much :muscle:


Inconsistent urllib3 version requirements between setup.py and init.py

With https://github.com/requests/requests/commit/ac944b7439009ffbf7a10dfee35202f1ac090e76 the maximum allowed version of urllib3 in setup.py was increased to 1.23.
However, in https://github.com/requests/requests/blob/master/requests/init.py#L57-L63 the version is still required to be <= 1.22.
This is a bug since the release of requests 1.23 yesterday: https://pypi.org/project/urllib3/#history
Expected Result
Installation of requests via pip should work with urllib3 version 1.23
Actual Result
e.g.
/usr/local/lib/python2.7/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.23) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
ContextualVersionConflict: urllib3 1.23

Reproduction Steps
pip install urllib3==1.23
pip install requests

import requests

Maybe #4669 should be reverted until urllib3 is fully supported.

It looks to me like it should suffice to simply change the __init__.py to allow v1.23 of urllib3, but I'm not sure since I have not tested it.

Just tested changing __init__.py:63: assert minor <= 22 to <= 23 and then tested with aurman -Syu to see if the error came back.
There's no error anymore, however I'm not sure if just simply incrementing that value could cause errors further down the road.

Hey everyone, to be clear this isn't a bug but rather a specific design decision. We cannot guarantee support for new releases of urllib3 before they've been tested with the Requests code base. In the event of a new release we haven't tested you will see a warning message informing you about the issue.
We are currently slated to release Requests 2.19 in the next week or two which will move the warning pin. Our standard procedure is to wait a week or so and see if any major bugs are raised in urllib3's new release. Things will continue to work fine with 1.22 in the meantime.

My program relied on stdout output, and requests warning broke it. Good to know that issue is known and will be fixed soon :)

I totally understand the motivation of this design decision to generate warnings on untested urllib3 versions... but this behavior is definitely breaking in some cases (and not just a warning).
Simple test case; create a distribution with an entry_point. For example:
#!/usr/bin/env python
from setuptools import find_packages, setup

setup(
    name="test",
    version="0.1.0",
    packages=find_packages(),
    install_requires=[
        "requests==2.18.4",
        "urllib3==1.23",
    ],
    entry_points={
        "example": [
            # it doesn't if test.foo resolves
            "foo = test.foo",
        ],
    },
)

Create a test program that resolves this entry point (we don't even have to load it):
#!/usr/bin/env python
from pkg_resources import iter_entry_points

for entry_point in iter_entry_points(group="example"):
    entry_point.require()

Then install the distribution:
python3 -m venv test
source test/bin/activate
pip install -U -e

This works fine. Even though we have version conflicts, pip lets us continue.
But then try to ask setuptools to resolve the entry point:
> python3 ./test.py
Traceback (most recent call last):
  File "./test.py", line 6, in <module>
    entry_point.require()
  File "/private/tmp/test/test/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2346, in require
    items = working_set.resolve(reqs, env, installer, extras=self.extras)
  File "/private/tmp/test/test/lib/python3.6/site-packages/pkg_resources/__init__.py", line 783, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (urllib3 1.23 (/private/tmp/test/test/lib/python3.6/site-packages), Requirement.parse('urllib3<1.23,>=1.21.1'), {'requests'})

TL/DR; putting an upper bound on urllib3 versions is breaking for any application that uses entry points in this way and "happens" to upgrade dependencies. That might be your intention, but this behavior definitely goes beyond "warnings" and definitely breaks some workflows (e.g. ours).

Hi @jessemyers, thanks for taking the time to present your case. While we definitely want to be sensitive to breaking anyone's code, I'm not sure this constitutes as "breaking". At least not any more so than choosing to pass an invalid parameter to a function is breaking.
We haven't changed anything about the requirements with Requests 2.18.4. They state Requests requires a urllib3 version between 1.21.1 and 1.22.x to function as expected. Having an upper bound pin isn't an uncommon occurrence in libraries for compatibility purposes.
The example provided is a case of a user choosing to change input parameters (by specifying a hard requirement for a non-compatible version) and pkg_resources correctly failing because the given requirements aren't compatible. When you call require on an EntryPoint, you're invoking a specific contract to resolve the extras associated with it, and in turn, resolve the top level requirements as well. No code in Requests is breaking at this point, so I'm not sure we can do much about that for a general case. The same thing would happen if you chose to install urllib3==1.20 or any other two conflicting packages with any library.
The reason pip doesn't fail in this case is because it doesn't have an internal resolver, which is being tracked in pypa/pip#988.

Thanks for the prompt response @nateprewitt
My primary point was that pinning an upper bound on a dependency version goes beyond "a warning message" as was described above in your explanation of policy.
To be more specific, we use the following workflow:

Release all of our software on a regular cadence (currently: weekly)
As part of the release process, create release branches in which dependencies are frozen to the last known good version, unless explicitly changed
As part of our regular (non-release) process, resolve all dependencies to the most recent version compatible with pip unless explicitly forbidden

This workflow works very well in practice as it means we have stable, reproducible releases and stay on top of the latest changes to all of our dependencies. It obviously does not prevent several of our dependencies introducing conflicting transitive dependencies. We are quite used to addressing this sort of error across many tens of applications at once, but that doesn't mean that it is a pleasant experience. (And we see this sort of error most frequently with requests)
From our point of view, any library that pins a version upper bound for a common library can be breaking. We don't seriously expect every (any?) open source project to adapt to our needs here, though we would certainly encourage anyone who will listen to rely on functional tests instead of version upper bounds to prevent regressions.
TL/DR  I completely understand that our preference is not your policy. I hope you understand why we see pinned version upper bounds as something more serious than a "warning".

Good to see this is getting fixed soon, but I'm wondering about one thing. If the init.py defines that version 1.21.1 or 1.22.x is required, why does setup.py basically say 1.23.x is ok as well? Shouldn't that say <1.23 then instead of <1.24?
Some of our code relied on stdout, we caught this in our test environment now, but it took a while to debug because the DependencyWarning didn't mention which version it depends on, so naturally I checked setup.py to confirm we had the right version, which we seemed to have. Maybe include the version the check_compatibility function checks for in the DependencyWarning?

@teuneboon, we have all of our individual releases tagged (2.18.4) so you can see the state of the code at that point, or look at it locally in site-packages where it's installed.
We can definitely look at making the exception message clearer, since there may not be an immediately obvious way to determine how to fix the conflict.

To be clear, @jessemyers our position is the following:

Requests is critical infrastructure for many projects and the larger Python community (pip, pipenv, twine, and so many other core workflows rely on it).

urllib3 has the right to make minorly breaking changes to itself in between releases. Requests digs into urllib3 in certain places for certain workflows. Given that, we have to ensure things don't break when a new version of urllib3 came out, and we no longer vendor urllib3 into Requests, we need to be certain that the rest of the world won't burst into flames.

No software can guarantee future proof compatibility. We're very explicitly stating what we support. We could leave the upper bound off but we'd be implicitly supporting everything urllib3 releases. And when that would break, it would inevitably end up with us being painted as the worst people in the world.
Furthermore, there are two of us working on this project actively and both of us have very little time to keep up with other projects' release schedules. The most honest way we can communicate what we are capable of supporting at a given time is with these version constraints. We're far from the only open source project to take this stance. It would seem, then, that the more projects your project(s) use, the more they will encounter this and the more you will need to take a more measured approach to upgrading your dependencies.
That would be easier if there was a real dependency resolver in pip, but I don't think we should compromise the stability of the project because there isn't a real dependency resolver in pip.

@nateprewitt it seems like the timing we upgraded our packages in was unfortunate, and the issues we had didn't have anything to do with requests in the end. When I saw that our code was giving warnings about dependencies of requests and I went to the Github issues page and I saw this issue I (wrongly) assumed this was our issue as well(and I checked the master branch instead of the tagged release which made the confusion greater).
In the end we only had an issue with pip dependency resolving and the order in which we installed packages which gave us urllib 1.23 for requests 2.18.4.
Making the warning clearer would be great though, thanks!

Another issue with this upper-version-bound pin is that it causes services like @requires to generate pull requests that fail tests, since they upgrade urllib3 in downstream requires.txt files even though requests may not be ready for it.  Arguably this is a bug in @requires and it should have its own sat solver to generate the most recent possible viable set of versions, but practically speaking it can block security updates on other projects trying to use modern tooling.

practically speaking it can block security updates on other projects trying to use modern tooling.

Can you explain a bit more about this? Do you mean that the update for urllib3 is being included in a batch of other updates in the same PR and that's blocking those somehow?

Alright, 2.19.0 is out the door! Closing this out since it should be resolved now.

Thank you again to @nateprewitt and @sigmavirus24 for the careful balancing act here, both in navigating the updates to urllib3 without vendoring and for your community support here.

Sometimes it's because of (for example) Kaspersky... Turn it off, and pip install the package

Seems like this issue broke installation of awscli

Also has been experiencing this with awsebcli on my CircleCI instances since 2-3 weeks ago. Upgrading pip and requests before installing awsebcli solved the issue.
Here’s what my CI script was doing before:
sudo apt-get update && sudo apt-get install -y python-pip python-dev build-essential
pip install awsebcli --user

Here’s what it’s doing now:
sudo apt-get update && sudo apt-get install -y python-pip python-dev build-essential
export PATH=~/.local/bin:$PATH
sudo pip install --upgrade pip
sudo pip install --upgrade requests
pip install awsebcli --upgrade --user

Here's how I solved it yesterday:
pip install --upgrade "urllib3==1.22" awscli awsebcli


Change the PlayerList title

This PR expands on #729. All it does is change to use the player's display name in the player list header.

If I'm not mistaken, contributors may not have a UUID. You would want to use their name in that case. Also, we may want to consider making the getName method part of a util class as it likely can have many other users.

Yes, a UUID does not have to be defined, however if one is not defined then that name will not get any recognition so they can just be given a cyan name

@iEli2tyree011 @CaptainElliott Done!

@iEli2tyree011 @CaptainElliott Done!

@dentmaged neat!

going to merge?

@iEli2tyree011 Done!

@dentmaged Looks good, thanks!


Add JsDoc for Class Contact

#73
#252
use JsDoc to generate contact doc here.
Doc: Contact

@zixia
done all of your request.

@memberOf  removed  all @memberOf
example:
You are right, maybe I'm too familiar with Wechaty, so I add examples for all API functions.

No, you are not done.
Please mark all my reviews as resolved after you confirmed it is resolved.
I noticed that there has some reviews you did not reply/react.

How about this time?

I don't know.

I thought I used wrong git command...
I should use git rm –cached instead of git rm to delete index instead of delete both index and the file.
But I thoug your bot can generate the docs automatically.

I'm not sure which haven't done....

1.you leave one un-resolved review.
2.you should not commit the file docs/index.md. this time you still commit it, with worse behaviour: deleted it. I need your PR only include one file modification instead of two.

I have replyed your example review
I have recovered file I deleted

So could you tell me more?
Thanks.

Last time you leave this review unresolved:

So how should I resolve this review now ....

done  fulfill all the return type for functions...
But I'm not sure whether I have resolved the example review...
Could you tell me?
Thanks

You still leave one review unresolved.
But it's ok, I'll merge this PR now.

BTW: there's a bug that causing the unit test failed, it seems related to the PR from you recently.
Please have a look when you have time. Thanks.

Could you tell me how to resolve the review?
Thanks

I do not know because I can not see your account.


[Issue] X Free API version no longer compatible

Following Elon Musk's acquisition of X (formerly Twitter), the X Free API version is no longer compatible with this solution. The Basic tier, a paid subscription, is now the most affordable option that supports this solution. Unaware of this change, we initially tried to integrate using the Free API tier, which caused our Apache Flink service to enter an errored state. It took some time to realize that we needed to force-stop and restart the service. This situation highlights two potential areas for improvement:

Ensure compatibility of this solution with the free X API tier.
Update the documentation to clearly explain how to debug and restart the Apache Flink service, and/or modify the Flink service to fail more gracefully, so that even when invalid data is pushed, it doesn't go into a failed state and can continue responding to subsequent valid requests.

Hi David!  Yes, With X changing their API terms, you need to have at least the Basic API in order to pull tweets.  We will be updating the job soon, so its able to recover from receiving credentials from the free tier.
For your first point. This solution wont work with the Free X Api tier, as that doesnt allow you to pull tweets.


feat: add media mount for portainer

I use portainer to run Channels DVR, which requires access to my mounted media folders.

Hi, are you sure it works that way? Shouldn't you map the media mount in the container that you are starting? By mapping /media here, it will be accessible from within the portainer container but not from within the others containers that you could start with it. Thanks for the confirmation!

@alexbelgium Thank you for the explanation! I hadn't tested because I assumed /media wouldn't be available to mount in portainer containers without this change. I confirmed that you are correct and this change isn't necessary - please disregard.


Interactive options does not load environment list

When you open Tools, Options, Python Tools, Interactive Windows the list of interpreters is not filled. You have to go to Environment Options for it to load.

Only affects VS 2015 - apparently VS 2013 eagerly loads settings for all pages.


kube-state-metrics do not show up in GMP

Hi,
I've set up the kube-state-metrics exporter as shown here: https://cloud.google.com/stackdriver/docs/managed-prometheus/exporters
It's working; if I port-forward to it and check /metrics, there's plenty there.
However, none of these metrics are showing up in GMP.
I've set up node-exporter the same way, and all those are visible in GMP.
How can I start debugging this?

Hi @pbnsilva,
We're working on surfacing this information better to users.
In the meantime. you can try the following:
# Get the NODE where KSM pod is deployed.
kubectl get po -lapp.kubernetes.io/name=kube-state-metrics -A -owide
# Find the co-located collector pod name.
kubectl describe node <NODE_NAME> | grep collector
# Port-forward the collector's web UI.
kubectl port-forward <COLLECTOR_POD> -ngmp-system 19090
# In a browser, navigate to http://localhost:19090/targets and check if there are any connection issues.

Ah, in fact that collector pod is crashing due to authentication issues:
ts=2022-09-26T08:57:09.647Z caller=web.go:541 level=info component=web msg="Start listening for connections" address=:19090
ts=2022-09-26T08:57:09.648Z caller=main.go:828 level=error msg="Unable to init Google Cloud Monitoring exporter" err="create metric client: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information."

Ah yea - we have docs for running managed collection outside of GKE. Let us know how it goes!
Closing.

I do have all that set up. Is the collector just meant to get the credentials from the operator?

Yep


[clipper2] update to 1.2.2

Library name
Clipper2
New version number
1.2.2
Other information that may be useful (release notes, etc...)
No response

clipper2 is already 1.2.2 in vcpkg. Did you forget to pull the latest commits?
https://github.com/microsoft/vcpkg/blob/4a600e9fea71bd7872080cbb716797e04d30e6d3/ports/clipper2/vcpkg.json#L2-L6

Duplicate of #32713.


[SyntaxParser] Split definition of C data types into separate file

Companion of https://github.com/apple/swift-syntax/pull/309

To split the SwiftSyntax library into two modules – SwiftSyntax with no dependency on _InternalSwiftSyntaxParser.dylib and SwiftSyntaxParser which generates a SwiftSyntax tree using _InternalSwiftSyntaxParser.dylib – we need to copy the definition of the C types into the SwiftSyntax repository. To make sure the two match, move the duplicated types into their own file. That way, we can compare them in SwiftSyntax’s build script and thus make sure their definitions are the same.

https://github.com/apple/swift-syntax/pull/309
@swift-ci Please smoke test


remove glide files & update travis-ci for go mod

Since we have added go module support with #168 the glide files
are no longer needed to manage vendor.
Also added travis-ci build matrix for go v1.11 and v1.12 with
GO111MODULE set 'on' and 'off'.
Change-Id: Iec4108e50c557904f31a60a412d644332a039425

@zshi-redhat  Should we remove the glide files or keep them? As mentioned in #160 there seem to be issues with adding kubernetes device manager api dependencies using go mod vendor.
Then again keeping both glide and go mod to manage the vendor may result in conflicts.

@zshi-redhat Should we remove the glide files or keep them? As mentioned in #160 there seem to be issues with adding kubernetes device manager api dependencies using go mod vendor.
Then again keeping both glide and go mod to manage the vendor may result in conflicts.

Yes, I think we should use either glide or go mode to manage the vendor.
We changed to use go mod in #168 which updated all vendor pkgs, if move back to glide, then we will need to revert vendor pkg back to previous state using glide.
Re the issue in #160, it seems a problem of kubernetes pkg, not go mod. I'd say let's track that issue in https://github.com/kubernetes/kubernetes/issues/82437. If we want to have a version that supports NUMA for testing, would it be good to create a separate development branch to hold that patch?

/hold

Closing this PR as this has been resolved by #225


KAFKA-7261: Fix request total metric to count requests instead of bytes

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@junrao @vvcephei Thanks for the reviews, merging to trunk, 2.0, 1.1 and 1.0.


Lower to stateful rng via stateless

Convert from stateful to some instance of stateless. Arbitrarily picked one especially since this op is mostly deprecated. Can be changed to another variant.
Related to #13686.

(btw I expect this to fail, need to update hardcoded rng values in test given this isn't using same seed or algo but reusing one of the HLO ones, locally having some issues running all tests so prefetching while I reset build dir)

This fails with
iree-check-module: iree/runtime/src/iree/task/submission.c:49: void iree_task_submission_enqueue(iree_task_submission_t *, iree_task_t *): Assertion `!!(iree_task_is_ready(task))' failed.

if Util/Transforms/SimplifyGlobalAccesses.cpp is run.

Ooo, I could believe there being bugs in there - it's ancient code and definitely hasn't kept up with the increasing program complexity. I can take a look on monday if you don't see anything stand out - could you post the input IR (or is it just the test in this PR?)?

Ooo, I could believe there being bugs in there - it's ancient code and definitely hasn't kept up with the increasing program complexity. I can take a look on monday if you don't see anything stand out - could you post the input IR (or is it just the test in this PR?)?

Thanks (sorry just noticed)
  ml_program.global private mutable @global_hlo_rng_state(dense<[12, 34, 56, 78]> : tensor<4xi32>) : tensor<4xi32>
  func.func @rng_uniform_1d() {
    %0 = stablehlo.constant dense<1.000000e+00> : tensor<10xf32>
    %1 = stablehlo.constant dense<1073741823> : tensor<10xi32>
    %cst = arith.constant dense<[8.29370975, 9.071370e+00, 6.278500e+00, 8.1542797, 5.856220e+00, 6.706650e+00, 9.646800e+00, 7.034950e+00, 6.207950e+00, 5.307990e+00]> : tensor<10xf32>
    %cst_0 = arith.constant dense<10> : tensor<1xi32>
    %cst_1 = arith.constant dense<1.000000e+01> : tensor<f32>
    %cst_2 = arith.constant dense<5.000000e+00> : tensor<f32>
    %2 = util.optimization_barrier %cst_2 : tensor<f32>
    %3 = util.optimization_barrier %cst_1 : tensor<f32>
    %4 = util.optimization_barrier %cst_0 : tensor<1xi32>
    %5 = ml_program.global_load @global_hlo_rng_state : tensor<4xi32>
    %output_state, %output = stablehlo.rng_bit_generator %5, algorithm =  THREE_FRY : (tensor<4xi32>) -> (tensor<4xi32>, tensor<10xi32>)
    %6 = stablehlo.bitcast_convert %0 : (tensor<10xf32>) -> tensor<10xi32>
    %7 = stablehlo.or %output, %6 : tensor<10xi32>
    %8 = stablehlo.and %7, %1 : tensor<10xi32>
    %9 = stablehlo.bitcast_convert %8 : (tensor<10xi32>) -> tensor<10xf32>
    %10 = stablehlo.subtract %9, %0 : tensor<10xf32>
    %11 = stablehlo.subtract %3, %2 : tensor<f32>
    %12 = chlo.broadcast_multiply %10, %11 : (tensor<10xf32>, tensor<f32>) -> tensor<10xf32>
    %13 = chlo.broadcast_add %12, %2 : (tensor<10xf32>, tensor<f32>) -> tensor<10xf32>
    ml_program.global_store @global_hlo_rng_state = %output_state : tensor<4xi32>
    %15 = ml_program.global_load @global_hlo_rng_state : tensor<4xi32>
    check.expect_almost_eq(%13, %cst) : tensor<10xf32>
    return
  }

and built with
ninja iree-compile iree-check-module && ./tools/iree-compile /tmp/t1.mlir --iree-hal-target-backends=llvm-cpu -o t1.vmfb && ./tools/iree-check-module --module=t1.vmfb "--device=local-task"

I don't think the computations particularly matter, I was going to break it down further still.

you may want to rebase (this predates the torch-mlir submodule change which makes it tricky to work with x_x)

Done

Oh and my example above doesn't require this change.

doh, well then :P thanks for rebasing anyway!

(the IR this lowers to is horrendous - if any model is relying on this someone will definitely need to look into how to un-fsck it)

This may be a shutdown issue - there's still async work in-flight but nothing is ever waiting for it to finish so the iree-check-module main thread starts tearing things down too early. This may be a non-trivial fix but is important (though I don't expect many real programs to ever hit this case - this test and the way stateful rng is being decomposed into half host/half device ops is weird).

Nevermind, the task assert seems unrelated to shutdown and I have a fix - the test fails anyway, though:
D:\Dev\iree\runtime\src\iree\modules\check\module.cc(351): error: Failed
Expected near equality of these values. Contents does not match.
  lhs:
    10xf32=0 0 0 0 0 0 0 0 0 0
  rhs:
    10xf32=8.29371 9.07137 6.2785 8.15428 5.85622 6.70665 9.6468 7.03495 6.20795 5.30799

What I noticed is that removing the store changes values returned. So this is probably not only one :)

actually #14950 does make this test pass (fiddled with it) but I was rushing and am not sure it's the right fix - I'm AFK for the day but will spend more time digging into things in the morning.

After Ben's change the assert is gone, and making progress, now only different executional results: with --iree-flow-trace-dispatch-tensors I get one set of results produced without another. Without
Expected near equality of these values. Contents does not match.
  lhs:
    2x2x2xf32=[[-10 -10][-10 -10]][[-10 -10][-10 -10]]
  rhs:
    2x2x2xf32=[[3.04814 8.18679][-1.74598 3.39266]][[-6.91349 -1.77484][8.29239 -6.56897]]

with
Expected near equality of these values. Contents does not match.
  lhs:
    2x2x2xf32=[[3.17482 -4.88602][-6.57512 8.58719]][[6.28547 2.6171][-3.1734 -1.86021]]
  rhs:
    2x2x2xf32=[[3.04814 8.18679][-1.74598 3.39266]][[-6.91349 -1.77484][8.29239 -6.56897]]

The numerical issue appears to be blocked by https://github.com/openxla/iree/issues/15007

The numerical issue appears to be blocked by #15007

Confirmed disabling that pass results in expected values (I'll update a few more of the tests)


Issues with ESPHome 2023.07 update

Bug report
Describe the bug
Cannot update after ESPHome 2023.07. It seems that the new version brought changes that prevents updates (to Ulanzi). This seems to evolve around the font-handling.
Logs
In file included from src/esphome.h:25,
                 from src/esphome/components/ehmtxv2/EHMTX_icons.cpp:1:
src/esphome/components/ehmtxv2/EHMTX.h:95:14: error: 'Font' in namespace 'esphome::display' does not name a type
     display::Font *default_font;
              ^~~~
src/esphome/components/ehmtxv2/EHMTX.h:96:14: error: 'Font' in namespace 'esphome::display' does not name a type
     display::Font *special_font;
              ^~~~
src/esphome/components/ehmtxv2/EHMTX.h:150:36: error: 'esphome::display::Font' has not been declared
     void set_default_font(display::Font *font);
                                    ^~~~
src/esphome/components/ehmtxv2/EHMTX.h:151:36: error: 'esphome::display::Font' has not been declared
     void set_special_font(display::Font *font);
                                    ^~~~
src/esphome/components/ehmtxv2/EHMTX.h:267:3: error: expected class-name before '{' token
   {
   ^
src/esphome/components/ehmtxv2/EHMTX.h:272:107: error: 'esphome::display::ImageType' has not been declared
     EHMTX_Icon(const uint8_t *data_start, int width, int height, uint32_t animation_frame_count, display::ImageType type, std::string icon_name, bool revers, uint16_t frame_duration);
                                                                                ^~~~~~~~~
In file included from src/esphome.h:25,
                 from src/esphome/components/ehmtxv2/EHMTX.cpp:1:
src/esphome/components/ehmtxv2/EHMTX.h:95:14: error: 'Font' in namespace 'esphome::display' does not name a type
     display::Font *default_font;
              ^~~~
src/esphome/components/ehmtxv2/EHMTX.h:96:14: error: 'Font' in namespace 'esphome::display' does not name a type
     display::Font *special_font;
              ^~~~
src/esphome/components/ehmtxv2/EHMTX.h:150:36: error: 'esphome::display::Font' has not been declared
     void set_default_font(display::Font *font);
                                    ^~~~
src/esphome/components/ehmtxv2/EHMTX.h:151:36: error: 'esphome::display::Font' has not been declared
     void set_special_font(display::Font *font);
                                    ^~~~
src/esphome/components/ehmtxv2/EHMTX.h:267:3: error: expected class-name before '{' token
   {
   ^
src/esphome/components/ehmtxv2/EHMTX.h:272:107: error: 'esphome::display::ImageType' has not been declared
     EHMTX_Icon(const uint8_t *data_start, int width, int height, uint32_t animation_frame_count, display::ImageType type, std::string icon_name, bool revers, uint16_t frame_duration);
                                                                                ^~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX_icons.cpp:6:117: error: 'esphome::display::ImageType' has not been declared
   EHMTX_Icon::EHMTX_Icon(const uint8_t *data_start, int width, int height, uint32_t animation_frame_count, display::ImageType type, std::string icon_name, bool revers, uint16_t frame_duration)
                                                                                ^~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX_icons.cpp: In constructor 'esphome::EHMTX_Icon::EHMTX_Icon(const uint8_t*, int, int, uint32_t, int, std::__cxx11::string, bool, uint16_t)':
src/esphome/components/ehmtxv2/EHMTX_icons.cpp:7:9: error: class 'esphome::EHMTX_Icon' does not have any field named 'Animation'
       : Animation(data_start, width, height, animation_frame_count, type)
         ^~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX_icons.cpp: In member function 'void esphome::EHMTX_Icon::next_frame()':
src/esphome/components/ehmtxv2/EHMTX_icons.cpp:17:15: error: 'class esphome::EHMTX_Icon' has no member named 'get_animation_frame_count'
     if (this->get_animation_frame_count() > 1)
               ^~~~~~~~~~~~~~~~~~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX_icons.cpp:21:37: error: 'class esphome::EHMTX_Icon' has no member named 'get_current_frame'
         if (this->reverse && (this->get_current_frame() == this->get_animation_frame_count() - 2))
                                     ^~~~~~~~~~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX_icons.cpp:21:66: error: 'class esphome::EHMTX_Icon' has no member named 'get_animation_frame_count'
         if (this->reverse && (this->get_current_frame() == this->get_animation_frame_count() - 2))
                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX_icons.cpp:25:9: error: 'Animation' has not been declared
         Animation::next_frame();
         ^~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX_icons.cpp:29:19: error: 'class esphome::EHMTX_Icon' has no member named 'get_current_frame'
         if (this->get_current_frame() == 1) // this->get_animation_frame_count())
                   ^~~~~~~~~~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX_icons.cpp:33:9: error: 'Animation' has not been declared
         Animation::prev_frame();
         ^~~~~~~~~
src/esphome/components/ehmtxv2/EHMTX.cpp: In member function 'void esphome::EHMTX::tick()':
src/esphome/components/ehmtxv2/EHMTX.cpp:581:67: error: 'class esphome::EHMTX_Icon' has no member named 'set_frame'; did you mean 'next_frame'?
             this->icons[this->queue[this->screen_pointer]->icon]->set_frame(0);
                                                                   ^~~~~~~~~
                                                                   next_frame
src/esphome/components/ehmtxv2/EHMTX.cpp: At global scope:
src/esphome/components/ehmtxv2/EHMTX.cpp:677:41: error: variable or field 'set_default_font' declared void
   void EHMTX::set_default_font(display::Font *font)
                                         ^~~~
src/esphome/components/ehmtxv2/EHMTX.cpp:677:41: error: 'Font' is not a member of 'esphome::display'
src/esphome/components/ehmtxv2/EHMTX.cpp:677:41: note: suggested alternative:
In file included from src/esphome.h:28,
                 from src/esphome/components/ehmtxv2/EHMTX.cpp:1:
src/esphome/components/font/font.h:41:7: note:   'esphome::font::Font'
 class Font : public display::BaseFont {
       ^~~~
src/esphome/components/ehmtxv2/EHMTX.cpp:677:51: error: expected primary-expression before ')' token
   void EHMTX::set_default_font(display::Font *font)
                                                   ^
src/esphome/components/ehmtxv2/EHMTX.cpp:682:41: error: variable or field 'set_special_font' declared void
   void EHMTX::set_special_font(display::Font *font)
                                         ^~~~
src/esphome/components/ehmtxv2/EHMTX.cpp:682:41: error: 'Font' is not a member of 'esphome::display'
src/esphome/components/ehmtxv2/EHMTX.cpp:682:41: note: suggested alternative:
In file included from src/esphome.h:28,
                 from src/esphome/components/ehmtxv2/EHMTX.cpp:1:
src/esphome/components/font/font.h:41:7: note:   'esphome::font::Font'
 class Font : public display::BaseFont {
       ^~~~
src/esphome/components/ehmtxv2/EHMTX.cpp:682:51: error: expected primary-expression before ')' token
   void EHMTX::set_special_font(display::Font *font)
                                                   ^
*** [/data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX_icons.cpp.o] Error 1
*** [/data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX.cpp.o] Error 1

Thanks!

same issue here. In the 2023.7.0 esphome changelog there are breaking changes regarding Fonts

Yes, there are even more breaking changes in esphome 2023.7.0 that are not mentioned. I have to investigate

Looking for helpl here:
https://discord.com/channels/429907082951524364/524177279270780928/1131268742815436920

Also having compilation problem
Compiling /data/ulanzi/.pioenvs/ulanzi/src/esphome/components/homeassistant/time/homeassistant_time.cpp.o
In file included from src/esphome.h:25,
                 from src/esphome/components/ehmtxv2/EHMTX_icons.cpp:1:
src/esphome/components/ehmtxv2/EHMTX.h:5:10: fatal error: esphome/components/animation/animation.h: No such file or directory
 #include "esphome/components/animation/animation.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [/data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX_icons.cpp.o] Error 1
In file included from src/esphome.h:25,
                 from src/esphome/components/ehmtxv2/EHMTX.cpp:1:
src/esphome/components/ehmtxv2/EHMTX.h:5:10: fatal error: esphome/components/animation/animation.h: No such file or directory
 #include "esphome/components/animation/animation.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [/data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX.cpp.o] Error 1
In file included from src/esphome.h:25,
                 from src/esphome/components/ehmtxv2/EHMTX_queue.cpp:1:
src/esphome/components/ehmtxv2/EHMTX.h:5:10: fatal error: esphome/components/animation/animation.h: No such file or directory
 #include "esphome/components/animation/animation.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [/data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX_queue.cpp.o] Error 1
========================== [FAILED]

Also having compilation problem

@idodov You can work around this by bringing in an animation (which itself requires image apparently):
animation:
  - id: animation_black
    file: "black.gif"

image:
  - id: image_black
    file: "black.gif"

black.gif is just an 1x1 black gif located in the esphome config folder (along side the esphome device yaml file). The graphic only consumes 1 byte of data + the object so I'd guess it's <250 bytes of flash that's consumed for this part (in addition to whatever size the animation & image code is).
This is a work around - it should be a dynamic dependency of the component instead but I don't see how to do that yet.

Also having compilation problem

@idodov You can work around this by bringing in an animation (which itself requires image apparently):
animation:
  - id: animation_black
    file: "black.gif"

image:
  - id: image_black
    file: "black.gif"

black.gif is just an 1x1 black gif located in the esphome config folder (along side the esphome device yaml file). The graphic only consumes 1 byte of data + the object so I'd guess it's <250 bytes of flash that's consumed for this part (in addition to whatever size the animation & image code is).
This is a work around - it should be a dynamic dependency of the component instead but I don't see how to do that yet.
@jfurtner , Where in the yaml file I need to add those lines?

I had no black.gif in esphome folder. That's why I quickly made a 1x1 gif in black via the site: https://onlinegiftools.com/create-1x1-pixel-gif
I put the code part under the font block.

@jfurtner Thanks, that is what I just found out.  Only components that are referenced in the yaml are included in the compile part. Since i use animation only internally, it isn't included and the compiler error is "correct".
I am searching for a way to tweak the code generation from the yaml.

@jfurtner @candyman2903 Thank you very much! Problem sovled.

@jfurtner @candyman2903 Thank you very much! Problem sovled.

This is no solution, it's only a workaround!!!!
Issues in esphome around "my" problem:
https://github.com/esphome/issues/issues/4726 and https://github.com/esphome/issues/issues/4719

There are some other projects that suffer from this breaking change, e.g. https://github.com/esphome/issues/issues/4720
For now there is no solution but a workaround.

Fixed it for me!

wget https://upload.wikimedia.org/wikipedia/commons/e/ed/Pix.gif && mv Pix.gif black.gif

in your config folder

@clfberlin ever found a solution to the font issue? Having the exact same issue, skipping ESPhome updates since 2023.6.5

Hi @RikMuilwijk - The workround mentioned above worked for me.
Generate a 1x1px black pixel, place it in /config/esphome and add to the YAML file
animation:
  - id: animation_black
    file: "black.gif"
display:
  ...
ehmtxv2:
  ...
font:
  ...
image:
  - id: image_black
    file: "black.gif"

Thanks, added the lines but sadly no luck :( My log and yaml;
INFO ESPHome 2023.10.5
INFO Reading configuration /config/esphome/ledclock.yaml...
INFO Updating https://github.com/RikMuilwijk/EsphoMaTrix@None
WARNING
WARNING If you are upgrading EsphoMaTrix from a version before 2023.4.0,
WARNING you should read the section https://github.com/lubeda/EsphoMaTrix/#how-to-update for tipps.
WARNING
WARNING GPIO15 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Detected timezone 'Europe/Amsterdam'
INFO Detected timezone 'Europe/Amsterdam'
INFO Generating C++ source...
INFO Compiling app...
Processing ulanzi (board: esp32dev; framework: arduino; platform<EMAIL_ADDRESS>--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 2.0.1
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 3.1.0
|-- ESPmDNS @ 2.0.0
|-- Wire @ 2.0.0
|-- ArduinoJson @ 6.18.5
|-- NeoPixelBus @ 2.7.3
Compiling .pioenvs/ulanzi/src/esphome/components/ehmtx/EHMTX.cpp.o
Compiling .pioenvs/ulanzi/src/esphome/components/ehmtx/EHMTX_icons.cpp.o
Compiling .pioenvs/ulanzi/src/esphome/components/ehmtx/EHMTX_screen.cpp.o
Compiling .pioenvs/ulanzi/src/esphome/components/ehmtx/EHMTX_store.cpp.o
In file included from src/esphome.h:26,
                 from src/esphome/components/ehmtx/EHMTX.cpp:1:
src/esphome/components/ehmtx/EHMTX.h:62:14: error: 'Font' in namespace 'esphome::display' does not name a type
     display::Font *font;
              ^~~~
src/esphome/components/ehmtx/EHMTX.h:102:28: error: 'esphome::display::Font' has not been declared
     void set_font(display::Font *font);
                            ^~~~
src/esphome/components/ehmtx/EHMTX.h:552:3: error: expected class-name before '{' token
   {
   ^
src/esphome/components/ehmtx/EHMTX.h:557:107: error: 'esphome::display::ImageType' has not been declared
     EHMTX_Icon(const uint8_t *data_start, int width, int height, uint32_t animation_frame_count, display::ImageType type, std::string icon_name, bool revers, uint16_t frame_duration);
                                                                                ^~~~~~~~~
In file included from src/esphome.h:26,
                 from src/esphome/components/ehmtx/EHMTX_icons.cpp:1:
src/esphome/components/ehmtx/EHMTX.h:62:14: error: 'Font' in namespace 'esphome::display' does not name a type
     display::Font *font;
              ^~~~
src/esphome/components/ehmtx/EHMTX.h:102:28: error: 'esphome::display::Font' has not been declared
     void set_font(display::Font *font);
                            ^~~~
src/esphome/components/ehmtx/EHMTX.h:552:3: error: expected class-name before '{' token
   {
   ^
src/esphome/components/ehmtx/EHMTX.h:557:107: error: 'esphome::display::ImageType' has not been declared
     EHMTX_Icon(const uint8_t *data_start, int width, int height, uint32_t animation_frame_count, display::ImageType type, std::string icon_name, bool revers, uint16_t frame_duration);
                                                                                ^~~~~~~~~
In file included from src/esphome.h:26,
                 from src/esphome/components/ehmtx/EHMTX_store.cpp:1:
src/esphome/components/ehmtx/EHMTX.h:62:14: error: 'Font' in namespace 'esphome::display' does not name a type
     display::Font *font;
              ^~~~
src/esphome/components/ehmtx/EHMTX.h:102:28: error: 'esphome::display::Font' has not been declared
     void set_font(display::Font *font);
                            ^~~~
src/esphome/components/ehmtx/EHMTX.h:552:3: error: expected class-name before '{' token
   {
   ^
src/esphome/components/ehmtx/EHMTX.h:557:107: error: 'esphome::display::ImageType' has not been declared
     EHMTX_Icon(const uint8_t *data_start, int width, int height, uint32_t animation_frame_count, display::ImageType type, std::string icon_name, bool revers, uint16_t frame_duration);
                                                                                ^~~~~~~~~
In file included from src/esphome.h:26,
                 from src/esphome/components/ehmtx/EHMTX_screen.cpp:1:
src/esphome/components/ehmtx/EHMTX.h:62:14: error: 'Font' in namespace 'esphome::display' does not name a type
     display::Font *font;
              ^~~~
src/esphome/components/ehmtx/EHMTX.h:102:28: error: 'esphome::display::Font' has not been declared
     void set_font(display::Font *font);
                            ^~~~
src/esphome/components/ehmtx/EHMTX.h:552:3: error: expected class-name before '{' token
   {
   ^
src/esphome/components/ehmtx/EHMTX.h:557:107: error: 'esphome::display::ImageType' has not been declared
     EHMTX_Icon(const uint8_t *data_start, int width, int height, uint32_t animation_frame_count, display::ImageType type, std::string icon_name, bool revers, uint16_t frame_duration);
                                                                                ^~~~~~~~~
src/esphome/components/ehmtx/EHMTX.cpp: In member function 'void esphome::EHMTX::draw_clock()':
src/esphome/components/ehmtx/EHMTX.cpp:212:74: error: 'class esphome::EHMTX' has no member named 'font'
         this->display->strftime(this->xoffset + 15, this->yoffset, this->font, this->clock_color, display::TextAlign::BASELINE_CENTER, this->time_fmt.c_str(),
                                                                          ^~~~
src/esphome/components/ehmtx/EHMTX.cpp:221:74: error: 'class esphome::EHMTX' has no member named 'font'
         this->display->strftime(this->xoffset + 15, this->yoffset, this->font, this->clock_color, display::TextAlign::BASELINE_CENTER, this->date_fmt.c_str(),
                                                                          ^~~~
src/esphome/components/ehmtx/EHMTX.cpp:228:69: error: 'class esphome::EHMTX' has no member named 'font'
       this->display->print(this->xoffset + 15, this->yoffset, this->font, this->alarm_color, display::TextAlign::BASELINE_CENTER, "!t!");
                                                                     ^~~~
src/esphome/components/ehmtx/EHMTX.cpp: In member function 'void esphome::EHMTX::tick()':
src/esphome/components/ehmtx/EHMTX.cpp:293:84: error: 'class esphome::EHMTX' has no member named 'font'
           this->display->get_text_bounds(0, 0, this->icons[i]->name.c_str(), this->font, display::TextAlign::LEFT, &x, &y, &w, &h);
                                                                                ^~~~
src/esphome/components/ehmtx/EHMTX.cpp: At global scope:
src/esphome/components/ehmtx/EHMTX.cpp:426:33: error: variable or field 'set_font' declared void
   void EHMTX::set_font(display::Font *font)
                                 ^~~~
src/esphome/components/ehmtx/EHMTX.cpp:426:33: error: 'Font' is not a member of 'esphome::display'
src/esphome/components/ehmtx/EHMTX.cpp:426:33: note: suggested alternative:
In file included from src/esphome.h:29,
                 from src/esphome/components/ehmtx/EHMTX.cpp:1:
src/esphome/components/font/font.h:41:7: note:   'esphome::font::Font'
 class Font : public display::BaseFont {
       ^~~~
src/esphome/components/ehmtx/EHMTX.cpp:426:43: error: expected primary-expression before ')' token
   void EHMTX::set_font(display::Font *font)
                                           ^
src/esphome/components/ehmtx/EHMTX.cpp: In member function 'void esphome::EHMTX::internal_add_screen(uint8_t, std::__cxx11::string, uint16_t, uint16_t, bool)':
src/esphome/components/ehmtx/EHMTX.cpp:485:62: error: 'class esphome::EHMTX' has no member named 'font'
     this->display->get_text_bounds(0, 0, text.c_str(), this->font, display::TextAlign::LEFT, &x, &y, &w, &h);
                                                              ^~~~
src/esphome/components/ehmtx/EHMTX_icons.cpp:6:117: error: 'esphome::display::ImageType' has not been declared
   EHMTX_Icon::EHMTX_Icon(const uint8_t *data_start, int width, int height, uint32_t animation_frame_count, display::ImageType type, std::string icon_name, bool revers, uint16_t frame_duration)
                                                                                ^~~~~~~~~
src/esphome/components/ehmtx/EHMTX_icons.cpp: In constructor 'esphome::EHMTX_Icon::EHMTX_Icon(const uint8_t*, int, int, uint32_t, int, std::__cxx11::string, bool, uint16_t)':
src/esphome/components/ehmtx/EHMTX_icons.cpp:7:9: error: class 'esphome::EHMTX_Icon' does not have any field named 'Animation'
       : Animation(data_start, width, height, animation_frame_count, type)
         ^~~~~~~~~
src/esphome/components/ehmtx/EHMTX_icons.cpp: In member function 'void esphome::EHMTX_Icon::next_frame()':
src/esphome/components/ehmtx/EHMTX_icons.cpp:18:15: error: 'class esphome::EHMTX_Icon' has no member named 'get_animation_frame_count'
     if (this->get_animation_frame_count() > 1)
               ^~~~~~~~~~~~~~~~~~~~~~~~~
src/esphome/components/ehmtx/EHMTX_icons.cpp:22:37: error: 'class esphome::EHMTX_Icon' has no member named 'get_current_frame'
         if (this->reverse && (this->get_current_frame() == this->get_animation_frame_count() - 2))
                                     ^~~~~~~~~~~~~~~~~
src/esphome/components/ehmtx/EHMTX_icons.cpp:22:66: error: 'class esphome::EHMTX_Icon' has no member named 'get_animation_frame_count'
         if (this->reverse && (this->get_current_frame() == this->get_animation_frame_count() - 2))
                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
src/esphome/components/ehmtx/EHMTX_icons.cpp:26:9: error: 'Animation' has not been declared
         Animation::next_frame();
         ^~~~~~~~~
src/esphome/components/ehmtx/EHMTX_icons.cpp:30:19: error: 'class esphome::EHMTX_Icon' has no member named 'get_current_frame'
         if (this->get_current_frame() == 1) // this->get_animation_frame_count())
                   ^~~~~~~~~~~~~~~~~
src/esphome/components/ehmtx/EHMTX_icons.cpp:34:9: error: 'Animation' has not been declared
         Animation::prev_frame();
         ^~~~~~~~~
src/esphome/components/ehmtx/EHMTX.cpp: In member function 'void esphome::EHMTX::show_all_icons()':
src/esphome/components/ehmtx/EHMTX.cpp:660:78: error: 'class esphome::EHMTX' has no member named 'font'
     this->display->get_text_bounds(0, 0, this->icons[0]->name.c_str(), this->font, display::TextAlign::LEFT, &x, &y, &w, &h);
                                                                              ^~~~
src/esphome/components/ehmtx/EHMTX_screen.cpp: In member function 'void esphome::EHMTX_screen::draw_()':
src/esphome/components/ehmtx/EHMTX_screen.cpp:81:167: error: 'class esphome::EHMTX' has no member named 'font'
         this->config_->display->print(this->centerx_ + TEXTSCROLLSTART - this->shiftx_ + extraoffset + this->config_->xoffset, this->config_->yoffset, this->config_->font, this->config_->alarm_color, esphome::display::TextAlign::BASELINE_LEFT,
                                                                                ^~~~
src/esphome/components/ehmtx/EHMTX_screen.cpp:86:167: error: 'class esphome::EHMTX' has no member named 'font'
         this->config_->display->print(this->centerx_ + TEXTSCROLLSTART - this->shiftx_ + extraoffset + this->config_->xoffset, this->config_->yoffset, this->config_->font, this->text_color, esphome::display::TextAlign::BASELINE_LEFT,
                                                                                ^~~~
src/esphome/components/ehmtx/EHMTX_screen.cpp:100:75: error: no matching function for call to 'esphome::addressable_light::AddressableLightDisplay::image(int, int, esphome::EHMTX_Icon*&)'
       this->config_->display->image(2, 0, this->config_->icons[this->icon]);
                                                                           ^
In file included from src/esphome/components/display/display_buffer.h:6,
                 from src/esphome/components/addressable_light/addressable_light_display.h:5,
                 from src/esphome.h:4,
                 from src/esphome/components/ehmtx/EHMTX_screen.cpp:1:
src/esphome/components/display/display.h:347:8: note: candidate: 'void esphome::display::Display::image(int, int, esphome::display::BaseImage*, esphome::Color, esphome::Color)'
   void image(int x, int y, BaseImage *image, Color color_on = COLOR_ON, Color color_off = COLOR_OFF);
        ^~~~~
src/esphome/components/display/display.h:347:8: note:   no known conversion for argument 3 from 'esphome::EHMTX_Icon*' to 'esphome::display::BaseImage*'
src/esphome/components/display/display.h:358:8: note: candidate: 'void esphome::display::Display::image(int, int, esphome::display::BaseImage*, esphome::display::ImageAlign, esphome::Color, esphome::Color)'
   void image(int x, int y, BaseImage *image, ImageAlign align, Color color_on = COLOR_ON, Color color_off = COLOR_OFF);
        ^~~~~
src/esphome/components/display/display.h:358:8: note:   candidate expects 6 arguments, 3 provided
src/esphome/components/ehmtx/EHMTX_screen.cpp:108:75: error: no matching function for call to 'esphome::addressable_light::AddressableLightDisplay::image(int, int, esphome::EHMTX_Icon*&)'
       this->config_->display->image(0, 0, this->config_->icons[this->icon]);
                                                                           ^
In file included from src/esphome/components/display/display_buffer.h:6,
                 from src/esphome/components/addressable_light/addressable_light_display.h:5,
                 from src/esphome.h:4,
                 from src/esphome/components/ehmtx/EHMTX_screen.cpp:1:
src/esphome/components/display/display.h:347:8: note: candidate: 'void esphome::display::Display::image(int, int, esphome::display::BaseImage*, esphome::Color, esphome::Color)'
   void image(int x, int y, BaseImage *image, Color color_on = COLOR_ON, Color color_off = COLOR_OFF);
        ^~~~~
src/esphome/components/display/display.h:347:8: note:   no known conversion for argument 3 from 'esphome::EHMTX_Icon*' to 'esphome::display::BaseImage*'
src/esphome/components/display/display.h:358:8: note: candidate: 'void esphome::display::Display::image(int, int, esphome::display::BaseImage*, esphome::display::ImageAlign, esphome::Color, esphome::Color)'
   void image(int x, int y, BaseImage *image, ImageAlign align, Color color_on = COLOR_ON, Color color_off = COLOR_OFF);
        ^~~~~
src/esphome/components/display/display.h:358:8: note:   candidate expects 6 arguments, 3 provided
*** [.pioenvs/ulanzi/src/esphome/components/ehmtx/EHMTX_icons.cpp.o] Error 1
*** [.pioenvs/ulanzi/src/esphome/components/ehmtx/EHMTX.cpp.o] Error 1
*** [.pioenvs/ulanzi/src/esphome/components/ehmtx/EHMTX_store.cpp.o] Error 1
*** [.pioenvs/ulanzi/src/esphome/components/ehmtx/EHMTX_screen.cpp.o] Error 1
========================= [FAILED] Took 17.32 seconds =========================

YAML file:
substitutions:
  devicename: ulanzi
  matrix_pin: GPIO32
  buzzer_pin: GPIO15
  battery_pin: GPIO34
  ldr_pin: GPIO35
  left_button_pin: GPIO26
  mid_button_pin: GPIO27
  right_button_pin: GPIO14
  scl_pin: GPIO22
  sda_pin: GPIO21

external_components:
  - source:
      type: git
      #url: https://github.com/lubeda/EsphoMaTrix
      url: https://github.com/RikMuilwijk/EsphoMaTrix
    refresh: 60s
    components: [ ehmtx ]

esphome:
  comment: "Ulanzi TC001"
  name: ulanzi
  on_boot:
    then:
      - ds1307.read_time:

esp32:
  board: esp32dev

ota:

wifi:
  networks:
    - ssid: !secret wifi_ssid          # Uncomment this line (remove # at beginning of line) and enter your details in secrets.yaml file!
      password: !secret wifi_password  # Uncomment this line (remove # at beginning of line) and enter your details in secrets.yaml file!

web_server:

ehmtx:
  id: rgb8x32
  time_component: ehmtx_time
  matrix_component: ehmtx_display
  clock_time: 5            # duration to display the clock after this time the date is display until next "show_screen"
  clock_interval: 120        # show the clock at least each x seconds
  screen_time: 1          # duration to display a screen or a clock/date sequence
  date_format: "%d.%m"     # defaults "%d.%m." (use "%m.%d." for the US)
  time_format: "%H:%M"     # defaults "%H:%M" (use "%I:%M%p" for the US)
  show_dow: true           # draw the day indicator on the bottom of the screen, defaults to true
  show_date: false         # show the date for show_screen - show_clock seconds otherwise only shows the clock for show_screen seconds, defaults to true
  week_start_monday: true  # default monday is first day of week, false = sunday
  yoffset: 6               # the text is aligned BASELINE_LEFT, the baseline defaults to 6
  xoffset: 1               # the text is aligned BASELINE_LEFT, the left defaults to 1
  scroll_interval: 80      # the interval in ms to scroll the text (default=80), should be a multiple of the update_interval from the display (default: 16ms)
  frame_interval: 192      # the interval in ms to display the next anim frame (default=192), should be a multiple of the update_interval from the display (default: 16ms)
  font_id: ehmtx_font
  icons:
    - id: ha
      lameid: 7956
    - id: tempc
      file: newtempc.gif
    - id: tempcdark
      file: newtempcdark.png

font:
  # adapt the filename to your local settings
  - file: "monobit.ttf"
    id: ehmtx_font
    size: 16
    glyphs:  |
      !"%()+*=,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz€@

animation:
  - id: animation_black
    file: "black.gif"

image:
  - id: image_black
    file: "black.gif"

binary_sensor:
  - platform: status
    name: "$devicename Status"
  - platform: gpio
    pin:
      number: $left_button_pin
      inverted: true
    name: "$devicename left button"
    on_press:
      then:
        - number.decrement: screen_brightness
  - platform: gpio
    pin:
      inverted: true
      number: $mid_button_pin
      mode: INPUT_PULLUP
    name: "$devicename middle button"
    # on_press:
    #   then:
    #     - switch.toggle: displaycontrol
  - platform: gpio
    pin:
      number: $right_button_pin
      inverted: true
    name: "$devicename right button"
    on_press:
      then:
        - number.increment: screen_brightness
# example to switch to next screen
#        lambda: |-
#          id(rgb8x32)->skip_screen();
logger:
  level: INFO

# Enable Home Assistant API
api:
  services:
    - service: alarm
      variables:
        icon_name: string
        text: string
      then:
        lambda: |-
          id(rgb8x32)->add_screen(icon_name,text,7,20,true);
          id(rgb8x32)->force_screen(icon_name);
    - service: brightness
      variables:
        brightness: int
      then:
        lambda: |-
          id(rgb8x32)->set_brightness(brightness);
    - service: icons
      then:
        lambda: |-
          id(rgb8x32)->show_all_icons();
    - service: skip_screen
      then:
        lambda: |-
          id(rgb8x32)->skip_screen();
    - service: tuneplay
      variables:
        tune: string
      then:
        - rtttl.play:
            rtttl: !lambda 'return tune;'

number:
  - platform: template
    name: "$devicename brightness"
    id: screen_brightness
    min_value: 0
    max_value: 255
    update_interval: 1s
    step: 25
    lambda: |-
      return id(rgb8x32)->get_brightness();
    set_action:
      lambda: |-
        id(rgb8x32)->set_brightness(x);

switch:
  - platform: template
    name: "$devicename Display"
    id: displaycontrol
    icon: "mdi:power"
    restore_mode: ALWAYS_ON
    lambda: |-
      return id(rgb8x32)->show_display;
    turn_on_action:
      lambda: |-
        id(rgb8x32)->set_display_on();
    turn_off_action:
      lambda: |-
        id(rgb8x32)->set_display_off();

sensor:
  - platform: sht3xd
    temperature:
      name: "$devicename Temperature"
    humidity:
      name: "$devicename Humidity"
    update_interval: 60s
  - platform: adc
    pin: $battery_pin
    name: "$devicename Battery"
    id: battery_voltage
    update_interval: 10s
    device_class: battery
    accuracy_decimals: 0
    attenuation: auto
    filters:
      - sliding_window_moving_average:
          window_size: 15
          send_every: 15
          send_first_at: 1
      - multiply: 1.6
      - lambda: |-
          return ((x - 3) / 0.69 * 100.00);
    unit_of_measurement: '%'
  - platform: adc
    id: light_sensor
    name: "$devicename Illuminance"
    pin: $ldr_pin
    update_interval: 10s
    attenuation: auto
    unit_of_measurement: V
    accuracy_decimals: 0
    filters:
      - lambda: |-
          return (x / 10000.0) * 2000000.0 - 15 ;

output:
  - platform: ledc
    pin: $buzzer_pin
    id: rtttl_out

rtttl:
  output: rtttl_out

i2c:
  sda: 21
  scl: 22
  scan: true
  id: bus_a

light:
  - platform: neopixelbus
    id: ehmtx_light
    type: GRB
    variant: WS2812
    pin: $matrix_pin
    num_leds: 256
    color_correct: [30%, 30%, 30%]
    name: "$devicename Light"
    restore_mode: ALWAYS_OFF
    on_turn_on:
      lambda: |-
         id(ehmtx_display)->set_enabled(false);
    on_turn_off:
       lambda: |-
         id(ehmtx_display)->set_enabled(true);

time:
  - platform: homeassistant
    on_time_sync:
      then:
        ds1307.write_time:
  - platform: ds1307
    update_interval: never
    id: ehmtx_time

display:
  - platform: addressable_light
    id: ehmtx_display
    addressable_light_id: ehmtx_light
    width: 32
    height: 8
    pixel_mapper: |-
      if (y % 2 == 0) {
        return (y * 32) + x;
      }
      return (y * 32) + (31 - x);
    rotation: 0°
    update_interval: 16ms
    auto_clear_enabled: true
    lambda: |-
      id(rgb8x32)->tick();
      id(rgb8x32)->draw();

You are using the "old" repo https://github.com/lubeda/EsphoMaTrix which isn't maintained anymore. The newer https://github.com/lubeda/EsphoMaTrixv2 repo especially the branch 2023.9.1 is the way to go. But there are breaking changes for your automations in home assistant.


Evaluate adding eslint-plugin-jsdoc

Would help ensure comments are cleanly formatted, but may result in a huge amount of errors.
https://github.com/gajus/eslint-plugin-jsdoc

Added in commit aff9b9722d4d99b2ed469b73113218a786448eae .
Warning on exported functions only.


KVM: probable problem with storage stats when storage is put on maintenance

ISSUE TYPE

Bug Report

COMPONENT NAME

Primary storage - excluding Ceph/non managed NFS

CLOUDSTACK VERSION

main and older versions

CONFIGURATION

OS / ENVIRONMENT

OS - CentOS7
hypervisor - KVM
mgmt/agent version - <IP_ADDRESS>
SUMMARY

When you put the primary storage on Maintenance mode and restart the agent, the storage will be removed from the storage adaptor's map. This causes NullPointerException when collecting the storage statistics. The problem is probably for all storage pools which don't use LibvirtStorageAdaptor - e.g. Linstor, StorPool maybe, and SolidFire.
This does not affect Ceph and non managed NFS, also and PowerFlex (PowerFlex does not call the agents to get the storage statistics)
STEPS TO REPRODUCE

set storage.stats.interval on short interval
enable storage maintenance mode
restart the agents

EXPECTED RESULTS

collect or don't the storage stats on pools on Maintenance mode

ACTUAL RESULTS

2021-12-15 08:31:03,586 DEBUG [cloud.agent.Agent] (agentRequest-Handler-3:null) (logid:552801e3) Processing command: com.cloud.agent.api.GetStorageStatsCommand
2021-12-15 08:31:03,586 WARN  [cloud.agent.Agent] (agentRequest-Handler-3:null) (logid:552801e3) Caught:
java.lang.NullPointerException
        at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtGetStorageStatsCommandWrapper.execute(LibvirtGetStorageStatsCommandWrapper.java:40)
        at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtGetStorageStatsCommandWrapper.execute(LibvirtGetStorageStatsCommandWrapper.java:32)
        at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper.execute(LibvirtRequestWrapper.java:78)
        at com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeRequest(LibvirtComputingResource.java:1768)
        at com.cloud.agent.Agent.processRequest(Agent.java:661)
        at com.cloud.agent.Agent$AgentRequestHandler.doTask(Agent.java:1079)
        at com.cloud.utils.nio.Task.call(Task.java:83)
        at com.cloud.utils.nio.Task.call(Task.java:29)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
2021-12-15 08:31:03,588 DEBUG [cloud.agent.Agent] (agentRequest-Handler-3:null) (logid:552801e3) Seq 60-4602115869219225621:  { Ans: , MgmtId:<PHONE_NUMBER>196, via: 60, Ver: v1, Flags: 10, [{"com.cloud.agent.api.Answer":{"result":"false","details":"java.lang.NullPointerException

@rp-, @svenvogel, may I ask you if you have time to check if this affects Linstor and SolidFire?

@rp-, @svenvogel, may I ask you if you have time to check if this affects Linstor and SolidFire?

ping @rp- , @svenvogel can you check and confirm this. thanks.

sorry, was busy with another task.
But yes I can confirm this also effects(and I can reproduce the NPE) the linstor driver

@slavkap is this an old issue or a regression?
I suggest #5841 as a solution but might be missing something. Can you test that?

Hey @DaanHoogland, this PR seems to fix the problem. I'll test it, thank you!

Fixed in #5841


Enable TLS in Iris + Letsencrypt

This post mentiones Letsencrypt: https://evothings.com/evothings-does-mqtt-with-vernemq-or-emqtt/.
https://letsencrypt.org/ offers free TLS certificates.
Iris has a support: https://github.com/iris-contrib/examples/blob/master/letsencrypt/main.go#L17.
Basically, this function: https://github.com/kataras/iris/blob/master/iris.go#L515 callhs the function here: https://github.com/kataras/iris/blob/master/http.go#L406 which uses the code from this packet here: https://github.com/iris-contrib/letsencrypt
This has to be researched and we need to enable TLS on in Iris.

Self-signed TLS certificates added for testing: https://github.com/Mainflux/mainflux/tree/master/tls.
That should be enough for now to test HTTPS and emqttd TLS.


Fix for failing rbx test dependencies

There's a couple of failing tests because of the conflicting dependencies on minitest gem between activerecord and rubysl-test-unit.
Seems like this was already fixed in rubysl-test-unit (https://github.com/rubysl/rubysl-test-unit/commit/c0950b4e96545767ab0e2e542ac797f383268326), but was never released. Not to mention that gem looks pretty much dead and unmaintainable…
So temporary using github's version of the gem should fix the conflicts and hopefully lead to passing tests.

Thanks!


Step by step to build the project and have problem

1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info prestart<EMAIL_ADDRESS>6 info start<EMAIL_ADDRESS>7 verbose unsafe-perm in lifecycle true
8 info<EMAIL_ADDRESS>Failed to exec start script
9 verbose stack Error<EMAIL_ADDRESS>start: grunt
9 verbose stack Exit status 3
9 verbose stack     at EventEmitter. (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:214:16)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at EventEmitter.emit (events.js:172:7)
9 verbose stack     at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at ChildProcess.emit (events.js:172:7)
9 verbose stack     at maybeClose (internal/child_process.js:818:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
10 verbose pkgid<EMAIL_ADDRESS>11 verbose cwd /Users/../drywall
12 error Darwin 15.0.0
13 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
14 error node v4.2.3
15 error npm  v2.14.7
16 error code ELIFECYCLE
17 error<EMAIL_ADDRESS>start: grunt
17 error Exit status 3
18 error Failed at the<EMAIL_ADDRESS>start script 'grunt'.
18 error This is most likely a problem with the Drywall package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error     grunt
18 error You can get their info via:
18 error     npm owner ls Drywall
18 error There is likely additional logging output above.
npm version
{ Drywall: '0.16.4',
npm: '2.14.7',
node: 'v4.2.3',
}
when i execute the code of npm install ，it tell me warn about graceful-fs 、inherits。when i start the drywall ， it tell me can not find inherits 、 graceful－fs and etc，so i exec the npm to install them， but i
got the  same result as above

i fixed the problem , by https://github.com/jedireza/drywall/issues/329 and http://stackoverflow.com/questions/20764881/why-does-npm-install-say-i-have-unmet-dependencies


<EMAIL_ADDRESS>

Coverage remained the same at 66.623% when pulling 0dd09d8b689f11889abc336867e6dca086a8cb6d on<EMAIL_ADDRESS>into fd5ff42d1ed3e6f74802fea3cfe55719f8bae70e on master.

Coverage remained the same at 66.623% when pulling 0dd09d8b689f11889abc336867e6dca086a8cb6d on<EMAIL_ADDRESS>into fd5ff42d1ed3e6f74802fea3cfe55719f8bae70e on master.


Module#prepend for rails5 compat

Hi @dewski -
This PR updates peek-pg to be rails 5 compatible. Drops the alias_chain_method deprecation warnings from in rails 5 and uses the ruby 2.0 Module#prepend instead. Peek-pg now requires ruby 2.0.
No specs, but 'works-for-me' in my application.

Bumped to v1.3.0


Is there a plan to support macos kernel debug?

Hey, I try to use this json file to debug macos kernel(by firewire):
{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息，请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "custom",
            "name": "kernel debug",
            "program": "/Users/18f/Desktop/18_floor/my_life/work/my_prada/Kernels/kernel.debug",
            "targetCreateCommands": ["target create /Users/18f/Desktop/18_floor/my_life/work/my_prada/Kernels/kernel.debug"],
            "processCreateCommands": ["kdp-remote localhost"],
            "initCommands": ["settings set target.x86-disassembly-flavor intel"],
            "args": [],
            "cwd": "${workspaceFolder}",
            "sourceMap": {"/Library/Caches/com.apple.xbs/Sources/xnu_debug/xnu-3248.60.10" : "/Users/18f/Desktop/18_floor/code_database/source_code/*os/xnu-make/externals/xnu/src"}
        }
    ]
}

I could start the debug process, but too many bug at here. like

[ ] step over on source code can't work
[ ] step over on assembly code can't work
[ ] always panic....

I guess it is because of macos use kdp protocal.
Is there a plan to support macos kernel debug(I use voltron now, it works, but I more like codelldb....)
Thanks!

I am not planning any special support for kernel debugging.
That said, the debug engine used in CodeLLDB is the same as stock LLDB.  It should support kernel debugging just as much as CLI LLDB does.  Have you found the problem to be unique to CodeLLDB?

I am not planning any special support for kernel debugging. That said, the debug engine used in CodeLLDB is the same as stock LLDB. It should support kernel debugging just as much as CLI LLDB does. Have you found the problem to be unique to CodeLLDB?

Hey, thx for your replay, give me sometime(I guess one or two hours), I try to collect the question which I meet.

I am not planning any special support for kernel debugging. That said, the debug engine used in CodeLLDB is the same as stock LLDB. It should support kernel debugging just as much as CLI LLDB does. Have you found the problem to be unique to CodeLLDB?

report to codelldb
Hey, this is the problem of me. I am so sry for that I don't good at English, but I will try to explain it try my best.
The initial problem.
my initail(master) problem is that, macos kernel use kdp protocal to implement kernel debugging. If I have this code:
(lldb) dis -n parse_properties -c 6
IOSurface`IOSurface::parse_properties:
    0xffffff7f99691b4a <+0>:  push   rbp
    0xffffff7f99691b4b <+1>:  mov    rbp, rsp
    0xffffff7f99691b4e <+4>:  push   r15
    0xffffff7f99691b50 <+6>:  push   r14
    0xffffff7f99691b52 <+8>:  push   r13
    0xffffff7f99691b54 <+10>: push   r12

Then I set a breakpoint at here. when the breakpoint been hitted, it will be like this:
IOSurface`IOSurface::parse_properties:
->  0xffffff7f99691b4a <+0>: int3   ;   here been changed
    0xffffff7f99691b4b <+1>: mov    rbp, rsp
    0xffffff7f99691b4e <+4>: push   r15
    0xffffff7f99691b50 <+6>: push   r14

the gif process like this:

The problem cause too thing:

If the opcode has been changed(even if it will be reset to the right value after the breakpoint been deleted or "continue"), the disassembly code will be wrong.
Sometime it will be crash when I try to set too many breakpoint

To solve this question, I think maybe...

Change the lldb source code because of it is open source
use plugin to help us, I think codelldb is a awesome tools, so I decide to open the issue...
Try to use lldb script to solve this question.

I use the last way(lldb python script)... the code is ugly, but seems it work(not work fine, but work).
"""
[+] macos_kernel_breakpoint_helper.py
[+] 🍺🍺🍺
[+] Description
        =>  (*) To solve macos kernel debug int3 breakpoint
[+] details
        =>  (*) see https://github.com/llvm/llvm-project/issues/54479
"""

#coding=utf-8
from ast import arg
from atexit import register
from ctypes.wintypes import tagRECT
from distutils.log import error
from glob import glob
import string
import lldb
import optparse
import shlex

global_breakpoint_manage_list = []  #   we use a list which's entry is a dictionary to manage the breakpoint information

def cmd_krn_continue(debugger, command, result, __dict):
    global global_breakpoint_manage_list

    #   How to get breakpoint by id

    error = lldb.SBError()
    target = debugger.GetSelectedTarget()

    for dict_entry in global_breakpoint_manage_list:
        if(dict_entry["enabled"] == False): # ugly code, but should work...
            #   recover it
            idx = dict_entry["id"]
            breakpoint_find = target.FindBreakpointByID(idx)
            if not breakpoint_find.IsValid():
                print("👉 : idx = [%d] is not valid, so try to remove it from the link" % idx)
                global_breakpoint_manage_list.remove(dict_entry)
                continue
            breakpoint_find.SetEnabled(True)    #   If I am delete... then I reset u.....

            print("👉 : idx = [%d] has been reset" % idx)
            breakpoint_find.SetScriptCallbackFunction("macos_kernel_breakpoint_helper.breakpoint_fix_handler")
        else:
            print("👉 : breakpoint been True, do nothing. ")

    debugger.HandleCommand("continue")

def breakpoint_fix_handler(frame, bp_loc, dict):
    global global_breakpoint_manage_list    # global variable, ugly but works
    #   at here, the breakpoint hited...

    breakpoint_idx = bp_loc.GetBreakpoint().GetID()    #   we use this to got breakpoint identifier

    error = lldb.SBError()
    thread = frame.GetThread()
    process = thread.GetProcess()
    debugger = process.GetTarget().GetDebugger()
    debugger.SetAsync(False)

    map_entry = None
    idx = 0
    for dict_entry in global_breakpoint_manage_list:
        if(dict_entry["id"] == breakpoint_idx):
            map_entry = dict_entry
            global_breakpoint_manage_list[idx]["enabled"] = False   #   set this...
            print("\n👉 : [%d] entry value : %s" %(breakpoint_idx, map_entry))
            break
        idx = idx + 1

    #   I should use this, in another word...

    #process.WriteMemory(map_entry["address"], bytes( [map_entry["old_value"] ]), error)    # if I didn't set this, what happend?
    bp_loc.GetBreakpoint().SetEnabled(False)    #   Do u think this is helpful?

    print("👉 : fix over!!!")

def cmd_krn_set_breakpoint(debugger, command, result, __dict):
    global global_breakpoint_manage_list    # global variable, ugly but works

    error = lldb.SBError()
    target = debugger.GetSelectedTarget()

    debugger.SetAsync(False)
    debugger.HandleCommand("breakpoint " + command) # use this to set the breakpoint

    new_breakpoint = list(target.breakpoint_iter())[-1] #   the breakpoint is newest one, so we use the iterator to got it(the last one)

    breakpoint_address = list(new_breakpoint)[0].GetLoadAddress() #   the breakpoint set where(address)? ugly but work
    breakpoint_id = new_breakpoint.GetID()
    old_saved_value = target.GetProcess().ReadUnsignedFromMemory(breakpoint_address, 1, error)
    breakpoint_enabled = True
    print("👉 : %s saved old_value: %s" % (hex(breakpoint_address), hex(old_saved_value)))
    dict_entry = {"address" : breakpoint_address, "id" : breakpoint_id, "old_value" : old_saved_value, "enabled" : breakpoint_enabled}

    #   now, we saved all infromatioin which we need...
    global_breakpoint_manage_list.append(dict_entry)

    #   set a breakpoint hook
    new_breakpoint.SetScriptCallbackFunction("macos_kernel_breakpoint_helper.breakpoint_fix_handler")
    print("👉 : set a breakpoint handler success, going!")

def recover_breakpoint_list():
    global global_breakpoint_manage_list
    error = lldb.SBError()
    target = lldb.debugger.GetSelectedTarget()
    for saved_breakpoint in target.breakpoint_iter():
        breakpoint_address = list(saved_breakpoint)[0].GetLoadAddress() #   the breakpoint set where(address)? ugly but work
        breakpoint_id = saved_breakpoint.GetID()
        old_saved_value = target.GetProcess().ReadUnsignedFromMemory(breakpoint_address, 1, error)
        breakpoint_enabled = True
        if not saved_breakpoint.IsEnabled():
            breakpoint_enabled = False
        print("👉 : %s saved old_value: %s" % (hex(breakpoint_address), hex(old_saved_value)))
        dict_entry = {"address" : breakpoint_address, "id" : breakpoint_id, "old_value" : old_saved_value, "enabled" : breakpoint_enabled}
        saved_breakpoint.SetScriptCallbackFunction("macos_kernel_breakpoint_helper.breakpoint_fix_handler")
        global_breakpoint_manage_list.append(dict_entry)

    print("👉 : global_breakpoint_list_recover_ok")

def macos_kernel_breakpoint_helper_init():
    print("🍺 : init macos_kernel_breakpoint_helper")
    recover_breakpoint_list()

I use this instruction to solve this problem:

[x] |cmd_krn_set_breakpoint|
[x] |cmd_krn_continue|

I try to read codelldb source code, but it is written in ruby, so It's difficult for me.
So my first question is :

Is there are a way to solve this question by change the codelldb source code?

But u said that:

"I am not planning any special support for kernel debugging."

So, hahahahahahahaha.
The problem with codelldb
The second part is the probelm which I meet.
I use this lldb script it works for me. But when the breakpoint been hitted, the vscode won't update by it self, I need to update the window by myself. the gif process like this:

The second question I want to ask is:

Is there anyway I could update the window in lldb python script ?

Final
I am so sorry that I had some other problems originally but I couldn't reproduce these today.... so sry :(
Thanks for your reading, and special thanks for your work about this tool, because it is really too awesome!

Sorry, I still don't understand what you are trying to accomplish...

Sorry, I still don't understand what you are trying to accomplish...

It's ok, I will close this issue, thx!


URN Object IDs flagged as validation warning

OCFL objects with an id such as: "URN-3:HUL.DRS.OBJECT:100775205", are flagged as validation warnings. I believe these should be valid.. as URNs are valid URIs and the above URN-3 scheme is a valid URN.
See: https://www.iana.org/assignments/urn-informal/urn-3

The URN-3 scheme requires urn: prefix, so I think your example should be urn:URN-3:HUL.DRS.OBJECT:100775205 per https://www.iana.org/assignments/urn-informal/urn-3
Having said that, the syntax for URI schemes as defined in https://www.rfc-editor.org/rfc/rfc3986.html#section-3.1 is:
scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

so URN-3:HUL.DRS.OBJECT:100775205 should be accepted as a URI.


fix(plugin): mark assets as minimized only when minified

fix https://github.com/esbuild-kit/esbuild-loader/issues/337

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Test different versions of Symfony

Related to #49.

StyleCI fixers are out of date. Run styleci:config:update command to fix it.

Sorry, lol.

StyleCI fixers are out of date. Run styleci:config:update command to fix it.

Sorry, lol.

I can't bear people who work. :-P
BTW, I'm working on a separate repository for that in order to avoid to put lot of patch release and have painful version constraint with that.


Missing MIPS lifting for Load Word Left/Right

MIPS is missing lifting for lwl (Load Word Left) and lwr (Load Word Right), which is surprising given that swl (Store Word Left) and swr (Store Word Right) are supported :).
Information about the opcodes is here if needed: https://www2.cs.duke.edu/courses/fall02/cps104/homework/lwswlr.html
Let me know if more information is needed.

I'll close this and add it to some other ticket with a very long list of MIPS functions


[BUG v0.32.3] Session is unlocked after recovering from unsafe state

Hyprland Version
Hyprland, built from branch HEAD at commit 9afdd61adeaf413afbe853dbc5fdf6853c8bde21  (props: bump ver to 0.32.3). Tag: v0.32.3
Bug or Regression?
Bug
Description
Hey,
it's me again with some more monitor problems, I'm sorry :D
As per title, if the session is locked with swaylock (only one I've tried), and all monitors are disabled (putting Hyprland into unsafe state), reenabling one monitor gives full access to the computer.
I've tried this on my laptop only.
How to reproduce

Connect laptop to external monitor;
Disable laptop's monitor;
Run swaylock -f; sleep 10 && hyprctl keyword monitor eDP-1,preferred,0x0,1.2;

alternatively, you can remove the swaylock call and just lock the screen yourself while the command is sleeping;

Remove the HDMI/DP cable (i.e., phisically disconect the external monitor);
Wait for the laptop's monitor to come back up...session is fully unlocked.

Crash reports, logs, images, videos
No response

sounds like you running outdated swaylock, with ext-session-lock-v1 that should never happen.

Uuuups my bad. I was actually still running swaylock-effects, didn't notice that it went completely unmantained in the meanwhile.
Sorry for the trouble, closing this!


Update Tencent.WeChat to <IP_ADDRESS>

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

I don't know what the problem is.
The pipeline did not output any errors.
Can someone help me?
8/16/2021 1:57:52 AM

****************************************************************************************
Installation Verification
****************************************************************************************
Status: Started
==============================================================================
Task         : Installation Validation
Description  : Invoke an Azure Function
Version      : 1.0.12
Author       : Microsoft Corporation
Help URL     : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/azure-function
==============================================================================
2021-08-16T01:57:53.9217588Z POST ***?code=***&
Request body: {
  "operationId": "WinGetSvc-Validation-136-25109-20210816-1",
  "BuildId": "211950",
  "PlanUrl": "https://dev.azure.com/ms/",
  "HubName": "build",
  "ProjectId": "ed6a5dfa-6e7f-413b-842c-8305dd9e89e6",
  "PlanId": "cd8082c2-7185-4d37-a17a-01421ca6a7b4",
  "JobId": "871b4eed-22de-5cb6-c1c8-82f190de633f",
  "TimelineId": "cd8082c2-7185-4d37-a17a-01421ca6a7b4",
  "TaskInstanceId": "58bdf892-4e45-5ba7-4782-31912f95e167",
  "AuthToken": ***
}
				Response Code: OK
				Response:

8/16/2021 1:58:25 AM

****************************************************************************************
Installation Verification
****************************************************************************************
Status: InProgress

8/16/2021 1:59:13 AM

****************************************************************************************
Installation Verification
****************************************************************************************
Status: InProgress

8/16/2021 2:00:17 AM

****************************************************************************************
Installation Verification
****************************************************************************************
Status: InProgress

8/16/2021 2:00:30 AM

****************************************************************************************
Installation Verification
****************************************************************************************
Status: Completed
Result: Failed

Seems there is no version <IP_ADDRESS>.

? On my machine, /silent works well

? On my machine, /silent works well
@VAllens you may need to change SILENT to silent, the switch is case sensitive.

Let me try again.
Thanks. @lychichem

Weird how /S failed?

On my machine, /S does nothing, /Silent will install the package.

/azp run


Version of #341 that does not revert #339

This PR rebases #341, but excludes the commits that revert #339.

My bad, I thought that we would want to revert the previous change.
lgtm to merge without revert, but it needs a review for the new commits.

I suggest to update title by: feat(HMS-4789): Version of #341 that does not revert #339 #347, and add link to the ticket in the PR body: https://issues.redhat.com/browse/HMS-4789


[VT-14] "Enter" does not work for tasks with no ID

Scott Kostyshak on 2013-09-16T20:19:27Z says:
Using UUIDs globally would solve this, but there might be an easy fix for using using UUIDs locally here.

Migrated metadata:
Created: 2013-09-16T20:19:27Z
Modified: 2014-02-09T01:16:50Z

Scott Kostyshak on 2013-09-17T05:53:11Z says:
Good idea from djp: until we have a long-term solution, we should at least give an error.

VIT 2.x alpha 1 has been released, all tasks are operated on by uuid:
https://github.com/scottkosty/vit/releases/tag/v2.0.0a1

Using v2.0.0, works correctly, so this issue can be closed

Using v2.0.0, works correctly, so this issue can be closed

Thanks!


feat: Top Navigation - follow up

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #45
Test URLs:

Before: https://main--mammotome--hlxsites.hlx.page/en/
After: https://45-nav-follow-up--mammotome--hlxsites.hlx.page/en/

There is one more thing left, for which I would open a follow-up again:
move overflowing items, mainly the buttons and the language switcher) into an additional dropdown, when the window is to small.

Alignment issue with logo and Top Nav items


Meeting List Download - 500 Error

Discussed in https://github.com/code4recovery/pdf/discussions/62

Originally posted by ATLCOTech February  1, 2024
Hi All - we are trying to download the Meeting List for Atlanta and am getting an server error 500.

(we raised the PHP memory_limit on the server from 128M to 256M to accommodate a large list of meetings)


Fix usage information

Mostly a tidy up. Fixed a couple of spelling errors as well.

Thanks Grant, good stuff


Crossfeed Registration and Approval Process

🗣 Description

💭 Motivation and context

🧪 Testing

✅ Pre-approval checklist

[ ] This PR has an informative and human-readable title.
[ ] Changes are limited to a single goal - eschew scope creep!
[ ] All future TODOs are captured in issues, which are referenced
in code comments.
[ ] All relevant type-of-change labels have been added.
[ ] I have read the CONTRIBUTING document.
[ ] These code changes follow cisagov code standards.
[ ] All relevant repo and/or project documentation has been updated
to reflect the changes in this PR.
[ ] Tests have been added and/or modified to cover the changes in this PR.
[ ] All new and existing tests pass.

✅ Pre-merge checklist

[ ] Revert dependencies to default branches.
[ ] Finalize version.

✅ Post-merge checklist

[ ] Create a release.

We are aware of the vulnerability items, but this should be addressed in a separate PR.

We are aware of the vulnerability issues, can someone please confirm that these are known issues that will be addressed in a seperate PR?

@aloftus23 or @DJensen94 - I think we are okay with the Vulns, but can either of you give a approve or thumbs up to confirm. We'll then merge to master.


cri-o tests fail randomly

Occasionally, the ctr execsync cri-o test fails:
++ time bats --tap crio.bats
1..16
ok 1 ctr not found correct error message
ok 2 ctr termination reason Completed
ok 3 ctr termination reason Error
ok 4 ctr remove
ok 5 ctr lifecycle
ok 6 ctr logging
ok 7 ctr logging [tty=true]
ok 8 ctr list filtering
ok 9 ctr list label filtering
ok 10 ctr metadata in list & status
ok 11 ctr execsync conflicting with conmon flags parsing
ok 12 ctr execsync
ok 13 ctr device add
not ok 14 ctr execsync failure
# (in test file crio.bats, line 546)
#   `[ "$status" -eq 0 ]' failed

(for example http://cc-jenkins-ci.westus2.cloudapp.azure.com/job/clear-containers-runtime-azure-ubuntu-16-04/178/consoleText)
Related: https://github.com/clearcontainers/runtime/issues/521

@grahamwhaley, @sameo, @sboeuf - I think this may be edging towards a P1 due to the impact this is having on our PRs. Thoughts?
@sboeuf - did I hear you say you were planning to look at crio this week... ? :)

It would sure be nice to fix it. Do we have any ideas at all what makes it happen?

I have zero idea. @sboeuf ?

@jodh-intel I have no idea right now either, but yes I would like to see those sporadic issues go away. This is a P1 IMO.

Hi @sboeuf - Assigning to you since presumably this is part of #676 (?)

yeah sure no problem, we have a fix for that ;)


Could you support a well designed picture?

like this

Sketch2Code is trained to work on handwritten designs so the results with real designs of photoshop images will be really poor

Use a draft to draw out the basic framework, then fill in the area according to OK, is already perfect, liberating the front-end repetitive work ah! Nice author

Why do you train handwritten pictures instead of real design drawings? @macastejon

@Dcatfly we use handwritten because this is usually the first step we take when defining user interfaces and we always end up taking photos to a whiteboard and building some HTML from there. We wanted to build some to accelerate this process. Departing from real designs is the next step to take

Closing the thread as we have answered the initial questions. Thanks for your feedback.


add workaround refs changed files

similar to the workaround in capa-rules
for instance observed in #598
Checklist

[x] No CHANGELOG update needed

[x] No new tests needed

[x] No documentation update needed

ping @Ana06


[Feature Request] Simpler node & edge customization options

Description
The current node and edge customization options have a lot of options that can be intimidating for some users.
For simple customizations Graph Explorer should offer a few pre-built options that are easy to apply.
Preferred Solution

[ ] Add a list of pre-defined color options
[ ] Add a list of included icons for nodes
[ ] Move current customization options in to an "advanced" or "custom" mode
[ ] Add ability to reset icon image, if customized

[!TIP]
Please use a 👍 reaction to provide a +1/vote.
This helps the community and maintainers prioritize this request.

[!IMPORTANT]
If you are interested in working on this issue or have submitted a pull request, please leave a comment.

I'm not sure if this should be its own issue, but some way to control edge length and "springiness" would really help when there are a lot of nodes and edges to display. Consider an airport connected to 250 other airports, the screen display can get very dense.

I'm not sure if this should be its own issue, but some way to control edge length and "springiness" would really help when there are a lot of nodes and edges to display. Consider an airport connected to 250 other airports, the screen display can get very dense.

@krlawrence I went ahead and created a new issue and added a comment in that issue regarding the technical aspects that might restrict our capabilities.


deploy: Fix missing dash

Without the dash the $profile doesn't resolve correctly and running the
script results in an AWS usage error.

+1
I encountered the same error.
If you didn't specify  AWS_PROFILE env var,  profile defaults to empty string.

Thanks, this helped me get further.
However, it got as far as creating the stack but failed:
~/lightsail-auto-snapshots$ sudo REGION=eu-west-2 DAYS=60 SCHEDULE="cron(0 0 * * 7 *)" bin/deploy
make_bucket: temp-lightsail-auto-snapshots-06f494ac2f4d1daa
Uploading to f205ba2bbe0e5d33756435101aa48dc9  724 / 724.0  (100.00%)
Successfully packaged artifacts and wrote output template to file deploy/output.yaml.
Execute the following command to deploy the packaged template
aws cloudformation deploy --template-file /home/bitnami/lightsail-auto-snapshots/deploy/output.yaml --stack-name <YOUR STACK NAME>

Waiting for changeset to be created..
Waiting for stack create/update to complete

Failed to create/update the stack. Run the following command
to fetch the list of events leading up to the failure
aws cloudformation describe-stack-events --stack-name LightsailAutoSnapshots

Any idea what might be causing this and how to fix it?
I'm using:
aws-cli/1.15.65 Python/3.5.2 Linux/4.4.0-1063-aws botocore/1.10.64

@jpignata looks like the last merged PR had a breaking typo

This PR fix issue #16

I hope this PR will be merged ASAP.


5.0.0-RC0 - matTooltip not working with Angular 5

Bug, feature request, or proposal:
Bug
What is the expected behavior?
Working tooltip.
What is the current behavior?
Using matTooltip pipe gives error.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 5 , angular material 5.0.0-rc -Microsoft Windows- Opera and Chrome , TypeScript 2.6.1
Is there anything else we should know?

Uncaught (in promise): TypeError: this._change.pipe is not a function
TypeError: this._change.pipe is not a function
at ViewportRuler.change (scrolling.es5.js:452)
at new ViewportRuler (scrolling.es5.js:357)
at VIEWPORT_RULER_PROVIDER_FACTORY (scrolling.es5.js:483)
at _callFactory (core.js:10650)
at _createProviderInstance$1 (core.js:10598)
at resolveNgModuleDep (core.js:10580)
at _createClass (core.js:10625)
at _createProviderInstance$1 (core.js:10595)
at resolveNgModuleDep (core.js:10580)
at _createClass (core.js:10629)
at ViewportRuler.change (scrolling.es5.js:452)
at new ViewportRuler (scrolling.es5.js:357)
at VIEWPORT_RULER_PROVIDER_FACTORY (scrolling.es5.js:483)
at _callFactory (core.js:10650)
at _createProviderInstance$1 (core.js:10598)
at resolveNgModuleDep (core.js:10580)
at _createClass (core.js:10625)
at _createProviderInstance$1 (core.js:10595)
at resolveNgModuleDep (core.js:10580)
at _createClass (core.js:10629)
at u (vendor.js?v=A6S9FqGSwBdggEzCsBYjIL5uBxYrxgfeoAjrGmQX-sc:930)
at u (vendor.js?v=A6S9FqGSwBdggEzCsBYjIL5uBxYrxgfeoAjrGmQX-sc:930)
at vendor.js?v=A6S9FqGSwBdggEzCsBYjIL5uBxYrxgfeoAjrGmQX-sc:930
at t.invokeTask (vendor.js?v=A6S9FqGSwBdggEzCsBYjIL5uBxYrxgfeoAjrGmQX-sc:923)
at Object.onInvokeTask (core.js:4617)
at t.invokeTask (vendor.js?v=A6S9FqGSwBdggEzCsBYjIL5uBxYrxgfeoAjrGmQX-sc:923)
at r.runTask (vendor.js?v=A6S9FqGSwBdggEzCsBYjIL5uBxYrxgfeoAjrGmQX-sc:923)
at o (vendor.js?v=A6S9FqGSwBdggEzCsBYjIL5uBxYrxgfeoAjrGmQX-sc:923)
at HTMLAnchorElement.invoke (vendor.js?v=A6S9FqGSwBdggEzCsBYjIL5uBxYrxgfeoAjrGmQX-sc:923)

Do you have rxjs > 5.5 installed?

Yes

Can you provide a reproduction in a stackblitz or plunker?  It looks like it is working here

I could not broke yours, nor fix mine. Also mat-select and mat-dialog not working too. I guess I need to investigate bug in my code. Thanks

Have you found a fix for this bug?
I am having the same issue after migrating to"@angular/material": "5.0.0".
Also unable to reproduce on stackblitz.

I dont remember exacly how did I solve it but may be if you are using webpack execute webpack --config webpack.config.vendor.js and webpack

Thanks! After executing webpack --config webpack.config.vendor.js i got some dependency errors. After fixing them app started to work.
Seems like the problem was caused by netcore angular2 template dependencies + webpack config.

Yeah, I quit angular.


Fix project build, fix for tse.csv

Hey,
as I stated in #22, my company is interested in maintaining the project. To get it building using java 11+, I needed to adjust the module_info.java file. To be able to run it from command line, I added the assembly plugin to build a "fat jar".
Additionally, we tried the current state with our csv files and noticed that the tse.csv "binding" were not in place. So we created our own, currently using strings instead of the given enums for pragmatic ease of use.
If you have questions , just ask. I would also be interested in getting access to the repo in general, as we plan to use the tool in our CI chain and opt in for future development.
Best,
Dan

I'm happy to just remove the module-info.java in its entirety. I actually thought I already did so but it might just have been the gdpu project where I did so.
I'm also happy to merge as is. I'll leave it up to you.
Regarding the "future": Do you want to have a call? If you're interested ping me at lars.francke at opencore.com