refactor(analytical): Remove nativeLibLoader in GRAPE-jdk

Committed-by: zhanglei1949 from Dev container
Currently we pack the libgrape-jni.so/dylib into grape-runtime-shaded-{}.jar and  use NativeLibLoader to load the jni lib at runtime. But If we want to package GRAPE-jdk into GraphScope wheel package, we need to user auditwheel to reorg the dynamic linking and RPATH staffs.
So maybe we should abandon current approach, just copy libgrape-jni to /opt/graphscope/lib, such that is can be found by auditwheel.

What do these changes do?

Related issue number

Related Issue: #3064

If I understand it correctly, the grape-jdk would be distributed both along with the wheel package and standalone as a jar from maven (or from mvn install). So, it would be better to use something like trying system-wide LoadLibrary first, and if failed, fallback to the nativeLibLoader.

Just saying, if we are determined to install libgrape-jni.so to ${GRAPHSCOPE_HOME}/lib, using nativeLibLoader seems dummy(cause it try to find .so in jar). And since grape-runtime.jar is not distributed via maven central repo, and we don't need to take care about backward compatibility. So, If user use the correct version of grape-jdk, the Library Loading will work as expected.

Codecov Report

Merging #3065 (3b50980) into main (33576bf) will decrease coverage by 38.91%.
The diff coverage is n/a.

Additional details and impacted files

@@             Coverage Diff             @@
##             main    #3065       +/-   ##
===========================================
- Coverage   74.72%   35.81%   -38.91%
===========================================
  Files         100      100
  Lines       10823    10820        -3
===========================================
- Hits         8087     3875     -4212
- Misses       2736     6945     +4209

see 68 files with indirect coverage changes

Continue to review full report in Codecov by Sentry.

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


完善space的其他设置

完善space的其他设置

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@huangapple 需要签一下 CLA

signed


Rename param sql_statement to sql in get_value_list

Description
closes: #865 #866

What is the new behavior?

Does this introduce a breaking change?
Checklist

[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

There is a run_sql method in databases/base.py which still accepts sql_statement as an argument
https://github.com/astronomer/astro-sdk/blob/ddf7f12b723595d88991d286fc39612cec6de455/python-sdk/src/astro/databases/base.py#L82
. I think that may still cause a confusion and we might use sql_statement across other places later by considering this argument. I believe we called it sql_statement here by referring to that in the first place. In my opinion, it makes sense to rename that argument to sql too and correct the usages in our codebase.

run_sql we have already released so not sure whether to deprecate that now or not. WDYT?

There is a run_sql method in databases/base.py which still accepts sql_statement as an argument
https://github.com/astronomer/astro-sdk/blob/ddf7f12b723595d88991d286fc39612cec6de455/python-sdk/src/astro/databases/base.py#L82
. I think that may still cause a confusion and we might use sql_statement across other places later by considering this argument. I believe we called it sql_statement here by referring to that in the first place. In my opinion, it makes sense to rename that argument to sql too and correct the usages in our codebase.

run_sql we have already released so not sure whether to deprecate that now or not. WDYT?

Since this is a base class method, I don't think external users are using it. My point to rename this was so that we have the argument consistent in our codebase and no one later uses sql_statement in other places by referring to this argument name.
What are your thoughts? @tatiana @phanikumv @utkarsharma2 @sunank200 @feluelle @kaxil ?

@pankajastro  PR description has some unfilled details !

Since this is a base class method, I don't think external users are using it. My point to rename this was so that we have the argument consistent in our codebase and no one later uses sql_statement in other places by referring to this argument name.

No strong opinion on that since it is not a user-facing class.

There is a run_sql method in databases/base.py which still accepts sql_statement as an argument
https://github.com/astronomer/astro-sdk/blob/ddf7f12b723595d88991d286fc39612cec6de455/python-sdk/src/astro/databases/base.py#L82
. I think that may still cause a confusion and we might use sql_statement across other places later by considering this argument. I believe we called it sql_statement here by referring to that in the first place. In my opinion, it makes sense to rename that argument to sql too and correct the usages in our codebase.

run_sql we have already released so not sure whether to deprecate that now or not. WDYT?

Since this is a base class method, I don't think external users are using it. My point to rename this was so that we have the argument consistent in our codebase and no one later uses sql_statement in other places by referring to this argument name.
What are your thoughts? @tatiana @phanikumv @utkarsharma2 @sunank200 @feluelle @kaxil ?

We need to have consistency across the repo and risk is less since its a base class internal method. So my thought is to rename it there as well

I am all-in for deprecating sql_statement and making it consistent across the codebase. Note that renaming it is a breaking change. So we might want to deprecate this arg by creating a new function and calling the new function from the old function and raising a deprecation warning inbetween.

I am all-in for deprecating sql_statement and making it consistent across the codebase. Note that renaming it is a breaking change. So we might want to deprecate this arg by creating a new function and calling the new function from the old function and raising a deprecation warning inbetween.

Any thought on new function name?

We need to have consistency across the repo and risk is less since its a base class internal method. So my thought is to rename it there as well

renaming looks like a breaking change since there is not sign that this function is internal.

I don't think we should have breaking changes in a minor release.
cc: @kaxil

We don't need to create a separate run_sql_query method, we can just deprecate the kwarg sql_statement

I'm ignoring code coverage at few places in this PR created a followup ticket to fix it https://github.com/astronomer/astro-sdk/issues/870


style: space creation menu overlap

The space creation menu overlap with the topnav, we should fix this:

The buttons to cast a vote also overlap

Here too with tooltip (tooltip should appear in front of topnav)


SSL: CERTIFICATE_VERIFY_FAILED

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
How to run request with verify=False ?

If you look in the constructor you can see the option:
def __init__(self, host, username, password, ssl_verify=True):

so just use the argument ssl_verify=False to disable host SSL cert verification
If you need SSL client cert authentication, you can try my fork: https://github.com/stevegoossens/python-zenoss/tree/with-cert


It doesn't work because the environment variable won't be passed to the next step

Here's the config:
    - name: Docker Hub Login
      uses: Azure/docker-login@v1
      with:
        login-server: index.docker.io
        username: ${{ secrets.dockerhub_registry_username }}
        password: ${{ secrets.dockerhub_registry_password }}

    - name: Publish image to Docker Hub
      shell: bash
      run: |
          make push

Makefile:
https://github.com/0o100/docker-eureka/blob/master/Makefile
Failure logs:
https://github.com/0o100/docker-eureka/commit/4925128529204566e61546c87a2d3ea472685107/checks?check_suite_id=324214506
2c6ac8e5063e: Waiting
cc967c529ced: Waiting
denied: requested access to the resource is denied
Makefile:38: recipe for target 'push' failed
make: *** [push] Error 1
##[error]Process completed with exit code 2.

I too was just having this issue. I had my password wrong. It's working now. Check your credentials.

@addnab My credentials were correct. I was just wondering why I need this action, after I successfully logged in with the following single line:
docker login docker.io -u ${{ secrets.dockerhub_registry_username }} -p ${{ secrets.dockerhub_registry_password }}

This works.
("the environment variable won't be passed to the next step" is not relevant since the docker config is used.)
    - name: Docker Login
      uses: azure/docker-login@v1
      with:
        login-server: docker.pkg.github.com
        username: $GITHUB_ACTOR
        password: ${{ secrets.GITHUB_TOKEN }}

    - name: Docker Build & Push
      run: |
        export DOCKER_TAG=docker.pkg.github.com/$GITHUB_REPOSITORY/github-deployment-test:${GITHUB_REF#refs/heads/}
        docker build . -t $DOCKER_TAG
        docker push $DOCKER_TAG

You could use ${{ env.GITHUB_ACTOR }} instead. This would do the parsing of the environment variable before it reaches the login logic in the action

@ds-ms unfortuantely this does not work:
    - name: Docker Login
      uses: azure/docker-login@v1
      with:
        login-server: docker.pkg.github.com
        username: ${{ env.GITHUB_ACTOR }}
        password: ${{ secrets.GITHUB_TOKEN }}

@stefan2904 Sorry I missed this message. I think given that the github_actor is a part of the github context; you could have used something like ${{ github.actor }} or something equivalent to that.


gcs_stage updates state with data being available in table if job crashes

I don't know if this is expected behaviour or maybe something that is inherit in how meltano/singer works. But we had a load job timeout yesterday and noticed that the state gets updated when data is written to gcs even if the data never gets available in bigquery. If expected behaviour, what is the recommended way to handle issues like this? have a job that rolls back the state if loading fails?

Hello, I remember having a similar issue (with another loader) but it was because I was using an old version, can you confirm which one are you using, please?
Also any logs would help

I'm using this version
https://github.com/z3z1ma/target-bigquery/tree/654920c90dba26e6cfc4019393f6a1ac86a00a14
I now realize that maybe it wasn't the Load Pattern, but rather how the target handles One or more records have exceeded the max age of 5.0 minutes. Draining all sinks.
Because I changed to using the batch_job method and now I get this in the logs
[2m2024-09-11T10:39:02.980422Z [0m [info     ] 2024-09-11 10:39:02,979 | INFO     | target-bigquery      | One or more records have exceeded the max age of 5.0 minutes. Draining all sinks. cmd_type=elb consumer=True job_name=
[2m2024-09-11T10:40:08.358925Z [info     ] 2024-09-11 10:40:08,358 | INFO     | target-bigquery      | Emitting completed target state {"bookmarks": {"": {"last_replication_method": "INCREMENTAL", "replication_key": "LAST_UPDATE_TIME", "version":<PHONE_NUMBER>550, "replication_key_value": "2024-08-13T12:29:32.00+00:00"}}, "currently_syncing": ""}
[2m2024-09-11T10:40:08.366980Z [info     ] Writing state to Google Cloud Storage
[2m2024-09-11T10:40:08.832454Z [info     ] Incremental state has been updated at 2024-09-11 10:40:08.832416.
But the data only gets written to the temp table. I guess a clean_up would have to be called or somehow the state writing would need to be removed.

I think I know what happens now.
This gets called _handle_max_record_age()
https://github.com/meltano/sdk/blob/6708cb995c68ab6f74d4874dfc8f978c3b054ceb/singer_sdk/target_base.py#L284
which in turn calls drain_all() https://github.com/z3z1ma/target-bigquery/blob/81046a4c77d2ea6dd2409a3ac171b949625fe0b4/target_bigquery/target.py#L553
which writes out a state. If I'm running upsert I would suspect it to also run the merge statement there as well so that new data that is written to the state is also written in the target table.
I'll close this issue and create a new one that more accurately describes the issue and will try to create a PR with a fix.


updated for android support v22

Updated the code to support the changes in v22 support libraries

I signed the CLA

I signed the CLA and added my alternate email address

I confirm I created the changes

confirmed

confirmed

Confirmed alternate email address in github and google account


Setting default thumbnail when no banner image is present for recent articles

Setting default thumbnail when no banner image is present for a recent article.
Default thumbnail image was present in the css/images folder but was not being used.
This change updates the recent_articles.html widget partial code to use the default thumbnail image when no banner image is present in the post.
This would be useful for blogs which don't have banner (featured) image set for all posts.
Tested with
Windows 10, Hugo v0.15
Regards,
Kanishk

Thanks for improving this theme :+1:

I've added the same to the summary layout (see 400b5edf2dc70dbd5e87071bcce63bb86db5463a) which is lists all articles in a category.


Rework threaded resource loading

I've reworked the resource loader so all the kinds of loads (current thread, another thread, multiple threads) cooperate better among them regardless which are in flight. This should get rid of some or all of the issues that users are encountering in this area. (I've come across some crashes due to some of the resources being loaded being of classes which are not thread-safe, but those are separate issues.)
The exposed API is the same, but the inner workings of the loaders are changed so that they have more common code paths.
Progress reporting also works now! It has room for improvement, but at least it goes from 0 to 1 with growing intermediate values.
~TODO: Progress reporting is still not done.~
There are plans to maybe re-rewrite this based on a worker thread pool, but this should serve as a better base than the former implementation.
Supersedes #74120.
Supersedes #74108.
Fixes #56882.
All that said, I need help testing this, because I've run out of time. CC @godotengine/production

@Anixias, I'm not completely sure your issue is due to resource loading, but could you give this PR a try?
@mrTag, once again I'm summoning you, this time for testing this attempt of mine to fix the thing.

There's still an issue to fix before testing. I'll write another comment when ready.

This is ready for testing, so this comment is relevant again:

@Anixias, I'm not completely sure your issue is due to resource loading, but could you give this PR a try?
@mrTag, once again I'm summoning you, this time for testing this attempt of mine to fix the thing.

@RandomShaper hmm, the loading freezes pretty much instantly and every time with this PR. I had a look at the threads and the main thread hangs in the thread_load_mutex with this callstack:
[libc.so.6] <unknown> 0x00007f716274d6f0
[godot.linuxbsd.editor.x86_64] MutexLock::MutexLock mutex.h:122
[godot.linuxbsd.editor.x86_64] ResourceLoader::_load_complete resource_loader.cpp:560
[godot.linuxbsd.editor.x86_64] ResourceLoader::load_threaded_get ref_counted.h:115
[godot.linuxbsd.editor.x86_64] core_bind::ResourceLoader::load_threaded_get core_bind.cpp:64
[godot.linuxbsd.editor.x86_64] call_with_ptr_args_ret_helper<â€¦> binder_common.h:324
[godot.linuxbsd.editor.x86_64] call_with_ptr_args_ret<â€¦> binder_common.h:572
[godot.linuxbsd.editor.x86_64] MethodBindTR::ptrcall method_bind.h:478
[godot.linuxbsd.editor.x86_64] GDScriptFunction::call gdscript_vm.cpp:2027
[godot.linuxbsd.editor.x86_64] GDScriptInstance::callp gdscript.cpp:1832
[godot.linuxbsd.editor.x86_64] Object::callp object.cpp:711
[godot.linuxbsd.editor.x86_64] Variant::callp variant_call.cpp:1161
[godot.linuxbsd.editor.x86_64] GDScriptFunction::call gdscript_vm.cpp:1632
[godot.linuxbsd.editor.x86_64] GDScriptFunctionState::resume gdscript_function.cpp:252
[godot.linuxbsd.editor.x86_64] GDScriptFunctionState::_signal_callback gdscript_function.cpp:202
[godot.linuxbsd.editor.x86_64] MethodBindVarArgTR::call method_bind.h:254
[godot.linuxbsd.editor.x86_64] Object::callp object.cpp:733
[godot.linuxbsd.editor.x86_64] Callable::callp callable.cpp:62
[godot.linuxbsd.editor.x86_64] CallableCustomBind::call callable_bind.cpp:140
[godot.linuxbsd.editor.x86_64] Object::emit_signalp object.cpp:1046
[godot.linuxbsd.editor.x86_64] Object::emit_signal<â€¦> object.h:866
[godot.linuxbsd.editor.x86_64] GDScriptFunctionState::resume gdscript_function.cpp:273
[godot.linuxbsd.editor.x86_64] GDScriptFunctionState::_signal_callback gdscript_function.cpp:202
[godot.linuxbsd.editor.x86_64] MethodBindVarArgTR::call method_bind.h:254
[godot.linuxbsd.editor.x86_64] Object::callp object.cpp:733
[godot.linuxbsd.editor.x86_64] Callable::callp callable.cpp:62
[godot.linuxbsd.editor.x86_64] CallableCustomBind::call callable_bind.cpp:140
[godot.linuxbsd.editor.x86_64] Object::emit_signalp object.cpp:1046
[godot.linuxbsd.editor.x86_64] GDScriptFunction::call gdscript_vm.cpp:1666
[godot.linuxbsd.editor.x86_64] GDScriptInstance::callp gdscript.cpp:1832
[godot.linuxbsd.editor.x86_64] Node::_gdvirtual__process_call<â€¦> node.h:238
[godot.linuxbsd.editor.x86_64] Node::_notification node.cpp:60
[godot.linuxbsd.editor.x86_64] Object::notification object.cpp:790
[godot.linuxbsd.editor.x86_64] SceneTree::_notify_group_pause scene_tree.cpp:886
[godot.linuxbsd.editor.x86_64] SceneTree::process scene_tree.cpp:476
[godot.linuxbsd.editor.x86_64] Main::iteration main.cpp:3164
[godot.linuxbsd.editor.x86_64] OS_LinuxBSD::run os_linuxbsd.cpp:880
[godot.linuxbsd.editor.x86_64] main godot_linuxbsd.cpp:73

The strange thing ist this though: I went through all the other threads and none were locking this mutex 🤔 so maybe someone just forgot to unlock it?
Btw: we load the resources with this ResourceLoaderQueue: https://gist.github.com/mrTag/c8ac769f82ee9b0b408f7f55ef71edad
And I also removed the complete _process, just to see if any of the ResourceLoader.load_threaded_get_status or ResourceLoader.load_threaded_get were the culprit: they weren't, the main thread also hangs with just a few ResourceLoader.load_threaded_request triggered.

I'd like to debug that in person. Could you drop me an e-mail at<EMAIL_ADDRESS>

@mrTag, I just realized a silly mutex mistake. I've fixed it and improved a number of other things.

@RandomShaper I think I isolated the problem successfully in a test! Have a look here: https://gist.github.com/mrTag/117ba6737ab9cee789cb4835dc702fe2
When I run the test like this, I'll get the dreaded "referenced non-existent resource" error and the test fails. But when I uncomment the two 5000 microsecond delays in line 52 and 58 (essentially making it single threaded), then it runs through without errors and the test passes (that is my check to make sure I didn't mess up the test :)
The test creates resources with sub resources like this:

it creates 1 item_script_mock.tres mocking something like an item script
then it creates 25 item_scene_mock.tres, each one having the item_script_mock as a sub resource, mocking something like concrete item scenes
and lastly it creates 1 item_collection_mock.tres, which has all the item_scene_mock as a sub resources, mocking something like an item pool
At first I tried it with just the item_script and item_scene and that passed (but only with use_sub_threads=false!). So it seems like it needs the 2 layers of sub resources to fail! 🤔

The existing "[Resource] Thread safety test" in the test_resource.h freezes on my system and I didn't quite get what it wanted to test, so I didn't touch it...

A side note, maybe of interest: I also just tried that unit test with our current version of godot (basically 4.0.1-rc with this PR https://github.com/godotengine/godot/pull/74108 and this commit: https://github.com/RandomShaper/godot/commit/047671df0f6a7a300b83f36b5d6110a8165b0dfd ) and it passes. Which I kind of expected, since our game uses threaded resource loading like this and the loading works.

@mrTag, thanks to your test case, I've spotted a couple of issues. They are fixed now.

Rebased for 4.1, by the way.

Pushed after a rebase that simplifies the management of thread ids.

Pushed with an additional change, expanding the scope of the benefits of this PR (see update 3 in the description).

I think it needs to wait until Refactor Node Processing to allow Scene Multithreading #75901 is merged, as it rewrites CallQueue in a way that is incompatible with it.

This PR is needed to fix the currently heavily broken resource loader. It was already late to merge it for Godot 4.0 (since it still had a issues) and it would be pretty unfortunate that it wouldn't make it in time for Godot 4.1 either because of having to wait for your PR, that I don't think will be merged soon. Also, if this PR is always considered lower priority than any other one touching any of the engine parts it touches, it will be ever-rotten, always needing to be rebased an updated, until I finally give up.

I don't think the changes to CallQueue are an improvement.

It's a way of making all the resource types compatible with being loaded in a non-main thread, without having to incorporate thread explicit awareness to their code. I believe it's an elegant solution: resources need to queue updates, so they are given a thread-specific call queue to avoid crashes and inconsistencies. I already submitted a similar fix for Godot 3, which was never merged, so the issue has been present until this very day. And now it's more important than ever to have it fixed for good.

The thread code needs to use WorkerThreadPool, otherwise it will not work on web.

That's orthogonal to this PR. Can be done after it. In any case, there's an outstanding issue by which the threads in the pool may not be attached to the scripting languages. Therefore, using those threads for resource loading, in cases where that implies running user scripts, would lead to issues.

If your PR is going to be merged soon, I can rebase this once more when that happens, but from that point on I won't be able to spend more time on this than the needed for fixing issues.

I've rebased on top of #75901 and based it on the WorkerThreadPool, as requested. See Update 6 in the PR description for further info.

Thanks!

Will this be in 4.0.3 or is this gonna wait for 4.1 or whatever? (Tbh same question applies to nav avoidance rework)

This PR may also fix #75841

This PR may also fix #75841

@akien-mga, I'm adding bugs I'm finding that may be fixed by this to the description of the PR, so they get this:

Is that enough? The problem is that really testing them would consume a lot of time. Maybe we could just close them as hypothetically fixed and ask the reporters to re-open them if that turned out not to be true?

Will this be in 4.0.3 or is this gonna wait for 4.1 or whatever? (Tbh same question applies to nav avoidance rework)

Not in 4.0.3 at any rate, and unlikely for 4.0.4+ IMO, the scope of both of this changes is way too big and not worth the risk of regression / breakage when 4.1 is just around the corner. 4.0.x releases are for safe bugfixes.

4.1 being just around the corner is great news <3

@RandomShaper The Android editor crashes after this PR with the following stack trace:
    --------- beginning of crash
2023-05-12 04:08:24.430 A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 12317 (GLThread 194), pid 12257 (tProjectManager)
2023-05-12 04:08:24.490 E/crash_dump64: invalid core_num: -1
2023-05-12 04:08:25.656 A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2023-05-12 04:08:25.656 A/DEBUG: Build fingerprint: 'samsung/gts8wifixx/gts8wifi:13/TP1A.220624.014/X700XXU3BWC1:user/release-keys'
2023-05-12 04:08:25.656 A/DEBUG: Revision: '8'
2023-05-12 04:08:25.656 A/DEBUG: ABI: 'arm64'
2023-05-12 04:08:25.656 A/DEBUG: Processor: '-1'
2023-05-12 04:08:25.656 A/DEBUG: Timestamp: 2023-05-12 04:08:24.548147037-0700
2023-05-12 04:08:25.656 A/DEBUG: Process uptime: 13s
2023-05-12 04:08:25.656 A/DEBUG: Cmdline: org.godotengine.editor.v4.dev:GodotProjectManager
2023-05-12 04:08:25.656 A/DEBUG: pid: 12257, tid: 12317, name: GLThread 194  >>> org.godotengine.editor.v4.dev:GodotProjectManager <<<
2023-05-12 04:08:25.656 A/DEBUG: uid: 10340
2023-05-12 04:08:25.656 A/DEBUG: tagged_addr_ctrl:<PHONE_NUMBER>000001 (PR_TAGGED_ADDR_ENABLE)
2023-05-12 04:08:25.656 A/DEBUG: pac_enabled_keys:<PHONE_NUMBER>00000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
2023-05-12 04:08:25.656 A/DEBUG: signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
2023-05-12 04:08:25.656 A/DEBUG: Abort message: 'terminating with uncaught exception of type std::__ndk1::system_error: recursive_mutex lock failed: Try again'
2023-05-12 04:08:25.656 A/DEBUG:     x0<PHONE_NUMBER>000000  x1<PHONE_NUMBER>00301d  x2<PHONE_NUMBER>000006  x3<PHONE_NUMBER>10c620
2023-05-12 04:08:25.656 A/DEBUG:     x4  736f646277641f73  x5  736f646277641f73  x6  736f646277641f73  x7  7f7f7f7f7f7f7f7f
2023-05-12 04:08:25.656 A/DEBUG:     x8<PHONE_NUMBER>0000f0  x9  000000761bca4bf8  x10<PHONE_NUMBER>000001  x11 000000761bce5870
2023-05-12 04:08:25.656 A/DEBUG:     x12<PHONE_NUMBER>de1020  x13 000000007fffffff  x14<PHONE_NUMBER>5b26cc  x15 0000071ef6c3f60e
2023-05-12 04:08:25.656 A/DEBUG:     x16 000000761bd4dd70  x17 000000761bd295b0  x18<PHONE_NUMBER>072000  x19<PHONE_NUMBER>002fe1
2023-05-12 04:08:25.656 A/DEBUG:     x20<PHONE_NUMBER>00301d  x21 00000000ffffffff  x22 ffffff80ffffffc8  x23<PHONE_NUMBER>10c870
2023-05-12 04:08:25.656 A/DEBUG:     x24<PHONE_NUMBER>10c750  x25<PHONE_NUMBER>10c790  x26<PHONE_NUMBER>10d6c4  x27<PHONE_NUMBER>10d6b0
2023-05-12 04:08:25.656 A/DEBUG:     x28<PHONE_NUMBER>10d5b0  x29<PHONE_NUMBER>10c6a0
2023-05-12 04:08:25.656 A/DEBUG:     lr  000000761bcd67a8  sp<PHONE_NUMBER>10c600  pc  000000761bcd67d4  pst<PHONE_NUMBER>001000
2023-05-12 04:08:25.656 A/DEBUG: backtrace:
2023-05-12 04:08:25.656 A/DEBUG:       #00 pc<PHONE_NUMBER>0537d4  /apex/com.android.runtime/lib64/bionic/libc.so (abort+168) (BuildId: 870560a8376a70249f9e9a7b480cc02f)
2023-05-12 04:08:25.656 A/DEBUG:       #01 pc<PHONE_NUMBER>0cece8  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libc++_shared.so (abort_message+240) (BuildId: d7ce478d849eba1d3e692ae740f6c04a08fb8fab)
2023-05-12 04:08:25.656 A/DEBUG:       #02 pc<PHONE_NUMBER>0cee9c  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libc++_shared.so (demangling_terminate_handler()+264) (BuildId: d7ce478d849eba1d3e692ae740f6c04a08fb8fab)
2023-05-12 04:08:25.656 A/DEBUG:       #03 pc<PHONE_NUMBER>0e3c5c  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libc++_shared.so (std::__terminate(void (*)())+16) (BuildId: d7ce478d849eba1d3e692ae740f6c04a08fb8fab)
2023-05-12 04:08:25.656 A/DEBUG:       #04 pc<PHONE_NUMBER>0e32f4  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libc++_shared.so (__cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*)+32) (BuildId: d7ce478d849eba1d3e692ae740f6c04a08fb8fab)
2023-05-12 04:08:25.656 A/DEBUG:       #05 pc<PHONE_NUMBER>0e3248  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libc++_shared.so (__cxa_throw+124) (BuildId: d7ce478d849eba1d3e692ae740f6c04a08fb8fab)
2023-05-12 04:08:25.656 A/DEBUG:       #06 pc<PHONE_NUMBER>0ce0a0  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libc++_shared.so (std::__ndk1::__throw_system_error(int, char const*)+100) (BuildId: d7ce478d849eba1d3e692ae740f6c04a08fb8fab)
2023-05-12 04:08:25.656 A/DEBUG:       #07 pc<PHONE_NUMBER>0c2d4c  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libc++_shared.so (std::__ndk1::recursive_mutex::lock()+40) (BuildId: d7ce478d849eba1d3e692ae740f6c04a08fb8fab)
2023-05-12 04:08:25.656 A/DEBUG:       #08 pc<PHONE_NUMBER>e3a3c0  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libgodot_android.so (CallQueue::flush()+92)
2023-05-12 04:08:25.656 A/DEBUG:       #09 pc<PHONE_NUMBER>71fef4  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libgodot_android.so (SceneTree::_process_group(SceneTree::ProcessGroup*, bool)+52)
2023-05-12 04:08:25.656 A/DEBUG:       #10 pc<PHONE_NUMBER>71cec8  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libgodot_android.so (SceneTree::_process(bool)+1216)
2023-05-12 04:08:25.656 A/DEBUG:       #11 pc<PHONE_NUMBER>71dbb8  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libgodot_android.so (SceneTree::process(double)+284)
2023-05-12 04:08:25.656 A/DEBUG:       #12 pc<PHONE_NUMBER>a480ec  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libgodot_android.so (Main::iteration()+1308)
2023-05-12 04:08:25.656 A/DEBUG:       #13 pc<PHONE_NUMBER>9d99a4  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libgodot_android.so (OS_Android::main_loop_iterate(bool*)+88)
2023-05-12 04:08:25.656 A/DEBUG:       #14 pc<PHONE_NUMBER>9fdf98  /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/lib/arm64/libgodot_android.so (Java_org_godotengine_godot_GodotLib_step+492)
2023-05-12 04:08:25.656 A/DEBUG:       #15 pc<PHONE_NUMBER>461554  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 289d75599f6112d5757113220599e90b)
2023-05-12 04:08:25.656 A/DEBUG:       #16 pc<PHONE_NUMBER>209398  /apex/com.android.art/lib64/libart.so (nterp_helper+152) (BuildId: 289d75599f6112d5757113220599e90b)
2023-05-12 04:08:25.656 A/DEBUG:       #17 pc<PHONE_NUMBER>004dd0  [anon:dalvik-classes12.dex extracted in memory from /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/base.apk!classes12.dex] (org.godotengine.godot.gl.GodotRenderer.onDrawFrame+20)
2023-05-12 04:08:25.656 A/DEBUG:       #18 pc<PHONE_NUMBER>20b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 289d75599f6112d5757113220599e90b)
2023-05-12 04:08:25.656 A/DEBUG:       #19 pc<PHONE_NUMBER>003f3a  [anon:dalvik-classes12.dex extracted in memory from /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/base.apk!classes12.dex] (org.godotengine.godot.gl.GLSurfaceView$GLThread.guardedRun+986)
2023-05-12 04:08:25.656 A/DEBUG:       #20 pc<PHONE_NUMBER>20a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 289d75599f6112d5757113220599e90b)
2023-05-12 04:08:25.656 A/DEBUG:       #21 pc<PHONE_NUMBER>004500  [anon:dalvik-classes12.dex extracted in memory from /data/app/~~V9RI7paugJrIZ_nHjmG3Vw==/org.godotengine.editor.v4.dev-PDKumFv9MYqCdIF2P0LT0A==/base.apk!classes12.dex] (org.godotengine.godot.gl.GLSurfaceView$GLThread.run+52)
2023-05-12 04:08:25.656 A/DEBUG:       #22 pc<PHONE_NUMBER>457b6c  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556) (BuildId: 289d75599f6112d5757113220599e90b)
2023-05-12 04:08:25.656 A/DEBUG:       #23 pc<PHONE_NUMBER>484e54  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: 289d75599f6112d5757113220599e90b)
2023-05-12 04:08:25.656 A/DEBUG:       #24 pc<PHONE_NUMBER>484b20  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400) (BuildId: 289d75599f6112d5757113220599e90b)
2023-05-12 04:08:25.656 A/DEBUG:       #25 pc<PHONE_NUMBER>5ce334  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1684) (BuildId: 289d75599f6112d5757113220599e90b)
2023-05-12 04:08:25.656 A/DEBUG:       #26 pc<PHONE_NUMBER>0bb728  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 870560a8376a70249f9e9a7b480cc02f)
2023-05-12 04:08:25.656 A/DEBUG:       #27 pc<PHONE_NUMBER>05501c  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68) (BuildId: 870560a8376a70249f9e9a7b480cc02f)
2023-05-12 04:08:25.676 E/tombstoned: Tombstone written to: tombstone_13

@m4gr3d, can you please test with #77229?

@m4gr3d, can you please test with #77229?

@RandomShaper Looks to have fixed the issue! The editor usually crashed a few seconds after starting, but that's no longer happening.
I'll keep it running and keep an eye on it to ensure it's fully resolved.

I'm using this class
https://github.com/bakneko/godot-template/blob/main/core/classes/loader.gd
and once I request to load a scene (46kb, not many nodes), it freezes the game for like 0.2 seconds and I remember it worked fine in previous versions

@venilark Please open a bug report with an MRP and a detailed explanation of your issue.
If you haven't already, you should consider asking about this on the forums or discord. My personal experience is that multithreaded loading is much much faster than single threaded loading (I've tested on 4.2.1 and dev3ish). So it is possible that you have made a mistake in your code.

@venilark Please open a bug report with an MRP and a detailed explanation of your issue.
If you haven't already, you should consider asking about this on the forums or discord. My personal experience is that multithreaded loading is much much faster than single threaded loading (I've tested on 4.2.1 and dev3ish). So it is possible that you have made a mistake in your code.

found the problem, it was a mesh with a particular material/shader, without it the background loading works fine

would like to add that with use_sub_threads = true, I've had random crashes with one particular scene without without any kind of error log being output, with = false it doesn't happen, or at least it hasn't happened in over 50 tests
I can't upload the project but the scene I try to load has several nodes that are instances and those nodes also have instances as their children
I don't open a new issue because I can't upload the MRP

@venilark, do you think you could apply https://github.com/godotengine/godot/pull/88561 locally and try to reproduce the issue to see if that PR fixes it?


[Bug] App freezes due to high frequency changes

Before you submit this issue, have you checked the following

[X] Is this really a problem?
[X] I have searched the Github Issues for similar issues, but did not find anything.

Affected packages and versions
0.2.12
Reproduction link

Expected behavior
I should be able to edit text no matter what is going on in the BG. Also the focused cell should not lose focus
Actual behavior
Hey, so I have a sheet that changes numerical data every second. And based on the data, the cells change bg color. Due to the very frequent bg change, the cells are uneditable. Any workaround this ?
Also, if i have a cell focused to edit, on the bg change, the app loses the focused cell
System information
No response

Please provide a minimal reproduction.

Reproduction might not be possible but attached a loom for the exact issue demonstration
https://www.loom.com/share/ee1809754b014048b87abb050af6ae92

Not sure if this is enough info to find the problem. Perhaps you could take a look, @Jocs ?

any update on this @Jocs

@weird94

This issue will be fixed on next version, please follow our weekly update, thanks.


Feature: Add Right-to-Left Support for scrolling

Right-to-left support for slider. Currently, if the dir has been set to 'rtl', only the first slide is visible and you can't slide to the left where subsequent slides are being loaded. You can only scroll right onto blank slides.
Would be awesome to have this feature to cater to the Middle Eastern market!

Yes please, it would be great to have it.
Thanks

Hey @lafeer that seems like an easy enough fix, just to confirm you'd like to see an :rtl=true/false prop which changes scrolling direction?

Yes, precisely! Thanks Quinn

Cool! Going to switch this to a feature request

is this feature has been added ?? because it's not working with me

@saraElsanan no it hasn't been added yet, this is just a feature request asking for a contributors help in developing it. Once it's been added, I'll comment here and close this issue :~)

I have made this feature but the user will still have to use navigateTo to shift to the last slide. Will that be okay?

Hmm, I think we should have the scrolling work the same wether it's right or left. It will likely just take some conditional logic inside the advancePage. It seems like we'll just need to add a +1 or -1 to slide index when rtl is enabled. Does that sound doable?

Ok I wanna use RTL
how can I use the latest features added?

@amigogobara the feature is still in PR phase, I'll post here once it's been merged into a release

Hey guys, just merged in @utkarshnag's PR - RTL scrolling is now enabled! Check the docs or #284 for more info.
p.s I'm going to be doing a documentation overhaul over the next week or so, feel free to make any suggestions here (#92) if you end up reading through them!


Suggestion: Better onboarding for accessibility permissions

Hey @koekeishiya,
Whenever I install or upgrade yabai on a new machine, it's always an annoying dance with the accessibility settings + the endless popups requesting permissions.
I noticed that in https://github.com/dexterleng/vimac, there's a simple popup that shows up, and then auto-disappears when the permissions are granted. Perhaps it's worth looking at the code and potentially borrowing it?
Hope this is useful.

Agree that this is not the best experience during a first install. However, sequential upgrades should not require you to enable accessibility permission, as the released binaries are codesigned (unless mentioned in the changelog that it will require a permissions reset). If you build from source you need to manually codesign the binary.

I have to redo the accessibility permissions every time yabai updates (skhd as well). It shows up as a new entry in the accessibility list. I delete the old one and check the new one.


Quick question on line chart and cumulative line chart

If we want to dispatch different events for different lines. How can we achieve this.
I tried below code but it didn't execute second lines1 event.
lines: {
dispatch:{ elementClick: function (e) {
console.log("lines are clicked")
}
}
},
lines1: {
dispatch:{ elementClick: function (e) {
console.log("lines are clicked2")
}
}
}
Your help will be appreciated.
console.log shows only lines are clicked always.

There is no line1 options. Instead, you can get all necessary info about series from event object e:
lines: {
dispatch: {elementClick: function(e){
    e.point
    e.pointIndex
    e.pos
    e.series
    e.seriesIndex
    ....
}
}
}

Yes that worked.
I have one more question regarding stacked area chart, multibarchart, historical bar chart.
What would be the key value for these?
For instance lineChart it is lines :{ dispatch ...}

how about stacked, bars?

For a multiBarChart it is multibar. So , part of your chart configuration would be
multibar: {
  dispatch: {
    elementClick: (e) => { console.log('elementClick', e) }
  }
}


Deprecated package warning

While integrating statsig-node, I am receiving some deprecation warnings using node v22.4;
(node:13621) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
    at node:punycode:3:9
    at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:398:7)
    at BuiltinModule.compileForPublicLoader (node:internal/bootstrap/realm:337:10)
    at loadBuiltinModule (node:internal/modules/helpers:96:7)
    at Module._load (node:internal/modules/cjs/loader:1070:17)
    at TracingChannel.traceSync (node:diagnostics_channel:315:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:215:24)
    at Module.require (node:internal/modules/cjs/loader:1304:12)
    at require (node:internal/modules/helpers:123:16)
    at Object.<anonymous> (/Users/dseripap/local/workspace/app/node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js:2:18)

Tracing the package leads here;
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>deduped
│ │ └─┬<EMAIL_ADDRESS>│ │   ├──<EMAIL_ADDRESS>│ │   └──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
│ └──<EMAIL_ADDRESS>
A suggestion is to perhaps update node-fetch to the latest version and maybe that'll fix it.

Thanks for the report, we'll take a look!

@seripap the punycode dependency is coming from eslint and jest-environment-jsdom which are both dev dependencies. From what I can tell neither of them has a new version that fixes the issue yet but it seems like something they are looking to do in the near future so we can update them once those are available.
├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └─┬<EMAIL_ADDRESS>│     └──<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>deduped
└─┬<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>deduped


Feature Request: Enter Token dialogue

On a fresh install of iAPS on a phone, before anything else happens, a dialogue box should pop up that allows someone to cut-n-paste ( or enter ) their token, at which time the app would go out to the stats server to pull down and install their configuration, before anything else happens.
Use case scenario: I'm on holidays, my phone is destroyed so I deploy iAPS onto my partners phone ... as long as i have the token, I could have all of my settings restored to that phone.
Same thing could apply if someone has been using a specific build of the app, and suddenly switch over to a shared build with someone else ... they could restore their settings to the last state.
This only work if full stats is turned on, of course, since it requires sending in all settings, but they are stored in json, so setting up a 'retrieve' script is simple ...

Side note ... if we could figure out a way of backing up critical CoreData information and restoring that?
not thinking 90 days worth of data, but if i changed phones, how much data ( and what data? ) would I need to be able to restore to the phone to provide minimal history needed for features to work properly?   24h?  7 days?  Even if only updated every 12 hours, you'd still be ahead of a totally blank slate ...

I will create an onboarding view for first time users, where you can import all saved settings, provided you have any.


Tweak "view bill/testimony" buttons

Move “View Bills” and “View Testimony” buttons to be above their respective tables, change to “View All Bills” and “View All Testimony”

I'll work on this one.


update fontawesome

Hi!) can you update fontawesome icons? there are a lot of new icons ...
http://fontello.com

It's the latest 4.6.3 and has all 634 icons.


How to refresh JWT token C# REST Client

Hi, I am using JWT authentication from C# REST SDK. My question is regarding refreshing of JWT after expiry. Will I get the new token automatically from the API calls, or I have to refresh it separately. In case if I have to refresh it separately then I guess I have to place the lock on header until it is refreshed so that no other API call can use it

You (the client app) need to refresh it. Auto-refresh is on the roadmap but no date yet.
I suggest that you check the expiration date before each call, then proactively refresh (actually recreate) if you have less than 10 minutes left. This should be done before every call.
If multiple threads do the check then you'd need a mutex on the check/update method (if you're using the SDK from multiple threads).
Also note that due to security-related issues at either the account or platform (DocuSign) level, a token may suddenly stop working at any time (eg before the expiration timestamp). So be ready to handle that. -- Same sort of issue as a network failure.

@pranavd Closing this issue, if you still have questions, please comment below or create a new issue. Thanks.


Xcode resports errors and fails to build "PIA VPN" scheme

Summary
Steps to reproduce
Building from scratch as described in the README file.
What is the current bug behaviour?
Xcode reports errors and fails to build "PIA VPN" scheme.
What is the expected correct behaviour?
Xcode should successfully build the app when build directions are followed.
Relevant logs and/or screenshots
Showing Recent Messages
:-1: /Users/tom/Projects/vpn-ios/Pods/Target Support Files/Pods-PIA VPN Tunnel/Pods-PIA VPN Tunnel.debug.xcconfig: unable to open file (in target "PIA VPN Tunnel" in project "PIA VPN") (in target 'PIA VPN Tunnel')

Possible fixes suggested re-mediation
The error is complaining about a missing file: Pods-PIA VPN Tunnel.debug.xcconfig
That file is indeed missing on the filesystem.
If this is a private file with secrets, can you update the build instructions explaining what should go in that file and provide a dummy file with example values that result in a successful build?
Or is the error possibly caused by the spaces in the PATH?
Assignees and labels
( please add labels as applicable )

[ ] Patched
[ ] Verified patch

Hello @t0mmar !
Thanks for your message, could you try to run the following commands, hopefully that should fix your issue:
pod deintegrate
pod install
Regards,
Jose Blaya


Frontend: Write javascript

There's a lot of javascript doing a lot of things here.

This is done.


Added PySide6 Support (squash)

New branch for the "squashing"

so maybe you could try to merge my PR into some temp branch and push on your end?

But actions should run without merging. A big part of the actions is to make sure merging is safe to begin with, but if we have to merge before running the tests..? Am I missing something? 🤔 Your PR also is not triggering any tests. I expect there must be a configuration option to make GitHub Actions run on PRs too?

@mottosso: Ah I see, I might have misunderstood the issue in the first place.
I was under the impression that the CI test jobs do not succeed on your end (→ just like this last failed GH action).
But what you would like to have is automatic CI test runs being executed on mottosso/Qt.py for every new PR, right?
So I might have barked up the wrong tree here for while... 🙂🤦♂

Off the top of my head, I'm not sure if running CI on the targeted repo of a PR is possible on Github – I've never thought about that before...
However, before any contributor is able to open a PR, they need to push to their fork – and this will already trigger and execute the CI test jobs over there.
So in a way, every PR already has executed CI test jobs associated with it – just not on mottosso/Qt.py, but on the source fork.
@mottosso, is this what you're after?

But what you would like to have is automatic CI test runs being executed on mottosso/Qt.py for every new PR, right?

That's right, yeah. Sorry for not being clear about this! I appreciate you spent time putting together this alternative PR and painstakingly ran through each commit.

@mottosso, is this what you're after?

No. In every other project I maintain on GitHub, CI is always run on PRs. There should be no need to visit a fork in order to see the results of tests.
For example:

https://github.com/mottosso/cmdx/pull/78

Ah nice, thanks for the example. So this actually is possible within Github. I'll take a look. 👍

Well, that should be easy... 🙂👍
According to the example repo you provided:
name: cmdx-workflow

on:
  push:
  pull_request:
    branches: [ master ]

That seems to be all that's needed. 🙂
I'll take a look and test this.

@mottosso:
→ PR #399

Great work. Now all we need is a GitHub workflow to test the PySide6-specifics of it. I expect we can start by adding a pyside6.yml here with the steps (1) install Python, (2) install PySide6 and (3) run the tests. Would you like to give it a spin @zoshua?

So looks like we are encountering an issue with nose and Python 3.10
Looked into it a bit and it appears the next steps are to patch nose itself to import Callable from collections.abc , find a nose fork that has fixed the issue, or to maybe look into using pytest as an alternative

Looks like the nose2 update for ./entrypoint.sh has created issues with the job running run-tests.yml
Thoughts on how to proceed?

It's safe to make a new entrypoint.sh, e.g. entrypointPySide6.sh. It's also fine to move the contents of that file into the yml, as it was only really meant for use with Docker since Docker struggles with lengthy commands like this. GitHub actions does not.

@mottosso @martin-chatterjee
I am new to github actions and don't really know the preferred way to define the env for running steps.
It appears that the step Testing examples.. is not able to import Qt
I am happy to continue to tinker but wanted to check if you might have any insight in this area.

The "Testing Implementation" is also unable to test PySide6:
https://github.com/mottosso/Qt.py/actions/runs/8113970481/job/22178534199?pr=394#step:4:12
Have a look inside, and see what makes them tick.

@zoshua, I think you might need to explicitly pip install the checked out code.
I think you should just be able to run:
python3.10 -m pip install .

(This is assuming, that the "Checkout code" step checked out the repo into the current working directory.)

@mottosso
Added with binding PySide6 to run_tests.py
It appears to run without errors.
@martin-chatterjee
Added step pip install . after code is checked out in pyside6.yml
It appears to run without errors, but we are still erroring out at the step Testing examples for the same reason as before

Those EGL errors is because Qt requires a display, and these headless runners have none. There's a way to "fake" a display, which is what's happening here.

https://github.com/mottosso/Qt.py/blob/master/entrypoint.sh#L7

I know iterating by pushing is tedious and takes a long time. I know it all too well. 😅 But there's an alternative you can try, either if you have Docker on your own machine or you can use a cloud based (free) Docker here.

https://labs.play-with-docker.com/

It'll put you in a virtual machine, much like the one on GitHub, where you can load the same OS and do all of your testing. It would be easier locally, as you can mount your local folder into the virtual machine, but at least on the cloud version you can install and run things interactively.

Happy to iterate to make this thing sing!
Will try out the Docker reccos, hope the test error spam'ing is not too annoying.

Not annoying at all, go right ahead. If anyone is getting too many messages, there's an Unsubscribe button at the top.

@zoshua, absolutely not annoying at all – please go ahead. 🙂👍
May I recommend to maybe even start one step "earlier" than within Docker, and first try to get the test suite to run on your local machine, in a virtual environment.
You know, something along those lines:
# → In bash...

# Create and enter virtualenv.
python3.10 -m venv ./venv-3.10-qt.py
source ./venv-3.10-qt.py/bin/activate
pip install --upgrade pip setuptools

# Install dependencies.
pip install .........

# Install Qt.py.
pip install .

# Run test suite.
export QT_PREFERRED_BINDING="PySide6"
nosepipe --verbose --with-process-isolation --exe
# 👆 Replace with the equivalent call for `nose2`, if you're using that.

I haven't had the chance to do so myself – but I've got a hunch that this might already surface some of root issue(s).

Got to tinkering with Docker in the cloud as well as running the tests locally on macOs.
Couple of key findings:

tests.py is assuming we are using nose, I have a workaround that uses unittest and defines our own assert_raises() function at the moment, seems to do the trick
tests.test_membership is reporting back a pretty large list of members that did not make it to PySide6
found my way to the rabbit hole that is build_membership.sh, seems like this might need to be rerun w/ PySide6 now in the mix
couple of other oddities in tests.py that might need some tweaks as well

Would love to know your takes on best path forward given these notes.

Would love to know your takes on best path forward given these notes.

Sounds like you're on the right track to me, please do proceed!

With Maya 2025 being released, and having PySide6 on-board, this merge request is now very relevant. What's the latest on your end @zoshua? Anything holding you up?

Hi @mottosso! Just saw the Maya 2025 thing a few days back as well.
Apologies for the radio silence, job stuff picked up quite seriously over the past few weeks on my end.
I believe I pressed pause here at a stage where I had just gone through the process of generating the  _common_members locally.
After generating the _common_members and updating Qt.py I remember wondering if we had or needed the ability to procedurally generate the _misplaced_members as well.
From what I can tell PySide6 seems to have quite a few fundamental changes that will reduce the _common_members significantly.
(Side Note: I had not encountered any of this in my original commit as I had just updated Qt.py with PySide6 bits until it stopped erroring and my code would run.)
Still pushing on bringing it all together for a real release but will definitely be looking to all the pros here for insight on making the update be as fast and clean as possible.

For this Assert
"AttributeError: module 'PySide2.QtCore' has no attribute 'QStringListModel'"
I am able to run locally non issue and the documentation seems to align
https://doc.qt.io/qtforpython-5/PySide2/QtCore/QStringListModel.html
Thoughts?

https://github.com/mottosso/Qt.py/pull/394/checks#step:7:94
Only one missing member! That's great.

https://doc.qt.io/qt-6/qregularexpressionvalidator.html

This seems to me like it's been renamed/slightly edited. We could either (1) wrap the Qt 6 class in our own to emulate the one from Qt 4/5. Or we could deprecate it entirely. Wrapping it seems straightforward, but I haven't looked into whether it's used in the same way. And it is useful, I expect we will need it.
Thoughts?

"AttributeError: module 'PySide2.QtCore' has no attribute 'QStringListModel'"

Did you overcome this? Because it does exist in Qt 4/5/6.

https://doc.qt.io/qt-6/qstringlistmodel.html

"AttributeError: module 'PySide2.QtCore' has no attribute 'QStringListModel'"

Did you overcome this? Because it does exist in Qt 4/5/6.

https://doc.qt.io/qt-6/qstringlistmodel.html

I just reverted to what previously existed/worked here in the github Run Tests.
Do you think its related to running our tests in the highly customized docker container?

https://doc.qt.io/qt-6/qregularexpressionvalidator.html

Just checked and it appears that the function signatures match..
https://doc.qt.io/qtforpython-5/PySide2/QtGui/QRegExpValidator.html#PySide2.QtGui.PySide2.QtGui.QRegExpValidator
https://doc.qt.io/qtforpython-6/PySide6/QtGui/QRegularExpressionValidator.html#PySide6.QtGui.PySide6.QtGui.QRegularExpressionValidator
So we should be good to map PySide6 to QRegExpValidator with _misplaced_members

@mottosso
This one appears to be PyQt4 Centric
File "/home/runner/work/Qt.py/Qt.py/examples/loadUi/baseinstance2.py", line 7, in
You think I am good to remove from Pyside6.yml?

Yes, definitely. Based on explicitly making this only run for PyQt4, https://github.com/mottosso/Qt.py/blob/master/examples/loadUi/baseinstance2.py that seems safe.

oh this is a great update! Will this pull request be merged? Thanks all!

Had a look at this, and we've got a bit more work before we can call this drop-in ready for Qt 4 and Qt 5.

QFont.setWeight doesn't take a number anymore, but an enum
QtCore.Qt.MidButton no longer exists for mousePressEvent

Here's one way to solve (1).
diff --git a/Qt.py b/Qt.py
index 08b5c03..00d3571 100644
--- a/Qt.py
+++ b/Qt.py
@@ -1195,6 +1195,9 @@ _compatibility_members = {
             "getOpenFileNames": "QtWidgets.QFileDialog.getOpenFileNames",
             "getSaveFileName": "QtWidgets.QFileDialog.getSaveFileName",
         },
+        "QFont": {
+            "setWeight": "QtGui.QFont.setWeight",
+        },
     },
     "PySide2": {
         "QWidget": {
@@ -1514,8 +1517,38 @@ def _pyside6():
         Qt.QtCompat.setSectionResizeMode = \
             Qt._QtWidgets.QHeaderView.setSectionResizeMode

+    def setWeight(func):
+        def wrapper(self, weight):
+            weight = {
+                100: Qt._QtGui.QFont.Thin,
+                200: Qt._QtGui.QFont.ExtraLight,
+                300: Qt._QtGui.QFont.Light,
+                400: Qt._QtGui.QFont.Normal,
+                500: Qt._QtGui.QFont.Medium,
+                600: Qt._QtGui.QFont.DemiBold,
+                700: Qt._QtGui.QFont.Bold,
+                800: Qt._QtGui.QFont.ExtraBold,
+                900: Qt._QtGui.QFont.Black,
+            }.get(weight, Qt._QtGui.QFont.Normal)
+
+            return func(self, weight)
+
+        wrapper.__doc__ = func.__doc__
+        wrapper.__name__ = func.__name__
+
+        return wrapper
+
+    decorators = {
+        "QFont": {
+            "setWeight": setWeight,
+        }
+    }
+
     _reassign_misplaced_members("PySide6")
-    _build_compatibility_members("PySide6")
+    _build_compatibility_members("PySide6", decorators)

 def _pyside2():

Namely, we provide a new member via QtCompat which requires updates to legacy software.
font = self._window.font()
font.setFamily("Open Sans")
font.setPointSize(8)
Qt.QtCompat.QFont.setWeight(font, 400)

Not ideal, the ideal would be for existing code to require 0 changes. But, we cannot do:
Qt.QtGui.QFont.setWeight = some_wrapper_function

As this would modify the original binding, which is one of the things that sets Qt.py apart from other wrappers. We cannot risk the stability of code that does not use Qt.py.
What options do we have? If we go with the above, then we must provide this member for all bindings, and we should also provide the new enums, e.g. QtCompat.QtGui.QFont.Bold, such that new code can run on old bindings.
Here's one project you can try with.
python -m pip install pyblish-lite

It bundles Qt.py inside of vendor/Qt.py. Replace that with this version and you'll run into the above issues. Can we test with a few project projects to find what else there is? We'll need an upgrade guide in the README with what users are expected to do in order to make their projects compatible with Qt 6. If indeed we cannot find a way to make it transparent.

Thank you for the feedback and insight.
Will be picking this up soon 👍

Investigations...

I made the "Here's one way to solve (1)." tweaks locally to Qt.py and ran our current PySide6 tests without issue.
I created a new space/venv to test pyblish-lite w/ PySide6 and the latest tweaks made from step 1, updating the local vendor/Qt.py.
I encounter and fix some PySide6 _misplaced_members issues
I confirm the QtCore.Qt.MidButton button issue
I hacked a bit with _misplaced_members to see if we could reroute "QtCore.Qt.MiddleButton": "QtCore.Qt.MidButton" with no luck
I hacked a bit further directly tweaking _pyside6() by adding Qt._QtCore.Qt.MidButton = module.QtCore.Qt.MiddleButton, which seems to have made the error go away, however I am sure this is not the appropriate solution. Also, I have not used pyblish before so I am not familiar w/ how it is supposed to function.

Thoughts on next steps?

I hacked a bit further directly tweaking _pyside6() by adding Qt._QtCore.Qt.MidButton = module.QtCore.Qt.MiddleButton, which seems to have made the error go away

This would be the easiest route, but we can't risk affecting applications that use PyQt/PySide without Qt.py, and this approach would affect those.

Thoughts on next steps?

Let's stick with the first approach for now and put it in a "Qt 6 Transition Guide". We need the find a similar solution to MidButton and put that in the guide too. Our goal then should be to make this guide as small as possible.
Qt 6 Transition Guide

Replace font.setWeight(some number) with Qt.QtCompat.QFont.setWeight(font, some number)
Replace event.type == QtCore.MidButton with ...?
And so forth

Made the suggested updates and added a possible solution for the Mid/Middle Button change.
Confirmed error removal in pyblish-lite by making the following changes in
view.py
from .vendor.Qt import QtCore, QtWidgets, QtCompat
view.py - Item.mousePressEvent()
if event.button() == QtCompat.Qt.MidButton:

Great, thanks for this.
Considering that this PR does not affect existing use of Qt.py, I'll merge this now despite suspecting that there will be a number of bullet points needed for an upgrade guide. I'll add a section to the README now with what we now, then we can continue adding and updating as we continue our discovery. A new release will follow shortly.


Provide javascript libraries over npm

Using npm to manage dependencies has some advantages over bower, in particular when using a module bundler like browserify. Thus we should offer the javascript libraries both as bower- and npm-dependencies.

@netopyr but we will still provide DP by bower, right?

Yes, we need to provide both IMO, because sometimes bower fits better and sometimes npm.


Include previous values in UPDATE and DELETE ops

In order to write processors that monitors for certain state changes it
can use the previous values to compare a transition.
This PR adds the field previous_data to UPDATE and DELETE statements
(it'll add an empty json object for INSERT statements).
I'm not sure about the name of this field. Any other suggestions?
Also had to update some gometalinter issues.
Closes #27

@jurre I've modified the migration file to add the new column if it doesn't exist, this allows this to be applied to existing system. That in turn means the field needs to be able to be NULL which ties neatly into your second comment making the value NULL instead an empty jsonb object.

Closing this until we need it.


[KKPE] Duplicating objects causes parenting to break

Duplicating objects sometimes can cause parenting break completely: after clicking "parent" button supposed child object moves under parent in workspace, but both remain selected (this is how you know you got this bug), and parenting doesn't actually happen. In this case, parenting just breaks completely and won't work until you reset scene, after reloading "child" object can either remain unparented, or just disappear as if it never existed.
There are various cases when it happens, but the only reliable way to reproduce it I found is:

add character to scene
add new object (item or folder)
parent this object to any part of character
parent it to any other part of character (I don't know why, but single parenting isn't enough)
duplicate it
delete original
attempt to parent copy (or anything really) to anything -> it breaks

After a bit more testing I found that after step 4 you can duplicate copy and parent new copy to different part of character all you want, but if you delete any object in this chain, next parenting will break even if it's not related to these them at all...
If you load scene that has some character with objects parented to its parts, steps 1-4 can be omitted.
Tagging it as PE issue because it's PE that throws errors in log whenever this bug happens, and removing it immediately gets rid of this issue. I believe it was fixed in <IP_ADDRESS> (at least I don't remember getting it since then), but recently came back, probably in 2.7.1?

Try this. You know how to use dll's, right?
If you try it, be sure to let me know how it turns out.
KKSPE.zip
KKPE.zip
I didn't want it to be because of my past fixes, so I looked into it. In addition, I fixed it. As you can see from other issues, it is usually left alone. Please be careful not to ask others for quick fixes.

Thanks for confirming.
As long as development continues, someone will step on another landmine.
The complexity of these mods is considerable.
Either stop using them, or better yet, you create a perfect, bug-free replacement.


Make priority queue public

Want to use it in ruler.

Do you think we should move it to util?
LGTM otherwise.

This does move it to util.


Getting response conde 429

Hi,
I am encountering an issue while attempting to export data for monitoring on my 50E. Instead of receiving the expected HTTP status code 200, I am consistently receiving error code 429, indicating too many requests. I suspect there may be an error in the steps I have taken, and I am seeking assistance in identifying and resolving the root cause of this issue. Your guidance in addressing this matter would be greatly appreciated.
# Environment

Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

Docker version 24.0.7, build afdd53b

Docker Compose version v2.21.0

# I access to http://<IP_ADDRESS>:9710/probe?target=https%3A%2F%2F<IP_ADDRESS> and get those messages.

# HELP probe_duration_seconds How many seconds the probe took to complete
# TYPE probe_duration_seconds gauge
probe_duration_seconds 0.026154833
# HELP probe_success Whether or not the probe succeeded
# TYPE probe_success gauge
probe_success 0

# These logs originate from within a Docker container.

➜ prometheus docker logs fortigate_exporter
2023/11/30 02:18:26 FortigateExporter 1.23.0-2-g9d74331 ( 9d74331 )
2023/11/30 02:18:26 Loaded 1 API keys
2023/11/30 02:18:26 Fortigate exporter running, listening on ":9710"
2023/11/30 02:19:14 Error: API connectivity test failed, Response code was 429, expected 200 (path: "api/v2/monitor/system/status")
2023/11/30 02:19:14 Probe of "https://<IP_ADDRESS>" failed, took 0.027 seconds
2023/11/30 02:19:45 Error: API connectivity test failed, Response code was 429, expected 200 (path: "api/v2/monitor/system/status")
2023/11/30 02:19:45 Probe of "https://<IP_ADDRESS>" failed, took 0.027 seconds
2023/11/30 02:20:14 Error: API connectivity test failed, Response code was 429, expected 200 (path: "api/v2/monitor/system/status")
2023/11/30 02:20:14 Probe of "https://<IP_ADDRESS>" failed, took 0.026 seconds
2023/11/30 02:21:14 Error: API connectivity test failed, Response code was 429, expected 200 (path: "api/v2/monitor/system/status")
2023/11/30 02:21:14 Probe of "https://<IP_ADDRESS>" failed, took 0.027 seconds
2023/11/30 02:22:14 Error: API connectivity test failed, Response code was 429, expected 200 (path: "api/v2/monitor/system/status")
2023/11/30 02:22:14 Probe of "https://<IP_ADDRESS>" failed, took 0.026 seconds

# My docker compose
---
version: "3.8"

services:
  prometheus:
    command: "--config.file=/etc/prometheus/prometheus.yaml"
    container_name: prometheus
    image: prom/prometheus:latest
    restart: unless-stopped
    user: root
    ports:
      - 9090:9090
    volumes:
      - ./config/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
      - ./data:/prometheus
    depends_on:
      - cadvisor
      - node_exporter
      - adguard_exporter
      - fortigate_exporter
    networks:
      - prometheus

  cadvisor:
    container_name: cadvisor
    image: gcr.io/cadvisor/cadvisor:latest
    privileged: true
    restart: unless-stopped
    ports:
      - 8080:8080
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    devices:
      - /dev/kmsg
    networks:
      - prometheus

  fortigate_exporter:
    container_name: fortigate_exporter
    image: quay.io/bluecmd/fortigate_exporter:master
    restart: unless-stopped
    command: ["-auth-file", "/config/fortigate-key.yaml", "-insecure"]
    volumes:
      - ./fortigate-key.yaml:/config/fortigate-key.yaml
    ports:
      - 9710:9710
    networks:
      - prometheus

  node_exporter:
    command: "--path.rootfs=/host"
    container_name: node_exporter
    image: quay.io/prometheus/node-exporter:latest
    pid: host
    restart: unless-stopped
    ports:
      - 9100:9100
    volumes:
      - /:/host:ro,rslave
    networks:
      - prometheus

  adguard_exporter:
    container_name: adguard_exporter
    image: ebrianne/adguard-exporter:latest
    restart: unless-stopped
    ports:
      - "9617:9617"
    environment:
      - adguard_protocol=http
      - adguard_hostname=${ADGUARD_HOST}
      - adguard_username=${ADGUARD_USERNAME}
      - adguard_password=${ADGUARD_PASSWORD}
      - interval=10s
      - log_limit=10000
      - server_port=9617
    networks:
      - prometheus

  grafana:
    container_name: grafana
    image: grafana/grafana-oss:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - grafana-data:/var/lib/grafana
    depends_on:
      - prometheus
    networks:
      - prometheus

volumes:
  prometheus-data:
    driver: local
  grafana-data:
    driver: local

networks:
  prometheus:
    driver: bridge

# fortigate-key.yaml

"https://<IP_ADDRESS>":
  token: my-token-generate-from-my-fortigate-device
  probes:
    include:
      - System
      - Firewall

# Prometheus configuration
global:
  scrape_interval: 1m

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  # external_labels:
  #  monitor: 'codelab-monitor'

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['node_exporter:9100', '<IP_ADDRESS>:9100']

  - job_name: 'adguard_exporter'
    static_configs:
      - targets: ['adguard_exporter:9617']

  - job_name: 'cadvisor'
    static_configs:
      - targets: ['cadvisor:8080']

  - job_name: 'Mikrotik'
    static_configs:
      - targets:
        - <IP_ADDRESS>
    metrics_path: /snmp
    params:
      module: [mikrotik]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: <IP_ADDRESS>:9116

  - job_name: 'fortigate_exporter'
    metrics_path: /probe
    static_configs:
      - targets:
        - https://<IP_ADDRESS>
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
        # Drop the https:// and port (if specified) for the 'instance=' label
        regex: '(?:.+)(?::\/\/)([^:]*).*'
      - target_label: __address__
        replacement: '<IP_ADDRESS>:9710'

@hiepnh610 from experience this indicates that you sending the wrong credentials. After trying to many times with wrong credentials you will start to get 429. Do you have any 401 in the beginning of the log files?

w

I believe I encountered the 401 status code once or twice. Currently, it appears that Fortigate has blocked the exporter's IP due to multiple incorrect requests. I need to wait until my Fortigate device releases this IP. Please keep this issue open, as I plan to make additional attempts and will report back to you soon. Thank you for your assistance.

@thenodon
I believe I encountered the 401 status code once or twice. Currently, it appears that Fortigate has blocked the exporter's IP due to multiple incorrect requests. I need to wait until my Fortigate device releases this IP. Please keep this issue open, as I plan to make additional attempts and will report back to you soon. Thank you for your assistance.

@thenodon
I made an error by trusting the wrong IP in the Administrators. Once I corrected it to use the IP of the Fortigate device, I was able to successfully retrieve data from the Fortigate device.
My Topology
- ISP -> Fortigate -> Mikrotik -> PC

Before
Trusted Hosts: <IP_ADDRESS>/24 # This IP of Mikrotik

After
Trusted Hosts: <IP_ADDRESS>/24 # This IP of Fortigate


ONNX Multilingual model failed to load , Bot is failing Failed to find or load Model with path

Describe the bug
Multi Lingual Bot using orchestrator model (ONNX) is failing with error
Failed to find or load Model with path C:\home\site\wwwroot\model\pretrained.20210205.microsoft.dte.00.06.unicoder_multilingual
Version

Browser

[ ] Chrome
[ ] Edge

OS

[ ] Windows

To Reproduce
Steps to reproduce the behavior:

Create Bot in Composer
Added Skill (another Bot) , which brought in Orchestrator models
Added multi lingual  capabilities into the Bot'
Runtime Bot fails with the below
Failed to find or load Model with path C:\home\site\wwwroot\model\pretrained.20210205.microsoft.dte.00.06.unicoder_multilingual
Fails in emulator as well .. Path is local path when deployed to Azure , above path is given

Expected behavior

English language works in same bot, This issue occurs when other locale is selected

additional info: My Root dialog uses Orchestrator recognizer and immediate next dialog where it fails uses Regular expression recognizer/ i tried with orchestrator also and it fails there as well

Screenshots

Additional context

Hi @aparnaji ,  thanks for the bug report.

Does multilingual work when you test a bot locally?

If the failure is happening only when you deploy multilingual bot to Azure, can you help us verify on your Azure deployment, if that folder C:\home\site\wwwroot\model\pretrained.20210205.microsoft.dte.00.06.unicoder_multilingual exists?  Can you show a screenshot or dump of its directory contents?

Can you also help us to look at C:\home\site\wwwroot\generated\orchestrator.settings.json on your Azure deployment and post its contents here? You can access this information by using Kudu or App Service Editor in Azure - docs here
Thanks @aparnaji

Hi @taicchoumsft
Thanks for the fix , It helped

My bot failed locally as well
Your fix of including **/*.model in .csproj file locally fixed the issue and now the Bot is working locally and in Azure as well

Thanks for confirming that the fix works @aparnaji , we will fix this in a patch release so this manual step does not need to be taken.

Tracking Components#1129 that will close this issue.


o.s.web.servlet.PageNotFound - Request method 'POST' not supported

I am using the spring boot version 1.5.14 and Spring Cloud version as Edgware.SR4
I have implemented the schema-registry with org.springframework.cloud:spring-cloud-stream-schema-server and spring boot version 1.5.14 and Spring Cloud version as Edgware.SR4. I am also using the AVRO.
I have created publisher/consumer with same spring boot and spring cloud versions.
Now when I am trying to publish the event, I am getting the below error
2018-09-14 11:41:00.119 [schema-registry,,,] INFO  o.s.i.endpoint.EventDrivenConsumer - Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
2018-09-14 11:41:00.119 [schema-registry,,,] INFO  o.s.i.c.PublishSubscribeChannel - Channel 'schema-registry:jdbc:8001.errorChannel' has 1 subscriber(s).
2018-09-14 11:41:00.120 [schema-registry,,,] INFO  o.s.i.endpoint.EventDrivenConsumer - started _org.springframework.integration.errorLogger
2018-09-14 11:41:00.180 [schema-registry,,,] INFO  o.f.p.d.SchemaRegistryServerApplication - Started SchemaRegistryServerApplication in 37.15 seconds (JVM running for 928.854)
2018-09-14 11:41:02.254 [schema-registry,,,] INFO  c.n.d.p.DiscoveryJerseyProvider - Using JSON encoding codec LegacyJacksonJson
2018-09-14 11:41:02.254 [schema-registry,,,] INFO  c.n.d.p.DiscoveryJerseyProvider - Using JSON decoding codec LegacyJacksonJson
2018-09-14 11:41:02.256 [schema-registry,,,] INFO  c.n.d.p.DiscoveryJerseyProvider - Using XML encoding codec XStreamXml
2018-09-14 11:41:02.256 [schema-registry,,,] INFO  c.n.d.p.DiscoveryJerseyProvider - Using XML decoding codec XStreamXml
2018-09-14 11:41:02.273 [schema-registry,,,] INFO  c.n.d.p.DiscoveryJerseyProvider - Using JSON encoding codec LegacyJacksonJson
2018-09-14 11:41:02.274 [schema-registry,,,] INFO  c.n.d.p.DiscoveryJerseyProvider - Using JSON decoding codec LegacyJacksonJson
2018-09-14 11:41:02.274 [schema-registry,,,] INFO  c.n.d.p.DiscoveryJerseyProvider - Using XML encoding codec XStreamXml
2018-09-14 11:41:02.275 [schema-registry,,,] INFO  c.n.d.p.DiscoveryJerseyProvider - Using XML decoding codec XStreamXml
2018-09-14 11:45:58.458 [schema-registry,,,] INFO  c.n.d.s.r.aws.ConfigClusterResolver - Resolving eureka endpoints via configuration
2018-09-14 11:50:58.461 [schema-registry,,,] INFO  c.n.d.s.r.aws.ConfigClusterResolver - Resolving eureka endpoints via configuration
2018-09-14 11:54:25.719 [schema-registry,0828eda525e57bd9,0828eda525e57bd9,false] INFO  o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization started
2018-09-14 11:54:25.797 [schema-registry,0828eda525e57bd9,0828eda525e57bd9,false] INFO  o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization completed in 77 ms
2018-09-14 11:54:25.833 [schema-registry,0828eda525e57bd9,0828eda525e57bd9,false] WARN  o.s.web.servlet.PageNotFound - Request method 'POST' not supported

The same functionality is working fine with spring boot 1.5.12 and spring cloud Edgware.SR2.
I have even tested with spring boot 1.5.15, 1.5.16 and Spring Cloud Edgware.SR4

Hi @sobychacko Any update on this issue?

@ghoddg You are using an older version of Spring Cloud Stream through spring cloud Edgware release. Can you upgrade to the Finchley release and see if the problems still persist?


Pin version of sdx-common

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@b094b5d). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #53   +/-   ##
=========================================
  Coverage          ?   79.56%
=========================================
  Files             ?        9
  Lines             ?      279
  Branches          ?        0
=========================================
  Hits              ?      222
  Misses            ?       57
  Partials          ?        0

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 b094b5d...99c3295. Read the comment docs.


Improved syntax for assertion/verification of snapshot

The current syntax is very C macro. Verify(view: view) is the ugly cousin of XCTAssert(assertion) and not the least bit Swifty. It's back to the drawing board with this one.

This issue looks like I tripped all over my keyboard. I take full responsibility.


Add support for ClearLinux

Add support for ClearLinux
General
ClearLinux is gaining popularity as it's the most performant modern linux distro to date.
In order for PowerShell to add support for ClearLinux, .netcore must add support.

Thanks for the request. We regularly evaluate what's available and, as you can imagine, the landscape of distros is large and ever-shifting.
I did a quick test using a ClearLinux the official Docker image and basic functionality seems to work fine. That's not a support statement, just a note that you should be able to begin experimenting with .NET Core. To install, either use the linux tar.gz directly or use the dotnet-install.sh script.

@leecow seems like ClearLinux worked fine. Closing.


Creating a ClientContext possibly causes a memory leak?

What version of gRPC and what language are you using?
1.28.1 and 1.19.1
What operating system (Linux, Windows,...) and version?
Archlinux / Ubuntu 18.04
What runtime / compiler are you using (e.g. python version or version of gcc)
GCC 9.3 / GCC 7.4
What did you do?
I created a simple cpp source file with one main:
#include <grpcpp/grpcpp.h>
#include <google/protobuf/stubs/common.h>

int main(void)
{
    grpc::ClientContext context;
    google::protobuf::ShutdownProtobufLibrary();
}

When building and running this compiled 'program' in valgrind, it reports memory leaks: 'still reachable' blocks:
==96788==    still reachable: 24 bytes in 3 blocks
(see below for the full information).
What did you expect to see?
All heap blocks were freed -- no leaks are possible
What did you see instead?
==96788== Memcheck, a memory error detector
==96788== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==96788== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==96788== Command: /test/grpc/grpc_valgrind_test_test
==96788==
==96788==
==96788== HEAP SUMMARY:
==96788==     in use at exit: 24 bytes in 3 blocks
==96788==   total heap usage: 4 allocs, 1 frees, 72,728 bytes allocated
==96788==
==96788== 8 bytes in 1 blocks are still reachable in loss record 1 of 3
==96788==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==96788==    by 0x14A2E5: grpc::internal::GrpcLibraryInitializer::GrpcLibraryInitializer() (in /test/grpc/grpc_valgrind_test_test)
==96788==    by 0x148535: _GLOBAL__sub_I_client_context.cc (in /test/grpc/grpc_valgrind_test_test)
==96788==    by 0x217B2C: __libc_csu_init (in /test/grpc/grpc_valgrind_test_test)
==96788==    by 0x5BD8B27: (below main) (libc-start.c:266)
==96788==
==96788== 8 bytes in 1 blocks are still reachable in loss record 2 of 3
==96788==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==96788==    by 0x14A2A5: grpc::internal::GrpcLibraryInitializer::GrpcLibraryInitializer() (in /test/grpc/grpc_valgrind_test_test)
==96788==    by 0x148535: _GLOBAL__sub_I_client_context.cc (in/test/grpc/grpc_valgrind_test_test)
==96788==    by 0x217B2C: __libc_csu_init (in /test/grpc/grpc_valgrind_test_test)
==96788==    by 0x5BD8B27: (below main) (libc-start.c:266)
==96788==
==96788== 8 bytes in 1 blocks are still reachable in loss record 3 of 3
==96788==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==96788==    by 0x14853F: _GLOBAL__sub_I_client_context.cc (in /test/grpc/grpc_valgrind_test_test)
==96788==    by 0x217B2C: __libc_csu_init (in /test/grpc/grpc_valgrind_test_test)
==96788==    by 0x5BD8B27: (below main) (libc-start.c:266)
==96788==
==96788== LEAK SUMMARY:
==96788==    definitely lost: 0 bytes in 0 blocks
==96788==    indirectly lost: 0 bytes in 0 blocks
==96788==      possibly lost: 0 bytes in 0 blocks
==96788==    still reachable: 24 bytes in 3 blocks
==96788==         suppressed: 0 bytes in 0 blocks
==96788==
==96788== For counts of detected and suppressed errors, rerun with: -v
==96788== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Anything else we should know about your project / environment?
I built and executed this in two environments:

Ubuntu 18.04 in a project where I build grpc and protobuf myself.
Archlinux with a grpc and protobuf installed on the system.

Both give the same result.
adding grpc_shutdown() before returning does not help as well.
PS of course my test is not in '/test/' but I removed the path in front of that.

Hi, gRPC Core and C++ do have some some global data structures that are allocated once and never released. We are basically depending on them being cleaned up automatically on process shutdown.
(Same as #22527)


Halting and starting cluster nodes produces multiple errors in all migration pods

Here is a log output, which occurs in both discovery and cam containers:
This started to appear on OpenTLC clsuters over night, when the nodes stopped and were restarted again next morning. Seems like the scheme registration in the migController didn't pick the core resources upon controller setup.
{"level":"error","ts":1582712218.5711539,"logger":"plan|xjnxs","msg":"","error":"no matches for kind \"ImageStream\" in version \"image.openshift.io/v1\"","stacktrace":"github.com/fusor/mig-controller/vendor/github.com/go-logr/zapr.(*zapLogger).Error\n\t/go/src/github.com/fusor/mig-controller/vendor/github.com/go-logr/zapr/zapr.go:128\ngithub.com/fusor/mig-controller/pkg/logging.Logger.Error\n\t/go/src/github.com/fusor/mig-controller/pkg/logging/logger.go:75\ngithub.com/fusor/mig-controller/pkg/logging.Logger.Trace\n\t/go/src/github.com/fusor/mig-controller/pkg/logging/logger.go:81\ngithub.com/fusor/mig-controller/pkg/controller/migplan.ReconcileMigPlan.ensureRegistryImageStream\n\t/go/src/github.com/fusor/mig-controller/pkg/controller/migplan/registry.go:127\ngithub.com/fusor/mig-controller/pkg/controller/migplan.ReconcileMigPlan.ensureMigRegistries\n\t/go/src/github.com/fusor/mig-controller/pkg/controller/migplan/registry.go:52\ngithub.com/fusor/mig-controller/pkg/controller/migplan.(*ReconcileMigPlan).Reconcile\n\t/go/src/github.com/fusor/mig-controller/pkg/controller/migplan/migplan_controller.go:243\ngithub.com/fusor/mig-controller/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/go/src/github.com/fusor/mig-controller/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:215\ngithub.com/fusor/mig-controller/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1\n\t/go/src/github.com/fusor/mig-controller/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:158\ngithub.com/fusor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/github.com/fusor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133\ngithub.com/fusor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/github.com/fusor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134\ngithub.com/fusor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/github.com/fusor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88"}

Some errors also appear in mig-operator pods:
Failed to find exact match for migration.openshift.io/v1alpha1.MigStorage by [kind, name, singularName, shortNames]
Velero:


Update rpc_release for 11.1.1

Update the rpc_release variables for 11.1.1

Closing as this is now unnecessary due to the fix for #533


Feat: aria table

Description

Adds an ARIA-role based table

all its structure is made of divs and spans with proper roles and display

Adds an unstyled link component
Adds similar stories as Table
Adds a story showing how to build links as table rows

All recommendations and best practices I read where explicitly telling to avoid using an Aria Table unless other layouts are impossible.
Use case: each row is an anchor tag
My use case justifying this component over the basic Table is to allow having links as table rows.
There are some workarounds as described here, but in the end, this implementation seems the most accessible outcome for my specific use case.
Sources
WAI-ARIA

wai-aria practices
table example

MDN

table role
css display

Preview
https://user-images.githubusercontent.com/3367393/152006653-89221641-6068-4563-b3e4-89371db1a1b4.mp4
Dependency changes

Dependency
Version
State

@radix-ui/react-slot
0.1.2
Added

slot allows building components with asChild pattern exactly like Radix team does :tada:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ShapeShift integration into LBRY app

The Issue
Since LBRY is a blockchain based project, lots of LBRY users are cryptocurrency enthusiasts who could benefit from having the ability to acquire more LBRY Credits through the LBRY app using Shap[eshift to convert from many different other cryptocurrencies.
Other possibly helpful projects:
https://github.com/ExodusMovement/shapeshift.io
https://github.com/OpenBazaar/OpenBazaar-Client/pull/1844
https://github.com/abitfan/shapeshiftio
https://github.com/hunterlong/shapeshift
https://github.com/Achse/php-shapeshift-io-api
Shapeshift API:
https://info.shapeshift.io/
System Configuration

LBRY Daemon version:
LBRY App version:
LBRY Installation ID:
Operating system:

Anything Else

Screenshots

Oh I do love this idea, would be fantastic to have this

I'll take this one up.


Incorrectly rendered 't' at 125% zoom level

I was looking at this document, and noticed that t characters are being misrendered for me at 125% zoom level. I cannot reproduce this problem in either Google Chrome's internal PDF reader, nor in Evince; it appears to be a problem specific to pdf.js.
Screenshot of the problem:

Correct display in Evince:

pdf.js 1.0.21 build f954cde, openSUSE 12.3, Google Chrome 34.0.1847.137
PDF log line: PDF cdfe75313a18bb6350687b3fb8a5923b [1.6 Acrobat Distiller 7.0 (Windows) / PScript5.dll Version 5.2.2] (PDF.js: 1.0.21)

@joepie91 Does this still happen for you with the latest version of PDF.js at https://mozilla.github.io/pdf.js/web/viewer.html?

No response. Closing also because I cannot reproduce this on Arch Linux.


ScanResult is only returning data from the first image when calling .recognize with multiple Bitmaps

Hi, I'm trying to get data from a long receipt in 2 images using the recognize function of the Recognizer class, but is only retrieving the info of the first image.
I'm using version 1.3.6 of the library.
This is my code
            Bitmap[] bitmaps = getBitmaps(stringUris);
            Recognizer.getInstance(reactContext).initialize(getOptions());
            Recognizer.getInstance( reactContext ).recognize(new SimpleRecognizerCallback() {

                @Override
                public void onRecognizerDone(@NonNull final ScanResults results, @NonNull final Media media ) {
                    super.onRecognizerDone( results, media );

                    promise.resolve(parseResultToJson(results));
                }

                @Override
                public void onRecognizerResultsChanged(@NonNull RecognizerResult recognizerResult) {
                    super.onRecognizerResultsChanged(recognizerResult);
                    promise.resolve(parseRecognizerToJson(recognizerResult));
                }
            }, CameraOrientation.ORIENTATION_PORTRAIT, bitmaps) ;

This is a screenshoot of the debugger with 2 bitmaps.

I will attach the receipt images and the JSON with de result.
Image 1
Image 2
result's JSON

@cxrod This is not a general use api. You should not be using the recognizer directly as you should be processing OCR results through the recognizer view. in 1.3.7 this class will no longer be visible.

@pequots34 ok, Do you have any documentation about it? Im creating a native module on my react native app, so Im al  ready have the camera UI cover and I just need to process the images from the URIs.
Thanks for your time.
Regards

There wouldn't be any documentation as its still in development. The release notes will reflect the change, but essentially you will not longer be able to call into Recognizer class ( Recognizer.getInstance(reactContext ) ). If its react native you will need to build the activity and or fragment in native code ( java / kotlin ) and use the recognizer view that will provide the camera interface.

Here is a sample.
https://github.com/BlinkReceipt/blinkreceipt-android/tree/master/blinkreceipt-demo/BlinkReceiptCustomScan