Authentication for private registries

Hello! thanks of all, thanks for your awesome work at astral-sh!
I'm trying to use uv to publish to a private registry (cloudsmith). But I'm getting Unauthorized error. The same token is working using poetry. Here is the line I execute:
uv publish --verbose --publish-url https://python.cloudsmith.io/<my_org>/pip/ --token <cloudsmith_api_key> <my_package>.tar.gz
Here is the output:
DEBUG uv 0.4.20
warning: `uv publish` is experimental and may change without warning
Publishing 1 file to https://python.cloudsmith.io/<my_org>/pip/
DEBUG Using request timeout of 900s
Uploading <my_package>.tar.gz (279.2KiB)
DEBUG Using username/password basic auth
DEBUG Response code for https://python.cloudsmith.io/<my_org>/pip/: 401 Unauthorized
DEBUG Upload error response: {"detail": "Authentication credentials were not provided."}
error: Failed to publish `<my_package>.tar.gz` to https://python.cloudsmith.io/<my_org>/pip/
  Caused by: Upload failed with status code 401 Unauthorized. Server says: {"detail": "Authentication credentials were not provided."}

I've tried using the UV_PUBLISH_TOKEN  env var. And also using username as token and the api key as the password.
Could you please add compatibility with cloudsmith? TY!

@juan-abia Does it work if you configure a .netrc file?
$ cat ~/.netrc
machine python.cloudsmith.io
  login LOGIN
  password TOKEN

Doesn't work @astrojuanlu :(
I also updated to verion 0.4.22 and no luck

Hey folks 👋 I'm representing the Cloudsmith team here, so I'm happy to help diagnose from our side, too.
Also wanted to say that we utilize uv (and ruff too, actually) at Cloudsmith, so we'd be delighted to offer support. :)
If you need a free account to test out, just let us know, too. Cheers!

Thank you so much @lskillen -- really appreciate that! A test account would be super useful. I'll let @konstin follow up.

Hi @lskillen! We'd love to collaborate with you on this, and a test account would be great! You can reach me at<EMAIL_ADDRESS>(or on discord as konsti2849) for coordinating the details.

Sounds good, I'll drop you an email and intro you to our team. :)

@astrojuanlu For cloudsmith, you need to use username and password authentication: For the username, use your username or token, the password is your token. For --token we use the PyPI default of __token__, which mismatches with the cloudsmith token.

@konstin just confirme that using token works

Cloudsmith updated their backend to also allow __token__, so you can now publish with --token, too. Shoutout to the cloudsmith team for adding this so quickly!

Glad it worked. 😁 Happy to be included on a list if one ever exists of "Supported services that work". 😆

Thanks a lot team! closing the issue


Rename mangled C type name as it's no longer supported in Go 1.12

Duplicated, already fixed on #97
closing


Fix weird error that occurs without categories.

          1 Warning

:warning:
Please provide a linked tracker story for this PR in the description

  Generated by :no_entry_sign: Danger


The TestClient is not installed on the server.

Describe the bug
Hi, I've multiple environments with the same version in order to run multiple times the Test codeunits.
With my last extension I've made also the test codeunit but this time the test Tool returns this error for all the Procedure that I've written:
The TestClient that is needed for page testability is not installed on the server.
I don't think that my procedures are broken and I can truly say it because this happens only for one environment.
Thanks in advance
Versions:

AL Langauge: 2.1.79379 /

Business Central: RTM

Hi,
After a while, I found the problem: During the installation of Business Central I didn't check the "PageTestability" flag and so my server instance was missing these files:
Microsoft.Dynamics.Framework.UI.Navigation.dll
Microsoft.Dynamics.Framework.UI.UX2006.dll
Microsoft.Dynamics.Nav.Client.Builder.dll
Microsoft.Dynamics.Nav.Client.ServiceConnection.dll
Microsoft.Dynamics.Nav.Client.TestPageClient.dll

It will be very helpful if there were a documentation page!
For now thanks

Good Day
I am working on CAL Test Tool.
Could  you please tell me how to Enable this property.
Thanks


Remove Server header when using UseHttpSys()

Is it possible to remove the Server header when using UseHttpSys()? I see the type HttpSysOptions but there doesn't seem to be an option which allows me to remove the header. Is this possible to do so within the app or is it highler level config?
Thanks.

https://blogs.msdn.microsoft.com/timomta/2016/12/03/how-to-remove-the-server-header-from-weblistener/

@shirhatti can you please share the reasoning which overweighted the arguments from this discussion: https://github.com/aspnet/KestrelHttpServer/issues/852#issuecomment-220588416

HttpSysServer isn't the one adding the Server header, it's done by the lower level http.sys component and there's no API available for us to control that, only some workarounds like those mentioned in the blog.

I see, makes sense. The workaround didn't work for me. Most probably this is my local issue, as I'm testing cert client auth and getting 403 so the lambda to removed the header isn't called yet.


between accepts a pair instead of a range

Introduce table[:column].between(table[:since], table[:till])
3rd parameter exposes exclude_end which defaults to false (the same as 1..2)
Fixes #394
/cc @matthewd

r? @matthewd

I'd prefer that we just take a node here directly. So the code becomes table[:columns].between(table[:since].and(table[:till])). I think we can go ahead and deprecate the special handling of ranges, as that logic can (and now is) be handled at a higher level inside of Active Record

@sgrif yeah?  Promoting that to the external API seems not so great to me.

A pair is fine as well. I mostly just want to deprecate the range handling at this level.


Echo swiftlint version

Description
Echo swiftlint version before swiftlint-ing files
Motivation and Context
Swiftlint is great but it adds/changes/removes/deprecates rules changing the behaviour quite frequently.
If the developer wants to reproduce same warnings/errors in local computer having a version in the logs helps a lot. This little PR should write something like this:

Running linter swiftlint version 0.24.0

How Has This Been Tested?
I just partially executed the script in my local machine
Checklist:

[x] I have submitted a CLA form ->
[ ] If applicable, I have updated the documentation accordingly.
[ ] If applicable, I have added tests to cover my changes.

@nacho4d  Thanks for the PR! Before we can process the PR, can you go over the checklist below? We now have a PR template (when you opened the PR we did not have one in place). If you have contributed before our GitHub org, then you should have a CLA in place (if my mind is not failing me, you may have one in place since you contributed to Kitura recently):
Checklist:

[ ] I have submitted a CLA form

Codecov Report

Merging #123 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #123   +/-   ##
=====================================
  Coverage      50%    50%
=====================================
  Files           1      1
  Lines           8      8
=====================================
  Hits            4      4
  Misses          4      4

Continue to review full report at Codecov.

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

@rolivieri I have updated the description of the PR to align with the new template.
Yes, I have previously submitted PRs to Kitura. And now I added the check mark here too.
(Actually I also work for IBM (in Japan) and by chatting with some members in swift-at-ibm.slack.com they suggested I don't need one a CLA so I actually didn't submit it.
If needed, my email is: ignacio AT jp DOT ibm DOT com )
https://swift-at-ibm.slack.com/archives/C29BEUQH3/p1508371282000221


Subtract with overflow when scanning stack frames

Stack trace:
Running: fuzz/artifacts/process/minimized-from-52af49762b2e358f53eaaa27e96cc12c1789f5b6
thread '<unnamed>' panicked at 'attempt to subtract with overflow', /home/jess/src/rust-minidump/minidump-processor/src/stackwalker/x86.rs:271:33
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
==3738815== ERROR: libFuzzer: deadly signal
    #0 0x55f7e4e4b2f1 in __sanitizer_print_stack_trace /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_stack.cpp:87:3
    #1 0x55f7e7014078 in fuzzer::PrintStackTrace() (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x365b078)
    #2 0x55f7e6fee155 in fuzzer::Fuzzer::CrashCallback() (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x3635155)
    #3 0x7f082ffbd86f  (/usr/lib/libpthread.so.0+0x1386f)
    #4 0x7f082fccdd21 in raise (/usr/lib/libc.so.6+0x3cd21)
    #5 0x7f082fcb7861 in abort (/usr/lib/libc.so.6+0x26861)
    #6 0x55f7e70a64e6 in std::sys::unix::abort_internal::h1f5318f76822dfc9 /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/std/src/sys/unix/mod.rs:259:14
    #7 0x55f7e4dc45f5 in std::process::abort::hbf55446b688adba4 /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/std/src/process.rs:1995:5
    #8 0x55f7e6fd54c5 in libfuzzer_sys::initialize::_$u7b$$u7b$closure$u7d$$u7d$::h7c5979fb626d916c (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x361c4c5)
    #9 0x55f7e709a05a in std::panicking::rust_panic_with_hook::h3c44292d2b9e7acd /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/std/src/panicking.rs:702:17
    #10 0x55f7e7099cd8 in std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::h291eeb37fb673a2b /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/std/src/panicking.rs:586:13
    #11 0x55f7e7095963 in std::sys_common::backtrace::__rust_end_short_backtrace::hcd22a174748dc4e6 /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/std/src/sys_common/backtrace.rs:138:18
    #12 0x55f7e7099a28 in rust_begin_unwind /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/std/src/panicking.rs:584:5
    #13 0x55f7e4dc6062 in core::panicking::panic_fmt::hbc44f6fe2c852856 /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/core/src/panicking.rs:135:14
    #14 0x55f7e4dc5f3c in core::panicking::panic::h2f72839d2795d6af /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/core/src/panicking.rs:48:5
    #15 0x55f7e4ef9707 in minidump_processor::stackwalker::x86::get_caller_by_scan::_$u7b$$u7b$closure$u7d$$u7d$::h1457e975cf533d94 (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x1540707)
    #16 0x55f7e4f27458 in minidump_processor::stackwalker::x86::_$LT$impl$u20$minidump_processor..stackwalker..unwind..Unwind$u20$for$u20$minidump_common..format..CONTEXT_X86$GT$::get_caller_frame::_$u7b$$u7b$closure$u7d$$u7d$::h1d06987803d92706 (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x156e458)
    #17 0x55f7e4f8f9a4 in _$LT$core..future..from_generator..GenFuture$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h1909fb02963925f2 (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x15d69a4)
    #18 0x55f7e4efe0dd in minidump_processor::stackwalker::get_caller_frame::_$u7b$$u7b$closure$u7d$$u7d$::h0cc5146475136ffa (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x15450dd)
    #19 0x55f7e4f057b7 in minidump_processor::stackwalker::walk_stack::_$u7b$$u7b$closure$u7d$$u7d$::head541a1e98755a4 (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x154c7b7)
    #20 0x55f7e4eb1ad9 in minidump_processor::processor::process_minidump_with_options::_$u7b$$u7b$closure$u7d$$u7d$::h42da928e5877a814 (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x14f8ad9)
    #21 0x55f7e4f92074 in _$LT$core..future..from_generator..GenFuture$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$::poll::hc109baf1cbf70c85 (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x15d9074)
    #22 0x55f7e4e9729c in minidump_processor_fuzz::fuzzing_block_on::h40bc13d894ea78e1 (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x14de29c)
    #23 0x55f7e4e960e6 in rust_fuzzer_test_input (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x14dd0e6)
    #24 0x55f7e6fd9738 in __rust_try libfuzzer_sys.99e5ec45-cgu.0
    #25 0x55f7e6fd48ed in LLVMFuzzerTestOneInput (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x361b8ed)
    #26 0x55f7e6fee691 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x3635691)
    #27 0x55f7e6fe25ca in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x36295ca)
    #28 0x55f7e6fe65e2 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x362d5e2)
    #29 0x55f7e4dc68a2 in main (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x140d8a2)
    #30 0x7f082fcb8b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
    #31 0x55f7e4dc6a4d in _start (/home/jess/.cache/cargo/target/x86_64-unknown-linux-gnu/release/process+0x140da4d)

Reproduction:
minidump-process.zip
I'll see if I can fix this today. Not going to try to fix it right now, but want to keep a note of it.
And yep, that looks like a good old fashioned integer overflow.

mm... yep that should be a checked_sub
I think I convinced myself it was "fine" because we are walking forward through memory and this ""just"" looks backward a step, but that reasoning isn't sound for the first iteration!
Definitely worth taking a quick peak at all the impls to see if they all have this issue.


Downloading slides automatically

Hi,
I am developing an app where I would like the user to be able to provide the slide id and for my program to be able to automatically download it for my analysis workflow to run. I cannot work with only the thumbnail of the slide as I am using another library that requires the original slide file. Is there any way to download slides automatically? I tried to use wget with the relevant download link by I cannot authenticate the user successfully.
Thank you in advance.
Best,
George

In our default deployments, we restrict downloads so that they are only permitted to logged in users, even if it is a publicly visible slide.  If this is your own deployment, you can change a setting in the girder configuration file.  Assuming you are using the deployment from digital_slide_archive, this would change:
[histomicsui]
# If restrict_downloads is True, only logged-in users can access download and
# tiles/images endpoints.
restrict_downloads = False

If this isn't a deployment you manage, or you don't want to circumvent this, you can get an authentication token for a user and pass that as part of your wget or curl command.  If you look at your browser session for the current user, you'll see a Girder-Token header.  Add --header "Girder-Token: <the token>" to your curl or wget command.
You can get an anonymous session token from the <server>/api/v1/token/session endpoint.  That token can be used in lieu of the user token, assuming the file is publicly accessible.


Database Fixes

Description
Multiple Bugfixes and cleanups for Knex. Mainly around MySQL/MariaDB

Makes DB Settings required when MySQL/MariaDB Selected
Removes MariaDB specific settings, Knex uses the MySQL library to drive MariaDB
Removes old Debugging Code
Removes custom Trigger for creating capcodes
Set's Foreign Key correctly between messages.alias_id and capcodes.id
Sets correct Charset and Collation for MariaDB Compatibility

MySQL/MariaDB Upgrades from 0.3.0/0.3.1 aren't possible. Databses will need to be recreated and data re-imported.
Fixes # Various
Type of change
Please delete options that are not relevant.

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

How Has This Been Tested?
WIP
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have updated changelog.md with changes made

@pagermon/collaborators Review plz 😁


Tweeter Poll 4- Jakarta EE 9 Alignment Questionnaire

Question 4: Q4: Do you hope to start migration from the javax to jakarta namespace in the next year?

Yes
No
Unsure

Great addition, this will go as 2nd question.

Sent and it runs for 4days: https://twitter.com/MicroProfileIO/status/1366784499468541957?s=20

Emily, based on today's call, I am thinking that it could be great for MP to run a twitter poll with this question every 3 months.
What do you think?

I am not sure why we need to run the poll after we have made a decision. However, I think from now on, we should use twitter poll more to get community feedback on various issues or technical feedback etc.

@Emily-Jiang I agree, we should never guess the opinion of the community and act on their feedback combined with that of the MicroProfile partners. Simple things like Twitter polls seem to work really well for this, reaching our target audience in the process

Emily and Edwin,
The question is not about alignment but about migration. We are blind, so I think it is a wonderful idea to schedule the poll question above every 3 months to track changes on migration to the technology or leaving the technology.
Since lack of tooling and features are not helping with adoption, we want to pay close attention to potential improvements as tooling and features become available.
This I will recommend on marketing as a set-process where we prioritize such action. :)
Given current work, I think if we can improve what it is, that is always fantastic. More eyes, like the 2 of you, are valuable to this idea that is about to be pushed as a standard.

Drive results
Twitter


Change ExperimentData tags and metadata to properties

Summary
This PR changes tags and metadata in DbExperimentDataV1  to properties instead of using set_nnn(), to match DbAnalysisResultV1.
Without this, it's likely someone would do exp_data.tags = ["foo"], which would actually change the tags() method to ["foo"].
Details and comments

Might be best to just change tags, and leave metadata as is for now since its used in a lot more of the code

@chriseclectic I removed the metadata setter as discussed

You will also need to edit a bunch of experiment and analysis classes to replace use of expdata.metadata() with expdata.metadata


Assign fields to records (__setitem__), which passes through all other types (including IndexedArray)

Done in PR #107.


indoor "weather" data

Find out "weather" data for greenhouse (in parallel with the data we have outside).

there is no weather station for the indoor site, just climate control as
described here:
https://terraref.gitbooks.io/terraref-documentation/content/user/controlled-environment-protocols.html
so
there is no time series data analogous to a weather station, but you could
make it if you need it for your model
On Mon, Jun 5, 2017 at 5:03 PM danecs<EMAIL_ADDRESS>wrote:

Find out "weather" data for greenhouse (in parallel with the data we have
outside).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pi4-uiuc/Group-4/issues/6, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAcX52JmnRWXcezLprTsX81-80r9TOM6ks5sBHtHgaJpZM4Nwn3n
.


add hightable-demo

Aims to replace the demo in https://github.com/hyparam/hightable/
Merge #38 before.

Done! Merging. The next step is to deploy it automatically to https://hyparam.github.io/hightable/. I might need help with this.


[Imp] Added Ask.com search engine support

Added Ask.com search engine support

@ksubbu199 good to see you on board immediately after the event, continue the enthusiasm in you. please look at this blog http://blog.fossasia.org/open-source-developer-guide-and-best-practices-at-fossasia/ and follow those practices.
Create an issue and reference the issue number on pull request.
If you need help, you can ping us on gitter channel at http://gitter.im/fossasia/query-server

@ksubbu199 why are there two PRs open for the same (#122) ?

@niranjan94 What is wrong with this PR?

There are some files which are conflicting with your fork.
Kindly resolve them and proceed.
:D

Sounds good.
On Sep 14, 2017 9:58 PM, "Manish Devgan"<EMAIL_ADDRESS>wrote:

There are some files which are conflicting with your fork.
Kindly resolve them and proceed.
:D
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/fossasia/query-server/pull/118#issuecomment-329536797,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AM2tjAVzaZ-GJWo4l-_NtoE0sCVh1CYkks5siVRBgaJpZM4OynvC
.

@ksubbu199 This issue is outdated as of #148, please close it.


ImportError: cannot import name 'OneStyleAndTextTuple' from 'prompt_toolkit.formatted_text'

Description of the issue
Setting environment variables for Host tools fails :
ImportError: cannot import name 'OneStyleAndTextTuple' from 'prompt_toolkit.formatted_text'
+++ echo -n '  Setting environment variables for Host tools.............'
  Setting environment variables for Host tools.............++++ echo /home/user/matter/.environment/pigweed-venv/bin:/home/user/matter/.environment/cipd/packages/arm/bin:/home/user/matter/.environment/cipd/packages/arm:/home/user/matter/.environment/cipd/packages/pigweed/bin:/home/user/matter/.environment/cipd/packages/pigweed:/home/user/matter/.environment/cipd/packages/zap:/home/user/matter/.environment/cipd:/home/user/matter/third_party/pigweed/repo/out/host/host_tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++++ sed 's|:/home/user/matter/third_party/pigweed/repo/out/host/host_tools$||g;'
++++ sed 's|^/home/user/matter/third_party/pigweed/repo/out/host/host_tools:||g;'
++++ sed 's|:/home/user/matter/third_party/pigweed/repo/out/host/host_tools:|:|g;'
+++ PATH=/home/user/matter/.environment/pigweed-venv/bin:/home/user/matter/.environment/cipd/packages/arm/bin:/home/user/matter/.environment/cipd/packages/arm:/home/user/matter/.environment/cipd/packages/pigweed/bin:/home/user/matter/.environment/cipd/packages/pigweed:/home/user/matter/.environment/cipd/packages/zap:/home/user/matter/.environment/cipd:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ export PATH
+++ PATH=/home/user/matter/third_party/pigweed/repo/out/host/host_tools:/home/user/matter/.environment/pigweed-venv/bin:/home/user/matter/.environment/cipd/packages/arm/bin:/home/user/matter/.environment/cipd/packages/arm:/home/user/matter/.environment/cipd/packages/pigweed/bin:/home/user/matter/.environment/cipd/packages/pigweed:/home/user/matter/.environment/cipd/packages/zap:/home/user/matter/.environment/cipd:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ export PATH
+++ '[' -z '' ']'
+++ echo done
done
+++ '[' -z '' ']'
+++ echo ''

+++ '[' -n /usr/bin/bash -o -n '' ']'
+++ hash -r
+++ '[' -z '' ']'
+++ echo 'Checking the environment:'
Checking the environment:
+++ '[' -z '' ']'
+++ echo ''

+++ '[' -z '' ']'
+++ pw --no-banner --loglevel info doctor
Traceback (most recent call last):
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_cli/plugins.py", line 96, in from_name
    module = importlib.import_module(module_name)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_watch/watch.py", line 93, in <module>
    import pw_console.python_logging
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_console/__init__.py", line 16, in <module>
    from pw_console.embed import PwConsoleEmbed
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_console/embed.py", line 23, in <module>
    from pw_console.console_app import ConsoleApp
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_console/console_app.py", line 59, in <module>
    from ptpython.layout import CompletionVisualisation  # type: ignore
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/ptpython/__init__.py", line 3, in <module>
    from .repl import embed
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/ptpython/repl.py", line 23, in <module>
    from prompt_toolkit.formatted_text import OneStyleAndTextTuple
ImportError: cannot import name 'OneStyleAndTextTuple' from 'prompt_toolkit.formatted_text' (/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__init__.py)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/user/matter/.environment/pigweed-venv/bin/pw", line 8, in <module>
    sys.exit(main())
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_cli/__main__.py", line 43, in main
    pw_command_plugins.register()
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_cli/pw_command_plugins.py", line 64, in register
    _register_builtin_plugins(plugin_registry)
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_cli/pw_command_plugins.py", line 42, in _register_builtin_plugins
    registry.register_by_name('watch', 'pw_watch.watch', 'main')
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_cli/plugins.py", line 303, in register_by_name
    Plugin.from_name(name, module_name, member_name, source)
  File "/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/pw_cli/plugins.py", line 104, in from_name
    raise Error(f'Failed to import module "{module_name}"') from err
pw_cli.plugins.Error: Failed to import module "pw_watch.watch" (ImportError: cannot import name 'OneStyleAndTextTuple' from 'prompt_toolkit.formatted_text' (/home/user/matter/.environment/pigweed-venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__init__.py))

Steps to reproduce the issue
Trying to build the Matter Silabs dishwasher Example
git clone https://github.com/SiliconLabs/matter
cd matter
./scripts/examples/gn_silabs_example.sh ./silabs_examples/dishwasher-app/silabs/ ./out/dishwasher-app BRD2704A

Device type(s) and network topology
Setup up build environnement
Proposed solution(s)
No response
SMG version
release_2.2.0-1.2
Protocol(s)
Thread
Hardware platform(s)
BRD2704A
Development platform(s)
Ubuntu 22.04.3 LTS (GNU/Linux 6.5.0-17-generic x86_64)
Captured data or logs
SiliconLabs-issue-40.log

My situation differs from yours; I encounter this error when running the environment update command "source ./scripts/activate.sh". You might also resolve it by changing the version of prompt-toolkit, which is located in the file scripts/setup/constraints.txt. Search for prompt-toolkit and change the version to 3.0.43.

scripts/setup/constraints.txt

Thanks, that fixed the problem I was having.
I open PR #147 to fix it.


[build.ps1] Enable LLDB tests in Windows builds

This PR adds handling for the -Test lldb option, which allows to enable the LLDB test suite on Windows builds of the swift toolchain, fixing https://github.com/swiftlang/llvm-project/issues/9141
While we still see a lot of test failures, it's time to give the CI a try. Once we get to a stable subset of tests that pass, we can iterate to enable the remaining ones and increase coverage.
The PR adds a local Windows-specific mechanism to mark bulks of tests as XFAIL or SKIPPED. These tests are listed in file utils/windows-llvm-lit-test-overrides.txt. The goal is to get it down to a low number and remove the mechanism and file eventually.

This is a preview. We need to land https://github.com/swiftlang/llvm-project/pull/9370 first.

Oh wow, that works indeed! And sorry, it was easy to confuse. We need the latest linked PR. The other one was merged in the meantime :) But not too bad, I anyway had to patch build-windows-toolchain.bat.
@compnerd I checked locally and I think that the following will work:
Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9429

@swift-ci please test windows platform

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9429
@swift-ci please test windows platform

Great, thanks. Good news is that build.ps1 now runs with testing enabled for LLDB. Learning is that the build machine doesn't have winget, so we have to find another way to install make.exe from [GnuWin32]:(https://gnuwin32.sourceforge.net/packages/make.htm):
swift\utils\build.ps1 : The term 'winget' is not recognized as
the name of a cmdlet, function, script file, or operable program.

The options I see:

Install winget and use it to install make.
Check if we have scoop and use it to install make.
Check that the build machine provides make on Path and rely on it.
Disable LLDB API tests that require make.

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9429
@swift-ci please test windows platform

The build failed with the following error in build step cmake.exe --build T:\5 --target distribution:
[4797/6491][ 73%][1334.403s] Linking Swift static library lib\swiftASTGen.lib
...
swift\lib\ASTGen\Sources\ASTGen\SourceFile.swift:69:45: error: type 'Parser.ExperimentalFeatures' has no member 'sendingArgsAndResults'
    mapFeature(.SendingArgsAndResults, to: .sendingArgsAndResults)
                                           ~^~~~~~~~~~~~~~~~~~~~~

This doesn't appear to be related to my changes. Is it due to the merge conflict in utils/build-windows-toolchain.bat maybe? It's not related either, but does it cause the bot to silently skip the merge and build my (outdated) branch against newer dependencies? Let me resolve that.

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9429
@swift-ci please test

Great, tests are running!
Testing Time: 202.24s
  Excluded           :   18
  Unsupported        : 1187
  Passed             : 2058
  Expectedly Failed  :   45
  Unresolved         :    1
  Failed             :   56
  Unexpectedly Passed:    4

SwiftREPL failures (28) will be fixed with https://github.com/swiftlang/llvm-project/pull/9421, the others I will investigate today.

In these NativePDB tests, a line breakpoint is set and it gets resolved to a location that seems right, but at startup time we add another location and that fails the test. This might be an actual bug:
  lldb-shell :: SymbolFile/NativePDB/local-variables.cpp
  lldb-shell :: SymbolFile/NativePDB/stack_unwinding01.cpp

The tests in https://github.com/swiftlang/swift/pull/76894/commits/25f5eca4263a5fcea8b8dfe9bd4de4ad00a148fe should be fixed and they pass reliably on my machine, but they failed in the CI test run. Let's see if they XPASS next time, because the companion PR in llvm-project now has the SDKROOT patch: https://github.com/swiftlang/llvm-project/pull/9429/commits/62b96261f6cac013ba6d87ec824fcbfd4b3ca6d6 Otherwise we might be missing a cherry-pick.
And for the record: The following test failed but the detailed report is lacking in the log! 🤷♂ This is the only unreasonable difference to the log from the companion PR.
  lldb-api :: source-manager/TestSourceManager.py

The latest two commits integrate the changes from PRs https://github.com/swiftlang/swift/pull/76974 and https://github.com/swiftlang/swift/pull/77005 into this one. I would usually prefer small isolated changes, but the per-merge infrastructure makes it unbearable. I will abaondon the other PRs and only continue with this one.

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9429
@swift-ci please test

SwiftREPL tests keep failing:
$ "t:\5\bin\lldb.exe" "--no-lldbinit" "-S" "T:/5/tools/lldb\test\Shell\lit-lldb-init-quiet" "--repl"
error: failed to stop process at REPL breakpoint

This means that the dummy executable for the REPL didn't load. It usually happens if it lacks a runtime dependency like swiftCore: https://github.com/swiftlang/llvm-project/blob/stable/20230725/lldb/tools/repl/swift/main.c#L66

Otherwise only windows-unaligned-x86_64 failed this time:
llvm-project\lldb\test\Shell\Unwind\windows-unaligned-x86_64.test:20:10: error: CHECK: expected string not found in input
# CHECK: stop reason = breakpoint 1.1
         ^
<stdin>:9:61: note: scanning from here
Breakpoint 1: where = windows-unaligned-x86_64.test.tmp`func at windows-unaligned-x86_64.cpp:3, address = 0x0000000140001000
                                                            ^
<stdin>:13:14: note: possible intended match here
* thread #1, stop reason = breakpoint 1.2
             ^

This looks very similar to the problem we saw in the NativePDB tests last time. windows-unaligned-x86_64 would have failed for the same reason already, but it showed up as UNSUPPORTED back then. This indicates a flake at build-time of the inferior. It would be a pity if we had to skip it due to these issues, because there is a good chance that the actual bug behind it was fixed with https://github.com/llvm/llvm-project/issues/101710

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9429
@swift-ci please test

The builds failed with compile errors that indicate a LLVM version mismatch. I guess we have to build against stable/20240723 now. I will prepare a new companion PR for that.

Can we run again with this PR please? This time we should reach the tests.
https://github.com/swiftlang/llvm-project/pull/9513

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test

@compnerd Thanks for your feedback.
@hjyamauchi Unfortunately, the bots didn't run. Can we try again please? We only need Windows platform right now.
Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513

@swift-ci please test windows platform

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test windows platform

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test windows platform

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test windows platform

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test windows platform

API tests turned UNRESOLVED again due to a Python issue. Modules are installed and discovered at configuration time, but when running llvm-lit they cannot be imported.
Again no new flaky tests. And Unwind/windows-unaligned-x86_64.test finally passed!
We have 4 remaining failures:
Failed Tests (4):
  lldb-unit :: Symbol/ClangArgs/UniquingCollisionWithAddedFlags
  lldb-unit :: Symbol/ClangArgs/UniquingCollisionWithExistingFlags
  lldb-unit :: Symbol/TestSwiftASTContext/ApplyWorkingDir
  lldb-unit :: Symbol/TestSwiftASTContext/PluginPath

We used to exclude them via LIT_FILTER_OUT, but it doesn't apply anymore. Maybe the syntax changed for unittests upstream? This is to be done.

Good new: the Python fix works! Not so good: not all new FAILs and XPASSes are ringing a bell. I will investigate tomorrow.
********************
Failed Tests (4):
  lldb-api :: lang/c/local_variables/TestLocalVariables.py
  lldb-api :: python_api/address_range/TestAddressRange.py
  lldb-shell :: Commands/command-process-launch-user-entry.test
  lldb-unit :: Host/PipeTest/WriteWithTimeout

********************
Unexpectedly Passed Tests (5):
  lldb-api :: api/command-return-object/TestSBCommandReturnObject.py
  lldb-api :: api/multiple-targets/TestMultipleTargets.py
  lldb-api :: commands/expression/nested/TestNestedExpressions.py
  lldb-api :: lang/cpp/class-template-non-type-parameter-pack/TestClassTemplateNonTypeParameterPack.py
  lldb-api :: lang/cpp/class-template-type-parameter-pack/TestClassTemplateTypeParameterPack.py

There is some explanation for each of them, except one: Host/PipeTest/WriteWithTimeout is mysterious. We can only skip the entire HostTests.exe unittests if we want to avoid it. But first, let's see if it fails again.

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test windows platform

No unexpected failures or passes. This should have been the first successful run:
Testing Time: 222.85s

Total Discovered Tests: 3421
  Excluded         :   20 (0.58%)
  Unsupported      : 1227 (35.87%)
  Passed           : 2055 (60.07%)
  Expectedly Failed:  116 (3.39%)
  Unresolved       :    3 (0.09%)

But still Error: cmake.exe exited with code 1. To be investigated next week.

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test windows platform

Finally, we have a successful run!
Total Discovered Tests: 3422
  Excluded         :   23 (0.67%)
  Unsupported      : 1228 (35.89%)
  Passed           : 2055 (60.05%)
  Expectedly Failed:  116 (3.39%)

Runtime impact on the CI pipeline was 5min: 3m10s for running the actual tests and ~2min for building LLDB test dependencies. Timing of the testing stage compared to the two surrounding successful builds:
    #33729: 19:25 - 19:57 = 32min (cxx interop)
--> #33732: 21:57 - 22:34 = 37min (enable lldb tests)
    #33733: 23:41 - 24:13 = 32min (enable libxml2)

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test

Build failed for an unrelated reason. Didn't reach the test stage.

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test windows platform

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test Windows platform

Tests finished successfully. Again no falkes, same results as last run, same timing:
#33837 23:00 - 23:37 = 37min

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test Windows platform

Rebase and fix conflicts after https://github.com/swiftlang/swift/pull/77948

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test

The Windows build failed due to one test in LLDB:
======================================================================
FAIL: test_compressed_section_data (TestSectionAPI.SectionAPITestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\llvm-project\lldb\packages\Python\lldbsuite\test\decorators.py", line 452, in wrapper
    return func(self, *args, **kwargs)
  File "C:\Users\swift-ci\jenkins\workspace\swift-PR-windows\llvm-project\lldb\test\API\python_api\section\TestSectionAPI.py", line 67, in test_compressed_section_data
    self.assertEqual(section_data, [0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90])
AssertionError: Lists differ: [] != [32, 48, 64, 80, 96, 112, 128, 144]

Apparently, we got an empty list from section.GetSectionData(): https://github.com/swiftlang/llvm-project/blob/22b89865683de106191106cc504cda80db6d4dd1/lldb/test/API/python_api/section/TestSectionAPI.py#L66-L67
I never saw this test failing and I don't see a recent change, that might have caused it. Needs investigation. I will file an issue and disable it for the time being.

Please test with following PRs:
https://github.com/swiftlang/llvm-project/pull/9513
@swift-ci please test

LLDB tests finished successfully. No falkes. The build failed in the subsequent check-swift step, where the LLVM build-tree is reconfigured and LibXml2 can't be found.


Chain modifications

Reworked run_chain_step and moved it from AGiXT.py to Chain.py for clearer separation in classes.
Available options for chain steps:

Prompt
Command
Chain
Smart Instruct
Smart Chat
Task

Currently only "Prompt" and "Command" available in the Streamlit app, but code is written for back end now to handle Prompt, Command, Chain, Smart Instruct, Smart Chat, and Task.


support indexing linked metadata from schema.org entries

When we harvest a data package from schema.org, we create a canonical copy of the schema.org JSON-LD, and index that. If the SO entry contains a link to a more detailed metadata record as proposed int he SOSO guidelines, then we should also index that content. To do so means we need to resolve conflicts and issues of precedence (e.g., if the two metadata sources provide different titles), and determine how to merge them into a single package so they do not show up in the index as distinct data packages. This could involve creating an ORE and having both metadata docs be a member of the package, or other solutions.
Dave and I had a slack conversation on this, some of which is included below for context.
Matt Jones  11:25 AM
Hey @davev with the new schema.org harvester, are we also picking up and indexing related metadata records (like linked ISO or EML records)?
11:25
I’ve been talking about that as a strength of DataONE’s indexer, but I’ve recently realized that maybe under the new approach things would work differently
11:26
I think it would be good if we could index all metadata content if its linked in the SO record. Thoughts?

Dave Vieglais  11:27 AM
we could, it wouldn’t be much more work, except that it’s a bit confusing having multiple metadata

Matt Jones  11:27 AM
true

Dave Vieglais  11:27 AM
what would that even mean? treat the SO like a resourcemap?

Matt Jones  11:27 AM
but for groups that have both, seems like it would be a win
11:28
yeah, not sure. the big question is when the two metadata documents say different things — like SO and EML have different titles

Dave Vieglais  11:28 AM
yeah

Matt Jones  11:28 AM
it would be nice to treat them as additive
11:30
maybe SO is designated as primary… to resolve conflicts.. if that is how the records were harvested
11:30
when you pull in a SO dataset, do you create an ORE in GMN?

Dave Vieglais  11:30 AM
not right now, it’s just metadata. It’s easy enough to create the ORE, but version management gets painful

Matt Jones  11:31 AM
right now the ORE and other metadata documents are additive in terrms of what is indexed, but I don’t think they overlap in content much. but we’ve talked about allowing that, so that PROV and semantic annotations can go in either the ORE or the metadata doc. Seems like the same issues exist with SO

Dave Vieglais  11:32 AM
yep. SO is just more metadata-ish than ORE

...

Matt Jones  11:37 AM
for IEDA nodes, are you indexing schema.org and ISO?

Dave Vieglais  11:37 AM
they are on the old pattern, which uses SO as a way to find the ISO, which is then retrieved, sys meta created, and served up to the CNs for indexing

Matt Jones  11:38 AM
ah, so the SO is discarded?

Dave Vieglais  11:39 AM
Yes I think so. Perhaps identifier and a couple other properties retained for sysmeta

Matt Jones  11:39 AM
it seems to me that the right thing for us to do over the long run is to index both, and have a well-established precedence for conflicts. Maybe we’re not ready to offer this to NEON yet….

Dave Vieglais  11:40 AM
we need to at least have a clear implementation pattern as to what goes where.

Matt Jones  11:41 AM
the SOSO guidelines say how to link in the extra metadata, so that seems like something we should follow and I think it would be pretty clear. (edited)
11:41
maybe we could add some language there about precedence for harvesters

Dave Vieglais  11:42 AM
ah, good point

Matt Jones  11:43 AM
which should be preferred for values — ISO/EML/etc, or the SO fields — when info is duplicated?

Dave Vieglais  11:43 AM
how would we handle that as an object in DataONE though? There’s two metadata docs, with separate PIDs that generate a single index record

Matt Jones  11:44 AM
yeah, that’ why I asked about the ORE
11:44
if we harvest it as a package, we could put both metadata docs in and link them via an ORE
11:44
and index them both with a precedence order

Dave Vieglais  11:45 AM
But they get indexed to separate index docs

Matt Jones  11:45 AM
we’ve always theoretically had the ability to have multiple metadata docs in a package

Dave Vieglais  11:45 AM
so there’s no precedence to consider - each populates a different index record

Matt Jones  11:46 AM
so the package shows up twice in searches? (edited)

Dave Vieglais  11:46 AM
potentially I guess - what happens now if there’s two metadata docs in one package?

Matt Jones  11:47 AM
I’m not sure we have encountered it
11:47
we’ve talked about doing it, but so far I think client tools avoid doing so
11:48
another use case for it is to have dataset metadata for data files (EML/ISO) and software metadata for software files (e.g., CodeMeta)

Dave Vieglais  11:49 AM
I guess the ORE really represents the single thing that is actually discovered

Matt Jones  11:49 AM
yeah

Dave Vieglais  11:49 AM
kind of flips the UI around a bit

Matt Jones  11:49 AM
but the indexer treats the METADATA records as primary, and then pulls in the ORE later to link to other parts of the package
11:49
so I think we straddle both models a bit
11:50
in theory I think the package is the right metaphor for an “entry” in our index
11:50
i.e., we should be indexing complex data packages and their content

Dave Vieglais  11:52 AM
yeah, resulting in one index row per package, with lots of properties on that row.

Matt Jones  11:52 AM
this is also the root of the DOI assignment issue between LTER and our other systems. In Metacat, we assign the DOI to the metadata doc, and it is used in the citation. In LTER they assign the DOI to the package, and it doesn’t show up properly in our citation. There’s an old issue around on this.

Dave Vieglais  11:54 AM
Yeah, I wondered about that. DOI should really point to the resource map, since from there you can discover the pieces of the package. imho

Matt Jones  11:54 AM
https://redmine.dataone.org/issues/8077
11:55
yeah, it just came from our historical use of EML as the “package” listing, with entities referenced in the EML, and ORE only added in later

Dave Vieglais  11:55 AM
yep

Matt Jones  11:56 AM
ok, well, thoughts on how I should respond to James given this context?
11:56
maybe I could tell them SO is an option, but then their EML wouldn’t be indexed, but that we hope to support both in the future?
11:57
or I could tell them SO is an option, and we could discuss the ramifications on a call?
11:58
sounds like its going to be low priority for them to keep their Metacat running

Dave Vieglais  11:59 AM
probably the second choice. SO option and a call to discuss consequences

Matt Jones  12:00 PM
sounds good
12:00
should we open an issue on resolving the multiple metadata problem in SO links in the future?

Dave Vieglais  12:01 PM
yeah, good point

Matt Jones  12:01 PM
a lot of this slack convo would be good background
12:01
where would that go? d1_cn_index_processor? (edited)

Dave Vieglais  12:03 PM
I’d be inclined to drop it in dataone

Matt Jones  12:04 PM
ah the top level repo?
12:04
ok, I’lll enter it there
New

Dave Vieglais  12:04 PM
there’s some other stuff in there at about the same level - and this SO+ thing touches on a bunch of stuff through the whole stack
12:04
thanks

As for other solutions, I wonder how well it'd work if, when we encounter a reference to a more detailed record (via a schema:subjectOf triple with a suitable schema:encodingFormat for our systems), we just harvest and use that as the primary metadata record for dataset/DataPackage.
If we did want to hang on to the original JSON-LD and any other alternate formats we didn't havest, an appropriate place might be in the ORE using rdfs:seeAlso or ore:similarTo (See Section 4.4 in the ORE Spec).


added SMTP support and removed resend dependency

Description
Added SMTP support
Changes

Removed resend
Added  nodemailer
added support for SMTP

fixes #282

Lol, I'll definitely look into this. Thanks

@Chigala to merge this that checklist above from @ericallam needs to be completed

@matt-aitken I've already sent pull requests to the docker and fiy.io repositories.

@Chigala when you get a chance could you check my comment above?

is this planned? I can recreate the PR and update the code if @Chigala is not available

also happy to help work on a revival of this :pray:

Thanks for this PR @Chigala, sorry it's taken so long. There's a new PR inspired by this #1580.


target_kinetis.py AttributeError: 'AccessPort' object has no attribute 'read32'

Hi @flit ,
I met a strange problem on kl28z target.
Sometimes there occur exception in target\family\target_kinetis.py:
AttributeError: 'AccessPort' object has no attribute 'read32',
I know it is hardware issue, but how to make it do not display AttributeError.
Thanks.
Full logs:
0000250:WARNING:common:STLink and CMSIS-DAPv2 probes are not supported because no libusb library was found.
0000250:INFO:board:Target type is kl28z
0000254:INFO:coresight_target:Asserting reset prior to connect
0000269:INFO:dap:DP IDR = 0x2ba01477 (v1 rev2)
0005276:INFO:ap:AP#0 IDR = 0x02000000 (AP var0 rev0)
0005276:INFO:ap:AP#1 IDR = 0x02000000 (AP var0 rev0)
0005276:INFO:ap:AP#2 IDR = 0x02000000 (AP var0 rev0)
0005276:ERROR:target_kinetis:KL28x: bad MDM-AP IDR (is 0x02000000)
0015286:CRITICAL:__main__:uncaught exception: 'AccessPort' object has no attribute 'read32'
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\pyocd\__main__.py", line 398, in run
    self._COMMANDS[self._args.cmd](self)
  File "C:\Python27\lib\site-packages\pyocd\__main__.py", line 742, in do_gdbserver
    with session:
  File "C:\Python27\lib\site-packages\pyocd\core\session.py", line 343, in __enter__
    self.open()
  File "C:\Python27\lib\site-packages\pyocd\core\session.py", line 461, in open
    self._board.init()
  File "C:\Python27\lib\site-packages\pyocd\board\board.py", line 85, in init
    self.target.init()
  File "C:\Python27\lib\site-packages\pyocd\core\soc_target.py", line 120, in init
    seq.invoke()
  File "C:\Python27\lib\site-packages\pyocd\utility\sequencer.py", line 213, in invoke
    resultSequence.invoke()
  File "C:\Python27\lib\site-packages\pyocd\utility\sequencer.py", line 208, in invoke
    resultSequence = call()
  File "C:\Python27\lib\site-packages\pyocd\target\family\target_kinetis.py", line 121, in check_flash_security
    self.aps[0].read32(CortexM.DHCSR)
AttributeError: 'AccessPort' object has no attribute 'read32'

Hi @Hoohaha. This is a strange error! For some reason I don't recall seeing anything like this when I was working on the KL28 after we got the silicon back.
Some questions for you:

Is it intermittent?
Is the same value always returned?
Does it only happen when using the under-reset connect mode?
Could it be related to power state, like the target is sleeping? (Some devices from other vendors sometimes have a similar behaviour where they return weird values in certain power states.)
Is there a known way to recover?

Anything else you know about the issue would be helpful. (We can chat by email if you want.)


Building versionName/versionCode from data external (to lambda)

I guess this is more of a question.. How would it be possible to customize the versionName/versionCode using data not provided as input to the lambda (GitTag, ProviderFactory, VariantInfo)?
Context: I'm building an opinionated wrapper plugin around app-versioning and would like to declare my own plugin extension that app projects populate. Those extension properties would be used in the overrideVersionName lambda to calculate the version name.
If I try to use my custom extension property in the overrideVersionName lambda like this:
class WrapperPlugin : Plugin<Project> {
   override fun apply(project: Project) {
        project.plugins.withType<AppPlugin> {

            // exposes a "myFilter" Property<String>
            val wrapperExtension: WrapperExtension = project.extensions.create(
                "wrapper", WrapperExtension::class.java
            )
            project.plugins.apply("io.github.reactivecircus.app-versioning")
            val extension = project.extensions.getByType(AppVersioningExtension::class.java)

            // mapping the myFilter extension property to the app-versioning property works fine
            extension.tagFilter.set(wrapperExtension.myFilter.map { "*+${it}" })

            // accessing the myFilter extension property here fails
            extension.overrideVersionName  { gitTag, providerFactory, variantInfo ->
               //do some logic based on the myFilter value
                wrapperExtension.myFilter.get()
            }
       }

I get the error:
Property 'kotlinVersionNameCustomizer' with value '(io.github.reactivecircus.appversioning.GitTag, org.gradle.api.provider.ProviderFactory, io.github.reactivecircus.appversioning.VariantInfo) -> kotlin.String' cannot be serialized
Am I missing something obvious here?
Basically, I guess I would like "myFilter" to be a part of the input to the GenerateAppVersionInfo task.

This is tricky.
The cannot be serialized error is probably due to the Extensions (WrapperExtension) being dynamic object in gradle which can't be serialized.
If you try to get the value of wrapperExtension.myfilter.get() before overrideVersionName, you'll get Cannot query the value of extension 'wrapper' property 'myFilter' because it has no value available. as the values won't be available before the project is evaluated.
The only workaround I can think of right now is:
class WrapperPlugin : Plugin<Project> {
    override fun apply(project: Project) {
        project.plugins.withType<AppPlugin> {
            val wrapperExtension = project.extensions.create("wrapper", WrapperExtension::class.java)
            project.plugins.apply(AppVersioningPlugin::class.java)
            val extension = project.extensions.getByType(AppVersioningExtension::class.java)

            val myFilter = AtomicReference<String>(null)
            project.afterEvaluate {
                myFilter.set(wrapperExtension.myFilter.get())
            }

            extension.overrideVersionName { gitTag, providerFactory, variantInfo ->
                myFilter.get()
            }
        }
    }
}

I could change the plugin to add tagFilter to the overrideVersionCode|Name lambda parameters (maybe wrap them in a Metadata object), but it feels weird to just add tagFilter and not the others.
The other option is to add a val metadata = objects.property<Any>().convention(null) extension which is passed into the overrrideVersionCode|Name lambda by the plugin. But I'm not sure if being able to customize the versionCode/name from the extension of another plugin is a common use case.

This is tricky.
The cannot be serialized error is probably due to the Extensions (WrapperExtension) being dynamic object in gradle which can't be serialized.
If you try to get the value of wrapperExtension.myfilter.get() before overrideVersionName, you'll get Cannot query the value of extension 'wrapper' property 'myFilter' because it has no value available. as the values won't be available before the project is evaluated.
The only workaround I can think of right now is:
class WrapperPlugin : Plugin<Project> {
    override fun apply(project: Project) {
        project.plugins.withType<AppPlugin> {
            val wrapperExtension = project.extensions.create("wrapper", WrapperExtension::class.java)
            project.plugins.apply(AppVersioningPlugin::class.java)
            val extension = project.extensions.getByType(AppVersioningExtension::class.java)

            val myFilter = AtomicReference<String>(null)
            project.afterEvaluate {
                myFilter.set(wrapperExtension.myFilter.get())
            }

            extension.overrideVersionName { gitTag, providerFactory, variantInfo ->
                myFilter.get()
            }
        }
    }
}

I could change the plugin to add tagFilter to the overrideVersionCode|Name lambda parameters (maybe wrap them in a Metadata object), but it feels weird to just add tagFilter and not the others.
The other option is to add a val metadata = objects.property<Any>().convention(null) extension which is passed into the overrrideVersionCode|Name lambda by the plugin. But I'm not sure if being able to customize the versionCode/name from the extension of another plugin is a common use case.

Thanks for the input.
It seems even the
            project.afterEvaluate {
                myFilter.set(wrapperExtension.myFilter.get())
            }

cannot be done (it triggers Cannot query the value of extension 'wrapper' property 'myFilter' because it has no value available)
I've sort of paused the idea for now.
I understand that this is probably a niche use case so it makes sense to not pollute the API with these specific requirements.
However, I think it the metadata idea could make sense at some point. Perhaps as an optionally implemented "overloaded" lambda with this extra parameter. It would definitely lift the current constraints and make it flexible for use cases similar to mine (hydrating the lambda with external data).

Thanks for the input.
It seems even the
            project.afterEvaluate {
                myFilter.set(wrapperExtension.myFilter.get())
            }

cannot be done (it triggers Cannot query the value of extension 'wrapper' property 'myFilter' because it has no value available)
I've sort of paused the idea for now.
I understand that this is probably a niche use case so it makes sense to not pollute the API with these specific requirements.
However, I think it the metadata idea could make sense at some point. Perhaps as an optionally implemented "overloaded" lambda with this extra parameter. It would definitely lift the current constraints and make it flexible for use cases similar to mine (hydrating the lambda with external data).

cannot be done (it triggers Cannot query the value of extension 'wrapper' property 'myFilter' because it has no value available)
I've sort of paused the idea for now.

Hmm, I was able to do get this to work locally. How are you defining your WrapperExtension?
This is how I defined it:
open class WrapperExtension internal constructor(objects: ObjectFactory) {
    val myFilter = objects.property<String>().convention(null)
}

cannot be done (it triggers Cannot query the value of extension 'wrapper' property 'myFilter' because it has no value available)
I've sort of paused the idea for now.

Hmm, I was able to do get this to work locally. How are you defining your WrapperExtension?
This is how I defined it:
open class WrapperExtension internal constructor(objects: ObjectFactory) {
    val myFilter = objects.property<String>().convention(null)
}

This is how my extension is defined:
open class WrapperExtension @Inject constructor(objectFactory: ObjectFactory) {
    val myFilter: Property<String> = objectFactory.property(String::class)
}

perhaps the convention is the key?

This is how my extension is defined:
open class WrapperExtension @Inject constructor(objectFactory: ObjectFactory) {
    val myFilter: Property<String> = objectFactory.property(String::class)
}

perhaps the convention is the key?

That doesn't seem to make a difference. Unless you're not actually setting myFilter in your custom plugin configuration?
Here are all the changes I have locally:
In buildSrc/build.gradle.kts:
dependencies {
    ...
    implementation("io.github.reactivecircus.appversioning:app-versioning-gradle-plugin:0.8.1")
}

gradlePlugin {
    plugins {
        register("wrapper") {
            id = "wrapper-plugin"
            implementationClass = "io.github.reactivecircus.streamlined.WrapperPlugin"
        }
    }
}

In my buildSrc/WrapperPlugin.kt:
package io.github.reactivecircus.streamlined

import com.android.build.gradle.internal.plugins.AppPlugin
import io.github.reactivecircus.appversioning.AppVersioningExtension
import io.github.reactivecircus.appversioning.AppVersioningPlugin
import java.util.concurrent.atomic.AtomicReference
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.model.ObjectFactory
import org.gradle.kotlin.dsl.property
import org.gradle.kotlin.dsl.withType

class WrapperPlugin : Plugin<Project> {
    override fun apply(project: Project) {
        project.plugins.withType<AppPlugin> {
            val wrapperExtension = project.extensions.create("wrapper", WrapperExtension::class.java)
            project.plugins.apply(AppVersioningPlugin::class.java)
            val extension = project.extensions.getByType(AppVersioningExtension::class.java)

            val myFilter = AtomicReference<String>(null)
            project.afterEvaluate {
                myFilter.set(wrapperExtension.myFilter.get())
            }

            extension.overrideVersionName { gitTag, providerFactory, variantInfo ->
                myFilter.get()
            }
        }
    }
}

open class WrapperExtension internal constructor(objects: ObjectFactory) {
    val myFilter = objects.property<String>().convention(null)
}

Finally in the app/build.gradle.kts:
plugins {
    `wrapper-plugin`
    id("com.android.application")
    kotlin("android")
    ...
}

wrapper {
    myFilter.set("0-9]*.[0-9]*.[0-9]*")
}

...

Running ./gradlew generateAppVersionInfoForDebug produces:
> Task :app:generateAppVersionInfoForDebug
Generated app version code: 300.
Generated app version name: "0-9]*.[0-9]*.[0-9]*".

That doesn't seem to make a difference. Unless you're not actually setting myFilter in your custom plugin configuration?
Here are all the changes I have locally:
In buildSrc/build.gradle.kts:
dependencies {
    ...
    implementation("io.github.reactivecircus.appversioning:app-versioning-gradle-plugin:0.8.1")
}

gradlePlugin {
    plugins {
        register("wrapper") {
            id = "wrapper-plugin"
            implementationClass = "io.github.reactivecircus.streamlined.WrapperPlugin"
        }
    }
}

In my buildSrc/WrapperPlugin.kt:
package io.github.reactivecircus.streamlined

import com.android.build.gradle.internal.plugins.AppPlugin
import io.github.reactivecircus.appversioning.AppVersioningExtension
import io.github.reactivecircus.appversioning.AppVersioningPlugin
import java.util.concurrent.atomic.AtomicReference
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.model.ObjectFactory
import org.gradle.kotlin.dsl.property
import org.gradle.kotlin.dsl.withType

class WrapperPlugin : Plugin<Project> {
    override fun apply(project: Project) {
        project.plugins.withType<AppPlugin> {
            val wrapperExtension = project.extensions.create("wrapper", WrapperExtension::class.java)
            project.plugins.apply(AppVersioningPlugin::class.java)
            val extension = project.extensions.getByType(AppVersioningExtension::class.java)

            val myFilter = AtomicReference<String>(null)
            project.afterEvaluate {
                myFilter.set(wrapperExtension.myFilter.get())
            }

            extension.overrideVersionName { gitTag, providerFactory, variantInfo ->
                myFilter.get()
            }
        }
    }
}

open class WrapperExtension internal constructor(objects: ObjectFactory) {
    val myFilter = objects.property<String>().convention(null)
}

Finally in the app/build.gradle.kts:
plugins {
    `wrapper-plugin`
    id("com.android.application")
    kotlin("android")
    ...
}

wrapper {
    myFilter.set("0-9]*.[0-9]*.[0-9]*")
}

...

Running ./gradlew generateAppVersionInfoForDebug produces:
> Task :app:generateAppVersionInfoForDebug
Generated app version code: 300.
Generated app version name: "0-9]*.[0-9]*.[0-9]*".

Thanks a lot for looking into this. I'll try to replicate what you did and figure out why it fails on my side.

Thanks a lot for looking into this. I'll try to replicate what you did and figure out why it fails on my side.


RP animation autocomplete doesn't work in subdirectories

Describe the bug
It looks like the plugin doesn't treat the animation files in sub-directories as animations. There is no autocomplete.
To Reproduce

Create an animation file in in your projecti n resource_packs/<pack-name>/animations
Start typing random properties used in animation to see if there is an autocomplete
Move the file to subdirectory resource_packs/<pack-name>/animations/test
Try writing to the file again (there is no autocomplete)

Expected behavior
Subdirectories are and have always been supported by Minecraft packs, the plugin should also accept them.
Additional context
Other pack objects also can use subdirectories. Here is a short list in case the blockception plugin also doesn't support them (i didn't check). It's not a full list but its probably safe to assume that subdirectoreis are supported everywhere, that's just a list of folders that use subdirectories on a project that I'm currently working on:

behavior_packs/<pack name>/items
behavior_packs/<pack name>/loot_tables
behavior_packs/<pack name>/animation_controllers
behavior_packs/<pack name>/animations
behavior_packs/<pack name>/entities
behavior_packs/<pack name>/spawn_rules
behavior_packs/<pack name>/trading
resource_packs/<pack name>/entity
resource_packs/<pack name>/animations
resource_packs/<pack name>/animation_controllers
resource_packs/<pack name>/items
resource_packs/<pack name>/models/entity
resource_packs/<pack name>/particles
resource_packs/<pack name>/render_controllers

Tested this myself and only materials seem to be unable to do subdirectories

Updated all patterns


Add SDL functions binding of float rect and float point render functions

Add SDL_RenderDrawPointF, SDL_RenderDrawLineF, SDL_RenderDrawRectF, SDL_RenderFillRectF, SDL_RenderCopyF, SDL_FRectEmpty, SDL_HasIntersectionF and SDL_IntersectFRect functions binding
Add SDL_FRect and SDL_FPoint classes
Add PHP stub for rect.c
Add example of new drawing functions
It is a pretty big PR, please check it carefully ;)

This is great work!
I love your use of gen_stub.php. It makes development some much quicker and less error prone.
Nice wave animation too!

Thank you for the kind comment and for merging the PR. 😊
The commented line is because I've planned to convert SDL_Renderer and SDL_Texture from the actual type (resource) to a full class. In the end, I realized that it would be too much work for a single PR, but I forgot to clean up. 😅


Zombie melee snipers

Reported by alemismun via steam:
It seems like this happens when a zombie tries to melee from the distance...
Doc meleed Comareiro from out of melee position.
Verse.Log:Warning(String)
RimWorld.Verb_MeleeAttackBase:TryCastShot()
Verse.Verb:TryCastNextBurstShot()
Verse.Verb:VerbTick()
Verse.VerbTracker:VerbsTick()
ZombieLand.Zombie:CustomTick()
ZombieLand.TickManager:ZombieTicking()
ZombieLand.Verse_TickManager_TickManagerUpdate_Patch:ZombieTick()
Verse.TickManager:TickManagerUpdate_Patch0(Object)
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

Object reference not set to an instance of an object
at RimWorld.Verb_MeleeAttackBase.GetDodgeChance (Verse.LocalTargetInfo) <0x0009a>
at RimWorld.Verb_MeleeAttackBase.TryCastShot () <0x0033d>
at Verse.Verb.TryCastNextBurstShot () <0x00040>
at Verse.Verb.VerbTick () <0x0005c>
at Verse.VerbTracker.VerbsTick () <0x00034>
at ZombieLand.Zombie.CustomTick () <0x000bb>
at ZombieLand.TickManager.ZombieTicking () <0x000fd>
at ZombieLand.Patches/Verse_TickManager_TickManagerUpdate_Patch.ZombieTick () <0x00039>
at (wrapper dynamic-method) Verse.TickManager.TickManagerUpdate_Patch0 (object) <0x000d9>
at Verse.Game.UpdatePlay () <0x00015>
at Verse.Root_Play.Update () <0x0004c>

Killing the zombie glitching out fixes the issue, maybe a check could be in place that kills a zombie whenever he tries to become a melee sniper.

It's just a warning. Zombies get less (or better: dynamic) tick time to speed up game play if there are many zombies on the map. This means that by the time the melee hit is processed the target might have moved away but that's nothing that can be checked at the time the melee hit is issued (which can only happen for adjacted targets anyway).
Nothing to do here, I am closing this issue.


Configurable capture filter based on k8s pod and/or namespace?

Is your feature request related to a problem? Please describe.
There may be scenarios where folks only want specific namespaces or pods included in telemetry. This is also an option for limiting resource usage if needed.

Adding a filter is more complicated than first thought and could be accomplished in two ways, each with pros and cons.
Capture
Option 1: BPF filter
Use the k8s client to get a list of pod IPs and use to form part of the bpf filter (eg not host <IP_ADDRESS> or not host <IP_ADDRESS> etc). This is the most effcient because the packets that we aren't interested in are not handed over to the agent from the capture source. How, the k8s client would need to watch for pod changes (add, remove) and signal for the bpf filter to be regenerated and applied to the capture handle. Also, a bpf filter has a maximum length, so applying a many hundreds of pod IPs to ignore could reach the maximum.
Option 2: Ignore when receiving packet
When a packet is received from the capture source, lookup the source & destination IPs and decide if we should continue to handle the packet (eg pass into assembler). This is less efficient than option 1 because packets we don't want will still be captured but this is the earliest opportunity we can ignore them and wouldn't need to recompute & apply a bpf filter.
Option 3: Drop in event handler
This is the easiest but least efficient option. The event handler already has access to a complete event and uses the k8s client to lookup additional k8s metadata.
Deciding what to drop
The second part of the question is more challenging, what traffic should we drop? There are three types of traffic:

external -> pod
pod -> pod
pod > external

Should we omit traffic when one or both IPs are part of the excluded namespace?
What if one of the IPs is external or assigned to a service instead of a pod?
Initial PR and comment that make us pause and think before continuing:

https://github.com/honeycombio/honeycomb-network-agent/pull/278#issuecomment-1760166985

Moving out of beta, we're going to wait for additional feedback before implementing.
The following PR can still be used as a reference when we come back to this issue.

#294

New Option: filter based on pod annotations.


Warning: Tesla implements HVACMode(s): heat_cool, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature

Version of the custom_component: v3.19.8
HA: 2024.2.1 (supervised)

Configuration

Describe the bug
Seeing the warning below in the logs. Doesn't seem to be impacting functionality at this point.
2024-02-11 15:54:28.501 WARNING (MainThread) [homeassistant.components.climate] Entity None (<class 'custom_components.tesla_custom.climate.TeslaCarClimate'>) implements HVACMode(s): heat_cool, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/alandtse/tesla/issues

Debug log

tesla_log.log

I am also getting the same warning (also 3.19.8)

same issue.
[homeassistant.components.climate] Entity None (<class 'custom_components.tesla_custom.climate.TeslaCarClimate'>) implements HVACMode(s): heat_cool, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/alandtse/tesla/issues

should be related to this
https://developers.home-assistant.io/blog/2024/01/24/climate-climateentityfeatures-expanded/

Came here to report this as well.
Is it planned to be fixed?

Same here, although not syncing data from TeslaMate via MQTT

Logger: homeassistant.components.climate
Source: components/climate/__init__.py:370
integration: Climate (documentation, issues)
First occurred: 17:26:51 (1 occurrences)
Last logged: 17:26:51

Entity None (<class 'custom_components.tesla_custom.climate.TeslaCarClimate'>) implements HVACMode(s): heat_cool, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/alandtse/tesla/issues

Same here on 2024.9.1 and 3.24.1


Fix url destination in README

I don't know if *m=1 is some sort of syntax in markdown, but this mislead me to the page:

Sorry, the page you were looking for in this blog does not exist.

oh now i see that its your fork of the coop. i will open the same PR on the origin


Heuristics must support Multi-outputs

Is your feature request related to a problem? Please describe.
Current heuristics do not support multi-output models. For example, SSD outputs both the location of the boxes and the classifications.
Describe the solution you'd like
A way to combine heuristics.
heuristics.combine(Variance(), BALD())
Describe alternatives you've considered
Custom heuristics or inherit ModelWrapper
Additional context
Add any other context or screenshots about the feature request here.
import torch
from torch import nn
from torch.utils.data import Dataset

from baal import ModelWrapper
from baal.active.heuristics import BALD

class MyModel(nn.Module):
    def __init__(self):
        super().__init__()
        self.model = nn.Linear(32, 3)

    def forward(self, x):
        return self.model(x), self.model(x * x)

class MyDataset(Dataset):
    def __len__(self):
        return 30

    def __getitem__(self, idx):
        return torch.randn(32), 1

model = MyModel()
dataset = MyDataset()

wrap = ModelWrapper(model, None)
bald = BALD()
predictions = wrap.predict_on_dataset(dataset, batch_size=32, iterations=10, use_cuda=False)
assert len(bald(predictions)) == len(dataset)

Fixed in v1.1


camera doesn't turn on when i build the sample scenes in android

Description
I tried building different sample scenes in my android device but once i open up the app the camera doesn't turn on, is there a way to fix this?

Please read the Player.log.
adb -s [device_id] logcat Unity:V native:V tflite:V CRASH:E AndroidRuntime:E "*:S"


WebSocket server blocked

Describe the bug
WebSocket server is blocked when client requets.
To Reproduce
Steps to reproduce the behavior:

Run docker server follow this link: https://github.com/wenet-e2e/wenet/blob/main/runtime/libtorch/README_CN.md
Run this client:

import wave
import json
import asyncio
import websockets

# official test wav
file_path = "./test.wav"
url = "ws://<IP_ADDRESS>:10086"

async def hello():
    async with websockets.connect(url) as websocket:
        wf = wave.open(file_path, "rb")
        msg = json.dumps(
            {
                "signal": "start",
                "nbest": 1,
                "continuous_decoding": False
            }
        )
        await websocket.send(msg)
        buffer_size = int(wf.getframerate() * 0.5)
        print(wf.getframerate(), wf.getnframes(), buffer_size)
        data = wf.readframes(buffer_size)
        while data != b"":
            data = wf.readframes(buffer_size)
            print("len data", len(data))
            await websocket.send(data)
            msg = await websocket.recv()
            js = json.loads(msg)
            if "nbest" in js:
                txt = json.loads(js["nbest"])[0]["sentence"]
                print(txt)
            print(msg)
            import time
            time.sleep(0.5)
        msg = json.dumps({
            "signal": "end"
        })
        await websocket.send(msg)

asyncio.run(hello())

Expected behavior
Expect recognize the result: 甚至出现交易几乎停滞的情况
Screenshots
Blocked here:

Desktop (please complete the following information):

OS: MacOS Montery 12.0.1, Docker version 20.10.17, build 100c701

The send and recv should be asynchronous, or send and recv should be in two threads.

$ pip install websocket-client

import wave
import websocket

def on_open(ws):
    ws.send('{"signal": "start", "nbest": 1, "continuous_decoding": false}')
    fin = wave.open("BAC009S0764W0121.wav")
    data = fin.readframes(fin.getnframes())
    interval = int(0.5 * 16000)
    for i in range(0, len(data), interval):
        chunk = data[i: min(i + interval, len(data))]
        ws.send(chunk, websocket.ABNF.OPCODE_BINARY)
    ws.send('{"signal": "end"}')

ws = websocket.WebSocketApp("ws://<IP_ADDRESS>:10086", on_message=lambda _, msg: print(msg))
ws.on_open = on_open
ws.run_forever()

Try this client.py.

@robin1001 @pengzhendong thanks a lot, it works.


Ethernet and Wi-Fi support? (CON-353)

Does Matter support both Ethernet and WiFi concurrently? I see that if Ethernet Telemetry is enabled, Wi-Fi is not supported:
#if CONFIG_ENABLE_ETHERNET_TELEMETRY
#define CHIP_DEVICE_CONFIG_ENABLE_WIFI 0
#define CHIP_DEVICE_CONFIG_ENABLE_ETHERNET 1

@JonathanWitthoeft As per the Matter specification only one of Matter over Wi-Fi, Thread or Ethernet can be supported. Please check Features of Network Commissioning Cluster, section 11.8.5 of v1.0 Matter core specification.

Once Matter is up and running it does not care about Wi-Fi, Thread or Ethernet since that is hidden behind IP networking.  My desktops functions as a router onto all three and Matter works fine on it.  For commissioning you have to pick one, but after you are commissioned you can use all three. To get this telemetry info you'd have to open the correct interface (not covered by the spec). Probably varies with Wifi STA or AP mode too.
Or is this a case of a device with both Wifi and Ethernet support where you have to chose one? I haven't consider how that case would work. Probably need some code of your own to detect that Ethernet was plugged in and to shutdown BLE/Wifi.

Yes @jonsmirl I am developing an update for a product to enable Matter support and network provisioning and that product has both Ethernet and Wi-Fi network interfaces.
You say Wi-Fi or Ethernet doesn't matter because it is hidden behind IP networking, but don't those interfaces have separate MAC addresses and therefore separate IPv6 addresses?
If I were to disconnect the Wi-Fi radio of an already paired device and route all traffic through the Ethernet port, would that even work? I am thinking since IPv6 addresses are derived from the MAC addresses, the Matter accessory would be unreachable.

Yes, Matter would still work if you disconnect the wifi radio and use Ethernet, Matter is using IP networking and it does not rely on the MAC addresses. Matter nodes are located using mDNS on top of IP. This works even if the IP and MAC address change. Apple uses crazy rotating MAC addresses which change every few minutes.
Does your device function as a router? Is it routing IP traffic between Ethernet and Wifi independent of Matter? I suspect it isn't.  In that case I would suggest booting up in BLE/Wifi commissioning mode. Then detect if the Ethernet cable is plugged in. If Ethernet plugged in, switch from BLE/Wifi commissioning mode to Ethernet mode. Note that the only real difference between BLE/Wifi commissioning mode and Ethernet mode is that BLE/Wifi uses BLE to pass in your wifi SSID/PW.

Is this as simple as disabling Wi-Fi and BLE radios, or is there a clean API in this Matter SDK for disabling Wi-Fi/BLE commissioning and reflecting it is disabled? Similar Question for Ethernet, I do not see a single example of enabling Ethernet mode.
I see Wi-Fi commissioning is initialized here, but I don't know if there is a clean way to de-init it:
https://github.com/espressif/esp-matter/blob/main/components/esp_matter/esp_matter_core.cpp#L825-L827
static chip::app::Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0,
                                    &(chip::DeviceLayer::NetworkCommissioning::ESPWiFiDriver::GetInstance()));
sWiFiNetworkCommissioningInstance.Init();

@dhrishi  that's a question for the Espressif people, I have not tried doing that on the ESP platform.

Short term for testing, commission your device using BLE/Wifi and a working AP. Then reboot it onto Ethernet, that should work.

static chip::app::Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0,
                                    &(chip::DeviceLayer::NetworkCommissioning::ESPWiFiDriver::GetInstance()));
sWiFiNetworkCommissioningInstance.Init();

@JonathanWitthoeft This happens when Wifi is enabled i.e, the CHIP_DEVICE_CONFIG_ENABLE_WIFI option is enabled
In the case of Ethernet since this config is disabled so it won't happen but
I have tried creating an ESPEthernetDriver Instance for NetworkCommissioning in project-chip but still, the ethernet commissioning was not working with Apple Home and Google Home

@PSONALl Does this mean Ethernet Commissioning is unsupported in this SDK?
Is there still an active effort to implement this, or is it low priority?

@JonathanWitthoeft for ethernet commissioning we are facing issues with Apple Home and Google Home, We are checking them currently, But the ethernet commissioning works well with chip-tool, You can try it out using following steps:

While building an application, you need to enable ENABLE_ETHERNET_TELEMETRY config option, You can find it in menuconfig under: Component config → CHIP Device Layer → Network Telemetry Options -> Enable Ethernet Telemetry
And for commissioning use chip-tool and do on-network commissioning using this command:./chip-tool pairing onnetwork <node-id> 20202021

@PSONALl I am also trying to commission via Ethernet. I use W5500 chipset and enabled the ENABLE_ETHERNET_TELEMETRY config option in menuconfig. When I try to commission with chip-tool it says CHIP:DIS: Browsing for: _matterc._udp.
I get an IP address after the commission window is opened. Is that causing problem?  I also notice that the OnEthernetPlatformEvent is not executed when the IP_EVENT_ETH_GOT_IP occurs.

@jzwyssig currently we support IP101 chipset for ethernet commissioning

I am having the same issue, I have modified the ConnectivityManagerImpl::InitEthernet() to support the rtl8201 which is working fine and getting an IP but commissioning fails. I have tested the modifications with the all-clusters-app example and commissioning works with chip-tool but does not with my esp-matter project.

@h2zero Can you please upload the ESP side console logs as well as the chip-tool logs so that we can take a look?

@dhrishi Here you go, thanks for looking into it :smiley:
chip-tool-log.txt
esp-log.txt

@h2zero
The chip-tool-log.txt says:

Failed in verifying 'Attestation Information' command received from the device: err 604. Look at AttestationVerificationResult enum to understand the errors

604 is kCertificationDeclarationInvalidVendorId
Can you confirm if the Vendor ID in the Certification Declaration matches that in the Basic Information cluster? Have you done any changes in the default app? Or changed the attestation certs (DAC, PAI) or the Certification Declaration (CD)? If yes, please provide the details

@jzwyssig Can you please upload the ESP side console logs as well as the chip-tool logs so that we can take a look?
Sorry, I missed your previous comment :-)

After that I start matter. In order to make this work I had to comment out esp_event_loop_create_default(); and disable the initialization of the Ethernet driver in ConnectivityManagerImpl_Ethernet.cpp.

This is a bug. @PSONALl Please check

In order to make this work I had to comment out esp_event_loop_create_default(); and disable the initialization of the Ethernet driver in ConnectivityManagerImpl_Ethernet.cpp.

@jzwyssig there was an issue in ethernet commissioning on connectedhomeip due to the changes in Wifi Connectivity Manager but it has been fixed now and made be available soon

Thank you @PSONALl. Can I just pull the latest changes in esp-matter or do I also need to upgrade connectedhomeip?

@jzwyssig you would need to upgrade the connectedhomeip because the fix will be available there

@jzwyssig You also need to patch ConnectivityManagerImpl_Ethernet.cpp as it initialises network interface for ethernet,
Which example are you trying out ? Are you commissioning using a Apple Home or chip-tool?

yes, you need to add this patch: ethernet-fix.patch on esp-matter side to get it working, Once the upstream PR gets merged, we will add this in esp-matter too

I already applied the patch as it is very similar to the code I posted here and I manually replaced the files of connectedhomeip-<IP_ADDRESS> with your changes of the upstream PR.
As I already mentioned, I use W5500 as my lan driver which is working perfectly fine. But after I commission with google home the bridged nodes are offline and with Apple HomeKit it is not working at all. I guess something is still not functioning correctly. I also upgraded to ESP-IDF-5.0.1, but the issue persists.
What did you do to make it work?

@jzwyssig would you mind sharing your driver for the W5500?  I am using the W6100 and would also like to connect over ethernet.
also, either you or @PSONALl , would you be interested in some paid porting?  please email mrriwalker gmail
appreciated.

What did you do to make it work?

@jzwyssig the above two patches worked for me, I am not facing issues after commissioning the device and I can also control it from Apple Home, What issue are you facing? Can you share your device side logs here?

@jzwyssig This looks like an issue with Google home, I will report it to Google issue tracker, but I am able to commission and control a bridged onoff light from Apple Home, Are you able to control your device using Apple Home now?

 It works pefectly fine with the Apple Home app. Thank you for reporting to Google issue tracker.

I will confirm Google Home has these issues. I am hitting a similar issue which you will likely encounter too.
I'm using my own app to commission a BLE/wifi device from Android. Google does not want to share the wifi credentials with me, so when I ask Android to commission the device first Google does a hidden commissioning session to the device using its own fabric where sets in the Wifi credentials. That succeeds, it then opens a commissioning window and my commissioning proceeds over wifi (not BLE).  If this all works, everything is good.
But, let's say my app's commissioning fails for some reason. The device won't be commissioned in my app. So the user hits the commissioning button again. That calls the Google library which rescans the QRCode. Then the Google library is going to set there three minutes and time out.
Why does it do that? Because the hidden commissioning session has given the device wifi credentials so now it is going to use wifi for commissioning instead of BLE. When you retry commissioning, the retry sits there looking for the device on BLE since that is where the QRCode says it is. But Google has silently moved it onto Wifi.
So now Google is stuck. They have to remember this secret commissioning session and then use it to OpenCommissioningWindow on the device using Wifi. That's the only way to get back into contact with the device. If they just sit there looking for it on BLE it is never going to be there unless you factory reset the device.  And that's how I am working around this, if my commissioning code gets an error, I have to factory reset the device.

@PSONALl Would you mind sharing your Ethernet Driver/Network Manager patches that work with the IP101? I am using a LAN8720 but that would give me a good starting point.

@PSONALl Would you mind sharing your Ethernet Driver/Network Manager patches that work with the IP101? I am using a LAN8720 but that would give me a good starting point.

@JonathanWitthoeft You can refer the basic ethernet example from esp-idf here

@jzwyssig It is raised on a Internal Issue Tracker, you wont have access for the link, There is no latest update on the issue

@PSONALl what brings you to the conclusion that this is a bug on Google side? Could you share some insights?

@PSONALl what brings you to the conclusion that this is a bug on Google's side? Could you share some insights?

@jzwyssig Ethernet commissioning works well with chip-tool so I think this is an issue on Google's side

@PSONALI Are there any news or is there any way to accelerate this issue? Today I updated to the newest esp-matter and connectedhomeip branch, but the problem persists. Commissioning is working, bridge is there (online), but bridged endpoints remain offline. Although it is possible to retrieve device informations when tapping on the device's properties. With Wi-Fi everything is working as expected. Thanks!

@PSONALl @mgoeller @jzwyssig I am now experiencing offline bridged endpoints with google using standard Wi-Fi commissioning. It was working at some point but lost functionality. I see the issue with this environment:
esp-idf 5.0.1:
https://github.com/espressif/esp-idf/tree/a4afa44435ef4488d018399e1de50ad2ee964be8
esp-matter:
https://github.com/espressif/esp-matter/tree/273efe2b7c4b8ae4eec257b01c11349a68429705

I loaded an old firmware binary that I knew worked with google home and I am experiencing the same issue. BLE commissioning to a Wi-Fi network and bridged endpoints are offline. So it seems to indeed be something google changed.

For me the WiFi endpoints are still working if I compile using ESP-IDF 5.1 and the newest esp-matter, but still no progress on the wired side. This is very tiring! I wish Espressif would have more of a stand-point here towards Google, so many devices are based on an ESP...
And if its an error on Googles side, how do Philips Hue wired Ethernet Bridges work?

@PSONALl @mgoeller @jzwyssig I am now experiencing offline bridged endpoints with google using standard Wi-Fi commissioning. It was working at some point but lost functionality. I see the issue with this environment:

It turns out my Google Home Mini was on the default "My Home" and I was trying to add the matter device to a separate Google Home name. This caused the accessories to pair, but show as offline. Once I had them both set up using the same home, everything started working again....my bad

Ok, but the problem with Ethernet in Google Home still persists...

@mgoeller I think this is some issue with Google Home App Commissioning, I have reported this problem to Google Issue tracker with all the details, I will let you know once there is an update

@PSONALl I know, but this problem is persisting since 3 months now, and we urgently need a fix. If other platforms (ARM, Silabs etc.) manage to be able to matter pair and communicate via Ethernet (see examples on the market such as Philips Hue Bridge) it can not only be Googles fault...

@mgoeller

If other platforms (ARM, Silabs etc.) manage to be able to matter pair and communicate via Ethernet

Oh, Ok I will look into this issue and will provide a fix soon

Oh, Ok I will look into this issue and will provide a fix soon

FYI there are others of us also waiting for Ethernet to fully work.  Please fix the bug.

@mgoeller @riwalker This should ideally fix the issue https://github.com/project-chip/connectedhomeip/pull/27808/files
We will soon update the connectedhomeip submodule in esp-matter with this. If you want, you can verify this fix by adding the changes locally

@dhrishi @PSONALl I can confirm Ethernet is working now with google home. As I use the W5500 chipset I already provided the necessary callbacks. Therefore, I cannot verify all of your changes. But the magic line that makes everything work is ESP_ERROR_CHECK(esp_netif_create_ip6_linklocal(eth_netif_spi)); in the ETHERNET_EVENT_CONNECTED event.
Thanks!

@dhrishi @PSONALl I can confirm Ethernet is working now with google home. As I use the W5500 chipset I already provided the necessary callbacks. Therefore, I cannot verify all of your changes. But the magic line that makes everything work is ESP_ERROR_CHECK(esp_netif_create_ip6_linklocal(eth_netif)); in the ETHERNET_EVENT_CONNECTED event.
Thanks!

@dhrishi  @PSONALl There is still a problem with ethernet: After successful pairing I add bridged endpoints. They work sometimes and go suddenly offline. I see the following debug output (imported are the last 4 lines):
I (340055) chip[DMG]: Registered a ReadHandler that will schedule a report between system Timestamp: 340057 and system Timestamp 340057.
I (340065) chip[IM]: Resuming subscriptionId<PHONE_NUMBER>
I (340265) chip[DIS]: Checking node lookup status after 200 ms
I (340575) chip[DIS]: UDP:<IP_ADDRESS>%en1:5540: new best score: 2
I (340575) chip[DIS]: UDP:[2001:1708:2580:DD01:104E:1640:A26B:D121%en1]:5540: new best score: 4
I (340585) chip[DIS]: UDP:[2001:1708:2580:DD01:215F:5313:96E5:B383%en1]:5540: score has not improved: 4
I (340595) chip[DIS]: UDP:[2001:1708:2580:DD01:313E:CF5E:3D31:90D0%en1]:5540: score has not improved: 4
I (340605) chip[DIS]: UDP:[2001:1708:2580:DD01:7DA1:14F9:A889:64AE%en1]:5540: score has not improved: 4
I (340615) chip[DIS]: Checking node lookup status after 545 ms
I (340615) chip[SC]: Initiating session on local FabricIndex 1 from 0x000000001D16B0FB -> 0x00000000E34EC3E0
I (340685) chip[EM]: <<< [E:52478i S:0 M:73105355] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1)
I (340685) chip[IN]: (U) Sending msg 73105355 to IP address 'UDP:[2001:1708:2580:DD01:104E:1640:A26B:D121]:5540'
I (340695) chip[SC]: Sent Sigma1 msg
I (341045) chip[IN]: (U) Sending msg 73105355 to IP address 'UDP:[2001:1708:2580:DD01:104E:1640:A26B:D121]:5540'
I (341405) chip[IN]: (U) Sending msg 73105355 to IP address 'UDP:[2001:1708:2580:DD01:104E:1640:A26B:D121]:5540'
I (342005) chip[IN]: (U) Sending msg 73105355 to IP address 'UDP:[2001:1708:2580:DD01:104E:1640:A26B:D121]:5540'
E (342015) chip[EM]: Ignoring transient send error: 3000001 on exchange 52478i
I (342905) chip[IN]: (U) Sending msg 73105355 to IP address 'UDP:[2001:1708:2580:DD01:104E:1640:A26B:D121]:5540'
E (342905) chip[EM]: Ignoring transient send error: 3000001 on exchange 52478i
E (344525) chip[EM]: Failed to Send CHIP MessageCounter:73105355 on exchange 52478i sendCount: 4 max retries: 4
E (346905) chip[SC]: CASESession timed out while waiting for a response from the peer. Current state was 4
E (346905) chip[DMG]: Failed to establish CASE for subscription-resumption with error '32'

What could this be related to?

@dhrishi I experience the same errors as @jzwyssig

@jzwyssig @mgoeller Thank you for notifying of this issue. I have raised a PR to connectedhomeip here: https://github.com/project-chip/connectedhomeip/pull/28520 which solves this issue, We will merge it soon to the esp-matter submodule and I will notify you once it gets merged

Fixed with 5d94b80517e7b1940667b43d7ebe4ef8c33a66d1


Can't scroll up?

The console is limited to whatever is on my computer monitor. I can't seem to scroll up to see previous commands or output if it exceeds the viewing screen.

As you can see in the image, there is no scroll bar, and I can't scroll up to see the previous input. Any help would be appreciated. Thanks.

Right click the title bar, "Properties"... "Layout", then change the "Screen Buffer Size" height to something like 9000.
Sometimes, if you change those properties inside an application like vim, the height can get clipped to the window size. I don't have a good repro on the exact steps yet, but the above should fix it.

Awesome, thanks.

You can always pipe the output to less as well. You can then scroll it using PgUp/PgDown:
apt-get | less

This never used to be an issue for me but has become an issue recently. Has something changed?

@mstrelan It can happen occasionally. It might be due to changing your console settings while in the alternate buffer, but it could also be something else that I don't understand at all. There was a kernel bug a few weeks ago that caused lxss to think the TTY size was the screen buffer size, not the window size, but that was fixed and shouldn't be happening anymore. Fixing the "Screen Buffer Height" property should be enough to fix this behavior (and not have it come back on re-launch)

I've changed the screen buffer height property to 999 (it doesn't let me go any higher) and I still have the problem of a very limited scrollback.

Thanks for the discussion.
Closing this issue since:

This issue is very old and has likely been fixed in recent Win10 builds
This is the WSL issues repo, but this is an issue in Console which has its own Console GitHub Repo
GitHub doesn't allow issues to be moved between repos, preserving posters' identity :(

If you have further asks/issues, please file new issues on our Console GitHub Repo.

Hi there, this just happened to me and the buffer size fix didn't work for me, any suggestions?

Oops, saw my error, @kjohnsen you were probably making the same mistake, it's the buffer size in the Layout tab, not the one in the Options tab.

@luchillo17 As a matter of interest, are you running Windows 10 > 1903 and not using Windows Terminal?

Not sure what you mean with Windows Terminal, just using the Ubuntu 20.04 package from the Windows Store, hope this answers your question:

This just happened to me for the first time too.  Invoking wsl from the windows key.  Windows build 19042.1110
uname -a
Linux Dev13 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux


Remove key file when migration fails.

We can leave the key file in an unexpected state if the migration fails before we write on it.
This changes the migration behavior to remove the new file if there is any error.
Fixes #15247
/cc @diogomonica, @ibuildthecloud
Signed-off-by: David Calavera<EMAIL_ADDRESS>

I'm not sure how to test this in a reliable way.

LGTM if janky is ok

LGTM

Looks like this will not remove oldPath if there is an error, so removing newPath should be safe.
LGTM.

cherry picked into #15091


Replace usage of capacity and offset fields with std::vector size() and capacity()

Solved in 1097c34


Upgrade Piglet.app to v0.3.0

Thank you for the contribution. It was merged directly as 30a1e3d2d93b179d5b350d79ec4a9bab5807ce7a to keep commit history cleaner. Your contribution is still credited to you.